diff --git a/.github/TODO.md b/.github/TODO.md
index 7765833..be9782b 100644
--- a/.github/TODO.md
+++ b/.github/TODO.md
@@ -1,11 +1,10 @@
# TODO
-1. Split up CSS files as described on Obsidian discord
-2. Check through:
+1. Check through:
- `package.json`
- `package-lock.json`
- `eslintrc`
-3. Update github:
+2. Update github:
- Better issue templates using [yaml](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository)
- [Example 1](https://github.com/javalent/admonitions/tree/main/.github/ISSUE_TEMPLATE)
- [Example 2](https://github.com/obsidian-tasks-group/obsidian-tasks/tree/main/.github/ISSUE_TEMPLATE)
diff --git a/css/styles.css b/css/styles.css
new file mode 100644
index 0000000..00c0aa5
--- /dev/null
+++ b/css/styles.css
@@ -0,0 +1,1162 @@
+/* src/css/codeblocks.css */
+.code-styler-pre-parent {
+ margin-bottom: 16px;
+}
+.code-styler pre.code-styler-pre {
+ background: var(--code-styler-codeblock-background-colour) !important;
+ border-radius: var(--border-radius) !important;
+ min-height: unset;
+ padding: 0px !important;
+ overflow: hidden !important;
+}
+.code-styler pre.code-styler-pre[class*=language-] {
+ background: linear-gradient(90deg, var(--language-border-colour), var(--language-border-colour) var(--language-border-width), var(--code-styler-codeblock-background-colour) var(--language-border-width), var(--code-styler-codeblock-background-colour) 100%) !important;
+ padding-left: var(--language-border-width) !important;
+}
+.code-styler pre.code-styler-pre code {
+ display: grid;
+ grid-template-columns: min-content auto;
+ grid-template-rows: auto;
+ padding-top: var(--code-padding) !important;
+ padding-bottom: var(--code-padding) !important;
+ padding-left: 0px !important;
+ padding-right: 0px !important;
+ border-radius: 0px !important;
+ background: none !important;
+ transition:
+ max-height ease-in-out var(--duration-button),
+ padding ease-in-out var(--duration-button),
+ border-top ease-in-out var(--duration-button);
+ max-height: 0;
+ overflow-x: scroll;
+}
+.code-styler pre.code-styler-pre code:not(:has(> input[style*="display: inline;"])):active {
+ --line-wrapping: var(--line-active-wrapping) !important;
+}
+.code-styler pre.code-styler-pre.code-styler-collapsed code {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+.code-styler pre.code-styler-pre::before,
+.code-styler pre.code-styler-pre::after {
+ content: none !important;
+}
+.markdown-source-view.mod-cm6 .cm-embed-block pre.code-styler-pre {
+ margin: 1em 0px;
+}
+.code-styler .markdown-source-view [class*=code-styler-line].HyperMD-codeblock-begin {
+ border-top-left-radius: 0px !important;
+ border-top-right-radius: 0px !important;
+ border-top: none !important;
+}
+.code-styler .markdown-source-view [class*=code-styler-line].HyperMD-codeblock-end {
+ border-bottom-left-radius: var(--border-radius);
+ border-bottom-right-radius: var(--border-radius);
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container + .HyperMD-codeblock-begin,
+body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has(img.code-styler-icon)) + .HyperMD-codeblock-begin,
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*="code-styler-header-language-tag-"])) + .HyperMD-codeblock-begin,
+body .markdown-source-view :not([class^="code-styler-header-container"]) + [class*=code-styler-line].HyperMD-codeblock-begin,
+body .markdown-source-view [class*=code-styler-line].HyperMD-codeblock-begin:nth-of-type(1) {
+ border-top-left-radius: var(--border-radius) !important;
+ border-top-right-radius: var(--border-radius) !important;
+}
+.code-styler .markdown-source-view .HyperMD-codeblock[class*=code-styler-line] {
+ background: linear-gradient(90deg, var(--gradient-background-colour) var(--gradient-highlights-colour-stop), transparent 100%), var(--code-styler-codeblock-background-colour) !important;
+ overflow: hidden;
+ padding: 0 !important;
+ padding-left: var(--size-4-4) !important;
+}
+.code-styler .markdown-source-view .HyperMD-codeblock[class*=code-styler-line][class*=language-] {
+ background: linear-gradient(90deg, var(--language-border-colour), var(--language-border-colour) var(--language-border-width), var(--gradient-background-colour) var(--language-border-width) var(--gradient-highlights-colour-stop), transparent 100%), var(--code-styler-codeblock-background-colour) !important;
+}
+.code-styler .markdown-source-view .HyperMD-codeblock[class*=code-styler-line][class*=language-] [class^=code-styler-line-number] {
+ margin-left: var(--language-border-width);
+}
+body:not([class*="code-styler-show-langicons"]) .code-styler-header-container-specific div:has(> img.code-styler-icon),
+body:not(.code-styler-show-langicons-always) .code-styler-header-container div:has(> img.code-styler-icon) {
+ display: none;
+}
+body:not([class*="code-styler-show-langnames"]) .code-styler-header-container-specific [class^=code-styler-header-language-tag],
+body:not(.code-styler-show-langnames-always) .code-styler-header-container [class^=code-styler-header-language-tag] {
+ display: none;
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .code-styler-header-container,
+body:not(.code-styler-show-langnames-always) .code-styler-header-container:not(:has(img.code-styler-icon)) {
+ display: none !important;
+}
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not([class*="language-"]),
+body pre.code-styler-pre:not([class*="language-"]) .code-styler-header-container {
+ display: none !important;
+}
+[class^=code-styler-header-container] {
+ font-size: var(--header-font-size);
+ user-select: none;
+ height: var(--container-height);
+ min-height: var(--container-min-height);
+ padding-top: var(--header-padding);
+ margin-top: 0px !important;
+ display: flex !important;
+ overflow: visible;
+ transition: border-bottom ease-in-out var(--duration-button);
+ box-sizing: content-box;
+}
+.markdown-source-view :not(pre.code-styler-pre) > [class^=code-styler-header-container] {
+ background: linear-gradient(var(--code-styler-header-background-colour) 0%, var(--code-styler-header-background-colour) calc(100% - var(--header-separator-width)), var(--code-styler-header-separator-colour) calc(100% - var(--header-separator-width)), var(--code-styler-header-separator-colour) 100%) var(--language-border-width) bottom/100% border-box no-repeat, var(--language-border-colour) !important;
+ padding-left: var(--language-border-width);
+ border-top-left-radius: var(--border-radius);
+ border-top-right-radius: var(--border-radius);
+ padding-bottom: var(--header-separator-width);
+ border-top: var(--code-styler-header-border);
+ border-left: var(--code-styler-header-border);
+ border-right: var(--code-styler-header-border);
+}
+pre.code-styler-pre [class^=code-styler-header-container] {
+ background-color: var(--code-styler-header-background-colour);
+ border-bottom: var(--header-separator-width) solid var(--code-styler-header-separator-colour);
+}
+.markdown-source-view :not(pre.code-styler-pre) > [class^=code-styler-header-container]:not(:has(+ .HyperMD-codeblock-begin)) {
+ background: linear-gradient(var(--code-styler-header-background-colour) 0%, var(--code-styler-header-background-colour) 100%) var(--language-border-width) bottom/100% border-box no-repeat, var(--language-border-colour) !important;
+ padding-bottom: var(--header-padding);
+ border-bottom-left-radius: var(--border-radius);
+ border-bottom-right-radius: var(--border-radius);
+ border-bottom: var(--code-styler-header-border);
+ border-bottom: var(--collapsed-bottom-border);
+}
+pre.code-styler-pre.code-styler-collapsed [class^=code-styler-header-container] {
+ border-bottom: var(--collapsed-bottom-border);
+}
+[class^=code-styler-header-container] [class^=code-styler-header-language-tag] {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+ height: 100%;
+ padding-left: var(--header-spacing);
+ padding-right: var(--header-spacing);
+ margin-right: var(--header-spacing);
+ padding-top: calc(1em * var(--header-inner-vertical-padding));
+ padding-bottom: calc(1em * var(--header-inner-vertical-padding));
+ font-size: inherit;
+ border-radius: var(--border-radius) var(--border-radius) 0px 0px;
+ background-color: var(--code-styler-header-language-tag-background-colour);
+ color: var(--code-styler-header-language-tag-text-colour);
+ font-weight: var(--code-styler-header-language-tag-text-bold, normal);
+ font-style: var(--code-styler-header-language-tag-text-italic, normal);
+ text-align: center;
+ transition: border-radius ease-in-out var(--duration-button), padding ease-in-out var(--duration-button);
+}
+.markdown-source-view :not(pre.code-styler-pre) > [class^=code-styler-header-container]:not(:has(+ .HyperMD-codeblock-begin)) [class^=code-styler-header-language-tag],
+pre.code-styler-pre.code-styler-collapsed [class^=code-styler-header-container] [class^=code-styler-header-language-tag] {
+ border-radius: var(--border-radius);
+}
+.code-styler-header-text {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+ padding-left: 0px;
+ padding-top: calc(1em * var(--header-inner-vertical-padding));
+ padding-bottom: calc(1em * var(--header-inner-vertical-padding));
+ font-size: inherit;
+ color: var(--code-styler-header-text-colour);
+ font-weight: var(--code-styler-header-title-text-bold, normal);
+ font-style: var(--code-styler-header-title-text-italic, normal);
+ transition: padding ease-in-out var(--duration-button);
+}
+body:not([class*="code-styler-show-langicons"]) .code-styler-header-container-specific [class^=code-styler-header-language-tag],
+body:not(.code-styler-show-langicons-always) .code-styler-header-container [class^=code-styler-header-language-tag],
+body .code-styler-header-container-specific:not(:has(div > img.code-styler-icon)) [class^=code-styler-header-language-tag] {
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+}
+body:not([class*="code-styler-show-langicons"]):not([class*="code-styler-show-langnames"]) .code-styler-header-container-specific .code-styler-header-text,
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames) .code-styler-header-container .code-styler-header-text,
+body .code-styler-header-container-specific:not(:has([class^="code-styler-header-language-tag-"])) .code-styler-header-text {
+ padding-left: var(--header-spacing);
+}
+div:has(> img.code-styler-icon) {
+ display: inline-flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+ padding-top: calc(1em * var(--header-inner-vertical-padding));
+ padding-bottom: calc(1em * var(--header-inner-vertical-padding));
+ padding-left: var(--header-spacing);
+ padding-right: var(--header-spacing);
+ transition: padding ease-in-out var(--duration-button);
+}
+.code-styler-icon {
+ width: var(--language-icon-size);
+ height: var(--language-icon-size);
+ filter: var(--language-icon-filter);
+ margin: 0 !important;
+ border: none !important;
+}
+pre.code-styler-pre [class^=code-styler-line-highlighted] > .code-styler-line-text {
+ background-image: linear-gradient(90deg, var(--gradient-background-colour) 0% var(--gradient-highlights-colour-stop), var(--code-styler-codeblock-background-colour) 100%);
+}
+.code-styler-line-highlighted {
+ --gradient-background-colour: var(--code-styler-default-highlight-colour) !important;
+}
+.code-styler-active-line-highlight .cm-active,
+.code-styler-active-line-highlight-editor .cm-active {
+ background: linear-gradient(to right, var(--code-styler-active-editor-line-colour), var(--gradient-highlights-colour-stop), transparent) !important;
+}
+.code-styler-active-line-highlight .markdown-source-view .HyperMD-codeblock[class*=code-styler-line].cm-active,
+.code-styler-active-line-highlight-codeblock .markdown-source-view .HyperMD-codeblock[class*=code-styler-line].cm-active {
+ background: linear-gradient(to right, var(--code-styler-active-codeblock-line-colour), var(--gradient-highlights-colour-stop), var(--code-styler-codeblock-background-colour)) !important;
+}
+.code-styler:not(.code-styler-show-line-numbers) .code-styler-line-number,
+.code-styler-line-number-hide {
+ display: none;
+}
+pre.code-styler-pre > code > div:first-child > [class^=code-styler-line-number] {
+ box-shadow: 0px calc(-1 * var(--code-padding)) var(--code-styler-gutter-background-colour);
+ transition: box-shadow ease-in-out var(--duration-button);
+}
+pre.code-styler-pre.code-styler-collapsed > code > div:first-child > [class^=code-styler-line-number] {
+ box-shadow: 0px 0px var(--code-styler-gutter-background-colour);
+}
+pre.code-styler-pre > code > div:last-child > [class^=code-styler-line-number] {
+ box-shadow: 0px var(--code-padding) var(--code-styler-gutter-background-colour);
+}
+pre.code-styler-pre > code > div:only-child > [class^=code-styler-line-number] {
+ box-shadow: 0px calc(-1 * var(--code-padding)) var(--code-styler-gutter-background-colour), 0px var(--code-padding) var(--code-styler-gutter-background-colour);
+}
+[class^=code-styler-line-number] {
+ padding-left: calc(4px + var(--language-border-width));
+ padding-right: 8px;
+ text-align: right;
+ min-width: var(--line-number-gutter-min-width);
+ background-color: var(--code-styler-gutter-background-colour);
+ font-size: var(--code-size);
+ font-family: var(--font-monospace);
+ color: var(--code-styler-gutter-text-colour);
+ user-select: none;
+}
+.markdown-source-view .HyperMD-codeblock .code-styler-line-number,
+.markdown-source-view .HyperMD-codeblock .code-styler-line-number-specific {
+ padding-top: var(--line-number-height-correction);
+ position: absolute;
+ box-sizing: content-box;
+ display: inline-block;
+ height: 100%;
+ min-width: calc(var(--line-number-gutter-min-width) - 12px);
+ overflow-x: auto;
+ direction: rtl;
+ left: 0;
+}
+.markdown-source-view .HyperMD-codeblock-begin .code-styler-line-number,
+.markdown-source-view .HyperMD-codeblock-begin .code-styler-line-number-specific,
+.markdown-source-view .HyperMD-codeblock-end .code-styler-line-number,
+.markdown-source-view .HyperMD-codeblock-end .code-styler-line-number-specific {
+ width: var(--line-number-gutter-width);
+}
+pre.code-styler-pre [class^=code-styler-line-number] {
+ white-space: nowrap;
+ grid-column: 1;
+ position: sticky;
+ top: -1px;
+ left: 0;
+ border-top: var(--line-number-height-correction) solid transparent;
+}
+pre.code-styler-pre div:last-child > [class^=code-styler-line-number] {
+ width: unset;
+}
+.code-styler-gutter-highlight pre.code-styler-pre [class*=code-styler-line-highlighted] [class^=code-styler-line-number] {
+ background-color: var(--gradient-background-colour);
+}
+.code-styler-active-line-highlight.code-styler-gutter-highlight .markdown-source-view .HyperMD-codeblock[class*=code-styler-line].cm-active [class^=code-styler-line-number],
+.code-styler-active-line-highlight-codeblock.code-styler-gutter-highlight .markdown-source-view .HyperMD-codeblock[class*=code-styler-line].cm-active [class^=code-styler-line-number],
+.code-styler-gutter-highlight [class*=code-styler-line-highlighted] [class^=code-styler-line-number] {
+ background-color: rgba(0, 0, 0, 0);
+}
+.code-styler-gutter-active-line .cm-active [class^=code-styler-line-number] {
+ color: var(--code-styler-gutter-active-text-colour);
+}
+.code-styler.code-styler-show-line-numbers .markdown-source-view .HyperMD-codeblock:has(.code-styler-line-number),
+.code-styler.code-styler-show-line-numbers .markdown-source-view .HyperMD-codeblock:has(.code-styler-line-number-specific) {
+ padding-left: calc(12px + var(--language-border-width) + var(--line-number-gutter-width) + var(--line-number-gutter-padding)) !important;
+}
+.code-styler .markdown-source-view .HyperMD-codeblock[class*=code-styler-line]::before {
+ content: none !important;
+}
+pre.code-styler-pre > code > div[class*=code-styler-line] {
+ display: contents !important;
+}
+pre.code-styler-pre .code-styler-line-text {
+ flex-basis: 100%;
+ padding-left: var(--line-number-gutter-padding);
+ grid-column: 2;
+}
+.HyperMD-codeblock:has(> .cm-widgetBuffer) {
+ white-space: nowrap;
+}
+.HyperMD-codeblock:has(> .cm-widgetBuffer) > .cm-hmd-codeblock {
+ white-space: break-spaces;
+}
+@keyframes outdent {
+ from {
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ clip-path: var(--polygon-in);
+ }
+ to {
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+ }
+}
+@keyframes indent {
+ from {
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+ }
+ to {
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ clip-path: var(--polygon-in);
+ }
+}
+@keyframes reverse-outdent {
+ from {
+ clip-path: var(--polygon-in);
+ }
+ to {
+ clip-path: var(--polygon-out);
+ }
+}
+@keyframes reverse-indent {
+ from {
+ clip-path: var(--polygon-out);
+ }
+ to {
+ clip-path: var(--polygon-in);
+ }
+}
+.markdown-rendered pre.code-styler-pre button {
+ transition: visibility var(--duration-button), opacity var(--duration-button);
+ visibility: visible;
+ opacity: 1;
+ display: unset !important;
+ color: var(--code-styler-button-colour) !important;
+ background: transparent !important;
+ box-shadow: none;
+ font-family: var(--font-interface);
+ font-size: var(--font-ui-smaller);
+ margin: 0;
+ padding: 0 !important;
+ border: none !important;
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+pre.code-styler-pre:not(.code-styler-collapsed):not(:hover) button,
+pre.code-styler-pre.code-styler-collapsed button,
+pre.code-styler-pre:not(.code-styler-collapsed):not(:hover) [class^=code-styler-header-container]::after {
+ visibility: hidden;
+ opacity: 0;
+}
+[class^=code-styler-header-container]::after {
+ position: relative;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ margin: auto;
+ margin-right: var(--header-button-spacing);
+ content: "\200b";
+ width: 20px;
+ height: 20px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' xml:space='preserve'%3E%3Cpath d='M16 22 6 12l1.4-1.4 8.6 8.6 8.6-8.6L26 12z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ visibility: visible;
+ opacity: 1;
+ scale: 0.8;
+ transition:
+ transform var(--duration-button) ease-out,
+ visibility var(--duration-button),
+ opacity var(--duration-button),
+ scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+}
+pre.code-styler-pre.code-styler-collapsed [class^=code-styler-header-container]::after,
+.markdown-source-view :not(pre.code-styler-pre) > [class^=code-styler-header-container]:not(:has(+ .HyperMD-codeblock-begin))::after {
+ transform: rotate(-90deg);
+}
+[class^=code-styler-header-container]:hover::after {
+ scale: 1;
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) pre.code-styler-pre:has(.code-styler-header-container) button.copy-code-button,
+body:not(.code-styler-show-langnames-always) pre.code-styler-pre:not(:has(.code-styler-header-container-specific)):not(:has(.code-styler-header-container img.code-styler-icon)) button.copy-code-button,
+body pre.code-styler-pre:not([class*="language-"]):has(.code-styler-header-container) button.copy-code-button {
+ top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal)) !important;
+ --copy-code-header-right-margin: 12px;
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container + .HyperMD-codeblock-begin,
+body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has(img.code-styler-icon)) + .HyperMD-codeblock-begin,
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*="code-styler-header-language-tag-"])) + .HyperMD-codeblock-begin {
+ overflow: hidden;
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container + .HyperMD-codeblock-begin span.code-block-flair,
+body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has(img.code-styler-icon)) + .HyperMD-codeblock-begin span.code-block-flair,
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*="code-styler-header-language-tag-"])) + .HyperMD-codeblock-begin span.code-block-flair {
+ top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal)) !important;
+ --copy-code-header-right-margin: 12px;
+}
+pre.code-styler-pre button.copy-code-button {
+ transform: translateY(-50%);
+ top: max(calc(0.5 * var(--container-height) * 1), calc(0.5 * var(--container-min-height) * 1)) !important;
+ bottom: unset !important;
+}
+pre.code-styler-pre button.copy-code-button,
+pre.code-styler-pre button.run-code-button,
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair {
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ will-change: margin-right, clip-path;
+ clip-path: var(--polygon-in);
+}
+pre.code-styler-pre button.copy-code-button:not(:active),
+pre.code-styler-pre button.run-code-button:not(:active),
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair:not(:active) {
+ animation: indent var(--duration-button);
+}
+pre.code-styler-pre button.copy-code-button:hover,
+pre.code-styler-pre button.run-code-button:hover,
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair:hover {
+ background-color: transparent;
+ animation: outdent var(--duration-button);
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+}
+pre.code-styler-pre button.copy-code-button:active,
+pre.code-styler-pre button.run-code-button:active,
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair:active {
+ scale: 0.95;
+ transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+}
+pre.code-styler-pre button.copy-code-button::before,
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair::before {
+ content: "\200b";
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ padding-right: 4px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z'/%3E%3Cpath d='M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z'/%3E%3Cpath d='M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ vertical-align: 1px;
+}
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair {
+ transform: translateY(-50%);
+ font-size: 0;
+ top: min(calc(-0.5 * var(--container-height) * 1.1 - var(--header-separator-width)), calc(-0.5 * var(--container-min-height) * 1.1 - var(--header-separator-width))) !important;
+ right: 0;
+ visibility: hidden;
+ padding: 0;
+ position: absolute;
+ line-height: initial !important;
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair > * {
+ width: 0px;
+}
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair::before {
+ visibility: visible;
+ opacity: 1;
+ vertical-align: -1px;
+ font-size: var(--font-ui-smaller);
+}
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair::after {
+ visibility: visible;
+ opacity: 1;
+ font-size: var(--font-ui-smaller);
+ content: "Copy";
+ color: var(--code-styler-button-colour);
+}
+.markdown-source-view.mod-cm6 .HyperMD-codeblock-begin.code-styler-line {
+ overflow: visible;
+}
+
+/* src/css/inlineCode.css */
+.code-styler .cm-s-obsidian span.cm-inline-code,
+.code-styler .markdown-rendered :not(pre) > code {
+ font-weight: var(--code-styler-inline-font-weight);
+ color: var(--code-styler-inline-colour);
+ background-color: var(--code-styler-inline-background-colour) !important;
+ border-radius: var(--code-styler-inline-border-radius) !important;
+ padding: var(--code-styler-inline-padding-vertical) var(--code-styler-inline-padding-horizontal) !important;
+ margin: 0px var(--code-styler-inline-margin-horizontal) !important;
+}
+.code-styler .cm-s-obsidian span.cm-formatting-code {
+ color: var(--code-styler-inline-colour-active);
+ display: inline !important;
+}
+.code-styler .cm-s-obsidian span.cm-formatting-code:has(+ span.cm-inline-code:not(.cm-formatting-code)) {
+ color: var(--code-styler-inline-colour-active);
+ border-radius: var(--code-styler-inline-border-radius) 0px 0px var(--code-styler-inline-border-radius) !important;
+ padding-left: var(--code-styler-inline-padding-horizontal) !important;
+ padding-right: 0px !important;
+ margin-left: var(--code-styler-inline-margin-horizontal) !important;
+ margin-right: 0px !important;
+}
+.code-styler .cm-s-obsidian span.cm-formatting-code + span.cm-inline-code:not(.cm-formatting-code) {
+ color: var(--code-styler-inline-colour-active);
+ border-radius: 0px !important;
+ padding-left: 0px !important;
+ padding-right: 0px !important;
+ margin: 0px 0px !important;
+}
+.code-styler .cm-s-obsidian span.cm-inline-code:not(.cm-formatting-code) + span.cm-formatting-code {
+ color: var(--code-styler-inline-colour-active);
+ border-radius: 0px var(--code-styler-inline-border-radius) var(--code-styler-inline-border-radius) 0px !important;
+ padding-left: 0px !important;
+ padding-right: var(--code-styler-inline-padding-horizontal) !important;
+ margin-left: 0px !important;
+ margin-right: var(--code-styler-inline-margin-horizontal) !important;
+}
+.code-styler .markdown-rendered :not(pre) > code img.code-styler-inline-icon {
+ height: calc(var(--code-size) * 1.2);
+ margin-bottom: 2px;
+ vertical-align: middle;
+}
+.code-styler .markdown-rendered :not(pre) > code .code-styler-inline-title {
+ font-weight: var(--code-styler-inline-title-font-weight);
+ color: var(--code-styler-inline-title-color);
+}
+.code-styler .markdown-rendered :not(pre) > code .code-styler-inline-title::after {
+ content: "\ff5c";
+ color: var(--code-styler-inline-title-color);
+}
+.code-styler .markdown-rendered :not(pre) > code span:has(> img.code-styler-inline-icon) {
+ padding-right: 8px;
+}
+
+/* src/css/pdfExport.css */
+div.print {
+ --line-wrapping: pre-wrap !important;
+}
+.code-styler div.print pre.code-styler-pre code {
+ max-height: unset;
+}
+.code-styler div.print pre.code-styler-pre.code-styler-collapsed code {
+ display: none !important;
+}
+
+/* src/css/pickr.css */
+.pickr {
+ position: relative;
+ overflow: visible;
+ transform: translateY(0);
+}
+.pickr * {
+ box-sizing: border-box;
+ outline: none;
+ border: none;
+ appearance: none;
+ -webkit-appearance: none;
+}
+.pickr .pcr-button {
+ position: relative;
+ height: 2em;
+ width: 2em;
+ padding: 0.5em;
+ cursor: pointer;
+ font-family:
+ -apple-system,
+ BlinkMacSystemFont,
+ "Segoe UI",
+ "Roboto",
+ "Helvetica Neue",
+ Arial,
+ sans-serif;
+ border-radius: .15em;
+ background: url('data:image/svg+xml;utf8, ') no-repeat center;
+ background-size: 0;
+ transition: all 0.3s;
+}
+.pickr .pcr-button::before {
+ position: absolute;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: url('data:image/svg+xml;utf8, ');
+ background-size: .5em;
+ border-radius: .15em;
+ z-index: -1;
+}
+.pickr .pcr-button::before {
+ z-index: initial;
+}
+.pickr .pcr-button::after {
+ position: absolute;
+ content: "";
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ transition: background 0.3s;
+ background: var(--pcr-color);
+ border-radius: .15em;
+}
+.pickr .pcr-button.clear {
+ background-size: 70%;
+}
+.pickr .pcr-button.clear::before {
+ opacity: 0;
+}
+.pickr .pcr-button.clear:focus {
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color);
+}
+.pickr .pcr-button.disabled {
+ cursor: not-allowed;
+}
+.pickr *,
+.pcr-app * {
+ box-sizing: border-box;
+ outline: none;
+ border: none;
+ appearance: none;
+ -webkit-appearance: none;
+}
+.pickr input:focus,
+.pickr input.pcr-active,
+.pickr button:focus,
+.pickr button.pcr-active,
+.pcr-app input:focus,
+.pcr-app input.pcr-active,
+.pcr-app button:focus,
+.pcr-app button.pcr-active {
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color);
+}
+.pickr .pcr-palette,
+.pickr .pcr-slider,
+.pcr-app .pcr-palette,
+.pcr-app .pcr-slider {
+ transition: box-shadow 0.3s;
+}
+.pickr .pcr-palette:focus,
+.pickr .pcr-slider:focus,
+.pcr-app .pcr-palette:focus,
+.pcr-app .pcr-slider:focus {
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(0, 0, 0, 0.25);
+}
+.pcr-app {
+ position: fixed;
+ display: flex;
+ flex-direction: column;
+ z-index: 10000;
+ border-radius: 0.1em;
+ background: #fff;
+ opacity: 0;
+ visibility: hidden;
+ transition: opacity 0.3s, visibility 0s 0.3s;
+ font-family:
+ -apple-system,
+ BlinkMacSystemFont,
+ "Segoe UI",
+ "Roboto",
+ "Helvetica Neue",
+ Arial,
+ sans-serif;
+ box-shadow: 0 0.15em 1.5em 0 rgba(0, 0, 0, 0.1), 0 0 1em 0 rgba(0, 0, 0, 0.03);
+ left: 0;
+ top: 0;
+}
+.pcr-app.visible {
+ transition: opacity 0.3s;
+ visibility: visible;
+ opacity: 1;
+}
+.pcr-app .pcr-swatches {
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: 0.75em;
+}
+.pcr-app .pcr-swatches.pcr-last {
+ margin: 0;
+}
+@supports (display: grid) {
+ .pcr-app .pcr-swatches {
+ display: grid;
+ align-items: center;
+ grid-template-columns: repeat(auto-fit, 1.75em);
+ }
+}
+.pcr-app .pcr-swatches > button {
+ font-size: 1em;
+ position: relative;
+ width: calc(1.75em - 10px);
+ height: calc(1.75em - 10px);
+ border-radius: 0.15em;
+ cursor: pointer;
+ margin: 2.5px;
+ flex-shrink: 0;
+ justify-self: center;
+ transition: all 0.15s;
+ overflow: hidden;
+ background: transparent;
+ z-index: 1;
+}
+.pcr-app .pcr-swatches > button::before {
+ position: absolute;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: url('data:image/svg+xml;utf8, ');
+ background-size: 6px;
+ border-radius: .15em;
+ z-index: -1;
+}
+.pcr-app .pcr-swatches > button::after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: var(--pcr-color);
+ border: 1px solid rgba(0, 0, 0, 0.05);
+ border-radius: 0.15em;
+ box-sizing: border-box;
+}
+.pcr-app .pcr-swatches > button:hover {
+ filter: brightness(1.05);
+}
+.pcr-app .pcr-swatches > button:not(.pcr-active) {
+ box-shadow: none;
+}
+.pcr-app .pcr-interaction {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ margin: 0 -0.2em 0 -0.2em;
+}
+.pcr-app .pcr-interaction > * {
+ margin: 0 0.2em;
+}
+.pcr-app .pcr-interaction input {
+ letter-spacing: 0.07em;
+ font-size: 0.75em;
+ text-align: center;
+ cursor: pointer;
+ color: #75797e;
+ background: #f1f3f4;
+ border-radius: .15em;
+ transition: all 0.15s;
+ padding: 0.45em 0.5em;
+ margin-top: 0.75em;
+}
+.pcr-app .pcr-interaction input:hover {
+ filter: brightness(0.975);
+}
+.pcr-app .pcr-interaction input:focus {
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(66, 133, 244, 0.75);
+}
+.pcr-app .pcr-interaction .pcr-result {
+ color: #75797e;
+ text-align: left;
+ flex: 1 1 8em;
+ min-width: 8em;
+ transition: all 0.2s;
+ border-radius: .15em;
+ background: #f1f3f4;
+ cursor: text;
+}
+.pcr-app .pcr-interaction .pcr-result::-moz-selection {
+ background: #4285f4;
+ color: #fff;
+}
+.pcr-app .pcr-interaction .pcr-result::selection {
+ background: #4285f4;
+ color: #fff;
+}
+.pcr-app .pcr-interaction .pcr-type.active {
+ color: #fff;
+ background: #4285f4;
+}
+.pcr-app .pcr-interaction .pcr-save,
+.pcr-app .pcr-interaction .pcr-cancel,
+.pcr-app .pcr-interaction .pcr-clear {
+ color: #fff;
+ width: auto;
+}
+.pcr-app .pcr-interaction .pcr-save,
+.pcr-app .pcr-interaction .pcr-cancel,
+.pcr-app .pcr-interaction .pcr-clear {
+ color: #fff;
+}
+.pcr-app .pcr-interaction .pcr-save:hover,
+.pcr-app .pcr-interaction .pcr-cancel:hover,
+.pcr-app .pcr-interaction .pcr-clear:hover {
+ filter: brightness(0.925);
+}
+.pcr-app .pcr-interaction .pcr-save {
+ background: #4285f4;
+}
+.pcr-app .pcr-interaction .pcr-clear,
+.pcr-app .pcr-interaction .pcr-cancel {
+ background: #f44250;
+}
+.pcr-app .pcr-interaction .pcr-clear:focus,
+.pcr-app .pcr-interaction .pcr-cancel:focus {
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(244, 66, 80, 0.75);
+}
+.pcr-app .pcr-selection .pcr-picker {
+ position: absolute;
+ height: 18px;
+ width: 18px;
+ border: 2px solid #fff;
+ border-radius: 100%;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.pcr-app .pcr-selection .pcr-color-palette,
+.pcr-app .pcr-selection .pcr-color-chooser,
+.pcr-app .pcr-selection .pcr-color-opacity {
+ position: relative;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ display: flex;
+ flex-direction: column;
+ cursor: grab;
+ cursor: -webkit-grab;
+}
+.pcr-app .pcr-selection .pcr-color-palette:active,
+.pcr-app .pcr-selection .pcr-color-chooser:active,
+.pcr-app .pcr-selection .pcr-color-opacity:active {
+ cursor: grabbing;
+ cursor: -webkit-grabbing;
+}
+.pcr-app[data-theme=nano] {
+ width: 14.25em;
+ max-width: 95vw;
+}
+.pcr-app[data-theme=nano] .pcr-swatches {
+ margin-top: .6em;
+ padding: 0 .6em;
+}
+.pcr-app[data-theme=nano] .pcr-interaction {
+ padding: 0 .6em .6em .6em;
+}
+.pcr-app[data-theme=nano] .pcr-selection {
+ display: grid;
+ grid-gap: .6em;
+ grid-template-columns: 1fr 4fr;
+ grid-template-rows: 5fr auto auto;
+ align-items: center;
+ height: 10.5em;
+ width: 100%;
+ align-self: flex-start;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview {
+ grid-area: 2 / 1 / 4 / 1;
+ height: 100%;
+ width: 100%;
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ margin-left: .6em;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview .pcr-last-color {
+ display: none;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview .pcr-current-color {
+ position: relative;
+ background: var(--pcr-color);
+ width: 2em;
+ height: 2em;
+ border-radius: 50em;
+ overflow: hidden;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview .pcr-current-color::before {
+ position: absolute;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: url('data:image/svg+xml;utf8, ');
+ background-size: .5em;
+ border-radius: .15em;
+ z-index: -1;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-palette {
+ grid-area: 1 / 1 / 2 / 3;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-palette .pcr-palette {
+ border-radius: .15em;
+ width: 100%;
+ height: 100%;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-palette .pcr-palette::before {
+ position: absolute;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: url('data:image/svg+xml;utf8, ');
+ background-size: .5em;
+ border-radius: .15em;
+ z-index: -1;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser {
+ grid-area: 2 / 2 / 2 / 2;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity {
+ grid-area: 3 / 2 / 3 / 2;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser,
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity {
+ height: 0.5em;
+ margin: 0 .6em;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser .pcr-picker,
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity .pcr-picker {
+ top: 50%;
+ transform: translateY(-50%);
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser .pcr-slider,
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity .pcr-slider {
+ flex-grow: 1;
+ border-radius: 50em;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser .pcr-slider {
+ background: linear-gradient(to right, red, #ff0, lime, cyan, blue, #f0f, red);
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity .pcr-slider {
+ background: linear-gradient(to right, transparent, black), url('data:image/svg+xml;utf8, ');
+ background-size: 100%, 0.25em;
+}
+.pcr-app .pcr-swatches > button {
+ padding: 0;
+}
+
+/* src/css/pluginCompatibility.css */
+pre.code-styler-pre code ~ code.language-output {
+ display: block;
+ margin-bottom: 0;
+ padding-bottom: calc(2.5 * var(--code-padding)) !important;
+ padding-left: calc(var(--line-number-gutter-padding)) !important;
+ border-top: var(--header-separator-width) solid var(--code-styler-header-separator-colour);
+}
+pre.code-styler-pre.code-styler-collapsed code ~ code.language-output {
+ border-top-color: transparent;
+ border-top-width: 0;
+}
+pre.code-styler-pre:hover code ~ code.language-output {
+ margin-bottom: 0;
+}
+pre.code-styler-pre code ~ code.language-output input.interactive-stdin {
+ color: var(--text-normal);
+ background-color: var(--code-styler-codeblock-background-colour);
+ padding: 2px 8px;
+ border-color: var(--code-comment);
+ border-style: solid;
+ border-radius: 5px;
+ border-width: 1px;
+}
+pre.code-styler-pre code ~ code.language-output hr {
+ display: none;
+}
+pre.code-styler-pre button.run-code-button {
+ --copy-code-header-right-margin: 12px;
+ --dent-difference: 24px;
+ height: 14px;
+ margin-bottom: 6px !important;
+}
+pre.code-styler-pre.code-styler-collapsed button.run-code-button {
+ top: 500px;
+}
+pre.code-styler-pre button.run-code-button::before {
+ content: "\200b";
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ padding-right: 4px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ vertical-align: 0px;
+}
+pre.code-styler-pre button.clear-button-disabled,
+pre.code-styler-pre button.run-button-disabled {
+ display: none !important;
+}
+pre.code-styler-pre button.clear-button {
+ height: 14px;
+ margin-bottom: 6px !important;
+ margin-left: calc(var(--language-border-width) + 12px);
+ will-change: margin-right, clip-path;
+ clip-path: var(--polygon-in);
+}
+pre.code-styler-pre button.clear-button::before {
+ content: "\200b";
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ padding-right: 4px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ vertical-align: 0px;
+}
+pre.code-styler-pre button.clear-button:not(:active) {
+ animation: reverse-indent var(--duration-button);
+}
+pre.code-styler-pre button.clear-button:hover {
+ background-color: transparent;
+ animation: reverse-outdent var(--duration-button);
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+}
+pre.code-styler-pre button.clear-button:active {
+ scale: 0.95;
+ transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+}
+.code-styler-pre-parent.has-run-code-button .load-state-indicator {
+ color: none;
+ background: none;
+ z-index: 10;
+}
+.code-styler-pre-parent.has-run-code-button .load-state-indicator::before {
+ box-shadow: none;
+}
+.code-styler-pre-parent.has-run-code-button .load-state-indicator svg {
+ color: var(--code-styler-button-colour);
+}
+.code-styler-pre-parent.has-run-code-button .load-state-indicator svg:hover {
+ color: var(--code-styler-button-active-colour);
+}
+.code-styler-pre-parent.has-run-code-button .load-state-indicator.visible {
+ transform: translateX(0);
+}
+.block-language-preview pre.code-styler-pre code {
+ white-space: unset;
+}
+pre.code-styler-pre span.code-block-line_num-wrap,
+pre.code-styler-pre div.code-block-highlight-wrap {
+ display: none;
+}
+.markdown-source-view.mod-cm6 .cm-embed-block .code-styler-pre-parent + .edit-block-button::after {
+ content: "Edit Block";
+ font-size: var(--font-ui-smaller);
+ padding-left: 4px;
+}
+.markdown-source-view.mod-cm6 .cm-embed-block:not(:hover) .code-styler-pre-parent + .edit-block-button {
+ visibility: hidden;
+ opacity: 0;
+}
+.markdown-source-view.mod-cm6 .cm-embed-block .code-styler-pre-parent + .edit-block-button {
+ --copy-code-header-right-margin: calc(2.2 * var(--header-button-spacing));
+ --dent-difference: 0px;
+ --polygon-in: polygon(0 0, 18px 0, 18px 36px, 0 36px);
+ transition: visibility var(--duration-button), opacity var(--duration-button);
+ visibility: visible;
+ opacity: 1;
+ z-index: 10;
+ transform: translateY(-50%);
+ top: max(calc(0.5 * var(--container-height) * 1), calc(0.5 * var(--container-min-height) * 1));
+ margin: 0;
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ will-change: margin-right, clip-path;
+ clip-path: var(--polygon-in);
+ padding: 0;
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .cm-embed-block .code-styler-pre-parent:has(pre.code-styler-pre .code-styler-header-container) + .edit-block-button,
+body:not(.code-styler-show-langnames-always) .cm-embed-block .code-styler-pre-parent:not(:has(pre.code-styler-pre .code-styler-header-container-specific)):not(:has(pre.code-styler-pre .code-styler-header-container img.code-styler-icon)) + .edit-block-button,
+body .cm-embed-block .code-styler-pre-parent:has(pre.code-styler-pre:not([class*="language-"]) .code-styler-header-container) + .edit-block-button {
+ --copy-code-header-right-margin: 4px;
+ top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal));
+}
+.markdown-source-view.mod-cm6 .cm-embed-block:hover .code-styler-pre-parent + .edit-block-button:hover {
+ background: transparent;
+ animation: reverse-outdent var(--duration-button);
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+}
+.markdown-source-view.mod-cm6 .cm-embed-block:hover .code-styler-pre-parent + .edit-block-button:active {
+ scale: 0.95;
+ transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+}
+div.block-language-include pre.code-styler-pre button.copy-code-button {
+ margin: 0;
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+}
+div.block-language-include pre.code-styler-pre button.copy-code-button:hover {
+ margin-right: var(--copy-code-header-right-margin);
+}
+
+/* src/css/styles.css */
+body {
+ --border-radius: 10px;
+ --gradient-background-colour: transparent;
+ --code-padding: 8px;
+ --container-height: calc(var(--language-icon-size) + 2 * var(--header-inner-vertical-padding) * var(--header-font-size));
+ --container-min-height: calc((var(--header-font-size) + 2 * var(--header-inner-vertical-padding) * var(--header-font-size)) * var(--line-height-normal));
+ --language-border-colour: var(--code-styler-codeblock-background-colour);
+ --language-border-width: 0px;
+ --header-font-size: var(--code-size);
+ --header-padding: 0px;
+ --header-inner-vertical-padding: 0.3;
+ --header-spacing: 15px;
+ --header-button-spacing: 14px;
+ --header-separator-width: 2px;
+ --header-separator-width-padding: var(--header-separator-width);
+ --code-styler-header-border: none;
+ --collapsed-bottom-border: 0 solid transparent;
+ --language-icon-size: 28px;
+ --language-icon-filter: none;
+ --gradient-highlights-colour-stop: 100%;
+ --line-number-height-correction: 2px;
+ --line-number-gutter-padding: 16px;
+ --line-number-gutter-min-width: 32.67px;
+ --line-wrapping: pre-wrap;
+ --line-active-wrapping: var(--line-wrapping);
+ --code-styler-button-colour: var(--text-muted);
+ --code-styler-button-active-colour: white;
+ --duration-button: 240ms;
+ --dent-difference: 30px;
+ --polygon-in: polygon(0 0, 16px 0, 16px 36px, 0 36px);
+ --polygon-out: polygon(0 0, 100% 0, 100% 100%, 0 100%);
+ --copy-code-header-right-margin: calc(3 * var(--header-button-spacing));
+ --code-styler-inline-font-weight: 400;
+ --code-styler-inline-border-radius: 6px;
+ --code-styler-inline-padding-vertical: 5px;
+ --code-styler-inline-padding-horizontal: 5px;
+ --code-styler-inline-margin-horizontal: 0px;
+ --code-styler-inline-colour: var(--code-normal);
+ --code-styler-inline-colour-active: var(--code-normal);
+ --code-styler-inline-background-colour: var(--code-background);
+}
+.setting-item.code-styler-spaced .checkbox-container + .pickr {
+ padding-left: 10px;
+}
+.code-styler-donation {
+ width: 70%;
+ margin: 0 auto;
+ text-align: center;
+}
+.code-styler-setting-text-area textarea {
+ width: 400px;
+ height: 220px;
+}
+/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2Nzcy9jb2RlYmxvY2tzLmNzcyIsICIuLi9zcmMvY3NzL2lubGluZUNvZGUuY3NzIiwgIi4uL3NyYy9jc3MvcGRmRXhwb3J0LmNzcyIsICIuLi9zcmMvY3NzL3BpY2tyLmNzcyIsICIuLi9zcmMvY3NzL3BsdWdpbkNvbXBhdGliaWxpdHkuY3NzIiwgIi4uL3NyYy9jc3Mvc3R5bGVzLmNzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqIFByZSBlbGVtZW50cyAqL1xuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnR7XG5cdG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZSB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcblx0bWluLWhlaWdodDogdW5zZXQ7XG5cdHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSwgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpIDEwMCUpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB7XG5cdGRpc3BsYXk6IGdyaWQ7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgYXV0bztcblx0Z3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tY29kZS1wYWRkaW5nKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tY29kZS1wYWRkaW5nKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcblx0Ym9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcblx0dHJhbnNpdGlvbjogbWF4LWhlaWdodCBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBwYWRkaW5nIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIGJvcmRlci10b3AgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0bWF4LWhlaWdodDogMDtcblx0b3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUgY29kZTpub3QoOmhhcyggPiBpbnB1dFtzdHlsZSo9XCJkaXNwbGF5OiBpbmxpbmU7XCJdKSk6YWN0aXZlIHtcblx0LS1saW5lLXdyYXBwaW5nOiB2YXIoLS1saW5lLWFjdGl2ZS13cmFwcGluZykgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWNvbGxhcHNlZCBjb2RlIHtcblx0cGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlOjpiZWZvcmUsXG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZTo6YWZ0ZXIge1xuXHRjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2sgcHJlLmNvZGUtc3R5bGVyLXByZSB7XG5cdG1hcmdpbjogMWVtIDBweDtcbn1cblxuLyoqIEVkaXRpbmcgTW9kZSBCb2R5ICovXG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIHtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcblx0Ym9yZGVyLXRvcDogbm9uZSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyBbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZVwiXS5IeXBlck1ELWNvZGVibG9jay1lbmQge1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xufVxuYm9keTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ2ljb25zLWFsd2F5cyk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcy1hbHdheXMpIC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIgKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4sXG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMtYWx3YXlzKSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKCBpbWcuY29kZS1zdHlsZXItaWNvbikpICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luLFxuYm9keSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKFtjbGFzcyo9J2NvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctJ10pKSArIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbixcbmJvZHkgLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QoW2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddKSArIFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luLFxuYm9keSAubWFya2Rvd24tc291cmNlLXZpZXcgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW46bnRoLW9mLXR5cGUoMSkgeyAvKj8gRGVwZW5kaW5nIG9uIGhlYWRlciB2aXNpYmlsaXR5ICovXG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2tbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ10ge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWdyYWRpZW50LWJhY2tncm91bmQtY29sb3VyKSB2YXIoLS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wKSwgdHJhbnNwYXJlbnQgMTAwJSksIHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLXNpemUtNC00KSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2tbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ11bY2xhc3MqPSdsYW5ndWFnZS0nXSB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91ciksIHZhcigtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXIpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCksIHZhcigtLWdyYWRpZW50LWJhY2tncm91bmQtY29sb3VyKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpIHZhcigtLWdyYWRpZW50LWhpZ2hsaWdodHMtY29sb3VyLXN0b3ApLCB0cmFuc3BhcmVudCAxMDAlKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2tbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ11bY2xhc3MqPSdsYW5ndWFnZS0nXSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCk7XG59XG5cbi8qKiBIZWFkZXIgc3R5bGluZyAqL1xuYm9keTpub3QoW2NsYXNzKj0nY29kZS1zdHlsZXItc2hvdy1sYW5naWNvbnMnXSkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItc3BlY2lmaWMgZGl2Omhhcyg+IGltZy5jb2RlLXN0eWxlci1pY29uKSxcbmJvZHk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmdpY29ucy1hbHdheXMpIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIGRpdjpoYXMoPiBpbWcuY29kZS1zdHlsZXItaWNvbikge1xuXHRkaXNwbGF5OiBub25lO1xufVxuYm9keTpub3QoW2NsYXNzKj0nY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMnXSkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItc3BlY2lmaWMgW2NsYXNzXj1cImNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWdcIl0sXG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMtYWx3YXlzKSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciBbY2xhc3NePVwiY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZ1wiXSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5naWNvbnMtYWx3YXlzKTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ25hbWVzLWFsd2F5cykgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIsXG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMtYWx3YXlzKSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjpub3QoOmhhcyggaW1nLmNvZGUtc3R5bGVyLWljb24pKSB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbmJvZHkgLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjpub3QoW2NsYXNzKj0nbGFuZ3VhZ2UtJ10pLFxuYm9keSBwcmUuY29kZS1zdHlsZXItcHJlOm5vdChbY2xhc3MqPSdsYW5ndWFnZS0nXSkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5bY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ10ge1xuXHRmb250LXNpemU6IHZhcigtLWhlYWRlci1mb250LXNpemUpO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0aGVpZ2h0OiB2YXIoLS1jb250YWluZXItaGVpZ2h0KTtcblx0bWluLWhlaWdodDogdmFyKC0tY29udGFpbmVyLW1pbi1oZWlnaHQpO1xuXHRwYWRkaW5nLXRvcDogdmFyKC0taGVhZGVyLXBhZGRpbmcpO1xuXHRtYXJnaW4tdG9wOiAwcHggIWltcG9ydGFudDsgIFxuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHR0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiBbY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ10ge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSAwJSx2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYmFja2dyb3VuZC1jb2xvdXIpIGNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSwgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpIGNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSwgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpIDEwMCUpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgYm90dG9tLzEwMCUgYm9yZGVyLWJveCBuby1yZXBlYXQsdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpO1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcblx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCk7XG5cdGJvcmRlci10b3A6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXIpO1xuXHRib3JkZXItbGVmdDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1yaWdodDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIFtjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdGJvcmRlci1ib3R0b206IHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpIHNvbGlkIHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1zZXBhcmF0b3ItY29sb3VyKTtcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gW2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddOm5vdCg6aGFzKCsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luKSkge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSAwJSx2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYmFja2dyb3VuZC1jb2xvdXIpIDEwMCUpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgYm90dG9tLzEwMCUgYm9yZGVyLWJveCBuby1yZXBlYXQsdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLWhlYWRlci1wYWRkaW5nKTtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1ib3R0b206IHZhcigtLWNvbGxhcHNlZC1ib3R0b20tYm9yZGVyKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItY29sbGFwc2VkIFtjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXSB7XG5cdGJvcmRlci1ib3R0b206IHZhcigtLWNvbGxhcHNlZC1ib3R0b20tYm9yZGVyKTtcbn1cbltjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXSBbY2xhc3NePVwiY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZ1wiXSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG5cdHBhZGRpbmctcmlnaHQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG5cdHBhZGRpbmctdG9wOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctYm90dG9tOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgdmFyKC0tYm9yZGVyLXJhZGl1cykgMHB4IDBweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtY29sb3VyKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1ib2xkLCBub3JtYWwpO1xuXHRmb250LXN0eWxlOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtaXRhbGljLCBub3JtYWwpO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHRyYW5zaXRpb246IGJvcmRlci1yYWRpdXMgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSwgcGFkZGluZyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiBbY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ106bm90KDpoYXMoKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4pKSBbY2xhc3NePVwiY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZ1wiXSxcbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItY29sbGFwc2VkIFtjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXSBbY2xhc3NePVwiY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZ1wiXSB7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci10ZXh0IHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0cGFkZGluZy1sZWZ0OiAwcHg7XG5cdHBhZGRpbmctdG9wOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctYm90dG9tOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci10ZXh0LWNvbG91cik7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItdGl0bGUtdGV4dC1ib2xkLCBub3JtYWwpO1xuXHRmb250LXN0eWxlOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItdGl0bGUtdGV4dC1pdGFsaWMsIG5vcm1hbCk7XG5cdHRyYW5zaXRpb246IHBhZGRpbmcgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbmJvZHk6bm90KFtjbGFzcyo9J2NvZGUtc3R5bGVyLXNob3ctbGFuZ2ljb25zJ10pIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLXNwZWNpZmljIFtjbGFzc149XCJjb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnXCJdLFxuYm9keTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ2ljb25zLWFsd2F5cykgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIgW2NsYXNzXj1cImNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWdcIl0sXG5ib2R5IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLXNwZWNpZmljOm5vdCg6aGFzKCBkaXYgPiBpbWcuY29kZS1zdHlsZXItaWNvbikpIFtjbGFzc149XCJjb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnXCJdIHsgLyo/IERlcGVuZGluZyBvbiBoZWFkZXIgdmlzaWJpbGl0eSAqL1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbn1cbmJvZHk6bm90KFtjbGFzcyo9J2NvZGUtc3R5bGVyLXNob3ctbGFuZ2ljb25zJ10pOm5vdChbY2xhc3MqPSdjb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcyddKSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1zcGVjaWZpYyAuY29kZS1zdHlsZXItaGVhZGVyLXRleHQsXG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5naWNvbnMtYWx3YXlzKTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ25hbWVzKSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciAuY29kZS1zdHlsZXItaGVhZGVyLXRleHQsXG5ib2R5IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLXNwZWNpZmljOm5vdCg6aGFzKCBbY2xhc3NePVwiY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy1cIl0pKSAuY29kZS1zdHlsZXItaGVhZGVyLXRleHQgeyAvKj8gRGVwZW5kaW5nIG9uIGhlYWRlciB2aXNpYmlsaXR5ICovXG5cdHBhZGRpbmctbGVmdDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xufVxuZGl2Omhhcyg+IGltZy5jb2RlLXN0eWxlci1pY29uKSB7XG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRwYWRkaW5nLXRvcDogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLWJvdHRvbTogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0cGFkZGluZy1yaWdodDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xuXHR0cmFuc2l0aW9uOiBwYWRkaW5nIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG4uY29kZS1zdHlsZXItaWNvbiB7XG5cdHdpZHRoOiB2YXIoLS1sYW5ndWFnZS1pY29uLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWxhbmd1YWdlLWljb24tc2l6ZSk7XG5cdGZpbHRlcjogdmFyKC0tbGFuZ3VhZ2UtaWNvbi1maWx0ZXIpO1xuXHRtYXJnaW46IDAgIWltcG9ydGFudDtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qKiBMaW5lcyAqL1xucHJlLmNvZGUtc3R5bGVyLXByZSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkJ10gPiAuY29kZS1zdHlsZXItbGluZS10ZXh0IHtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cikgMCUgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikgMTAwJSk7XG59XG4uY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZCB7XG5cdC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXI6IHZhcigtLWNvZGUtc3R5bGVyLWRlZmF1bHQtaGlnaGxpZ2h0LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQgLmNtLWFjdGl2ZSxcbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtZWRpdG9yIC5jbS1hY3RpdmUge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWNvZGUtc3R5bGVyLWFjdGl2ZS1lZGl0b3ItbGluZS1jb2xvdXIpLCB2YXIoLS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wKSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0IC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2tbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZVwiXS5jbS1hY3RpdmUsXG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LWNvZGVibG9jayAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uY20tYWN0aXZlIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1jb2RlLXN0eWxlci1hY3RpdmUtY29kZWJsb2NrLWxpbmUtY29sb3VyKSwgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikpICFpbXBvcnRhbnQ7XG59XG5cbi8qKiBMaW5lIG51bWJlcnMgKi9cbi5jb2RlLXN0eWxlcjpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGluZS1udW1iZXJzKSAuY29kZS1zdHlsZXItbGluZS1udW1iZXIsXG4uY29kZS1zdHlsZXItbGluZS1udW1iZXItaGlkZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlID4gY29kZSA+IGRpdjpmaXJzdC1jaGlsZCA+IFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10geyAvKj8gTWFpbnRhaW4gZ3V0dGVyIGNvbG91ciB3aGVuIHBhZGRlZCAqL1xuXHRib3gtc2hhZG93OiAwcHggY2FsYygtMSAqIHZhcigtLWNvZGUtcGFkZGluZykpIHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdHRyYW5zaXRpb246IGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItY29sbGFwc2VkID4gY29kZSA+IGRpdjpmaXJzdC1jaGlsZCA+IFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10geyAvKj8gTWFpbnRhaW4gZ3V0dGVyIGNvbG91ciB3aGVuIHBhZGRlZCAqL1xuXHRib3gtc2hhZG93OiAwcHggMHB4IHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlID4gY29kZSA+IGRpdjpsYXN0LWNoaWxkID4gW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSB7IC8qPyBNYWludGFpbiBndXR0ZXIgY29sb3VyIHdoZW4gcGFkZGVkICovXG5cdGJveC1zaGFkb3c6IDBweCB2YXIoLS1jb2RlLXBhZGRpbmcpIHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlID4gY29kZSA+IGRpdjpvbmx5LWNoaWxkID4gW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSB7IC8qPyBNYWludGFpbiBndXR0ZXIgY29sb3VyIHdoZW4gcGFkZGVkICovXG5cdGJveC1zaGFkb3c6IDBweCBjYWxjKC0xICogdmFyKC0tY29kZS1wYWRkaW5nKSkgdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKSwwcHggdmFyKC0tY29kZS1wYWRkaW5nKSB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSB7XG5cdHBhZGRpbmctbGVmdDogY2FsYyg0cHggKyB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpKTtcblx0cGFkZGluZy1yaWdodDogOHB4O1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0bWluLXdpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jb2RlLXNpemUpO1xuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vc3BhY2UpO1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLXRleHQtY29sb3VyKTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrIC5jb2RlLXN0eWxlci1saW5lLW51bWJlcixcbi5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2sgLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyLXNwZWNpZmljIHtcblx0cGFkZGluZy10b3A6IHZhcigtLWxpbmUtbnVtYmVyLWhlaWdodC1jb3JyZWN0aW9uKTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG1pbi13aWR0aDogY2FsYyh2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKSAtIDEycHgpO1xuXHRvdmVyZmxvdy14OiBhdXRvO1xuXHRkaXJlY3Rpb246IHJ0bDtcblx0bGVmdDogMDtcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyLFxuLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jay1iZWdpbiAuY29kZS1zdHlsZXItbGluZS1udW1iZXItc3BlY2lmaWMsXG4ubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrLWVuZCAuY29kZS1zdHlsZXItbGluZS1udW1iZXIsXG4ubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrLWVuZCAuY29kZS1zdHlsZXItbGluZS1udW1iZXItc3BlY2lmaWMge1xuXHR3aWR0aDogdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSB7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGdyaWQtY29sdW1uOiAxO1xuXHRwb3NpdGlvbjogc3RpY2t5O1xuXHR0b3A6IC0xcHg7XG5cdGxlZnQ6IDA7XG5cdGJvcmRlci10b3A6IHZhcigtLWxpbmUtbnVtYmVyLWhlaWdodC1jb3JyZWN0aW9uKSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgZGl2Omxhc3QtY2hpbGQgPiBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHtcblx0d2lkdGg6IHVuc2V0O1xufVxuLmNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHQgcHJlLmNvZGUtc3R5bGVyLXByZSBbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZFwiXSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC5jb2RlLXN0eWxlci1ndXR0ZXItaGlnaGxpZ2h0IC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2tbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZVwiXS5jbS1hY3RpdmUgW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSxcbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHQgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLmNtLWFjdGl2ZSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddLFxuLmNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHQgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWRcIl0gW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG59XG4uY29kZS1zdHlsZXItZ3V0dGVyLWFjdGl2ZS1saW5lIC5jbS1hY3RpdmUgW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXXtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1hY3RpdmUtdGV4dC1jb2xvdXIpO1xufVxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXNob3ctbGluZS1udW1iZXJzIC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2s6aGFzKC5jb2RlLXN0eWxlci1saW5lLW51bWJlciksXG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc2hvdy1saW5lLW51bWJlcnMgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jazpoYXMoLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyLXNwZWNpZmljKSB7XG5cdHBhZGRpbmctbGVmdDogY2FsYygxMnB4ICsgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSArIHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aCkgKyB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItcGFkZGluZykpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXTo6YmVmb3JlIHtcblx0Y29udGVudDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiogTGluZSB0ZXh0ICovXG5wcmUuY29kZS1zdHlsZXItcHJlID4gY29kZSA+IGRpdltjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXSB7XG5cdGRpc3BsYXk6IGNvbnRlbnRzICFpbXBvcnRhbnQ7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1saW5lLXRleHQge1xuXHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nKTtcblx0Z3JpZC1jb2x1bW46IDI7XG59XG4uSHlwZXJNRC1jb2RlYmxvY2s6aGFzKD4gLmNtLXdpZGdldEJ1ZmZlcikgeyAvKj8gUHJldmVudCBMaW5lIFdyYXBzICovXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uSHlwZXJNRC1jb2RlYmxvY2s6aGFzKD4gLmNtLXdpZGdldEJ1ZmZlcikgPiAuY20taG1kLWNvZGVibG9jayB7IC8qPyBQcmV2ZW50IExpbmUgV3JhcHMgKi9cblx0d2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcztcbn1cblxuLyoqIEJ1dHRvbnMgKi9cbkBrZXlmcmFtZXMgb3V0ZGVudCB7XG5cdGZyb20ge1xuXHRcdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR9XG5cdHRvIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcblx0fVxufVxuQGtleWZyYW1lcyBpbmRlbnQge1xuXHRmcm9tIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcblx0fVxuXHR0byB7XG5cdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKSAtIHZhcigtLWRlbnQtZGlmZmVyZW5jZSkpO1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdH1cbn1cbkBrZXlmcmFtZXMgcmV2ZXJzZS1vdXRkZW50IHtcblx0ZnJvbSB7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0fVxuXHR0byB7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG5cdH1cbn1cbkBrZXlmcmFtZXMgcmV2ZXJzZS1pbmRlbnQge1xuXHRmcm9tIHtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcblx0fVxuXHR0byB7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0fVxufVxuLm1hcmtkb3duLXJlbmRlcmVkIHByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uIHtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIG9wYWNpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0b3BhY2l0eTogMTtcblx0ZGlzcGxheTogdW5zZXQgIWltcG9ydGFudDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWludGVyZmFjZSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmU6bm90KC5jb2RlLXN0eWxlci1jb2xsYXBzZWQpOm5vdCg6aG92ZXIpIGJ1dHRvbixcbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItY29sbGFwc2VkIGJ1dHRvbixcbnByZS5jb2RlLXN0eWxlci1wcmU6bm90KC5jb2RlLXN0eWxlci1jb2xsYXBzZWQpOm5vdCg6aG92ZXIpIFtjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXTo6YWZ0ZXIge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdG9wYWNpdHk6IDBcbn1cbltjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXTo6YWZ0ZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogMDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0bWFyZ2luOiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWhlYWRlci1idXR0b24tc3BhY2luZyk7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdHdpZHRoOiAyMHB4O1xuXHRoZWlnaHQ6IDIwcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHQtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInIHhtbDpzcGFjZT0ncHJlc2VydmUnJTNFJTNDcGF0aCBkPSdNMTYgMjIgNiAxMmwxLjQtMS40IDguNiA4LjYgOC42LTguNkwyNiAxMnonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicvJTNFJTNDL3N2ZyUzRVwiKTtcblx0LXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyBmaWxsPSdub25lJyBzdHJva2U9J2N1cnJlbnRDb2xvcicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnICUzRSUzQ3BvbHlsaW5lIHBvaW50cz0nNiA5IDEyIDE1IDE4IDknLyUzRSUzQy9zdmclM0VcIik7XG5cdG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdG9wYWNpdHk6IDE7XG5cdHNjYWxlOiAwLjg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgZWFzZS1vdXQsIHZpc2liaWxpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSwgb3BhY2l0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBzY2FsZSB2YXIoLS1kdXJhdGlvbi1idXR0b24pIGN1YmljLWJlemllcigwLjQsIDAuMTQsIDAuMywgMSk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWNvbGxhcHNlZCBbY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ106OmFmdGVyLFxuLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiBbY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ106bm90KDpoYXMoKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4pKTo6YWZ0ZXIge1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuW2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddOmhvdmVyOjphZnRlciB7XG5cdHNjYWxlOiAxO1xufVxuYm9keTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ2ljb25zLWFsd2F5cyk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcy1hbHdheXMpIHByZS5jb2RlLXN0eWxlci1wcmU6aGFzKCAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcikgYnV0dG9uLmNvcHktY29kZS1idXR0b24sXG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMtYWx3YXlzKSBwcmUuY29kZS1zdHlsZXItcHJlOm5vdCg6aGFzKCAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1zcGVjaWZpYykpOm5vdCg6aGFzKCAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciBpbWcuY29kZS1zdHlsZXItaWNvbikpIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uLFxuYm9keSBwcmUuY29kZS1zdHlsZXItcHJlOm5vdChbY2xhc3MqPSdsYW5ndWFnZS0nXSk6aGFzKC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyKSBidXR0b24uY29weS1jb2RlLWJ1dHRvbiB7IC8qPyBEZXBlbmRpbmcgb24gaGVhZGVyIHZpc2liaWxpdHkgKi9cblx0dG9wOiBjYWxjKDAuNSAqIHZhcigtLWZvbnQtdGV4dC1zaXplKSAqIDAuODc1ICogdmFyKC0tbGluZS1oZWlnaHQtbm9ybWFsKSkgIWltcG9ydGFudDtcblx0LS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbjogMTJweDtcbn1cbmJvZHk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmdpY29ucy1hbHdheXMpOm5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMtYWx3YXlzKSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luLFxuYm9keTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ25hbWVzLWFsd2F5cykgLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjpub3QoOmhhcyggaW1nLmNvZGUtc3R5bGVyLWljb24pKSArIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbixcbmJvZHkgLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjpub3QoOmhhcyhbY2xhc3MqPSdjb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLSddKSkgKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4geyAvKj8gRGVwZW5kaW5nIG9uIGhlYWRlciB2aXNpYmlsaXR5ICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5naWNvbnMtYWx3YXlzKTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ25hbWVzLWFsd2F5cykgLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciArIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbiBzcGFuLmNvZGUtYmxvY2stZmxhaXIsXG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMtYWx3YXlzKSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKCBpbWcuY29kZS1zdHlsZXItaWNvbikpICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIHNwYW4uY29kZS1ibG9jay1mbGFpcixcbmJvZHkgLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjpub3QoOmhhcyhbY2xhc3MqPSdjb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLSddKSkgKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4gc3Bhbi5jb2RlLWJsb2NrLWZsYWlyIHsgLyo/IERlcGVuZGluZyBvbiBoZWFkZXIgdmlzaWJpbGl0eSAqL1xuXHR0b3A6IGNhbGMoMC41ICogdmFyKC0tZm9udC10ZXh0LXNpemUpICogMC44NzUgKiB2YXIoLS1saW5lLWhlaWdodC1ub3JtYWwpKSAhaW1wb3J0YW50O1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiAxMnB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbiB7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0dG9wOiBtYXgoY2FsYygwLjUgKiB2YXIoLS1jb250YWluZXItaGVpZ2h0KSAqIDEpLGNhbGMoMC41ICogdmFyKC0tY29udGFpbmVyLW1pbi1oZWlnaHQpICogMSkpICFpbXBvcnRhbnQ7XG5cdGJvdHRvbTogdW5zZXQgIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b24sXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b24sIC8qPyBFeGVjdXRlIENvZGUgUGx1Z2luIENvbXBhdGliaWxpdHkgKi9cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpciB7XG5cdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcblx0d2lsbC1jaGFuZ2U6IG1hcmdpbi1yaWdodCwgY2xpcC1wYXRoO1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjpub3QoOmFjdGl2ZSksXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b246bm90KDphY3RpdmUpLCAvKj8gRXhlY3V0ZSBDb2RlIFBsdWdpbiBDb21wYXRpYmlsaXR5ICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6bm90KDphY3RpdmUpIHtcblx0YW5pbWF0aW9uOiBpbmRlbnQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246aG92ZXIsXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b246aG92ZXIsIC8qPyBFeGVjdXRlIENvZGUgUGx1Z2luIENvbXBhdGliaWxpdHkgKi9cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjpob3Zlcntcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGFuaW1hdGlvbjogb3V0ZGVudCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uOmFjdGl2ZSxcbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbjphY3RpdmUsIC8qPyBFeGVjdXRlIENvZGUgUGx1Z2luIENvbXBhdGliaWxpdHkgKi9cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjphY3RpdmUge1xuXHRzY2FsZTogMC45NTtcblx0dHJhbnNpdGlvbjogc2NhbGUgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjo6YmVmb3JlLFxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcMjAwYlwiO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxNHB4O1xuXHRoZWlnaHQ6IDE0cHg7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J00yOCAxMHYxOEgxMFYxMGgxOG0wLTJIMTBhMiAyIDAgMCAwLTIgMnYxOGEyIDIgMCAwIDAgMiAyaDE4YTIgMiAwIDAgMCAyLTJWMTBhMiAyIDAgMCAwLTItMlonLyUzRSUzQ3BhdGggZD0nTTQgMThIMlY0YTIgMiAwIDAgMSAyLTJoMTR2Mkg0WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHQtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNMjggMTB2MThIMTBWMTBoMThtMC0ySDEwYTIgMiAwIDAgMC0yIDJ2MThhMiAyIDAgMCAwIDIgMmgxOGEyIDIgMCAwIDAgMi0yVjEwYTIgMiAwIDAgMC0yLTJaJy8lM0UlM0NwYXRoIGQ9J000IDE4SDJWNGEyIDIgMCAwIDEgMi0yaDE0djJINFonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycvJTNFJTNDL3N2ZyUzRVwiKTtcblx0bWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0dmVydGljYWwtYWxpZ246IDFweDtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpciB7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0Zm9udC1zaXplOiAwO1xuXHR0b3A6IG1pbihjYWxjKC0wLjUgKiB2YXIoLS1jb250YWluZXItaGVpZ2h0KSAqIDEuMSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSxjYWxjKC0wLjUgKiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCkgKiAxLjEgLSB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSkpICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdHBhZGRpbmc6IDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGluZS1oZWlnaHQ6IGluaXRpYWwgIWltcG9ydGFudDtcblx0bWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXIgPiAqIHtcblx0d2lkdGg6IDBweDtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjo6YmVmb3JlIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0b3BhY2l0eTogMTtcblx0dmVydGljYWwtYWxpZ246IC0xcHg7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjo6YWZ0ZXIge1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRvcGFjaXR5OiAxO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtdWktc21hbGxlcik7XG5cdGNvbnRlbnQ6ICdDb3B5Jztcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luLmNvZGUtc3R5bGVyLWxpbmUge1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcbn1cbiIsICIvKiogSW5saW5lIENvZGUgKi9cbi5jb2RlLXN0eWxlciAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWlubGluZS1jb2RlLFxuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1yZW5kZXJlZCA6bm90KHByZSkgPiBjb2RlIHtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1mb250LXdlaWdodCk7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcblx0cGFkZGluZzogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctdmVydGljYWwpIHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdG1hcmdpbjogMHB4IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbCkgIWltcG9ydGFudDtcbn1cblxuLmNvZGUtc3R5bGVyIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20tZm9ybWF0dGluZy1jb2RlIHsgLyo/IFN0YW5kYWxvbmUgYmFja3RpY2tzICovXG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZSk7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uY29kZS1zdHlsZXIgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGU6aGFzKCsgc3Bhbi5jbS1pbmxpbmUtY29kZTpub3QoLmNtLWZvcm1hdHRpbmctY29kZSkpIHsvKj8gRmlyc3QgYmFja3RpY2sgKi9cblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlKTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIDBweCAwcHggdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctaG9yaXpvbnRhbCkgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jb2RlLXN0eWxlciAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWZvcm1hdHRpbmctY29kZSArIHNwYW4uY20taW5saW5lLWNvZGU6bm90KC5jbS1mb3JtYXR0aW5nLWNvZGUpIHsgLyo/IElubmVyIGNvZGUgd2l0aCBiYWNrdGlja3MgKi9cblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlKTtcblx0Ym9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDBweCAwcHggIWltcG9ydGFudDtcbn1cblxuLmNvZGUtc3R5bGVyIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20taW5saW5lLWNvZGU6bm90KC5jbS1mb3JtYXR0aW5nLWNvZGUpICsgc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGUgey8qPyBMYXN0IGJhY2t0aWNrICovXG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZSk7XG5cdGJvcmRlci1yYWRpdXM6IDBweCB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIDBweCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLW1hcmdpbi1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1yZW5kZXJlZCA6bm90KHByZSkgPiBjb2RlIGltZy5jb2RlLXN0eWxlci1pbmxpbmUtaWNvbiB7XG5cdGhlaWdodDogY2FsYyh2YXIoLS1jb2RlLXNpemUpICogMS4yKTtcblx0bWFyZ2luLWJvdHRvbTogMnB4O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1yZW5kZXJlZCA6bm90KHByZSkgPiBjb2RlIC5jb2RlLXN0eWxlci1pbmxpbmUtdGl0bGUge1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWZvbnQtd2VpZ2h0KTtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS10aXRsZS1jb2xvcik7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXJlbmRlcmVkIDpub3QocHJlKSA+IGNvZGUgLmNvZGUtc3R5bGVyLWlubGluZS10aXRsZTo6YWZ0ZXIge1xuXHRjb250ZW50OiAnXFxGRjVDJztcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS10aXRsZS1jb2xvcik7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXJlbmRlcmVkIDpub3QocHJlKSA+IGNvZGUgc3BhbjpoYXMoID4gaW1nLmNvZGUtc3R5bGVyLWlubGluZS1pY29uKSB7XG5cdHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cbiIsICJkaXYucHJpbnQge1xuXHQtLWxpbmUtd3JhcHBpbmc6IHByZS13cmFwICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgZGl2LnByaW50IHByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB7XG5cdG1heC1oZWlnaHQ6IHVuc2V0O1xufVxuLmNvZGUtc3R5bGVyIGRpdi5wcmludCBwcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWNvbGxhcHNlZCBjb2RlIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwgIi8qKiBQaWNrciAxLjguMiBNSVQgfCBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvcGlja3IgKi9cbi5waWNrciB7cG9zaXRpb246IHJlbGF0aXZlO292ZXJmbG93OiB2aXNpYmxlO3RyYW5zZm9ybTogdHJhbnNsYXRlWSgwKX0gIC5waWNrciAqIHtib3gtc2l6aW5nOiBib3JkZXItYm94O291dGxpbmU6IG5vbmU7Ym9yZGVyOiBub25lO2FwcGVhcmFuY2U6IG5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lfSAgLnBpY2tyIC5wY3ItYnV0dG9uIHtwb3NpdGlvbjogcmVsYXRpdmU7aGVpZ2h0OiAyZW07d2lkdGg6IDJlbTtwYWRkaW5nOiAwLjVlbTtjdXJzb3I6IHBvaW50ZXI7Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTAgNTBcIiBzdHJva2U9XCIlMjM0MjQ0NUFcIiBzdHJva2Utd2lkdGg9XCI1cHhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PHBhdGggZD1cIk00NSw0NUw1LDVcIj48L3BhdGg+PHBhdGggZD1cIk00NSw1TDUsNDVcIj48L3BhdGg+PC9zdmc+Jykgbm8tcmVwZWF0IGNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6IDA7dHJhbnNpdGlvbjogYWxsIDAuM3N9ICAucGlja3IgLnBjci1idXR0b246OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO2NvbnRlbnQ6ICcnO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IC41ZW07Ym9yZGVyLXJhZGl1czogLjE1ZW07ei1pbmRleDogLTF9ICAucGlja3IgLnBjci1idXR0b246OmJlZm9yZSB7ei1pbmRleDogaW5pdGlhbH0gIC5waWNrciAucGNyLWJ1dHRvbjo6YWZ0ZXIge3Bvc2l0aW9uOiBhYnNvbHV0ZTtjb250ZW50OiAnJzt0b3A6IDA7bGVmdDogMDtoZWlnaHQ6IDEwMCU7d2lkdGg6IDEwMCU7dHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzO2JhY2tncm91bmQ6IHZhcigtLXBjci1jb2xvcik7Ym9yZGVyLXJhZGl1czogLjE1ZW19ICAucGlja3IgLnBjci1idXR0b24uY2xlYXIge2JhY2tncm91bmQtc2l6ZTogNzAlfSAgLnBpY2tyIC5wY3ItYnV0dG9uLmNsZWFyOjpiZWZvcmUge29wYWNpdHk6IDB9ICAucGlja3IgLnBjci1idXR0b24uY2xlYXI6Zm9jdXMge2JveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpLCAwIDAgMCAzcHggdmFyKC0tcGNyLWNvbG9yKX0gIC5waWNrciAucGNyLWJ1dHRvbi5kaXNhYmxlZCB7Y3Vyc29yOiBub3QtYWxsb3dlZH0gIC5waWNrciAqLCAucGNyLWFwcCAqIHtib3gtc2l6aW5nOiBib3JkZXItYm94O291dGxpbmU6IG5vbmU7Ym9yZGVyOiBub25lO2FwcGVhcmFuY2U6IG5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lfSAgLnBpY2tyIGlucHV0OmZvY3VzLCAucGlja3IgaW5wdXQucGNyLWFjdGl2ZSwgLnBpY2tyIGJ1dHRvbjpmb2N1cywgLnBpY2tyIGJ1dHRvbi5wY3ItYWN0aXZlLCAucGNyLWFwcCBpbnB1dDpmb2N1cywgLnBjci1hcHAgaW5wdXQucGNyLWFjdGl2ZSwgLnBjci1hcHAgYnV0dG9uOmZvY3VzLCAucGNyLWFwcCBidXR0b24ucGNyLWFjdGl2ZSB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCB2YXIoLS1wY3ItY29sb3IpfSAgLnBpY2tyIC5wY3ItcGFsZXR0ZSwgLnBpY2tyIC5wY3Itc2xpZGVyLCAucGNyLWFwcCAucGNyLXBhbGV0dGUsIC5wY3ItYXBwIC5wY3Itc2xpZGVyIHt0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3N9ICAucGlja3IgLnBjci1wYWxldHRlOmZvY3VzLCAucGlja3IgLnBjci1zbGlkZXI6Zm9jdXMsIC5wY3ItYXBwIC5wY3ItcGFsZXR0ZTpmb2N1cywgLnBjci1hcHAgLnBjci1zbGlkZXI6Zm9jdXMge2JveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpLCAwIDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjI1KX0gIC5wY3ItYXBwIHtwb3NpdGlvbjogZml4ZWQ7ZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uO3otaW5kZXg6IDEwMDAwO2JvcmRlci1yYWRpdXM6IDAuMWVtO2JhY2tncm91bmQ6ICNmZmY7b3BhY2l0eTogMDt2aXNpYmlsaXR5OiBoaWRkZW47dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzLCB2aXNpYmlsaXR5IDBzIDAuM3M7Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmO2JveC1zaGFkb3c6IDAgMC4xNWVtIDEuNWVtIDAgcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDAgMWVtIDAgcmdiYSgwLCAwLCAwLCAwLjAzKTtsZWZ0OiAwO3RvcDogMH0gIC5wY3ItYXBwLnZpc2libGUge3RyYW5zaXRpb246IG9wYWNpdHkgMC4zczt2aXNpYmlsaXR5OiB2aXNpYmxlO29wYWNpdHk6IDF9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzIHtkaXNwbGF5OiBmbGV4O2ZsZXgtd3JhcDogd3JhcDttYXJnaW4tdG9wOiAwLjc1ZW19ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzLnBjci1sYXN0IHttYXJnaW46IDB9ICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHsgIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMge2Rpc3BsYXk6IGdyaWQ7YWxpZ24taXRlbXM6IGNlbnRlcjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgMS43NWVtKX0gIH0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b24ge2ZvbnQtc2l6ZTogMWVtO3Bvc2l0aW9uOiByZWxhdGl2ZTt3aWR0aDogY2FsYygxLjc1ZW0gLSAxMHB4KTtoZWlnaHQ6IGNhbGMoMS43NWVtIC0gMTBweCk7Ym9yZGVyLXJhZGl1czogMC4xNWVtO2N1cnNvcjogcG9pbnRlcjttYXJnaW46IDIuNXB4O2ZsZXgtc2hyaW5rOiAwO2p1c3RpZnktc2VsZjogY2VudGVyO3RyYW5zaXRpb246IGFsbCAwLjE1cztvdmVyZmxvdzogaGlkZGVuO2JhY2tncm91bmQ6IHRyYW5zcGFyZW50O3otaW5kZXg6IDF9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOjpiZWZvcmUge3Bvc2l0aW9uOiBhYnNvbHV0ZTtjb250ZW50OiAnJzt0b3A6IDA7bGVmdDogMDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7YmFja2dyb3VuZDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyIDJcIj48cGF0aCBmaWxsPVwid2hpdGVcIiBkPVwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcIi8+PHBhdGggZmlsbD1cImdyYXlcIiBkPVwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcIi8+PC9zdmc+Jyk7YmFja2dyb3VuZC1zaXplOiA2cHg7Ym9yZGVyLXJhZGl1czogLjE1ZW07ei1pbmRleDogLTF9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOjphZnRlciB7Y29udGVudDogJyc7cG9zaXRpb246IGFic29sdXRlO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtiYWNrZ3JvdW5kOiB2YXIoLS1wY3ItY29sb3IpO2JvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNSk7Ym9yZGVyLXJhZGl1czogMC4xNWVtO2JveC1zaXppbmc6IGJvcmRlci1ib3h9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOmhvdmVyIHtmaWx0ZXI6IGJyaWdodG5lc3MoMS4wNSl9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOm5vdCgucGNyLWFjdGl2ZSkge2JveC1zaGFkb3c6IG5vbmV9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIHtkaXNwbGF5OiBmbGV4O2ZsZXgtd3JhcDogd3JhcDthbGlnbi1pdGVtczogY2VudGVyO21hcmdpbjogMCAtMC4yZW0gMCAtMC4yZW19ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uID4gKiB7bWFyZ2luOiAwIDAuMmVtfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiBpbnB1dCB7bGV0dGVyLXNwYWNpbmc6IDAuMDdlbTtmb250LXNpemU6IDAuNzVlbTt0ZXh0LWFsaWduOiBjZW50ZXI7Y3Vyc29yOiBwb2ludGVyO2NvbG9yOiAjNzU3OTdlO2JhY2tncm91bmQ6ICNmMWYzZjQ7Ym9yZGVyLXJhZGl1czogLjE1ZW07dHJhbnNpdGlvbjogYWxsIDAuMTVzO3BhZGRpbmc6IDAuNDVlbSAwLjVlbTttYXJnaW4tdG9wOiAwLjc1ZW19ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0OmhvdmVyIHtmaWx0ZXI6IGJyaWdodG5lc3MoMC45NzUpfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiBpbnB1dDpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCByZ2JhKDY2LCAxMzMsIDI0NCwgMC43NSl9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItcmVzdWx0IHtjb2xvcjogIzc1Nzk3ZTt0ZXh0LWFsaWduOiBsZWZ0O2ZsZXg6IDEgMSA4ZW07bWluLXdpZHRoOiA4ZW07dHJhbnNpdGlvbjogYWxsIDAuMnM7Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogI2YxZjNmNDtjdXJzb3I6IHRleHR9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItcmVzdWx0OjotbW96LXNlbGVjdGlvbiB7YmFja2dyb3VuZDogIzQyODVmNDtjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1yZXN1bHQ6OnNlbGVjdGlvbiB7YmFja2dyb3VuZDogIzQyODVmNDtjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci10eXBlLmFjdGl2ZSB7Y29sb3I6ICNmZmY7YmFja2dyb3VuZDogIzQyODVmNH0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1zYXZlLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2VsLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXIge2NvbG9yOiAjZmZmO3dpZHRoOiBhdXRvfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmUsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWwsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhciB7Y29sb3I6ICNmZmZ9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZTpob3ZlciwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbDpob3ZlciwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNsZWFyOmhvdmVyIHtmaWx0ZXI6IGJyaWdodG5lc3MoMC45MjUpfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmUge2JhY2tncm91bmQ6ICM0Mjg1ZjR9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXIsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWwge2JhY2tncm91bmQ6ICNmNDQyNTB9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXI6Zm9jdXMsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWw6Zm9jdXMge2JveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpLCAwIDAgMCAzcHggcmdiYSgyNDQsIDY2LCA4MCwgMC43NSl9ICAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLXBpY2tlciB7cG9zaXRpb246IGFic29sdXRlO2hlaWdodDogMThweDt3aWR0aDogMThweDtib3JkZXI6IDJweCBzb2xpZCAjZmZmO2JvcmRlci1yYWRpdXM6IDEwMCU7LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTstbW96LXVzZXItc2VsZWN0OiBub25lOy1tcy11c2VyLXNlbGVjdDogbm9uZTt1c2VyLXNlbGVjdDogbm9uZX0gIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZSwgLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkge3Bvc2l0aW9uOiByZWxhdGl2ZTstd2Via2l0LXVzZXItc2VsZWN0OiBub25lOy1tb3otdXNlci1zZWxlY3Q6IG5vbmU7LW1zLXVzZXItc2VsZWN0OiBub25lO3VzZXItc2VsZWN0OiBub25lO2Rpc3BsYXk6IGZsZXg7ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtjdXJzb3I6IGdyYWI7Y3Vyc29yOiAtd2Via2l0LWdyYWJ9ICAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGU6YWN0aXZlLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXI6YWN0aXZlLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHk6YWN0aXZlIHtjdXJzb3I6IGdyYWJiaW5nO2N1cnNvcjogLXdlYmtpdC1ncmFiYmluZ30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSB7d2lkdGg6IDE0LjI1ZW07bWF4LXdpZHRoOiA5NXZ3fSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc3dhdGNoZXMge21hcmdpbi10b3A6IC42ZW07cGFkZGluZzogMCAuNmVtfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3ItaW50ZXJhY3Rpb24ge3BhZGRpbmc6IDAgLjZlbSAuNmVtIC42ZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24ge2Rpc3BsYXk6IGdyaWQ7Z3JpZC1nYXA6IC42ZW07Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNGZyO2dyaWQtdGVtcGxhdGUtcm93czogNWZyIGF1dG8gYXV0bzthbGlnbi1pdGVtczogY2VudGVyO2hlaWdodDogMTAuNWVtO3dpZHRoOiAxMDAlO2FsaWduLXNlbGY6IGZsZXgtc3RhcnR9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IHtncmlkLWFyZWE6IDIgLyAxIC8gNCAvIDE7aGVpZ2h0OiAxMDAlO3dpZHRoOiAxMDAlO2Rpc3BsYXk6IGZsZXg7ZmxleC1kaXJlY3Rpb246IHJvdztqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjttYXJnaW4tbGVmdDogLjZlbX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXcgLnBjci1sYXN0LWNvbG9yIHtkaXNwbGF5OiBub25lfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWN1cnJlbnQtY29sb3Ige3Bvc2l0aW9uOiByZWxhdGl2ZTtiYWNrZ3JvdW5kOiB2YXIoLS1wY3ItY29sb3IpO3dpZHRoOiAyZW07aGVpZ2h0OiAyZW07Ym9yZGVyLXJhZGl1czogNTBlbTtvdmVyZmxvdzogaGlkZGVufSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWN1cnJlbnQtY29sb3I6OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO2NvbnRlbnQ6ICcnO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IC41ZW07Ym9yZGVyLXJhZGl1czogLjE1ZW07ei1pbmRleDogLTF9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIHtncmlkLWFyZWE6IDEgLyAxIC8gMiAvIDM7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO3otaW5kZXg6IDF9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIC5wY3ItcGFsZXR0ZSB7Ym9yZGVyLXJhZGl1czogLjE1ZW07d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZSAucGNyLXBhbGV0dGU6OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO2NvbnRlbnQ6ICcnO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IC41ZW07Ym9yZGVyLXJhZGl1czogLjE1ZW07ei1pbmRleDogLTF9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIHtncmlkLWFyZWE6IDIgLyAyIC8gMiAvIDJ9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IHtncmlkLWFyZWE6IDMgLyAyIC8gMyAvIDJ9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyLCAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IHtoZWlnaHQ6IDAuNWVtO21hcmdpbjogMCAuNmVtfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciAucGNyLXBpY2tlciwgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSAucGNyLXBpY2tlciB7dG9wOiA1MCU7dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciAucGNyLXNsaWRlciwgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSAucGNyLXNsaWRlciB7ZmxleC1ncm93OiAxO2JvcmRlci1yYWRpdXM6IDUwZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3Itc2xpZGVyIHtiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJlZCwgI2ZmMCwgbGltZSwgY3lhbiwgYmx1ZSwgI2YwZiwgcmVkKX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkgLnBjci1zbGlkZXIge2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIGJsYWNrKSwgdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyIDJcIj48cGF0aCBmaWxsPVwid2hpdGVcIiBkPVwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcIi8+PHBhdGggZmlsbD1cImdyYXlcIiBkPVwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcIi8+PC9zdmc+Jyk7YmFja2dyb3VuZC1zaXplOiAxMDAlLCAwLjI1ZW19XG4ucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uIHtcblx0cGFkZGluZzogMDtcbn1cbiIsICIvKiogRXhlY3V0ZSBDb2RlIFBsdWdpbiAqL1xucHJlLmNvZGUtc3R5bGVyLXByZSBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMi41ICogdmFyKC0tY29kZS1wYWRkaW5nKSkgIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nKSkgIWltcG9ydGFudDtcblx0Ym9yZGVyLXRvcDogdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkgc29saWQgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1jb2xsYXBzZWQgY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0IHtcblx0Ym9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci10b3Atd2lkdGg6IDA7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlOmhvdmVyIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCBpbnB1dC5pbnRlcmFjdGl2ZS1zdGRpbiB7XG4gICAgY29sb3I6IHZhcigtLXRleHQtbm9ybWFsKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpO1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2RlLWNvbW1lbnQpO1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdGJvcmRlci13aWR0aDogMXB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQgaHIge1xuXHRkaXNwbGF5OiBub25lO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uIHtcblx0LS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbjogMTJweDtcblx0LS1kZW50LWRpZmZlcmVuY2U6IDI0cHg7XG5cdGhlaWdodDogMTRweDtcblx0bWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWNvbGxhcHNlZCBidXR0b24ucnVuLWNvZGUtYnV0dG9uIHtcblx0dG9wOiA1MDBweDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbjo6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXDIwMGJcIjtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxNHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHQtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNNyAyOGExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEuNDgyLS44NzZsMjAgMTFhMSAxIDAgMCAxIDAgMS43NTJsLTIwIDExQTEgMSAwIDAgMSA3IDI4WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHQtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNNyAyOGExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEuNDgyLS44NzZsMjAgMTFhMSAxIDAgMCAxIDAgMS43NTJsLTIwIDExQTEgMSAwIDAgMSA3IDI4WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogMHB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uLWRpc2FibGVkLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWJ1dHRvbi1kaXNhYmxlZCB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbiB7XG5cdGhlaWdodDogMTRweDtcblx0bWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgKyAxMnB4KTtcblx0d2lsbC1jaGFuZ2U6IG1hcmdpbi1yaWdodCwgY2xpcC1wYXRoO1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uOjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcMjAwYlwiO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxNHB4O1xuXHRoZWlnaHQ6IDE0cHg7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J00xNiA0IDYgMTRsMS40MSAxLjQxTDE1IDcuODNWMjhoMlY3LjgzbDcuNTkgNy41OEwyNiAxNCAxNiA0eicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHQtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNMTYgNCA2IDE0bDEuNDEgMS40MUwxNSA3LjgzVjI4aDJWNy44M2w3LjU5IDcuNThMMjYgMTQgMTYgNHonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycvJTNFJTNDL3N2ZyUzRVwiKTtcblx0bWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0dmVydGljYWwtYWxpZ246IDBweDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbjpub3QoOmFjdGl2ZSkge1xuXHRhbmltYXRpb246IHJldmVyc2UtaW5kZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b246aG92ZXJ7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRhbmltYXRpb246IHJldmVyc2Utb3V0ZGVudCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b246YWN0aXZlIHtcblx0c2NhbGU6IDAuOTU7XG5cdHRyYW5zaXRpb246IHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcbn1cbi5jb2RlLXN0eWxlci1wcmUtcGFyZW50Lmhhcy1ydW4tY29kZS1idXR0b24gLmxvYWQtc3RhdGUtaW5kaWNhdG9yIHtcblx0Y29sb3I6IG5vbmU7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdHotaW5kZXg6IDEwO1xufVxuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQuaGFzLXJ1bi1jb2RlLWJ1dHRvbiAubG9hZC1zdGF0ZS1pbmRpY2F0b3I6OmJlZm9yZSB7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvciBzdmcge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvciBzdmc6aG92ZXIge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWFjdGl2ZS1jb2xvdXIpO1xufVxuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQuaGFzLXJ1bi1jb2RlLWJ1dHRvbiAubG9hZC1zdGF0ZS1pbmRpY2F0b3IudmlzaWJsZSB7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLyoqIEVtYmVkIENvZGUgUGx1Z2luICovXG4uYmxvY2stbGFuZ3VhZ2UtcHJldmlldyBwcmUuY29kZS1zdHlsZXItcHJlIGNvZGUge1xuXHR3aGl0ZS1zcGFjZTogdW5zZXQ7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIHNwYW4uY29kZS1ibG9jay1saW5lX251bS13cmFwLFxucHJlLmNvZGUtc3R5bGVyLXByZSBkaXYuY29kZS1ibG9jay1oaWdobGlnaHQtd3JhcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2sgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b246OmFmdGVyIHtcblx0Y29udGVudDogJ0VkaXQgQmxvY2snO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtdWktc21hbGxlcik7XG5cdHBhZGRpbmctbGVmdDogNHB4O1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrOm5vdCg6aG92ZXIpIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50ICsgLmVkaXQtYmxvY2stYnV0dG9uIHtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRvcGFjaXR5OiAwXG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2sgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b24ge1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiBjYWxjKDIuMiAqIHZhcigtLWhlYWRlci1idXR0b24tc3BhY2luZykpO1xuXHQtLWRlbnQtZGlmZmVyZW5jZTogMHB4O1xuXHQtLXBvbHlnb24taW46IHBvbHlnb24oMCAwLCAxOHB4IDAsIDE4cHggMzZweCwgMCAzNnB4KTtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIG9wYWNpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0b3BhY2l0eTogMTtcblx0ei1pbmRleDogMTA7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0dG9wOiBtYXgoY2FsYygwLjUgKiB2YXIoLS1jb250YWluZXItaGVpZ2h0KSAqIDEpLGNhbGMoMC41ICogdmFyKC0tY29udGFpbmVyLW1pbi1oZWlnaHQpICogMSkpO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcblx0d2lsbC1jaGFuZ2U6IG1hcmdpbi1yaWdodCwgY2xpcC1wYXRoO1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHRwYWRkaW5nOiAwO1xufVxuYm9keTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ2ljb25zLWFsd2F5cyk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcy1hbHdheXMpIC5jbS1lbWJlZC1ibG9jayAuY29kZS1zdHlsZXItcHJlLXBhcmVudDpoYXMoIHByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIpICsgLmVkaXQtYmxvY2stYnV0dG9uLFxuYm9keTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ25hbWVzLWFsd2F5cykgLmNtLWVtYmVkLWJsb2NrIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50Om5vdCg6aGFzKCBwcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLXNwZWNpZmljKSk6bm90KDpoYXMoIHByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIgaW1nLmNvZGUtc3R5bGVyLWljb24pKSArIC5lZGl0LWJsb2NrLWJ1dHRvbixcbmJvZHkgLmNtLWVtYmVkLWJsb2NrIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50OmhhcyggcHJlLmNvZGUtc3R5bGVyLXByZTpub3QoW2NsYXNzKj0nbGFuZ3VhZ2UtJ10pIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyKSArIC5lZGl0LWJsb2NrLWJ1dHRvbiB7IC8qPyBEZXBlbmRpbmcgb24gaGVhZGVyIHZpc2liaWxpdHkgKi9cblx0LS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbjogNHB4O1xuXHR0b3A6IGNhbGMoMC41ICogdmFyKC0tZm9udC10ZXh0LXNpemUpICogMC44NzUgKiB2YXIoLS1saW5lLWhlaWdodC1ub3JtYWwpKTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jazpob3ZlciAuY29kZS1zdHlsZXItcHJlLXBhcmVudCArIC5lZGl0LWJsb2NrLWJ1dHRvbjpob3ZlciB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRhbmltYXRpb246IHJldmVyc2Utb3V0ZGVudCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2s6aG92ZXIgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b246YWN0aXZlIHtcblx0c2NhbGU6IDAuOTU7XG5cdHRyYW5zaXRpb246IHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcbn1cblxuLyoqIEZpbGUgSW5jbHVkZSBQbHVnaW4gKi9cbmRpdi5ibG9jay1sYW5ndWFnZS1pbmNsdWRlIHByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b24ge1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcbn1cbmRpdi5ibG9jay1sYW5ndWFnZS1pbmNsdWRlIHByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246aG92ZXIge1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcbn1cbiIsICIvKiogRGVmaW5lIENTUyB2YXJpYWJsZXMgKi9cbkBpbXBvcnQgXCIuL2NvZGVibG9ja3MuY3NzXCI7XG5AaW1wb3J0IFwiLi9pbmxpbmVDb2RlLmNzc1wiO1xuQGltcG9ydCBcIi4vcGRmRXhwb3J0LmNzc1wiO1xuQGltcG9ydCBcIi4vcGlja3IuY3NzXCI7XG5AaW1wb3J0IFwiLi9wbHVnaW5Db21wYXRpYmlsaXR5LmNzc1wiO1xuXG5ib2R5IHtcblx0LyogQ29kZWJsb2NrIEJvZHkgKi9cblx0LS1ib3JkZXItcmFkaXVzOiAxMHB4O1xuXHQtLWdyYWRpZW50LWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcblx0LS1jb2RlLXBhZGRpbmc6IDhweDtcblx0LS1jb250YWluZXItaGVpZ2h0OiBjYWxjKHZhcigtLWxhbmd1YWdlLWljb24tc2l6ZSkgKyAyICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpICogdmFyKC0taGVhZGVyLWZvbnQtc2l6ZSkpO1xuXHQtLWNvbnRhaW5lci1taW4taGVpZ2h0OiBjYWxjKCh2YXIoLS1oZWFkZXItZm9udC1zaXplKSArIDIgKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykgKiB2YXIoLS1oZWFkZXItZm9udC1zaXplKSkgKiB2YXIoLS1saW5lLWhlaWdodC1ub3JtYWwpKTtcblx0LS1sYW5ndWFnZS1ib3JkZXItY29sb3VyOiB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpO1xuXHQtLWxhbmd1YWdlLWJvcmRlci13aWR0aDogMHB4O1xuXG5cdC8qIEhlYWRlciAqL1xuXHQtLWhlYWRlci1mb250LXNpemU6IHZhcigtLWNvZGUtc2l6ZSk7XG5cdC0taGVhZGVyLXBhZGRpbmc6IDBweDtcblx0LS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZzogMC4zO1xuXHQtLWhlYWRlci1zcGFjaW5nOiAxNXB4O1xuXHQtLWhlYWRlci1idXR0b24tc3BhY2luZzogMTRweDtcblx0LS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoOiAycHg7XG5cdC0taGVhZGVyLXNlcGFyYXRvci13aWR0aC1wYWRkaW5nOiB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKTtcblx0LS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyOiBub25lO1xuXHQtLWNvbGxhcHNlZC1ib3R0b20tYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xuXHQtLWxhbmd1YWdlLWljb24tc2l6ZTogMjhweDtcblx0LS1sYW5ndWFnZS1pY29uLWZpbHRlcjogbm9uZTtcblxuXHQvKiBMaW5lcyAqL1xuXHQtLWdyYWRpZW50LWhpZ2hsaWdodHMtY29sb3VyLXN0b3A6IDEwMCU7XG5cblx0LyogTGluZSBOdW1iZXJzICovXG5cdC0tbGluZS1udW1iZXItaGVpZ2h0LWNvcnJlY3Rpb246IDJweDtcblx0LS1saW5lLW51bWJlci1ndXR0ZXItcGFkZGluZzogMTZweDtcblx0LS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoOiAzMi42N3B4O1xuXG5cdC8qIExpbmUgVGV4dCAqL1xuXHQtLWxpbmUtd3JhcHBpbmc6IHByZS13cmFwO1xuXHQtLWxpbmUtYWN0aXZlLXdyYXBwaW5nOiB2YXIoLS1saW5lLXdyYXBwaW5nKTtcblxuXHQvKiBCdXR0b25zICovXG5cdC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cjogdmFyKC0tdGV4dC1tdXRlZCk7XG5cdC0tY29kZS1zdHlsZXItYnV0dG9uLWFjdGl2ZS1jb2xvdXI6IHdoaXRlO1xuXHQtLWR1cmF0aW9uLWJ1dHRvbjogMjQwbXM7XG5cdC0tZGVudC1kaWZmZXJlbmNlOiAzMHB4O1xuXHQtLXBvbHlnb24taW46IHBvbHlnb24oMCAwLCAxNnB4IDAsIDE2cHggMzZweCwgMCAzNnB4KTtcblx0LS1wb2x5Z29uLW91dDogcG9seWdvbigwIDAsIDEwMCUgMCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiBjYWxjKDMgKiB2YXIoLS1oZWFkZXItYnV0dG9uLXNwYWNpbmcpKTtcblxuXHQvKiBJbmxpbmUgQ29kZSAqL1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1mb250LXdlaWdodDogNDAwO1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzOiA2cHg7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctdmVydGljYWw6IDVweDtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsOiA1cHg7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLW1hcmdpbi1ob3Jpem9udGFsOiAwcHg7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLWNvbG91cjogdmFyKC0tY29kZS1ub3JtYWwpO1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlOiB2YXIoLS1jb2RlLW5vcm1hbCk7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1jb2RlLWJhY2tncm91bmQpO1xufVxuXG4vKiogU2V0dGluZ3MgKi9cbi5zZXR0aW5nLWl0ZW0uY29kZS1zdHlsZXItc3BhY2VkIC5jaGVja2JveC1jb250YWluZXIgKyAucGlja3Ige1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4uY29kZS1zdHlsZXItZG9uYXRpb24ge1xuXHR3aWR0aDogNzAlO1xuXHRtYXJnaW46IDAgYXV0bztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNvZGUtc3R5bGVyLXNldHRpbmctdGV4dC1hcmVhIHRleHRhcmVhIHtcblx0d2lkdGg6IDQwMHB4O1xuXHRoZWlnaHQ6IDIyMHB4O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUNBO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFJRDtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQUE7QUFFQztBQUFBO0FBRUQ7QUFBQTtBQUVDO0FBQUE7QUFFRDtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFFQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUdDO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUdDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFJRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQUE7QUFFQztBQUFBO0FBSUQ7QUFBQTtBQUVDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUFBO0FBRUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUFBO0FBQUE7QUFBQTtBQUlDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBR0M7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQUE7QUFFQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBSUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUlEO0FBQUE7QUFFRTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQ0E7QUFBQTtBQUFBO0FBR0Y7QUFBQTtBQUVFO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUFBO0FBQUE7QUFHRjtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBR0Y7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdGO0FBQ0k7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBR0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFSjtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUdDO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUdDO0FBQUE7QUFFRDtBQUFBO0FBQUE7QUFHQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBR0M7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUFBO0FBQUE7QUFHQztBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBR0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUdDO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFFQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTs7O0FDbmVEO0FBQUE7QUFFQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Q7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBOzs7QUN2REQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBOzs7QUNORDtBQUFRO0FBQW1CO0FBQWtCO0FBQUE7QUFBMkI7QUFBVTtBQUF1QjtBQUFjO0FBQWE7QUFBaUI7QUFBQTtBQUEyQjtBQUFvQjtBQUFtQjtBQUFZO0FBQVc7QUFBZTtBQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTBHO0FBQXFCO0FBQXFQO0FBQW1CO0FBQUE7QUFBdUI7QUFBNEI7QUFBbUI7QUFBWTtBQUFPO0FBQVE7QUFBWTtBQUFhO0FBQWtOO0FBQXNCO0FBQXFCO0FBQUE7QUFBYztBQUE0QjtBQUFBO0FBQW1CO0FBQTJCO0FBQW1CO0FBQVk7QUFBTztBQUFRO0FBQWE7QUFBWTtBQUE0QjtBQUE2QjtBQUFBO0FBQXVCO0FBQTBCO0FBQUE7QUFBdUI7QUFBa0M7QUFBQTtBQUFhO0FBQWdDO0FBQUE7QUFBOEU7QUFBNkI7QUFBQTtBQUFzQjtBQUFBO0FBQXNCO0FBQXVCO0FBQWM7QUFBYTtBQUFpQjtBQUFBO0FBQTJCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBZ007QUFBQTtBQUE4RTtBQUFBO0FBQUE7QUFBQTtBQUFzRjtBQUFBO0FBQThCO0FBQUE7QUFBQTtBQUFBO0FBQThHO0FBQUE7QUFBaUY7QUFBVTtBQUFnQjtBQUFjO0FBQXVCO0FBQWU7QUFBcUI7QUFBaUI7QUFBVztBQUFtQjtBQUE2QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTBHO0FBQStFO0FBQVE7QUFBQTtBQUFTO0FBQWtCO0FBQXlCO0FBQW9CO0FBQUE7QUFBYTtBQUF3QjtBQUFjO0FBQWdCO0FBQUE7QUFBcUI7QUFBaUM7QUFBQTtBQUFZO0FBQTZCO0FBQXdCO0FBQWM7QUFBb0I7QUFBQTtBQUFBO0FBQXFEO0FBQWlDO0FBQWU7QUFBbUI7QUFBMkI7QUFBNEI7QUFBc0I7QUFBZ0I7QUFBYztBQUFlO0FBQXFCO0FBQXNCO0FBQWlCO0FBQXdCO0FBQUE7QUFBYTtBQUF5QztBQUFtQjtBQUFZO0FBQU87QUFBUTtBQUFZO0FBQWE7QUFBa047QUFBcUI7QUFBcUI7QUFBQTtBQUFjO0FBQXdDO0FBQVk7QUFBbUI7QUFBTztBQUFRO0FBQVk7QUFBYTtBQUE2QjtBQUFzQztBQUFzQjtBQUFBO0FBQXlCO0FBQXVDO0FBQUE7QUFBMkI7QUFBa0Q7QUFBQTtBQUFtQjtBQUEyQjtBQUFjO0FBQWdCO0FBQW9CO0FBQUE7QUFBNEI7QUFBK0I7QUFBQTtBQUFrQjtBQUFpQztBQUF1QjtBQUFrQjtBQUFtQjtBQUFnQjtBQUFlO0FBQW9CO0FBQXFCO0FBQXNCO0FBQXNCO0FBQUE7QUFBcUI7QUFBdUM7QUFBQTtBQUE0QjtBQUF1QztBQUFBO0FBQXNGO0FBQXVDO0FBQWU7QUFBaUI7QUFBYztBQUFlO0FBQXFCO0FBQXFCO0FBQW9CO0FBQUE7QUFBZTtBQUF1RDtBQUFvQjtBQUFBO0FBQWM7QUFBa0Q7QUFBb0I7QUFBQTtBQUFjO0FBQTRDO0FBQVk7QUFBQTtBQUFzQjtBQUFBO0FBQUE7QUFBa0g7QUFBWTtBQUFBO0FBQWM7QUFBQTtBQUFBO0FBQWtIO0FBQUE7QUFBYztBQUFBO0FBQUE7QUFBb0k7QUFBQTtBQUE0QjtBQUFxQztBQUFBO0FBQXNCO0FBQUE7QUFBNkU7QUFBQTtBQUFzQjtBQUFBO0FBQXlGO0FBQUE7QUFBcUY7QUFBcUM7QUFBbUI7QUFBYTtBQUFZO0FBQXVCO0FBQW9CO0FBQTBCO0FBQXVCO0FBQXNCO0FBQUE7QUFBb0I7QUFBQTtBQUFBO0FBQW9JO0FBQW1CO0FBQTBCO0FBQXVCO0FBQXNCO0FBQWtCO0FBQWM7QUFBdUI7QUFBYTtBQUFBO0FBQXVCO0FBQUE7QUFBQTtBQUF5SjtBQUFpQjtBQUFBO0FBQTJCO0FBQTZCO0FBQWU7QUFBQTtBQUFrQjtBQUEyQztBQUFpQjtBQUFBO0FBQWtCO0FBQThDO0FBQUE7QUFBNEI7QUFBNEM7QUFBYztBQUFlO0FBQStCO0FBQWtDO0FBQW9CO0FBQWU7QUFBWTtBQUFBO0FBQXlCO0FBQStEO0FBQXlCO0FBQWE7QUFBWTtBQUFjO0FBQW9CO0FBQXdCO0FBQUE7QUFBb0I7QUFBK0U7QUFBQTtBQUFnQjtBQUFrRjtBQUFtQjtBQUE2QjtBQUFXO0FBQVk7QUFBb0I7QUFBQTtBQUFtQjtBQUEwRjtBQUFtQjtBQUFZO0FBQU87QUFBUTtBQUFZO0FBQWE7QUFBa047QUFBc0I7QUFBcUI7QUFBQTtBQUFjO0FBQStEO0FBQXlCO0FBQVk7QUFBYTtBQUFBO0FBQWE7QUFBNEU7QUFBcUI7QUFBWTtBQUFBO0FBQWU7QUFBb0Y7QUFBbUI7QUFBWTtBQUFPO0FBQVE7QUFBWTtBQUFhO0FBQWtOO0FBQXNCO0FBQXFCO0FBQUE7QUFBYztBQUErRDtBQUFBO0FBQTJCO0FBQStEO0FBQUE7QUFBMkI7QUFBQTtBQUE4SDtBQUFjO0FBQUE7QUFBaUI7QUFBQTtBQUFzSjtBQUFTO0FBQUE7QUFBOEI7QUFBQTtBQUFzSjtBQUFhO0FBQUE7QUFBc0I7QUFBMkU7QUFBQTtBQUFnRjtBQUEyRTtBQUFpUTtBQUFBO0FBQ2w4UztBQUNDO0FBQUE7OztBQ0ZEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNJO0FBQ0E7QUFDQTtBQUNBO0FBQ0g7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFFQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFBQTtBQUVEO0FBQUE7QUFFQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUFBO0FBQUE7QUFHQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBOzs7QUN6SkQ7QUFFQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUlEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K */
diff --git a/esbuild.config.mjs b/esbuild.config.mjs
index be2cafe..ae6a744 100644
--- a/esbuild.config.mjs
+++ b/esbuild.config.mjs
@@ -15,7 +15,10 @@ const context = await esbuild.context({
banner: {
js: banner,
},
- entryPoints: ["src/main.ts"],
+ entryPoints: [
+ "src/main.ts",
+ "src/styles.css",
+ ],
bundle: true,
external: [
"obsidian",
@@ -37,7 +40,7 @@ const context = await esbuild.context({
logLevel: "info",
sourcemap: prod ? false : "inline",
treeShaking: true,
- outfile: "main.js",
+ outdir: "./",
});
if (prod) {
@@ -45,4 +48,4 @@ if (prod) {
process.exit(0);
} else {
await context.watch();
-}
\ No newline at end of file
+}
diff --git a/src/css/codeblocks.css b/src/css/codeblocks.css
new file mode 100644
index 0000000..9898cab
--- /dev/null
+++ b/src/css/codeblocks.css
@@ -0,0 +1,486 @@
+/** Pre elements */
+.code-styler-pre-parent{
+ margin-bottom: 16px;
+}
+.code-styler pre.code-styler-pre {
+ background: var(--code-styler-codeblock-background-colour) !important;
+ border-radius: var(--border-radius) !important;
+ min-height: unset;
+ padding: 0px !important;
+ overflow: hidden !important;
+}
+.code-styler pre.code-styler-pre[class*='language-'] {
+ background: linear-gradient(90deg, var(--language-border-colour), var(--language-border-colour) var(--language-border-width), var(--code-styler-codeblock-background-colour) var(--language-border-width), var(--code-styler-codeblock-background-colour) 100%) !important;
+ padding-left: var(--language-border-width) !important;
+}
+.code-styler pre.code-styler-pre code {
+ display: grid;
+ grid-template-columns: min-content auto;
+ grid-template-rows: auto;
+ padding-top: var(--code-padding) !important;
+ padding-bottom: var(--code-padding) !important;
+ padding-left: 0px !important;
+ padding-right: 0px !important;
+ border-radius: 0px !important;
+ background: none !important;
+ transition: max-height ease-in-out var(--duration-button), padding ease-in-out var(--duration-button), border-top ease-in-out var(--duration-button);
+ max-height: 0;
+ overflow-x: scroll;
+}
+.code-styler pre.code-styler-pre code:not(:has( > input[style*="display: inline;"])):active {
+ --line-wrapping: var(--line-active-wrapping) !important;
+}
+.code-styler pre.code-styler-pre.code-styler-collapsed code {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+.code-styler pre.code-styler-pre::before,
+.code-styler pre.code-styler-pre::after {
+ content: none !important;
+}
+.markdown-source-view.mod-cm6 .cm-embed-block pre.code-styler-pre {
+ margin: 1em 0px;
+}
+
+/** Editing Mode Body */
+.code-styler .markdown-source-view [class*="code-styler-line"].HyperMD-codeblock-begin {
+ border-top-left-radius: 0px !important;
+ border-top-right-radius: 0px !important;
+ border-top: none !important;
+}
+.code-styler .markdown-source-view [class*="code-styler-line"].HyperMD-codeblock-end {
+ border-bottom-left-radius: var(--border-radius);
+ border-bottom-right-radius: var(--border-radius);
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container + .HyperMD-codeblock-begin,
+body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has( img.code-styler-icon)) + .HyperMD-codeblock-begin,
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*='code-styler-header-language-tag-'])) + .HyperMD-codeblock-begin,
+body .markdown-source-view :not([class^='code-styler-header-container']) + [class*="code-styler-line"].HyperMD-codeblock-begin,
+body .markdown-source-view [class*="code-styler-line"].HyperMD-codeblock-begin:nth-of-type(1) { /*? Depending on header visibility */
+ border-top-left-radius: var(--border-radius) !important;
+ border-top-right-radius: var(--border-radius) !important;
+}
+.code-styler .markdown-source-view .HyperMD-codeblock[class*='code-styler-line'] {
+ background: linear-gradient(90deg, var(--gradient-background-colour) var(--gradient-highlights-colour-stop), transparent 100%), var(--code-styler-codeblock-background-colour) !important;
+ overflow: hidden;
+ padding: 0 !important;
+ padding-left: var(--size-4-4) !important;
+}
+.code-styler .markdown-source-view .HyperMD-codeblock[class*='code-styler-line'][class*='language-'] {
+ background: linear-gradient(90deg, var(--language-border-colour), var(--language-border-colour) var(--language-border-width), var(--gradient-background-colour) var(--language-border-width) var(--gradient-highlights-colour-stop), transparent 100%), var(--code-styler-codeblock-background-colour) !important;
+}
+.code-styler .markdown-source-view .HyperMD-codeblock[class*='code-styler-line'][class*='language-'] [class^='code-styler-line-number'] {
+ margin-left: var(--language-border-width);
+}
+
+/** Header styling */
+body:not([class*='code-styler-show-langicons']) .code-styler-header-container-specific div:has(> img.code-styler-icon),
+body:not(.code-styler-show-langicons-always) .code-styler-header-container div:has(> img.code-styler-icon) {
+ display: none;
+}
+body:not([class*='code-styler-show-langnames']) .code-styler-header-container-specific [class^="code-styler-header-language-tag"],
+body:not(.code-styler-show-langnames-always) .code-styler-header-container [class^="code-styler-header-language-tag"] {
+ display: none;
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .code-styler-header-container,
+body:not(.code-styler-show-langnames-always) .code-styler-header-container:not(:has( img.code-styler-icon)) {
+ display: none !important;
+}
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not([class*='language-']),
+body pre.code-styler-pre:not([class*='language-']) .code-styler-header-container {
+ display: none !important;
+}
+[class^='code-styler-header-container'] {
+ font-size: var(--header-font-size);
+ user-select: none;
+ height: var(--container-height);
+ min-height: var(--container-min-height);
+ padding-top: var(--header-padding);
+ margin-top: 0px !important;
+ display: flex !important;
+ overflow: visible;
+ transition: border-bottom ease-in-out var(--duration-button);
+ box-sizing: content-box;
+}
+.markdown-source-view :not(pre.code-styler-pre) > [class^='code-styler-header-container'] {
+ background: linear-gradient(var(--code-styler-header-background-colour) 0%,var(--code-styler-header-background-colour) calc(100% - var(--header-separator-width)), var(--code-styler-header-separator-colour) calc(100% - var(--header-separator-width)), var(--code-styler-header-separator-colour) 100%) var(--language-border-width) bottom/100% border-box no-repeat,var(--language-border-colour) !important;
+ padding-left: var(--language-border-width);
+ border-top-left-radius: var(--border-radius);
+ border-top-right-radius: var(--border-radius);
+ padding-bottom: var(--header-separator-width);
+ border-top: var(--code-styler-header-border);
+ border-left: var(--code-styler-header-border);
+ border-right: var(--code-styler-header-border);
+}
+pre.code-styler-pre [class^='code-styler-header-container'] {
+ background-color: var(--code-styler-header-background-colour);
+ border-bottom: var(--header-separator-width) solid var(--code-styler-header-separator-colour);
+}
+.markdown-source-view :not(pre.code-styler-pre) > [class^='code-styler-header-container']:not(:has(+ .HyperMD-codeblock-begin)) {
+ background: linear-gradient(var(--code-styler-header-background-colour) 0%,var(--code-styler-header-background-colour) 100%) var(--language-border-width) bottom/100% border-box no-repeat,var(--language-border-colour) !important;
+ padding-bottom: var(--header-padding);
+ border-bottom-left-radius: var(--border-radius);
+ border-bottom-right-radius: var(--border-radius);
+ border-bottom: var(--code-styler-header-border);
+ border-bottom: var(--collapsed-bottom-border);
+}
+pre.code-styler-pre.code-styler-collapsed [class^='code-styler-header-container'] {
+ border-bottom: var(--collapsed-bottom-border);
+}
+[class^='code-styler-header-container'] [class^="code-styler-header-language-tag"] {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+ height: 100%;
+ padding-left: var(--header-spacing);
+ padding-right: var(--header-spacing);
+ margin-right: var(--header-spacing);
+ padding-top: calc(1em * var(--header-inner-vertical-padding));
+ padding-bottom: calc(1em * var(--header-inner-vertical-padding));
+ font-size: inherit;
+ border-radius: var(--border-radius) var(--border-radius) 0px 0px;
+ background-color: var(--code-styler-header-language-tag-background-colour);
+ color: var(--code-styler-header-language-tag-text-colour);
+ font-weight: var(--code-styler-header-language-tag-text-bold, normal);
+ font-style: var(--code-styler-header-language-tag-text-italic, normal);
+ text-align: center;
+ transition: border-radius ease-in-out var(--duration-button), padding ease-in-out var(--duration-button);
+}
+.markdown-source-view :not(pre.code-styler-pre) > [class^='code-styler-header-container']:not(:has(+ .HyperMD-codeblock-begin)) [class^="code-styler-header-language-tag"],
+pre.code-styler-pre.code-styler-collapsed [class^='code-styler-header-container'] [class^="code-styler-header-language-tag"] {
+ border-radius: var(--border-radius);
+}
+.code-styler-header-text {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+ padding-left: 0px;
+ padding-top: calc(1em * var(--header-inner-vertical-padding));
+ padding-bottom: calc(1em * var(--header-inner-vertical-padding));
+ font-size: inherit;
+ color: var(--code-styler-header-text-colour);
+ font-weight: var(--code-styler-header-title-text-bold, normal);
+ font-style: var(--code-styler-header-title-text-italic, normal);
+ transition: padding ease-in-out var(--duration-button);
+}
+body:not([class*='code-styler-show-langicons']) .code-styler-header-container-specific [class^="code-styler-header-language-tag"],
+body:not(.code-styler-show-langicons-always) .code-styler-header-container [class^="code-styler-header-language-tag"],
+body .code-styler-header-container-specific:not(:has( div > img.code-styler-icon)) [class^="code-styler-header-language-tag"] { /*? Depending on header visibility */
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+}
+body:not([class*='code-styler-show-langicons']):not([class*='code-styler-show-langnames']) .code-styler-header-container-specific .code-styler-header-text,
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames) .code-styler-header-container .code-styler-header-text,
+body .code-styler-header-container-specific:not(:has( [class^="code-styler-header-language-tag-"])) .code-styler-header-text { /*? Depending on header visibility */
+ padding-left: var(--header-spacing);
+}
+div:has(> img.code-styler-icon) {
+ display: inline-flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+ padding-top: calc(1em * var(--header-inner-vertical-padding));
+ padding-bottom: calc(1em * var(--header-inner-vertical-padding));
+ padding-left: var(--header-spacing);
+ padding-right: var(--header-spacing);
+ transition: padding ease-in-out var(--duration-button);
+}
+.code-styler-icon {
+ width: var(--language-icon-size);
+ height: var(--language-icon-size);
+ filter: var(--language-icon-filter);
+ margin: 0 !important;
+ border: none !important;
+}
+
+/** Lines */
+pre.code-styler-pre [class^='code-styler-line-highlighted'] > .code-styler-line-text {
+ background-image: linear-gradient(90deg, var(--gradient-background-colour) 0% var(--gradient-highlights-colour-stop), var(--code-styler-codeblock-background-colour) 100%);
+}
+.code-styler-line-highlighted {
+ --gradient-background-colour: var(--code-styler-default-highlight-colour) !important;
+}
+.code-styler-active-line-highlight .cm-active,
+.code-styler-active-line-highlight-editor .cm-active {
+ background: linear-gradient(to right, var(--code-styler-active-editor-line-colour), var(--gradient-highlights-colour-stop), transparent) !important;
+}
+.code-styler-active-line-highlight .markdown-source-view .HyperMD-codeblock[class*="code-styler-line"].cm-active,
+.code-styler-active-line-highlight-codeblock .markdown-source-view .HyperMD-codeblock[class*="code-styler-line"].cm-active {
+ background: linear-gradient(to right, var(--code-styler-active-codeblock-line-colour), var(--gradient-highlights-colour-stop), var(--code-styler-codeblock-background-colour)) !important;
+}
+
+/** Line numbers */
+.code-styler:not(.code-styler-show-line-numbers) .code-styler-line-number,
+.code-styler-line-number-hide {
+ display: none;
+}
+pre.code-styler-pre > code > div:first-child > [class^='code-styler-line-number'] { /*? Maintain gutter colour when padded */
+ box-shadow: 0px calc(-1 * var(--code-padding)) var(--code-styler-gutter-background-colour);
+ transition: box-shadow ease-in-out var(--duration-button);
+}
+pre.code-styler-pre.code-styler-collapsed > code > div:first-child > [class^='code-styler-line-number'] { /*? Maintain gutter colour when padded */
+ box-shadow: 0px 0px var(--code-styler-gutter-background-colour);
+}
+pre.code-styler-pre > code > div:last-child > [class^='code-styler-line-number'] { /*? Maintain gutter colour when padded */
+ box-shadow: 0px var(--code-padding) var(--code-styler-gutter-background-colour);
+}
+pre.code-styler-pre > code > div:only-child > [class^='code-styler-line-number'] { /*? Maintain gutter colour when padded */
+ box-shadow: 0px calc(-1 * var(--code-padding)) var(--code-styler-gutter-background-colour),0px var(--code-padding) var(--code-styler-gutter-background-colour);
+}
+[class^='code-styler-line-number'] {
+ padding-left: calc(4px + var(--language-border-width));
+ padding-right: 8px;
+ text-align: right;
+ min-width: var(--line-number-gutter-min-width);
+ background-color: var(--code-styler-gutter-background-colour);
+ font-size: var(--code-size);
+ font-family: var(--font-monospace);
+ color: var(--code-styler-gutter-text-colour);
+ user-select: none;
+}
+.markdown-source-view .HyperMD-codeblock .code-styler-line-number,
+.markdown-source-view .HyperMD-codeblock .code-styler-line-number-specific {
+ padding-top: var(--line-number-height-correction);
+ position: absolute;
+ box-sizing: content-box;
+ display: inline-block;
+ height: 100%;
+ min-width: calc(var(--line-number-gutter-min-width) - 12px);
+ overflow-x: auto;
+ direction: rtl;
+ left: 0;
+}
+.markdown-source-view .HyperMD-codeblock-begin .code-styler-line-number,
+.markdown-source-view .HyperMD-codeblock-begin .code-styler-line-number-specific,
+.markdown-source-view .HyperMD-codeblock-end .code-styler-line-number,
+.markdown-source-view .HyperMD-codeblock-end .code-styler-line-number-specific {
+ width: var(--line-number-gutter-width);
+}
+pre.code-styler-pre [class^='code-styler-line-number'] {
+ white-space: nowrap;
+ grid-column: 1;
+ position: sticky;
+ top: -1px;
+ left: 0;
+ border-top: var(--line-number-height-correction) solid transparent;
+}
+pre.code-styler-pre div:last-child > [class^='code-styler-line-number'] {
+ width: unset;
+}
+.code-styler-gutter-highlight pre.code-styler-pre [class*="code-styler-line-highlighted"] [class^='code-styler-line-number'] {
+ background-color: var(--gradient-background-colour);
+}
+.code-styler-active-line-highlight.code-styler-gutter-highlight .markdown-source-view .HyperMD-codeblock[class*="code-styler-line"].cm-active [class^='code-styler-line-number'],
+.code-styler-active-line-highlight-codeblock.code-styler-gutter-highlight .markdown-source-view .HyperMD-codeblock[class*="code-styler-line"].cm-active [class^='code-styler-line-number'],
+.code-styler-gutter-highlight [class*="code-styler-line-highlighted"] [class^='code-styler-line-number'] {
+ background-color: rgba(0,0,0,0);
+}
+.code-styler-gutter-active-line .cm-active [class^='code-styler-line-number']{
+ color: var(--code-styler-gutter-active-text-colour);
+}
+.code-styler.code-styler-show-line-numbers .markdown-source-view .HyperMD-codeblock:has(.code-styler-line-number),
+.code-styler.code-styler-show-line-numbers .markdown-source-view .HyperMD-codeblock:has(.code-styler-line-number-specific) {
+ padding-left: calc(12px + var(--language-border-width) + var(--line-number-gutter-width) + var(--line-number-gutter-padding)) !important;
+}
+.code-styler .markdown-source-view .HyperMD-codeblock[class*='code-styler-line']::before {
+ content: none !important;
+}
+
+/** Line text */
+pre.code-styler-pre > code > div[class*='code-styler-line'] {
+ display: contents !important;
+}
+pre.code-styler-pre .code-styler-line-text {
+ flex-basis: 100%;
+ padding-left: var(--line-number-gutter-padding);
+ grid-column: 2;
+}
+.HyperMD-codeblock:has(> .cm-widgetBuffer) { /*? Prevent Line Wraps */
+ white-space: nowrap;
+}
+.HyperMD-codeblock:has(> .cm-widgetBuffer) > .cm-hmd-codeblock { /*? Prevent Line Wraps */
+ white-space: break-spaces;
+}
+
+/** Buttons */
+@keyframes outdent {
+ from {
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ clip-path: var(--polygon-in);
+ }
+ to {
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+ }
+}
+@keyframes indent {
+ from {
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+ }
+ to {
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ clip-path: var(--polygon-in);
+ }
+}
+@keyframes reverse-outdent {
+ from {
+ clip-path: var(--polygon-in);
+ }
+ to {
+ clip-path: var(--polygon-out);
+ }
+}
+@keyframes reverse-indent {
+ from {
+ clip-path: var(--polygon-out);
+ }
+ to {
+ clip-path: var(--polygon-in);
+ }
+}
+.markdown-rendered pre.code-styler-pre button {
+ transition: visibility var(--duration-button), opacity var(--duration-button);
+ visibility: visible;
+ opacity: 1;
+ display: unset !important;
+ color: var(--code-styler-button-colour) !important;
+ background: transparent !important;
+ box-shadow: none;
+ font-family: var(--font-interface);
+ font-size: var(--font-ui-smaller);
+ margin: 0;
+ padding: 0 !important;
+ border: none !important;
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+pre.code-styler-pre:not(.code-styler-collapsed):not(:hover) button,
+pre.code-styler-pre.code-styler-collapsed button,
+pre.code-styler-pre:not(.code-styler-collapsed):not(:hover) [class^='code-styler-header-container']::after {
+ visibility: hidden;
+ opacity: 0
+}
+[class^='code-styler-header-container']::after {
+ position: relative;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ margin: auto;
+ margin-right: var(--header-button-spacing);
+ content: "\200b";
+ width: 20px;
+ height: 20px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' xml:space='preserve'%3E%3Cpath d='M16 22 6 12l1.4-1.4 8.6 8.6 8.6-8.6L26 12z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ visibility: visible;
+ opacity: 1;
+ scale: 0.8;
+ transition: transform var(--duration-button) ease-out, visibility var(--duration-button), opacity var(--duration-button), scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+}
+pre.code-styler-pre.code-styler-collapsed [class^='code-styler-header-container']::after,
+.markdown-source-view :not(pre.code-styler-pre) > [class^='code-styler-header-container']:not(:has(+ .HyperMD-codeblock-begin))::after {
+ transform: rotate(-90deg);
+}
+[class^='code-styler-header-container']:hover::after {
+ scale: 1;
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) pre.code-styler-pre:has( .code-styler-header-container) button.copy-code-button,
+body:not(.code-styler-show-langnames-always) pre.code-styler-pre:not(:has( .code-styler-header-container-specific)):not(:has( .code-styler-header-container img.code-styler-icon)) button.copy-code-button,
+body pre.code-styler-pre:not([class*='language-']):has(.code-styler-header-container) button.copy-code-button { /*? Depending on header visibility */
+ top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal)) !important;
+ --copy-code-header-right-margin: 12px;
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container + .HyperMD-codeblock-begin,
+body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has( img.code-styler-icon)) + .HyperMD-codeblock-begin,
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*='code-styler-header-language-tag-'])) + .HyperMD-codeblock-begin { /*? Depending on header visibility */
+ overflow: hidden;
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container + .HyperMD-codeblock-begin span.code-block-flair,
+body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has( img.code-styler-icon)) + .HyperMD-codeblock-begin span.code-block-flair,
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*='code-styler-header-language-tag-'])) + .HyperMD-codeblock-begin span.code-block-flair { /*? Depending on header visibility */
+ top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal)) !important;
+ --copy-code-header-right-margin: 12px;
+}
+pre.code-styler-pre button.copy-code-button {
+ transform: translateY(-50%);
+ top: max(calc(0.5 * var(--container-height) * 1),calc(0.5 * var(--container-min-height) * 1)) !important;
+ bottom: unset !important;
+}
+pre.code-styler-pre button.copy-code-button,
+pre.code-styler-pre button.run-code-button, /*? Execute Code Plugin Compatibility */
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair {
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ will-change: margin-right, clip-path;
+ clip-path: var(--polygon-in);
+}
+pre.code-styler-pre button.copy-code-button:not(:active),
+pre.code-styler-pre button.run-code-button:not(:active), /*? Execute Code Plugin Compatibility */
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair:not(:active) {
+ animation: indent var(--duration-button);
+}
+pre.code-styler-pre button.copy-code-button:hover,
+pre.code-styler-pre button.run-code-button:hover, /*? Execute Code Plugin Compatibility */
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair:hover{
+ background-color: transparent;
+ animation: outdent var(--duration-button);
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+}
+pre.code-styler-pre button.copy-code-button:active,
+pre.code-styler-pre button.run-code-button:active, /*? Execute Code Plugin Compatibility */
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair:active {
+ scale: 0.95;
+ transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+}
+pre.code-styler-pre button.copy-code-button::before,
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair::before {
+ content: "\200b";
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ padding-right: 4px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z'/%3E%3Cpath d='M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z'/%3E%3Cpath d='M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ vertical-align: 1px;
+}
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair {
+ transform: translateY(-50%);
+ font-size: 0;
+ top: min(calc(-0.5 * var(--container-height) * 1.1 - var(--header-separator-width)),calc(-0.5 * var(--container-min-height) * 1.1 - var(--header-separator-width))) !important;
+ right: 0;
+ visibility: hidden;
+ padding: 0;
+ position: absolute;
+ line-height: initial !important;
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair > * {
+ width: 0px;
+}
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair::before {
+ visibility: visible;
+ opacity: 1;
+ vertical-align: -1px;
+ font-size: var(--font-ui-smaller);
+}
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair::after {
+ visibility: visible;
+ opacity: 1;
+ font-size: var(--font-ui-smaller);
+ content: 'Copy';
+ color: var(--code-styler-button-colour);
+}
+.markdown-source-view.mod-cm6 .HyperMD-codeblock-begin.code-styler-line {
+ overflow: visible;
+}
diff --git a/src/css/inlineCode.css b/src/css/inlineCode.css
new file mode 100644
index 0000000..7f07c4c
--- /dev/null
+++ b/src/css/inlineCode.css
@@ -0,0 +1,57 @@
+/** Inline Code */
+.code-styler .cm-s-obsidian span.cm-inline-code,
+.code-styler .markdown-rendered :not(pre) > code {
+ font-weight: var(--code-styler-inline-font-weight);
+ color: var(--code-styler-inline-colour);
+ background-color: var(--code-styler-inline-background-colour) !important;
+ border-radius: var(--code-styler-inline-border-radius) !important;
+ padding: var(--code-styler-inline-padding-vertical) var(--code-styler-inline-padding-horizontal) !important;
+ margin: 0px var(--code-styler-inline-margin-horizontal) !important;
+}
+
+.code-styler .cm-s-obsidian span.cm-formatting-code { /*? Standalone backticks */
+ color: var(--code-styler-inline-colour-active);
+ display: inline !important;
+}
+
+.code-styler .cm-s-obsidian span.cm-formatting-code:has(+ span.cm-inline-code:not(.cm-formatting-code)) {/*? First backtick */
+ color: var(--code-styler-inline-colour-active);
+ border-radius: var(--code-styler-inline-border-radius) 0px 0px var(--code-styler-inline-border-radius) !important;
+ padding-left: var(--code-styler-inline-padding-horizontal) !important;
+ padding-right: 0px !important;
+ margin-left: var(--code-styler-inline-margin-horizontal) !important;
+ margin-right: 0px !important;
+}
+
+.code-styler .cm-s-obsidian span.cm-formatting-code + span.cm-inline-code:not(.cm-formatting-code) { /*? Inner code with backticks */
+ color: var(--code-styler-inline-colour-active);
+ border-radius: 0px !important;
+ padding-left: 0px !important;
+ padding-right: 0px !important;
+ margin: 0px 0px !important;
+}
+
+.code-styler .cm-s-obsidian span.cm-inline-code:not(.cm-formatting-code) + span.cm-formatting-code {/*? Last backtick */
+ color: var(--code-styler-inline-colour-active);
+ border-radius: 0px var(--code-styler-inline-border-radius) var(--code-styler-inline-border-radius) 0px !important;
+ padding-left: 0px !important;
+ padding-right: var(--code-styler-inline-padding-horizontal) !important;
+ margin-left: 0px !important;
+ margin-right: var(--code-styler-inline-margin-horizontal) !important;
+}
+.code-styler .markdown-rendered :not(pre) > code img.code-styler-inline-icon {
+ height: calc(var(--code-size) * 1.2);
+ margin-bottom: 2px;
+ vertical-align: middle;
+}
+.code-styler .markdown-rendered :not(pre) > code .code-styler-inline-title {
+ font-weight: var(--code-styler-inline-title-font-weight);
+ color: var(--code-styler-inline-title-color);
+}
+.code-styler .markdown-rendered :not(pre) > code .code-styler-inline-title::after {
+ content: '\FF5C';
+ color: var(--code-styler-inline-title-color);
+}
+.code-styler .markdown-rendered :not(pre) > code span:has( > img.code-styler-inline-icon) {
+ padding-right: 8px;
+}
diff --git a/src/css/pdfExport.css b/src/css/pdfExport.css
new file mode 100644
index 0000000..d14ef5a
--- /dev/null
+++ b/src/css/pdfExport.css
@@ -0,0 +1,9 @@
+div.print {
+ --line-wrapping: pre-wrap !important;
+}
+.code-styler div.print pre.code-styler-pre code {
+ max-height: unset;
+}
+.code-styler div.print pre.code-styler-pre.code-styler-collapsed code {
+ display: none !important;
+}
diff --git a/src/css/pickr.css b/src/css/pickr.css
new file mode 100644
index 0000000..ff55eaa
--- /dev/null
+++ b/src/css/pickr.css
@@ -0,0 +1,5 @@
+/** Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */
+.pickr {position: relative;overflow: visible;transform: translateY(0)} .pickr * {box-sizing: border-box;outline: none;border: none;appearance: none;-webkit-appearance: none} .pickr .pcr-button {position: relative;height: 2em;width: 2em;padding: 0.5em;cursor: pointer;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;border-radius: .15em;background: url('data:image/svg+xml;utf8, ') no-repeat center;background-size: 0;transition: all 0.3s} .pickr .pcr-button::before {position: absolute;content: '';top: 0;left: 0;width: 100%;height: 100%;background: url('data:image/svg+xml;utf8, ');background-size: .5em;border-radius: .15em;z-index: -1} .pickr .pcr-button::before {z-index: initial} .pickr .pcr-button::after {position: absolute;content: '';top: 0;left: 0;height: 100%;width: 100%;transition: background 0.3s;background: var(--pcr-color);border-radius: .15em} .pickr .pcr-button.clear {background-size: 70%} .pickr .pcr-button.clear::before {opacity: 0} .pickr .pcr-button.clear:focus {box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color)} .pickr .pcr-button.disabled {cursor: not-allowed} .pickr *, .pcr-app * {box-sizing: border-box;outline: none;border: none;appearance: none;-webkit-appearance: none} .pickr input:focus, .pickr input.pcr-active, .pickr button:focus, .pickr button.pcr-active, .pcr-app input:focus, .pcr-app input.pcr-active, .pcr-app button:focus, .pcr-app button.pcr-active {box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color)} .pickr .pcr-palette, .pickr .pcr-slider, .pcr-app .pcr-palette, .pcr-app .pcr-slider {transition: box-shadow 0.3s} .pickr .pcr-palette:focus, .pickr .pcr-slider:focus, .pcr-app .pcr-palette:focus, .pcr-app .pcr-slider:focus {box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(0, 0, 0, 0.25)} .pcr-app {position: fixed;display: flex;flex-direction: column;z-index: 10000;border-radius: 0.1em;background: #fff;opacity: 0;visibility: hidden;transition: opacity 0.3s, visibility 0s 0.3s;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;box-shadow: 0 0.15em 1.5em 0 rgba(0, 0, 0, 0.1), 0 0 1em 0 rgba(0, 0, 0, 0.03);left: 0;top: 0} .pcr-app.visible {transition: opacity 0.3s;visibility: visible;opacity: 1} .pcr-app .pcr-swatches {display: flex;flex-wrap: wrap;margin-top: 0.75em} .pcr-app .pcr-swatches.pcr-last {margin: 0} @supports (display: grid) { .pcr-app .pcr-swatches {display: grid;align-items: center;grid-template-columns: repeat(auto-fit, 1.75em)} } .pcr-app .pcr-swatches > button {font-size: 1em;position: relative;width: calc(1.75em - 10px);height: calc(1.75em - 10px);border-radius: 0.15em;cursor: pointer;margin: 2.5px;flex-shrink: 0;justify-self: center;transition: all 0.15s;overflow: hidden;background: transparent;z-index: 1} .pcr-app .pcr-swatches > button::before {position: absolute;content: '';top: 0;left: 0;width: 100%;height: 100%;background: url('data:image/svg+xml;utf8, ');background-size: 6px;border-radius: .15em;z-index: -1} .pcr-app .pcr-swatches > button::after {content: '';position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: var(--pcr-color);border: 1px solid rgba(0, 0, 0, 0.05);border-radius: 0.15em;box-sizing: border-box} .pcr-app .pcr-swatches > button:hover {filter: brightness(1.05)} .pcr-app .pcr-swatches > button:not(.pcr-active) {box-shadow: none} .pcr-app .pcr-interaction {display: flex;flex-wrap: wrap;align-items: center;margin: 0 -0.2em 0 -0.2em} .pcr-app .pcr-interaction > * {margin: 0 0.2em} .pcr-app .pcr-interaction input {letter-spacing: 0.07em;font-size: 0.75em;text-align: center;cursor: pointer;color: #75797e;background: #f1f3f4;border-radius: .15em;transition: all 0.15s;padding: 0.45em 0.5em;margin-top: 0.75em} .pcr-app .pcr-interaction input:hover {filter: brightness(0.975)} .pcr-app .pcr-interaction input:focus {box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(66, 133, 244, 0.75)} .pcr-app .pcr-interaction .pcr-result {color: #75797e;text-align: left;flex: 1 1 8em;min-width: 8em;transition: all 0.2s;border-radius: .15em;background: #f1f3f4;cursor: text} .pcr-app .pcr-interaction .pcr-result::-moz-selection {background: #4285f4;color: #fff} .pcr-app .pcr-interaction .pcr-result::selection {background: #4285f4;color: #fff} .pcr-app .pcr-interaction .pcr-type.active {color: #fff;background: #4285f4} .pcr-app .pcr-interaction .pcr-save, .pcr-app .pcr-interaction .pcr-cancel, .pcr-app .pcr-interaction .pcr-clear {color: #fff;width: auto} .pcr-app .pcr-interaction .pcr-save, .pcr-app .pcr-interaction .pcr-cancel, .pcr-app .pcr-interaction .pcr-clear {color: #fff} .pcr-app .pcr-interaction .pcr-save:hover, .pcr-app .pcr-interaction .pcr-cancel:hover, .pcr-app .pcr-interaction .pcr-clear:hover {filter: brightness(0.925)} .pcr-app .pcr-interaction .pcr-save {background: #4285f4} .pcr-app .pcr-interaction .pcr-clear, .pcr-app .pcr-interaction .pcr-cancel {background: #f44250} .pcr-app .pcr-interaction .pcr-clear:focus, .pcr-app .pcr-interaction .pcr-cancel:focus {box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(244, 66, 80, 0.75)} .pcr-app .pcr-selection .pcr-picker {position: absolute;height: 18px;width: 18px;border: 2px solid #fff;border-radius: 100%;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none} .pcr-app .pcr-selection .pcr-color-palette, .pcr-app .pcr-selection .pcr-color-chooser, .pcr-app .pcr-selection .pcr-color-opacity {position: relative;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;display: flex;flex-direction: column;cursor: grab;cursor: -webkit-grab} .pcr-app .pcr-selection .pcr-color-palette:active, .pcr-app .pcr-selection .pcr-color-chooser:active, .pcr-app .pcr-selection .pcr-color-opacity:active {cursor: grabbing;cursor: -webkit-grabbing} .pcr-app[data-theme='nano'] {width: 14.25em;max-width: 95vw} .pcr-app[data-theme='nano'] .pcr-swatches {margin-top: .6em;padding: 0 .6em} .pcr-app[data-theme='nano'] .pcr-interaction {padding: 0 .6em .6em .6em} .pcr-app[data-theme='nano'] .pcr-selection {display: grid;grid-gap: .6em;grid-template-columns: 1fr 4fr;grid-template-rows: 5fr auto auto;align-items: center;height: 10.5em;width: 100%;align-self: flex-start} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview {grid-area: 2 / 1 / 4 / 1;height: 100%;width: 100%;display: flex;flex-direction: row;justify-content: center;margin-left: .6em} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview .pcr-last-color {display: none} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview .pcr-current-color {position: relative;background: var(--pcr-color);width: 2em;height: 2em;border-radius: 50em;overflow: hidden} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview .pcr-current-color::before {position: absolute;content: '';top: 0;left: 0;width: 100%;height: 100%;background: url('data:image/svg+xml;utf8, ');background-size: .5em;border-radius: .15em;z-index: -1} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-palette {grid-area: 1 / 1 / 2 / 3;width: 100%;height: 100%;z-index: 1} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-palette .pcr-palette {border-radius: .15em;width: 100%;height: 100%} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-palette .pcr-palette::before {position: absolute;content: '';top: 0;left: 0;width: 100%;height: 100%;background: url('data:image/svg+xml;utf8, ');background-size: .5em;border-radius: .15em;z-index: -1} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser {grid-area: 2 / 2 / 2 / 2} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity {grid-area: 3 / 2 / 3 / 2} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser, .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity {height: 0.5em;margin: 0 .6em} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser .pcr-picker, .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity .pcr-picker {top: 50%;transform: translateY(-50%)} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser .pcr-slider, .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity .pcr-slider {flex-grow: 1;border-radius: 50em} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser .pcr-slider {background: linear-gradient(to right, red, #ff0, lime, cyan, blue, #f0f, red)} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity .pcr-slider {background: linear-gradient(to right, transparent, black), url('data:image/svg+xml;utf8, ');background-size: 100%, 0.25em}
+.pcr-app .pcr-swatches > button {
+ padding: 0;
+}
diff --git a/src/css/pluginCompatibility.css b/src/css/pluginCompatibility.css
new file mode 100644
index 0000000..6ac910e
--- /dev/null
+++ b/src/css/pluginCompatibility.css
@@ -0,0 +1,162 @@
+/** Execute Code Plugin */
+pre.code-styler-pre code ~ code.language-output {
+ display: block;
+ margin-bottom: 0;
+ padding-bottom: calc(2.5 * var(--code-padding)) !important;
+ padding-left: calc(var(--line-number-gutter-padding)) !important;
+ border-top: var(--header-separator-width) solid var(--code-styler-header-separator-colour);
+}
+pre.code-styler-pre.code-styler-collapsed code ~ code.language-output {
+ border-top-color: transparent;
+ border-top-width: 0;
+}
+pre.code-styler-pre:hover code ~ code.language-output {
+ margin-bottom: 0;
+}
+pre.code-styler-pre code ~ code.language-output input.interactive-stdin {
+ color: var(--text-normal);
+ background-color: var(--code-styler-codeblock-background-colour);
+ padding: 2px 8px;
+ border-color: var(--code-comment);
+ border-style: solid;
+ border-radius: 5px;
+ border-width: 1px;
+}
+pre.code-styler-pre code ~ code.language-output hr {
+ display: none;
+}
+pre.code-styler-pre button.run-code-button {
+ --copy-code-header-right-margin: 12px;
+ --dent-difference: 24px;
+ height: 14px;
+ margin-bottom: 6px !important;
+}
+pre.code-styler-pre.code-styler-collapsed button.run-code-button {
+ top: 500px;
+}
+pre.code-styler-pre button.run-code-button::before {
+ content: "\200b";
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ padding-right: 4px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ vertical-align: 0px;
+}
+pre.code-styler-pre button.clear-button-disabled,
+pre.code-styler-pre button.run-button-disabled {
+ display: none !important;
+}
+pre.code-styler-pre button.clear-button {
+ height: 14px;
+ margin-bottom: 6px !important;
+ margin-left: calc(var(--language-border-width) + 12px);
+ will-change: margin-right, clip-path;
+ clip-path: var(--polygon-in);
+}
+pre.code-styler-pre button.clear-button::before {
+ content: "\200b";
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ padding-right: 4px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ vertical-align: 0px;
+}
+pre.code-styler-pre button.clear-button:not(:active) {
+ animation: reverse-indent var(--duration-button);
+}
+pre.code-styler-pre button.clear-button:hover{
+ background-color: transparent;
+ animation: reverse-outdent var(--duration-button);
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+}
+pre.code-styler-pre button.clear-button:active {
+ scale: 0.95;
+ transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+}
+.code-styler-pre-parent.has-run-code-button .load-state-indicator {
+ color: none;
+ background: none;
+ z-index: 10;
+}
+.code-styler-pre-parent.has-run-code-button .load-state-indicator::before {
+ box-shadow: none;
+}
+.code-styler-pre-parent.has-run-code-button .load-state-indicator svg {
+ color: var(--code-styler-button-colour);
+}
+.code-styler-pre-parent.has-run-code-button .load-state-indicator svg:hover {
+ color: var(--code-styler-button-active-colour);
+}
+.code-styler-pre-parent.has-run-code-button .load-state-indicator.visible {
+ transform: translateX(0);
+}
+
+/** Embed Code Plugin */
+.block-language-preview pre.code-styler-pre code {
+ white-space: unset;
+}
+pre.code-styler-pre span.code-block-line_num-wrap,
+pre.code-styler-pre div.code-block-highlight-wrap {
+ display: none;
+}
+.markdown-source-view.mod-cm6 .cm-embed-block .code-styler-pre-parent + .edit-block-button::after {
+ content: 'Edit Block';
+ font-size: var(--font-ui-smaller);
+ padding-left: 4px;
+}
+.markdown-source-view.mod-cm6 .cm-embed-block:not(:hover) .code-styler-pre-parent + .edit-block-button {
+ visibility: hidden;
+ opacity: 0
+}
+.markdown-source-view.mod-cm6 .cm-embed-block .code-styler-pre-parent + .edit-block-button {
+ --copy-code-header-right-margin: calc(2.2 * var(--header-button-spacing));
+ --dent-difference: 0px;
+ --polygon-in: polygon(0 0, 18px 0, 18px 36px, 0 36px);
+ transition: visibility var(--duration-button), opacity var(--duration-button);
+ visibility: visible;
+ opacity: 1;
+ z-index: 10;
+ transform: translateY(-50%);
+ top: max(calc(0.5 * var(--container-height) * 1),calc(0.5 * var(--container-min-height) * 1));
+ margin: 0;
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ will-change: margin-right, clip-path;
+ clip-path: var(--polygon-in);
+ padding: 0;
+}
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .cm-embed-block .code-styler-pre-parent:has( pre.code-styler-pre .code-styler-header-container) + .edit-block-button,
+body:not(.code-styler-show-langnames-always) .cm-embed-block .code-styler-pre-parent:not(:has( pre.code-styler-pre .code-styler-header-container-specific)):not(:has( pre.code-styler-pre .code-styler-header-container img.code-styler-icon)) + .edit-block-button,
+body .cm-embed-block .code-styler-pre-parent:has( pre.code-styler-pre:not([class*='language-']) .code-styler-header-container) + .edit-block-button { /*? Depending on header visibility */
+ --copy-code-header-right-margin: 4px;
+ top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal));
+}
+.markdown-source-view.mod-cm6 .cm-embed-block:hover .code-styler-pre-parent + .edit-block-button:hover {
+ background: transparent;
+ animation: reverse-outdent var(--duration-button);
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+}
+.markdown-source-view.mod-cm6 .cm-embed-block:hover .code-styler-pre-parent + .edit-block-button:active {
+ scale: 0.95;
+ transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+}
+
+/** File Include Plugin */
+div.block-language-include pre.code-styler-pre button.copy-code-button {
+ margin: 0;
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+}
+div.block-language-include pre.code-styler-pre button.copy-code-button:hover {
+ margin-right: var(--copy-code-header-right-margin);
+}
diff --git a/src/styles.css b/src/styles.css
new file mode 100644
index 0000000..e0a4e8c
--- /dev/null
+++ b/src/styles.css
@@ -0,0 +1,75 @@
+/** Define CSS variables */
+@import "./css/codeblocks.css";
+@import "./css/inlineCode.css";
+@import "./css/pdfExport.css";
+@import "./css/pickr.css";
+@import "./css/pluginCompatibility.css";
+
+body {
+ /* Codeblock Body */
+ --border-radius: 10px;
+ --gradient-background-colour: transparent;
+ --code-padding: 8px;
+ --container-height: calc(var(--language-icon-size) + 2 * var(--header-inner-vertical-padding) * var(--header-font-size));
+ --container-min-height: calc((var(--header-font-size) + 2 * var(--header-inner-vertical-padding) * var(--header-font-size)) * var(--line-height-normal));
+ --language-border-colour: var(--code-styler-codeblock-background-colour);
+ --language-border-width: 0px;
+
+ /* Header */
+ --header-font-size: var(--code-size);
+ --header-padding: 0px;
+ --header-inner-vertical-padding: 0.3;
+ --header-spacing: 15px;
+ --header-button-spacing: 14px;
+ --header-separator-width: 2px;
+ --header-separator-width-padding: var(--header-separator-width);
+ --code-styler-header-border: none;
+ --collapsed-bottom-border: 0 solid transparent;
+ --language-icon-size: 28px;
+ --language-icon-filter: none;
+
+ /* Lines */
+ --gradient-highlights-colour-stop: 100%;
+
+ /* Line Numbers */
+ --line-number-height-correction: 2px;
+ --line-number-gutter-padding: 16px;
+ --line-number-gutter-min-width: 32.67px;
+
+ /* Line Text */
+ --line-wrapping: pre-wrap;
+ --line-active-wrapping: var(--line-wrapping);
+
+ /* Buttons */
+ --code-styler-button-colour: var(--text-muted);
+ --code-styler-button-active-colour: white;
+ --duration-button: 240ms;
+ --dent-difference: 30px;
+ --polygon-in: polygon(0 0, 16px 0, 16px 36px, 0 36px);
+ --polygon-out: polygon(0 0, 100% 0, 100% 100%, 0 100%);
+ --copy-code-header-right-margin: calc(3 * var(--header-button-spacing));
+
+ /* Inline Code */
+ --code-styler-inline-font-weight: 400;
+ --code-styler-inline-border-radius: 6px;
+ --code-styler-inline-padding-vertical: 5px;
+ --code-styler-inline-padding-horizontal: 5px;
+ --code-styler-inline-margin-horizontal: 0px;
+ --code-styler-inline-colour: var(--code-normal);
+ --code-styler-inline-colour-active: var(--code-normal);
+ --code-styler-inline-background-colour: var(--code-background);
+}
+
+/** Settings */
+.setting-item.code-styler-spaced .checkbox-container + .pickr {
+ padding-left: 10px;
+}
+.code-styler-donation {
+ width: 70%;
+ margin: 0 auto;
+ text-align: center;
+}
+.code-styler-setting-text-area textarea {
+ width: 400px;
+ height: 220px;
+}
diff --git a/styles.css b/styles.css
index c513715..d2b1804 100644
--- a/styles.css
+++ b/styles.css
@@ -1,796 +1,1162 @@
-/** Define CSS variables */
-body {
- /* Codeblock Body */
- --border-radius: 10px;
- --gradient-background-colour: transparent;
- --code-padding: 8px;
- --container-height: calc(var(--language-icon-size) + 2 * var(--header-inner-vertical-padding) * var(--header-font-size));
- --container-min-height: calc((var(--header-font-size) + 2 * var(--header-inner-vertical-padding) * var(--header-font-size)) * var(--line-height-normal));
- --language-border-colour: var(--code-styler-codeblock-background-colour);
- --language-border-width: 0px;
-
- /* Header */
- --header-font-size: var(--code-size);
- --header-padding: 0px;
- --header-inner-vertical-padding: 0.3;
- --header-spacing: 15px;
- --header-button-spacing: 14px;
- --header-separator-width: 2px;
- --header-separator-width-padding: var(--header-separator-width);
- --code-styler-header-border: none;
- --collapsed-bottom-border: 0 solid transparent;
- --language-icon-size: 28px;
- --language-icon-filter: none;
-
- /* Lines */
- --gradient-highlights-colour-stop: 100%;
-
- /* Line Numbers */
- --line-number-height-correction: 2px;
- --line-number-gutter-padding: 16px;
- --line-number-gutter-min-width: 32.67px;
-
- /* Line Text */
- --line-wrapping: pre-wrap;
- --line-active-wrapping: var(--line-wrapping);
-
- /* Buttons */
- --code-styler-button-colour: var(--text-muted);
- --code-styler-button-active-colour: white;
- --duration-button: 240ms;
- --dent-difference: 30px;
- --polygon-in: polygon(0 0, 16px 0, 16px 36px, 0 36px);
- --polygon-out: polygon(0 0, 100% 0, 100% 100%, 0 100%);
- --copy-code-header-right-margin: calc(3 * var(--header-button-spacing));
-
- /* Inline Code */
- --code-styler-inline-font-weight: 400;
- --code-styler-inline-border-radius: 6px;
- --code-styler-inline-padding-vertical: 5px;
- --code-styler-inline-padding-horizontal: 5px;
- --code-styler-inline-margin-horizontal: 0px;
- --code-styler-inline-colour: var(--code-normal);
- --code-styler-inline-colour-active: var(--code-normal);
- --code-styler-inline-background-colour: var(--code-background);
-}
-
-/*! Codeblock Styler */
-/** Pre elements */
-.code-styler-pre-parent{
- margin-bottom: 16px;
+/* src/css/codeblocks.css */
+.code-styler-pre-parent {
+ margin-bottom: 16px;
}
.code-styler pre.code-styler-pre {
- background: var(--code-styler-codeblock-background-colour) !important;
- border-radius: var(--border-radius) !important;
- min-height: unset;
- padding: 0px !important;
- overflow: hidden !important;
+ background: var(--code-styler-codeblock-background-colour) !important;
+ border-radius: var(--border-radius) !important;
+ min-height: unset;
+ padding: 0px !important;
+ overflow: hidden !important;
}
-.code-styler pre.code-styler-pre[class*='language-'] {
- background: linear-gradient(90deg, var(--language-border-colour), var(--language-border-colour) var(--language-border-width), var(--code-styler-codeblock-background-colour) var(--language-border-width), var(--code-styler-codeblock-background-colour) 100%) !important;
- padding-left: var(--language-border-width) !important;
+.code-styler pre.code-styler-pre[class*=language-] {
+ background: linear-gradient(90deg, var(--language-border-colour), var(--language-border-colour) var(--language-border-width), var(--code-styler-codeblock-background-colour) var(--language-border-width), var(--code-styler-codeblock-background-colour) 100%) !important;
+ padding-left: var(--language-border-width) !important;
}
.code-styler pre.code-styler-pre code {
- display: grid;
- grid-template-columns: min-content auto;
- grid-template-rows: auto;
- padding-top: var(--code-padding) !important;
- padding-bottom: var(--code-padding) !important;
- padding-left: 0px !important;
- padding-right: 0px !important;
- border-radius: 0px !important;
- background: none !important;
- transition: max-height ease-in-out var(--duration-button), padding ease-in-out var(--duration-button), border-top ease-in-out var(--duration-button);
- max-height: 0;
- overflow-x: scroll;
+ display: grid;
+ grid-template-columns: min-content auto;
+ grid-template-rows: auto;
+ padding-top: var(--code-padding) !important;
+ padding-bottom: var(--code-padding) !important;
+ padding-left: 0px !important;
+ padding-right: 0px !important;
+ border-radius: 0px !important;
+ background: none !important;
+ transition:
+ max-height ease-in-out var(--duration-button),
+ padding ease-in-out var(--duration-button),
+ border-top ease-in-out var(--duration-button);
+ max-height: 0;
+ overflow-x: scroll;
}
-.code-styler pre.code-styler-pre code:not(:has( > input[style*="display: inline;"])):active {
- --line-wrapping: var(--line-active-wrapping) !important;
+.code-styler pre.code-styler-pre code:not(:has(> input[style*="display: inline;"])):active {
+ --line-wrapping: var(--line-active-wrapping) !important;
}
.code-styler pre.code-styler-pre.code-styler-collapsed code {
- padding-top: 0 !important;
- padding-bottom: 0 !important;
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
}
.code-styler pre.code-styler-pre::before,
.code-styler pre.code-styler-pre::after {
- content: none !important;
+ content: none !important;
}
.markdown-source-view.mod-cm6 .cm-embed-block pre.code-styler-pre {
- margin: 1em 0px;
+ margin: 1em 0px;
}
-
-/** Editing Mode Body */
-.code-styler .markdown-source-view [class*="code-styler-line"].HyperMD-codeblock-begin {
- border-top-left-radius: 0px !important;
- border-top-right-radius: 0px !important;
- border-top: none !important;
+.code-styler .markdown-source-view [class*=code-styler-line].HyperMD-codeblock-begin {
+ border-top-left-radius: 0px !important;
+ border-top-right-radius: 0px !important;
+ border-top: none !important;
}
-.code-styler .markdown-source-view [class*="code-styler-line"].HyperMD-codeblock-end {
- border-bottom-left-radius: var(--border-radius);
- border-bottom-right-radius: var(--border-radius);
+.code-styler .markdown-source-view [class*=code-styler-line].HyperMD-codeblock-end {
+ border-bottom-left-radius: var(--border-radius);
+ border-bottom-right-radius: var(--border-radius);
}
body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container + .HyperMD-codeblock-begin,
-body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has( img.code-styler-icon)) + .HyperMD-codeblock-begin,
-body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*='code-styler-header-language-tag-'])) + .HyperMD-codeblock-begin,
-body .markdown-source-view :not([class^='code-styler-header-container']) + [class*="code-styler-line"].HyperMD-codeblock-begin,
-body .markdown-source-view [class*="code-styler-line"].HyperMD-codeblock-begin:nth-of-type(1) { /*? Depending on header visibility */
- border-top-left-radius: var(--border-radius) !important;
- border-top-right-radius: var(--border-radius) !important;
+body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has(img.code-styler-icon)) + .HyperMD-codeblock-begin,
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*="code-styler-header-language-tag-"])) + .HyperMD-codeblock-begin,
+body .markdown-source-view :not([class^="code-styler-header-container"]) + [class*=code-styler-line].HyperMD-codeblock-begin,
+body .markdown-source-view [class*=code-styler-line].HyperMD-codeblock-begin:nth-of-type(1) {
+ border-top-left-radius: var(--border-radius) !important;
+ border-top-right-radius: var(--border-radius) !important;
}
-.code-styler .markdown-source-view .HyperMD-codeblock[class*='code-styler-line'] {
- background: linear-gradient(90deg, var(--gradient-background-colour) var(--gradient-highlights-colour-stop), transparent 100%), var(--code-styler-codeblock-background-colour) !important;
- overflow: hidden;
- padding: 0 !important;
- padding-left: var(--size-4-4) !important;
+.code-styler .markdown-source-view .HyperMD-codeblock[class*=code-styler-line] {
+ background: linear-gradient(90deg, var(--gradient-background-colour) var(--gradient-highlights-colour-stop), transparent 100%), var(--code-styler-codeblock-background-colour) !important;
+ overflow: hidden;
+ padding: 0 !important;
+ padding-left: var(--size-4-4) !important;
}
-.code-styler .markdown-source-view .HyperMD-codeblock[class*='code-styler-line'][class*='language-'] {
- background: linear-gradient(90deg, var(--language-border-colour), var(--language-border-colour) var(--language-border-width), var(--gradient-background-colour) var(--language-border-width) var(--gradient-highlights-colour-stop), transparent 100%), var(--code-styler-codeblock-background-colour) !important;
+.code-styler .markdown-source-view .HyperMD-codeblock[class*=code-styler-line][class*=language-] {
+ background: linear-gradient(90deg, var(--language-border-colour), var(--language-border-colour) var(--language-border-width), var(--gradient-background-colour) var(--language-border-width) var(--gradient-highlights-colour-stop), transparent 100%), var(--code-styler-codeblock-background-colour) !important;
}
-.code-styler .markdown-source-view .HyperMD-codeblock[class*='code-styler-line'][class*='language-'] [class^='code-styler-line-number'] {
- margin-left: var(--language-border-width);
+.code-styler .markdown-source-view .HyperMD-codeblock[class*=code-styler-line][class*=language-] [class^=code-styler-line-number] {
+ margin-left: var(--language-border-width);
}
-
-/** Header styling */
-body:not([class*='code-styler-show-langicons']) .code-styler-header-container-specific div:has(> img.code-styler-icon),
+body:not([class*="code-styler-show-langicons"]) .code-styler-header-container-specific div:has(> img.code-styler-icon),
body:not(.code-styler-show-langicons-always) .code-styler-header-container div:has(> img.code-styler-icon) {
- display: none;
+ display: none;
}
-body:not([class*='code-styler-show-langnames']) .code-styler-header-container-specific [class^="code-styler-header-language-tag"],
-body:not(.code-styler-show-langnames-always) .code-styler-header-container [class^="code-styler-header-language-tag"] {
- display: none;
+body:not([class*="code-styler-show-langnames"]) .code-styler-header-container-specific [class^=code-styler-header-language-tag],
+body:not(.code-styler-show-langnames-always) .code-styler-header-container [class^=code-styler-header-language-tag] {
+ display: none;
}
body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .code-styler-header-container,
-body:not(.code-styler-show-langnames-always) .code-styler-header-container:not(:has( img.code-styler-icon)) {
- display: none !important;
+body:not(.code-styler-show-langnames-always) .code-styler-header-container:not(:has(img.code-styler-icon)) {
+ display: none !important;
}
-body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not([class*='language-']),
-body pre.code-styler-pre:not([class*='language-']) .code-styler-header-container {
- display: none !important;
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not([class*="language-"]),
+body pre.code-styler-pre:not([class*="language-"]) .code-styler-header-container {
+ display: none !important;
}
-[class^='code-styler-header-container'] {
- font-size: var(--header-font-size);
- user-select: none;
- height: var(--container-height);
- min-height: var(--container-min-height);
- padding-top: var(--header-padding);
- margin-top: 0px !important;
- display: flex !important;
- overflow: visible;
- transition: border-bottom ease-in-out var(--duration-button);
- box-sizing: content-box;
+[class^=code-styler-header-container] {
+ font-size: var(--header-font-size);
+ user-select: none;
+ height: var(--container-height);
+ min-height: var(--container-min-height);
+ padding-top: var(--header-padding);
+ margin-top: 0px !important;
+ display: flex !important;
+ overflow: visible;
+ transition: border-bottom ease-in-out var(--duration-button);
+ box-sizing: content-box;
}
-.markdown-source-view :not(pre.code-styler-pre) > [class^='code-styler-header-container'] {
- background: linear-gradient(var(--code-styler-header-background-colour) 0%,var(--code-styler-header-background-colour) calc(100% - var(--header-separator-width)), var(--code-styler-header-separator-colour) calc(100% - var(--header-separator-width)), var(--code-styler-header-separator-colour) 100%) var(--language-border-width) bottom/100% border-box no-repeat,var(--language-border-colour) !important;
- padding-left: var(--language-border-width);
- border-top-left-radius: var(--border-radius);
- border-top-right-radius: var(--border-radius);
- padding-bottom: var(--header-separator-width);
- border-top: var(--code-styler-header-border);
- border-left: var(--code-styler-header-border);
- border-right: var(--code-styler-header-border);
+.markdown-source-view :not(pre.code-styler-pre) > [class^=code-styler-header-container] {
+ background: linear-gradient(var(--code-styler-header-background-colour) 0%, var(--code-styler-header-background-colour) calc(100% - var(--header-separator-width)), var(--code-styler-header-separator-colour) calc(100% - var(--header-separator-width)), var(--code-styler-header-separator-colour) 100%) var(--language-border-width) bottom/100% border-box no-repeat, var(--language-border-colour) !important;
+ padding-left: var(--language-border-width);
+ border-top-left-radius: var(--border-radius);
+ border-top-right-radius: var(--border-radius);
+ padding-bottom: var(--header-separator-width);
+ border-top: var(--code-styler-header-border);
+ border-left: var(--code-styler-header-border);
+ border-right: var(--code-styler-header-border);
}
-pre.code-styler-pre [class^='code-styler-header-container'] {
- background-color: var(--code-styler-header-background-colour);
- border-bottom: var(--header-separator-width) solid var(--code-styler-header-separator-colour);
+pre.code-styler-pre [class^=code-styler-header-container] {
+ background-color: var(--code-styler-header-background-colour);
+ border-bottom: var(--header-separator-width) solid var(--code-styler-header-separator-colour);
}
-.markdown-source-view :not(pre.code-styler-pre) > [class^='code-styler-header-container']:not(:has(+ .HyperMD-codeblock-begin)) {
- background: linear-gradient(var(--code-styler-header-background-colour) 0%,var(--code-styler-header-background-colour) 100%) var(--language-border-width) bottom/100% border-box no-repeat,var(--language-border-colour) !important;
- padding-bottom: var(--header-padding);
- border-bottom-left-radius: var(--border-radius);
- border-bottom-right-radius: var(--border-radius);
- border-bottom: var(--code-styler-header-border);
- border-bottom: var(--collapsed-bottom-border);
+.markdown-source-view :not(pre.code-styler-pre) > [class^=code-styler-header-container]:not(:has(+ .HyperMD-codeblock-begin)) {
+ background: linear-gradient(var(--code-styler-header-background-colour) 0%, var(--code-styler-header-background-colour) 100%) var(--language-border-width) bottom/100% border-box no-repeat, var(--language-border-colour) !important;
+ padding-bottom: var(--header-padding);
+ border-bottom-left-radius: var(--border-radius);
+ border-bottom-right-radius: var(--border-radius);
+ border-bottom: var(--code-styler-header-border);
+ border-bottom: var(--collapsed-bottom-border);
}
-pre.code-styler-pre.code-styler-collapsed [class^='code-styler-header-container'] {
- border-bottom: var(--collapsed-bottom-border);
+pre.code-styler-pre.code-styler-collapsed [class^=code-styler-header-container] {
+ border-bottom: var(--collapsed-bottom-border);
}
-[class^='code-styler-header-container'] [class^="code-styler-header-language-tag"] {
- display: flex;
- justify-content: center;
- align-content: center;
- flex-direction: column;
- height: 100%;
- padding-left: var(--header-spacing);
- padding-right: var(--header-spacing);
- margin-right: var(--header-spacing);
- padding-top: calc(1em * var(--header-inner-vertical-padding));
- padding-bottom: calc(1em * var(--header-inner-vertical-padding));
- font-size: inherit;
- border-radius: var(--border-radius) var(--border-radius) 0px 0px;
- background-color: var(--code-styler-header-language-tag-background-colour);
- color: var(--code-styler-header-language-tag-text-colour);
- font-weight: var(--code-styler-header-language-tag-text-bold, normal);
- font-style: var(--code-styler-header-language-tag-text-italic, normal);
- text-align: center;
- transition: border-radius ease-in-out var(--duration-button), padding ease-in-out var(--duration-button);
+[class^=code-styler-header-container] [class^=code-styler-header-language-tag] {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+ height: 100%;
+ padding-left: var(--header-spacing);
+ padding-right: var(--header-spacing);
+ margin-right: var(--header-spacing);
+ padding-top: calc(1em * var(--header-inner-vertical-padding));
+ padding-bottom: calc(1em * var(--header-inner-vertical-padding));
+ font-size: inherit;
+ border-radius: var(--border-radius) var(--border-radius) 0px 0px;
+ background-color: var(--code-styler-header-language-tag-background-colour);
+ color: var(--code-styler-header-language-tag-text-colour);
+ font-weight: var(--code-styler-header-language-tag-text-bold, normal);
+ font-style: var(--code-styler-header-language-tag-text-italic, normal);
+ text-align: center;
+ transition: border-radius ease-in-out var(--duration-button), padding ease-in-out var(--duration-button);
}
-.markdown-source-view :not(pre.code-styler-pre) > [class^='code-styler-header-container']:not(:has(+ .HyperMD-codeblock-begin)) [class^="code-styler-header-language-tag"],
-pre.code-styler-pre.code-styler-collapsed [class^='code-styler-header-container'] [class^="code-styler-header-language-tag"] {
- border-radius: var(--border-radius);
+.markdown-source-view :not(pre.code-styler-pre) > [class^=code-styler-header-container]:not(:has(+ .HyperMD-codeblock-begin)) [class^=code-styler-header-language-tag],
+pre.code-styler-pre.code-styler-collapsed [class^=code-styler-header-container] [class^=code-styler-header-language-tag] {
+ border-radius: var(--border-radius);
}
.code-styler-header-text {
- display: flex;
- justify-content: center;
- align-content: center;
- flex-direction: column;
- padding-left: 0px;
- padding-top: calc(1em * var(--header-inner-vertical-padding));
- padding-bottom: calc(1em * var(--header-inner-vertical-padding));
- font-size: inherit;
- color: var(--code-styler-header-text-colour);
- font-weight: var(--code-styler-header-title-text-bold, normal);
- font-style: var(--code-styler-header-title-text-italic, normal);
- transition: padding ease-in-out var(--duration-button);
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+ padding-left: 0px;
+ padding-top: calc(1em * var(--header-inner-vertical-padding));
+ padding-bottom: calc(1em * var(--header-inner-vertical-padding));
+ font-size: inherit;
+ color: var(--code-styler-header-text-colour);
+ font-weight: var(--code-styler-header-title-text-bold, normal);
+ font-style: var(--code-styler-header-title-text-italic, normal);
+ transition: padding ease-in-out var(--duration-button);
}
-body:not([class*='code-styler-show-langicons']) .code-styler-header-container-specific [class^="code-styler-header-language-tag"],
-body:not(.code-styler-show-langicons-always) .code-styler-header-container [class^="code-styler-header-language-tag"],
-body .code-styler-header-container-specific:not(:has( div > img.code-styler-icon)) [class^="code-styler-header-language-tag"] { /*? Depending on header visibility */
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
+body:not([class*="code-styler-show-langicons"]) .code-styler-header-container-specific [class^=code-styler-header-language-tag],
+body:not(.code-styler-show-langicons-always) .code-styler-header-container [class^=code-styler-header-language-tag],
+body .code-styler-header-container-specific:not(:has(div > img.code-styler-icon)) [class^=code-styler-header-language-tag] {
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
}
-body:not([class*='code-styler-show-langicons']):not([class*='code-styler-show-langnames']) .code-styler-header-container-specific .code-styler-header-text,
+body:not([class*="code-styler-show-langicons"]):not([class*="code-styler-show-langnames"]) .code-styler-header-container-specific .code-styler-header-text,
body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames) .code-styler-header-container .code-styler-header-text,
-body .code-styler-header-container-specific:not(:has( [class^="code-styler-header-language-tag-"])) .code-styler-header-text { /*? Depending on header visibility */
- padding-left: var(--header-spacing);
+body .code-styler-header-container-specific:not(:has([class^="code-styler-header-language-tag-"])) .code-styler-header-text {
+ padding-left: var(--header-spacing);
}
div:has(> img.code-styler-icon) {
- display: inline-flex;
- justify-content: center;
- align-content: center;
- flex-direction: column;
- padding-top: calc(1em * var(--header-inner-vertical-padding));
- padding-bottom: calc(1em * var(--header-inner-vertical-padding));
- padding-left: var(--header-spacing);
- padding-right: var(--header-spacing);
- transition: padding ease-in-out var(--duration-button);
+ display: inline-flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+ padding-top: calc(1em * var(--header-inner-vertical-padding));
+ padding-bottom: calc(1em * var(--header-inner-vertical-padding));
+ padding-left: var(--header-spacing);
+ padding-right: var(--header-spacing);
+ transition: padding ease-in-out var(--duration-button);
}
.code-styler-icon {
- width: var(--language-icon-size);
- height: var(--language-icon-size);
- filter: var(--language-icon-filter);
- margin: 0 !important;
- border: none !important;
+ width: var(--language-icon-size);
+ height: var(--language-icon-size);
+ filter: var(--language-icon-filter);
+ margin: 0 !important;
+ border: none !important;
}
-
-/** Lines */
-pre.code-styler-pre [class^='code-styler-line-highlighted'] > .code-styler-line-text {
- background-image: linear-gradient(90deg, var(--gradient-background-colour) 0% var(--gradient-highlights-colour-stop), var(--code-styler-codeblock-background-colour) 100%);
+pre.code-styler-pre [class^=code-styler-line-highlighted] > .code-styler-line-text {
+ background-image: linear-gradient(90deg, var(--gradient-background-colour) 0% var(--gradient-highlights-colour-stop), var(--code-styler-codeblock-background-colour) 100%);
}
.code-styler-line-highlighted {
- --gradient-background-colour: var(--code-styler-default-highlight-colour) !important;
+ --gradient-background-colour: var(--code-styler-default-highlight-colour) !important;
}
.code-styler-active-line-highlight .cm-active,
.code-styler-active-line-highlight-editor .cm-active {
- background: linear-gradient(to right, var(--code-styler-active-editor-line-colour), var(--gradient-highlights-colour-stop), transparent) !important;
+ background: linear-gradient(to right, var(--code-styler-active-editor-line-colour), var(--gradient-highlights-colour-stop), transparent) !important;
}
-.code-styler-active-line-highlight .markdown-source-view .HyperMD-codeblock[class*="code-styler-line"].cm-active,
-.code-styler-active-line-highlight-codeblock .markdown-source-view .HyperMD-codeblock[class*="code-styler-line"].cm-active {
- background: linear-gradient(to right, var(--code-styler-active-codeblock-line-colour), var(--gradient-highlights-colour-stop), var(--code-styler-codeblock-background-colour)) !important;
+.code-styler-active-line-highlight .markdown-source-view .HyperMD-codeblock[class*=code-styler-line].cm-active,
+.code-styler-active-line-highlight-codeblock .markdown-source-view .HyperMD-codeblock[class*=code-styler-line].cm-active {
+ background: linear-gradient(to right, var(--code-styler-active-codeblock-line-colour), var(--gradient-highlights-colour-stop), var(--code-styler-codeblock-background-colour)) !important;
}
-
-/** Line numbers */
.code-styler:not(.code-styler-show-line-numbers) .code-styler-line-number,
.code-styler-line-number-hide {
- display: none;
+ display: none;
}
-pre.code-styler-pre > code > div:first-child > [class^='code-styler-line-number'] { /*? Maintain gutter colour when padded */
- box-shadow: 0px calc(-1 * var(--code-padding)) var(--code-styler-gutter-background-colour);
- transition: box-shadow ease-in-out var(--duration-button);
+pre.code-styler-pre > code > div:first-child > [class^=code-styler-line-number] {
+ box-shadow: 0px calc(-1 * var(--code-padding)) var(--code-styler-gutter-background-colour);
+ transition: box-shadow ease-in-out var(--duration-button);
}
-pre.code-styler-pre.code-styler-collapsed > code > div:first-child > [class^='code-styler-line-number'] { /*? Maintain gutter colour when padded */
- box-shadow: 0px 0px var(--code-styler-gutter-background-colour);
+pre.code-styler-pre.code-styler-collapsed > code > div:first-child > [class^=code-styler-line-number] {
+ box-shadow: 0px 0px var(--code-styler-gutter-background-colour);
}
-pre.code-styler-pre > code > div:last-child > [class^='code-styler-line-number'] { /*? Maintain gutter colour when padded */
- box-shadow: 0px var(--code-padding) var(--code-styler-gutter-background-colour);
+pre.code-styler-pre > code > div:last-child > [class^=code-styler-line-number] {
+ box-shadow: 0px var(--code-padding) var(--code-styler-gutter-background-colour);
}
-pre.code-styler-pre > code > div:only-child > [class^='code-styler-line-number'] { /*? Maintain gutter colour when padded */
- box-shadow: 0px calc(-1 * var(--code-padding)) var(--code-styler-gutter-background-colour),0px var(--code-padding) var(--code-styler-gutter-background-colour);
+pre.code-styler-pre > code > div:only-child > [class^=code-styler-line-number] {
+ box-shadow: 0px calc(-1 * var(--code-padding)) var(--code-styler-gutter-background-colour), 0px var(--code-padding) var(--code-styler-gutter-background-colour);
}
-[class^='code-styler-line-number'] {
- padding-left: calc(4px + var(--language-border-width));
- padding-right: 8px;
- text-align: right;
- min-width: var(--line-number-gutter-min-width);
- background-color: var(--code-styler-gutter-background-colour);
- font-size: var(--code-size);
- font-family: var(--font-monospace);
- color: var(--code-styler-gutter-text-colour);
- user-select: none;
+[class^=code-styler-line-number] {
+ padding-left: calc(4px + var(--language-border-width));
+ padding-right: 8px;
+ text-align: right;
+ min-width: var(--line-number-gutter-min-width);
+ background-color: var(--code-styler-gutter-background-colour);
+ font-size: var(--code-size);
+ font-family: var(--font-monospace);
+ color: var(--code-styler-gutter-text-colour);
+ user-select: none;
}
.markdown-source-view .HyperMD-codeblock .code-styler-line-number,
.markdown-source-view .HyperMD-codeblock .code-styler-line-number-specific {
- padding-top: var(--line-number-height-correction);
- position: absolute;
- box-sizing: content-box;
- display: inline-block;
- height: 100%;
- min-width: calc(var(--line-number-gutter-min-width) - 12px);
- overflow-x: auto;
- direction: rtl;
- left: 0;
+ padding-top: var(--line-number-height-correction);
+ position: absolute;
+ box-sizing: content-box;
+ display: inline-block;
+ height: 100%;
+ min-width: calc(var(--line-number-gutter-min-width) - 12px);
+ overflow-x: auto;
+ direction: rtl;
+ left: 0;
}
.markdown-source-view .HyperMD-codeblock-begin .code-styler-line-number,
.markdown-source-view .HyperMD-codeblock-begin .code-styler-line-number-specific,
.markdown-source-view .HyperMD-codeblock-end .code-styler-line-number,
.markdown-source-view .HyperMD-codeblock-end .code-styler-line-number-specific {
- width: var(--line-number-gutter-width);
+ width: var(--line-number-gutter-width);
}
-pre.code-styler-pre [class^='code-styler-line-number'] {
- white-space: nowrap;
- grid-column: 1;
- position: sticky;
- top: -1px;
- left: 0;
- border-top: var(--line-number-height-correction) solid transparent;
+pre.code-styler-pre [class^=code-styler-line-number] {
+ white-space: nowrap;
+ grid-column: 1;
+ position: sticky;
+ top: -1px;
+ left: 0;
+ border-top: var(--line-number-height-correction) solid transparent;
}
-pre.code-styler-pre div:last-child > [class^='code-styler-line-number'] {
- width: unset;
+pre.code-styler-pre div:last-child > [class^=code-styler-line-number] {
+ width: unset;
}
-.code-styler-gutter-highlight pre.code-styler-pre [class*="code-styler-line-highlighted"] [class^='code-styler-line-number'] {
- background-color: var(--gradient-background-colour);
+.code-styler-gutter-highlight pre.code-styler-pre [class*=code-styler-line-highlighted] [class^=code-styler-line-number] {
+ background-color: var(--gradient-background-colour);
}
-.code-styler-active-line-highlight.code-styler-gutter-highlight .markdown-source-view .HyperMD-codeblock[class*="code-styler-line"].cm-active [class^='code-styler-line-number'],
-.code-styler-active-line-highlight-codeblock.code-styler-gutter-highlight .markdown-source-view .HyperMD-codeblock[class*="code-styler-line"].cm-active [class^='code-styler-line-number'],
-.code-styler-gutter-highlight [class*="code-styler-line-highlighted"] [class^='code-styler-line-number'] {
- background-color: rgba(0,0,0,0);
+.code-styler-active-line-highlight.code-styler-gutter-highlight .markdown-source-view .HyperMD-codeblock[class*=code-styler-line].cm-active [class^=code-styler-line-number],
+.code-styler-active-line-highlight-codeblock.code-styler-gutter-highlight .markdown-source-view .HyperMD-codeblock[class*=code-styler-line].cm-active [class^=code-styler-line-number],
+.code-styler-gutter-highlight [class*=code-styler-line-highlighted] [class^=code-styler-line-number] {
+ background-color: rgba(0, 0, 0, 0);
}
-.code-styler-gutter-active-line .cm-active [class^='code-styler-line-number']{
- color: var(--code-styler-gutter-active-text-colour);
+.code-styler-gutter-active-line .cm-active [class^=code-styler-line-number] {
+ color: var(--code-styler-gutter-active-text-colour);
}
.code-styler.code-styler-show-line-numbers .markdown-source-view .HyperMD-codeblock:has(.code-styler-line-number),
.code-styler.code-styler-show-line-numbers .markdown-source-view .HyperMD-codeblock:has(.code-styler-line-number-specific) {
- padding-left: calc(12px + var(--language-border-width) + var(--line-number-gutter-width) + var(--line-number-gutter-padding)) !important;
+ padding-left: calc(12px + var(--language-border-width) + var(--line-number-gutter-width) + var(--line-number-gutter-padding)) !important;
}
-.code-styler .markdown-source-view .HyperMD-codeblock[class*='code-styler-line']::before {
- content: none !important;
+.code-styler .markdown-source-view .HyperMD-codeblock[class*=code-styler-line]::before {
+ content: none !important;
}
-
-/** Line text */
-pre.code-styler-pre > code > div[class*='code-styler-line'] {
- display: contents !important;
+pre.code-styler-pre > code > div[class*=code-styler-line] {
+ display: contents !important;
}
pre.code-styler-pre .code-styler-line-text {
- flex-basis: 100%;
- padding-left: var(--line-number-gutter-padding);
- grid-column: 2;
+ flex-basis: 100%;
+ padding-left: var(--line-number-gutter-padding);
+ grid-column: 2;
}
-.HyperMD-codeblock:has(> .cm-widgetBuffer) { /*? Prevent Line Wraps */
- white-space: nowrap;
+.HyperMD-codeblock:has(> .cm-widgetBuffer) {
+ white-space: nowrap;
}
-.HyperMD-codeblock:has(> .cm-widgetBuffer) > .cm-hmd-codeblock { /*? Prevent Line Wraps */
- white-space: break-spaces;
+.HyperMD-codeblock:has(> .cm-widgetBuffer) > .cm-hmd-codeblock {
+ white-space: break-spaces;
}
-
-/** Buttons */
@keyframes outdent {
- from {
- margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
- clip-path: var(--polygon-in);
- }
- to {
- margin-right: var(--copy-code-header-right-margin);
- clip-path: var(--polygon-out);
- }
+ from {
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ clip-path: var(--polygon-in);
+ }
+ to {
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+ }
}
@keyframes indent {
- from {
- margin-right: var(--copy-code-header-right-margin);
- clip-path: var(--polygon-out);
- }
- to {
- margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
- clip-path: var(--polygon-in);
- }
+ from {
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
+ }
+ to {
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ clip-path: var(--polygon-in);
+ }
}
@keyframes reverse-outdent {
- from {
- clip-path: var(--polygon-in);
- }
- to {
- clip-path: var(--polygon-out);
- }
+ from {
+ clip-path: var(--polygon-in);
+ }
+ to {
+ clip-path: var(--polygon-out);
+ }
}
@keyframes reverse-indent {
- from {
- clip-path: var(--polygon-out);
- }
- to {
- clip-path: var(--polygon-in);
- }
+ from {
+ clip-path: var(--polygon-out);
+ }
+ to {
+ clip-path: var(--polygon-in);
+ }
}
.markdown-rendered pre.code-styler-pre button {
- transition: visibility var(--duration-button), opacity var(--duration-button);
- visibility: visible;
- opacity: 1;
- display: unset !important;
- color: var(--code-styler-button-colour) !important;
- background: transparent !important;
- box-shadow: none;
- font-family: var(--font-interface);
- font-size: var(--font-ui-smaller);
- margin: 0;
- padding: 0 !important;
- border: none !important;
- margin-top: 0 !important;
- margin-bottom: 0 !important;
+ transition: visibility var(--duration-button), opacity var(--duration-button);
+ visibility: visible;
+ opacity: 1;
+ display: unset !important;
+ color: var(--code-styler-button-colour) !important;
+ background: transparent !important;
+ box-shadow: none;
+ font-family: var(--font-interface);
+ font-size: var(--font-ui-smaller);
+ margin: 0;
+ padding: 0 !important;
+ border: none !important;
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
}
pre.code-styler-pre:not(.code-styler-collapsed):not(:hover) button,
pre.code-styler-pre.code-styler-collapsed button,
-pre.code-styler-pre:not(.code-styler-collapsed):not(:hover) [class^='code-styler-header-container']::after {
- visibility: hidden;
- opacity: 0
+pre.code-styler-pre:not(.code-styler-collapsed):not(:hover) [class^=code-styler-header-container]::after {
+ visibility: hidden;
+ opacity: 0;
}
-[class^='code-styler-header-container']::after {
- position: relative;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- margin: auto;
- margin-right: var(--header-button-spacing);
- content: "\200b";
- width: 20px;
- height: 20px;
- background-color: var(--code-styler-button-colour);
- -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' xml:space='preserve'%3E%3Cpath d='M16 22 6 12l1.4-1.4 8.6 8.6 8.6-8.6L26 12z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z'/%3E%3C/svg%3E");
- -webkit-mask-repeat: no-repeat;
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
- mask-repeat: no-repeat;
- visibility: visible;
- opacity: 1;
- scale: 0.8;
- transition: transform var(--duration-button) ease-out, visibility var(--duration-button), opacity var(--duration-button), scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+[class^=code-styler-header-container]::after {
+ position: relative;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ margin: auto;
+ margin-right: var(--header-button-spacing);
+ content: "\200b";
+ width: 20px;
+ height: 20px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' xml:space='preserve'%3E%3Cpath d='M16 22 6 12l1.4-1.4 8.6 8.6 8.6-8.6L26 12z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ visibility: visible;
+ opacity: 1;
+ scale: 0.8;
+ transition:
+ transform var(--duration-button) ease-out,
+ visibility var(--duration-button),
+ opacity var(--duration-button),
+ scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
}
-pre.code-styler-pre.code-styler-collapsed [class^='code-styler-header-container']::after,
-.markdown-source-view :not(pre.code-styler-pre) > [class^='code-styler-header-container']:not(:has(+ .HyperMD-codeblock-begin))::after {
- transform: rotate(-90deg);
+pre.code-styler-pre.code-styler-collapsed [class^=code-styler-header-container]::after,
+.markdown-source-view :not(pre.code-styler-pre) > [class^=code-styler-header-container]:not(:has(+ .HyperMD-codeblock-begin))::after {
+ transform: rotate(-90deg);
}
-[class^='code-styler-header-container']:hover::after {
- scale: 1;
+[class^=code-styler-header-container]:hover::after {
+ scale: 1;
}
-body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) pre.code-styler-pre:has( .code-styler-header-container) button.copy-code-button,
-body:not(.code-styler-show-langnames-always) pre.code-styler-pre:not(:has( .code-styler-header-container-specific)):not(:has( .code-styler-header-container img.code-styler-icon)) button.copy-code-button,
-body pre.code-styler-pre:not([class*='language-']):has(.code-styler-header-container) button.copy-code-button { /*? Depending on header visibility */
- top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal)) !important;
- --copy-code-header-right-margin: 12px;
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) pre.code-styler-pre:has(.code-styler-header-container) button.copy-code-button,
+body:not(.code-styler-show-langnames-always) pre.code-styler-pre:not(:has(.code-styler-header-container-specific)):not(:has(.code-styler-header-container img.code-styler-icon)) button.copy-code-button,
+body pre.code-styler-pre:not([class*="language-"]):has(.code-styler-header-container) button.copy-code-button {
+ top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal)) !important;
+ --copy-code-header-right-margin: 12px;
}
body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container + .HyperMD-codeblock-begin,
-body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has( img.code-styler-icon)) + .HyperMD-codeblock-begin,
-body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*='code-styler-header-language-tag-'])) + .HyperMD-codeblock-begin { /*? Depending on header visibility */
- overflow: hidden;
+body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has(img.code-styler-icon)) + .HyperMD-codeblock-begin,
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*="code-styler-header-language-tag-"])) + .HyperMD-codeblock-begin {
+ overflow: hidden;
}
body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container + .HyperMD-codeblock-begin span.code-block-flair,
-body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has( img.code-styler-icon)) + .HyperMD-codeblock-begin span.code-block-flair,
-body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*='code-styler-header-language-tag-'])) + .HyperMD-codeblock-begin span.code-block-flair { /*? Depending on header visibility */
- top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal)) !important;
- --copy-code-header-right-margin: 12px;
+body:not(.code-styler-show-langnames-always) .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has(img.code-styler-icon)) + .HyperMD-codeblock-begin span.code-block-flair,
+body .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container:not(:has([class*="code-styler-header-language-tag-"])) + .HyperMD-codeblock-begin span.code-block-flair {
+ top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal)) !important;
+ --copy-code-header-right-margin: 12px;
}
pre.code-styler-pre button.copy-code-button {
- transform: translateY(-50%);
- top: max(calc(0.5 * var(--container-height) * 1),calc(0.5 * var(--container-min-height) * 1)) !important;
- bottom: unset !important;
+ transform: translateY(-50%);
+ top: max(calc(0.5 * var(--container-height) * 1), calc(0.5 * var(--container-min-height) * 1)) !important;
+ bottom: unset !important;
}
pre.code-styler-pre button.copy-code-button,
-pre.code-styler-pre button.run-code-button, /*? Execute Code Plugin Compatibility */
+pre.code-styler-pre button.run-code-button,
.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair {
- margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
- will-change: margin-right, clip-path;
- clip-path: var(--polygon-in);
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ will-change: margin-right, clip-path;
+ clip-path: var(--polygon-in);
}
pre.code-styler-pre button.copy-code-button:not(:active),
-pre.code-styler-pre button.run-code-button:not(:active), /*? Execute Code Plugin Compatibility */
+pre.code-styler-pre button.run-code-button:not(:active),
.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair:not(:active) {
- animation: indent var(--duration-button);
+ animation: indent var(--duration-button);
}
pre.code-styler-pre button.copy-code-button:hover,
-pre.code-styler-pre button.run-code-button:hover, /*? Execute Code Plugin Compatibility */
-.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair:hover{
- background-color: transparent;
- animation: outdent var(--duration-button);
- margin-right: var(--copy-code-header-right-margin);
- clip-path: var(--polygon-out);
+pre.code-styler-pre button.run-code-button:hover,
+.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair:hover {
+ background-color: transparent;
+ animation: outdent var(--duration-button);
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
}
pre.code-styler-pre button.copy-code-button:active,
-pre.code-styler-pre button.run-code-button:active, /*? Execute Code Plugin Compatibility */
+pre.code-styler-pre button.run-code-button:active,
.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair:active {
- scale: 0.95;
- transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+ scale: 0.95;
+ transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
}
pre.code-styler-pre button.copy-code-button::before,
.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair::before {
- content: "\200b";
- display: inline-block;
- width: 14px;
- height: 14px;
- padding-right: 4px;
- background-color: var(--code-styler-button-colour);
- -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z'/%3E%3Cpath d='M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
- -webkit-mask-repeat: no-repeat;
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z'/%3E%3Cpath d='M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
- mask-repeat: no-repeat;
- vertical-align: 1px;
+ content: "\200b";
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ padding-right: 4px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z'/%3E%3Cpath d='M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z'/%3E%3Cpath d='M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ vertical-align: 1px;
}
.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair {
- transform: translateY(-50%);
- font-size: 0;
- top: min(calc(-0.5 * var(--container-height) * 1.1 - var(--header-separator-width)),calc(-0.5 * var(--container-min-height) * 1.1 - var(--header-separator-width))) !important;
- right: 0;
- visibility: hidden;
- padding: 0;
- position: absolute;
- line-height: initial !important;
- margin-top: 0 !important;
- margin-bottom: 0 !important;
+ transform: translateY(-50%);
+ font-size: 0;
+ top: min(calc(-0.5 * var(--container-height) * 1.1 - var(--header-separator-width)), calc(-0.5 * var(--container-min-height) * 1.1 - var(--header-separator-width))) !important;
+ right: 0;
+ visibility: hidden;
+ padding: 0;
+ position: absolute;
+ line-height: initial !important;
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
}
.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair > * {
- width: 0px;
+ width: 0px;
}
.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair::before {
- visibility: visible;
- opacity: 1;
- vertical-align: -1px;
- font-size: var(--font-ui-smaller);
+ visibility: visible;
+ opacity: 1;
+ vertical-align: -1px;
+ font-size: var(--font-ui-smaller);
}
.markdown-source-view.mod-cm6 .HyperMD-codeblock.code-styler-line span.code-block-flair::after {
- visibility: visible;
- opacity: 1;
- font-size: var(--font-ui-smaller);
- content: 'Copy';
- color: var(--code-styler-button-colour);
+ visibility: visible;
+ opacity: 1;
+ font-size: var(--font-ui-smaller);
+ content: "Copy";
+ color: var(--code-styler-button-colour);
}
.markdown-source-view.mod-cm6 .HyperMD-codeblock-begin.code-styler-line {
- overflow: visible;
+ overflow: visible;
}
-/** Inline Code */
+/* src/css/inlineCode.css */
.code-styler .cm-s-obsidian span.cm-inline-code,
.code-styler .markdown-rendered :not(pre) > code {
- font-weight: var(--code-styler-inline-font-weight);
- color: var(--code-styler-inline-colour);
- background-color: var(--code-styler-inline-background-colour) !important;
- border-radius: var(--code-styler-inline-border-radius) !important;
- padding: var(--code-styler-inline-padding-vertical) var(--code-styler-inline-padding-horizontal) !important;
- margin: 0px var(--code-styler-inline-margin-horizontal) !important;
+ font-weight: var(--code-styler-inline-font-weight);
+ color: var(--code-styler-inline-colour);
+ background-color: var(--code-styler-inline-background-colour) !important;
+ border-radius: var(--code-styler-inline-border-radius) !important;
+ padding: var(--code-styler-inline-padding-vertical) var(--code-styler-inline-padding-horizontal) !important;
+ margin: 0px var(--code-styler-inline-margin-horizontal) !important;
}
-
-.code-styler .cm-s-obsidian span.cm-formatting-code { /*? Standalone backticks */
- color: var(--code-styler-inline-colour-active);
- display: inline !important;
+.code-styler .cm-s-obsidian span.cm-formatting-code {
+ color: var(--code-styler-inline-colour-active);
+ display: inline !important;
}
-
-.code-styler .cm-s-obsidian span.cm-formatting-code:has(+ span.cm-inline-code:not(.cm-formatting-code)) {/*? First backtick */
- color: var(--code-styler-inline-colour-active);
- border-radius: var(--code-styler-inline-border-radius) 0px 0px var(--code-styler-inline-border-radius) !important;
- padding-left: var(--code-styler-inline-padding-horizontal) !important;
- padding-right: 0px !important;
- margin-left: var(--code-styler-inline-margin-horizontal) !important;
- margin-right: 0px !important;
+.code-styler .cm-s-obsidian span.cm-formatting-code:has(+ span.cm-inline-code:not(.cm-formatting-code)) {
+ color: var(--code-styler-inline-colour-active);
+ border-radius: var(--code-styler-inline-border-radius) 0px 0px var(--code-styler-inline-border-radius) !important;
+ padding-left: var(--code-styler-inline-padding-horizontal) !important;
+ padding-right: 0px !important;
+ margin-left: var(--code-styler-inline-margin-horizontal) !important;
+ margin-right: 0px !important;
}
-
-.code-styler .cm-s-obsidian span.cm-formatting-code + span.cm-inline-code:not(.cm-formatting-code) { /*? Inner code with backticks */
- color: var(--code-styler-inline-colour-active);
- border-radius: 0px !important;
- padding-left: 0px !important;
- padding-right: 0px !important;
- margin: 0px 0px !important;
+.code-styler .cm-s-obsidian span.cm-formatting-code + span.cm-inline-code:not(.cm-formatting-code) {
+ color: var(--code-styler-inline-colour-active);
+ border-radius: 0px !important;
+ padding-left: 0px !important;
+ padding-right: 0px !important;
+ margin: 0px 0px !important;
}
-
-.code-styler .cm-s-obsidian span.cm-inline-code:not(.cm-formatting-code) + span.cm-formatting-code {/*? Last backtick */
- color: var(--code-styler-inline-colour-active);
- border-radius: 0px var(--code-styler-inline-border-radius) var(--code-styler-inline-border-radius) 0px !important;
- padding-left: 0px !important;
- padding-right: var(--code-styler-inline-padding-horizontal) !important;
- margin-left: 0px !important;
- margin-right: var(--code-styler-inline-margin-horizontal) !important;
+.code-styler .cm-s-obsidian span.cm-inline-code:not(.cm-formatting-code) + span.cm-formatting-code {
+ color: var(--code-styler-inline-colour-active);
+ border-radius: 0px var(--code-styler-inline-border-radius) var(--code-styler-inline-border-radius) 0px !important;
+ padding-left: 0px !important;
+ padding-right: var(--code-styler-inline-padding-horizontal) !important;
+ margin-left: 0px !important;
+ margin-right: var(--code-styler-inline-margin-horizontal) !important;
}
.code-styler .markdown-rendered :not(pre) > code img.code-styler-inline-icon {
- height: calc(var(--code-size) * 1.2);
- margin-bottom: 2px;
- vertical-align: middle;
+ height: calc(var(--code-size) * 1.2);
+ margin-bottom: 2px;
+ vertical-align: middle;
}
.code-styler .markdown-rendered :not(pre) > code .code-styler-inline-title {
- font-weight: var(--code-styler-inline-title-font-weight);
- color: var(--code-styler-inline-title-color);
+ font-weight: var(--code-styler-inline-title-font-weight);
+ color: var(--code-styler-inline-title-color);
}
.code-styler .markdown-rendered :not(pre) > code .code-styler-inline-title::after {
- content: '\FF5C';
- color: var(--code-styler-inline-title-color);
+ content: "\ff5c";
+ color: var(--code-styler-inline-title-color);
}
-.code-styler .markdown-rendered :not(pre) > code span:has( > img.code-styler-inline-icon) {
- padding-right: 8px;
+.code-styler .markdown-rendered :not(pre) > code span:has(> img.code-styler-inline-icon) {
+ padding-right: 8px;
}
-/** Settings */
-.setting-item.code-styler-spaced .checkbox-container + .pickr {
- padding-left: 10px;
-}
-.code-styler-donation {
- width: 70%;
- margin: 0 auto;
- text-align: center;
-}
-.code-styler-setting-text-area textarea {
- width: 400px;
- height: 220px;
-}
-
-/** Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */
-.pickr {position: relative;overflow: visible;transform: translateY(0)} .pickr * {box-sizing: border-box;outline: none;border: none;appearance: none;-webkit-appearance: none} .pickr .pcr-button {position: relative;height: 2em;width: 2em;padding: 0.5em;cursor: pointer;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;border-radius: .15em;background: url('data:image/svg+xml;utf8, ') no-repeat center;background-size: 0;transition: all 0.3s} .pickr .pcr-button::before {position: absolute;content: '';top: 0;left: 0;width: 100%;height: 100%;background: url('data:image/svg+xml;utf8, ');background-size: .5em;border-radius: .15em;z-index: -1} .pickr .pcr-button::before {z-index: initial} .pickr .pcr-button::after {position: absolute;content: '';top: 0;left: 0;height: 100%;width: 100%;transition: background 0.3s;background: var(--pcr-color);border-radius: .15em} .pickr .pcr-button.clear {background-size: 70%} .pickr .pcr-button.clear::before {opacity: 0} .pickr .pcr-button.clear:focus {box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color)} .pickr .pcr-button.disabled {cursor: not-allowed} .pickr *, .pcr-app * {box-sizing: border-box;outline: none;border: none;appearance: none;-webkit-appearance: none} .pickr input:focus, .pickr input.pcr-active, .pickr button:focus, .pickr button.pcr-active, .pcr-app input:focus, .pcr-app input.pcr-active, .pcr-app button:focus, .pcr-app button.pcr-active {box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color)} .pickr .pcr-palette, .pickr .pcr-slider, .pcr-app .pcr-palette, .pcr-app .pcr-slider {transition: box-shadow 0.3s} .pickr .pcr-palette:focus, .pickr .pcr-slider:focus, .pcr-app .pcr-palette:focus, .pcr-app .pcr-slider:focus {box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(0, 0, 0, 0.25)} .pcr-app {position: fixed;display: flex;flex-direction: column;z-index: 10000;border-radius: 0.1em;background: #fff;opacity: 0;visibility: hidden;transition: opacity 0.3s, visibility 0s 0.3s;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;box-shadow: 0 0.15em 1.5em 0 rgba(0, 0, 0, 0.1), 0 0 1em 0 rgba(0, 0, 0, 0.03);left: 0;top: 0} .pcr-app.visible {transition: opacity 0.3s;visibility: visible;opacity: 1} .pcr-app .pcr-swatches {display: flex;flex-wrap: wrap;margin-top: 0.75em} .pcr-app .pcr-swatches.pcr-last {margin: 0} @supports (display: grid) { .pcr-app .pcr-swatches {display: grid;align-items: center;grid-template-columns: repeat(auto-fit, 1.75em)} } .pcr-app .pcr-swatches > button {font-size: 1em;position: relative;width: calc(1.75em - 10px);height: calc(1.75em - 10px);border-radius: 0.15em;cursor: pointer;margin: 2.5px;flex-shrink: 0;justify-self: center;transition: all 0.15s;overflow: hidden;background: transparent;z-index: 1} .pcr-app .pcr-swatches > button::before {position: absolute;content: '';top: 0;left: 0;width: 100%;height: 100%;background: url('data:image/svg+xml;utf8, ');background-size: 6px;border-radius: .15em;z-index: -1} .pcr-app .pcr-swatches > button::after {content: '';position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: var(--pcr-color);border: 1px solid rgba(0, 0, 0, 0.05);border-radius: 0.15em;box-sizing: border-box} .pcr-app .pcr-swatches > button:hover {filter: brightness(1.05)} .pcr-app .pcr-swatches > button:not(.pcr-active) {box-shadow: none} .pcr-app .pcr-interaction {display: flex;flex-wrap: wrap;align-items: center;margin: 0 -0.2em 0 -0.2em} .pcr-app .pcr-interaction > * {margin: 0 0.2em} .pcr-app .pcr-interaction input {letter-spacing: 0.07em;font-size: 0.75em;text-align: center;cursor: pointer;color: #75797e;background: #f1f3f4;border-radius: .15em;transition: all 0.15s;padding: 0.45em 0.5em;margin-top: 0.75em} .pcr-app .pcr-interaction input:hover {filter: brightness(0.975)} .pcr-app .pcr-interaction input:focus {box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(66, 133, 244, 0.75)} .pcr-app .pcr-interaction .pcr-result {color: #75797e;text-align: left;flex: 1 1 8em;min-width: 8em;transition: all 0.2s;border-radius: .15em;background: #f1f3f4;cursor: text} .pcr-app .pcr-interaction .pcr-result::-moz-selection {background: #4285f4;color: #fff} .pcr-app .pcr-interaction .pcr-result::selection {background: #4285f4;color: #fff} .pcr-app .pcr-interaction .pcr-type.active {color: #fff;background: #4285f4} .pcr-app .pcr-interaction .pcr-save, .pcr-app .pcr-interaction .pcr-cancel, .pcr-app .pcr-interaction .pcr-clear {color: #fff;width: auto} .pcr-app .pcr-interaction .pcr-save, .pcr-app .pcr-interaction .pcr-cancel, .pcr-app .pcr-interaction .pcr-clear {color: #fff} .pcr-app .pcr-interaction .pcr-save:hover, .pcr-app .pcr-interaction .pcr-cancel:hover, .pcr-app .pcr-interaction .pcr-clear:hover {filter: brightness(0.925)} .pcr-app .pcr-interaction .pcr-save {background: #4285f4} .pcr-app .pcr-interaction .pcr-clear, .pcr-app .pcr-interaction .pcr-cancel {background: #f44250} .pcr-app .pcr-interaction .pcr-clear:focus, .pcr-app .pcr-interaction .pcr-cancel:focus {box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(244, 66, 80, 0.75)} .pcr-app .pcr-selection .pcr-picker {position: absolute;height: 18px;width: 18px;border: 2px solid #fff;border-radius: 100%;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none} .pcr-app .pcr-selection .pcr-color-palette, .pcr-app .pcr-selection .pcr-color-chooser, .pcr-app .pcr-selection .pcr-color-opacity {position: relative;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;display: flex;flex-direction: column;cursor: grab;cursor: -webkit-grab} .pcr-app .pcr-selection .pcr-color-palette:active, .pcr-app .pcr-selection .pcr-color-chooser:active, .pcr-app .pcr-selection .pcr-color-opacity:active {cursor: grabbing;cursor: -webkit-grabbing} .pcr-app[data-theme='nano'] {width: 14.25em;max-width: 95vw} .pcr-app[data-theme='nano'] .pcr-swatches {margin-top: .6em;padding: 0 .6em} .pcr-app[data-theme='nano'] .pcr-interaction {padding: 0 .6em .6em .6em} .pcr-app[data-theme='nano'] .pcr-selection {display: grid;grid-gap: .6em;grid-template-columns: 1fr 4fr;grid-template-rows: 5fr auto auto;align-items: center;height: 10.5em;width: 100%;align-self: flex-start} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview {grid-area: 2 / 1 / 4 / 1;height: 100%;width: 100%;display: flex;flex-direction: row;justify-content: center;margin-left: .6em} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview .pcr-last-color {display: none} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview .pcr-current-color {position: relative;background: var(--pcr-color);width: 2em;height: 2em;border-radius: 50em;overflow: hidden} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview .pcr-current-color::before {position: absolute;content: '';top: 0;left: 0;width: 100%;height: 100%;background: url('data:image/svg+xml;utf8, ');background-size: .5em;border-radius: .15em;z-index: -1} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-palette {grid-area: 1 / 1 / 2 / 3;width: 100%;height: 100%;z-index: 1} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-palette .pcr-palette {border-radius: .15em;width: 100%;height: 100%} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-palette .pcr-palette::before {position: absolute;content: '';top: 0;left: 0;width: 100%;height: 100%;background: url('data:image/svg+xml;utf8, ');background-size: .5em;border-radius: .15em;z-index: -1} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser {grid-area: 2 / 2 / 2 / 2} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity {grid-area: 3 / 2 / 3 / 2} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser, .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity {height: 0.5em;margin: 0 .6em} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser .pcr-picker, .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity .pcr-picker {top: 50%;transform: translateY(-50%)} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser .pcr-slider, .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity .pcr-slider {flex-grow: 1;border-radius: 50em} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser .pcr-slider {background: linear-gradient(to right, red, #ff0, lime, cyan, blue, #f0f, red)} .pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity .pcr-slider {background: linear-gradient(to right, transparent, black), url('data:image/svg+xml;utf8, ');background-size: 100%, 0.25em}
-.pcr-app .pcr-swatches > button {
- padding: 0;
-}
-
-/*! Codeblock Styler PDF Styling */
+/* src/css/pdfExport.css */
div.print {
- --line-wrapping: pre-wrap !important;
+ --line-wrapping: pre-wrap !important;
}
.code-styler div.print pre.code-styler-pre code {
- max-height: unset;
+ max-height: unset;
}
.code-styler div.print pre.code-styler-pre.code-styler-collapsed code {
- display: none !important;
+ display: none !important;
}
-/*! Plugin Compatibility */
-/** Execute Code Plugin */
+/* src/css/pickr.css */
+.pickr {
+ position: relative;
+ overflow: visible;
+ transform: translateY(0);
+}
+.pickr * {
+ box-sizing: border-box;
+ outline: none;
+ border: none;
+ appearance: none;
+ -webkit-appearance: none;
+}
+.pickr .pcr-button {
+ position: relative;
+ height: 2em;
+ width: 2em;
+ padding: 0.5em;
+ cursor: pointer;
+ font-family:
+ -apple-system,
+ BlinkMacSystemFont,
+ "Segoe UI",
+ "Roboto",
+ "Helvetica Neue",
+ Arial,
+ sans-serif;
+ border-radius: .15em;
+ background: url('data:image/svg+xml;utf8, ') no-repeat center;
+ background-size: 0;
+ transition: all 0.3s;
+}
+.pickr .pcr-button::before {
+ position: absolute;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: url('data:image/svg+xml;utf8, ');
+ background-size: .5em;
+ border-radius: .15em;
+ z-index: -1;
+}
+.pickr .pcr-button::before {
+ z-index: initial;
+}
+.pickr .pcr-button::after {
+ position: absolute;
+ content: "";
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ transition: background 0.3s;
+ background: var(--pcr-color);
+ border-radius: .15em;
+}
+.pickr .pcr-button.clear {
+ background-size: 70%;
+}
+.pickr .pcr-button.clear::before {
+ opacity: 0;
+}
+.pickr .pcr-button.clear:focus {
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color);
+}
+.pickr .pcr-button.disabled {
+ cursor: not-allowed;
+}
+.pickr *,
+.pcr-app * {
+ box-sizing: border-box;
+ outline: none;
+ border: none;
+ appearance: none;
+ -webkit-appearance: none;
+}
+.pickr input:focus,
+.pickr input.pcr-active,
+.pickr button:focus,
+.pickr button.pcr-active,
+.pcr-app input:focus,
+.pcr-app input.pcr-active,
+.pcr-app button:focus,
+.pcr-app button.pcr-active {
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color);
+}
+.pickr .pcr-palette,
+.pickr .pcr-slider,
+.pcr-app .pcr-palette,
+.pcr-app .pcr-slider {
+ transition: box-shadow 0.3s;
+}
+.pickr .pcr-palette:focus,
+.pickr .pcr-slider:focus,
+.pcr-app .pcr-palette:focus,
+.pcr-app .pcr-slider:focus {
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(0, 0, 0, 0.25);
+}
+.pcr-app {
+ position: fixed;
+ display: flex;
+ flex-direction: column;
+ z-index: 10000;
+ border-radius: 0.1em;
+ background: #fff;
+ opacity: 0;
+ visibility: hidden;
+ transition: opacity 0.3s, visibility 0s 0.3s;
+ font-family:
+ -apple-system,
+ BlinkMacSystemFont,
+ "Segoe UI",
+ "Roboto",
+ "Helvetica Neue",
+ Arial,
+ sans-serif;
+ box-shadow: 0 0.15em 1.5em 0 rgba(0, 0, 0, 0.1), 0 0 1em 0 rgba(0, 0, 0, 0.03);
+ left: 0;
+ top: 0;
+}
+.pcr-app.visible {
+ transition: opacity 0.3s;
+ visibility: visible;
+ opacity: 1;
+}
+.pcr-app .pcr-swatches {
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: 0.75em;
+}
+.pcr-app .pcr-swatches.pcr-last {
+ margin: 0;
+}
+@supports (display: grid) {
+ .pcr-app .pcr-swatches {
+ display: grid;
+ align-items: center;
+ grid-template-columns: repeat(auto-fit, 1.75em);
+ }
+}
+.pcr-app .pcr-swatches > button {
+ font-size: 1em;
+ position: relative;
+ width: calc(1.75em - 10px);
+ height: calc(1.75em - 10px);
+ border-radius: 0.15em;
+ cursor: pointer;
+ margin: 2.5px;
+ flex-shrink: 0;
+ justify-self: center;
+ transition: all 0.15s;
+ overflow: hidden;
+ background: transparent;
+ z-index: 1;
+}
+.pcr-app .pcr-swatches > button::before {
+ position: absolute;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: url('data:image/svg+xml;utf8, ');
+ background-size: 6px;
+ border-radius: .15em;
+ z-index: -1;
+}
+.pcr-app .pcr-swatches > button::after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: var(--pcr-color);
+ border: 1px solid rgba(0, 0, 0, 0.05);
+ border-radius: 0.15em;
+ box-sizing: border-box;
+}
+.pcr-app .pcr-swatches > button:hover {
+ filter: brightness(1.05);
+}
+.pcr-app .pcr-swatches > button:not(.pcr-active) {
+ box-shadow: none;
+}
+.pcr-app .pcr-interaction {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ margin: 0 -0.2em 0 -0.2em;
+}
+.pcr-app .pcr-interaction > * {
+ margin: 0 0.2em;
+}
+.pcr-app .pcr-interaction input {
+ letter-spacing: 0.07em;
+ font-size: 0.75em;
+ text-align: center;
+ cursor: pointer;
+ color: #75797e;
+ background: #f1f3f4;
+ border-radius: .15em;
+ transition: all 0.15s;
+ padding: 0.45em 0.5em;
+ margin-top: 0.75em;
+}
+.pcr-app .pcr-interaction input:hover {
+ filter: brightness(0.975);
+}
+.pcr-app .pcr-interaction input:focus {
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(66, 133, 244, 0.75);
+}
+.pcr-app .pcr-interaction .pcr-result {
+ color: #75797e;
+ text-align: left;
+ flex: 1 1 8em;
+ min-width: 8em;
+ transition: all 0.2s;
+ border-radius: .15em;
+ background: #f1f3f4;
+ cursor: text;
+}
+.pcr-app .pcr-interaction .pcr-result::-moz-selection {
+ background: #4285f4;
+ color: #fff;
+}
+.pcr-app .pcr-interaction .pcr-result::selection {
+ background: #4285f4;
+ color: #fff;
+}
+.pcr-app .pcr-interaction .pcr-type.active {
+ color: #fff;
+ background: #4285f4;
+}
+.pcr-app .pcr-interaction .pcr-save,
+.pcr-app .pcr-interaction .pcr-cancel,
+.pcr-app .pcr-interaction .pcr-clear {
+ color: #fff;
+ width: auto;
+}
+.pcr-app .pcr-interaction .pcr-save,
+.pcr-app .pcr-interaction .pcr-cancel,
+.pcr-app .pcr-interaction .pcr-clear {
+ color: #fff;
+}
+.pcr-app .pcr-interaction .pcr-save:hover,
+.pcr-app .pcr-interaction .pcr-cancel:hover,
+.pcr-app .pcr-interaction .pcr-clear:hover {
+ filter: brightness(0.925);
+}
+.pcr-app .pcr-interaction .pcr-save {
+ background: #4285f4;
+}
+.pcr-app .pcr-interaction .pcr-clear,
+.pcr-app .pcr-interaction .pcr-cancel {
+ background: #f44250;
+}
+.pcr-app .pcr-interaction .pcr-clear:focus,
+.pcr-app .pcr-interaction .pcr-cancel:focus {
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(244, 66, 80, 0.75);
+}
+.pcr-app .pcr-selection .pcr-picker {
+ position: absolute;
+ height: 18px;
+ width: 18px;
+ border: 2px solid #fff;
+ border-radius: 100%;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.pcr-app .pcr-selection .pcr-color-palette,
+.pcr-app .pcr-selection .pcr-color-chooser,
+.pcr-app .pcr-selection .pcr-color-opacity {
+ position: relative;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ display: flex;
+ flex-direction: column;
+ cursor: grab;
+ cursor: -webkit-grab;
+}
+.pcr-app .pcr-selection .pcr-color-palette:active,
+.pcr-app .pcr-selection .pcr-color-chooser:active,
+.pcr-app .pcr-selection .pcr-color-opacity:active {
+ cursor: grabbing;
+ cursor: -webkit-grabbing;
+}
+.pcr-app[data-theme=nano] {
+ width: 14.25em;
+ max-width: 95vw;
+}
+.pcr-app[data-theme=nano] .pcr-swatches {
+ margin-top: .6em;
+ padding: 0 .6em;
+}
+.pcr-app[data-theme=nano] .pcr-interaction {
+ padding: 0 .6em .6em .6em;
+}
+.pcr-app[data-theme=nano] .pcr-selection {
+ display: grid;
+ grid-gap: .6em;
+ grid-template-columns: 1fr 4fr;
+ grid-template-rows: 5fr auto auto;
+ align-items: center;
+ height: 10.5em;
+ width: 100%;
+ align-self: flex-start;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview {
+ grid-area: 2 / 1 / 4 / 1;
+ height: 100%;
+ width: 100%;
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ margin-left: .6em;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview .pcr-last-color {
+ display: none;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview .pcr-current-color {
+ position: relative;
+ background: var(--pcr-color);
+ width: 2em;
+ height: 2em;
+ border-radius: 50em;
+ overflow: hidden;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview .pcr-current-color::before {
+ position: absolute;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: url('data:image/svg+xml;utf8, ');
+ background-size: .5em;
+ border-radius: .15em;
+ z-index: -1;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-palette {
+ grid-area: 1 / 1 / 2 / 3;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-palette .pcr-palette {
+ border-radius: .15em;
+ width: 100%;
+ height: 100%;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-palette .pcr-palette::before {
+ position: absolute;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: url('data:image/svg+xml;utf8, ');
+ background-size: .5em;
+ border-radius: .15em;
+ z-index: -1;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser {
+ grid-area: 2 / 2 / 2 / 2;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity {
+ grid-area: 3 / 2 / 3 / 2;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser,
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity {
+ height: 0.5em;
+ margin: 0 .6em;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser .pcr-picker,
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity .pcr-picker {
+ top: 50%;
+ transform: translateY(-50%);
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser .pcr-slider,
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity .pcr-slider {
+ flex-grow: 1;
+ border-radius: 50em;
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser .pcr-slider {
+ background: linear-gradient(to right, red, #ff0, lime, cyan, blue, #f0f, red);
+}
+.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity .pcr-slider {
+ background: linear-gradient(to right, transparent, black), url('data:image/svg+xml;utf8, ');
+ background-size: 100%, 0.25em;
+}
+.pcr-app .pcr-swatches > button {
+ padding: 0;
+}
+
+/* src/css/pluginCompatibility.css */
pre.code-styler-pre code ~ code.language-output {
- display: block;
- margin-bottom: 0;
- padding-bottom: calc(2.5 * var(--code-padding)) !important;
- padding-left: calc(var(--line-number-gutter-padding)) !important;
- border-top: var(--header-separator-width) solid var(--code-styler-header-separator-colour);
+ display: block;
+ margin-bottom: 0;
+ padding-bottom: calc(2.5 * var(--code-padding)) !important;
+ padding-left: calc(var(--line-number-gutter-padding)) !important;
+ border-top: var(--header-separator-width) solid var(--code-styler-header-separator-colour);
}
pre.code-styler-pre.code-styler-collapsed code ~ code.language-output {
- border-top-color: transparent;
- border-top-width: 0;
+ border-top-color: transparent;
+ border-top-width: 0;
}
pre.code-styler-pre:hover code ~ code.language-output {
- margin-bottom: 0;
+ margin-bottom: 0;
}
pre.code-styler-pre code ~ code.language-output input.interactive-stdin {
- color: var(--text-normal);
- background-color: var(--code-styler-codeblock-background-colour);
- padding: 2px 8px;
- border-color: var(--code-comment);
- border-style: solid;
- border-radius: 5px;
- border-width: 1px;
+ color: var(--text-normal);
+ background-color: var(--code-styler-codeblock-background-colour);
+ padding: 2px 8px;
+ border-color: var(--code-comment);
+ border-style: solid;
+ border-radius: 5px;
+ border-width: 1px;
}
pre.code-styler-pre code ~ code.language-output hr {
- display: none;
+ display: none;
}
pre.code-styler-pre button.run-code-button {
- --copy-code-header-right-margin: 12px;
- --dent-difference: 24px;
- height: 14px;
- margin-bottom: 6px !important;
+ --copy-code-header-right-margin: 12px;
+ --dent-difference: 24px;
+ height: 14px;
+ margin-bottom: 6px !important;
}
pre.code-styler-pre.code-styler-collapsed button.run-code-button {
- top: 500px;
+ top: 500px;
}
pre.code-styler-pre button.run-code-button::before {
- content: "\200b";
- display: inline-block;
- width: 14px;
- height: 14px;
- padding-right: 4px;
- background-color: var(--code-styler-button-colour);
- -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
- -webkit-mask-repeat: no-repeat;
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
- mask-repeat: no-repeat;
- vertical-align: 0px;
+ content: "\200b";
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ padding-right: 4px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28Z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ vertical-align: 0px;
}
pre.code-styler-pre button.clear-button-disabled,
pre.code-styler-pre button.run-button-disabled {
- display: none !important;
+ display: none !important;
}
pre.code-styler-pre button.clear-button {
- height: 14px;
- margin-bottom: 6px !important;
- margin-left: calc(var(--language-border-width) + 12px);
- will-change: margin-right, clip-path;
- clip-path: var(--polygon-in);
+ height: 14px;
+ margin-bottom: 6px !important;
+ margin-left: calc(var(--language-border-width) + 12px);
+ will-change: margin-right, clip-path;
+ clip-path: var(--polygon-in);
}
pre.code-styler-pre button.clear-button::before {
- content: "\200b";
- display: inline-block;
- width: 14px;
- height: 14px;
- padding-right: 4px;
- background-color: var(--code-styler-button-colour);
- -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
- -webkit-mask-repeat: no-repeat;
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
- mask-repeat: no-repeat;
- vertical-align: 0px;
+ content: "\200b";
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ padding-right: 4px;
+ background-color: var(--code-styler-button-colour);
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ -webkit-mask-repeat: no-repeat;
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z' data-name='<Transparent Rectangle>'/%3E%3C/svg%3E");
+ mask-repeat: no-repeat;
+ vertical-align: 0px;
}
pre.code-styler-pre button.clear-button:not(:active) {
- animation: reverse-indent var(--duration-button);
+ animation: reverse-indent var(--duration-button);
}
-pre.code-styler-pre button.clear-button:hover{
- background-color: transparent;
- animation: reverse-outdent var(--duration-button);
- margin-right: var(--copy-code-header-right-margin);
- clip-path: var(--polygon-out);
+pre.code-styler-pre button.clear-button:hover {
+ background-color: transparent;
+ animation: reverse-outdent var(--duration-button);
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
}
pre.code-styler-pre button.clear-button:active {
- scale: 0.95;
- transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+ scale: 0.95;
+ transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
}
.code-styler-pre-parent.has-run-code-button .load-state-indicator {
- color: none;
- background: none;
- z-index: 10;
+ color: none;
+ background: none;
+ z-index: 10;
}
.code-styler-pre-parent.has-run-code-button .load-state-indicator::before {
- box-shadow: none;
+ box-shadow: none;
}
.code-styler-pre-parent.has-run-code-button .load-state-indicator svg {
- color: var(--code-styler-button-colour);
+ color: var(--code-styler-button-colour);
}
.code-styler-pre-parent.has-run-code-button .load-state-indicator svg:hover {
- color: var(--code-styler-button-active-colour);
+ color: var(--code-styler-button-active-colour);
}
.code-styler-pre-parent.has-run-code-button .load-state-indicator.visible {
- transform: translateX(0);
+ transform: translateX(0);
}
-
-/** Embed Code Plugin */
.block-language-preview pre.code-styler-pre code {
- white-space: unset;
+ white-space: unset;
}
pre.code-styler-pre span.code-block-line_num-wrap,
pre.code-styler-pre div.code-block-highlight-wrap {
- display: none;
+ display: none;
}
.markdown-source-view.mod-cm6 .cm-embed-block .code-styler-pre-parent + .edit-block-button::after {
- content: 'Edit Block';
- font-size: var(--font-ui-smaller);
- padding-left: 4px;
+ content: "Edit Block";
+ font-size: var(--font-ui-smaller);
+ padding-left: 4px;
}
.markdown-source-view.mod-cm6 .cm-embed-block:not(:hover) .code-styler-pre-parent + .edit-block-button {
- visibility: hidden;
- opacity: 0
+ visibility: hidden;
+ opacity: 0;
}
.markdown-source-view.mod-cm6 .cm-embed-block .code-styler-pre-parent + .edit-block-button {
- --copy-code-header-right-margin: calc(2.2 * var(--header-button-spacing));
- --dent-difference: 0px;
- --polygon-in: polygon(0 0, 18px 0, 18px 36px, 0 36px);
- transition: visibility var(--duration-button), opacity var(--duration-button);
- visibility: visible;
- opacity: 1;
- z-index: 10;
- transform: translateY(-50%);
- top: max(calc(0.5 * var(--container-height) * 1),calc(0.5 * var(--container-min-height) * 1));
- margin: 0;
- margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
- will-change: margin-right, clip-path;
- clip-path: var(--polygon-in);
- padding: 0;
+ --copy-code-header-right-margin: calc(2.2 * var(--header-button-spacing));
+ --dent-difference: 0px;
+ --polygon-in: polygon(0 0, 18px 0, 18px 36px, 0 36px);
+ transition: visibility var(--duration-button), opacity var(--duration-button);
+ visibility: visible;
+ opacity: 1;
+ z-index: 10;
+ transform: translateY(-50%);
+ top: max(calc(0.5 * var(--container-height) * 1), calc(0.5 * var(--container-min-height) * 1));
+ margin: 0;
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ will-change: margin-right, clip-path;
+ clip-path: var(--polygon-in);
+ padding: 0;
}
-body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .cm-embed-block .code-styler-pre-parent:has( pre.code-styler-pre .code-styler-header-container) + .edit-block-button,
-body:not(.code-styler-show-langnames-always) .cm-embed-block .code-styler-pre-parent:not(:has( pre.code-styler-pre .code-styler-header-container-specific)):not(:has( pre.code-styler-pre .code-styler-header-container img.code-styler-icon)) + .edit-block-button,
-body .cm-embed-block .code-styler-pre-parent:has( pre.code-styler-pre:not([class*='language-']) .code-styler-header-container) + .edit-block-button { /*? Depending on header visibility */
- --copy-code-header-right-margin: 4px;
- top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal));
+body:not(.code-styler-show-langicons-always):not(.code-styler-show-langnames-always) .cm-embed-block .code-styler-pre-parent:has(pre.code-styler-pre .code-styler-header-container) + .edit-block-button,
+body:not(.code-styler-show-langnames-always) .cm-embed-block .code-styler-pre-parent:not(:has(pre.code-styler-pre .code-styler-header-container-specific)):not(:has(pre.code-styler-pre .code-styler-header-container img.code-styler-icon)) + .edit-block-button,
+body .cm-embed-block .code-styler-pre-parent:has(pre.code-styler-pre:not([class*="language-"]) .code-styler-header-container) + .edit-block-button {
+ --copy-code-header-right-margin: 4px;
+ top: calc(0.5 * var(--font-text-size) * 0.875 * var(--line-height-normal));
}
.markdown-source-view.mod-cm6 .cm-embed-block:hover .code-styler-pre-parent + .edit-block-button:hover {
- background: transparent;
- animation: reverse-outdent var(--duration-button);
- margin-right: var(--copy-code-header-right-margin);
- clip-path: var(--polygon-out);
+ background: transparent;
+ animation: reverse-outdent var(--duration-button);
+ margin-right: var(--copy-code-header-right-margin);
+ clip-path: var(--polygon-out);
}
.markdown-source-view.mod-cm6 .cm-embed-block:hover .code-styler-pre-parent + .edit-block-button:active {
- scale: 0.95;
- transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
+ scale: 0.95;
+ transition: scale var(--duration-button) cubic-bezier(0.4, 0.14, 0.3, 1);
}
-
-/** File Include Plugin */
div.block-language-include pre.code-styler-pre button.copy-code-button {
- margin: 0;
- margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
+ margin: 0;
+ margin-right: calc(var(--copy-code-header-right-margin) - var(--dent-difference));
}
div.block-language-include pre.code-styler-pre button.copy-code-button:hover {
- margin-right: var(--copy-code-header-right-margin);
+ margin-right: var(--copy-code-header-right-margin);
}
+
+/* src/styles.css */
+body {
+ --border-radius: 10px;
+ --gradient-background-colour: transparent;
+ --code-padding: 8px;
+ --container-height: calc(var(--language-icon-size) + 2 * var(--header-inner-vertical-padding) * var(--header-font-size));
+ --container-min-height: calc((var(--header-font-size) + 2 * var(--header-inner-vertical-padding) * var(--header-font-size)) * var(--line-height-normal));
+ --language-border-colour: var(--code-styler-codeblock-background-colour);
+ --language-border-width: 0px;
+ --header-font-size: var(--code-size);
+ --header-padding: 0px;
+ --header-inner-vertical-padding: 0.3;
+ --header-spacing: 15px;
+ --header-button-spacing: 14px;
+ --header-separator-width: 2px;
+ --header-separator-width-padding: var(--header-separator-width);
+ --code-styler-header-border: none;
+ --collapsed-bottom-border: 0 solid transparent;
+ --language-icon-size: 28px;
+ --language-icon-filter: none;
+ --gradient-highlights-colour-stop: 100%;
+ --line-number-height-correction: 2px;
+ --line-number-gutter-padding: 16px;
+ --line-number-gutter-min-width: 32.67px;
+ --line-wrapping: pre-wrap;
+ --line-active-wrapping: var(--line-wrapping);
+ --code-styler-button-colour: var(--text-muted);
+ --code-styler-button-active-colour: white;
+ --duration-button: 240ms;
+ --dent-difference: 30px;
+ --polygon-in: polygon(0 0, 16px 0, 16px 36px, 0 36px);
+ --polygon-out: polygon(0 0, 100% 0, 100% 100%, 0 100%);
+ --copy-code-header-right-margin: calc(3 * var(--header-button-spacing));
+ --code-styler-inline-font-weight: 400;
+ --code-styler-inline-border-radius: 6px;
+ --code-styler-inline-padding-vertical: 5px;
+ --code-styler-inline-padding-horizontal: 5px;
+ --code-styler-inline-margin-horizontal: 0px;
+ --code-styler-inline-colour: var(--code-normal);
+ --code-styler-inline-colour-active: var(--code-normal);
+ --code-styler-inline-background-colour: var(--code-background);
+}
+.setting-item.code-styler-spaced .checkbox-container + .pickr {
+ padding-left: 10px;
+}
+.code-styler-donation {
+ width: 70%;
+ margin: 0 auto;
+ text-align: center;
+}
+.code-styler-setting-text-area textarea {
+ width: 400px;
+ height: 220px;
+}
+/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2Nzcy9jb2RlYmxvY2tzLmNzcyIsICJzcmMvY3NzL2lubGluZUNvZGUuY3NzIiwgInNyYy9jc3MvcGRmRXhwb3J0LmNzcyIsICJzcmMvY3NzL3BpY2tyLmNzcyIsICJzcmMvY3NzL3BsdWdpbkNvbXBhdGliaWxpdHkuY3NzIiwgInNyYy9zdHlsZXMuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiogUHJlIGVsZW1lbnRzICovXG4uY29kZS1zdHlsZXItcHJlLXBhcmVudHtcblx0bWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuXHRtaW4taGVpZ2h0OiB1bnNldDtcblx0cGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG5cdG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlW2NsYXNzKj0nbGFuZ3VhZ2UtJ10ge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXIpLCB2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCksIHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikgMTAwJSkgIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZSBjb2RlIHtcblx0ZGlzcGxheTogZ3JpZDtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW4tY29udGVudCBhdXRvO1xuXHRncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuXHR0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIHBhZGRpbmcgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSwgYm9yZGVyLXRvcCBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHRtYXgtaGVpZ2h0OiAwO1xuXHRvdmVyZmxvdy14OiBzY3JvbGw7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZSBjb2RlOm5vdCg6aGFzKCA+IGlucHV0W3N0eWxlKj1cImRpc3BsYXk6IGlubGluZTtcIl0pKTphY3RpdmUge1xuXHQtLWxpbmUtd3JhcHBpbmc6IHZhcigtLWxpbmUtYWN0aXZlLXdyYXBwaW5nKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItY29sbGFwc2VkIGNvZGUge1xuXHRwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmU6OmJlZm9yZSxcbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlOjphZnRlciB7XG5cdGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jayBwcmUuY29kZS1zdHlsZXItcHJlIHtcblx0bWFyZ2luOiAxZW0gMHB4O1xufVxuXG4vKiogRWRpdGluZyBNb2RlIEJvZHkgKi9cbi5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4ge1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcblx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wOiBub25lICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWVuZCB7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5naWNvbnMtYWx3YXlzKTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ25hbWVzLWFsd2F5cykgLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciArIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbixcbmJvZHk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcy1hbHdheXMpIC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6bm90KDpoYXMoIGltZy5jb2RlLXN0eWxlci1pY29uKSkgKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4sXG5ib2R5IC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6bm90KDpoYXMoW2NsYXNzKj0nY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy0nXSkpICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luLFxuYm9keSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChbY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ10pICsgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4sXG5ib2R5IC5tYXJrZG93bi1zb3VyY2UtdmlldyBbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZVwiXS5IeXBlck1ELWNvZGVibG9jay1iZWdpbjpudGgtb2YtdHlwZSgxKSB7IC8qPyBEZXBlbmRpbmcgb24gaGVhZGVyIHZpc2liaWxpdHkgKi9cblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcblx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXSB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXIpIHZhcigtLWdyYWRpZW50LWhpZ2hsaWdodHMtY29sb3VyLXN0b3ApLCB0cmFuc3BhcmVudCAxMDAlKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tc2l6ZS00LTQpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSwgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXIpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50IDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10ge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKTtcbn1cblxuLyoqIEhlYWRlciBzdHlsaW5nICovXG5ib2R5Om5vdChbY2xhc3MqPSdjb2RlLXN0eWxlci1zaG93LWxhbmdpY29ucyddKSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1zcGVjaWZpYyBkaXY6aGFzKD4gaW1nLmNvZGUtc3R5bGVyLWljb24pLFxuYm9keTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ2ljb25zLWFsd2F5cykgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIgZGl2Omhhcyg+IGltZy5jb2RlLXN0eWxlci1pY29uKSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5ib2R5Om5vdChbY2xhc3MqPSdjb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcyddKSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1zcGVjaWZpYyBbY2xhc3NePVwiY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZ1wiXSxcbmJvZHk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcy1hbHdheXMpIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIFtjbGFzc149XCJjb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnXCJdIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbmJvZHk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmdpY29ucy1hbHdheXMpOm5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMtYWx3YXlzKSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcixcbmJvZHk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcy1hbHdheXMpIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKCBpbWcuY29kZS1zdHlsZXItaWNvbikpIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuYm9keSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdChbY2xhc3MqPSdsYW5ndWFnZS0nXSksXG5ib2R5IHByZS5jb2RlLXN0eWxlci1wcmU6bm90KFtjbGFzcyo9J2xhbmd1YWdlLSddKSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbltjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0taGVhZGVyLWZvbnQtc2l6ZSk7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHRoZWlnaHQ6IHZhcigtLWNvbnRhaW5lci1oZWlnaHQpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCk7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1oZWFkZXItcGFkZGluZyk7XG5cdG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50OyAgXG5cdGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20gZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IFtjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXSB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYmFja2dyb3VuZC1jb2xvdXIpIDAlLHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG91cikgY2FsYygxMDAlIC0gdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkpLCB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItc2VwYXJhdG9yLWNvbG91cikgY2FsYygxMDAlIC0gdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkpLCB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItc2VwYXJhdG9yLWNvbG91cikgMTAwJSkgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSBib3R0b20vMTAwJSBib3JkZXItYm94IG5vLXJlcGVhdCx2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCk7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKTtcblx0Ym9yZGVyLXRvcDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1sZWZ0OiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0Ym9yZGVyLXJpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgW2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKTtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkgc29saWQgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiBbY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ106bm90KDpoYXMoKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4pKSB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYmFja2dyb3VuZC1jb2xvdXIpIDAlLHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG91cikgMTAwJSkgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSBib3R0b20vMTAwJSBib3JkZXItYm94IG5vLXJlcGVhdCx2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0taGVhZGVyLXBhZGRpbmcpO1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItYm90dG9tOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0tY29sbGFwc2VkLWJvdHRvbS1ib3JkZXIpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1jb2xsYXBzZWQgW2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddIHtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0tY29sbGFwc2VkLWJvdHRvbS1ib3JkZXIpO1xufVxuW2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddIFtjbGFzc149XCJjb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnXCJdIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0aGVpZ2h0OiAxMDAlO1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0cGFkZGluZy1yaWdodDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0cGFkZGluZy10b3A6IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSB2YXIoLS1ib3JkZXItcmFkaXVzKSAwcHggMHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLWJhY2tncm91bmQtY29sb3VyKTtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1jb2xvdXIpO1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWJvbGQsIG5vcm1hbCk7XG5cdGZvbnQtc3R5bGU6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1pdGFsaWMsIG5vcm1hbCk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dHJhbnNpdGlvbjogYm9yZGVyLXJhZGl1cyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBwYWRkaW5nIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IFtjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXTpub3QoOmhhcygrIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbikpIFtjbGFzc149XCJjb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnXCJdLFxucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1jb2xsYXBzZWQgW2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddIFtjbGFzc149XCJjb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnXCJdIHtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG4uY29kZS1zdHlsZXItaGVhZGVyLXRleHQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRwYWRkaW5nLWxlZnQ6IDBweDtcblx0cGFkZGluZy10b3A6IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXRleHQtY29sb3VyKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWJvbGQsIG5vcm1hbCk7XG5cdGZvbnQtc3R5bGU6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWl0YWxpYywgbm9ybWFsKTtcblx0dHJhbnNpdGlvbjogcGFkZGluZyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xufVxuYm9keTpub3QoW2NsYXNzKj0nY29kZS1zdHlsZXItc2hvdy1sYW5naWNvbnMnXSkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItc3BlY2lmaWMgW2NsYXNzXj1cImNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWdcIl0sXG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5naWNvbnMtYWx3YXlzKSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciBbY2xhc3NePVwiY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZ1wiXSxcbmJvZHkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItc3BlY2lmaWM6bm90KDpoYXMoIGRpdiA+IGltZy5jb2RlLXN0eWxlci1pY29uKSkgW2NsYXNzXj1cImNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWdcIl0geyAvKj8gRGVwZW5kaW5nIG9uIGhlYWRlciB2aXNpYmlsaXR5ICovXG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuYm9keTpub3QoW2NsYXNzKj0nY29kZS1zdHlsZXItc2hvdy1sYW5naWNvbnMnXSk6bm90KFtjbGFzcyo9J2NvZGUtc3R5bGVyLXNob3ctbGFuZ25hbWVzJ10pIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLXNwZWNpZmljIC5jb2RlLXN0eWxlci1oZWFkZXItdGV4dCxcbmJvZHk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmdpY29ucy1hbHdheXMpOm5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMpIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIC5jb2RlLXN0eWxlci1oZWFkZXItdGV4dCxcbmJvZHkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItc3BlY2lmaWM6bm90KDpoYXMoIFtjbGFzc149XCJjb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLVwiXSkpIC5jb2RlLXN0eWxlci1oZWFkZXItdGV4dCB7IC8qPyBEZXBlbmRpbmcgb24gaGVhZGVyIHZpc2liaWxpdHkgKi9cblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG59XG5kaXY6aGFzKD4gaW1nLmNvZGUtc3R5bGVyLWljb24pIHtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdHBhZGRpbmctdG9wOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctYm90dG9tOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xuXHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG5cdHRyYW5zaXRpb246IHBhZGRpbmcgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbi5jb2RlLXN0eWxlci1pY29uIHtcblx0d2lkdGg6IHZhcigtLWxhbmd1YWdlLWljb24tc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tbGFuZ3VhZ2UtaWNvbi1zaXplKTtcblx0ZmlsdGVyOiB2YXIoLS1sYW5ndWFnZS1pY29uLWZpbHRlcik7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyoqIExpbmVzICovXG5wcmUuY29kZS1zdHlsZXItcHJlIFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQnXSA+IC5jb2RlLXN0eWxlci1saW5lLXRleHQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWdyYWRpZW50LWJhY2tncm91bmQtY29sb3VyKSAwJSB2YXIoLS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSAxMDAlKTtcbn1cbi5jb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkIHtcblx0LS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1zdHlsZXItZGVmYXVsdC1oaWdobGlnaHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodCAuY20tYWN0aXZlLFxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1lZGl0b3IgLmNtLWFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tY29kZS1zdHlsZXItYWN0aXZlLWVkaXRvci1saW5lLWNvbG91ciksIHZhcigtLWdyYWRpZW50LWhpZ2hsaWdodHMtY29sb3VyLXN0b3ApLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLmNtLWFjdGl2ZSxcbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtY29kZWJsb2NrIC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2tbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZVwiXS5jbS1hY3RpdmUge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWNvZGUtc3R5bGVyLWFjdGl2ZS1jb2RlYmxvY2stbGluZS1jb2xvdXIpLCB2YXIoLS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSkgIWltcG9ydGFudDtcbn1cblxuLyoqIExpbmUgbnVtYmVycyAqL1xuLmNvZGUtc3R5bGVyOm5vdCguY29kZS1zdHlsZXItc2hvdy1saW5lLW51bWJlcnMpIC5jb2RlLXN0eWxlci1saW5lLW51bWJlcixcbi5jb2RlLXN0eWxlci1saW5lLW51bWJlci1oaWRlIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgPiBjb2RlID4gZGl2OmZpcnN0LWNoaWxkID4gW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSB7IC8qPyBNYWludGFpbiBndXR0ZXIgY29sb3VyIHdoZW4gcGFkZGVkICovXG5cdGJveC1zaGFkb3c6IDBweCBjYWxjKC0xICogdmFyKC0tY29kZS1wYWRkaW5nKSkgdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcblx0dHJhbnNpdGlvbjogYm94LXNoYWRvdyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1jb2xsYXBzZWQgPiBjb2RlID4gZGl2OmZpcnN0LWNoaWxkID4gW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSB7IC8qPyBNYWludGFpbiBndXR0ZXIgY29sb3VyIHdoZW4gcGFkZGVkICovXG5cdGJveC1zaGFkb3c6IDBweCAwcHggdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgPiBjb2RlID4gZGl2Omxhc3QtY2hpbGQgPiBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHsgLyo/IE1haW50YWluIGd1dHRlciBjb2xvdXIgd2hlbiBwYWRkZWQgKi9cblx0Ym94LXNoYWRvdzogMHB4IHZhcigtLWNvZGUtcGFkZGluZykgdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgPiBjb2RlID4gZGl2Om9ubHktY2hpbGQgPiBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHsgLyo/IE1haW50YWluIGd1dHRlciBjb2xvdXIgd2hlbiBwYWRkZWQgKi9cblx0Ym94LXNoYWRvdzogMHB4IGNhbGMoLTEgKiB2YXIoLS1jb2RlLXBhZGRpbmcpKSB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpLDBweCB2YXIoLS1jb2RlLXBhZGRpbmcpIHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG5bY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHtcblx0cGFkZGluZy1sZWZ0OiBjYWxjKDRweCArIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkpO1xuXHRwYWRkaW5nLXJpZ2h0OiA4cHg7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRtaW4td2lkdGg6IHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuXHRmb250LXNpemU6IHZhcigtLWNvZGUtc2l6ZSk7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm9zcGFjZSk7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItdGV4dC1jb2xvdXIpO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2sgLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyLFxuLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jayAuY29kZS1zdHlsZXItbGluZS1udW1iZXItc3BlY2lmaWMge1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tbGluZS1udW1iZXItaGVpZ2h0LWNvcnJlY3Rpb24pO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGhlaWdodDogMTAwJTtcblx0bWluLXdpZHRoOiBjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpIC0gMTJweCk7XG5cdG92ZXJmbG93LXg6IGF1dG87XG5cdGRpcmVjdGlvbjogcnRsO1xuXHRsZWZ0OiAwO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jay1iZWdpbiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIsXG4ubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIC5jb2RlLXN0eWxlci1saW5lLW51bWJlci1zcGVjaWZpYyxcbi5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2stZW5kIC5jb2RlLXN0eWxlci1saW5lLW51bWJlcixcbi5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2stZW5kIC5jb2RlLXN0eWxlci1saW5lLW51bWJlci1zcGVjaWZpYyB7XG5cdHdpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGgpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0Z3JpZC1jb2x1bW46IDE7XG5cdHBvc2l0aW9uOiBzdGlja3k7XG5cdHRvcDogLTFweDtcblx0bGVmdDogMDtcblx0Ym9yZGVyLXRvcDogdmFyKC0tbGluZS1udW1iZXItaGVpZ2h0LWNvcnJlY3Rpb24pIHNvbGlkIHRyYW5zcGFyZW50O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBkaXY6bGFzdC1jaGlsZCA+IFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10ge1xuXHR3aWR0aDogdW5zZXQ7XG59XG4uY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCBwcmUuY29kZS1zdHlsZXItcHJlIFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkXCJdIFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LmNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHQgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLmNtLWFjdGl2ZSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddLFxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2suY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uY20tYWN0aXZlIFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10sXG4uY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCBbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZFwiXSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbn1cbi5jb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmUgLmNtLWFjdGl2ZSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlcidde1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWFjdGl2ZS10ZXh0LWNvbG91cik7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc2hvdy1saW5lLW51bWJlcnMgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jazpoYXMoLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyKSxcbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zaG93LWxpbmUtbnVtYmVycyAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrOmhhcyguY29kZS1zdHlsZXItbGluZS1udW1iZXItc3BlY2lmaWMpIHtcblx0cGFkZGluZy1sZWZ0OiBjYWxjKDEycHggKyB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpICsgdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoKSArIHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nKSkgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrW2NsYXNzKj0nY29kZS1zdHlsZXItbGluZSddOjpiZWZvcmUge1xuXHRjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qKiBMaW5lIHRleHQgKi9cbnByZS5jb2RlLXN0eWxlci1wcmUgPiBjb2RlID4gZGl2W2NsYXNzKj0nY29kZS1zdHlsZXItbGluZSddIHtcblx0ZGlzcGxheTogY29udGVudHMgIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWxpbmUtdGV4dCB7XG5cdGZsZXgtYmFzaXM6IDEwMCU7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXBhZGRpbmcpO1xuXHRncmlkLWNvbHVtbjogMjtcbn1cbi5IeXBlck1ELWNvZGVibG9jazpoYXMoPiAuY20td2lkZ2V0QnVmZmVyKSB7IC8qPyBQcmV2ZW50IExpbmUgV3JhcHMgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5IeXBlck1ELWNvZGVibG9jazpoYXMoPiAuY20td2lkZ2V0QnVmZmVyKSA+IC5jbS1obWQtY29kZWJsb2NrIHsgLyo/IFByZXZlbnQgTGluZSBXcmFwcyAqL1xuXHR3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzO1xufVxuXG4vKiogQnV0dG9ucyAqL1xuQGtleWZyYW1lcyBvdXRkZW50IHtcblx0ZnJvbSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKSAtIHZhcigtLWRlbnQtZGlmZmVyZW5jZSkpO1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdH1cblx0dG8ge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGluZGVudCB7XG5cdGZyb20ge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xuXHR9XG5cdHRvIHtcblx0XHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0fVxufVxuQGtleWZyYW1lcyByZXZlcnNlLW91dGRlbnQge1xuXHRmcm9tIHtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR9XG5cdHRvIHtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcblx0fVxufVxuQGtleWZyYW1lcyByZXZlcnNlLWluZGVudCB7XG5cdGZyb20ge1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xuXHR9XG5cdHRvIHtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR9XG59XG4ubWFya2Rvd24tcmVuZGVyZWQgcHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ge1xuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSwgb3BhY2l0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRvcGFjaXR5OiAxO1xuXHRkaXNwbGF5OiB1bnNldCAhaW1wb3J0YW50O1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaW50ZXJmYWNlKTtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXVpLXNtYWxsZXIpO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZTpub3QoLmNvZGUtc3R5bGVyLWNvbGxhcHNlZCk6bm90KDpob3ZlcikgYnV0dG9uLFxucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1jb2xsYXBzZWQgYnV0dG9uLFxucHJlLmNvZGUtc3R5bGVyLXByZTpub3QoLmNvZGUtc3R5bGVyLWNvbGxhcHNlZCk6bm90KDpob3ZlcikgW2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddOjphZnRlciB7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0b3BhY2l0eTogMFxufVxuW2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddOjphZnRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiAwO1xuXHRib3R0b206IDA7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xuXHRtYXJnaW46IGF1dG87XG5cdG1hcmdpbi1yaWdodDogdmFyKC0taGVhZGVyLWJ1dHRvbi1zcGFjaW5nKTtcblx0Y29udGVudDogXCJcXDIwMGJcIjtcblx0d2lkdGg6IDIwcHg7XG5cdGhlaWdodDogMjBweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMicgeG1sOnNwYWNlPSdwcmVzZXJ2ZSclM0UlM0NwYXRoIGQ9J00xNiAyMiA2IDEybDEuNC0xLjQgOC42IDguNiA4LjYtOC42TDI2IDEyeicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHQtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInIGZpbGw9J25vbmUnIHN0cm9rZT0nY3VycmVudENvbG9yJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgJTNFJTNDcG9seWxpbmUgcG9pbnRzPSc2IDkgMTIgMTUgMTggOScvJTNFJTNDL3N2ZyUzRVwiKTtcblx0bWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0b3BhY2l0eTogMTtcblx0c2NhbGU6IDAuODtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBlYXNlLW91dCwgdmlzaWJpbGl0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBvcGFjaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItY29sbGFwc2VkIFtjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXTo6YWZ0ZXIsXG4ubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IFtjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXTpub3QoOmhhcygrIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbikpOjphZnRlciB7XG5cdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG59XG5bY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ106aG92ZXI6OmFmdGVyIHtcblx0c2NhbGU6IDE7XG59XG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5naWNvbnMtYWx3YXlzKTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ25hbWVzLWFsd2F5cykgcHJlLmNvZGUtc3R5bGVyLXByZTpoYXMoIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyKSBidXR0b24uY29weS1jb2RlLWJ1dHRvbixcbmJvZHk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcy1hbHdheXMpIHByZS5jb2RlLXN0eWxlci1wcmU6bm90KDpoYXMoIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLXNwZWNpZmljKSk6bm90KDpoYXMoIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIGltZy5jb2RlLXN0eWxlci1pY29uKSkgYnV0dG9uLmNvcHktY29kZS1idXR0b24sXG5ib2R5IHByZS5jb2RlLXN0eWxlci1wcmU6bm90KFtjbGFzcyo9J2xhbmd1YWdlLSddKTpoYXMoLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIpIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uIHsgLyo/IERlcGVuZGluZyBvbiBoZWFkZXIgdmlzaWJpbGl0eSAqL1xuXHR0b3A6IGNhbGMoMC41ICogdmFyKC0tZm9udC10ZXh0LXNpemUpICogMC44NzUgKiB2YXIoLS1saW5lLWhlaWdodC1ub3JtYWwpKSAhaW1wb3J0YW50O1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiAxMnB4O1xufVxuYm9keTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ2ljb25zLWFsd2F5cyk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcy1hbHdheXMpIC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIgKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4sXG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMtYWx3YXlzKSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKCBpbWcuY29kZS1zdHlsZXItaWNvbikpICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luLFxuYm9keSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKFtjbGFzcyo9J2NvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctJ10pKSArIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbiB7IC8qPyBEZXBlbmRpbmcgb24gaGVhZGVyIHZpc2liaWxpdHkgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cbmJvZHk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmdpY29ucy1hbHdheXMpOm5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMtYWx3YXlzKSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIHNwYW4uY29kZS1ibG9jay1mbGFpcixcbmJvZHk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcy1hbHdheXMpIC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6bm90KDpoYXMoIGltZy5jb2RlLXN0eWxlci1pY29uKSkgKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4gc3Bhbi5jb2RlLWJsb2NrLWZsYWlyLFxuYm9keSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKFtjbGFzcyo9J2NvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctJ10pKSArIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbiBzcGFuLmNvZGUtYmxvY2stZmxhaXIgeyAvKj8gRGVwZW5kaW5nIG9uIGhlYWRlciB2aXNpYmlsaXR5ICovXG5cdHRvcDogY2FsYygwLjUgKiB2YXIoLS1mb250LXRleHQtc2l6ZSkgKiAwLjg3NSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpICFpbXBvcnRhbnQ7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IDEycHg7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHR0b3A6IG1heChjYWxjKDAuNSAqIHZhcigtLWNvbnRhaW5lci1oZWlnaHQpICogMSksY2FsYygwLjUgKiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCkgKiAxKSkgIWltcG9ydGFudDtcblx0Ym90dG9tOiB1bnNldCAhaW1wb3J0YW50O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbixcbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbiwgLyo/IEV4ZWN1dGUgQ29kZSBQbHVnaW4gQ29tcGF0aWJpbGl0eSAqL1xuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyIHtcblx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKSAtIHZhcigtLWRlbnQtZGlmZmVyZW5jZSkpO1xuXHR3aWxsLWNoYW5nZTogbWFyZ2luLXJpZ2h0LCBjbGlwLXBhdGg7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uOm5vdCg6YWN0aXZlKSxcbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbjpub3QoOmFjdGl2ZSksIC8qPyBFeGVjdXRlIENvZGUgUGx1Z2luIENvbXBhdGliaWxpdHkgKi9cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjpub3QoOmFjdGl2ZSkge1xuXHRhbmltYXRpb246IGluZGVudCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjpob3ZlcixcbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbjpob3ZlciwgLyo/IEV4ZWN1dGUgQ29kZSBQbHVnaW4gQ29tcGF0aWJpbGl0eSAqL1xuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOmhvdmVye1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0YW5pbWF0aW9uOiBvdXRkZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246YWN0aXZlLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uOmFjdGl2ZSwgLyo/IEV4ZWN1dGUgQ29kZSBQbHVnaW4gQ29tcGF0aWJpbGl0eSAqL1xuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOmFjdGl2ZSB7XG5cdHNjYWxlOiAwLjk1O1xuXHR0cmFuc2l0aW9uOiBzY2FsZSB2YXIoLS1kdXJhdGlvbi1idXR0b24pIGN1YmljLWJlemllcigwLjQsIDAuMTQsIDAuMywgMSk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uOjpiZWZvcmUsXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDE0cHg7XG5cdGhlaWdodDogMTRweDtcblx0cGFkZGluZy1yaWdodDogNHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcblx0LXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTI4IDEwdjE4SDEwVjEwaDE4bTAtMkgxMGEyIDIgMCAwIDAtMiAydjE4YTIgMiAwIDAgMCAyIDJoMThhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yWicvJTNFJTNDcGF0aCBkPSdNNCAxOEgyVjRhMiAyIDAgMCAxIDItMmgxNHYySDRaJy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J00yOCAxMHYxOEgxMFYxMGgxOG0wLTJIMTBhMiAyIDAgMCAwLTIgMnYxOGEyIDIgMCAwIDAgMiAyaDE4YTIgMiAwIDAgMCAyLTJWMTBhMiAyIDAgMCAwLTItMlonLyUzRSUzQ3BhdGggZD0nTTQgMThIMlY0YTIgMiAwIDAgMSAyLTJoMTR2Mkg0WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogMXB4O1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRmb250LXNpemU6IDA7XG5cdHRvcDogbWluKGNhbGMoLTAuNSAqIHZhcigtLWNvbnRhaW5lci1oZWlnaHQpICogMS4xIC0gdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkpLGNhbGMoLTAuNSAqIHZhcigtLWNvbnRhaW5lci1taW4taGVpZ2h0KSAqIDEuMSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSkgIWltcG9ydGFudDtcblx0cmlnaHQ6IDA7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsaW5lLWhlaWdodDogaW5pdGlhbCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpciA+ICoge1xuXHR3aWR0aDogMHB4O1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOjpiZWZvcmUge1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRvcGFjaXR5OiAxO1xuXHR2ZXJ0aWNhbC1hbGlnbjogLTFweDtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXVpLXNtYWxsZXIpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOjphZnRlciB7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdG9wYWNpdHk6IDE7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcblx0Y29udGVudDogJ0NvcHknO1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4uY29kZS1zdHlsZXItbGluZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuIiwgIi8qKiBJbmxpbmUgQ29kZSAqL1xuLmNvZGUtc3R5bGVyIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20taW5saW5lLWNvZGUsXG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXJlbmRlcmVkIDpub3QocHJlKSA+IGNvZGUge1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWZvbnQtd2VpZ2h0KTtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXIpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy12ZXJ0aWNhbCkgdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctaG9yaXpvbnRhbCkgIWltcG9ydGFudDtcblx0bWFyZ2luOiAwcHggdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLW1hcmdpbi1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xufVxuXG4uY29kZS1zdHlsZXIgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGUgeyAvKj8gU3RhbmRhbG9uZSBiYWNrdGlja3MgKi9cblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlKTtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG5cbi5jb2RlLXN0eWxlciAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWZvcm1hdHRpbmctY29kZTpoYXMoKyBzcGFuLmNtLWlubGluZS1jb2RlOm5vdCguY20tZm9ybWF0dGluZy1jb2RlKSkgey8qPyBGaXJzdCBiYWNrdGljayAqL1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWNvbG91ci1hY3RpdmUpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgMHB4IDBweCB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbCkgIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbn1cblxuLmNvZGUtc3R5bGVyIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20tZm9ybWF0dGluZy1jb2RlICsgc3Bhbi5jbS1pbmxpbmUtY29kZTpub3QoLmNtLWZvcm1hdHRpbmctY29kZSkgeyAvKj8gSW5uZXIgY29kZSB3aXRoIGJhY2t0aWNrcyAqL1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWNvbG91ci1hY3RpdmUpO1xuXHRib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbjogMHB4IDBweCAhaW1wb3J0YW50O1xufVxuXG4uY29kZS1zdHlsZXIgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1pbmxpbmUtY29kZTpub3QoLmNtLWZvcm1hdHRpbmctY29kZSkgKyBzcGFuLmNtLWZvcm1hdHRpbmctY29kZSB7Lyo/IExhc3QgYmFja3RpY2sgKi9cblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlKTtcblx0Ym9yZGVyLXJhZGl1czogMHB4IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzKSB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgMHB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXJlbmRlcmVkIDpub3QocHJlKSA+IGNvZGUgaW1nLmNvZGUtc3R5bGVyLWlubGluZS1pY29uIHtcblx0aGVpZ2h0OiBjYWxjKHZhcigtLWNvZGUtc2l6ZSkgKiAxLjIpO1xuXHRtYXJnaW4tYm90dG9tOiAycHg7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXJlbmRlcmVkIDpub3QocHJlKSA+IGNvZGUgLmNvZGUtc3R5bGVyLWlubGluZS10aXRsZSB7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtdGl0bGUtZm9udC13ZWlnaHQpO1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWNvbG9yKTtcbn1cbi5jb2RlLXN0eWxlciAubWFya2Rvd24tcmVuZGVyZWQgOm5vdChwcmUpID4gY29kZSAuY29kZS1zdHlsZXItaW5saW5lLXRpdGxlOjphZnRlciB7XG5cdGNvbnRlbnQ6ICdcXEZGNUMnO1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWNvbG9yKTtcbn1cbi5jb2RlLXN0eWxlciAubWFya2Rvd24tcmVuZGVyZWQgOm5vdChwcmUpID4gY29kZSBzcGFuOmhhcyggPiBpbWcuY29kZS1zdHlsZXItaW5saW5lLWljb24pIHtcblx0cGFkZGluZy1yaWdodDogOHB4O1xufVxuIiwgImRpdi5wcmludCB7XG5cdC0tbGluZS13cmFwcGluZzogcHJlLXdyYXAgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBkaXYucHJpbnQgcHJlLmNvZGUtc3R5bGVyLXByZSBjb2RlIHtcblx0bWF4LWhlaWdodDogdW5zZXQ7XG59XG4uY29kZS1zdHlsZXIgZGl2LnByaW50IHByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItY29sbGFwc2VkIGNvZGUge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCAiLyoqIFBpY2tyIDEuOC4yIE1JVCB8IGh0dHBzOi8vZ2l0aHViLmNvbS9TaW1vbndlcC9waWNrciAqL1xuLnBpY2tyIHtwb3NpdGlvbjogcmVsYXRpdmU7b3ZlcmZsb3c6IHZpc2libGU7dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApfSAgLnBpY2tyICoge2JveC1zaXppbmc6IGJvcmRlci1ib3g7b3V0bGluZTogbm9uZTtib3JkZXI6IG5vbmU7YXBwZWFyYW5jZTogbm9uZTstd2Via2l0LWFwcGVhcmFuY2U6IG5vbmV9ICAucGlja3IgLnBjci1idXR0b24ge3Bvc2l0aW9uOiByZWxhdGl2ZTtoZWlnaHQ6IDJlbTt3aWR0aDogMmVtO3BhZGRpbmc6IDAuNWVtO2N1cnNvcjogcG9pbnRlcjtmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWY7Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MCA1MFwiIHN0cm9rZT1cIiUyMzQyNDQ1QVwiIHN0cm9rZS13aWR0aD1cIjVweFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48cGF0aCBkPVwiTTQ1LDQ1TDUsNVwiPjwvcGF0aD48cGF0aCBkPVwiTTQ1LDVMNSw0NVwiPjwvcGF0aD48L3N2Zz4nKSBuby1yZXBlYXQgY2VudGVyO2JhY2tncm91bmQtc2l6ZTogMDt0cmFuc2l0aW9uOiBhbGwgMC4zc30gIC5waWNrciAucGNyLWJ1dHRvbjo6YmVmb3JlIHtwb3NpdGlvbjogYWJzb2x1dGU7Y29udGVudDogJyc7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMiAyXCI+PHBhdGggZmlsbD1cIndoaXRlXCIgZD1cIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXCIvPjxwYXRoIGZpbGw9XCJncmF5XCIgZD1cIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXCIvPjwvc3ZnPicpO2JhY2tncm91bmQtc2l6ZTogLjVlbTtib3JkZXItcmFkaXVzOiAuMTVlbTt6LWluZGV4OiAtMX0gIC5waWNrciAucGNyLWJ1dHRvbjo6YmVmb3JlIHt6LWluZGV4OiBpbml0aWFsfSAgLnBpY2tyIC5wY3ItYnV0dG9uOjphZnRlciB7cG9zaXRpb246IGFic29sdXRlO2NvbnRlbnQ6ICcnO3RvcDogMDtsZWZ0OiAwO2hlaWdodDogMTAwJTt3aWR0aDogMTAwJTt0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3M7YmFja2dyb3VuZDogdmFyKC0tcGNyLWNvbG9yKTtib3JkZXItcmFkaXVzOiAuMTVlbX0gIC5waWNrciAucGNyLWJ1dHRvbi5jbGVhciB7YmFja2dyb3VuZC1zaXplOiA3MCV9ICAucGlja3IgLnBjci1idXR0b24uY2xlYXI6OmJlZm9yZSB7b3BhY2l0eTogMH0gIC5waWNrciAucGNyLWJ1dHRvbi5jbGVhcjpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCB2YXIoLS1wY3ItY29sb3IpfSAgLnBpY2tyIC5wY3ItYnV0dG9uLmRpc2FibGVkIHtjdXJzb3I6IG5vdC1hbGxvd2VkfSAgLnBpY2tyICosIC5wY3ItYXBwICoge2JveC1zaXppbmc6IGJvcmRlci1ib3g7b3V0bGluZTogbm9uZTtib3JkZXI6IG5vbmU7YXBwZWFyYW5jZTogbm9uZTstd2Via2l0LWFwcGVhcmFuY2U6IG5vbmV9ICAucGlja3IgaW5wdXQ6Zm9jdXMsIC5waWNrciBpbnB1dC5wY3ItYWN0aXZlLCAucGlja3IgYnV0dG9uOmZvY3VzLCAucGlja3IgYnV0dG9uLnBjci1hY3RpdmUsIC5wY3ItYXBwIGlucHV0OmZvY3VzLCAucGNyLWFwcCBpbnB1dC5wY3ItYWN0aXZlLCAucGNyLWFwcCBidXR0b246Zm9jdXMsIC5wY3ItYXBwIGJ1dHRvbi5wY3ItYWN0aXZlIHtib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KSwgMCAwIDAgM3B4IHZhcigtLXBjci1jb2xvcil9ICAucGlja3IgLnBjci1wYWxldHRlLCAucGlja3IgLnBjci1zbGlkZXIsIC5wY3ItYXBwIC5wY3ItcGFsZXR0ZSwgLnBjci1hcHAgLnBjci1zbGlkZXIge3RyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zc30gIC5waWNrciAucGNyLXBhbGV0dGU6Zm9jdXMsIC5waWNrciAucGNyLXNsaWRlcjpmb2N1cywgLnBjci1hcHAgLnBjci1wYWxldHRlOmZvY3VzLCAucGNyLWFwcCAucGNyLXNsaWRlcjpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuMjUpfSAgLnBjci1hcHAge3Bvc2l0aW9uOiBmaXhlZDtkaXNwbGF5OiBmbGV4O2ZsZXgtZGlyZWN0aW9uOiBjb2x1bW47ei1pbmRleDogMTAwMDA7Ym9yZGVyLXJhZGl1czogMC4xZW07YmFja2dyb3VuZDogI2ZmZjtvcGFjaXR5OiAwO3Zpc2liaWxpdHk6IGhpZGRlbjt0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MsIHZpc2liaWxpdHkgMHMgMC4zcztmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWY7Ym94LXNoYWRvdzogMCAwLjE1ZW0gMS41ZW0gMCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMCAxZW0gMCByZ2JhKDAsIDAsIDAsIDAuMDMpO2xlZnQ6IDA7dG9wOiAwfSAgLnBjci1hcHAudmlzaWJsZSB7dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO3Zpc2liaWxpdHk6IHZpc2libGU7b3BhY2l0eTogMX0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMge2Rpc3BsYXk6IGZsZXg7ZmxleC13cmFwOiB3cmFwO21hcmdpbi10b3A6IDAuNzVlbX0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMucGNyLWxhc3Qge21hcmdpbjogMH0gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkgeyAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcyB7ZGlzcGxheTogZ3JpZDthbGlnbi1pdGVtczogY2VudGVyO2dyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCAxLjc1ZW0pfSAgfSAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcyA+IGJ1dHRvbiB7Zm9udC1zaXplOiAxZW07cG9zaXRpb246IHJlbGF0aXZlO3dpZHRoOiBjYWxjKDEuNzVlbSAtIDEwcHgpO2hlaWdodDogY2FsYygxLjc1ZW0gLSAxMHB4KTtib3JkZXItcmFkaXVzOiAwLjE1ZW07Y3Vyc29yOiBwb2ludGVyO21hcmdpbjogMi41cHg7ZmxleC1zaHJpbms6IDA7anVzdGlmeS1zZWxmOiBjZW50ZXI7dHJhbnNpdGlvbjogYWxsIDAuMTVzO292ZXJmbG93OiBoaWRkZW47YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7ei1pbmRleDogMX0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO2NvbnRlbnQ6ICcnO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IDZweDtib3JkZXItcmFkaXVzOiAuMTVlbTt6LWluZGV4OiAtMX0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246OmFmdGVyIHtjb250ZW50OiAnJztwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JhY2tncm91bmQ6IHZhcigtLXBjci1jb2xvcik7Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA1KTtib3JkZXItcmFkaXVzOiAwLjE1ZW07Ym94LXNpemluZzogYm9yZGVyLWJveH0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246aG92ZXIge2ZpbHRlcjogYnJpZ2h0bmVzcygxLjA1KX0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246bm90KC5wY3ItYWN0aXZlKSB7Ym94LXNoYWRvdzogbm9uZX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24ge2Rpc3BsYXk6IGZsZXg7ZmxleC13cmFwOiB3cmFwO2FsaWduLWl0ZW1zOiBjZW50ZXI7bWFyZ2luOiAwIC0wLjJlbSAwIC0wLjJlbX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gPiAqIHttYXJnaW46IDAgMC4yZW19ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0IHtsZXR0ZXItc3BhY2luZzogMC4wN2VtO2ZvbnQtc2l6ZTogMC43NWVtO3RleHQtYWxpZ246IGNlbnRlcjtjdXJzb3I6IHBvaW50ZXI7Y29sb3I6ICM3NTc5N2U7YmFja2dyb3VuZDogI2YxZjNmNDtib3JkZXItcmFkaXVzOiAuMTVlbTt0cmFuc2l0aW9uOiBhbGwgMC4xNXM7cGFkZGluZzogMC40NWVtIDAuNWVtO21hcmdpbi10b3A6IDAuNzVlbX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gaW5wdXQ6aG92ZXIge2ZpbHRlcjogYnJpZ2h0bmVzcygwLjk3NSl9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0OmZvY3VzIHtib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KSwgMCAwIDAgM3B4IHJnYmEoNjYsIDEzMywgMjQ0LCAwLjc1KX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1yZXN1bHQge2NvbG9yOiAjNzU3OTdlO3RleHQtYWxpZ246IGxlZnQ7ZmxleDogMSAxIDhlbTttaW4td2lkdGg6IDhlbTt0cmFuc2l0aW9uOiBhbGwgMC4ycztib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiAjZjFmM2Y0O2N1cnNvcjogdGV4dH0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1yZXN1bHQ6Oi1tb3otc2VsZWN0aW9uIHtiYWNrZ3JvdW5kOiAjNDI4NWY0O2NvbG9yOiAjZmZmfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXJlc3VsdDo6c2VsZWN0aW9uIHtiYWNrZ3JvdW5kOiAjNDI4NWY0O2NvbG9yOiAjZmZmfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXR5cGUuYWN0aXZlIHtjb2xvcjogI2ZmZjtiYWNrZ3JvdW5kOiAjNDI4NWY0fSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmUsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWwsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhciB7Y29sb3I6ICNmZmY7d2lkdGg6IGF1dG99ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZSwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbCwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNsZWFyIHtjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1zYXZlOmhvdmVyLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2VsOmhvdmVyLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXI6aG92ZXIge2ZpbHRlcjogYnJpZ2h0bmVzcygwLjkyNSl9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZSB7YmFja2dyb3VuZDogIzQyODVmNH0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhciwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbCB7YmFja2dyb3VuZDogI2Y0NDI1MH0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhcjpmb2N1cywgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbDpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCByZ2JhKDI0NCwgNjYsIDgwLCAwLjc1KX0gIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItcGlja2VyIHtwb3NpdGlvbjogYWJzb2x1dGU7aGVpZ2h0OiAxOHB4O3dpZHRoOiAxOHB4O2JvcmRlcjogMnB4IHNvbGlkICNmZmY7Ym9yZGVyLXJhZGl1czogMTAwJTstd2Via2l0LXVzZXItc2VsZWN0OiBub25lOy1tb3otdXNlci1zZWxlY3Q6IG5vbmU7LW1zLXVzZXItc2VsZWN0OiBub25lO3VzZXItc2VsZWN0OiBub25lfSAgLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIsIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSB7cG9zaXRpb246IHJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7LW1vei11c2VyLXNlbGVjdDogbm9uZTstbXMtdXNlci1zZWxlY3Q6IG5vbmU7dXNlci1zZWxlY3Q6IG5vbmU7ZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uO2N1cnNvcjogZ3JhYjtjdXJzb3I6IC13ZWJraXQtZ3JhYn0gIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZTphY3RpdmUsIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlcjphY3RpdmUsIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eTphY3RpdmUge2N1cnNvcjogZ3JhYmJpbmc7Y3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIHt3aWR0aDogMTQuMjVlbTttYXgtd2lkdGg6IDk1dnd9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zd2F0Y2hlcyB7bWFyZ2luLXRvcDogLjZlbTtwYWRkaW5nOiAwIC42ZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1pbnRlcmFjdGlvbiB7cGFkZGluZzogMCAuNmVtIC42ZW0gLjZlbX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiB7ZGlzcGxheTogZ3JpZDtncmlkLWdhcDogLjZlbTtncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA0ZnI7Z3JpZC10ZW1wbGF0ZS1yb3dzOiA1ZnIgYXV0byBhdXRvO2FsaWduLWl0ZW1zOiBjZW50ZXI7aGVpZ2h0OiAxMC41ZW07d2lkdGg6IDEwMCU7YWxpZ24tc2VsZjogZmxleC1zdGFydH0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXcge2dyaWQtYXJlYTogMiAvIDEgLyA0IC8gMTtoZWlnaHQ6IDEwMCU7d2lkdGg6IDEwMCU7ZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogcm93O2p1c3RpZnktY29udGVudDogY2VudGVyO21hcmdpbi1sZWZ0OiAuNmVtfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWxhc3QtY29sb3Ige2Rpc3BsYXk6IG5vbmV9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IC5wY3ItY3VycmVudC1jb2xvciB7cG9zaXRpb246IHJlbGF0aXZlO2JhY2tncm91bmQ6IHZhcigtLXBjci1jb2xvcik7d2lkdGg6IDJlbTtoZWlnaHQ6IDJlbTtib3JkZXItcmFkaXVzOiA1MGVtO292ZXJmbG93OiBoaWRkZW59ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IC5wY3ItY3VycmVudC1jb2xvcjo6YmVmb3JlIHtwb3NpdGlvbjogYWJzb2x1dGU7Y29udGVudDogJyc7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMiAyXCI+PHBhdGggZmlsbD1cIndoaXRlXCIgZD1cIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXCIvPjxwYXRoIGZpbGw9XCJncmF5XCIgZD1cIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXCIvPjwvc3ZnPicpO2JhY2tncm91bmQtc2l6ZTogLjVlbTtib3JkZXItcmFkaXVzOiAuMTVlbTt6LWluZGV4OiAtMX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGUge2dyaWQtYXJlYTogMSAvIDEgLyAyIC8gMzt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7ei1pbmRleDogMX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGUgLnBjci1wYWxldHRlIHtib3JkZXItcmFkaXVzOiAuMTVlbTt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCV9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIC5wY3ItcGFsZXR0ZTo6YmVmb3JlIHtwb3NpdGlvbjogYWJzb2x1dGU7Y29udGVudDogJyc7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMiAyXCI+PHBhdGggZmlsbD1cIndoaXRlXCIgZD1cIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXCIvPjxwYXRoIGZpbGw9XCJncmF5XCIgZD1cIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXCIvPjwvc3ZnPicpO2JhY2tncm91bmQtc2l6ZTogLjVlbTtib3JkZXItcmFkaXVzOiAuMTVlbTt6LWluZGV4OiAtMX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIge2dyaWQtYXJlYTogMiAvIDIgLyAyIC8gMn0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkge2dyaWQtYXJlYTogMyAvIDIgLyAzIC8gMn0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIsIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkge2hlaWdodDogMC41ZW07bWFyZ2luOiAwIC42ZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3ItcGlja2VyLCAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IC5wY3ItcGlja2VyIHt0b3A6IDUwJTt0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSl9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3Itc2xpZGVyLCAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IC5wY3Itc2xpZGVyIHtmbGV4LWdyb3c6IDE7Ym9yZGVyLXJhZGl1czogNTBlbX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIgLnBjci1zbGlkZXIge2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmVkLCAjZmYwLCBsaW1lLCBjeWFuLCBibHVlLCAjZjBmLCByZWQpfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSAucGNyLXNsaWRlciB7YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgYmxhY2spLCB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IDEwMCUsIDAuMjVlbX1cbi5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b24ge1xuXHRwYWRkaW5nOiAwO1xufVxuIiwgIi8qKiBFeGVjdXRlIENvZGUgUGx1Z2luICovXG5wcmUuY29kZS1zdHlsZXItcHJlIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRwYWRkaW5nLWJvdHRvbTogY2FsYygyLjUgKiB2YXIoLS1jb2RlLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wOiB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSBzb2xpZCB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItc2VwYXJhdG9yLWNvbG91cik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWNvbGxhcHNlZCBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQge1xuXHRib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXRvcC13aWR0aDogMDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmU6aG92ZXIgY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0IHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0IGlucHV0LmludGVyYWN0aXZlLXN0ZGluIHtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1ub3JtYWwpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvZGUtY29tbWVudCk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCBociB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b24ge1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiAxMnB4O1xuXHQtLWRlbnQtZGlmZmVyZW5jZTogMjRweDtcblx0aGVpZ2h0OiAxNHB4O1xuXHRtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItY29sbGFwc2VkIGJ1dHRvbi5ydW4tY29kZS1idXR0b24ge1xuXHR0b3A6IDUwMHB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uOjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcMjAwYlwiO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxNHB4O1xuXHRoZWlnaHQ6IDE0cHg7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J003IDI4YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS40ODItLjg3NmwyMCAxMWExIDEgMCAwIDEgMCAxLjc1MmwtMjAgMTFBMSAxIDAgMCAxIDcgMjhaJy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J003IDI4YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS40ODItLjg3NmwyMCAxMWExIDEgMCAwIDEgMCAxLjc1MmwtMjAgMTFBMSAxIDAgMCAxIDcgMjhaJy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHZlcnRpY2FsLWFsaWduOiAwcHg7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b24tZGlzYWJsZWQsXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tYnV0dG9uLWRpc2FibGVkIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uIHtcblx0aGVpZ2h0OiAxNHB4O1xuXHRtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcblx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSArIDEycHgpO1xuXHR3aWxsLWNoYW5nZTogbWFyZ2luLXJpZ2h0LCBjbGlwLXBhdGg7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b246OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDE0cHg7XG5cdGhlaWdodDogMTRweDtcblx0cGFkZGluZy1yaWdodDogNHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcblx0LXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTE2IDQgNiAxNGwxLjQxIDEuNDFMMTUgNy44M1YyOGgyVjcuODNsNy41OSA3LjU4TDI2IDE0IDE2IDR6Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J00xNiA0IDYgMTRsMS40MSAxLjQxTDE1IDcuODNWMjhoMlY3LjgzbDcuNTkgNy41OEwyNiAxNCAxNiA0eicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogMHB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uOm5vdCg6YWN0aXZlKSB7XG5cdGFuaW1hdGlvbjogcmV2ZXJzZS1pbmRlbnQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbjpob3Zlcntcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGFuaW1hdGlvbjogcmV2ZXJzZS1vdXRkZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbjphY3RpdmUge1xuXHRzY2FsZTogMC45NTtcblx0dHJhbnNpdGlvbjogc2NhbGUgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpO1xufVxuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQuaGFzLXJ1bi1jb2RlLWJ1dHRvbiAubG9hZC1zdGF0ZS1pbmRpY2F0b3Ige1xuXHRjb2xvcjogbm9uZTtcblx0YmFja2dyb3VuZDogbm9uZTtcblx0ei1pbmRleDogMTA7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvcjo6YmVmb3JlIHtcblx0Ym94LXNoYWRvdzogbm9uZTtcbn1cbi5jb2RlLXN0eWxlci1wcmUtcGFyZW50Lmhhcy1ydW4tY29kZS1idXR0b24gLmxvYWQtc3RhdGUtaW5kaWNhdG9yIHN2ZyB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcbn1cbi5jb2RlLXN0eWxlci1wcmUtcGFyZW50Lmhhcy1ydW4tY29kZS1idXR0b24gLmxvYWQtc3RhdGUtaW5kaWNhdG9yIHN2Zzpob3ZlciB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tYWN0aXZlLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvci52aXNpYmxlIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4vKiogRW1iZWQgQ29kZSBQbHVnaW4gKi9cbi5ibG9jay1sYW5ndWFnZS1wcmV2aWV3IHByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB7XG5cdHdoaXRlLXNwYWNlOiB1bnNldDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgc3Bhbi5jb2RlLWJsb2NrLWxpbmVfbnVtLXdyYXAsXG5wcmUuY29kZS1zdHlsZXItcHJlIGRpdi5jb2RlLWJsb2NrLWhpZ2hsaWdodC13cmFwIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jayAuY29kZS1zdHlsZXItcHJlLXBhcmVudCArIC5lZGl0LWJsb2NrLWJ1dHRvbjo6YWZ0ZXIge1xuXHRjb250ZW50OiAnRWRpdCBCbG9jayc7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcblx0cGFkZGluZy1sZWZ0OiA0cHg7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2s6bm90KDpob3ZlcikgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b24ge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdG9wYWNpdHk6IDBcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jayAuY29kZS1zdHlsZXItcHJlLXBhcmVudCArIC5lZGl0LWJsb2NrLWJ1dHRvbiB7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IGNhbGMoMi4yICogdmFyKC0taGVhZGVyLWJ1dHRvbi1zcGFjaW5nKSk7XG5cdC0tZGVudC1kaWZmZXJlbmNlOiAwcHg7XG5cdC0tcG9seWdvbi1pbjogcG9seWdvbigwIDAsIDE4cHggMCwgMThweCAzNnB4LCAwIDM2cHgpO1xuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSwgb3BhY2l0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRvcGFjaXR5OiAxO1xuXHR6LWluZGV4OiAxMDtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHR0b3A6IG1heChjYWxjKDAuNSAqIHZhcigtLWNvbnRhaW5lci1oZWlnaHQpICogMSksY2FsYygwLjUgKiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCkgKiAxKSk7XG5cdG1hcmdpbjogMDtcblx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKSAtIHZhcigtLWRlbnQtZGlmZmVyZW5jZSkpO1xuXHR3aWxsLWNoYW5nZTogbWFyZ2luLXJpZ2h0LCBjbGlwLXBhdGg7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdHBhZGRpbmc6IDA7XG59XG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5naWNvbnMtYWx3YXlzKTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ25hbWVzLWFsd2F5cykgLmNtLWVtYmVkLWJsb2NrIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50OmhhcyggcHJlLmNvZGUtc3R5bGVyLXByZSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcikgKyAuZWRpdC1ibG9jay1idXR0b24sXG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMtYWx3YXlzKSAuY20tZW1iZWQtYmxvY2sgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQ6bm90KDpoYXMoIHByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItc3BlY2lmaWMpKTpub3QoOmhhcyggcHJlLmNvZGUtc3R5bGVyLXByZSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciBpbWcuY29kZS1zdHlsZXItaWNvbikpICsgLmVkaXQtYmxvY2stYnV0dG9uLFxuYm9keSAuY20tZW1iZWQtYmxvY2sgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQ6aGFzKCBwcmUuY29kZS1zdHlsZXItcHJlOm5vdChbY2xhc3MqPSdsYW5ndWFnZS0nXSkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIpICsgLmVkaXQtYmxvY2stYnV0dG9uIHsgLyo/IERlcGVuZGluZyBvbiBoZWFkZXIgdmlzaWJpbGl0eSAqL1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiA0cHg7XG5cdHRvcDogY2FsYygwLjUgKiB2YXIoLS1mb250LXRleHQtc2l6ZSkgKiAwLjg3NSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrOmhvdmVyIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50ICsgLmVkaXQtYmxvY2stYnV0dG9uOmhvdmVyIHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGFuaW1hdGlvbjogcmV2ZXJzZS1vdXRkZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jazpob3ZlciAuY29kZS1zdHlsZXItcHJlLXBhcmVudCArIC5lZGl0LWJsb2NrLWJ1dHRvbjphY3RpdmUge1xuXHRzY2FsZTogMC45NTtcblx0dHJhbnNpdGlvbjogc2NhbGUgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpO1xufVxuXG4vKiogRmlsZSBJbmNsdWRlIFBsdWdpbiAqL1xuZGl2LmJsb2NrLWxhbmd1YWdlLWluY2x1ZGUgcHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbiB7XG5cdG1hcmdpbjogMDtcblx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKSAtIHZhcigtLWRlbnQtZGlmZmVyZW5jZSkpO1xufVxuZGl2LmJsb2NrLWxhbmd1YWdlLWluY2x1ZGUgcHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjpob3ZlciB7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xufVxuIiwgIi8qKiBEZWZpbmUgQ1NTIHZhcmlhYmxlcyAqL1xuQGltcG9ydCBcIi4vY3NzL2NvZGVibG9ja3MuY3NzXCI7XG5AaW1wb3J0IFwiLi9jc3MvaW5saW5lQ29kZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2Nzcy9wZGZFeHBvcnQuY3NzXCI7XG5AaW1wb3J0IFwiLi9jc3MvcGlja3IuY3NzXCI7XG5AaW1wb3J0IFwiLi9jc3MvcGx1Z2luQ29tcGF0aWJpbGl0eS5jc3NcIjtcblxuYm9keSB7XG5cdC8qIENvZGVibG9jayBCb2R5ICovXG5cdC0tYm9yZGVyLXJhZGl1czogMTBweDtcblx0LS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG5cdC0tY29kZS1wYWRkaW5nOiA4cHg7XG5cdC0tY29udGFpbmVyLWhlaWdodDogY2FsYyh2YXIoLS1sYW5ndWFnZS1pY29uLXNpemUpICsgMiAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSAqIHZhcigtLWhlYWRlci1mb250LXNpemUpKTtcblx0LS1jb250YWluZXItbWluLWhlaWdodDogY2FsYygodmFyKC0taGVhZGVyLWZvbnQtc2l6ZSkgKyAyICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpICogdmFyKC0taGVhZGVyLWZvbnQtc2l6ZSkpICogdmFyKC0tbGluZS1oZWlnaHQtbm9ybWFsKSk7XG5cdC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cjogdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKTtcblx0LS1sYW5ndWFnZS1ib3JkZXItd2lkdGg6IDBweDtcblxuXHQvKiBIZWFkZXIgKi9cblx0LS1oZWFkZXItZm9udC1zaXplOiB2YXIoLS1jb2RlLXNpemUpO1xuXHQtLWhlYWRlci1wYWRkaW5nOiAwcHg7XG5cdC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmc6IDAuMztcblx0LS1oZWFkZXItc3BhY2luZzogMTVweDtcblx0LS1oZWFkZXItYnV0dG9uLXNwYWNpbmc6IDE0cHg7XG5cdC0taGVhZGVyLXNlcGFyYXRvci13aWR0aDogMnB4O1xuXHQtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgtcGFkZGluZzogdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCk7XG5cdC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcjogbm9uZTtcblx0LS1jb2xsYXBzZWQtYm90dG9tLWJvcmRlcjogMCBzb2xpZCB0cmFuc3BhcmVudDtcblx0LS1sYW5ndWFnZS1pY29uLXNpemU6IDI4cHg7XG5cdC0tbGFuZ3VhZ2UtaWNvbi1maWx0ZXI6IG5vbmU7XG5cblx0LyogTGluZXMgKi9cblx0LS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wOiAxMDAlO1xuXG5cdC8qIExpbmUgTnVtYmVycyAqL1xuXHQtLWxpbmUtbnVtYmVyLWhlaWdodC1jb3JyZWN0aW9uOiAycHg7XG5cdC0tbGluZS1udW1iZXItZ3V0dGVyLXBhZGRpbmc6IDE2cHg7XG5cdC0tbGluZS1udW1iZXItZ3V0dGVyLW1pbi13aWR0aDogMzIuNjdweDtcblxuXHQvKiBMaW5lIFRleHQgKi9cblx0LS1saW5lLXdyYXBwaW5nOiBwcmUtd3JhcDtcblx0LS1saW5lLWFjdGl2ZS13cmFwcGluZzogdmFyKC0tbGluZS13cmFwcGluZyk7XG5cblx0LyogQnV0dG9ucyAqL1xuXHQtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXI6IHZhcigtLXRleHQtbXV0ZWQpO1xuXHQtLWNvZGUtc3R5bGVyLWJ1dHRvbi1hY3RpdmUtY29sb3VyOiB3aGl0ZTtcblx0LS1kdXJhdGlvbi1idXR0b246IDI0MG1zO1xuXHQtLWRlbnQtZGlmZmVyZW5jZTogMzBweDtcblx0LS1wb2x5Z29uLWluOiBwb2x5Z29uKDAgMCwgMTZweCAwLCAxNnB4IDM2cHgsIDAgMzZweCk7XG5cdC0tcG9seWdvbi1vdXQ6IHBvbHlnb24oMCAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgMCAxMDAlKTtcblx0LS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbjogY2FsYygzICogdmFyKC0taGVhZGVyLWJ1dHRvbi1zcGFjaW5nKSk7XG5cblx0LyogSW5saW5lIENvZGUgKi9cblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtZm9udC13ZWlnaHQ6IDQwMDtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1czogNnB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLXZlcnRpY2FsOiA1cHg7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctaG9yaXpvbnRhbDogNXB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbDogMHB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXI6IHZhcigtLWNvZGUtbm9ybWFsKTtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZTogdmFyKC0tY29kZS1ub3JtYWwpO1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1iYWNrZ3JvdW5kKTtcbn1cblxuLyoqIFNldHRpbmdzICovXG4uc2V0dGluZy1pdGVtLmNvZGUtc3R5bGVyLXNwYWNlZCAuY2hlY2tib3gtY29udGFpbmVyICsgLnBpY2tyIHtcblx0cGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuLmNvZGUtc3R5bGVyLWRvbmF0aW9uIHtcblx0d2lkdGg6IDcwJTtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtYXJlYSB0ZXh0YXJlYSB7XG5cdHdpZHRoOiA0MDBweDtcblx0aGVpZ2h0OiAyMjBweDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFDQTtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUVDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFJRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBSUQ7QUFBQTtBQUVDO0FBQUE7QUFFRDtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQUE7QUFFQztBQUFBO0FBRUQ7QUFBQTtBQUVDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUFBO0FBQUE7QUFHQztBQUNBO0FBQUE7QUFFRDtBQUFBO0FBQUE7QUFHQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBSUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFBQTtBQUVDO0FBQUE7QUFFRDtBQUFBO0FBRUM7QUFBQTtBQUlEO0FBQUE7QUFFQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBQUE7QUFJQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUdDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUlEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFJRDtBQUFBO0FBRUU7QUFDQTtBQUFBO0FBQUE7QUFHQTtBQUNBO0FBQUE7QUFBQTtBQUdGO0FBQUE7QUFFRTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQ0E7QUFBQTtBQUFBO0FBR0Y7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdGO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHRjtBQUNJO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUdDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0c7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUo7QUFBQTtBQUVDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUFBO0FBQUE7QUFHQztBQUNBO0FBQUE7QUFFRDtBQUFBO0FBQUE7QUFHQztBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBR0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUdDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBR0M7QUFBQTtBQUVEO0FBQUE7QUFBQTtBQUdDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUFBO0FBQUE7QUFHQztBQUNBO0FBQUE7QUFFRDtBQUFBO0FBRUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7OztBQ25lRDtBQUFBO0FBRUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTs7O0FDdkREO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFBQTs7O0FDTkQ7QUFBUTtBQUFtQjtBQUFrQjtBQUFBO0FBQTJCO0FBQVU7QUFBdUI7QUFBYztBQUFhO0FBQWlCO0FBQUE7QUFBMkI7QUFBb0I7QUFBbUI7QUFBWTtBQUFXO0FBQWU7QUFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUEwRztBQUFxQjtBQUFxUDtBQUFtQjtBQUFBO0FBQXVCO0FBQTRCO0FBQW1CO0FBQVk7QUFBTztBQUFRO0FBQVk7QUFBYTtBQUFrTjtBQUFzQjtBQUFxQjtBQUFBO0FBQWM7QUFBNEI7QUFBQTtBQUFtQjtBQUEyQjtBQUFtQjtBQUFZO0FBQU87QUFBUTtBQUFhO0FBQVk7QUFBNEI7QUFBNkI7QUFBQTtBQUF1QjtBQUEwQjtBQUFBO0FBQXVCO0FBQWtDO0FBQUE7QUFBYTtBQUFnQztBQUFBO0FBQThFO0FBQTZCO0FBQUE7QUFBc0I7QUFBQTtBQUFzQjtBQUF1QjtBQUFjO0FBQWE7QUFBaUI7QUFBQTtBQUEyQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWdNO0FBQUE7QUFBOEU7QUFBQTtBQUFBO0FBQUE7QUFBc0Y7QUFBQTtBQUE4QjtBQUFBO0FBQUE7QUFBQTtBQUE4RztBQUFBO0FBQWlGO0FBQVU7QUFBZ0I7QUFBYztBQUF1QjtBQUFlO0FBQXFCO0FBQWlCO0FBQVc7QUFBbUI7QUFBNkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUEwRztBQUErRTtBQUFRO0FBQUE7QUFBUztBQUFrQjtBQUF5QjtBQUFvQjtBQUFBO0FBQWE7QUFBd0I7QUFBYztBQUFnQjtBQUFBO0FBQXFCO0FBQWlDO0FBQUE7QUFBWTtBQUE2QjtBQUF3QjtBQUFjO0FBQW9CO0FBQUE7QUFBQTtBQUFxRDtBQUFpQztBQUFlO0FBQW1CO0FBQTJCO0FBQTRCO0FBQXNCO0FBQWdCO0FBQWM7QUFBZTtBQUFxQjtBQUFzQjtBQUFpQjtBQUF3QjtBQUFBO0FBQWE7QUFBeUM7QUFBbUI7QUFBWTtBQUFPO0FBQVE7QUFBWTtBQUFhO0FBQWtOO0FBQXFCO0FBQXFCO0FBQUE7QUFBYztBQUF3QztBQUFZO0FBQW1CO0FBQU87QUFBUTtBQUFZO0FBQWE7QUFBNkI7QUFBc0M7QUFBc0I7QUFBQTtBQUF5QjtBQUF1QztBQUFBO0FBQTJCO0FBQWtEO0FBQUE7QUFBbUI7QUFBMkI7QUFBYztBQUFnQjtBQUFvQjtBQUFBO0FBQTRCO0FBQStCO0FBQUE7QUFBa0I7QUFBaUM7QUFBdUI7QUFBa0I7QUFBbUI7QUFBZ0I7QUFBZTtBQUFvQjtBQUFxQjtBQUFzQjtBQUFzQjtBQUFBO0FBQXFCO0FBQXVDO0FBQUE7QUFBNEI7QUFBdUM7QUFBQTtBQUFzRjtBQUF1QztBQUFlO0FBQWlCO0FBQWM7QUFBZTtBQUFxQjtBQUFxQjtBQUFvQjtBQUFBO0FBQWU7QUFBdUQ7QUFBb0I7QUFBQTtBQUFjO0FBQWtEO0FBQW9CO0FBQUE7QUFBYztBQUE0QztBQUFZO0FBQUE7QUFBc0I7QUFBQTtBQUFBO0FBQWtIO0FBQVk7QUFBQTtBQUFjO0FBQUE7QUFBQTtBQUFrSDtBQUFBO0FBQWM7QUFBQTtBQUFBO0FBQW9JO0FBQUE7QUFBNEI7QUFBcUM7QUFBQTtBQUFzQjtBQUFBO0FBQTZFO0FBQUE7QUFBc0I7QUFBQTtBQUF5RjtBQUFBO0FBQXFGO0FBQXFDO0FBQW1CO0FBQWE7QUFBWTtBQUF1QjtBQUFvQjtBQUEwQjtBQUF1QjtBQUFzQjtBQUFBO0FBQW9CO0FBQUE7QUFBQTtBQUFvSTtBQUFtQjtBQUEwQjtBQUF1QjtBQUFzQjtBQUFrQjtBQUFjO0FBQXVCO0FBQWE7QUFBQTtBQUF1QjtBQUFBO0FBQUE7QUFBeUo7QUFBaUI7QUFBQTtBQUEyQjtBQUE2QjtBQUFlO0FBQUE7QUFBa0I7QUFBMkM7QUFBaUI7QUFBQTtBQUFrQjtBQUE4QztBQUFBO0FBQTRCO0FBQTRDO0FBQWM7QUFBZTtBQUErQjtBQUFrQztBQUFvQjtBQUFlO0FBQVk7QUFBQTtBQUF5QjtBQUErRDtBQUF5QjtBQUFhO0FBQVk7QUFBYztBQUFvQjtBQUF3QjtBQUFBO0FBQW9CO0FBQStFO0FBQUE7QUFBZ0I7QUFBa0Y7QUFBbUI7QUFBNkI7QUFBVztBQUFZO0FBQW9CO0FBQUE7QUFBbUI7QUFBMEY7QUFBbUI7QUFBWTtBQUFPO0FBQVE7QUFBWTtBQUFhO0FBQWtOO0FBQXNCO0FBQXFCO0FBQUE7QUFBYztBQUErRDtBQUF5QjtBQUFZO0FBQWE7QUFBQTtBQUFhO0FBQTRFO0FBQXFCO0FBQVk7QUFBQTtBQUFlO0FBQW9GO0FBQW1CO0FBQVk7QUFBTztBQUFRO0FBQVk7QUFBYTtBQUFrTjtBQUFzQjtBQUFxQjtBQUFBO0FBQWM7QUFBK0Q7QUFBQTtBQUEyQjtBQUErRDtBQUFBO0FBQTJCO0FBQUE7QUFBOEg7QUFBYztBQUFBO0FBQWlCO0FBQUE7QUFBc0o7QUFBUztBQUFBO0FBQThCO0FBQUE7QUFBc0o7QUFBYTtBQUFBO0FBQXNCO0FBQTJFO0FBQUE7QUFBZ0Y7QUFBMkU7QUFBaVE7QUFBQTtBQUNsOFM7QUFDQztBQUFBOzs7QUNGRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDSTtBQUNBO0FBQ0E7QUFDQTtBQUNIO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFJRDtBQUNDO0FBQUE7QUFFRDtBQUFBO0FBRUM7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0c7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBR0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFJRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTs7O0FDekpEO0FBRUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFJRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg== */