From adc0cacb18af275b3f0aa1d71a913a13253d5235 Mon Sep 17 00:00:00 2001 From: Allen7D <462870781@qq.com> Date: Fri, 26 Apr 2024 10:47:51 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=9F=BA=E4=BA=8E=20obsidianmd/obsidi?= =?UTF-8?q?an-sample-plugin=20=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .prettierignore | 11 + .prettierrc | 7 + README.md | 97 +- esbuild.config.mjs | 56 +- main.css | 2395 +++++++++++++++++ manifest.json | 12 +- package.json | 14 +- src/SettingTab.ts | 31 + src/components/App/index.less | 3 + src/components/App/index.tsx | 13 + src/components/CodeEditorModal/CodeEditor.tsx | 133 + src/components/CodeEditorModal/index.tsx | 31 + main.ts => src/main.ts | 154 +- src/view.tsx | 39 + tsconfig.json | 39 +- yarn.lock | 1717 ++++++++++++ 17 files changed, 4523 insertions(+), 230 deletions(-) create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 main.css create mode 100644 src/SettingTab.ts create mode 100644 src/components/App/index.less create mode 100644 src/components/App/index.tsx create mode 100644 src/components/CodeEditorModal/CodeEditor.tsx create mode 100644 src/components/CodeEditorModal/index.tsx rename main.ts => src/main.ts (63%) create mode 100644 src/view.tsx create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index e09a007..e9e68e4 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ node_modules # Don't include the compiled main.js file in the repo. # They should be uploaded to GitHub releases instead. main.js +dist # Exclude sourcemaps *.map diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..b4a79d2 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,11 @@ +.DS_Store +package.json +/dist +.eslintignore +.editorconfig +.gitignore +.prettierignore +LICENSE +.eslintcache +*.lock +yarn-error.log diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..6bd2473 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "semi": true, + "printWidth": 120, + "tabWidth": 2, + "singleQuote": true, + "trailingComma": "all" +} \ No newline at end of file diff --git a/README.md b/README.md index bb0348e..92ffe5b 100644 --- a/README.md +++ b/README.md @@ -1,96 +1 @@ -# Obsidian Sample Plugin - -This is a sample plugin for Obsidian (https://obsidian.md). - -This project uses Typescript to provide type checking and documentation. -The repo depends on the latest plugin API (obsidian.d.ts) in Typescript Definition format, which contains TSDoc comments describing what it does. - -**Note:** The Obsidian API is still in early alpha and is subject to change at any time! - -This sample plugin demonstrates some of the basic functionality the plugin API can do. -- Adds a ribbon icon, which shows a Notice when clicked. -- Adds a command "Open Sample Modal" which opens a Modal. -- Adds a plugin setting tab to the settings page. -- Registers a global click event and output 'click' to the console. -- Registers a global interval which logs 'setInterval' to the console. - -## First time developing plugins? - -Quick starting guide for new plugin devs: - -- Check if [someone already developed a plugin for what you want](https://obsidian.md/plugins)! There might be an existing plugin similar enough that you can partner up with. -- Make a copy of this repo as a template with the "Use this template" button (login to GitHub if you don't see it). -- Clone your repo to a local development folder. For convenience, you can place this folder in your `.obsidian/plugins/your-plugin-name` folder. -- Install NodeJS, then run `npm i` in the command line under your repo folder. -- Run `npm run dev` to compile your plugin from `main.ts` to `main.js`. -- Make changes to `main.ts` (or create new `.ts` files). Those changes should be automatically compiled into `main.js`. -- Reload Obsidian to load the new version of your plugin. -- Enable plugin in settings window. -- For updates to the Obsidian API run `npm update` in the command line under your repo folder. - -## Releasing new releases - -- Update your `manifest.json` with your new version number, such as `1.0.1`, and the minimum Obsidian version required for your latest release. -- Update your `versions.json` file with `"new-plugin-version": "minimum-obsidian-version"` so older versions of Obsidian can download an older version of your plugin that's compatible. -- Create new GitHub release using your new version number as the "Tag version". Use the exact version number, don't include a prefix `v`. See here for an example: https://github.com/obsidianmd/obsidian-sample-plugin/releases -- Upload the files `manifest.json`, `main.js`, `styles.css` as binary attachments. Note: The manifest.json file must be in two places, first the root path of your repository and also in the release. -- Publish the release. - -> You can simplify the version bump process by running `npm version patch`, `npm version minor` or `npm version major` after updating `minAppVersion` manually in `manifest.json`. -> The command will bump version in `manifest.json` and `package.json`, and add the entry for the new version to `versions.json` - -## Adding your plugin to the community plugin list - -- Check https://github.com/obsidianmd/obsidian-releases/blob/master/plugin-review.md -- Publish an initial version. -- Make sure you have a `README.md` file in the root of your repo. -- Make a pull request at https://github.com/obsidianmd/obsidian-releases to add your plugin. - -## How to use - -- Clone this repo. -- Make sure your NodeJS is at least v16 (`node --version`). -- `npm i` or `yarn` to install dependencies. -- `npm run dev` to start compilation in watch mode. - -## Manually installing the plugin - -- Copy over `main.js`, `styles.css`, `manifest.json` to your vault `VaultFolder/.obsidian/plugins/your-plugin-id/`. - -## Improve code quality with eslint (optional) -- [ESLint](https://eslint.org/) is a tool that analyzes your code to quickly find problems. You can run ESLint against your plugin to find common bugs and ways to improve your code. -- To use eslint with this project, make sure to install eslint from terminal: - - `npm install -g eslint` -- To use eslint to analyze this project use this command: - - `eslint main.ts` - - eslint will then create a report with suggestions for code improvement by file and line number. -- If your source code is in a folder, such as `src`, you can use eslint with this command to analyze all files in that folder: - - `eslint .\src\` - -## Funding URL - -You can include funding URLs where people who use your plugin can financially support it. - -The simple way is to set the `fundingUrl` field to your link in your `manifest.json` file: - -```json -{ - "fundingUrl": "https://buymeacoffee.com" -} -``` - -If you have multiple URLs, you can also do: - -```json -{ - "fundingUrl": { - "Buy Me a Coffee": "https://buymeacoffee.com", - "GitHub Sponsor": "https://github.com/sponsors", - "Patreon": "https://www.patreon.com/" - } -} -``` - -## API Documentation - -See https://github.com/obsidianmd/obsidian-api +# Obsidian Code Editor diff --git a/esbuild.config.mjs b/esbuild.config.mjs index b13282b..1fb9904 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -1,43 +1,45 @@ -import esbuild from "esbuild"; -import process from "process"; -import builtins from "builtin-modules"; +import esbuild from 'esbuild'; +import process from 'process'; +import builtins from 'builtin-modules'; +import { lessLoader } from 'esbuild-plugin-less'; -const banner = -`/* +const banner = `/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ `; -const prod = (process.argv[2] === "production"); +const prod = process.argv[2] === 'production'; const context = await esbuild.context({ banner: { js: banner, }, - entryPoints: ["main.ts"], + entryPoints: ['src/main.ts'], bundle: true, external: [ - "obsidian", - "electron", - "@codemirror/autocomplete", - "@codemirror/collab", - "@codemirror/commands", - "@codemirror/language", - "@codemirror/lint", - "@codemirror/search", - "@codemirror/state", - "@codemirror/view", - "@lezer/common", - "@lezer/highlight", - "@lezer/lr", - ...builtins], - format: "cjs", - target: "es2018", - logLevel: "info", - sourcemap: prod ? false : "inline", + 'obsidian', + 'electron', + '@codemirror/autocomplete', + '@codemirror/collab', + '@codemirror/commands', + '@codemirror/language', + '@codemirror/lint', + '@codemirror/search', + '@codemirror/state', + '@codemirror/view', + '@lezer/common', + '@lezer/highlight', + '@lezer/lr', + ...builtins, + ], + format: 'cjs', + target: 'es2018', + logLevel: 'info', + sourcemap: prod ? false : 'inline', treeShaking: true, - outfile: "main.js", + outfile: 'main.js', + plugins: [lessLoader()], }); if (prod) { @@ -45,4 +47,4 @@ if (prod) { process.exit(0); } else { await context.watch(); -} \ No newline at end of file +} diff --git a/main.css b/main.css new file mode 100644 index 0000000..ab9b136 --- /dev/null +++ b/main.css @@ -0,0 +1,2395 @@ +/* src/components/App/index.less */ +.app-main { + color: red; +} + +/* node_modules/monaco-editor/esm/vs/editor/standalone/browser/standalone-tokens.css */ +.monaco-editor { + font-family: + -apple-system, + BlinkMacSystemFont, + "Segoe WPC", + "Segoe UI", + "HelveticaNeue-Light", + system-ui, + "Ubuntu", + "Droid Sans", + sans-serif; + --monaco-monospace-font: + "SF Mono", + Monaco, + Menlo, + Consolas, + "Ubuntu Mono", + "Liberation Mono", + "DejaVu Sans Mono", + "Courier New", + monospace; +} +.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label { + stroke-width: 1.2px; +} +.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label, +.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label, +.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label { + stroke-width: 1.2px; +} +.monaco-hover p { + margin: 0; +} +.monaco-aria-container { + position: absolute !important; + top: 0; + height: 1px; + width: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + clip: rect(1px, 1px, 1px, 1px); + clip-path: inset(50%); +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.css */ +.monaco-aria-container { + position: absolute; + left: -999em; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/widget/media/editor.css */ +::-ms-clear { + display: none; +} +.monaco-editor .editor-widget input { + color: inherit; +} +.monaco-editor { + position: relative; + overflow: visible; + -webkit-text-size-adjust: 100%; + color: var(--vscode-editor-foreground); + background-color: var(--vscode-editor-background); +} +.monaco-editor-background { + background-color: var(--vscode-editor-background); +} +.monaco-editor .rangeHighlight { + background-color: var(--vscode-editor-rangeHighlightBackground); + box-sizing: border-box; + border: 1px solid var(--vscode-editor-rangeHighlightBorder); +} +.monaco-editor.hc-black .rangeHighlight, +.monaco-editor.hc-light .rangeHighlight { + border-style: dotted; +} +.monaco-editor .symbolHighlight { + background-color: var(--vscode-editor-symbolHighlightBackground); + box-sizing: border-box; + border: 1px solid var(--vscode-editor-symbolHighlightBorder); +} +.monaco-editor.hc-black .symbolHighlight, +.monaco-editor.hc-light .symbolHighlight { + border-style: dotted; +} +.monaco-editor .overflow-guard { + position: relative; + overflow: hidden; +} +.monaco-editor .view-overlays { + position: absolute; + top: 0; +} +.monaco-editor .squiggly-error { + border-bottom: 4px double var(--vscode-editorError-border); +} +.monaco-editor .squiggly-error::before { + display: block; + content: ""; + width: 100%; + height: 100%; + background: var(--vscode-editorError-background); +} +.monaco-editor .squiggly-warning { + border-bottom: 4px double var(--vscode-editorWarning-border); +} +.monaco-editor .squiggly-warning::before { + display: block; + content: ""; + width: 100%; + height: 100%; + background: var(--vscode-editorWarning-background); +} +.monaco-editor .squiggly-info { + border-bottom: 4px double var(--vscode-editorInfo-border); +} +.monaco-editor .squiggly-info::before { + display: block; + content: ""; + width: 100%; + height: 100%; + background: var(--vscode-editorInfo-background); +} +.monaco-editor .squiggly-hint { + border-bottom: 2px dotted var(--vscode-editorHint-border); +} +.monaco-editor.showUnused .squiggly-unnecessary { + border-bottom: 2px dashed var(--vscode-editorUnnecessaryCode-border); +} +.monaco-editor.showDeprecated .squiggly-inline-deprecated { + text-decoration: line-through; + text-decoration-color: var(--vscode-editor-foreground, inherit); +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/media/scrollbars.css */ +.monaco-scrollable-element > .scrollbar > .scra { + cursor: pointer; + font-size: 11px !important; +} +.monaco-scrollable-element > .visible { + opacity: 1; + background: rgba(0, 0, 0, 0); + transition: opacity 100ms linear; + z-index: 11; +} +.monaco-scrollable-element > .invisible { + opacity: 0; + pointer-events: none; +} +.monaco-scrollable-element > .invisible.fade { + transition: opacity 800ms linear; +} +.monaco-scrollable-element > .shadow { + position: absolute; + display: none; +} +.monaco-scrollable-element > .shadow.top { + display: block; + top: 0; + left: 3px; + height: 3px; + width: 100%; + box-shadow: var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset; +} +.monaco-scrollable-element > .shadow.left { + display: block; + top: 3px; + left: 0; + height: 100%; + width: 3px; + box-shadow: var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset; +} +.monaco-scrollable-element > .shadow.top-left-corner { + display: block; + top: 0; + left: 0; + height: 3px; + width: 3px; +} +.monaco-scrollable-element > .shadow.top.left { + box-shadow: var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset; +} +.monaco-scrollable-element > .scrollbar > .slider { + background: var(--vscode-scrollbarSlider-background); +} +.monaco-scrollable-element > .scrollbar > .slider:hover { + background: var(--vscode-scrollbarSlider-hoverBackground); +} +.monaco-scrollable-element > .scrollbar > .slider.active { + background: var(--vscode-scrollbarSlider-activeBackground); +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/controller/textAreaHandler.css */ +.monaco-editor .inputarea { + min-width: 0; + min-height: 0; + margin: 0; + padding: 0; + position: absolute; + outline: none !important; + resize: none; + border: none; + overflow: hidden; + color: transparent; + background-color: transparent; + z-index: -10; +} +.monaco-editor .inputarea.ime-input { + z-index: 10; + caret-color: var(--vscode-editorCursor-foreground); + color: var(--vscode-editor-foreground); +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lineNumbers/lineNumbers.css */ +.monaco-editor .margin-view-overlays .line-numbers { + font-variant-numeric: tabular-nums; + position: absolute; + text-align: right; + display: inline-block; + vertical-align: middle; + box-sizing: border-box; + cursor: default; + height: 100%; +} +.monaco-editor .relative-current-line-number { + text-align: left; + display: inline-block; + width: 100%; +} +.monaco-editor .margin-view-overlays .line-numbers.lh-odd { + margin-top: 1px; +} +.monaco-editor .line-numbers { + color: var(--vscode-editorLineNumber-foreground); +} +.monaco-editor .line-numbers.active-line-number { + color: var(--vscode-editorLineNumber-activeForeground); +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/margin/margin.css */ +.monaco-editor .margin { + background-color: var(--vscode-editorGutter-background); +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/mouseCursor/mouseCursor.css */ +.monaco-mouse-cursor-text { + cursor: text; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.css */ +.monaco-editor .view-overlays .current-line { + display: block; + position: absolute; + left: 0; + top: 0; + box-sizing: border-box; +} +.monaco-editor .margin-view-overlays .current-line { + display: block; + position: absolute; + left: 0; + top: 0; + box-sizing: border-box; +} +.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both { + border-right: 0; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/decorations/decorations.css */ +.monaco-editor .lines-content .cdr { + position: absolute; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/indentGuides/indentGuides.css */ +.monaco-editor .lines-content .core-guide { + position: absolute; + box-sizing: border-box; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lines/viewLines.css */ +.mtkcontrol { + color: rgb(255, 255, 255) !important; + background: rgb(150, 0, 0) !important; +} +.mtkoverflow { + background-color: var(--vscode-button-background, var(--vscode-editor-background)); + color: var(--vscode-button-foreground, var(--vscode-editor-foreground)); + border-width: 1px; + border-style: solid; + border-color: var(--vscode-contrastBorder); + border-radius: 2px; + padding: 4px; + cursor: pointer; +} +.mtkoverflow:hover { + background-color: var(--vscode-button-hoverBackground); +} +.monaco-editor.no-user-select .lines-content, +.monaco-editor.no-user-select .view-line, +.monaco-editor.no-user-select .view-lines { + user-select: none; + -webkit-user-select: none; +} +.monaco-editor.mac .lines-content:hover, +.monaco-editor.mac .view-line:hover, +.monaco-editor.mac .view-lines:hover { + user-select: text; + -webkit-user-select: text; + -ms-user-select: text; +} +.monaco-editor.enable-user-select { + user-select: initial; + -webkit-user-select: initial; +} +.monaco-editor .view-lines { + white-space: nowrap; +} +.monaco-editor .view-line { + position: absolute; + width: 100%; +} +.monaco-editor .mtkw { + color: var(--vscode-editorWhitespace-foreground) !important; +} +.monaco-editor .mtkz { + display: inline-block; + color: var(--vscode-editorWhitespace-foreground) !important; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/linesDecorations/linesDecorations.css */ +.monaco-editor .lines-decorations { + position: absolute; + top: 0; + background: white; +} +.monaco-editor .margin-view-overlays .cldr { + position: absolute; + height: 100%; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.css */ +.monaco-editor .glyph-margin { + position: absolute; + top: 0; +} +.monaco-editor .glyph-margin-widgets .cgmr { + position: absolute; + display: flex; + align-items: center; + justify-content: center; +} +.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin::before { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/marginDecorations/marginDecorations.css */ +.monaco-editor .margin-view-overlays .cmdr { + position: absolute; + left: 0; + width: 100%; + height: 100%; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimap.css */ +.monaco-editor .minimap.slider-mouseover .minimap-slider { + opacity: 0; + transition: opacity 100ms linear; +} +.monaco-editor .minimap.slider-mouseover:hover .minimap-slider { + opacity: 1; +} +.monaco-editor .minimap.slider-mouseover .minimap-slider.active { + opacity: 1; +} +.monaco-editor .minimap-slider .minimap-slider-horizontal { + background: var(--vscode-minimapSlider-background); +} +.monaco-editor .minimap-slider:hover .minimap-slider-horizontal { + background: var(--vscode-minimapSlider-hoverBackground); +} +.monaco-editor .minimap-slider.active .minimap-slider-horizontal { + background: var(--vscode-minimapSlider-activeBackground); +} +.monaco-editor .minimap-shadow-visible { + box-shadow: var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset; +} +.monaco-editor .minimap-shadow-hidden { + position: absolute; + width: 0; +} +.monaco-editor .minimap-shadow-visible { + position: absolute; + left: -6px; + width: 6px; +} +.monaco-editor.no-minimap-shadow .minimap-shadow-visible { + position: absolute; + left: -1px; + width: 1px; +} +.minimap.autohide { + opacity: 0; + transition: opacity 0.5s; +} +.minimap.autohide:hover { + opacity: 1; +} +.monaco-editor .minimap { + z-index: 5; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.css */ +.monaco-editor .overlayWidgets { + position: absolute; + top: 0; + left: 0; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/rulers/rulers.css */ +.monaco-editor .view-ruler { + position: absolute; + top: 0; + box-shadow: 1px 0 0 0 var(--vscode-editorRuler-foreground) inset; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.css */ +.monaco-editor .scroll-decoration { + position: absolute; + top: 0; + left: 0; + height: 6px; + box-shadow: var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/selections/selections.css */ +.monaco-editor .lines-content .cslr { + position: absolute; +} +.monaco-editor .focused .selected-text { + background-color: var(--vscode-editor-selectionBackground); +} +.monaco-editor .selected-text { + background-color: var(--vscode-editor-inactiveSelectionBackground); +} +.monaco-editor .top-left-radius { + border-top-left-radius: 3px; +} +.monaco-editor .bottom-left-radius { + border-bottom-left-radius: 3px; +} +.monaco-editor .top-right-radius { + border-top-right-radius: 3px; +} +.monaco-editor .bottom-right-radius { + border-bottom-right-radius: 3px; +} +.monaco-editor.hc-black .top-left-radius { + border-top-left-radius: 0; +} +.monaco-editor.hc-black .bottom-left-radius { + border-bottom-left-radius: 0; +} +.monaco-editor.hc-black .top-right-radius { + border-top-right-radius: 0; +} +.monaco-editor.hc-black .bottom-right-radius { + border-bottom-right-radius: 0; +} +.monaco-editor.hc-light .top-left-radius { + border-top-left-radius: 0; +} +.monaco-editor.hc-light .bottom-left-radius { + border-bottom-left-radius: 0; +} +.monaco-editor.hc-light .top-right-radius { + border-top-right-radius: 0; +} +.monaco-editor.hc-light .bottom-right-radius { + border-bottom-right-radius: 0; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/viewCursors/viewCursors.css */ +.monaco-editor .cursors-layer { + position: absolute; + top: 0; +} +.monaco-editor .cursors-layer > .cursor { + position: absolute; + overflow: hidden; + box-sizing: border-box; +} +.monaco-editor .cursors-layer.cursor-smooth-caret-animation > .cursor { + transition: all 80ms; +} +.monaco-editor .cursors-layer.cursor-block-outline-style > .cursor { + background: transparent !important; + border-style: solid; + border-width: 1px; +} +.monaco-editor .cursors-layer.cursor-underline-style > .cursor { + border-bottom-width: 2px; + border-bottom-style: solid; + background: transparent !important; +} +.monaco-editor .cursors-layer.cursor-underline-thin-style > .cursor { + border-bottom-width: 1px; + border-bottom-style: solid; + background: transparent !important; +} +@keyframes monaco-cursor-smooth { + 0%, 20% { + opacity: 1; + } + 60%, 100% { + opacity: 0; + } +} +@keyframes monaco-cursor-phase { + 0%, 20% { + opacity: 1; + } + 90%, 100% { + opacity: 0; + } +} +@keyframes monaco-cursor-expand { + 0%, 20% { + transform: scaleY(1); + } + 80%, 100% { + transform: scaleY(0); + } +} +.cursor-smooth { + animation: monaco-cursor-smooth 0.5s ease-in-out 0s 20 alternate; +} +.cursor-phase { + animation: monaco-cursor-phase 0.5s ease-in-out 0s 20 alternate; +} +.cursor-expand > .cursor { + animation: monaco-cursor-expand 0.5s ease-in-out 0s 20 alternate; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/blockDecorations/blockDecorations.css */ +.monaco-editor .blockDecorations-container { + position: absolute; + top: 0; + pointer-events: none; +} +.monaco-editor .blockDecorations-block { + position: absolute; + box-sizing: border-box; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/viewParts/whitespace/whitespace.css */ +.monaco-editor .mwh { + position: absolute; + color: var(--vscode-editorWhitespace-foreground) !important; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/contextview/contextview.css */ +.context-view { + position: absolute; +} +.context-view.fixed { + all: initial; + font-family: inherit; + font-size: 13px; + position: fixed; + color: inherit; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/list/list.css */ +.monaco-list { + position: relative; + height: 100%; + width: 100%; + white-space: nowrap; +} +.monaco-list.mouse-support { + user-select: none; + -webkit-user-select: none; +} +.monaco-list > .monaco-scrollable-element { + height: 100%; +} +.monaco-list-rows { + position: relative; + width: 100%; + height: 100%; +} +.monaco-list.horizontal-scrolling .monaco-list-rows { + width: auto; + min-width: 100%; +} +.monaco-list-row { + position: absolute; + box-sizing: border-box; + overflow: hidden; + width: 100%; +} +.monaco-list.mouse-support .monaco-list-row { + cursor: pointer; + touch-action: none; +} +.monaco-list-row.scrolling { + display: none !important; +} +.monaco-list.element-focused, +.monaco-list.selection-single, +.monaco-list.selection-multiple { + outline: 0 !important; +} +.monaco-drag-image { + display: inline-block; + padding: 1px 7px; + border-radius: 10px; + font-size: 12px; + position: absolute; + z-index: 1000; +} +.monaco-list-type-filter-message { + position: absolute; + box-sizing: border-box; + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 40px 1em 1em 1em; + text-align: center; + white-space: normal; + opacity: 0.7; + pointer-events: none; +} +.monaco-list-type-filter-message:empty { + display: none; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/selectBox/selectBoxCustom.css */ +.monaco-select-box-dropdown-padding { + --dropdown-padding-top: 1px; + --dropdown-padding-bottom: 1px; +} +.hc-black .monaco-select-box-dropdown-padding, +.hc-light .monaco-select-box-dropdown-padding { + --dropdown-padding-top: 3px; + --dropdown-padding-bottom: 4px; +} +.monaco-select-box-dropdown-container { + display: none; + box-sizing: border-box; +} +.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown * { + margin: 0; +} +.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown a:focus { + outline: 1px solid -webkit-focus-ring-color; + outline-offset: -1px; +} +.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown code { + line-height: 15px; + font-family: var(--monaco-monospace-font); +} +.monaco-select-box-dropdown-container.visible { + display: flex; + flex-direction: column; + text-align: left; + width: 1px; + overflow: hidden; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container { + flex: 0 0 auto; + align-self: flex-start; + padding-top: var(--dropdown-padding-top); + padding-bottom: var(--dropdown-padding-bottom); + padding-left: 1px; + padding-right: 1px; + width: 100%; + overflow: hidden; + box-sizing: border-box; +} +.monaco-select-box-dropdown-container > .select-box-details-pane { + padding: 5px; +} +.hc-black .monaco-select-box-dropdown-container > .select-box-dropdown-list-container { + padding-top: var(--dropdown-padding-top); + padding-bottom: var(--dropdown-padding-bottom); +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row { + cursor: pointer; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-text { + text-overflow: ellipsis; + overflow: hidden; + padding-left: 3.5px; + white-space: nowrap; + float: left; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-detail { + text-overflow: ellipsis; + overflow: hidden; + padding-left: 3.5px; + white-space: nowrap; + float: left; + opacity: 0.7; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-decorator-right { + text-overflow: ellipsis; + overflow: hidden; + padding-right: 10px; + white-space: nowrap; + float: right; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .visually-hidden { + position: absolute; + left: -10000px; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control { + flex: 1 1 auto; + align-self: flex-start; + opacity: 0; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control > .width-control-div { + overflow: hidden; + max-height: 0px; +} +.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control > .width-control-div > .option-text-width-control { + padding-left: 4px; + padding-right: 8px; + white-space: nowrap; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/selectBox/selectBox.css */ +.monaco-select-box { + width: 100%; + cursor: pointer; + border-radius: 2px; +} +.monaco-select-box-dropdown-container { + font-size: 13px; + font-weight: normal; + text-transform: none; +} +.monaco-action-bar .action-item.select-container { + cursor: default; +} +.monaco-action-bar .action-item .monaco-select-box { + cursor: pointer; + min-width: 100px; + min-height: 18px; + padding: 2px 23px 2px 8px; +} +.mac .monaco-action-bar .action-item .monaco-select-box { + font-size: 11px; + border-radius: 5px; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/actionbar/actionbar.css */ +.monaco-action-bar { + white-space: nowrap; + height: 100%; +} +.monaco-action-bar .actions-container { + display: flex; + margin: 0 auto; + padding: 0; + height: 100%; + width: 100%; + align-items: center; +} +.monaco-action-bar.vertical .actions-container { + display: inline-block; +} +.monaco-action-bar .action-item { + display: block; + align-items: center; + justify-content: center; + cursor: pointer; + position: relative; +} +.monaco-action-bar .action-item.disabled { + cursor: default; +} +.monaco-action-bar .action-item .icon, +.monaco-action-bar .action-item .codicon { + display: block; +} +.monaco-action-bar .action-item .codicon { + display: flex; + align-items: center; + width: 16px; + height: 16px; +} +.monaco-action-bar .action-label { + display: flex; + font-size: 11px; + padding: 3px; + border-radius: 5px; +} +.monaco-action-bar .action-item.disabled .action-label, +.monaco-action-bar .action-item.disabled .action-label::before, +.monaco-action-bar .action-item.disabled .action-label:hover { + opacity: 0.6; +} +.monaco-action-bar.vertical { + text-align: left; +} +.monaco-action-bar.vertical .action-item { + display: block; +} +.monaco-action-bar.vertical .action-label.separator { + display: block; + border-bottom: 1px solid #bbb; + padding-top: 1px; + margin-left: .8em; + margin-right: .8em; +} +.monaco-action-bar .action-item .action-label.separator { + width: 1px; + height: 16px; + margin: 5px 4px !important; + cursor: default; + min-width: 1px; + padding: 0; + background-color: #bbb; +} +.secondary-actions .monaco-action-bar .action-label { + margin-left: 6px; +} +.monaco-action-bar .action-item.select-container { + overflow: hidden; + flex: 1; + max-width: 170px; + min-width: 60px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 10px; +} +.monaco-action-bar .action-item.action-dropdown-item { + display: flex; +} +.monaco-action-bar .action-item.action-dropdown-item > .action-dropdown-item-separator { + display: flex; + align-items: center; + cursor: default; +} +.monaco-action-bar .action-item.action-dropdown-item > .action-dropdown-item-separator > div { + width: 1px; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/dropdown/dropdown.css */ +.monaco-dropdown { + height: 100%; + padding: 0; +} +.monaco-dropdown > .dropdown-label { + cursor: pointer; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} +.monaco-dropdown > .dropdown-label > .action-label.disabled { + cursor: default; +} +.monaco-dropdown-with-primary { + display: flex !important; + flex-direction: row; + border-radius: 5px; +} +.monaco-dropdown-with-primary > .action-container > .action-label { + margin-right: 0; +} +.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*=codicon-] { + font-size: 12px; + padding-left: 0px; + padding-right: 0px; + line-height: 16px; + margin-left: -3px; +} +.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label { + display: block; + background-size: 16px; + background-position: center center; + background-repeat: no-repeat; +} + +/* node_modules/monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.css */ +.monaco-action-bar .action-item.menu-entry .action-label.icon { + width: 16px; + height: 16px; + background-repeat: no-repeat; + background-position: 50%; + background-size: 16px; +} +.monaco-dropdown-with-default { + display: flex !important; + flex-direction: row; + border-radius: 5px; +} +.monaco-dropdown-with-default > .action-container > .action-label { + margin-right: 0; +} +.monaco-dropdown-with-default > .action-container.menu-entry > .action-label.icon { + width: 16px; + height: 16px; + background-repeat: no-repeat; + background-position: 50%; + background-size: 16px; +} +.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*=codicon-] { + font-size: 12px; + padding-left: 0px; + padding-right: 0px; + line-height: 16px; + margin-left: -3px; +} +.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label { + display: block; + background-size: 16px; + background-position: center center; + background-repeat: no-repeat; +} + +/* node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInput.css */ +.quick-input-widget { + font-size: 13px; +} +.quick-input-widget .monaco-highlighted-label .highlight, +.quick-input-widget .monaco-highlighted-label .highlight { + color: #0066BF; +} +.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight, +.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight { + color: #9DDDFF; +} +.vs-dark .quick-input-widget .monaco-highlighted-label .highlight, +.vs-dark .quick-input-widget .monaco-highlighted-label .highlight { + color: #0097fb; +} +.hc-black .quick-input-widget .monaco-highlighted-label .highlight, +.hc-black .quick-input-widget .monaco-highlighted-label .highlight { + color: #F38518; +} +.hc-light .quick-input-widget .monaco-highlighted-label .highlight, +.hc-light .quick-input-widget .monaco-highlighted-label .highlight { + color: #0F4A85; +} +.monaco-keybinding > .monaco-keybinding-key { + background-color: rgba(221, 221, 221, 0.4); + border: solid 1px rgba(204, 204, 204, 0.4); + border-bottom-color: rgba(187, 187, 187, 0.4); + box-shadow: inset 0 -1px 0 rgba(187, 187, 187, 0.4); + color: #555; +} +.hc-black .monaco-keybinding > .monaco-keybinding-key { + background-color: transparent; + border: solid 1px rgb(111, 195, 223); + box-shadow: none; + color: #fff; +} +.hc-light .monaco-keybinding > .monaco-keybinding-key { + background-color: transparent; + border: solid 1px #0F4A85; + box-shadow: none; + color: #292929; +} +.vs-dark .monaco-keybinding > .monaco-keybinding-key { + background-color: rgba(128, 128, 128, 0.17); + border: solid 1px rgba(51, 51, 51, 0.6); + border-bottom-color: rgba(68, 68, 68, 0.6); + box-shadow: inset 0 -1px 0 rgba(68, 68, 68, 0.6); + color: #ccc; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/sash/sash.css */ +:root { + --vscode-sash-size: 4px; + --vscode-sash-hover-size: 4px; +} +.monaco-sash { + position: absolute; + z-index: 35; + touch-action: none; +} +.monaco-sash.disabled { + pointer-events: none; +} +.monaco-sash.mac.vertical { + cursor: col-resize; +} +.monaco-sash.vertical.minimum { + cursor: e-resize; +} +.monaco-sash.vertical.maximum { + cursor: w-resize; +} +.monaco-sash.mac.horizontal { + cursor: row-resize; +} +.monaco-sash.horizontal.minimum { + cursor: s-resize; +} +.monaco-sash.horizontal.maximum { + cursor: n-resize; +} +.monaco-sash.disabled { + cursor: default !important; + pointer-events: none !important; +} +.monaco-sash.vertical { + cursor: ew-resize; + top: 0; + width: var(--vscode-sash-size); + height: 100%; +} +.monaco-sash.horizontal { + cursor: ns-resize; + left: 0; + width: 100%; + height: var(--vscode-sash-size); +} +.monaco-sash:not(.disabled) > .orthogonal-drag-handle { + content: " "; + height: calc(var(--vscode-sash-size) * 2); + width: calc(var(--vscode-sash-size) * 2); + z-index: 100; + display: block; + cursor: all-scroll; + position: absolute; +} +.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled) > .orthogonal-drag-handle.start, +.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled) > .orthogonal-drag-handle.end { + cursor: nwse-resize; +} +.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled) > .orthogonal-drag-handle.end, +.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled) > .orthogonal-drag-handle.start { + cursor: nesw-resize; +} +.monaco-sash.vertical > .orthogonal-drag-handle.start { + left: calc(var(--vscode-sash-size) * -0.5); + top: calc(var(--vscode-sash-size) * -1); +} +.monaco-sash.vertical > .orthogonal-drag-handle.end { + left: calc(var(--vscode-sash-size) * -0.5); + bottom: calc(var(--vscode-sash-size) * -1); +} +.monaco-sash.horizontal > .orthogonal-drag-handle.start { + top: calc(var(--vscode-sash-size) * -0.5); + left: calc(var(--vscode-sash-size) * -1); +} +.monaco-sash.horizontal > .orthogonal-drag-handle.end { + top: calc(var(--vscode-sash-size) * -0.5); + right: calc(var(--vscode-sash-size) * -1); +} +.monaco-sash:before { + content: ""; + pointer-events: none; + position: absolute; + width: 100%; + height: 100%; + background: transparent; +} +.monaco-workbench:not(.reduce-motion) .monaco-sash:before { + transition: background-color 0.1s ease-out; +} +.monaco-sash.hover:before, +.monaco-sash.active:before { + background: var(--vscode-sash-hoverBorder); +} +.monaco-sash.vertical:before { + width: var(--vscode-sash-hover-size); + left: calc(50% - (var(--vscode-sash-hover-size) / 2)); +} +.monaco-sash.horizontal:before { + height: var(--vscode-sash-hover-size); + top: calc(50% - (var(--vscode-sash-hover-size) / 2)); +} +.pointer-events-disabled { + pointer-events: none !important; +} +.monaco-sash.debug { + background: cyan; +} +.monaco-sash.debug.disabled { + background: rgba(0, 255, 255, 0.2); +} +.monaco-sash.debug:not(.disabled) > .orthogonal-drag-handle { + background: red; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/splitview/splitview.css */ +.monaco-split-view2 { + position: relative; + width: 100%; + height: 100%; +} +.monaco-split-view2 > .sash-container { + position: absolute; + width: 100%; + height: 100%; + pointer-events: none; +} +.monaco-split-view2 > .sash-container > .monaco-sash { + pointer-events: initial; +} +.monaco-split-view2 > .monaco-scrollable-element { + width: 100%; + height: 100%; +} +.monaco-split-view2 > .monaco-scrollable-element > .split-view-container { + width: 100%; + height: 100%; + white-space: nowrap; + position: relative; +} +.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view { + white-space: initial; + position: absolute; +} +.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view:not(.visible) { + display: none; +} +.monaco-split-view2.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view { + width: 100%; +} +.monaco-split-view2.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view { + height: 100%; +} +.monaco-split-view2.separator-border > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before { + content: " "; + position: absolute; + top: 0; + left: 0; + z-index: 5; + pointer-events: none; + background-color: var(--separator-border); +} +.monaco-split-view2.separator-border.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before { + height: 100%; + width: 1px; +} +.monaco-split-view2.separator-border.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before { + height: 1px; + width: 100%; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/table/table.css */ +.monaco-table { + display: flex; + flex-direction: column; + position: relative; + height: 100%; + width: 100%; + white-space: nowrap; + overflow: hidden; +} +.monaco-table > .monaco-split-view2 { + border-bottom: 1px solid transparent; +} +.monaco-table > .monaco-list { + flex: 1; +} +.monaco-table-tr { + display: flex; + height: 100%; +} +.monaco-table-th { + width: 100%; + height: 100%; + font-weight: bold; + overflow: hidden; + text-overflow: ellipsis; +} +.monaco-table-th, +.monaco-table-td { + box-sizing: border-box; + flex-shrink: 0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before { + content: ""; + position: absolute; + left: calc(var(--vscode-sash-size) / 2); + width: 0; + border-left: 1px solid transparent; +} +.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2, +.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before { + transition: border-color 0.2s ease-out; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/toggle/toggle.css */ +.monaco-custom-toggle { + margin-left: 2px; + float: left; + cursor: pointer; + overflow: hidden; + width: 20px; + height: 20px; + border-radius: 3px; + border: 1px solid transparent; + padding: 1px; + box-sizing: border-box; + user-select: none; + -webkit-user-select: none; +} +.monaco-custom-toggle:hover { + background-color: var(--vscode-inputOption-hoverBackground); +} +.hc-black .monaco-custom-toggle:hover, +.hc-light .monaco-custom-toggle:hover { + border: 1px dashed var(--vscode-focusBorder); +} +.hc-black .monaco-custom-toggle, +.hc-light .monaco-custom-toggle { + background: none; +} +.hc-black .monaco-custom-toggle:hover, +.hc-light .monaco-custom-toggle:hover { + background: none; +} +.monaco-custom-toggle.monaco-checkbox { + height: 18px; + width: 18px; + border: 1px solid transparent; + border-radius: 3px; + margin-right: 9px; + margin-left: 0px; + padding: 0px; + opacity: 1; + background-size: 16px !important; +} +.monaco-custom-toggle.monaco-checkbox:not(.checked)::before { + visibility: hidden; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/inputbox/inputBox.css */ +.monaco-inputbox { + position: relative; + display: block; + padding: 0; + box-sizing: border-box; + border-radius: 2px; + font-size: inherit; +} +.monaco-inputbox > .ibwrapper > .input, +.monaco-inputbox > .ibwrapper > .mirror { + padding: 4px 6px; +} +.monaco-inputbox > .ibwrapper { + position: relative; + width: 100%; + height: 100%; +} +.monaco-inputbox > .ibwrapper > .input { + display: inline-block; + box-sizing: border-box; + width: 100%; + height: 100%; + line-height: inherit; + border: none; + font-family: inherit; + font-size: inherit; + resize: none; + color: inherit; +} +.monaco-inputbox > .ibwrapper > input { + text-overflow: ellipsis; +} +.monaco-inputbox > .ibwrapper > textarea.input { + display: block; + scrollbar-width: none; + outline: none; +} +.monaco-inputbox > .ibwrapper > textarea.input::-webkit-scrollbar { + display: none; +} +.monaco-inputbox > .ibwrapper > textarea.input.empty { + white-space: nowrap; +} +.monaco-inputbox > .ibwrapper > .mirror { + position: absolute; + display: inline-block; + width: 100%; + top: 0; + left: 0; + box-sizing: border-box; + white-space: pre-wrap; + visibility: hidden; + word-wrap: break-word; +} +.monaco-inputbox-container { + text-align: right; +} +.monaco-inputbox-container .monaco-inputbox-message { + display: inline-block; + overflow: hidden; + text-align: left; + width: 100%; + box-sizing: border-box; + padding: 0.4em; + font-size: 12px; + line-height: 17px; + margin-top: -1px; + word-wrap: break-word; +} +.monaco-inputbox .monaco-action-bar { + position: absolute; + right: 2px; + top: 4px; +} +.monaco-inputbox .monaco-action-bar .action-item { + margin-left: 2px; +} +.monaco-inputbox .monaco-action-bar .action-item .codicon { + background-repeat: no-repeat; + width: 16px; + height: 16px; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/findInput.css */ +.monaco-findInput { + position: relative; +} +.monaco-findInput .monaco-inputbox { + font-size: 13px; + width: 100%; +} +.monaco-findInput > .controls { + position: absolute; + top: 3px; + right: 2px; +} +.vs .monaco-findInput.disabled { + background-color: #E1E1E1; +} +.vs-dark .monaco-findInput.disabled { + background-color: #333; +} +.monaco-findInput.highlight-0 .controls, +.hc-light .monaco-findInput.highlight-0 .controls { + animation: monaco-findInput-highlight-0 100ms linear 0s; +} +.monaco-findInput.highlight-1 .controls, +.hc-light .monaco-findInput.highlight-1 .controls { + animation: monaco-findInput-highlight-1 100ms linear 0s; +} +.hc-black .monaco-findInput.highlight-0 .controls, +.vs-dark .monaco-findInput.highlight-0 .controls { + animation: monaco-findInput-highlight-dark-0 100ms linear 0s; +} +.hc-black .monaco-findInput.highlight-1 .controls, +.vs-dark .monaco-findInput.highlight-1 .controls { + animation: monaco-findInput-highlight-dark-1 100ms linear 0s; +} +@keyframes monaco-findInput-highlight-0 { + 0% { + background: rgba(253, 255, 0, 0.8); + } + 100% { + background: transparent; + } +} +@keyframes monaco-findInput-highlight-1 { + 0% { + background: rgba(253, 255, 0, 0.8); + } + 99% { + background: transparent; + } +} +@keyframes monaco-findInput-highlight-dark-0 { + 0% { + background: rgba(255, 255, 255, 0.44); + } + 100% { + background: transparent; + } +} +@keyframes monaco-findInput-highlight-dark-1 { + 0% { + background: rgba(255, 255, 255, 0.44); + } + 99% { + background: transparent; + } +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/tree/media/tree.css */ +.monaco-tl-row { + display: flex; + height: 100%; + align-items: center; + position: relative; +} +.monaco-tl-row.disabled { + cursor: default; +} +.monaco-tl-indent { + height: 100%; + position: absolute; + top: 0; + left: 16px; + pointer-events: none; +} +.hide-arrows .monaco-tl-indent { + left: 12px; +} +.monaco-tl-indent > .indent-guide { + display: inline-block; + box-sizing: border-box; + height: 100%; + border-left: 1px solid transparent; +} +.monaco-workbench:not(.reduce-motion) .monaco-tl-indent > .indent-guide { + transition: border-color 0.1s linear; +} +.monaco-tl-twistie, +.monaco-tl-contents { + height: 100%; +} +.monaco-tl-twistie { + font-size: 10px; + text-align: right; + padding-right: 6px; + flex-shrink: 0; + width: 16px; + display: flex !important; + align-items: center; + justify-content: center; + transform: translateX(3px); +} +.monaco-tl-contents { + flex: 1; + overflow: hidden; +} +.monaco-tl-twistie::before { + border-radius: 20px; +} +.monaco-tl-twistie.collapsed::before { + transform: rotate(-90deg); +} +.monaco-tl-twistie.codicon-tree-item-loading::before { + animation: codicon-spin 1.25s steps(30) infinite; +} +.monaco-tree-type-filter { + position: absolute; + top: 0; + display: flex; + padding: 3px; + max-width: 200px; + z-index: 100; + margin: 0 6px; + border: 1px solid var(--vscode-widget-border); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} +.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter { + transition: top 0.3s; +} +.monaco-tree-type-filter.disabled { + top: -40px !important; +} +.monaco-tree-type-filter-grab { + display: flex !important; + align-items: center; + justify-content: center; + cursor: grab; + margin-right: 2px; +} +.monaco-tree-type-filter-grab.grabbing { + cursor: grabbing; +} +.monaco-tree-type-filter-input { + flex: 1; +} +.monaco-tree-type-filter-input .monaco-inputbox { + height: 23px; +} +.monaco-tree-type-filter-input .monaco-inputbox > .ibwrapper > .input, +.monaco-tree-type-filter-input .monaco-inputbox > .ibwrapper > .mirror { + padding: 2px 4px; +} +.monaco-tree-type-filter-input .monaco-findInput > .controls { + top: 2px; +} +.monaco-tree-type-filter-actionbar { + margin-left: 4px; +} +.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label { + padding: 2px; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/button/button.css */ +.monaco-text-button { + box-sizing: border-box; + display: flex; + width: 100%; + padding: 4px; + border-radius: 2px; + text-align: center; + cursor: pointer; + justify-content: center; + align-items: center; + border: 1px solid var(--vscode-button-border, transparent); + line-height: 18px; +} +.monaco-text-button:focus { + outline-offset: 2px !important; +} +.monaco-text-button:hover { + text-decoration: none !important; +} +.monaco-button.disabled:focus, +.monaco-button.disabled { + opacity: 0.4 !important; + cursor: default; +} +.monaco-text-button .codicon { + margin: 0 0.2em; + color: inherit !important; +} +.monaco-text-button.monaco-text-button-with-short-label { + flex-direction: row; + flex-wrap: wrap; + padding: 0 4px; + overflow: hidden; + height: 28px; +} +.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label { + flex-basis: 100%; +} +.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label-short { + flex-grow: 1; + width: 0; + overflow: hidden; +} +.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label, +.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label-short { + display: flex; + justify-content: center; + align-items: center; + font-weight: normal; + font-style: inherit; + padding: 4px 0; +} +.monaco-button-dropdown { + display: flex; + cursor: pointer; +} +.monaco-button-dropdown.disabled { + cursor: default; +} +.monaco-button-dropdown > .monaco-button:focus { + outline-offset: -1px !important; +} +.monaco-button-dropdown.disabled > .monaco-button.disabled, +.monaco-button-dropdown.disabled > .monaco-button.disabled:focus, +.monaco-button-dropdown.disabled > .monaco-button-dropdown-separator { + opacity: 0.4 !important; +} +.monaco-button-dropdown > .monaco-button.monaco-text-button { + border-right-width: 0 !important; +} +.monaco-button-dropdown .monaco-button-dropdown-separator { + padding: 4px 0; + cursor: default; +} +.monaco-button-dropdown .monaco-button-dropdown-separator > div { + height: 100%; + width: 1px; +} +.monaco-button-dropdown > .monaco-button.monaco-dropdown-button { + border: 1px solid var(--vscode-button-border, transparent); + border-left-width: 0 !important; + border-radius: 0 2px 2px 0; +} +.monaco-button-dropdown > .monaco-button.monaco-text-button { + border-radius: 2px 0 0 2px; +} +.monaco-description-button { + display: flex; + flex-direction: column; + align-items: center; + margin: 4px 5px; +} +.monaco-description-button .monaco-button-description { + font-style: italic; + font-size: 11px; + padding: 4px 20px; +} +.monaco-description-button .monaco-button-label, +.monaco-description-button .monaco-button-description { + display: flex; + justify-content: center; + align-items: center; +} +.monaco-description-button .monaco-button-label > .codicon, +.monaco-description-button .monaco-button-description > .codicon { + margin: 0 0.2em; + color: inherit !important; +} +.monaco-button.default-colors, +.monaco-button-dropdown.default-colors > .monaco-button { + color: var(--vscode-button-foreground); + background-color: var(--vscode-button-background); +} +.monaco-button.default-colors:hover, +.monaco-button-dropdown.default-colors > .monaco-button:hover { + background-color: var(--vscode-button-hoverBackground); +} +.monaco-button.default-colors.secondary, +.monaco-button-dropdown.default-colors > .monaco-button.secondary { + color: var(--vscode-button-secondaryForeground); + background-color: var(--vscode-button-secondaryBackground); +} +.monaco-button.default-colors.secondary:hover, +.monaco-button-dropdown.default-colors > .monaco-button.secondary:hover { + background-color: var(--vscode-button-secondaryHoverBackground); +} +.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator { + background-color: var(--vscode-button-background); + border-top: 1px solid var(--vscode-button-border); + border-bottom: 1px solid var(--vscode-button-border); +} +.monaco-button-dropdown.default-colors .monaco-button.secondary + .monaco-button-dropdown-separator { + background-color: var(--vscode-button-secondaryBackground); +} +.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator > div { + background-color: var(--vscode-button-separator); +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/countBadge/countBadge.css */ +.monaco-count-badge { + padding: 3px 6px; + border-radius: 11px; + font-size: 11px; + min-width: 18px; + min-height: 18px; + line-height: 11px; + font-weight: normal; + text-align: center; + display: inline-block; + box-sizing: border-box; +} +.monaco-count-badge.long { + padding: 2px 3px; + border-radius: 2px; + min-height: auto; + line-height: normal; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/progressbar/progressbar.css */ +.monaco-progress-container { + width: 100%; + height: 5px; + overflow: hidden; +} +.monaco-progress-container .progress-bit { + width: 2%; + height: 5px; + position: absolute; + left: 0; + display: none; +} +.monaco-progress-container.active .progress-bit { + display: inherit; +} +.monaco-progress-container.discrete .progress-bit { + left: 0; + transition: width 100ms linear; +} +.monaco-progress-container.discrete.done .progress-bit { + width: 100%; +} +.monaco-progress-container.infinite .progress-bit { + animation-name: progress; + animation-duration: 4s; + animation-iteration-count: infinite; + transform: translate3d(0px, 0px, 0px); + animation-timing-function: linear; +} +.monaco-progress-container.infinite.infinite-long-running .progress-bit { + animation-timing-function: steps(100); +} +@keyframes progress { + from { + transform: translateX(0%) scaleX(1); + } + 50% { + transform: translateX(2500%) scaleX(3); + } + to { + transform: translateX(4900%) scaleX(1); + } +} + +/* node_modules/monaco-editor/esm/vs/platform/quickinput/browser/media/quickInput.css */ +.quick-input-widget { + position: absolute; + width: 600px; + z-index: 2550; + left: 50%; + margin-left: -300px; + -webkit-app-region: no-drag; + border-radius: 6px; +} +.quick-input-titlebar { + display: flex; + align-items: center; + border-top-left-radius: 5px; + border-top-right-radius: 5px; +} +.quick-input-left-action-bar { + display: flex; + margin-left: 4px; + flex: 1; +} +.quick-input-title { + padding: 3px 0px; + text-align: center; + text-overflow: ellipsis; + overflow: hidden; +} +.quick-input-right-action-bar { + display: flex; + margin-right: 4px; + flex: 1; +} +.quick-input-right-action-bar > .actions-container { + justify-content: flex-end; +} +.quick-input-titlebar .monaco-action-bar .action-label.codicon { + background-position: center; + background-repeat: no-repeat; + padding: 2px; +} +.quick-input-description { + margin: 6px 6px 6px 11px; +} +.quick-input-header .quick-input-description { + margin: 4px 2px; + flex: 1; +} +.quick-input-header { + display: flex; + padding: 8px 6px 6px 6px; +} +.quick-input-widget.hidden-input .quick-input-header { + padding: 0; + margin-bottom: 0; +} +.quick-input-and-message { + display: flex; + flex-direction: column; + flex-grow: 1; + min-width: 0; + position: relative; +} +.quick-input-check-all { + align-self: center; + margin: 0; +} +.quick-input-filter { + flex-grow: 1; + display: flex; + position: relative; +} +.quick-input-box { + flex-grow: 1; +} +.quick-input-widget.show-checkboxes .quick-input-box, +.quick-input-widget.show-checkboxes .quick-input-message { + margin-left: 5px; +} +.quick-input-visible-count { + position: absolute; + left: -10000px; +} +.quick-input-count { + align-self: center; + position: absolute; + right: 4px; + display: flex; + align-items: center; +} +.quick-input-count .monaco-count-badge { + vertical-align: middle; + padding: 2px 4px; + border-radius: 2px; + min-height: auto; + line-height: normal; +} +.quick-input-action { + margin-left: 6px; +} +.quick-input-action .monaco-text-button { + font-size: 11px; + padding: 0 6px; + display: flex; + height: 25px; + align-items: center; +} +.quick-input-message { + margin-top: -1px; + padding: 5px; + overflow-wrap: break-word; +} +.quick-input-message > .codicon { + margin: 0 0.2em; + vertical-align: text-bottom; +} +.quick-input-message a { + color: inherit; +} +.quick-input-progress.monaco-progress-container { + position: relative; +} +.quick-input-progress.monaco-progress-container, +.quick-input-progress.monaco-progress-container .progress-bit { + height: 2px; +} +.quick-input-list { + line-height: 22px; +} +.quick-input-widget.hidden-input .quick-input-list { + margin-top: 4px; + padding-bottom: 4px; +} +.quick-input-list .monaco-list { + overflow: hidden; + max-height: calc(20 * 22px); + padding-bottom: 5px; +} +.quick-input-list .monaco-scrollable-element { + padding: 0px 5px; +} +.quick-input-list .quick-input-list-entry { + box-sizing: border-box; + overflow: hidden; + display: flex; + height: 100%; + padding: 0 6px; +} +.quick-input-list .quick-input-list-entry.quick-input-list-separator-border { + border-top-width: 1px; + border-top-style: solid; +} +.quick-input-list .monaco-list-row { + border-radius: 3px; +} +.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border { + border-top-style: none; +} +.quick-input-list .quick-input-list-label { + overflow: hidden; + display: flex; + height: 100%; + flex: 1; +} +.quick-input-list .quick-input-list-checkbox { + align-self: center; + margin: 0; +} +.quick-input-list .quick-input-list-icon { + background-size: 16px; + background-position: left center; + background-repeat: no-repeat; + padding-right: 6px; + width: 16px; + height: 22px; + display: flex; + align-items: center; + justify-content: center; +} +.quick-input-list .quick-input-list-rows { + overflow: hidden; + text-overflow: ellipsis; + display: flex; + flex-direction: column; + height: 100%; + flex: 1; + margin-left: 5px; +} +.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows { + margin-left: 10px; +} +.quick-input-widget .quick-input-list .quick-input-list-checkbox { + display: none; +} +.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox { + display: inline; +} +.quick-input-list .quick-input-list-rows > .quick-input-list-row { + display: flex; + align-items: center; +} +.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label, +.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label .monaco-icon-label-container > .monaco-icon-name-container { + flex: 1; +} +.quick-input-list .quick-input-list-rows > .quick-input-list-row .codicon[class*=codicon-] { + vertical-align: text-bottom; +} +.quick-input-list .quick-input-list-rows .monaco-highlighted-label > span { + opacity: 1; +} +.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding { + margin-right: 8px; +} +.quick-input-list .quick-input-list-label-meta { + opacity: 0.7; + line-height: normal; + text-overflow: ellipsis; + overflow: hidden; +} +.quick-input-list .monaco-highlighted-label .highlight { + font-weight: bold; +} +.quick-input-list .quick-input-list-entry .quick-input-list-separator { + margin-right: 4px; +} +.quick-input-list .quick-input-list-entry-action-bar { + display: flex; + flex: 0; + overflow: visible; +} +.quick-input-list .quick-input-list-entry-action-bar .action-label { + display: none; +} +.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon { + margin-right: 4px; + padding: 0px 2px 2px 2px; +} +.quick-input-list .quick-input-list-entry-action-bar { + margin-top: 1px; +} +.quick-input-list .quick-input-list-entry-action-bar { + margin-right: 4px; +} +.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible, +.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label, +.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label { + display: flex; +} +.quick-input-list .monaco-list-row.focused .monaco-keybinding-key, +.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator { + color: inherit; +} +.quick-input-list .monaco-list-row.focused .monaco-keybinding-key { + background: none; +} +.quick-input-list .quick-input-list-separator-as-item { + font-weight: 600; + font-size: 12px; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/iconLabel/iconlabel.css */ +.monaco-icon-label { + display: flex; + overflow: hidden; + text-overflow: ellipsis; +} +.monaco-icon-label::before { + background-size: 16px; + background-position: left center; + background-repeat: no-repeat; + padding-right: 6px; + width: 16px; + height: 22px; + line-height: inherit !important; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + vertical-align: top; + flex-shrink: 0; +} +.monaco-icon-label-container.disabled { + color: var(--vscode-disabledForeground); +} +.monaco-icon-label > .monaco-icon-label-container { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + flex: 1; +} +.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name { + color: inherit; + white-space: pre; +} +.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name > .label-separator { + margin: 0 2px; + opacity: 0.5; +} +.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description { + opacity: .7; + margin-left: 0.5em; + font-size: 0.9em; + white-space: pre; +} +.monaco-icon-label.nowrap > .monaco-icon-label-container > .monaco-icon-description-container > .label-description { + white-space: nowrap; +} +.vs .monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description { + opacity: .95; +} +.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-name-container > .label-name, +.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-description-container > .label-description { + font-style: italic; +} +.monaco-icon-label.deprecated { + text-decoration: line-through; + opacity: 0.66; +} +.monaco-icon-label.italic::after { + font-style: italic; +} +.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-name-container > .label-name, +.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-description-container > .label-description { + text-decoration: line-through; +} +.monaco-icon-label::after { + opacity: 0.75; + font-size: 90%; + font-weight: 600; + margin: auto 16px 0 5px; + text-align: center; +} +.monaco-list:focus .selected .monaco-icon-label, +.monaco-list:focus .selected .monaco-icon-label::after { + color: inherit !important; +} +.monaco-list-row.focused.selected .label-description, +.monaco-list-row.selected .label-description { + opacity: .8; +} + +/* node_modules/monaco-editor/esm/vs/base/browser/ui/keybindingLabel/keybindingLabel.css */ +.monaco-keybinding { + display: flex; + align-items: center; + line-height: 10px; +} +.monaco-keybinding > .monaco-keybinding-key { + display: inline-block; + border-style: solid; + border-width: 1px; + border-radius: 3px; + vertical-align: middle; + font-size: 11px; + padding: 3px 5px; + margin: 0 2px; +} +.monaco-keybinding > .monaco-keybinding-key:first-child { + margin-left: 0; +} +.monaco-keybinding > .monaco-keybinding-key:last-child { + margin-right: 0; +} +.monaco-keybinding > .monaco-keybinding-key-separator { + display: inline-block; +} +.monaco-keybinding > .monaco-keybinding-key-chord-separator { + width: 6px; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/style.css */ +.monaco-editor .diff-hidden-lines-widget { + width: 100%; +} +.monaco-editor .diff-hidden-lines { + height: 0px; + transform: translate(0px, -10px); + font-size: 13px; + line-height: 14px; +} +.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover, +.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover, +.monaco-editor .diff-hidden-lines .top.dragging, +.monaco-editor .diff-hidden-lines .bottom.dragging { + background-color: var(--vscode-focusBorder); +} +.monaco-editor .diff-hidden-lines .top, +.monaco-editor .diff-hidden-lines .bottom { + transition: background-color 0.1s ease-out; + height: 4px; + background-color: transparent; + background-clip: padding-box; + border-bottom: 2px solid transparent; + border-top: 4px solid transparent; + cursor: ns-resize; +} +.monaco-editor .diff-hidden-lines .top { + transform: translate(0px, 4px); +} +.monaco-editor .diff-hidden-lines .bottom { + transform: translate(0px, -6px); +} +.monaco-editor .diff-unchanged-lines { + background: var(--vscode-diffEditor-unchangedCodeBackground); +} +.monaco-editor .noModificationsOverlay { + z-index: 1; + background: var(--vscode-editor-background); + display: flex; + justify-content: center; + align-items: center; +} +.monaco-editor .diff-hidden-lines .center { + background: var(--vscode-diffEditor-unchangedRegionBackground); + color: var(--vscode-diffEditor-unchangedRegionForeground); + overflow: hidden; + display: block; + text-overflow: ellipsis; + white-space: nowrap; + height: 24px; +} +.monaco-editor .diff-hidden-lines .center span.codicon { + vertical-align: middle; +} +.monaco-editor .diff-hidden-lines .center a:hover .codicon { + cursor: pointer; + color: var(--vscode-editorLink-activeForeground) !important; +} +.monaco-editor .diff-hidden-lines div.breadcrumb-item { + cursor: pointer; +} +.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover { + color: var(--vscode-editorLink-activeForeground); +} +.monaco-editor .movedOriginal { + border: 2px solid var(--vscode-diffEditor-move-border); +} +.monaco-editor .movedModified { + border: 2px solid var(--vscode-diffEditor-move-border); +} +.monaco-editor .movedOriginal.currentMove, +.monaco-editor .movedModified.currentMove { + border: 2px solid var(--vscode-diffEditor-moveActive-border); +} +.monaco-diff-editor .moved-blocks-lines path.currentMove { + stroke: var(--vscode-diffEditor-moveActive-border); +} +.monaco-diff-editor .moved-blocks-lines path { + pointer-events: visiblestroke; +} +.monaco-diff-editor .moved-blocks-lines .arrow { + fill: var(--vscode-diffEditor-move-border); +} +.monaco-diff-editor .moved-blocks-lines .arrow.currentMove { + fill: var(--vscode-diffEditor-moveActive-border); +} +.monaco-diff-editor .moved-blocks-lines .arrow-rectangle { + fill: var(--vscode-editor-background); +} +.monaco-diff-editor .moved-blocks-lines { + position: absolute; + pointer-events: none; +} +.monaco-diff-editor .moved-blocks-lines path { + fill: none; + stroke: var(--vscode-diffEditor-move-border); + stroke-width: 2; +} +.monaco-editor .char-delete.diff-range-empty { + margin-left: -1px; + border-left: solid var(--vscode-diffEditor-removedTextBackground) 3px; +} +.monaco-editor .char-insert.diff-range-empty { + border-left: solid var(--vscode-diffEditor-insertedTextBackground) 3px; +} +.monaco-editor .fold-unchanged { + cursor: pointer; +} +.monaco-diff-editor .diff-moved-code-block { + display: flex; + justify-content: flex-end; + margin-top: -4px; +} +.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon { + width: 12px; + height: 12px; + font-size: 12px; +} +.monaco-diff-editor .diffOverview { + z-index: 9; +} +.monaco-diff-editor .diffOverview .diffViewport { + z-index: 10; +} +.monaco-diff-editor.vs .diffOverview { + background: rgba(0, 0, 0, 0.03); +} +.monaco-diff-editor.vs-dark .diffOverview { + background: rgba(255, 255, 255, 0.01); +} +.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar { + background: rgba(0, 0, 0, 0); +} +.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar { + background: rgba(0, 0, 0, 0); +} +.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar { + background: none; +} +.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar { + background: none; +} +.monaco-scrollable-element.modified-in-monaco-diff-editor .slider { + z-index: 10; +} +.modified-in-monaco-diff-editor .slider.active { + background: rgba(171, 171, 171, .4); +} +.modified-in-monaco-diff-editor.hc-black .slider.active { + background: none; +} +.modified-in-monaco-diff-editor.hc-light .slider.active { + background: none; +} +.monaco-editor .insert-sign, +.monaco-diff-editor .insert-sign, +.monaco-editor .delete-sign, +.monaco-diff-editor .delete-sign { + font-size: 11px !important; + opacity: 0.7 !important; + display: flex !important; + align-items: center; +} +.monaco-editor.hc-black .insert-sign, +.monaco-diff-editor.hc-black .insert-sign, +.monaco-editor.hc-black .delete-sign, +.monaco-diff-editor.hc-black .delete-sign, +.monaco-editor.hc-light .insert-sign, +.monaco-diff-editor.hc-light .insert-sign, +.monaco-editor.hc-light .delete-sign, +.monaco-diff-editor.hc-light .delete-sign { + opacity: 1; +} +.monaco-editor .inline-deleted-margin-view-zone { + text-align: right; +} +.monaco-editor .inline-added-margin-view-zone { + text-align: right; +} +.monaco-editor .arrow-revert-change { + z-index: 10; + position: absolute; +} +.monaco-editor .arrow-revert-change:hover { + cursor: pointer; +} +.monaco-editor .view-zones .view-lines .view-line span { + display: inline-block; +} +.monaco-editor .margin-view-zones .lightbulb-glyph:hover { + cursor: pointer; +} +.monaco-editor .char-insert, +.monaco-diff-editor .char-insert { + background-color: var(--vscode-diffEditor-insertedTextBackground); +} +.monaco-editor .line-insert, +.monaco-diff-editor .line-insert { + background-color: var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground)); +} +.monaco-editor .line-insert, +.monaco-editor .char-insert { + box-sizing: border-box; + border: 1px solid var(--vscode-diffEditor-insertedTextBorder); +} +.monaco-editor.hc-black .line-insert, +.monaco-editor.hc-light .line-insert, +.monaco-editor.hc-black .char-insert, +.monaco-editor.hc-light .char-insert { + border-style: dashed; +} +.monaco-editor .line-delete, +.monaco-editor .char-delete { + box-sizing: border-box; + border: 1px solid var(--vscode-diffEditor-removedTextBorder); +} +.monaco-editor.hc-black .line-delete, +.monaco-editor.hc-light .line-delete, +.monaco-editor.hc-black .char-delete, +.monaco-editor.hc-light .char-delete { + border-style: dashed; +} +.monaco-editor .inline-added-margin-view-zone, +.monaco-editor .gutter-insert, +.monaco-diff-editor .gutter-insert { + background-color: var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground)); +} +.monaco-editor .char-delete, +.monaco-diff-editor .char-delete { + background-color: var(--vscode-diffEditor-removedTextBackground); +} +.monaco-editor .line-delete, +.monaco-diff-editor .line-delete { + background-color: var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground)); +} +.monaco-editor .inline-deleted-margin-view-zone, +.monaco-editor .gutter-delete, +.monaco-diff-editor .gutter-delete { + background-color: var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground)); +} +.monaco-diff-editor.side-by-side .editor.modified { + box-shadow: -6px 0 5px -5px var(--vscode-scrollbar-shadow); + border-left: 1px solid var(--vscode-diffEditor-border); +} +.monaco-diff-editor .diffViewport { + background: var(--vscode-scrollbarSlider-background); +} +.monaco-diff-editor .diffViewport:hover { + background: var(--vscode-scrollbarSlider-hoverBackground); +} +.monaco-diff-editor .diffViewport:active { + background: var(--vscode-scrollbarSlider-activeBackground); +} +.monaco-editor .diagonal-fill { + background-image: linear-gradient(-45deg, var(--vscode-diffEditor-diagonalFill) 12.5%, #0000 12.5%, #0000 50%, var(--vscode-diffEditor-diagonalFill) 50%, var(--vscode-diffEditor-diagonalFill) 62.5%, #0000 62.5%, #0000 100%); + background-size: 8px 8px; +} + +/* node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/accessibleDiffViewer.css */ +.monaco-diff-editor .diff-review-line-number { + text-align: right; + display: inline-block; + color: var(--vscode-editorLineNumber-foreground); +} +.monaco-diff-editor .diff-review { + position: absolute; + user-select: none; + -webkit-user-select: none; + z-index: 99; +} +.monaco-diff-editor .diff-review-summary { + padding-left: 10px; +} +.monaco-diff-editor .diff-review-shadow { + position: absolute; + box-shadow: var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset; +} +.monaco-diff-editor .diff-review-row { + white-space: pre; +} +.monaco-diff-editor .diff-review-table { + display: table; + min-width: 100%; +} +.monaco-diff-editor .diff-review-row { + display: table-row; + width: 100%; +} +.monaco-diff-editor .diff-review-spacer { + display: inline-block; + width: 10px; + vertical-align: middle; +} +.monaco-diff-editor .diff-review-spacer > .codicon { + font-size: 9px !important; +} +.monaco-diff-editor .diff-review-actions { + display: inline-block; + position: absolute; + right: 10px; + top: 2px; + z-index: 100; +} +.monaco-diff-editor .diff-review-actions .action-label { + width: 16px; + height: 16px; + margin: 2px 0; +} +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2NvbXBvbmVudHMvQXBwL2luZGV4Lmxlc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9zdGFuZGFsb25lL2Jyb3dzZXIvc3RhbmRhbG9uZS10b2tlbnMuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvYXJpYS9hcmlhLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvd2lkZ2V0L21lZGlhL2VkaXRvci5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9zY3JvbGxiYXIvbWVkaWEvc2Nyb2xsYmFycy5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL2NvbnRyb2xsZXIvdGV4dEFyZWFIYW5kbGVyLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL2xpbmVOdW1iZXJzL2xpbmVOdW1iZXJzLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL21hcmdpbi9tYXJnaW4uY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvbW91c2VDdXJzb3IvbW91c2VDdXJzb3IuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvY3VycmVudExpbmVIaWdobGlnaHQvY3VycmVudExpbmVIaWdobGlnaHQuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvZGVjb3JhdGlvbnMvZGVjb3JhdGlvbnMuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvaW5kZW50R3VpZGVzL2luZGVudEd1aWRlcy5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL3ZpZXdQYXJ0cy9saW5lcy92aWV3TGluZXMuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvbGluZXNEZWNvcmF0aW9ucy9saW5lc0RlY29yYXRpb25zLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL2dseXBoTWFyZ2luL2dseXBoTWFyZ2luLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL21hcmdpbkRlY29yYXRpb25zL21hcmdpbkRlY29yYXRpb25zLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL21pbmltYXAvbWluaW1hcC5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL3ZpZXdQYXJ0cy9vdmVybGF5V2lkZ2V0cy9vdmVybGF5V2lkZ2V0cy5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL3ZpZXdQYXJ0cy9ydWxlcnMvcnVsZXJzLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL3Njcm9sbERlY29yYXRpb24vc2Nyb2xsRGVjb3JhdGlvbi5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL3ZpZXdQYXJ0cy9zZWxlY3Rpb25zL3NlbGVjdGlvbnMuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvdmlld0N1cnNvcnMvdmlld0N1cnNvcnMuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvYnJvd3Nlci92aWV3UGFydHMvYmxvY2tEZWNvcmF0aW9ucy9ibG9ja0RlY29yYXRpb25zLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvdmlld1BhcnRzL3doaXRlc3BhY2Uvd2hpdGVzcGFjZS5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9jb250ZXh0dmlldy9jb250ZXh0dmlldy5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9saXN0L2xpc3QuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvc2VsZWN0Qm94L3NlbGVjdEJveEN1c3RvbS5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9zZWxlY3RCb3gvc2VsZWN0Qm94LmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvYmFzZS9icm93c2VyL3VpL2FjdGlvbmJhci9hY3Rpb25iYXIuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvZHJvcGRvd24vZHJvcGRvd24uY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9wbGF0Zm9ybS9hY3Rpb25zL2Jyb3dzZXIvbWVudUVudHJ5QWN0aW9uVmlld0l0ZW0uY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3Ivc3RhbmRhbG9uZS9icm93c2VyL3F1aWNrSW5wdXQvc3RhbmRhbG9uZVF1aWNrSW5wdXQuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvc2FzaC9zYXNoLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvYmFzZS9icm93c2VyL3VpL3NwbGl0dmlldy9zcGxpdHZpZXcuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvdGFibGUvdGFibGUuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkvdG9nZ2xlL3RvZ2dsZS5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9pbnB1dGJveC9pbnB1dEJveC5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9maW5kaW5wdXQvZmluZElucHV0LmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvYmFzZS9icm93c2VyL3VpL3RyZWUvbWVkaWEvdHJlZS5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9idXR0b24vYnV0dG9uLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvYmFzZS9icm93c2VyL3VpL2NvdW50QmFkZ2UvY291bnRCYWRnZS5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2Jhc2UvYnJvd3Nlci91aS9wcm9ncmVzc2Jhci9wcm9ncmVzc2Jhci5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL3BsYXRmb3JtL3F1aWNraW5wdXQvYnJvd3Nlci9tZWRpYS9xdWlja0lucHV0LmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvYmFzZS9icm93c2VyL3VpL2ljb25MYWJlbC9pY29ubGFiZWwuY3NzIiwgIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL2VzbS92cy9iYXNlL2Jyb3dzZXIvdWkva2V5YmluZGluZ0xhYmVsL2tleWJpbmRpbmdMYWJlbC5jc3MiLCAibm9kZV9tb2R1bGVzL21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9icm93c2VyL3dpZGdldC9kaWZmRWRpdG9yL3N0eWxlLmNzcyIsICJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2Jyb3dzZXIvd2lkZ2V0L2RpZmZFZGl0b3IvYWNjZXNzaWJsZURpZmZWaWV3ZXIuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIuYXBwLW1haW4ge1xuICBjb2xvcjogcmVkO1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi8qIERlZmF1bHQgc3RhbmRhbG9uZSBlZGl0b3IgZm9udHMgKi9cbi5tb25hY28tZWRpdG9yIHtcblx0Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBXUENcIiwgXCJTZWdvZSBVSVwiLCBcIkhlbHZldGljYU5ldWUtTGlnaHRcIiwgc3lzdGVtLXVpLCBcIlVidW50dVwiLCBcIkRyb2lkIFNhbnNcIiwgc2Fucy1zZXJpZjtcblx0LS1tb25hY28tbW9ub3NwYWNlLWZvbnQ6IFwiU0YgTW9ub1wiLCBNb25hY28sIE1lbmxvLCBDb25zb2xhcywgXCJVYnVudHUgTW9ub1wiLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkRlamFWdSBTYW5zIE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG59XG5cbi5tb25hY28tbWVudSAubW9uYWNvLWFjdGlvbi1iYXIudmVydGljYWwgLmFjdGlvbi1pdGVtIC5hY3Rpb24tbWVudS1pdGVtOmZvY3VzIC5hY3Rpb24tbGFiZWwge1xuXHRzdHJva2Utd2lkdGg6IDEuMnB4O1xufVxuXG4ubW9uYWNvLWVkaXRvci52cy1kYXJrIC5tb25hY28tbWVudSAubW9uYWNvLWFjdGlvbi1iYXIudmVydGljYWwgLmFjdGlvbi1tZW51LWl0ZW06Zm9jdXMgLmFjdGlvbi1sYWJlbCxcbi5tb25hY28tZWRpdG9yLmhjLWJsYWNrIC5tb25hY28tbWVudSAubW9uYWNvLWFjdGlvbi1iYXIudmVydGljYWwgLmFjdGlvbi1tZW51LWl0ZW06Zm9jdXMgLmFjdGlvbi1sYWJlbCxcbi5tb25hY28tZWRpdG9yLmhjLWxpZ2h0IC5tb25hY28tbWVudSAubW9uYWNvLWFjdGlvbi1iYXIudmVydGljYWwgLmFjdGlvbi1tZW51LWl0ZW06Zm9jdXMgLmFjdGlvbi1sYWJlbCB7XG5cdHN0cm9rZS13aWR0aDogMS4ycHg7XG59XG5cbi5tb25hY28taG92ZXIgcCB7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvbW9uYWNvLWVkaXRvci9pc3N1ZXMvMjE2OCNpc3N1ZWNvbW1lbnQtNzgwMDc4NjAwICovXG4ubW9uYWNvLWFyaWEtY29udGFpbmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHRvcDogMDsgLyogYXZvaWQgYmVpbmcgcGxhY2VkIHVuZGVybmVhdGggYSBzaWJsaW5nIGVsZW1lbnQgKi9cblx0aGVpZ2h0OiAxcHg7XG5cdHdpZHRoOiAxcHg7XG5cdG1hcmdpbjogLTFweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZzogMDtcblx0Y2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuXHRjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG59XG5cbi8qLm1vbmFjby1lZGl0b3IudnMgW3RhYmluZGV4PVwiMFwiXTpmb2N1cyB7XG5cdG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDAsIDEyMiwgMjA0LCAwLjQpO1xuXHRvdXRsaW5lLW9mZnNldDogLTFweDtcblx0b3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLWVkaXRvci52cy1kYXJrIFt0YWJpbmRleD1cIjBcIl06Zm9jdXMge1xuXHRvdXRsaW5lOiAxcHggc29saWQgcmdiYSgxNCwgOTksIDE1NiwgMC42KTtcblx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG5cdG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn0qL1xuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWFyaWEtY29udGFpbmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlOyAvKiB0cnkgdG8gaGlkZSBmcm9tIHdpbmRvdyBidXQgbm90IGZyb20gc2NyZWVuIHJlYWRlcnMgKi9cblx0bGVmdDotOTk5ZW07XG59IiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBJRTEwIHJlbW92ZSBhdXRvIGNsZWFyIGJ1dHRvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG46Oi1tcy1jbGVhciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEFsbCB3aWRnZXRzICovXG4vKiBJIGFtIG5vdCBhIGJpZyBmYW4gb2YgdGhpcyBydWxlICovXG4ubW9uYWNvLWVkaXRvciAuZWRpdG9yLXdpZGdldCBpbnB1dCB7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBFZGl0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm1vbmFjby1lZGl0b3Ige1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLWZvcmVncm91bmQpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLWJhY2tncm91bmQpO1xufVxuLm1vbmFjby1lZGl0b3ItYmFja2dyb3VuZCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3ItYmFja2dyb3VuZCk7XG59XG4ubW9uYWNvLWVkaXRvciAucmFuZ2VIaWdobGlnaHQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLXJhbmdlSGlnaGxpZ2h0QmFja2dyb3VuZCk7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZzY29kZS1lZGl0b3ItcmFuZ2VIaWdobGlnaHRCb3JkZXIpO1xufVxuLm1vbmFjby1lZGl0b3IuaGMtYmxhY2sgLnJhbmdlSGlnaGxpZ2h0LCAubW9uYWNvLWVkaXRvci5oYy1saWdodCAucmFuZ2VIaWdobGlnaHQge1xuXHRib3JkZXItc3R5bGU6IGRvdHRlZDtcbn1cbi5tb25hY28tZWRpdG9yIC5zeW1ib2xIaWdobGlnaHQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLXN5bWJvbEhpZ2hsaWdodEJhY2tncm91bmQpO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12c2NvZGUtZWRpdG9yLXN5bWJvbEhpZ2hsaWdodEJvcmRlcik7XG59XG4ubW9uYWNvLWVkaXRvci5oYy1ibGFjayAuc3ltYm9sSGlnaGxpZ2h0LCAubW9uYWNvLWVkaXRvci5oYy1saWdodCAuc3ltYm9sSGlnaGxpZ2h0IHtcblx0Ym9yZGVyLXN0eWxlOiBkb3R0ZWQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tIE1pc2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm1vbmFjby1lZGl0b3IgLm92ZXJmbG93LWd1YXJkIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubW9uYWNvLWVkaXRvciAudmlldy1vdmVybGF5cyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xufVxuXG4vKlxuLm1vbmFjby1lZGl0b3IgLmF1dG8tY2xvc2VkLWNoYXJhY3RlciB7XG5cdG9wYWNpdHk6IDAuMztcbn1cbiovXG5cblxuLm1vbmFjby1lZGl0b3IgLnNxdWlnZ2x5LWVycm9yIHtcblx0Ym9yZGVyLWJvdHRvbTogNHB4IGRvdWJsZSB2YXIoLS12c2NvZGUtZWRpdG9yRXJyb3ItYm9yZGVyKTtcbn1cbi5tb25hY28tZWRpdG9yIC5zcXVpZ2dseS1lcnJvcjo6YmVmb3JlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNvbnRlbnQ6ICcnO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS12c2NvZGUtZWRpdG9yRXJyb3ItYmFja2dyb3VuZCk7XG59XG4ubW9uYWNvLWVkaXRvciAuc3F1aWdnbHktd2FybmluZyB7XG5cdGJvcmRlci1ib3R0b206IDRweCBkb3VibGUgdmFyKC0tdnNjb2RlLWVkaXRvcldhcm5pbmctYm9yZGVyKTtcbn1cbi5tb25hY28tZWRpdG9yIC5zcXVpZ2dseS13YXJuaW5nOjpiZWZvcmUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Y29udGVudDogJyc7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1lZGl0b3JXYXJuaW5nLWJhY2tncm91bmQpO1xufVxuLm1vbmFjby1lZGl0b3IgLnNxdWlnZ2x5LWluZm8ge1xuXHRib3JkZXItYm90dG9tOiA0cHggZG91YmxlIHZhcigtLXZzY29kZS1lZGl0b3JJbmZvLWJvcmRlcik7XG59XG4ubW9uYWNvLWVkaXRvciAuc3F1aWdnbHktaW5mbzo6YmVmb3JlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNvbnRlbnQ6ICcnO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS12c2NvZGUtZWRpdG9ySW5mby1iYWNrZ3JvdW5kKTtcbn1cbi5tb25hY28tZWRpdG9yIC5zcXVpZ2dseS1oaW50IHtcblx0Ym9yZGVyLWJvdHRvbTogMnB4IGRvdHRlZCB2YXIoLS12c2NvZGUtZWRpdG9ySGludC1ib3JkZXIpO1xufVxuLm1vbmFjby1lZGl0b3Iuc2hvd1VudXNlZCAuc3F1aWdnbHktdW5uZWNlc3Nhcnkge1xuXHRib3JkZXItYm90dG9tOiAycHggZGFzaGVkIHZhcigtLXZzY29kZS1lZGl0b3JVbm5lY2Vzc2FyeUNvZGUtYm9yZGVyKTtcbn1cbi5tb25hY28tZWRpdG9yLnNob3dEZXByZWNhdGVkIC5zcXVpZ2dseS1pbmxpbmUtZGVwcmVjYXRlZCB7XG5cdHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuXHR0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3ItZm9yZWdyb3VuZCwgaW5oZXJpdCk7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEFycm93cyAqL1xuLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQgPiAuc2Nyb2xsYmFyID4gLnNjcmEge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC52aXNpYmxlIHtcblx0b3BhY2l0eTogMTtcblxuXHQvKiBCYWNrZ3JvdW5kIHJ1bGUgYWRkZWQgZm9yIElFOSAtIHRvIGFsbG93IGNsaWNrcyBvbiBkb20gbm9kZSAqL1xuXHRiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7XG5cblx0dHJhbnNpdGlvbjogb3BhY2l0eSAxMDBtcyBsaW5lYXI7XG5cdC8qIEluIGZyb250IG9mIHBlZWsgdmlldyAqL1xuXHR6LWluZGV4OiAxMTtcbn1cbi5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLmludmlzaWJsZSB7XG5cdG9wYWNpdHk6IDA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQgPiAuaW52aXNpYmxlLmZhZGUge1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDgwMG1zIGxpbmVhcjtcbn1cblxuLyogU2Nyb2xsYWJsZSBDb250ZW50IEluc2V0IFNoYWRvdyAqL1xuLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQgPiAuc2hhZG93IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBub25lO1xufVxuLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQgPiAuc2hhZG93LnRvcCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDNweDtcblx0aGVpZ2h0OiAzcHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3gtc2hhZG93OiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyLXNoYWRvdykgMCA2cHggNnB4IC02cHggaW5zZXQ7XG59XG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zaGFkb3cubGVmdCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0b3A6IDNweDtcblx0bGVmdDogMDtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogM3B4O1xuXHRib3gtc2hhZG93OiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyLXNoYWRvdykgNnB4IDAgNnB4IC02cHggaW5zZXQ7XG59XG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zaGFkb3cudG9wLWxlZnQtY29ybmVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0aGVpZ2h0OiAzcHg7XG5cdHdpZHRoOiAzcHg7XG59XG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zaGFkb3cudG9wLmxlZnQge1xuXHRib3gtc2hhZG93OiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyLXNoYWRvdykgNnB4IDAgNnB4IC02cHggaW5zZXQ7XG59XG5cbi5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNjcm9sbGJhciA+IC5zbGlkZXIge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyU2xpZGVyLWJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zY3JvbGxiYXIgPiAuc2xpZGVyOmhvdmVyIHtcblx0YmFja2dyb3VuZDogdmFyKC0tdnNjb2RlLXNjcm9sbGJhclNsaWRlci1ob3ZlckJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zY3JvbGxiYXIgPiAuc2xpZGVyLmFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1zY3JvbGxiYXJTbGlkZXItYWN0aXZlQmFja2dyb3VuZCk7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tZWRpdG9yIC5pbnB1dGFyZWEge1xuXHRtaW4td2lkdGg6IDA7XG5cdG1pbi1oZWlnaHQ6IDA7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG5cdHJlc2l6ZTogbm9uZTtcblx0Ym9yZGVyOiBub25lO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRjb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR6LWluZGV4OiAtMTA7XG59XG4vKi5tb25hY28tZWRpdG9yIC5pbnB1dGFyZWEge1xuXHRwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcblx0d2lkdGg6IDgwMHB4ICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogNTAwcHggIWltcG9ydGFudDtcblx0dG9wOiBpbml0aWFsICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IGluaXRpYWwgIWltcG9ydGFudDtcblx0Ym90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuXHRsaW5lLWhlaWdodDogMTVweCAhaW1wb3J0YW50O1xuXHRmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcblx0ei1pbmRleDogMTAgIWltcG9ydGFudDtcbn0qL1xuLm1vbmFjby1lZGl0b3IgLmlucHV0YXJlYS5pbWUtaW5wdXQge1xuXHR6LWluZGV4OiAxMDtcblx0Y2FyZXQtY29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JDdXJzb3ItZm9yZWdyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLWZvcmVncm91bmQpO1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWVkaXRvciAubWFyZ2luLXZpZXctb3ZlcmxheXMgLmxpbmUtbnVtYmVycyB7XG5cdGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb25hY28tZWRpdG9yIC5yZWxhdGl2ZS1jdXJyZW50LWxpbmUtbnVtYmVyIHtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLm1hcmdpbi12aWV3LW92ZXJsYXlzIC5saW5lLW51bWJlcnMubGgtb2RkIHtcblx0bWFyZ2luLXRvcDogMXB4O1xufVxuXG4ubW9uYWNvLWVkaXRvciAubGluZS1udW1iZXJzIHtcblx0Y29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JMaW5lTnVtYmVyLWZvcmVncm91bmQpO1xufVxuXG4ubW9uYWNvLWVkaXRvciAubGluZS1udW1iZXJzLmFjdGl2ZS1saW5lLW51bWJlciB7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yTGluZU51bWJlci1hY3RpdmVGb3JlZ3JvdW5kKTtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1lZGl0b3IgLm1hcmdpbiB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JHdXR0ZXItYmFja2dyb3VuZCk7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tbW91c2UtY3Vyc29yLXRleHQge1xuXHRjdXJzb3I6IHRleHQ7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tZWRpdG9yIC52aWV3LW92ZXJsYXlzIC5jdXJyZW50LWxpbmUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5tb25hY28tZWRpdG9yIC5tYXJnaW4tdmlldy1vdmVybGF5cyAuY3VycmVudC1saW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubW9uYWNvLWVkaXRvciAubWFyZ2luLXZpZXctb3ZlcmxheXMgLmN1cnJlbnQtbGluZS5jdXJyZW50LWxpbmUtbWFyZ2luLmN1cnJlbnQtbGluZS1tYXJnaW4tYm90aCB7XG5cdGJvcmRlci1yaWdodDogMDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLypcblx0S2VlcGluZyBuYW1lIHNob3J0IGZvciBmYXN0ZXIgcGFyc2luZy5cblx0Y2RyID0gY29yZSBkZWNvcmF0aW9ucyByZW5kZXJpbmcgKGRpdilcbiovXG4ubW9uYWNvLWVkaXRvciAubGluZXMtY29udGVudCAuY2RyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xufSIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1lZGl0b3IgLmxpbmVzLWNvbnRlbnQgLmNvcmUtZ3VpZGUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFVuY29tbWVudCB0byBzZWUgbGluZXMgZmxhc2hpbmcgd2hlbiB0aGV5J3JlIHBhaW50ZWQgKi9cbi8qLm1vbmFjby1lZGl0b3IgLnZpZXctbGluZXMgPiAudmlldy1saW5lIHtcblx0YmFja2dyb3VuZC1jb2xvcjogbm9uZTtcblx0YW5pbWF0aW9uLW5hbWU6IGZsYXNoLWJhY2tncm91bmQ7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogODAwbXM7XG59XG5Aa2V5ZnJhbWVzIGZsYXNoLWJhY2tncm91bmQge1xuXHQwJSAgIHsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsgfVxuXHQxMDAlIHsgYmFja2dyb3VuZC1jb2xvcjogbm9uZSB9XG59Ki9cblxuLm10a2NvbnRyb2wge1xuXHRjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IHJnYigxNTAsIDAsIDApICFpbXBvcnRhbnQ7XG59XG5cbi5tdGtvdmVyZmxvdyB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1idXR0b24tYmFja2dyb3VuZCwgdmFyKC0tdnNjb2RlLWVkaXRvci1iYWNrZ3JvdW5kKSk7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtYnV0dG9uLWZvcmVncm91bmQsIHZhcigtLXZzY29kZS1lZGl0b3ItZm9yZWdyb3VuZCkpO1xuXHRib3JkZXItd2lkdGg6IDFweDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiB2YXIoLS12c2NvZGUtY29udHJhc3RCb3JkZXIpO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cdHBhZGRpbmc6IDRweDtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuLm10a292ZXJmbG93OmhvdmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1ob3ZlckJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLWVkaXRvci5uby11c2VyLXNlbGVjdCAubGluZXMtY29udGVudCxcbi5tb25hY28tZWRpdG9yLm5vLXVzZXItc2VsZWN0IC52aWV3LWxpbmUsXG4ubW9uYWNvLWVkaXRvci5uby11c2VyLXNlbGVjdCAudmlldy1saW5lcyB7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xufVxuLyogVXNlIHVzZXItc2VsZWN0OiB0ZXh0IGZvciBsb29rdXAgZmVhdHVyZSBvbiBtYWNPUyAqL1xuLyogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC92c2NvZGUvaXNzdWVzLzg1NjMyICovXG4ubW9uYWNvLWVkaXRvci5tYWMgLmxpbmVzLWNvbnRlbnQ6aG92ZXIsXG4ubW9uYWNvLWVkaXRvci5tYWMgLnZpZXctbGluZTpob3Zlcixcbi5tb25hY28tZWRpdG9yLm1hYyAudmlldy1saW5lczpob3ZlciB7XG5cdHVzZXItc2VsZWN0OiB0ZXh0O1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0O1xuXHQtbXMtdXNlci1zZWxlY3Q6IHRleHQ7XG59XG5cbi5tb25hY28tZWRpdG9yLmVuYWJsZS11c2VyLXNlbGVjdCB7XG5cdHVzZXItc2VsZWN0OiBpbml0aWFsO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBpbml0aWFsO1xufVxuXG4ubW9uYWNvLWVkaXRvciAudmlldy1saW5lcyB7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tb25hY28tZWRpdG9yIC52aWV3LWxpbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4ubW9uYWNvLWVkaXRvciAubXRrdyB7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yV2hpdGVzcGFjZS1mb3JlZ3JvdW5kKSAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLWVkaXRvciAubXRreiB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Y29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JXaGl0ZXNwYWNlLWZvcmVncm91bmQpICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRPRE9AdG9rZW5pemF0aW9uIGJvb3RzdHJhcCBmaXggKi9cbi8qLm1vbmFjby1lZGl0b3IgLnZpZXctbGluZSA+IHNwYW4gPiBzcGFuIHtcblx0ZmxvYXQ6IG5vbmU7XG5cdG1pbi1oZWlnaHQ6IGluaGVyaXQ7XG5cdG1hcmdpbi1sZWZ0OiBpbmhlcml0O1xufSovXG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ubW9uYWNvLWVkaXRvciAubGluZXMtZGVjb3JhdGlvbnMge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0YmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi8qXG5cdEtlZXBpbmcgbmFtZSBzaG9ydCBmb3IgZmFzdGVyIHBhcnNpbmcuXG5cdGNsZHIgPSBjb3JlIGxpbmVzIGRlY29yYXRpb25zIHJlbmRlcmluZyAoZGl2KVxuKi9cbi5tb25hY28tZWRpdG9yIC5tYXJnaW4tdmlldy1vdmVybGF5cyAuY2xkciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0aGVpZ2h0OiAxMDAlO1xufSIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1lZGl0b3IgLmdseXBoLW1hcmdpbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xufVxuXG4vKlxuXHRLZWVwaW5nIG5hbWUgc2hvcnQgZm9yIGZhc3RlciBwYXJzaW5nLlxuXHRjZ21yID0gY29yZSBnbHlwaCBtYXJnaW4gcmVuZGVyaW5nIChkaXYpXG4qL1xuLm1vbmFjby1lZGl0b3IgLmdseXBoLW1hcmdpbi13aWRnZXRzIC5jZ21yIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLypcblx0RW5zdXJlIHNwaW5uaW5nIGljb25zIGFyZSBwaXhlbC1wZXJmZWN0bHkgY2VudGVyZWQgYW5kIGF2b2lkIHdvYmJsZS5cblx0VGhpcyBpcyBvbmx5IGFwcGxpZWQgdG8gaWNvbnMgdGhhdCBzcGluIHRvIGF2b2lkIHVubmVjZXNzYXJ5XG5cdEdQVSBsYXllcnMgYW5kIGJsdXJyeSBzdWJwaXhlbCBBQS5cbiovXG4ubW9uYWNvLWVkaXRvciAuZ2x5cGgtbWFyZ2luLXdpZGdldHMgLmNnbXIuY29kaWNvbi1tb2RpZmllci1zcGluOjpiZWZvcmUgIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0bGVmdDogNTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLypcblx0S2VlcGluZyBuYW1lIHNob3J0IGZvciBmYXN0ZXIgcGFyc2luZy5cblx0Y21kciA9IGNvcmUgbWFyZ2luIGRlY29yYXRpb25zIHJlbmRlcmluZyAoZGl2KVxuKi9cbi5tb25hY28tZWRpdG9yIC5tYXJnaW4tdmlldy1vdmVybGF5cyAuY21kciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn0iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFNUQVJUIGNvdmVyIHRoZSBjYXNlIHRoYXQgc2xpZGVyIGlzIHZpc2libGUgb24gbW91c2VvdmVyICovXG4ubW9uYWNvLWVkaXRvciAubWluaW1hcC5zbGlkZXItbW91c2VvdmVyIC5taW5pbWFwLXNsaWRlciB7XG5cdG9wYWNpdHk6IDA7XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMTAwbXMgbGluZWFyO1xufVxuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAuc2xpZGVyLW1vdXNlb3Zlcjpob3ZlciAubWluaW1hcC1zbGlkZXIge1xuXHRvcGFjaXR5OiAxO1xufVxuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAuc2xpZGVyLW1vdXNlb3ZlciAubWluaW1hcC1zbGlkZXIuYWN0aXZlIHtcblx0b3BhY2l0eTogMTtcbn1cbi8qIEVORCBjb3ZlciB0aGUgY2FzZSB0aGF0IHNsaWRlciBpcyB2aXNpYmxlIG9uIG1vdXNlb3ZlciAqL1xuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAtc2xpZGVyIC5taW5pbWFwLXNsaWRlci1ob3Jpem9udGFsIHtcblx0YmFja2dyb3VuZDogdmFyKC0tdnNjb2RlLW1pbmltYXBTbGlkZXItYmFja2dyb3VuZCk7XG59XG4ubW9uYWNvLWVkaXRvciAubWluaW1hcC1zbGlkZXI6aG92ZXIgLm1pbmltYXAtc2xpZGVyLWhvcml6b250YWwge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS12c2NvZGUtbWluaW1hcFNsaWRlci1ob3ZlckJhY2tncm91bmQpO1xufVxuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAtc2xpZGVyLmFjdGl2ZSAubWluaW1hcC1zbGlkZXItaG9yaXpvbnRhbCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1taW5pbWFwU2xpZGVyLWFjdGl2ZUJhY2tncm91bmQpO1xufVxuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAtc2hhZG93LXZpc2libGUge1xuXHRib3gtc2hhZG93OiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyLXNoYWRvdykgLTZweCAwIDZweCAtNnB4IGluc2V0O1xufVxuLm1vbmFjby1lZGl0b3IgLm1pbmltYXAtc2hhZG93LWhpZGRlbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDA7XG59XG4ubW9uYWNvLWVkaXRvciAubWluaW1hcC1zaGFkb3ctdmlzaWJsZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogLTZweDtcblx0d2lkdGg6IDZweDtcbn1cbi5tb25hY28tZWRpdG9yLm5vLW1pbmltYXAtc2hhZG93IC5taW5pbWFwLXNoYWRvdy12aXNpYmxlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAtMXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiAwLjVzIGZhZGUgaW4vb3V0IGZvciB0aGUgbWluaW1hcCAqL1xuLm1pbmltYXAuYXV0b2hpZGUge1xuXHRvcGFjaXR5OiAwO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XG59XG4ubWluaW1hcC5hdXRvaGlkZTpob3ZlciB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5tb25hY28tZWRpdG9yIC5taW5pbWFwIHtcblx0ei1pbmRleDogNTtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5tb25hY28tZWRpdG9yIC5vdmVybGF5V2lkZ2V0cyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OjA7XG59IiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWVkaXRvciAudmlldy1ydWxlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRib3gtc2hhZG93OiAxcHggMCAwIDAgdmFyKC0tdnNjb2RlLWVkaXRvclJ1bGVyLWZvcmVncm91bmQpIGluc2V0O1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWVkaXRvciAuc2Nyb2xsLWRlY29yYXRpb24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0aGVpZ2h0OiA2cHg7XG5cdGJveC1zaGFkb3c6IHZhcigtLXZzY29kZS1zY3JvbGxiYXItc2hhZG93KSAwIDZweCA2cHggLTZweCBpbnNldDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLypcblx0S2VlcGluZyBuYW1lIHNob3J0IGZvciBmYXN0ZXIgcGFyc2luZy5cblx0Y3NsciA9IGNvcmUgc2VsZWN0aW9ucyBsYXllciByZW5kZXJpbmcgKGRpdilcbiovXG4ubW9uYWNvLWVkaXRvciAubGluZXMtY29udGVudCAuY3NsciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmZvY3VzZWQgLnNlbGVjdGVkLXRleHQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yLXNlbGVjdGlvbkJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuc2VsZWN0ZWQtdGV4dCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3ItaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1lZGl0b3JcdFx0XHQudG9wLWxlZnQtcmFkaXVzXHRcdHsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4OyB9XG4ubW9uYWNvLWVkaXRvclx0XHRcdC5ib3R0b20tbGVmdC1yYWRpdXNcdFx0eyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7IH1cbi5tb25hY28tZWRpdG9yXHRcdFx0LnRvcC1yaWdodC1yYWRpdXNcdFx0eyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4OyB9XG4ubW9uYWNvLWVkaXRvclx0XHRcdC5ib3R0b20tcmlnaHQtcmFkaXVzXHR7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7IH1cblxuLm1vbmFjby1lZGl0b3IuaGMtYmxhY2sgLnRvcC1sZWZ0LXJhZGl1c1x0XHR7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7IH1cbi5tb25hY28tZWRpdG9yLmhjLWJsYWNrIC5ib3R0b20tbGVmdC1yYWRpdXNcdFx0eyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOyB9XG4ubW9uYWNvLWVkaXRvci5oYy1ibGFjayAudG9wLXJpZ2h0LXJhZGl1c1x0XHR7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOyB9XG4ubW9uYWNvLWVkaXRvci5oYy1ibGFjayAuYm90dG9tLXJpZ2h0LXJhZGl1c1x0eyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsgfVxuXG4ubW9uYWNvLWVkaXRvci5oYy1saWdodCAudG9wLWxlZnQtcmFkaXVzXHRcdHsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsgfVxuLm1vbmFjby1lZGl0b3IuaGMtbGlnaHQgLmJvdHRvbS1sZWZ0LXJhZGl1c1x0XHR7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IH1cbi5tb25hY28tZWRpdG9yLmhjLWxpZ2h0IC50b3AtcmlnaHQtcmFkaXVzXHRcdHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7IH1cbi5tb25hY28tZWRpdG9yLmhjLWxpZ2h0IC5ib3R0b20tcmlnaHQtcmFkaXVzXHR7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOyB9XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ubW9uYWNvLWVkaXRvciAuY3Vyc29ycy1sYXllciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuY3Vyc29ycy1sYXllciA+IC5jdXJzb3Ige1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qIC0tIHNtb290aC1jYXJldC1hbmltYXRpb24gLS0gKi9cbi5tb25hY28tZWRpdG9yIC5jdXJzb3JzLWxheWVyLmN1cnNvci1zbW9vdGgtY2FyZXQtYW5pbWF0aW9uID4gLmN1cnNvciB7XG5cdHRyYW5zaXRpb246IGFsbCA4MG1zO1xufVxuXG4vKiAtLSBibG9jay1vdXRsaW5lLXN0eWxlIC0tICovXG4ubW9uYWNvLWVkaXRvciAuY3Vyc29ycy1sYXllci5jdXJzb3ItYmxvY2stb3V0bGluZS1zdHlsZSA+IC5jdXJzb3Ige1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cblxuLyogLS0gdW5kZXJsaW5lLXN0eWxlIC0tICovXG4ubW9uYWNvLWVkaXRvciAuY3Vyc29ycy1sYXllci5jdXJzb3ItdW5kZXJsaW5lLXN0eWxlID4gLmN1cnNvciB7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tIHVuZGVybGluZS10aGluLXN0eWxlIC0tICovXG4ubW9uYWNvLWVkaXRvciAuY3Vyc29ycy1sYXllci5jdXJzb3ItdW5kZXJsaW5lLXRoaW4tc3R5bGUgPiAuY3Vyc29yIHtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuXHRib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuQGtleWZyYW1lcyBtb25hY28tY3Vyc29yLXNtb290aCB7XG5cdDAlLFxuXHQyMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0NjAlLFxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgbW9uYWNvLWN1cnNvci1waGFzZSB7XG5cdDAlLFxuXHQyMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0OTAlLFxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgbW9uYWNvLWN1cnNvci1leHBhbmQge1xuXHQwJSxcblx0MjAlIHtcblx0XHR0cmFuc2Zvcm06IHNjYWxlWSgxKTtcblx0fVxuXHQ4MCUsXG5cdDEwMCUge1xuXHRcdHRyYW5zZm9ybTogc2NhbGVZKDApO1xuXHR9XG59XG5cbi5jdXJzb3Itc21vb3RoIHtcblx0YW5pbWF0aW9uOiBtb25hY28tY3Vyc29yLXNtb290aCAwLjVzIGVhc2UtaW4tb3V0IDBzIDIwIGFsdGVybmF0ZTtcbn1cblxuLmN1cnNvci1waGFzZSB7XG5cdGFuaW1hdGlvbjogbW9uYWNvLWN1cnNvci1waGFzZSAwLjVzIGVhc2UtaW4tb3V0IDBzIDIwIGFsdGVybmF0ZTtcbn1cblxuLmN1cnNvci1leHBhbmQgPiAuY3Vyc29yIHtcblx0YW5pbWF0aW9uOiBtb25hY28tY3Vyc29yLWV4cGFuZCAwLjVzIGVhc2UtaW4tb3V0IDBzIDIwIGFsdGVybmF0ZTtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1lZGl0b3IgLmJsb2NrRGVjb3JhdGlvbnMtY29udGFpbmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuYmxvY2tEZWNvcmF0aW9ucy1ibG9jayB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1lZGl0b3IgLm13aCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Y29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JXaGl0ZXNwYWNlLWZvcmVncm91bmQpICFpbXBvcnRhbnQ7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jb250ZXh0LXZpZXcge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5jb250ZXh0LXZpZXcuZml4ZWQge1xuXHRhbGw6IGluaXRpYWw7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRmb250LXNpemU6IDEzcHg7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0Y29sb3I6IGluaGVyaXQ7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tbGlzdCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1vbmFjby1saXN0Lm1vdXNlLXN1cHBvcnQge1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLm1vbmFjby1saXN0ID4gLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQge1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb25hY28tbGlzdC1yb3dzIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4ubW9uYWNvLWxpc3QuaG9yaXpvbnRhbC1zY3JvbGxpbmcgLm1vbmFjby1saXN0LXJvd3Mge1xuXHR3aWR0aDogYXV0bztcblx0bWluLXdpZHRoOiAxMDAlO1xufVxuXG4ubW9uYWNvLWxpc3Qtcm93IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLm1vbmFjby1saXN0Lm1vdXNlLXN1cHBvcnQgLm1vbmFjby1saXN0LXJvdyB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0dG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vKiBmb3IgT1MgWCBiYWxsaXN0aWMgc2Nyb2xsaW5nICovXG4ubW9uYWNvLWxpc3Qtcm93LnNjcm9sbGluZyB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogRm9jdXMgKi9cbi5tb25hY28tbGlzdC5lbGVtZW50LWZvY3VzZWQsXG4ubW9uYWNvLWxpc3Quc2VsZWN0aW9uLXNpbmdsZSxcbi5tb25hY28tbGlzdC5zZWxlY3Rpb24tbXVsdGlwbGUge1xuXHRvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIERuZCAqL1xuLm1vbmFjby1kcmFnLWltYWdlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOiAxcHggN3B4O1xuXHRib3JkZXItcmFkaXVzOiAxMHB4O1xuXHRmb250LXNpemU6IDEycHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogMTAwMDtcbn1cblxuLyogRmlsdGVyICovXG5cbi5tb25hY28tbGlzdC10eXBlLWZpbHRlci1tZXNzYWdlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHBhZGRpbmc6IDQwcHggMWVtIDFlbSAxZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0b3BhY2l0eTogMC43O1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm1vbmFjby1saXN0LXR5cGUtZmlsdGVyLW1lc3NhZ2U6ZW1wdHkge1xuXHRkaXNwbGF5OiBub25lO1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBVc2UgY3VzdG9tIENTUyB2YXJzIHRvIGV4cG9zZSBwYWRkaW5nIGludG8gcGFyZW50IHNlbGVjdCBmb3IgcGFkZGluZyBjYWxjdWxhdGlvbiAqL1xuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLXBhZGRpbmcge1xuXHQtLWRyb3Bkb3duLXBhZGRpbmctdG9wOiAxcHg7XG5cdC0tZHJvcGRvd24tcGFkZGluZy1ib3R0b206IDFweDtcbn1cblxuLmhjLWJsYWNrIC5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1wYWRkaW5nLFxuLmhjLWxpZ2h0IC5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1wYWRkaW5nIHtcblx0LS1kcm9wZG93bi1wYWRkaW5nLXRvcDogM3B4O1xuXHQtLWRyb3Bkb3duLXBhZGRpbmctYm90dG9tOiA0cHg7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xuXHRib3gtc2l6aW5nOlx0Ym9yZGVyLWJveDtcbn1cblxuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lciA+IC5zZWxlY3QtYm94LWRldGFpbHMtcGFuZSA+IC5zZWxlY3QtYm94LWRlc2NyaXB0aW9uLW1hcmtkb3duICoge1xuXHRtYXJnaW46IDA7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kZXRhaWxzLXBhbmUgPiAuc2VsZWN0LWJveC1kZXNjcmlwdGlvbi1tYXJrZG93biBhOmZvY3VzIHtcblx0b3V0bGluZTogMXB4IHNvbGlkIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcblx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kZXRhaWxzLXBhbmUgPiAuc2VsZWN0LWJveC1kZXNjcmlwdGlvbi1tYXJrZG93biBjb2RlIHtcblx0bGluZS1oZWlnaHQ6IDE1cHg7IC8qKiBGb3Igc29tZSByZWFzb24sIHRoaXMgaXMgbmVlZGVkLCBvdGhlcndpc2UgPGNvZGU+IHdpbGwgdGFrZSB1cCAyMHB4IGhlaWdodCAqL1xuXHRmb250LWZhbWlseTogdmFyKC0tbW9uYWNvLW1vbm9zcGFjZS1mb250KTtcbn1cblxuXG4ubW9uYWNvLXNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyLnZpc2libGUge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR3aWR0aDogMXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kcm9wZG93bi1saXN0LWNvbnRhaW5lciB7XG5cdGZsZXg6IDAgMCBhdXRvO1xuXHRhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tZHJvcGRvd24tcGFkZGluZy10b3ApO1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tZHJvcGRvd24tcGFkZGluZy1ib3R0b20pO1xuXHRwYWRkaW5nLWxlZnQ6IDFweDtcblx0cGFkZGluZy1yaWdodDogMXB4O1xuXHR3aWR0aDogMTAwJTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym94LXNpemluZzpcdGJvcmRlci1ib3g7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kZXRhaWxzLXBhbmUge1xuXHRwYWRkaW5nOiA1cHg7XG59XG5cbi5oYy1ibGFjayAubW9uYWNvLXNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyID4gLnNlbGVjdC1ib3gtZHJvcGRvd24tbGlzdC1jb250YWluZXIge1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tZHJvcGRvd24tcGFkZGluZy10b3ApO1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tZHJvcGRvd24tcGFkZGluZy1ib3R0b20pO1xufVxuXG4ubW9uYWNvLXNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyID4gLnNlbGVjdC1ib3gtZHJvcGRvd24tbGlzdC1jb250YWluZXIgLm1vbmFjby1saXN0IC5tb25hY28tbGlzdC1yb3cge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kcm9wZG93bi1saXN0LWNvbnRhaW5lciAubW9uYWNvLWxpc3QgLm1vbmFjby1saXN0LXJvdyA+IC5vcHRpb24tdGV4dCB7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwYWRkaW5nLWxlZnQ6IDMuNXB4O1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lciA+IC5zZWxlY3QtYm94LWRyb3Bkb3duLWxpc3QtY29udGFpbmVyIC5tb25hY28tbGlzdCAubW9uYWNvLWxpc3Qtcm93ID4gLm9wdGlvbi1kZXRhaWwge1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZy1sZWZ0OiAzLjVweDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG9wYWNpdHk6IDAuNztcbn1cblxuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lciA+IC5zZWxlY3QtYm94LWRyb3Bkb3duLWxpc3QtY29udGFpbmVyIC5tb25hY28tbGlzdCAubW9uYWNvLWxpc3Qtcm93ID4gLm9wdGlvbi1kZWNvcmF0b3ItcmlnaHQge1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZy1yaWdodDogMTBweDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0ZmxvYXQ6IHJpZ2h0O1xufVxuXG5cbi8qIEFjY2VwdGVkIENTUyBoaWRpbmcgdGVjaG5pcXVlIGZvciBhY2Nlc3NpYmlsaXR5IHJlYWRlciB0ZXh0ICAqL1xuLyogaHR0cHM6Ly93ZWJhaW0ub3JnL3RlY2huaXF1ZXMvY3NzL2ludmlzaWJsZWNvbnRlbnQvICovXG5cbi5tb25hY28tc2VsZWN0LWJveC1kcm9wZG93bi1jb250YWluZXIgPiAuc2VsZWN0LWJveC1kcm9wZG93bi1saXN0LWNvbnRhaW5lciAubW9uYWNvLWxpc3QgLm1vbmFjby1saXN0LXJvdyA+IC52aXN1YWxseS1oaWRkZW4ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAtMTAwMDBweDtcblx0XHR0b3A6IGF1dG87XG5cdFx0d2lkdGg6IDFweDtcblx0XHRoZWlnaHQ6IDFweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubW9uYWNvLXNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyID4gLnNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyLXdpZHRoLWNvbnRyb2wge1xuXHRmbGV4OiAxIDEgYXV0bztcblx0YWxpZ24tc2VsZjogZmxleC1zdGFydDtcblx0b3BhY2l0eTogMDtcbn1cblxuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lciA+IC5zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lci13aWR0aC1jb250cm9sID4gLndpZHRoLWNvbnRyb2wtZGl2IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0bWF4LWhlaWdodDogMHB4O1xufVxuXG4ubW9uYWNvLXNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyID4gLnNlbGVjdC1ib3gtZHJvcGRvd24tY29udGFpbmVyLXdpZHRoLWNvbnRyb2wgPiAud2lkdGgtY29udHJvbC1kaXYgPiAub3B0aW9uLXRleHQtd2lkdGgtY29udHJvbCB7XG5cdHBhZGRpbmctbGVmdDogNHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiA4cHg7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tc2VsZWN0LWJveCB7XG5cdHdpZHRoOiAxMDAlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLm1vbmFjby1zZWxlY3QtYm94LWRyb3Bkb3duLWNvbnRhaW5lciB7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKiBBY3Rpb25zICovXG5cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0uc2VsZWN0LWNvbnRhaW5lciB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSAubW9uYWNvLXNlbGVjdC1ib3gge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdG1pbi13aWR0aDogMTAwcHg7XG5cdG1pbi1oZWlnaHQ6IDE4cHg7XG5cdHBhZGRpbmc6IDJweCAyM3B4IDJweCA4cHg7XG59XG5cbi5tYWMgLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSAubW9uYWNvLXNlbGVjdC1ib3gge1xuXHRmb250LXNpemU6IDExcHg7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1hY3Rpb24tYmFyIHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4ubW9uYWNvLWFjdGlvbi1iYXIgLmFjdGlvbnMtY29udGFpbmVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHBhZGRpbmc6IDA7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5tb25hY28tYWN0aW9uLWJhci52ZXJ0aWNhbCAuYWN0aW9ucy1jb250YWluZXIge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0cG9zaXRpb246IHJlbGF0aXZlOyAgLyogRE8gTk9UIFJFTU9WRSAtIHRoaXMgaXMgdGhlIGtleSB0byBwcmV2ZW50aW5nIHRoZSBnaG9zdGluZyBpY29uIGJ1ZyBpbiBDaHJvbWUgNDIgKi9cbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbS5kaXNhYmxlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSAuaWNvbixcbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0gLmNvZGljb24ge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSAuY29kaWNvbiB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdHdpZHRoOiAxNnB4O1xuXHRoZWlnaHQ6IDE2cHg7XG59XG5cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWxhYmVsIHtcblx0ZGlzcGxheTogZmxleDtcblx0Zm9udC1zaXplOiAxMXB4O1xuXHRwYWRkaW5nOiAzcHg7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbS5kaXNhYmxlZCAuYWN0aW9uLWxhYmVsLFxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbS5kaXNhYmxlZCAuYWN0aW9uLWxhYmVsOjpiZWZvcmUsXG4ubW9uYWNvLWFjdGlvbi1iYXIgLmFjdGlvbi1pdGVtLmRpc2FibGVkIC5hY3Rpb24tbGFiZWw6aG92ZXIge1xuXHRvcGFjaXR5OiAwLjY7XG59XG5cbi8qIFZlcnRpY2FsIGFjdGlvbnMgKi9cblxuLm1vbmFjby1hY3Rpb24tYmFyLnZlcnRpY2FsIHtcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyLnZlcnRpY2FsIC5hY3Rpb24taXRlbSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubW9uYWNvLWFjdGlvbi1iYXIudmVydGljYWwgLmFjdGlvbi1sYWJlbC5zZXBhcmF0b3Ige1xuXHRkaXNwbGF5OiBibG9jaztcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiYmI7XG5cdHBhZGRpbmctdG9wOiAxcHg7XG5cdG1hcmdpbi1sZWZ0OiAuOGVtO1xuXHRtYXJnaW4tcmlnaHQ6IC44ZW07XG59XG5cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0gLmFjdGlvbi1sYWJlbC5zZXBhcmF0b3Ige1xuXHR3aWR0aDogMXB4O1xuXHRoZWlnaHQ6IDE2cHg7XG5cdG1hcmdpbjogNXB4IDRweCAhaW1wb3J0YW50O1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdG1pbi13aWR0aDogMXB4O1xuXHRwYWRkaW5nOiAwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjYmJiO1xufVxuXG4uc2Vjb25kYXJ5LWFjdGlvbnMgLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24tbGFiZWwge1xuXHRtYXJnaW4tbGVmdDogNnB4O1xufVxuXG4vKiBBY3Rpb24gSXRlbXMgKi9cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0uc2VsZWN0LWNvbnRhaW5lciB7XG5cdG92ZXJmbG93OiBoaWRkZW47IC8qIHNvbWVob3cgdGhlIGRyb3Bkb3duIG92ZXJmbG93cyBpdHMgY29udGFpbmVyLCB3ZSBwcmV2ZW50IGl0IGhlcmUgdG8gbm90IHB1c2ggKi9cblx0ZmxleDogMTtcblx0bWF4LXdpZHRoOiAxNzBweDtcblx0bWluLXdpZHRoOiA2MHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4ubW9uYWNvLWFjdGlvbi1iYXIgLmFjdGlvbi1pdGVtLmFjdGlvbi1kcm9wZG93bi1pdGVtIHtcblx0ZGlzcGxheTogZmxleDtcbn1cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbS5hY3Rpb24tZHJvcGRvd24taXRlbSA+IC5hY3Rpb24tZHJvcGRvd24taXRlbS1zZXBhcmF0b3Ige1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWl0ZW0uYWN0aW9uLWRyb3Bkb3duLWl0ZW0gPiAuYWN0aW9uLWRyb3Bkb3duLWl0ZW0tc2VwYXJhdG9yID4gZGl2IHtcblx0d2lkdGg6IDFweDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1kcm9wZG93biB7XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZzogMDtcbn1cblxuLm1vbmFjby1kcm9wZG93biA+IC5kcm9wZG93bi1sYWJlbCB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0aGVpZ2h0OiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm1vbmFjby1kcm9wZG93biA+IC5kcm9wZG93bi1sYWJlbCA+IC5hY3Rpb24tbGFiZWwuZGlzYWJsZWQge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5tb25hY28tZHJvcGRvd24td2l0aC1wcmltYXJ5IHtcblx0ZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5tb25hY28tZHJvcGRvd24td2l0aC1wcmltYXJ5ID4gLmFjdGlvbi1jb250YWluZXIgPiAuYWN0aW9uLWxhYmVsIHtcblx0bWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ubW9uYWNvLWRyb3Bkb3duLXdpdGgtcHJpbWFyeSA+IC5kcm9wZG93bi1hY3Rpb24tY29udGFpbmVyID4gLm1vbmFjby1kcm9wZG93biA+IC5kcm9wZG93bi1sYWJlbCAuY29kaWNvbltjbGFzcyo9J2NvZGljb24tJ10ge1xuXHRmb250LXNpemU6IDEycHg7XG5cdHBhZGRpbmctbGVmdDogMHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiAwcHg7XG5cdGxpbmUtaGVpZ2h0OiAxNnB4O1xuXHRtYXJnaW4tbGVmdDogLTNweDtcbn1cblxuLm1vbmFjby1kcm9wZG93bi13aXRoLXByaW1hcnkgPiAuZHJvcGRvd24tYWN0aW9uLWNvbnRhaW5lciA+IC5tb25hY28tZHJvcGRvd24gPiAuZHJvcGRvd24tbGFiZWwgPiAuYWN0aW9uLWxhYmVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGJhY2tncm91bmQtc2l6ZTogMTZweDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbS5tZW51LWVudHJ5IC5hY3Rpb24tbGFiZWwuaWNvbiB7XG5cdHdpZHRoOiAxNnB4O1xuXHRoZWlnaHQ6IDE2cHg7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcblx0YmFja2dyb3VuZC1zaXplOiAxNnB4O1xufVxuXG4ubW9uYWNvLWRyb3Bkb3duLXdpdGgtZGVmYXVsdCB7XG5cdGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ubW9uYWNvLWRyb3Bkb3duLXdpdGgtZGVmYXVsdCA+IC5hY3Rpb24tY29udGFpbmVyID4gLmFjdGlvbi1sYWJlbCB7XG5cdG1hcmdpbi1yaWdodDogMDtcbn1cblxuLm1vbmFjby1kcm9wZG93bi13aXRoLWRlZmF1bHQgPiAuYWN0aW9uLWNvbnRhaW5lci5tZW51LWVudHJ5ID4gLmFjdGlvbi1sYWJlbC5pY29uIHtcblx0d2lkdGg6IDE2cHg7XG5cdGhlaWdodDogMTZweDtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuXHRiYWNrZ3JvdW5kLXNpemU6IDE2cHg7XG59XG5cbi5tb25hY28tZHJvcGRvd24td2l0aC1kZWZhdWx0ID4gLmRyb3Bkb3duLWFjdGlvbi1jb250YWluZXIgPiAubW9uYWNvLWRyb3Bkb3duID4gLmRyb3Bkb3duLWxhYmVsIC5jb2RpY29uW2NsYXNzKj0nY29kaWNvbi0nXSB7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0cGFkZGluZy1sZWZ0OiAwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDBweDtcblx0bGluZS1oZWlnaHQ6IDE2cHg7XG5cdG1hcmdpbi1sZWZ0OiAtM3B4O1xufVxuXG4ubW9uYWNvLWRyb3Bkb3duLXdpdGgtZGVmYXVsdCA+IC5kcm9wZG93bi1hY3Rpb24tY29udGFpbmVyID4gLm1vbmFjby1kcm9wZG93biA+IC5kcm9wZG93bi1sYWJlbCA+IC5hY3Rpb24tbGFiZWwge1xuXHRkaXNwbGF5OiBibG9jaztcblx0YmFja2dyb3VuZC1zaXplOiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ucXVpY2staW5wdXQtd2lkZ2V0IHtcblx0Zm9udC1zaXplOiAxM3B4O1xufVxuXG4ucXVpY2staW5wdXQtd2lkZ2V0IC5tb25hY28taGlnaGxpZ2h0ZWQtbGFiZWwgLmhpZ2hsaWdodCxcbi5xdWljay1pbnB1dC13aWRnZXQgLm1vbmFjby1oaWdobGlnaHRlZC1sYWJlbCAuaGlnaGxpZ2h0IHtcblx0Y29sb3I6ICMwMDY2QkY7XG59XG5cbi52cyAucXVpY2staW5wdXQtd2lkZ2V0IC5tb25hY28tbGlzdC1yb3cuZm9jdXNlZCAubW9uYWNvLWhpZ2hsaWdodGVkLWxhYmVsIC5oaWdobGlnaHQsXG4udnMgLnF1aWNrLWlucHV0LXdpZGdldCAubW9uYWNvLWxpc3Qtcm93LmZvY3VzZWQgLm1vbmFjby1oaWdobGlnaHRlZC1sYWJlbCAuaGlnaGxpZ2h0IHtcblx0Y29sb3I6ICM5RERERkY7XG59XG5cbi52cy1kYXJrIC5xdWljay1pbnB1dC13aWRnZXQgLm1vbmFjby1oaWdobGlnaHRlZC1sYWJlbCAuaGlnaGxpZ2h0LFxuLnZzLWRhcmsgLnF1aWNrLWlucHV0LXdpZGdldCAubW9uYWNvLWhpZ2hsaWdodGVkLWxhYmVsIC5oaWdobGlnaHQge1xuXHRjb2xvcjogIzAwOTdmYjtcbn1cblxuLmhjLWJsYWNrIC5xdWljay1pbnB1dC13aWRnZXQgLm1vbmFjby1oaWdobGlnaHRlZC1sYWJlbCAuaGlnaGxpZ2h0LFxuLmhjLWJsYWNrIC5xdWljay1pbnB1dC13aWRnZXQgLm1vbmFjby1oaWdobGlnaHRlZC1sYWJlbCAuaGlnaGxpZ2h0IHtcblx0Y29sb3I6ICNGMzg1MTg7XG59XG5cbi5oYy1saWdodCAucXVpY2staW5wdXQtd2lkZ2V0IC5tb25hY28taGlnaGxpZ2h0ZWQtbGFiZWwgLmhpZ2hsaWdodCxcbi5oYy1saWdodCAucXVpY2staW5wdXQtd2lkZ2V0IC5tb25hY28taGlnaGxpZ2h0ZWQtbGFiZWwgLmhpZ2hsaWdodCB7XG5cdGNvbG9yOiAjMEY0QTg1O1xufVxuXG4ubW9uYWNvLWtleWJpbmRpbmcgPiAubW9uYWNvLWtleWJpbmRpbmcta2V5IHtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjEsIDIyMSwgMjIxLCAwLjQpO1xuXHRib3JkZXI6IHNvbGlkIDFweCByZ2JhKDIwNCwgMjA0LCAyMDQsIDAuNCk7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMTg3LCAxODcsIDE4NywgMC40KTtcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgxODcsIDE4NywgMTg3LCAwLjQpO1xuXHRjb2xvcjogIzU1NTtcbn1cblxuLmhjLWJsYWNrIC5tb25hY28ta2V5YmluZGluZyA+IC5tb25hY28ta2V5YmluZGluZy1rZXkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiBzb2xpZCAxcHggcmdiKDExMSwgMTk1LCAyMjMpO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRjb2xvcjogI2ZmZjtcbn1cblxuLmhjLWxpZ2h0IC5tb25hY28ta2V5YmluZGluZyA+IC5tb25hY28ta2V5YmluZGluZy1rZXkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiBzb2xpZCAxcHggIzBGNEE4NTtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0Y29sb3I6ICMyOTI5Mjk7XG59XG5cbi52cy1kYXJrIC5tb25hY28ta2V5YmluZGluZyA+IC5tb25hY28ta2V5YmluZGluZy1rZXkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMTcpO1xuXHRib3JkZXI6IHNvbGlkIDFweCByZ2JhKDUxLCA1MSwgNTEsIDAuNik7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoNjgsIDY4LCA2OCwgMC42KTtcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSg2OCwgNjgsIDY4LCAwLjYpO1xuXHRjb2xvcjogI2NjYztcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuOnJvb3Qge1xuXHQtLXZzY29kZS1zYXNoLXNpemU6IDRweDtcblx0LS12c2NvZGUtc2FzaC1ob3Zlci1zaXplOiA0cHg7XG59XG5cbi5tb25hY28tc2FzaCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogMzU7XG5cdHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLm1vbmFjby1zYXNoLmRpc2FibGVkIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tb25hY28tc2FzaC5tYWMudmVydGljYWwge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5tb25hY28tc2FzaC52ZXJ0aWNhbC5taW5pbXVtIHtcblx0Y3Vyc29yOiBlLXJlc2l6ZTtcbn1cblxuLm1vbmFjby1zYXNoLnZlcnRpY2FsLm1heGltdW0ge1xuXHRjdXJzb3I6IHctcmVzaXplO1xufVxuXG4ubW9uYWNvLXNhc2gubWFjLmhvcml6b250YWwge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5tb25hY28tc2FzaC5ob3Jpem9udGFsLm1pbmltdW0ge1xuXHRjdXJzb3I6IHMtcmVzaXplO1xufVxuXG4ubW9uYWNvLXNhc2guaG9yaXpvbnRhbC5tYXhpbXVtIHtcblx0Y3Vyc29yOiBuLXJlc2l6ZTtcbn1cblxuLm1vbmFjby1zYXNoLmRpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tb25hY28tc2FzaC52ZXJ0aWNhbCB7XG5cdGN1cnNvcjogZXctcmVzaXplO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiB2YXIoLS12c2NvZGUtc2FzaC1zaXplKTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4ubW9uYWNvLXNhc2guaG9yaXpvbnRhbCB7XG5cdGN1cnNvcjogbnMtcmVzaXplO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiB2YXIoLS12c2NvZGUtc2FzaC1zaXplKTtcbn1cblxuLm1vbmFjby1zYXNoOm5vdCguZGlzYWJsZWQpID4gLm9ydGhvZ29uYWwtZHJhZy1oYW5kbGUge1xuXHRjb250ZW50OiBcIiBcIjtcblx0aGVpZ2h0OiBjYWxjKHZhcigtLXZzY29kZS1zYXNoLXNpemUpICogMik7XG5cdHdpZHRoOiBjYWxjKHZhcigtLXZzY29kZS1zYXNoLXNpemUpICogMik7XG5cdHotaW5kZXg6IDEwMDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGN1cnNvcjogYWxsLXNjcm9sbDtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4ubW9uYWNvLXNhc2guaG9yaXpvbnRhbC5vcnRob2dvbmFsLWVkZ2Utbm9ydGg6bm90KC5kaXNhYmxlZClcblx0PiAub3J0aG9nb25hbC1kcmFnLWhhbmRsZS5zdGFydCxcbi5tb25hY28tc2FzaC5ob3Jpem9udGFsLm9ydGhvZ29uYWwtZWRnZS1zb3V0aDpub3QoLmRpc2FibGVkKVxuXHQ+IC5vcnRob2dvbmFsLWRyYWctaGFuZGxlLmVuZCB7XG5cdGN1cnNvcjogbndzZS1yZXNpemU7XG59XG5cbi5tb25hY28tc2FzaC5ob3Jpem9udGFsLm9ydGhvZ29uYWwtZWRnZS1ub3J0aDpub3QoLmRpc2FibGVkKVxuXHQ+IC5vcnRob2dvbmFsLWRyYWctaGFuZGxlLmVuZCxcbi5tb25hY28tc2FzaC5ob3Jpem9udGFsLm9ydGhvZ29uYWwtZWRnZS1zb3V0aDpub3QoLmRpc2FibGVkKVxuXHQ+IC5vcnRob2dvbmFsLWRyYWctaGFuZGxlLnN0YXJ0IHtcblx0Y3Vyc29yOiBuZXN3LXJlc2l6ZTtcbn1cblxuLm1vbmFjby1zYXNoLnZlcnRpY2FsID4gLm9ydGhvZ29uYWwtZHJhZy1oYW5kbGUuc3RhcnQge1xuXHRsZWZ0OiBjYWxjKHZhcigtLXZzY29kZS1zYXNoLXNpemUpICogLTAuNSk7XG5cdHRvcDogY2FsYyh2YXIoLS12c2NvZGUtc2FzaC1zaXplKSAqIC0xKTtcbn1cbi5tb25hY28tc2FzaC52ZXJ0aWNhbCA+IC5vcnRob2dvbmFsLWRyYWctaGFuZGxlLmVuZCB7XG5cdGxlZnQ6IGNhbGModmFyKC0tdnNjb2RlLXNhc2gtc2l6ZSkgKiAtMC41KTtcblx0Ym90dG9tOiBjYWxjKHZhcigtLXZzY29kZS1zYXNoLXNpemUpICogLTEpO1xufVxuLm1vbmFjby1zYXNoLmhvcml6b250YWwgPiAub3J0aG9nb25hbC1kcmFnLWhhbmRsZS5zdGFydCB7XG5cdHRvcDogY2FsYyh2YXIoLS12c2NvZGUtc2FzaC1zaXplKSAqIC0wLjUpO1xuXHRsZWZ0OiBjYWxjKHZhcigtLXZzY29kZS1zYXNoLXNpemUpICogLTEpO1xufVxuLm1vbmFjby1zYXNoLmhvcml6b250YWwgPiAub3J0aG9nb25hbC1kcmFnLWhhbmRsZS5lbmQge1xuXHR0b3A6IGNhbGModmFyKC0tdnNjb2RlLXNhc2gtc2l6ZSkgKiAtMC41KTtcblx0cmlnaHQ6IGNhbGModmFyKC0tdnNjb2RlLXNhc2gtc2l6ZSkgKiAtMSk7XG59XG5cbi5tb25hY28tc2FzaDpiZWZvcmUge1xuXHRjb250ZW50OiAnJztcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5tb25hY28td29ya2JlbmNoOm5vdCgucmVkdWNlLW1vdGlvbikgLm1vbmFjby1zYXNoOmJlZm9yZSB7XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLW91dDtcbn1cblxuLm1vbmFjby1zYXNoLmhvdmVyOmJlZm9yZSxcbi5tb25hY28tc2FzaC5hY3RpdmU6YmVmb3JlIHtcblx0YmFja2dyb3VuZDogdmFyKC0tdnNjb2RlLXNhc2gtaG92ZXJCb3JkZXIpO1xufVxuXG4ubW9uYWNvLXNhc2gudmVydGljYWw6YmVmb3JlIHtcblx0d2lkdGg6IHZhcigtLXZzY29kZS1zYXNoLWhvdmVyLXNpemUpO1xuXHRsZWZ0OiBjYWxjKDUwJSAtICh2YXIoLS12c2NvZGUtc2FzaC1ob3Zlci1zaXplKSAvIDIpKTtcbn1cblxuLm1vbmFjby1zYXNoLmhvcml6b250YWw6YmVmb3JlIHtcblx0aGVpZ2h0OiB2YXIoLS12c2NvZGUtc2FzaC1ob3Zlci1zaXplKTtcblx0dG9wOiBjYWxjKDUwJSAtICh2YXIoLS12c2NvZGUtc2FzaC1ob3Zlci1zaXplKSAvIDIpKTtcbn1cblxuLnBvaW50ZXItZXZlbnRzLWRpc2FibGVkIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyoqIERlYnVnICoqL1xuXG4ubW9uYWNvLXNhc2guZGVidWcge1xuXHRiYWNrZ3JvdW5kOiBjeWFuO1xufVxuXG4ubW9uYWNvLXNhc2guZGVidWcuZGlzYWJsZWQge1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDI1NSwgMjU1LCAwLjIpO1xufVxuXG4ubW9uYWNvLXNhc2guZGVidWc6bm90KC5kaXNhYmxlZCkgPiAub3J0aG9nb25hbC1kcmFnLWhhbmRsZSB7XG5cdGJhY2tncm91bmQ6IHJlZDtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1zcGxpdC12aWV3MiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLm1vbmFjby1zcGxpdC12aWV3MiA+IC5zYXNoLWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tb25hY28tc3BsaXQtdmlldzIgPiAuc2FzaC1jb250YWluZXIgPiAubW9uYWNvLXNhc2gge1xuXHRwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbn1cblxuLm1vbmFjby1zcGxpdC12aWV3MiA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50IHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLm1vbmFjby1zcGxpdC12aWV3MiA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNwbGl0LXZpZXctY29udGFpbmVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubW9uYWNvLXNwbGl0LXZpZXcyID4gLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQgPiAuc3BsaXQtdmlldy1jb250YWluZXIgPiAuc3BsaXQtdmlldy12aWV3IHtcblx0d2hpdGUtc3BhY2U6IGluaXRpYWw7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm1vbmFjby1zcGxpdC12aWV3MiA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNwbGl0LXZpZXctY29udGFpbmVyID4gLnNwbGl0LXZpZXctdmlldzpub3QoLnZpc2libGUpIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLm1vbmFjby1zcGxpdC12aWV3Mi52ZXJ0aWNhbCA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNwbGl0LXZpZXctY29udGFpbmVyID4gLnNwbGl0LXZpZXctdmlldyB7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4ubW9uYWNvLXNwbGl0LXZpZXcyLmhvcml6b250YWwgPiAubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zcGxpdC12aWV3LWNvbnRhaW5lciA+IC5zcGxpdC12aWV3LXZpZXcge1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb25hY28tc3BsaXQtdmlldzIuc2VwYXJhdG9yLWJvcmRlciA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNwbGl0LXZpZXctY29udGFpbmVyID4gLnNwbGl0LXZpZXctdmlldzpub3QoOmZpcnN0LWNoaWxkKTo6YmVmb3JlIHtcblx0Y29udGVudDogJyAnO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0ei1pbmRleDogNTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlcGFyYXRvci1ib3JkZXIpO1xufVxuXG4ubW9uYWNvLXNwbGl0LXZpZXcyLnNlcGFyYXRvci1ib3JkZXIuaG9yaXpvbnRhbCA+IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50ID4gLnNwbGl0LXZpZXctY29udGFpbmVyID4gLnNwbGl0LXZpZXctdmlldzpub3QoOmZpcnN0LWNoaWxkKTo6YmVmb3JlIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMXB4O1xufVxuXG4ubW9uYWNvLXNwbGl0LXZpZXcyLnNlcGFyYXRvci1ib3JkZXIudmVydGljYWwgPiAubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCA+IC5zcGxpdC12aWV3LWNvbnRhaW5lciA+IC5zcGxpdC12aWV3LXZpZXc6bm90KDpmaXJzdC1jaGlsZCk6OmJlZm9yZSB7XG5cdGhlaWdodDogMXB4O1xuXHR3aWR0aDogMTAwJTtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby10YWJsZSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1vbmFjby10YWJsZSA+IC5tb25hY28tc3BsaXQtdmlldzIge1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5tb25hY28tdGFibGUgPiAubW9uYWNvLWxpc3Qge1xuXHRmbGV4OiAxO1xufVxuXG4ubW9uYWNvLXRhYmxlLXRyIHtcblx0ZGlzcGxheTogZmxleDtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4ubW9uYWNvLXRhYmxlLXRoIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubW9uYWNvLXRhYmxlLXRoLFxuLm1vbmFjby10YWJsZS10ZCB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGZsZXgtc2hyaW5rOiAwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm1vbmFjby10YWJsZSA+IC5tb25hY28tc3BsaXQtdmlldzIgLm1vbmFjby1zYXNoLnZlcnRpY2FsOjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlwiO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IGNhbGModmFyKC0tdnNjb2RlLXNhc2gtc2l6ZSkgLyAyKTtcblx0d2lkdGg6IDA7XG5cdGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5tb25hY28td29ya2JlbmNoOm5vdCgucmVkdWNlLW1vdGlvbikgLm1vbmFjby10YWJsZSA+IC5tb25hY28tc3BsaXQtdmlldzIsXG4ubW9uYWNvLXdvcmtiZW5jaDpub3QoLnJlZHVjZS1tb3Rpb24pIC5tb25hY28tdGFibGUgPiAubW9uYWNvLXNwbGl0LXZpZXcyIC5tb25hY28tc2FzaC52ZXJ0aWNhbDo6YmVmb3JlIHtcblx0dHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZS1vdXQ7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tY3VzdG9tLXRvZ2dsZSB7XG5cdG1hcmdpbi1sZWZ0OiAycHg7XG5cdGZsb2F0OiBsZWZ0O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHdpZHRoOiAyMHB4O1xuXHRoZWlnaHQ6IDIwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdHBhZGRpbmc6IDFweDtcblx0Ym94LXNpemluZzpcdGJvcmRlci1ib3g7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubW9uYWNvLWN1c3RvbS10b2dnbGU6aG92ZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtaW5wdXRPcHRpb24taG92ZXJCYWNrZ3JvdW5kKTtcbn1cblxuLmhjLWJsYWNrIC5tb25hY28tY3VzdG9tLXRvZ2dsZTpob3Zlcixcbi5oYy1saWdodCAubW9uYWNvLWN1c3RvbS10b2dnbGU6aG92ZXIge1xuXHRib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tdnNjb2RlLWZvY3VzQm9yZGVyKTtcbn1cblxuLmhjLWJsYWNrIC5tb25hY28tY3VzdG9tLXRvZ2dsZSxcbi5oYy1saWdodCAubW9uYWNvLWN1c3RvbS10b2dnbGUge1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4uaGMtYmxhY2sgLm1vbmFjby1jdXN0b20tdG9nZ2xlOmhvdmVyLFxuLmhjLWxpZ2h0IC5tb25hY28tY3VzdG9tLXRvZ2dsZTpob3ZlciB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi5tb25hY28tY3VzdG9tLXRvZ2dsZS5tb25hY28tY2hlY2tib3gge1xuXHRoZWlnaHQ6IDE4cHg7XG5cdHdpZHRoOiAxOHB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRtYXJnaW4tcmlnaHQ6IDlweDtcblx0bWFyZ2luLWxlZnQ6IDBweDtcblx0cGFkZGluZzogMHB4O1xuXHRvcGFjaXR5OiAxO1xuXHRiYWNrZ3JvdW5kLXNpemU6IDE2cHggIWltcG9ydGFudDtcbn1cblxuLyogaGlkZSBjaGVjayB3aGVuIHVuY2hlY2tlZCAqL1xuLm1vbmFjby1jdXN0b20tdG9nZ2xlLm1vbmFjby1jaGVja2JveDpub3QoLmNoZWNrZWQpOjpiZWZvcmUge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28taW5wdXRib3gge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAwO1xuXHRib3gtc2l6aW5nOlx0Ym9yZGVyLWJveDtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXG5cdC8qIEN1c3RvbWl6YWJsZSAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbi5tb25hY28taW5wdXRib3ggPiAuaWJ3cmFwcGVyID4gLmlucHV0LFxuLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIgPiAubWlycm9yIHtcblxuXHQvKiBDdXN0b21pemFibGUgKi9cblx0cGFkZGluZzogNHB4IDZweDtcbn1cblxuLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb25hY28taW5wdXRib3ggPiAuaWJ3cmFwcGVyID4gLmlucHV0IHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRib3gtc2l6aW5nOlx0Ym9yZGVyLWJveDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdGJvcmRlcjogbm9uZTtcblx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0cmVzaXplOiBub25lO1xuXHRjb2xvcjogaW5oZXJpdDtcbn1cblxuLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIgPiBpbnB1dCB7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubW9uYWNvLWlucHV0Ym94ID4gLmlid3JhcHBlciA+IHRleHRhcmVhLmlucHV0IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRmlyZWZveDogaGlkZSBzY3JvbGxiYXJzICovXG5cdG91dGxpbmU6IG5vbmU7XG59XG5cbi5tb25hY28taW5wdXRib3ggPiAuaWJ3cmFwcGVyID4gdGV4dGFyZWEuaW5wdXQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0ZGlzcGxheTogbm9uZTsgLyogQ2hyb21lICsgU2FmYXJpOiBoaWRlIHNjcm9sbGJhciAqL1xufVxuXG4ubW9uYWNvLWlucHV0Ym94ID4gLmlid3JhcHBlciA+IHRleHRhcmVhLmlucHV0LmVtcHR5IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIgPiAubWlycm9yIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi8qIENvbnRleHQgdmlldyAqL1xuXG4ubW9uYWNvLWlucHV0Ym94LWNvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubW9uYWNvLWlucHV0Ym94LWNvbnRhaW5lciAubW9uYWNvLWlucHV0Ym94LW1lc3NhZ2Uge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3gtc2l6aW5nOlx0Ym9yZGVyLWJveDtcblx0cGFkZGluZzogMC40ZW07XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IDE3cHg7XG5cdG1hcmdpbi10b3A6IC0xcHg7XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLyogQWN0aW9uIGJhciBzdXBwb3J0ICovXG4ubW9uYWNvLWlucHV0Ym94IC5tb25hY28tYWN0aW9uLWJhciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDJweDtcblx0dG9wOiA0cHg7XG59XG5cbi5tb25hY28taW5wdXRib3ggLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSB7XG5cdG1hcmdpbi1sZWZ0OiAycHg7XG59XG5cbi5tb25hY28taW5wdXRib3ggLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24taXRlbSAuY29kaWNvbiB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHdpZHRoOiAxNnB4O1xuXHRoZWlnaHQ6IDE2cHg7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiAtLS0tLS0tLS0tIEZpbmQgaW5wdXQgLS0tLS0tLS0tLSAqL1xuXG4ubW9uYWNvLWZpbmRJbnB1dCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1vbmFjby1maW5kSW5wdXQgLm1vbmFjby1pbnB1dGJveCB7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5tb25hY28tZmluZElucHV0ID4gLmNvbnRyb2xzIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDNweDtcblx0cmlnaHQ6IDJweDtcbn1cblxuLnZzIC5tb25hY28tZmluZElucHV0LmRpc2FibGVkIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI0UxRTFFMTtcbn1cblxuLyogVGhlbWluZyAqL1xuLnZzLWRhcmsgLm1vbmFjby1maW5kSW5wdXQuZGlzYWJsZWQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuXG4vKiBIaWdobGlnaHRpbmcgKi9cbi5tb25hY28tZmluZElucHV0LmhpZ2hsaWdodC0wIC5jb250cm9scyxcbi5oYy1saWdodCAubW9uYWNvLWZpbmRJbnB1dC5oaWdobGlnaHQtMCAuY29udHJvbHMge1xuXHRhbmltYXRpb246IG1vbmFjby1maW5kSW5wdXQtaGlnaGxpZ2h0LTAgMTAwbXMgbGluZWFyIDBzO1xufVxuXG4ubW9uYWNvLWZpbmRJbnB1dC5oaWdobGlnaHQtMSAuY29udHJvbHMsXG4uaGMtbGlnaHQgLm1vbmFjby1maW5kSW5wdXQuaGlnaGxpZ2h0LTEgLmNvbnRyb2xzIHtcblx0YW5pbWF0aW9uOiBtb25hY28tZmluZElucHV0LWhpZ2hsaWdodC0xIDEwMG1zIGxpbmVhciAwcztcbn1cblxuLmhjLWJsYWNrIC5tb25hY28tZmluZElucHV0LmhpZ2hsaWdodC0wIC5jb250cm9scyxcbi52cy1kYXJrICAubW9uYWNvLWZpbmRJbnB1dC5oaWdobGlnaHQtMCAuY29udHJvbHMge1xuXHRhbmltYXRpb246IG1vbmFjby1maW5kSW5wdXQtaGlnaGxpZ2h0LWRhcmstMCAxMDBtcyBsaW5lYXIgMHM7XG59XG5cbi5oYy1ibGFjayAubW9uYWNvLWZpbmRJbnB1dC5oaWdobGlnaHQtMSAuY29udHJvbHMsXG4udnMtZGFyayAgLm1vbmFjby1maW5kSW5wdXQuaGlnaGxpZ2h0LTEgLmNvbnRyb2xzIHtcblx0YW5pbWF0aW9uOiBtb25hY28tZmluZElucHV0LWhpZ2hsaWdodC1kYXJrLTEgMTAwbXMgbGluZWFyIDBzO1xufVxuXG5Aa2V5ZnJhbWVzIG1vbmFjby1maW5kSW5wdXQtaGlnaGxpZ2h0LTAge1xuXHQwJSB7IGJhY2tncm91bmQ6IHJnYmEoMjUzLCAyNTUsIDAsIDAuOCk7IH1cblx0MTAwJSB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG59XG5Aa2V5ZnJhbWVzIG1vbmFjby1maW5kSW5wdXQtaGlnaGxpZ2h0LTEge1xuXHQwJSB7IGJhY2tncm91bmQ6IHJnYmEoMjUzLCAyNTUsIDAsIDAuOCk7IH1cblx0LyogTWFkZSBpbnRlbnRpb25hbGx5IGRpZmZlcmVudCBzdWNoIHRoYXQgdGhlIENTUyBtaW5pZmllciBkb2VzIG5vdCBjb2xsYXBzZSB0aGUgdHdvIGFuaW1hdGlvbnMgaW50byBhIHNpbmdsZSBvbmUqL1xuXHQ5OSUgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxufVxuXG5Aa2V5ZnJhbWVzIG1vbmFjby1maW5kSW5wdXQtaGlnaGxpZ2h0LWRhcmstMCB7XG5cdDAlIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ0KTsgfVxuXHQxMDAlIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbn1cbkBrZXlmcmFtZXMgbW9uYWNvLWZpbmRJbnB1dC1oaWdobGlnaHQtZGFyay0xIHtcblx0MCUgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDQpOyB9XG5cdC8qIE1hZGUgaW50ZW50aW9uYWxseSBkaWZmZXJlbnQgc3VjaCB0aGF0IHRoZSBDU1MgbWluaWZpZXIgZG9lcyBub3QgY29sbGFwc2UgdGhlIHR3byBhbmltYXRpb25zIGludG8gYSBzaW5nbGUgb25lKi9cblx0OTklIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby10bC1yb3cge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1vbmFjby10bC1yb3cuZGlzYWJsZWQge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG4ubW9uYWNvLXRsLWluZGVudCB7XG5cdGhlaWdodDogMTAwJTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDE2cHg7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uaGlkZS1hcnJvd3MgLm1vbmFjby10bC1pbmRlbnQge1xuXHRsZWZ0OiAxMnB4O1xufVxuXG4ubW9uYWNvLXRsLWluZGVudCA+IC5pbmRlbnQtZ3VpZGUge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGhlaWdodDogMTAwJTtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm1vbmFjby13b3JrYmVuY2g6bm90KC5yZWR1Y2UtbW90aW9uKSAubW9uYWNvLXRsLWluZGVudCA+IC5pbmRlbnQtZ3VpZGUge1xuXHR0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xcyBsaW5lYXI7XG59XG5cbi5tb25hY28tdGwtdHdpc3RpZSxcbi5tb25hY28tdGwtY29udGVudHMge1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb25hY28tdGwtdHdpc3RpZSB7XG5cdGZvbnQtc2l6ZTogMTBweDtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdHBhZGRpbmctcmlnaHQ6IDZweDtcblx0ZmxleC1zaHJpbms6IDA7XG5cdHdpZHRoOiAxNnB4O1xuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoM3B4KTtcbn1cblxuLm1vbmFjby10bC1jb250ZW50cyB7XG5cdGZsZXg6IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tb25hY28tdGwtdHdpc3RpZTo6YmVmb3JlIHtcblx0Ym9yZGVyLXJhZGl1czogMjBweDtcbn1cblxuLm1vbmFjby10bC10d2lzdGllLmNvbGxhcHNlZDo6YmVmb3JlIHtcblx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cblxuLm1vbmFjby10bC10d2lzdGllLmNvZGljb24tdHJlZS1pdGVtLWxvYWRpbmc6OmJlZm9yZSB7XG5cdC8qIFVzZSBzdGVwcyB0byB0aHJvdHRsZSBGUFMgdG8gcmVkdWNlIENQVSB1c2FnZSAqL1xuXHRhbmltYXRpb246IGNvZGljb24tc3BpbiAxLjI1cyBzdGVwcygzMCkgaW5maW5pdGU7XG59XG5cbi5tb25hY28tdHJlZS10eXBlLWZpbHRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRwYWRkaW5nOiAzcHg7XG5cdG1heC13aWR0aDogMjAwcHg7XG5cdHotaW5kZXg6IDEwMDtcblx0bWFyZ2luOiAwIDZweDtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tdnNjb2RlLXdpZGdldC1ib3JkZXIpO1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG5cbi5tb25hY28td29ya2JlbmNoOm5vdCgucmVkdWNlLW1vdGlvbikgLm1vbmFjby10cmVlLXR5cGUtZmlsdGVyIHtcblx0dHJhbnNpdGlvbjogdG9wIDAuM3M7XG59XG5cbi5tb25hY28tdHJlZS10eXBlLWZpbHRlci5kaXNhYmxlZCB7XG5cdHRvcDogLTQwcHggIWltcG9ydGFudDtcbn1cblxuLm1vbmFjby10cmVlLXR5cGUtZmlsdGVyLWdyYWIge1xuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRjdXJzb3I6IGdyYWI7XG5cdG1hcmdpbi1yaWdodDogMnB4O1xufVxuXG4ubW9uYWNvLXRyZWUtdHlwZS1maWx0ZXItZ3JhYi5ncmFiYmluZyB7XG5cdGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbi5tb25hY28tdHJlZS10eXBlLWZpbHRlci1pbnB1dCB7XG5cdGZsZXg6IDE7XG59XG5cbi5tb25hY28tdHJlZS10eXBlLWZpbHRlci1pbnB1dCAubW9uYWNvLWlucHV0Ym94IHtcblx0aGVpZ2h0OiAyM3B4O1xufVxuXG4ubW9uYWNvLXRyZWUtdHlwZS1maWx0ZXItaW5wdXQgLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIgPiAuaW5wdXQsXG4ubW9uYWNvLXRyZWUtdHlwZS1maWx0ZXItaW5wdXQgLm1vbmFjby1pbnB1dGJveCA+IC5pYndyYXBwZXIgPiAubWlycm9yIHtcblx0cGFkZGluZzogMnB4IDRweDtcbn1cblxuLm1vbmFjby10cmVlLXR5cGUtZmlsdGVyLWlucHV0IC5tb25hY28tZmluZElucHV0ID4gLmNvbnRyb2xzIHtcblx0dG9wOiAycHg7XG59XG5cbi5tb25hY28tdHJlZS10eXBlLWZpbHRlci1hY3Rpb25iYXIge1xuXHRtYXJnaW4tbGVmdDogNHB4O1xufVxuXG4ubW9uYWNvLXRyZWUtdHlwZS1maWx0ZXItYWN0aW9uYmFyIC5tb25hY28tYWN0aW9uLWJhciAuYWN0aW9uLWxhYmVsIHtcblx0cGFkZGluZzogMnB4O1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLXRleHQtYnV0dG9uIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0ZGlzcGxheTogZmxleDtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IDRweDtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZzY29kZS1idXR0b24tYm9yZGVyLCB0cmFuc3BhcmVudCk7XG5cdGxpbmUtaGVpZ2h0OiAxOHB4O1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uOmZvY3VzIHtcblx0b3V0bGluZS1vZmZzZXQ6IDJweCAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uOmhvdmVyIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tb25hY28tYnV0dG9uLmRpc2FibGVkOmZvY3VzLFxuLm1vbmFjby1idXR0b24uZGlzYWJsZWQge1xuXHRvcGFjaXR5OiAwLjQgIWltcG9ydGFudDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uIC5jb2RpY29uIHtcblx0bWFyZ2luOiAwIDAuMmVtO1xuXHRjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uLm1vbmFjby10ZXh0LWJ1dHRvbi13aXRoLXNob3J0LWxhYmVsIHtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRwYWRkaW5nOiAwIDRweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0aGVpZ2h0OiAyOHB4O1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uLm1vbmFjby10ZXh0LWJ1dHRvbi13aXRoLXNob3J0LWxhYmVsID4gLm1vbmFjby1idXR0b24tbGFiZWwge1xuXHRmbGV4LWJhc2lzOiAxMDAlO1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uLm1vbmFjby10ZXh0LWJ1dHRvbi13aXRoLXNob3J0LWxhYmVsID4gLm1vbmFjby1idXR0b24tbGFiZWwtc2hvcnQge1xuXHRmbGV4LWdyb3c6IDE7XG5cdHdpZHRoOiAwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubW9uYWNvLXRleHQtYnV0dG9uLm1vbmFjby10ZXh0LWJ1dHRvbi13aXRoLXNob3J0LWxhYmVsID4gLm1vbmFjby1idXR0b24tbGFiZWwsXG4ubW9uYWNvLXRleHQtYnV0dG9uLm1vbmFjby10ZXh0LWJ1dHRvbi13aXRoLXNob3J0LWxhYmVsID4gLm1vbmFjby1idXR0b24tbGFiZWwtc2hvcnQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC1zdHlsZTogaW5oZXJpdDtcblx0cGFkZGluZzogNHB4IDA7XG59XG5cbi5tb25hY28tYnV0dG9uLWRyb3Bkb3duIHtcblx0ZGlzcGxheTogZmxleDtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kaXNhYmxlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24gPiAubW9uYWNvLWJ1dHRvbjpmb2N1cyB7XG5cdG91dGxpbmUtb2Zmc2V0OiAtMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5tb25hY28tYnV0dG9uLWRyb3Bkb3duLmRpc2FibGVkID4gLm1vbmFjby1idXR0b24uZGlzYWJsZWQsXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kaXNhYmxlZCA+IC5tb25hY28tYnV0dG9uLmRpc2FibGVkOmZvY3VzLFxuLm1vbmFjby1idXR0b24tZHJvcGRvd24uZGlzYWJsZWQgPiAubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi1zZXBhcmF0b3Ige1xuXHRvcGFjaXR5OiAwLjQgIWltcG9ydGFudDtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24gPiAubW9uYWNvLWJ1dHRvbi5tb25hY28tdGV4dC1idXR0b24ge1xuXHRib3JkZXItcmlnaHQtd2lkdGg6IDAgIWltcG9ydGFudDtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24gLm1vbmFjby1idXR0b24tZHJvcGRvd24tc2VwYXJhdG9yIHtcblx0cGFkZGluZzogNHB4IDA7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24gLm1vbmFjby1idXR0b24tZHJvcGRvd24tc2VwYXJhdG9yID4gZGl2IHtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMXB4O1xufVxuXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93biA+IC5tb25hY28tYnV0dG9uLm1vbmFjby1kcm9wZG93bi1idXR0b24ge1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12c2NvZGUtYnV0dG9uLWJvcmRlciwgdHJhbnNwYXJlbnQpO1xuXHRib3JkZXItbGVmdC13aWR0aDogMCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24gPiAubW9uYWNvLWJ1dHRvbi5tb25hY28tdGV4dC1idXR0b24ge1xuXHRib3JkZXItcmFkaXVzOiAycHggMCAwIDJweDtcbn1cblxuLm1vbmFjby1kZXNjcmlwdGlvbi1idXR0b24ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRtYXJnaW46IDRweCA1cHg7IC8qIGFsbG93cyBidXR0b24gZm9jdXMgb3V0bGluZSB0byBiZSB2aXNpYmxlICovXG59XG5cbi5tb25hY28tZGVzY3JpcHRpb24tYnV0dG9uIC5tb25hY28tYnV0dG9uLWRlc2NyaXB0aW9uIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRmb250LXNpemU6IDExcHg7XG5cdHBhZGRpbmc6IDRweCAyMHB4O1xufVxuXG4ubW9uYWNvLWRlc2NyaXB0aW9uLWJ1dHRvbiAubW9uYWNvLWJ1dHRvbi1sYWJlbCxcbi5tb25hY28tZGVzY3JpcHRpb24tYnV0dG9uIC5tb25hY28tYnV0dG9uLWRlc2NyaXB0aW9uIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5tb25hY28tZGVzY3JpcHRpb24tYnV0dG9uIC5tb25hY28tYnV0dG9uLWxhYmVsID4gLmNvZGljb24sXG4ubW9uYWNvLWRlc2NyaXB0aW9uLWJ1dHRvbiAubW9uYWNvLWJ1dHRvbi1kZXNjcmlwdGlvbiA+IC5jb2RpY29uIHtcblx0bWFyZ2luOiAwIDAuMmVtO1xuXHRjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuXG4vKiBkZWZhdWx0IGNvbG9yIHN0eWxlcyAtIGJhc2VkIG9uIENTUyB2YXJpYWJsZXMgKi9cblxuLm1vbmFjby1idXR0b24uZGVmYXVsdC1jb2xvcnMsXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kZWZhdWx0LWNvbG9ycyA+IC5tb25hY28tYnV0dG9ue1xuXHRjb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1mb3JlZ3JvdW5kKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1iYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1idXR0b24uZGVmYXVsdC1jb2xvcnM6aG92ZXIsXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kZWZhdWx0LWNvbG9ycyA+IC5tb25hY28tYnV0dG9uOmhvdmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1ob3ZlckJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLWJ1dHRvbi5kZWZhdWx0LWNvbG9ycy5zZWNvbmRhcnksXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kZWZhdWx0LWNvbG9ycyA+IC5tb25hY28tYnV0dG9uLnNlY29uZGFyeSB7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtYnV0dG9uLXNlY29uZGFyeUZvcmVncm91bmQpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtYnV0dG9uLXNlY29uZGFyeUJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLWJ1dHRvbi5kZWZhdWx0LWNvbG9ycy5zZWNvbmRhcnk6aG92ZXIsXG4ubW9uYWNvLWJ1dHRvbi1kcm9wZG93bi5kZWZhdWx0LWNvbG9ycyA+IC5tb25hY28tYnV0dG9uLnNlY29uZGFyeTpob3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1idXR0b24tc2Vjb25kYXJ5SG92ZXJCYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24uZGVmYXVsdC1jb2xvcnMgLm1vbmFjby1idXR0b24tZHJvcGRvd24tc2VwYXJhdG9yIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXZzY29kZS1idXR0b24tYm9yZGVyKTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXZzY29kZS1idXR0b24tYm9yZGVyKTtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24uZGVmYXVsdC1jb2xvcnMgLm1vbmFjby1idXR0b24uc2Vjb25kYXJ5ICsgLm1vbmFjby1idXR0b24tZHJvcGRvd24tc2VwYXJhdG9yIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1zZWNvbmRhcnlCYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1idXR0b24tZHJvcGRvd24uZGVmYXVsdC1jb2xvcnMgLm1vbmFjby1idXR0b24tZHJvcGRvd24tc2VwYXJhdG9yID4gZGl2IHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWJ1dHRvbi1zZXBhcmF0b3IpO1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWNvdW50LWJhZGdlIHtcblx0cGFkZGluZzogM3B4IDZweDtcblx0Ym9yZGVyLXJhZGl1czogMTFweDtcblx0Zm9udC1zaXplOiAxMXB4O1xuXHRtaW4td2lkdGg6IDE4cHg7XG5cdG1pbi1oZWlnaHQ6IDE4cHg7XG5cdGxpbmUtaGVpZ2h0OiAxMXB4O1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm1vbmFjby1jb3VudC1iYWRnZS5sb25nIHtcblx0cGFkZGluZzogMnB4IDNweDtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRtaW4taGVpZ2h0OiBhdXRvO1xuXHRsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLXByb2dyZXNzLWNvbnRhaW5lciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDVweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyoga2VlcCBwcm9ncmVzcyBiaXQgaW4gYm91bmRzICovXG59XG5cbi5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iaXQge1xuXHR3aWR0aDogMiU7XG5cdGhlaWdodDogNXB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyLmFjdGl2ZSAucHJvZ3Jlc3MtYml0IHtcblx0ZGlzcGxheTogaW5oZXJpdDtcbn1cblxuLm1vbmFjby1wcm9ncmVzcy1jb250YWluZXIuZGlzY3JldGUgLnByb2dyZXNzLWJpdCB7XG5cdGxlZnQ6IDA7XG5cdHRyYW5zaXRpb246IHdpZHRoIDEwMG1zIGxpbmVhcjtcbn1cblxuLm1vbmFjby1wcm9ncmVzcy1jb250YWluZXIuZGlzY3JldGUuZG9uZSAucHJvZ3Jlc3MtYml0IHtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyLmluZmluaXRlIC5wcm9ncmVzcy1iaXQge1xuXHRhbmltYXRpb24tbmFtZTogcHJvZ3Jlc3M7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogNHM7XG5cdGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG59XG5cbi5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyLmluZmluaXRlLmluZmluaXRlLWxvbmctcnVubmluZyAucHJvZ3Jlc3MtYml0IHtcblx0Lypcblx0XHRUaGUgbW9yZSBzbW9vdGggYGxpbmVhcmAgdGltaW5nIGZ1bmN0aW9uIGNhbiBjYXVzZVxuXHRcdGhpZ2hlciBHUFUgY29uc3VtcHRpb24gYXMgaW5kaWNhdGVkIGluXG5cdFx0aHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC92c2NvZGUvaXNzdWVzLzk3OTAwICZcblx0XHRodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L3ZzY29kZS9pc3N1ZXMvMTM4Mzk2XG5cdCovXG5cdGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHN0ZXBzKDEwMCk7XG59XG5cbi8qKlxuICogVGhlIHByb2dyZXNzIGJpdCBoYXMgYSB3aWR0aDogMiUgKDEvNTApIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyLiBUaGUgYW5pbWF0aW9uIG1vdmVzIGl0IGZyb20gMCUgdG8gMTAwJSBvZlxuICogdGhhdCBjb250YWluZXIuIFNpbmNlIHRyYW5zbGF0ZVggaXMgcmVsYXRpdmUgdG8gdGhlIHByb2dyZXNzIGJpdCBzaXplLCB3ZSBoYXZlIHRvIG11bHRpcGxlIGl0IHdpdGhcbiAqIGl0cyByZWxhdGl2ZSBzaXplIHRvIHRoZSBwYXJlbnQgY29udGFpbmVyOlxuICogcGFyZW50IHdpZHRoOiA1MDAwJVxuICogICAgYml0IHdpZHRoOiAxMDAlXG4gKiB0cmFuc2xhdGVYIHNob3VsZCBiZSBhcyBmb2xsb3c6XG4gKiAgNTAlOiA1MDAwJSAqIDUwJSAtIDUwJSAoc2V0IHRvIGNlbnRlcikgPSAyNDUwJVxuICogMTAwJTogNTAwMCUgKiAxMDAlIC0gMTAwJSAoZG8gbm90IG92ZXJmbG93KSA9IDQ5MDAlXG4gKi9cbkBrZXlmcmFtZXMgcHJvZ3Jlc3MgeyBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBzY2FsZVgoMSkgfSA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwMCUpIHNjYWxlWCgzKSB9IHRvIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQ5MDAlKSBzY2FsZVgoMSkgfSB9XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5xdWljay1pbnB1dC13aWRnZXQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiA2MDBweDtcblx0ei1pbmRleDogMjU1MDtcblx0bGVmdDogNTAlO1xuXHRtYXJnaW4tbGVmdDogLTMwMHB4O1xuXHQtd2Via2l0LWFwcC1yZWdpb246IG5vLWRyYWc7XG5cdGJvcmRlci1yYWRpdXM6IDZweDtcbn1cblxuLnF1aWNrLWlucHV0LXRpdGxlYmFyIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4OyAvKiBtYXRjaCBib3JkZXIgcmFkaXVzIG9mIHF1aWNrIGlucHV0IHdpZGdldCAqL1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xufVxuXG4ucXVpY2staW5wdXQtbGVmdC1hY3Rpb24tYmFyIHtcblx0ZGlzcGxheTogZmxleDtcblx0bWFyZ2luLWxlZnQ6IDRweDtcblx0ZmxleDogMTtcbn1cblxuLnF1aWNrLWlucHV0LXRpdGxlIHtcblx0cGFkZGluZzogM3B4IDBweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnF1aWNrLWlucHV0LXJpZ2h0LWFjdGlvbi1iYXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRtYXJnaW4tcmlnaHQ6IDRweDtcblx0ZmxleDogMTtcbn1cblxuLnF1aWNrLWlucHV0LXJpZ2h0LWFjdGlvbi1iYXIgPiAuYWN0aW9ucy1jb250YWluZXIge1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ucXVpY2staW5wdXQtdGl0bGViYXIgLm1vbmFjby1hY3Rpb24tYmFyIC5hY3Rpb24tbGFiZWwuY29kaWNvbiB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0cGFkZGluZzogMnB4O1xufVxuXG4ucXVpY2staW5wdXQtZGVzY3JpcHRpb24ge1xuXHRtYXJnaW46IDZweCA2cHggNnB4IDExcHg7XG59XG5cbi5xdWljay1pbnB1dC1oZWFkZXIgLnF1aWNrLWlucHV0LWRlc2NyaXB0aW9uIHtcblx0bWFyZ2luOiA0cHggMnB4O1xuXHRmbGV4OiAxO1xufVxuXG4ucXVpY2staW5wdXQtaGVhZGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0cGFkZGluZzogOHB4IDZweCA2cHggNnB4O1xufVxuXG4ucXVpY2staW5wdXQtd2lkZ2V0LmhpZGRlbi1pbnB1dCAucXVpY2staW5wdXQtaGVhZGVyIHtcblx0LyogcmVkdWNlIG1hcmdpbnMgYW5kIHBhZGRpbmdzIHdoZW4gaW5wdXQgYm94IGhpZGRlbiAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ucXVpY2staW5wdXQtYW5kLW1lc3NhZ2Uge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRmbGV4LWdyb3c6IDE7XG5cdG1pbi13aWR0aDogMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucXVpY2staW5wdXQtY2hlY2stYWxsIHtcblx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRtYXJnaW46IDA7XG59XG5cbi5xdWljay1pbnB1dC1maWx0ZXIge1xuXHRmbGV4LWdyb3c6IDE7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnF1aWNrLWlucHV0LWJveCB7XG5cdGZsZXgtZ3JvdzogMTtcbn1cblxuLnF1aWNrLWlucHV0LXdpZGdldC5zaG93LWNoZWNrYm94ZXMgLnF1aWNrLWlucHV0LWJveCxcbi5xdWljay1pbnB1dC13aWRnZXQuc2hvdy1jaGVja2JveGVzIC5xdWljay1pbnB1dC1tZXNzYWdlIHtcblx0bWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLnF1aWNrLWlucHV0LXZpc2libGUtY291bnQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IC0xMDAwMHB4O1xufVxuXG4ucXVpY2staW5wdXQtY291bnQge1xuXHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDRweDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnF1aWNrLWlucHV0LWNvdW50IC5tb25hY28tY291bnQtYmFkZ2Uge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRwYWRkaW5nOiAycHggNHB4O1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cdG1pbi1oZWlnaHQ6IGF1dG87XG5cdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5xdWljay1pbnB1dC1hY3Rpb24ge1xuXHRtYXJnaW4tbGVmdDogNnB4O1xufVxuXG4ucXVpY2staW5wdXQtYWN0aW9uIC5tb25hY28tdGV4dC1idXR0b24ge1xuXHRmb250LXNpemU6IDExcHg7XG5cdHBhZGRpbmc6IDAgNnB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRoZWlnaHQ6IDI1cHg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5xdWljay1pbnB1dC1tZXNzYWdlIHtcblx0bWFyZ2luLXRvcDogLTFweDtcblx0cGFkZGluZzogNXB4O1xuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuXG4ucXVpY2staW5wdXQtbWVzc2FnZSA+IC5jb2RpY29uIHtcblx0bWFyZ2luOiAwIDAuMmVtO1xuXHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG59XG5cbi8qIExpbmtzIGluIGRlc2NyaXB0aW9ucyAmIHZhbGlkYXRpb25zICovXG4ucXVpY2staW5wdXQtbWVzc2FnZSBhIHtcblx0Y29sb3I6IGluaGVyaXQ7XG59XG5cbi5xdWljay1pbnB1dC1wcm9ncmVzcy5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucXVpY2staW5wdXQtcHJvZ3Jlc3MubW9uYWNvLXByb2dyZXNzLWNvbnRhaW5lcixcbi5xdWljay1pbnB1dC1wcm9ncmVzcy5tb25hY28tcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iaXQge1xuXHRoZWlnaHQ6IDJweDtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3Qge1xuXHRsaW5lLWhlaWdodDogMjJweDtcbn1cblxuLnF1aWNrLWlucHV0LXdpZGdldC5oaWRkZW4taW5wdXQgLnF1aWNrLWlucHV0LWxpc3Qge1xuXHRtYXJnaW4tdG9wOiA0cHg7IC8qIHJlZHVjZSBtYXJnaW5zIHdoZW4gaW5wdXQgYm94IGhpZGRlbiAqL1xuXHRwYWRkaW5nLWJvdHRvbTogNHB4O1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAubW9uYWNvLWxpc3Qge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRtYXgtaGVpZ2h0OiBjYWxjKDIwICogMjJweCk7XG5cdHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50IHtcblx0cGFkZGluZzogMHB4IDVweDtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3QtZW50cnkge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHBhZGRpbmc6IDAgNnB4O1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1lbnRyeS5xdWljay1pbnB1dC1saXN0LXNlcGFyYXRvci1ib3JkZXIge1xuXHRib3JkZXItdG9wLXdpZHRoOiAxcHg7XG5cdGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAubW9uYWNvLWxpc3Qtcm93IHtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAubW9uYWNvLWxpc3Qtcm93W2RhdGEtaW5kZXg9XCIwXCJdIC5xdWljay1pbnB1dC1saXN0LWVudHJ5LnF1aWNrLWlucHV0LWxpc3Qtc2VwYXJhdG9yLWJvcmRlciB7XG5cdGJvcmRlci10b3Atc3R5bGU6IG5vbmU7XG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LWxhYmVsIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ZGlzcGxheTogZmxleDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRmbGV4OiAxO1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1jaGVja2JveCB7XG5cdGFsaWduLXNlbGY6IGNlbnRlcjtcblx0bWFyZ2luOiAwO1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1pY29uIHtcblx0YmFja2dyb3VuZC1zaXplOiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0cGFkZGluZy1yaWdodDogNnB4O1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAyMnB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3Qtcm93cyB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGZsZXg6IDE7XG5cdG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5xdWljay1pbnB1dC13aWRnZXQuc2hvdy1jaGVja2JveGVzIC5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LXJvd3Mge1xuXHRtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnF1aWNrLWlucHV0LXdpZGdldCAucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1jaGVja2JveCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4ucXVpY2staW5wdXQtd2lkZ2V0LnNob3ctY2hlY2tib3hlcyAucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1jaGVja2JveCB7XG5cdGRpc3BsYXk6IGlubGluZTtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3Qtcm93cyA+IC5xdWljay1pbnB1dC1saXN0LXJvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LXJvd3MgPiAucXVpY2staW5wdXQtbGlzdC1yb3cgLm1vbmFjby1pY29uLWxhYmVsLFxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3Qtcm93cyA+IC5xdWljay1pbnB1dC1saXN0LXJvdyAubW9uYWNvLWljb24tbGFiZWwgLm1vbmFjby1pY29uLWxhYmVsLWNvbnRhaW5lciA+IC5tb25hY28taWNvbi1uYW1lLWNvbnRhaW5lciB7XG5cdGZsZXg6IDE7IC8qIG1ha2Ugc3VyZSB0aGUgaWNvbiBsYWJlbCBncm93cyB3aXRoaW4gdGhlIHJvdyAqL1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1yb3dzID4gLnF1aWNrLWlucHV0LWxpc3Qtcm93IC5jb2RpY29uW2NsYXNzKj0nY29kaWNvbi0nXSB7XG5cdHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3Qtcm93cyAubW9uYWNvLWhpZ2hsaWdodGVkLWxhYmVsID4gc3BhbiB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LWVudHJ5IC5xdWljay1pbnB1dC1saXN0LWVudHJ5LWtleWJpbmRpbmcge1xuXHRtYXJnaW4tcmlnaHQ6IDhweDsgLyogc2VwYXJhdGUgZnJvbSB0aGUgc2VwYXJhdG9yIGxhYmVsIG9yIHNjcm9sbGJhciBpZiBhbnkgKi9cbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3QtbGFiZWwtbWV0YSB7XG5cdG9wYWNpdHk6IDAuNztcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5tb25hY28taGlnaGxpZ2h0ZWQtbGFiZWwgLmhpZ2hsaWdodCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1lbnRyeSAucXVpY2staW5wdXQtbGlzdC1zZXBhcmF0b3Ige1xuXHRtYXJnaW4tcmlnaHQ6IDRweDsgLyogc2VwYXJhdGUgZnJvbSBrZXliaW5kaW5ncyBvciBhY3Rpb25zICovXG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LWVudHJ5LWFjdGlvbi1iYXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4OiAwO1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3QtZW50cnktYWN0aW9uLWJhciAuYWN0aW9uLWxhYmVsIHtcblx0Lypcblx0ICogQnkgZGVmYXVsdCwgYWN0aW9ucyBpbiB0aGUgcXVpY2sgaW5wdXQgYWN0aW9uIGJhciBhcmUgaGlkZGVuXG5cdCAqIHVudGlsIGhvdmVyZWQgb3ZlciB0aGVtIG9yIHNlbGVjdGVkLlxuXHQgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3QtZW50cnktYWN0aW9uLWJhciAuYWN0aW9uLWxhYmVsLmNvZGljb24ge1xuXHRtYXJnaW4tcmlnaHQ6IDRweDtcblx0cGFkZGluZzogMHB4IDJweCAycHggMnB4O1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1lbnRyeS1hY3Rpb24tYmFyIHtcblx0bWFyZ2luLXRvcDogMXB4O1xufVxuXG4ucXVpY2staW5wdXQtbGlzdCAucXVpY2staW5wdXQtbGlzdC1lbnRyeS1hY3Rpb24tYmFyIHtcblx0bWFyZ2luLXJpZ2h0OiA0cHg7IC8qIHNlcGFyYXRlIGZyb20gc2Nyb2xsYmFyICovXG59XG5cbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LWVudHJ5IC5xdWljay1pbnB1dC1saXN0LWVudHJ5LWFjdGlvbi1iYXIgLmFjdGlvbi1sYWJlbC5hbHdheXMtdmlzaWJsZSxcbi5xdWljay1pbnB1dC1saXN0IC5xdWljay1pbnB1dC1saXN0LWVudHJ5OmhvdmVyIC5xdWljay1pbnB1dC1saXN0LWVudHJ5LWFjdGlvbi1iYXIgLmFjdGlvbi1sYWJlbCxcbi5xdWljay1pbnB1dC1saXN0IC5tb25hY28tbGlzdC1yb3cuZm9jdXNlZCAucXVpY2staW5wdXQtbGlzdC1lbnRyeS1hY3Rpb24tYmFyIC5hY3Rpb24tbGFiZWwge1xuXHRkaXNwbGF5OiBmbGV4O1xufVxuXG4vKiBmb2N1c2VkIGl0ZW1zIGluIHF1aWNrIHBpY2sgKi9cbi5xdWljay1pbnB1dC1saXN0IC5tb25hY28tbGlzdC1yb3cuZm9jdXNlZCAubW9uYWNvLWtleWJpbmRpbmcta2V5LFxuLnF1aWNrLWlucHV0LWxpc3QgLm1vbmFjby1saXN0LXJvdy5mb2N1c2VkIC5xdWljay1pbnB1dC1saXN0LWVudHJ5IC5xdWljay1pbnB1dC1saXN0LXNlcGFyYXRvciB7XG5cdGNvbG9yOiBpbmhlcml0XG59XG4ucXVpY2staW5wdXQtbGlzdCAubW9uYWNvLWxpc3Qtcm93LmZvY3VzZWQgLm1vbmFjby1rZXliaW5kaW5nLWtleSB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi8qIFF1aWNrIGlucHV0IHNlcGFyYXRvcnMgYXMgZnVsbC1yb3cgaXRlbSAqL1xuLnF1aWNrLWlucHV0LWxpc3QgLnF1aWNrLWlucHV0LWxpc3Qtc2VwYXJhdG9yLWFzLWl0ZW0ge1xuXHRmb250LXdlaWdodDogNjAwO1xuXHRmb250LXNpemU6IDEycHg7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIC0tLS0tLS0tLS0gSWNvbiBsYWJlbCAtLS0tLS0tLS0tICovXG5cbi5tb25hY28taWNvbi1sYWJlbCB7XG5cdGRpc3BsYXk6IGZsZXg7IC8qIHJlcXVpcmVkIGZvciBpY29ucyBzdXBwb3J0IDpiZWZvcmUgcnVsZSAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm1vbmFjby1pY29uLWxhYmVsOjpiZWZvcmUge1xuXG5cdC8qIHN2ZyBpY29ucyByZW5kZXJlZCBhcyBiYWNrZ3JvdW5kIGltYWdlICovXG5cdGJhY2tncm91bmQtc2l6ZTogMTZweDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHBhZGRpbmctcmlnaHQ6IDZweDtcblx0d2lkdGg6IDE2cHg7XG5cdGhlaWdodDogMjJweDtcblx0bGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdC8qIGZvbnRzIGljb25zICovXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG5cdGZsZXgtc2hyaW5rOiAwOyAvKiBmaXggZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvdnNjb2RlL2lzc3Vlcy8xMzc4NyAqL1xufVxuXG4ubW9uYWNvLWljb24tbGFiZWwtY29udGFpbmVyLmRpc2FibGVkIHtcblx0Y29sb3I6IHZhcigtLXZzY29kZS1kaXNhYmxlZEZvcmVncm91bmQpO1xufVxuLm1vbmFjby1pY29uLWxhYmVsID4gLm1vbmFjby1pY29uLWxhYmVsLWNvbnRhaW5lciB7XG5cdG1pbi13aWR0aDogMDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdGZsZXg6IDE7XG59XG5cbi5tb25hY28taWNvbi1sYWJlbCA+IC5tb25hY28taWNvbi1sYWJlbC1jb250YWluZXIgPiAubW9uYWNvLWljb24tbmFtZS1jb250YWluZXIgPiAubGFiZWwtbmFtZSB7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHR3aGl0ZS1zcGFjZTogcHJlOyAvKiBlbmFibGUgdG8gc2hvdyBsYWJlbHMgdGhhdCBpbmNsdWRlIG11bHRpcGxlIHdoaXRlc3BhY2VzICovXG59XG5cbi5tb25hY28taWNvbi1sYWJlbCA+IC5tb25hY28taWNvbi1sYWJlbC1jb250YWluZXIgPiAubW9uYWNvLWljb24tbmFtZS1jb250YWluZXIgPiAubGFiZWwtbmFtZSA+IC5sYWJlbC1zZXBhcmF0b3Ige1xuXHRtYXJnaW46IDAgMnB4O1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5tb25hY28taWNvbi1sYWJlbCA+IC5tb25hY28taWNvbi1sYWJlbC1jb250YWluZXIgPiAubW9uYWNvLWljb24tZGVzY3JpcHRpb24tY29udGFpbmVyID4gLmxhYmVsLWRlc2NyaXB0aW9uIHtcblx0b3BhY2l0eTogLjc7XG5cdG1hcmdpbi1sZWZ0OiAwLjVlbTtcblx0Zm9udC1zaXplOiAwLjllbTtcblx0d2hpdGUtc3BhY2U6IHByZTsgLyogZW5hYmxlIHRvIHNob3cgbGFiZWxzIHRoYXQgaW5jbHVkZSBtdWx0aXBsZSB3aGl0ZXNwYWNlcyAqL1xufVxuXG4ubW9uYWNvLWljb24tbGFiZWwubm93cmFwID4gLm1vbmFjby1pY29uLWxhYmVsLWNvbnRhaW5lciA+IC5tb25hY28taWNvbi1kZXNjcmlwdGlvbi1jb250YWluZXIgPiAubGFiZWwtZGVzY3JpcHRpb257XG5cdHdoaXRlLXNwYWNlOiBub3dyYXBcbn1cblxuLnZzIC5tb25hY28taWNvbi1sYWJlbCA+IC5tb25hY28taWNvbi1sYWJlbC1jb250YWluZXIgPiAubW9uYWNvLWljb24tZGVzY3JpcHRpb24tY29udGFpbmVyID4gLmxhYmVsLWRlc2NyaXB0aW9uIHtcblx0b3BhY2l0eTogLjk1O1xufVxuXG4ubW9uYWNvLWljb24tbGFiZWwuaXRhbGljID4gLm1vbmFjby1pY29uLWxhYmVsLWNvbnRhaW5lciA+IC5tb25hY28taWNvbi1uYW1lLWNvbnRhaW5lciA+IC5sYWJlbC1uYW1lLFxuLm1vbmFjby1pY29uLWxhYmVsLml0YWxpYyA+IC5tb25hY28taWNvbi1sYWJlbC1jb250YWluZXIgPiAubW9uYWNvLWljb24tZGVzY3JpcHRpb24tY29udGFpbmVyID4gLmxhYmVsLWRlc2NyaXB0aW9uIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ubW9uYWNvLWljb24tbGFiZWwuZGVwcmVjYXRlZCB7XG5cdHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuXHRvcGFjaXR5OiAwLjY2O1xufVxuXG4vKiBtYWtlIHN1cmUgYXBwbHkgaXRhbGljIGZvbnQgc3R5bGUgdG8gZGVjb3JhdGlvbnMgYXMgd2VsbCAqL1xuLm1vbmFjby1pY29uLWxhYmVsLml0YWxpYzo6YWZ0ZXIge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5tb25hY28taWNvbi1sYWJlbC5zdHJpa2V0aHJvdWdoID4gLm1vbmFjby1pY29uLWxhYmVsLWNvbnRhaW5lciA+IC5tb25hY28taWNvbi1uYW1lLWNvbnRhaW5lciA+IC5sYWJlbC1uYW1lLFxuLm1vbmFjby1pY29uLWxhYmVsLnN0cmlrZXRocm91Z2ggPiAubW9uYWNvLWljb24tbGFiZWwtY29udGFpbmVyID4gLm1vbmFjby1pY29uLWRlc2NyaXB0aW9uLWNvbnRhaW5lciA+IC5sYWJlbC1kZXNjcmlwdGlvbiB7XG5cdHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuXG4ubW9uYWNvLWljb24tbGFiZWw6OmFmdGVyIHtcblx0b3BhY2l0eTogMC43NTtcblx0Zm9udC1zaXplOiA5MCU7XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdG1hcmdpbjogYXV0byAxNnB4IDAgNXB4OyAvKiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L3ZzY29kZS9pc3N1ZXMvMTEzMjIzICovXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogbWFrZSBzdXJlIHNlbGVjdGlvbiBjb2xvciB3aW5zIHdoZW4gYSBsYWJlbCBpcyBiZWluZyBzZWxlY3RlZCAqL1xuLm1vbmFjby1saXN0OmZvY3VzIC5zZWxlY3RlZCAubW9uYWNvLWljb24tbGFiZWwsIC8qIGxpc3QgKi9cbi5tb25hY28tbGlzdDpmb2N1cyAuc2VsZWN0ZWQgLm1vbmFjby1pY29uLWxhYmVsOjphZnRlclxue1xuXHRjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuXG4ubW9uYWNvLWxpc3Qtcm93LmZvY3VzZWQuc2VsZWN0ZWQgLmxhYmVsLWRlc2NyaXB0aW9uLFxuLm1vbmFjby1saXN0LXJvdy5zZWxlY3RlZCAubGFiZWwtZGVzY3JpcHRpb24ge1xuXHRvcGFjaXR5OiAuODtcbn1cbiIsICIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1vbmFjby1rZXliaW5kaW5nIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0bGluZS1oZWlnaHQ6IDEwcHg7XG59XG5cbi5tb25hY28ta2V5YmluZGluZyA+IC5tb25hY28ta2V5YmluZGluZy1rZXkge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMXB4O1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGZvbnQtc2l6ZTogMTFweDtcblx0cGFkZGluZzogM3B4IDVweDtcblx0bWFyZ2luOiAwIDJweDtcbn1cblxuLm1vbmFjby1rZXliaW5kaW5nID4gLm1vbmFjby1rZXliaW5kaW5nLWtleTpmaXJzdC1jaGlsZCB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ubW9uYWNvLWtleWJpbmRpbmcgPiAubW9uYWNvLWtleWJpbmRpbmcta2V5Omxhc3QtY2hpbGQge1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5tb25hY28ta2V5YmluZGluZyA+IC5tb25hY28ta2V5YmluZGluZy1rZXktc2VwYXJhdG9yIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubW9uYWNvLWtleWJpbmRpbmcgPiAubW9uYWNvLWtleWJpbmRpbmcta2V5LWNob3JkLXNlcGFyYXRvciB7XG5cdHdpZHRoOiA2cHg7XG59XG4iLCAiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lcy13aWRnZXQge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmRpZmYtaGlkZGVuLWxpbmVzIHtcblx0aGVpZ2h0OiAwcHg7IC8qIFRoZSBjaGlsZHJlbiBlYWNoIGhhdmUgYSBmaXhlZCBoZWlnaHQsIHRoZSB0cmFuc2Zvcm0gY29uZnVzZXMgdGhlIGJyb3dzZXIgKi9cblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTBweCk7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0bGluZS1oZWlnaHQ6IDE0cHg7XG59XG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lczpub3QoLmRyYWdnaW5nKSAudG9wOmhvdmVyLFxuLm1vbmFjby1lZGl0b3IgLmRpZmYtaGlkZGVuLWxpbmVzOm5vdCguZHJhZ2dpbmcpIC5ib3R0b206aG92ZXIsXG4ubW9uYWNvLWVkaXRvciAuZGlmZi1oaWRkZW4tbGluZXMgLnRvcC5kcmFnZ2luZyxcbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lcyAuYm90dG9tLmRyYWdnaW5nIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWZvY3VzQm9yZGVyKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmRpZmYtaGlkZGVuLWxpbmVzIC50b3AsXG4ubW9uYWNvLWVkaXRvciAuZGlmZi1oaWRkZW4tbGluZXMgLmJvdHRvbSB7XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLW91dDtcblx0aGVpZ2h0OiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXHRib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Y3Vyc29yOiBucy1yZXNpemU7XG59XG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lcyAudG9wIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCA0cHgpO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuZGlmZi1oaWRkZW4tbGluZXMgLmJvdHRvbSB7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTZweCk7XG59XG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLXVuY2hhbmdlZC1saW5lcyB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLXVuY2hhbmdlZENvZGVCYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLm5vTW9kaWZpY2F0aW9uc092ZXJsYXkge1xuXHR6LWluZGV4OiAxO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS12c2NvZGUtZWRpdG9yLWJhY2tncm91bmQpO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lcyAuY2VudGVyIHtcblx0YmFja2dyb3VuZDogdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItdW5jaGFuZ2VkUmVnaW9uQmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci11bmNoYW5nZWRSZWdpb25Gb3JlZ3JvdW5kKTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdGhlaWdodDogMjRweDtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmRpZmYtaGlkZGVuLWxpbmVzIC5jZW50ZXIgc3Bhbi5jb2RpY29uIHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmRpZmYtaGlkZGVuLWxpbmVzIC5jZW50ZXIgYTpob3ZlciAuY29kaWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0Y29sb3I6IHZhcigtLXZzY29kZS1lZGl0b3JMaW5rLWFjdGl2ZUZvcmVncm91bmQpICFpbXBvcnRhbnQ7XG59XG5cbi5tb25hY28tZWRpdG9yIC5kaWZmLWhpZGRlbi1saW5lcyBkaXYuYnJlYWRjcnVtYi1pdGVtIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuZGlmZi1oaWRkZW4tbGluZXMgZGl2LmJyZWFkY3J1bWItaXRlbTpob3ZlciB7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yTGluay1hY3RpdmVGb3JlZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLm1vdmVkT3JpZ2luYWwge1xuXHRib3JkZXI6IDJweCBzb2xpZCB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1tb3ZlLWJvcmRlcik7XG59XG5cbi5tb25hY28tZWRpdG9yIC5tb3ZlZE1vZGlmaWVkIHtcblx0Ym9yZGVyOiAycHggc29saWQgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItbW92ZS1ib3JkZXIpO1xufVxuXG4ubW9uYWNvLWVkaXRvciAubW92ZWRPcmlnaW5hbC5jdXJyZW50TW92ZSwgLm1vbmFjby1lZGl0b3IgLm1vdmVkTW9kaWZpZWQuY3VycmVudE1vdmUge1xuXHRib3JkZXI6IDJweCBzb2xpZCB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1tb3ZlQWN0aXZlLWJvcmRlcik7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLm1vdmVkLWJsb2Nrcy1saW5lcyBwYXRoLmN1cnJlbnRNb3ZlIHtcblx0c3Ryb2tlOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1tb3ZlQWN0aXZlLWJvcmRlcik7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLm1vdmVkLWJsb2Nrcy1saW5lcyBwYXRoIHtcblx0cG9pbnRlci1ldmVudHM6IHZpc2libGVzdHJva2U7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLm1vdmVkLWJsb2Nrcy1saW5lcyAuYXJyb3cge1xuXHRmaWxsOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1tb3ZlLWJvcmRlcik7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLm1vdmVkLWJsb2Nrcy1saW5lcyAuYXJyb3cuY3VycmVudE1vdmUge1xuXHRmaWxsOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1tb3ZlQWN0aXZlLWJvcmRlcik7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLm1vdmVkLWJsb2Nrcy1saW5lcyAuYXJyb3ctcmVjdGFuZ2xlIHtcblx0ZmlsbDogdmFyKC0tdnNjb2RlLWVkaXRvci1iYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAubW92ZWQtYmxvY2tzLWxpbmVzIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAubW92ZWQtYmxvY2tzLWxpbmVzIHBhdGgge1xuXHRmaWxsOiBub25lO1xuXHRzdHJva2U6IHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLW1vdmUtYm9yZGVyKTtcblx0c3Ryb2tlLXdpZHRoOiAyO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuY2hhci1kZWxldGUuZGlmZi1yYW5nZS1lbXB0eSB7XG5cdG1hcmdpbi1sZWZ0OiAtMXB4O1xuXHRib3JkZXItbGVmdDogc29saWQgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItcmVtb3ZlZFRleHRCYWNrZ3JvdW5kKSAzcHg7XG59XG5cbi5tb25hY28tZWRpdG9yIC5jaGFyLWluc2VydC5kaWZmLXJhbmdlLWVtcHR5IHtcblx0Ym9yZGVyLWxlZnQ6IHNvbGlkIHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWluc2VydGVkVGV4dEJhY2tncm91bmQpIDNweDtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmZvbGQtdW5jaGFuZ2VkIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmLW1vdmVkLWNvZGUtYmxvY2sge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHRtYXJnaW4tdG9wOiAtNHB4O1xufVxuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmLW1vdmVkLWNvZGUtYmxvY2sgLmFjdGlvbi1iYXIgLmFjdGlvbi1sYWJlbC5jb2RpY29uIHtcblx0d2lkdGg6IDEycHg7XG5cdGhlaWdodDogMTJweDtcblx0Zm9udC1zaXplOiAxMnB4O1xufVxuXG4vKiAtLS0tLS0tLS0tIERpZmZFZGl0b3IgLS0tLS0tLS0tLSAqL1xuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmT3ZlcnZpZXcge1xuXHR6LWluZGV4OiA5O1xufVxuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmT3ZlcnZpZXcgLmRpZmZWaWV3cG9ydCB7XG5cdHotaW5kZXg6IDEwO1xufVxuXG4vKiBjb2xvcnMgbm90IGV4dGVybmFsaXplZDogdXNpbmcgdHJhbnNwYXJhbmN5IG9uIGJhY2tncm91bmQgKi9cbi5tb25hY28tZGlmZi1lZGl0b3IudnNcdFx0XHQuZGlmZk92ZXJ2aWV3IHsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTsgfVxuLm1vbmFjby1kaWZmLWVkaXRvci52cy1kYXJrXHRcdC5kaWZmT3ZlcnZpZXcgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDEpOyB9XG5cbi5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50Lm1vZGlmaWVkLWluLW1vbmFjby1kaWZmLWVkaXRvci52c1x0XHQuc2Nyb2xsYmFyIHsgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwKTsgfVxuLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQubW9kaWZpZWQtaW4tbW9uYWNvLWRpZmYtZWRpdG9yLnZzLWRhcmtcdC5zY3JvbGxiYXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDApOyB9XG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudC5tb2RpZmllZC1pbi1tb25hY28tZGlmZi1lZGl0b3IuaGMtYmxhY2tcdC5zY3JvbGxiYXIgeyBiYWNrZ3JvdW5kOiBub25lOyB9XG4ubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudC5tb2RpZmllZC1pbi1tb25hY28tZGlmZi1lZGl0b3IuaGMtbGlnaHRcdC5zY3JvbGxiYXIgeyBiYWNrZ3JvdW5kOiBub25lOyB9XG5cbi5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50Lm1vZGlmaWVkLWluLW1vbmFjby1kaWZmLWVkaXRvciAuc2xpZGVyIHtcblx0ei1pbmRleDogMTA7XG59XG4ubW9kaWZpZWQtaW4tbW9uYWNvLWRpZmYtZWRpdG9yXHRcdFx0XHQuc2xpZGVyLmFjdGl2ZSB7IGJhY2tncm91bmQ6IHJnYmEoMTcxLCAxNzEsIDE3MSwgLjQpOyB9XG4ubW9kaWZpZWQtaW4tbW9uYWNvLWRpZmYtZWRpdG9yLmhjLWJsYWNrXHQuc2xpZGVyLmFjdGl2ZSB7IGJhY2tncm91bmQ6IG5vbmU7IH1cbi5tb2RpZmllZC1pbi1tb25hY28tZGlmZi1lZGl0b3IuaGMtbGlnaHRcdC5zbGlkZXIuYWN0aXZlIHsgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4vKiAtLS0tLS0tLS0tIERpZmYgLS0tLS0tLS0tLSAqL1xuXG4ubW9uYWNvLWVkaXRvciAuaW5zZXJ0LXNpZ24sXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5pbnNlcnQtc2lnbixcbi5tb25hY28tZWRpdG9yIC5kZWxldGUtc2lnbixcbi5tb25hY28tZGlmZi1lZGl0b3IgLmRlbGV0ZS1zaWduIHtcblx0Zm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG5cdG9wYWNpdHk6IDAuNyAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ubW9uYWNvLWVkaXRvci5oYy1ibGFjayAuaW5zZXJ0LXNpZ24sXG4ubW9uYWNvLWRpZmYtZWRpdG9yLmhjLWJsYWNrIC5pbnNlcnQtc2lnbixcbi5tb25hY28tZWRpdG9yLmhjLWJsYWNrIC5kZWxldGUtc2lnbixcbi5tb25hY28tZGlmZi1lZGl0b3IuaGMtYmxhY2sgLmRlbGV0ZS1zaWduLFxuLm1vbmFjby1lZGl0b3IuaGMtbGlnaHQgLmluc2VydC1zaWduLFxuLm1vbmFjby1kaWZmLWVkaXRvci5oYy1saWdodCAuaW5zZXJ0LXNpZ24sXG4ubW9uYWNvLWVkaXRvci5oYy1saWdodCAuZGVsZXRlLXNpZ24sXG4ubW9uYWNvLWRpZmYtZWRpdG9yLmhjLWxpZ2h0IC5kZWxldGUtc2lnbiB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5tb25hY28tZWRpdG9yIC5pbmxpbmUtZGVsZXRlZC1tYXJnaW4tdmlldy16b25lIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG4ubW9uYWNvLWVkaXRvciAuaW5saW5lLWFkZGVkLW1hcmdpbi12aWV3LXpvbmUge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmFycm93LXJldmVydC1jaGFuZ2Uge1xuXHR6LWluZGV4OiAxMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuYXJyb3ctcmV2ZXJ0LWNoYW5nZTpob3ZlciB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogLS0tLS0tLS0tLSBJbmxpbmUgRGlmZiAtLS0tLS0tLS0tICovXG5cbi5tb25hY28tZWRpdG9yIC52aWV3LXpvbmVzIC52aWV3LWxpbmVzIC52aWV3LWxpbmUgc3BhbiB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1vbmFjby1lZGl0b3IgLm1hcmdpbi12aWV3LXpvbmVzIC5saWdodGJ1bGItZ2x5cGg6aG92ZXIge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tb25hY28tZWRpdG9yIC5jaGFyLWluc2VydCwgLm1vbmFjby1kaWZmLWVkaXRvciAuY2hhci1pbnNlcnQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1pbnNlcnRlZFRleHRCYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmxpbmUtaW5zZXJ0LCAubW9uYWNvLWRpZmYtZWRpdG9yIC5saW5lLWluc2VydCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWluc2VydGVkTGluZUJhY2tncm91bmQsIHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWluc2VydGVkVGV4dEJhY2tncm91bmQpKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmxpbmUtaW5zZXJ0LFxuLm1vbmFjby1lZGl0b3IgLmNoYXItaW5zZXJ0IHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItaW5zZXJ0ZWRUZXh0Qm9yZGVyKTtcbn1cbi5tb25hY28tZWRpdG9yLmhjLWJsYWNrIC5saW5lLWluc2VydCwgLm1vbmFjby1lZGl0b3IuaGMtbGlnaHQgLmxpbmUtaW5zZXJ0LFxuLm1vbmFjby1lZGl0b3IuaGMtYmxhY2sgLmNoYXItaW5zZXJ0LCAubW9uYWNvLWVkaXRvci5oYy1saWdodCAuY2hhci1pbnNlcnQge1xuXHRib3JkZXItc3R5bGU6IGRhc2hlZDtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmxpbmUtZGVsZXRlLFxuLm1vbmFjby1lZGl0b3IgLmNoYXItZGVsZXRlIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItcmVtb3ZlZFRleHRCb3JkZXIpO1xufVxuLm1vbmFjby1lZGl0b3IuaGMtYmxhY2sgLmxpbmUtZGVsZXRlLCAubW9uYWNvLWVkaXRvci5oYy1saWdodCAubGluZS1kZWxldGUsXG4ubW9uYWNvLWVkaXRvci5oYy1ibGFjayAuY2hhci1kZWxldGUsIC5tb25hY28tZWRpdG9yLmhjLWxpZ2h0IC5jaGFyLWRlbGV0ZSB7XG5cdGJvcmRlci1zdHlsZTogZGFzaGVkO1xufVxuXG4ubW9uYWNvLWVkaXRvciAuaW5saW5lLWFkZGVkLW1hcmdpbi12aWV3LXpvbmUsXG4ubW9uYWNvLWVkaXRvciAuZ3V0dGVyLWluc2VydCwgLm1vbmFjby1kaWZmLWVkaXRvciAuZ3V0dGVyLWluc2VydCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1kaWZmRWRpdG9yR3V0dGVyLWluc2VydGVkTGluZUJhY2tncm91bmQsIHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWluc2VydGVkTGluZUJhY2tncm91bmQpLCB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1pbnNlcnRlZFRleHRCYWNrZ3JvdW5kKSk7XG59XG5cbi5tb25hY28tZWRpdG9yIC5jaGFyLWRlbGV0ZSwgLm1vbmFjby1kaWZmLWVkaXRvciAuY2hhci1kZWxldGUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1yZW1vdmVkVGV4dEJhY2tncm91bmQpO1xufVxuXG4ubW9uYWNvLWVkaXRvciAubGluZS1kZWxldGUsIC5tb25hY28tZGlmZi1lZGl0b3IgLmxpbmUtZGVsZXRlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItcmVtb3ZlZExpbmVCYWNrZ3JvdW5kLCB2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1yZW1vdmVkVGV4dEJhY2tncm91bmQpKTtcbn1cblxuLm1vbmFjby1lZGl0b3IgLmlubGluZS1kZWxldGVkLW1hcmdpbi12aWV3LXpvbmUsXG4ubW9uYWNvLWVkaXRvciAuZ3V0dGVyLWRlbGV0ZSwgLm1vbmFjby1kaWZmLWVkaXRvciAuZ3V0dGVyLWRlbGV0ZSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzY29kZS1kaWZmRWRpdG9yR3V0dGVyLXJlbW92ZWRMaW5lQmFja2dyb3VuZCwgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItcmVtb3ZlZExpbmVCYWNrZ3JvdW5kKSwgdmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItcmVtb3ZlZFRleHRCYWNrZ3JvdW5kKSk7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3Iuc2lkZS1ieS1zaWRlIC5lZGl0b3IubW9kaWZpZWQge1xuXHRib3gtc2hhZG93OiAtNnB4IDAgNXB4IC01cHggdmFyKC0tdnNjb2RlLXNjcm9sbGJhci1zaGFkb3cpO1xuXHRib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWJvcmRlcik7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLmRpZmZWaWV3cG9ydCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1zY3JvbGxiYXJTbGlkZXItYmFja2dyb3VuZCk7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLmRpZmZWaWV3cG9ydDpob3ZlciB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1zY3JvbGxiYXJTbGlkZXItaG92ZXJCYWNrZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZlZpZXdwb3J0OmFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZzY29kZS1zY3JvbGxiYXJTbGlkZXItYWN0aXZlQmFja2dyb3VuZCk7XG59XG5cbi5tb25hY28tZWRpdG9yIC5kaWFnb25hbC1maWxsIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdC00NWRlZyxcblx0XHR2YXIoLS12c2NvZGUtZGlmZkVkaXRvci1kaWFnb25hbEZpbGwpIDEyLjUlLFxuXHRcdCMwMDAwIDEyLjUlLCAjMDAwMCA1MCUsXG5cdFx0dmFyKC0tdnNjb2RlLWRpZmZFZGl0b3ItZGlhZ29uYWxGaWxsKSA1MCUsIHZhcigtLXZzY29kZS1kaWZmRWRpdG9yLWRpYWdvbmFsRmlsbCkgNjIuNSUsXG5cdFx0IzAwMDAgNjIuNSUsICMwMDAwIDEwMCVcblx0KTtcblx0YmFja2dyb3VuZC1zaXplOiA4cHggOHB4O1xufVxuIiwgIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmLXJldmlldy1saW5lLW51bWJlciB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGNvbG9yOiB2YXIoLS12c2NvZGUtZWRpdG9yTGluZU51bWJlci1mb3JlZ3JvdW5kKTtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZi1yZXZpZXcge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHR6LWluZGV4OiA5OTtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZi1yZXZpZXctc3VtbWFyeSB7XG5cdHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZi1yZXZpZXctc2hhZG93IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3gtc2hhZG93OiB2YXIoLS12c2NvZGUtc2Nyb2xsYmFyLXNoYWRvdykgMCAtNnB4IDZweCAtNnB4IGluc2V0O1xufVxuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmLXJldmlldy1yb3cge1xuXHR3aGl0ZS1zcGFjZTogcHJlO1xufVxuXG4ubW9uYWNvLWRpZmYtZWRpdG9yIC5kaWZmLXJldmlldy10YWJsZSB7XG5cdGRpc3BsYXk6IHRhYmxlO1xuXHRtaW4td2lkdGg6IDEwMCU7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLmRpZmYtcmV2aWV3LXJvdyB7XG5cdGRpc3BsYXk6IHRhYmxlLXJvdztcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLmRpZmYtcmV2aWV3LXNwYWNlciB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDEwcHg7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5tb25hY28tZGlmZi1lZGl0b3IgLmRpZmYtcmV2aWV3LXNwYWNlciA+IC5jb2RpY29uIHtcblx0Zm9udC1zaXplOiA5cHggIWltcG9ydGFudDtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZi1yZXZpZXctYWN0aW9ucyB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMTBweDtcblx0dG9wOiAycHg7XG5cdHotaW5kZXg6IDEwMDtcbn1cblxuLm1vbmFjby1kaWZmLWVkaXRvciAuZGlmZi1yZXZpZXctYWN0aW9ucyAuYWN0aW9uLWxhYmVsIHtcblx0d2lkdGg6IDE2cHg7XG5cdGhlaWdodDogMTZweDtcblx0bWFyZ2luOiAycHggMDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBQTtBQUNFO0FBQUE7OztBQ01GO0FBQ0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUFBO0FBR0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQy9CRDtBQUNDO0FBQ0E7QUFBQTs7O0FDQUQ7QUFDQztBQUFBO0FBS0Q7QUFDQztBQUFBO0FBS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUNDO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBVUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7OztBQ2pHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFHQTtBQUVBO0FBRUE7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBSUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBOzs7QUNqRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQWdCRDtBQUNDO0FBQ0E7QUFDQTtBQUFBOzs7QUMvQkQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBOzs7QUMxQkQ7QUFDQztBQUFBOzs7QUNERDtBQUNDO0FBQUE7OztBQ0REO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7OztBQ2JEO0FBQ0M7QUFBQTs7O0FDTEQ7QUFDQztBQUNBO0FBQUE7OztBQ1NEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBQUE7QUFHQztBQUNBO0FBQUE7QUFJRDtBQUFBO0FBQUE7QUFHQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTs7O0FDbkVEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFPRDtBQUNDO0FBQ0E7QUFBQTs7O0FDWEQ7QUFDQztBQUNBO0FBQUE7QUFPRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFRRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQ3JCRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQ1BEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBOzs7QUNsREQ7QUFDQztBQUNBO0FBQ0E7QUFBQTs7O0FDRkQ7QUFDQztBQUNBO0FBQ0E7QUFBQTs7O0FDSEQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQ0REO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQXFDO0FBQUE7QUFDckM7QUFBd0M7QUFBQTtBQUN4QztBQUFzQztBQUFBO0FBQ3RDO0FBQXdDO0FBQUE7QUFFeEM7QUFBNEM7QUFBQTtBQUM1QztBQUErQztBQUFBO0FBQy9DO0FBQTZDO0FBQUE7QUFDN0M7QUFBK0M7QUFBQTtBQUUvQztBQUE0QztBQUFBO0FBQzVDO0FBQStDO0FBQUE7QUFDL0M7QUFBNkM7QUFBQTtBQUM3QztBQUErQztBQUFBOzs7QUM5Qi9DO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFJRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBSUQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJRjtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUY7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlGO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTs7O0FDOUVEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTs7O0FDUkQ7QUFDQztBQUNBO0FBQUE7OztBQ0ZEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBOzs7QUNURDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBSUQ7QUFDQztBQUFBO0FBSUQ7QUFBQTtBQUFBO0FBR0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFLRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTs7O0FDN0VEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBT0Q7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdGO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7OztBQ3ZIRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBOzs7QUMzQkQ7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFBQTtBQUdDO0FBQUE7QUFLRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTs7O0FDOUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQ3ZDRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBOzs7QUN0Q0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7OztBQ3hERDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFJQztBQUFBO0FBR0Q7QUFBQTtBQUlDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFLRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7OztBQzlJRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7OztBQy9ERDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7OztBQ2xERDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFBQTs7O0FDaEREO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQUE7QUFHRDtBQUFBO0FBSUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUtEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBOzs7QUNuR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBSUQ7QUFDQztBQUFBO0FBSUQ7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBQ007QUFBQTtBQUFBO0FBQ0U7QUFBQTtBQUFBO0FBRVI7QUFBQTtBQUNNO0FBQUE7QUFBQTtBQUVDO0FBQUE7QUFBQTtBQUdQO0FBQUE7QUFDTTtBQUFBO0FBQUE7QUFDRTtBQUFBO0FBQUE7QUFFUjtBQUFBO0FBQ007QUFBQTtBQUFBO0FBRUM7QUFBQTtBQUFBOzs7QUMvRFA7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7OztBQzNIRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUFBO0FBR0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUNBO0FBQUE7QUFLRDtBQUFBO0FBRUM7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBOzs7QUNyS0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBOzs7QUNqQkQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBT0M7QUFBQTtBQWFEO0FBQUE7QUFBNkI7QUFBQTtBQUFBO0FBQTRDO0FBQUE7QUFBQTtBQUE4QztBQUFBO0FBQUE7OztBQ3ZEdkg7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBRUM7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBSUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUtDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFBQTtBQUdDO0FBQUE7QUFJRDtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUFBOzs7QUM3VEQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBR0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFJRDtBQUFBO0FBR0M7QUFBQTtBQUdEO0FBQUE7QUFFQztBQUFBOzs7QUNwR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBOzs7QUM5QkQ7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFJQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBS0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBSUQ7QUFBeUM7QUFBQTtBQUN6QztBQUE2QztBQUFBO0FBRTdDO0FBQTJFO0FBQUE7QUFDM0U7QUFBK0U7QUFBQTtBQUMvRTtBQUFnRjtBQUFBO0FBQ2hGO0FBQWdGO0FBQUE7QUFFaEY7QUFDQztBQUFBO0FBRUQ7QUFBb0Q7QUFBQTtBQUNwRDtBQUEwRDtBQUFBO0FBQzFEO0FBQTBEO0FBQUE7QUFJMUQ7QUFBQTtBQUFBO0FBQUE7QUFJQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFDO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUtEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUNDO0FBQUE7QUFHRDtBQUFBO0FBRUM7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBQUE7QUFFQztBQUFBO0FBR0Q7QUFBQTtBQUVDO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQUE7QUFBQTtBQUVDO0FBQUE7QUFHRDtBQUFBO0FBQ0M7QUFBQTtBQUdEO0FBQUE7QUFDQztBQUFBO0FBR0Q7QUFBQTtBQUFBO0FBRUM7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQU9BO0FBQUE7OztBQ3BTRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K */ diff --git a/manifest.json b/manifest.json index dfa940e..7ff292c 100644 --- a/manifest.json +++ b/manifest.json @@ -1,11 +1,11 @@ { - "id": "sample-plugin", - "name": "Sample Plugin", + "id": "code-editor", + "name": "Code Editor", "version": "1.0.0", "minAppVersion": "0.15.0", "description": "Demonstrates some of the capabilities of the Obsidian API.", - "author": "Obsidian", - "authorUrl": "https://obsidian.md", - "fundingUrl": "https://obsidian.md/pricing", + "author": "Allen7D", + "authorUrl": "https://github.com/Allen7D", + "fundingUrl": "https://github.com/Allen7D/obsidian-code-editor", "isDesktopOnly": false -} +} \ No newline at end of file diff --git a/package.json b/package.json index 6a00766..360caa7 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "obsidian-sample-plugin", + "name": "obsidian-code-editor", "version": "1.0.0", "description": "This is a sample plugin for Obsidian (https://obsidian.md)", "main": "main.js", @@ -13,12 +13,22 @@ "license": "MIT", "devDependencies": { "@types/node": "^16.11.6", + "@types/react": "^18.2.69", + "@types/react-dom": "^18.2.22", "@typescript-eslint/eslint-plugin": "5.29.0", "@typescript-eslint/parser": "5.29.0", "builtin-modules": "3.3.0", "esbuild": "0.17.3", + "esbuild-plugin-less": "^1.3.3", + "less": "^4.2.0", "obsidian": "latest", + "react": "^18.2.0", + "react-dom": "^18.2.0", "tslib": "2.4.0", "typescript": "4.7.4" + }, + "dependencies": { + "monaco-editor": "^0.44.0", + "react-monaco-editor": "^0.55.0" } -} +} \ No newline at end of file diff --git a/src/SettingTab.ts b/src/SettingTab.ts new file mode 100644 index 0000000..9300738 --- /dev/null +++ b/src/SettingTab.ts @@ -0,0 +1,31 @@ +import { App, PluginSettingTab, Setting } from 'obsidian'; +import ExamplePlugin from './main'; + +// 属性设置页 +export class SettingTab extends PluginSettingTab { + plugin: ExamplePlugin; + + constructor(app: App, plugin: ExamplePlugin) { + super(app, plugin); + this.plugin = plugin; + } + + display(): void { + const { containerEl } = this; + + containerEl.empty(); + + new Setting(containerEl) + .setName('Setting #1') + .setDesc("It's a secret") + .addText((text) => + text + .setPlaceholder('Enter your secret') + .setValue(this.plugin.settings.mySetting) + .onChange(async (value) => { + this.plugin.settings.mySetting = value; + await this.plugin.saveSettings(); + }), + ); + } +} diff --git a/src/components/App/index.less b/src/components/App/index.less new file mode 100644 index 0000000..f26861a --- /dev/null +++ b/src/components/App/index.less @@ -0,0 +1,3 @@ +.app-main { + color: red; +} \ No newline at end of file diff --git a/src/components/App/index.tsx b/src/components/App/index.tsx new file mode 100644 index 0000000..c450cdb --- /dev/null +++ b/src/components/App/index.tsx @@ -0,0 +1,13 @@ +import React from 'react'; + +import './index.less'; + +const App: React.FC = () => { + return ( +