/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
/*!*************************************************************************************************************************************************************************************************************************************************************!*\
!*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[10].use[3]!./app/globals.css ***!
\*************************************************************************************************************************************************************************************************************************************************************/
/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
    :root, :host {
        --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
        "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
        --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
        "Courier New", monospace;
        --color-red-50: oklch(97.1% 0.013 17.38);
        --color-red-400: oklch(70.4% 0.191 22.216);
        --color-red-500: oklch(63.7% 0.237 25.331);
        --color-red-800: oklch(44.4% 0.177 26.899);
        --color-gray-800: oklch(27.8% 0.033 256.848);
        --color-zinc-500: oklch(55.2% 0.016 285.938);
        --color-zinc-800: oklch(27.4% 0.006 286.033);
        --color-black: #000;
        --color-white: #fff;
        --spacing: 0.25rem;
        --container-sm: 24rem;
        --text-xs: 0.75rem;
        --text-xs--line-height: calc(1 / 0.75);
        --text-sm: 0.875rem;
        --text-sm--line-height: calc(1.25 / 0.875);
        --text-base: 1rem;
        --text-base--line-height: calc(1.5 / 1);
        --text-lg: 1.125rem;
        --text-lg--line-height: calc(1.75 / 1.125);
        --text-xl: 1.25rem;
        --text-xl--line-height: calc(1.75 / 1.25);
        --text-3xl: 1.875rem;
        --text-3xl--line-height: calc(2.25 / 1.875);
        --font-weight-normal: 400;
        --font-weight-medium: 500;
        --font-weight-semibold: 600;
        --font-weight-bold: 700;
        --radius-xs: 0.125rem;
        --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
        --animate-spin: spin 1s linear infinite;
        --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
        --default-transition-duration: 150ms;
        --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        --default-font-family: var(--font-sans);
        --default-mono-font-family: var(--font-mono);
    }
}
@layer base {
    *, ::after, ::before, ::backdrop, ::file-selector-button {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        border: 0 solid;
    }
    html, :host {
        line-height: 1.5;
        -webkit-text-size-adjust: 100%;
        tab-size: 4;
        font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
        font-feature-settings: var(--default-font-feature-settings, normal);
        font-variation-settings: var(--default-font-variation-settings, normal);
        -webkit-tap-highlight-color: transparent;
    }
    hr {
        height: 0;
        color: inherit;
        border-top-width: 1px;
    }
    abbr:where([title]) {
        -webkit-text-decoration: underline dotted;
        text-decoration: underline dotted;
    }
    h1, h2, h3, h4, h5, h6 {
        font-size: inherit;
        font-weight: inherit;
    }
    a {
        color: inherit;
        -webkit-text-decoration: inherit;
        text-decoration: inherit;
    }
    b, strong {
        font-weight: bolder;
    }
    code, kbd, samp, pre {
        font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
        font-feature-settings: var(--default-mono-font-feature-settings, normal);
        font-variation-settings: var(--default-mono-font-variation-settings, normal);
        font-size: 1em;
    }
    small {
        font-size: 80%;
    }
    sub, sup {
        font-size: 75%;
        line-height: 0;
        position: relative;
        vertical-align: baseline;
    }
    sub {
        bottom: -0.25em;
    }
    sup {
        top: -0.5em;
    }
    table {
        text-indent: 0;
        border-color: inherit;
        border-collapse: collapse;
    }
    :-moz-focusring {
        outline: auto;
    }
    progress {
        vertical-align: baseline;
    }
    summary {
        display: list-item;
    }
    ol, ul, menu {
        list-style: none;
    }
    img, svg, video, canvas, audio, iframe, embed, object {
        display: block;
        vertical-align: middle;
    }
    img, video {
        max-width: 100%;
        height: auto;
    }
    button, input, select, optgroup, textarea, ::file-selector-button {
        font: inherit;
        font-feature-settings: inherit;
        font-variation-settings: inherit;
        letter-spacing: inherit;
        color: inherit;
        border-radius: 0;
        background-color: transparent;
        opacity: 1;
    }
    :where(select:is([multiple], [size])) optgroup {
        font-weight: bolder;
    }
    :where(select:is([multiple], [size])) optgroup option {
        padding-inline-start: 20px;
    }
    ::file-selector-button {
        margin-inline-end: 4px;
    }
    ::placeholder {
        opacity: 1;
    }
    @supports (not (-webkit-appearance: -apple-pay-button))  or (contain-intrinsic-size: 1px) {
        ::placeholder {
            color: currentcolor;
            @supports (color: color-mix(in lab, red, red)) {
                color: color-mix(in oklab, currentcolor 50%, transparent);
            }
        }
    }
    textarea {
        resize: vertical;
    }
    ::-webkit-search-decoration {
        -webkit-appearance: none;
    }
    ::-webkit-date-and-time-value {
        min-height: 1lh;
        text-align: inherit;
    }
    ::-webkit-datetime-edit {
        display: inline-flex;
    }
    ::-webkit-datetime-edit-fields-wrapper {
        padding: 0;
    }
    ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
        padding-block: 0;
    }
    ::-webkit-calendar-picker-indicator {
        line-height: 1;
    }
    :-moz-ui-invalid {
        box-shadow: none;
    }
    button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
        appearance: button;
    }
    ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
        height: auto;
    }
    [hidden]:where(:not([hidden="until-found"])) {
        display: none !important;
    }
}
@layer utilities {
    .\@container\/card-header {
        container-type: inline-size;
        container-name: card-header;
    }
    .pointer-events-none {
        pointer-events: none;
    }
    .invisible {
        visibility: hidden;
    }
    .sr-only {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
        border-width: 0;
    }
    .absolute {
        position: absolute;
    }
    .fixed {
        position: fixed;
    }
    .relative {
        position: relative;
    }
    .inset-0 {
        inset: calc(var(--spacing) * 0);
    }
    .inset-x-0 {
        inset-inline: calc(var(--spacing) * 0);
    }
    .inset-y-0 {
        inset-block: calc(var(--spacing) * 0);
    }
    .top-0 {
        top: calc(var(--spacing) * 0);
    }
    .top-1\.5 {
        top: calc(var(--spacing) * 1.5);
    }
    .top-3\.5 {
        top: calc(var(--spacing) * 3.5);
    }
    .top-4 {
        top: calc(var(--spacing) * 4);
    }
    .right-0 {
        right: calc(var(--spacing) * 0);
    }
    .right-1 {
        right: calc(var(--spacing) * 1);
    }
    .right-2 {
        right: calc(var(--spacing) * 2);
    }
    .right-3 {
        right: calc(var(--spacing) * 3);
    }
    .right-4 {
        right: calc(var(--spacing) * 4);
    }
    .bottom-0 {
        bottom: calc(var(--spacing) * 0);
    }
    .left-0 {
        left: calc(var(--spacing) * 0);
    }
    .left-1 {
        left: calc(var(--spacing) * 1);
    }
    .z-10 {
        z-index: 10;
    }
    .z-20 {
        z-index: 20;
    }
    .z-50 {
        z-index: 50;
    }
    .col-start-2 {
        grid-column-start: 2;
    }
    .row-span-2 {
        grid-row: span 2 / span 2;
    }
    .row-start-1 {
        grid-row-start: 1;
    }
    .container {
        width: 100%;
        @media (width >= 40rem) {
            max-width: 40rem;
        }
        @media (width >= 48rem) {
            max-width: 48rem;
        }
        @media (width >= 64rem) {
            max-width: 64rem;
        }
        @media (width >= 80rem) {
            max-width: 80rem;
        }
        @media (width >= 96rem) {
            max-width: 96rem;
        }
    }
    .-mx-1 {
        margin-inline: calc(var(--spacing) * -1);
    }
    .mx-2 {
        margin-inline: calc(var(--spacing) * 2);
    }
    .mx-3\.5 {
        margin-inline: calc(var(--spacing) * 3.5);
    }
    .my-1 {
        margin-block: calc(var(--spacing) * 1);
    }
    .mt-2 {
        margin-top: calc(var(--spacing) * 2);
    }
    .mt-4 {
        margin-top: calc(var(--spacing) * 4);
    }
    .mt-18 {
        margin-top: calc(var(--spacing) * 18);
    }
    .mt-auto {
        margin-top: auto;
    }
    .mr-2 {
        margin-right: calc(var(--spacing) * 2);
    }
    .mb-4 {
        margin-bottom: calc(var(--spacing) * 4);
    }
    .mb-5 {
        margin-bottom: calc(var(--spacing) * 5);
    }
    .ml-3 {
        margin-left: calc(var(--spacing) * 3);
    }
    .flex {
        display: flex;
    }
    .grid {
        display: grid;
    }
    .hidden {
        display: none;
    }
    .inline-flex {
        display: inline-flex;
    }
    .table {
        display: table;
    }
    .table-caption {
        display: table-caption;
    }
    .table-cell {
        display: table-cell;
    }
    .table-row {
        display: table-row;
    }
    .field-sizing-content {
        field-sizing: content;
    }
    .aspect-square {
        aspect-ratio: 1 / 1;
    }
    .size-2\.5 {
        width: calc(var(--spacing) * 2.5);
        height: calc(var(--spacing) * 2.5);
    }
    .size-3\.5 {
        width: calc(var(--spacing) * 3.5);
        height: calc(var(--spacing) * 3.5);
    }
    .size-4 {
        width: calc(var(--spacing) * 4);
        height: calc(var(--spacing) * 4);
    }
    .size-7 {
        width: calc(var(--spacing) * 7);
        height: calc(var(--spacing) * 7);
    }
    .size-8 {
        width: calc(var(--spacing) * 8);
        height: calc(var(--spacing) * 8);
    }
    .size-9 {
        width: calc(var(--spacing) * 9);
        height: calc(var(--spacing) * 9);
    }
    .h-4 {
        height: calc(var(--spacing) * 4);
    }
    .h-5 {
        height: calc(var(--spacing) * 5);
    }
    .h-7 {
        height: calc(var(--spacing) * 7);
    }
    .h-8 {
        height: calc(var(--spacing) * 8);
    }
    .h-9 {
        height: calc(var(--spacing) * 9);
    }
    .h-10 {
        height: calc(var(--spacing) * 10);
    }
    .h-12 {
        height: calc(var(--spacing) * 12);
    }
    .h-\[var\(--radix-select-trigger-height\)\] {
        height: var(--radix-select-trigger-height);
    }
    .h-auto {
        height: auto;
    }
    .h-full {
        height: 100%;
    }
    .h-px {
        height: 1px;
    }
    .h-svh {
        height: 100svh;
    }
    .max-h-\(--radix-select-content-available-height\) {
        max-height: var(--radix-select-content-available-height);
    }
    .min-h-0 {
        min-height: calc(var(--spacing) * 0);
    }
    .min-h-16 {
        min-height: calc(var(--spacing) * 16);
    }
    .min-h-screen {
        min-height: 100vh;
    }
    .min-h-svh {
        min-height: 100svh;
    }
    .w-\(--sidebar-width\) {
        width: var(--sidebar-width);
    }
    .w-3\/4 {
        width: calc(3/4 * 100%);
    }
    .w-4 {
        width: calc(var(--spacing) * 4);
    }
    .w-5 {
        width: calc(var(--spacing) * 5);
    }
    .w-8 {
        width: calc(var(--spacing) * 8);
    }
    .w-72 {
        width: calc(var(--spacing) * 72);
    }
    .w-\[110px\] {
        width: 110px;
    }
    .w-\[180px\] {
        width: 180px;
    }
    .w-\[250px\] {
        width: 250px;
    }
    .w-\[400px\] {
        width: 400px;
    }
    .w-auto {
        width: auto;
    }
    .w-fit {
        width: fit-content;
    }
    .w-full {
        width: 100%;
    }
    .max-w-\(--skeleton-width\) {
        max-width: var(--skeleton-width);
    }
    .max-w-sm {
        max-width: var(--container-sm);
    }
    .min-w-0 {
        min-width: calc(var(--spacing) * 0);
    }
    .min-w-5 {
        min-width: calc(var(--spacing) * 5);
    }
    .min-w-\[8rem\] {
        min-width: 8rem;
    }
    .min-w-\[var\(--radix-select-trigger-width\)\] {
        min-width: var(--radix-select-trigger-width);
    }
    .flex-1 {
        flex: 1;
    }
    .shrink-0 {
        flex-shrink: 0;
    }
    .caption-bottom {
        caption-side: bottom;
    }
    .border-collapse {
        border-collapse: collapse;
    }
    .origin-\(--radix-popover-content-transform-origin\) {
        transform-origin: var(--radix-popover-content-transform-origin);
    }
    .origin-\(--radix-select-content-transform-origin\) {
        transform-origin: var(--radix-select-content-transform-origin);
    }
    .origin-\(--radix-tooltip-content-transform-origin\) {
        transform-origin: var(--radix-tooltip-content-transform-origin);
    }
    .-translate-x-1\/2 {
        --tw-translate-x: calc(calc(1/2 * 100%) * -1);
        translate: var(--tw-translate-x) var(--tw-translate-y);
    }
    .-translate-x-px {
        --tw-translate-x: -1px;
        translate: var(--tw-translate-x) var(--tw-translate-y);
    }
    .translate-x-px {
        --tw-translate-x: 1px;
        translate: var(--tw-translate-x) var(--tw-translate-y);
    }
    .translate-y-0\.5 {
        --tw-translate-y: calc(var(--spacing) * 0.5);
        translate: var(--tw-translate-x) var(--tw-translate-y);
    }
    .translate-y-\[calc\(-50\%_-_2px\)\] {
        --tw-translate-y: calc(-50% - 2px);
        translate: var(--tw-translate-x) var(--tw-translate-y);
    }
    .rotate-45 {
        rotate: 45deg;
    }
    .animate-in {
        animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);
    }
    .animate-pulse {
        animation: var(--animate-pulse);
    }
    .animate-spin {
        animation: var(--animate-spin);
    }
    .cursor-default {
        cursor: default;
    }
    .cursor-pointer {
        cursor: pointer;
    }
    .scroll-my-1 {
        scroll-margin-block: calc(var(--spacing) * 1);
    }
    .auto-rows-min {
        grid-auto-rows: min-content;
    }
    .grid-rows-\[auto_auto\] {
        grid-template-rows: auto auto;
    }
    .flex-col {
        flex-direction: column;
    }
    .items-center {
        align-items: center;
    }
    .items-start {
        align-items: flex-start;
    }
    .justify-between {
        justify-content: space-between;
    }
    .justify-center {
        justify-content: center;
    }
    .justify-end {
        justify-content: flex-end;
    }
    .justify-start {
        justify-content: flex-start;
    }
    .gap-1 {
        gap: calc(var(--spacing) * 1);
    }
    .gap-1\.5 {
        gap: calc(var(--spacing) * 1.5);
    }
    .gap-2 {
        gap: calc(var(--spacing) * 2);
    }
    .gap-4 {
        gap: calc(var(--spacing) * 4);
    }
    .gap-6 {
        gap: calc(var(--spacing) * 6);
    }
    .space-y-4 {
        :where(& > :not(:last-child)) {
            --tw-space-y-reverse: 0;
            margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
            margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
        }
    }
    .space-y-6 {
        :where(& > :not(:last-child)) {
            --tw-space-y-reverse: 0;
            margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
            margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
        }
    }
    .gap-x-2 {
        column-gap: calc(var(--spacing) * 2);
    }
    .space-x-1 {
        :where(& > :not(:last-child)) {
            --tw-space-x-reverse: 0;
            margin-inline-start: calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));
            margin-inline-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)));
        }
    }
    .gap-y-4 {
        row-gap: calc(var(--spacing) * 4);
    }
    .self-start {
        align-self: flex-start;
    }
    .justify-self-end {
        justify-self: flex-end;
    }
    .overflow-auto {
        overflow: auto;
    }
    .overflow-hidden {
        overflow: hidden;
    }
    .overflow-x-auto {
        overflow-x: auto;
    }
    .overflow-x-hidden {
        overflow-x: hidden;
    }
    .overflow-y-auto {
        overflow-y: auto;
    }
    .rounded-\[2px\] {
        border-radius: 2px;
    }
    .rounded-lg {
        border-radius: var(--radius);
    }
    .rounded-md {
        border-radius: calc(var(--radius) - 2px);
    }
    .rounded-sm {
        border-radius: calc(var(--radius) - 4px);
    }
    .rounded-xs {
        border-radius: var(--radius-xs);
    }
    .border {
        border-style: var(--tw-border-style);
        border-width: 1px;
    }
    .border-t {
        border-top-style: var(--tw-border-style);
        border-top-width: 1px;
    }
    .border-r {
        border-right-style: var(--tw-border-style);
        border-right-width: 1px;
    }
    .border-b {
        border-bottom-style: var(--tw-border-style);
        border-bottom-width: 1px;
    }
    .border-l {
        border-left-style: var(--tw-border-style);
        border-left-width: 1px;
    }
    .border-input {
        border-color: var(--input);
    }
    .border-sidebar-border {
        border-color: var(--sidebar-border);
    }
    .bg-accent {
        background-color: var(--accent);
    }
    .bg-background {
        background-color: var(--background);
    }
    .bg-black\/50 {
        background-color: color-mix(in srgb, #000 50%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
            background-color: color-mix(in oklab, var(--color-black) 50%, transparent);
        }
    }
    .bg-border {
        background-color: var(--border);
    }
    .bg-card {
        background-color: var(--card);

    }
    .bg-destructive {
        background-color: var(--destructive);
    }
    .bg-muted\/50 {
        background-color: var(--muted);
        @supports (color: color-mix(in lab, red, red)) {
            background-color: color-mix(in oklab, var(--muted) 50%, transparent);
        }
    }
    .bg-popover {
        background-color: var(--popover);
    }
    .bg-primary {
        background-color: var(--primary);
    }
    .bg-red-50 {
        background-color: var(--color-red-50);
    }
    .bg-secondary {
        background-color: var(--secondary);
    }
    .bg-sidebar {
        background-color: var(--sidebar);
    }
    .bg-sidebar-border {
        background-color: var(--sidebar-border);
    }
    .bg-transparent {
        background-color: transparent;
    }
    .fill-primary {
        fill: var(--primary);
    }
    .p-0 {
        padding: calc(var(--spacing) * 0);
    }
    .p-1 {
        padding: calc(var(--spacing) * 1);
    }
    .p-2 {
        padding: calc(var(--spacing) * 2);
    }
    .p-3 {
        padding: calc(var(--spacing) * 3);
    }
    .p-4 {
        padding: calc(var(--spacing) * 4);
    }
    .p-6 {
        padding: calc(var(--spacing) * 6);
    }
    .p-24 {
        padding: calc(var(--spacing) * 24);
    }
    .p-\[20px\] {
        padding: 20px;
    }
    .px-1 {
        padding-inline: calc(var(--spacing) * 1);
    }
    .px-2 {
        padding-inline: calc(var(--spacing) * 2);
    }
    .px-2\.5 {
        padding-inline: calc(var(--spacing) * 2.5);
    }
    .px-3 {
        padding-inline: calc(var(--spacing) * 3);
    }
    .px-4 {
        padding-inline: calc(var(--spacing) * 4);
    }
    .px-6 {
        padding-inline: calc(var(--spacing) * 6);
    }
    .py-0\.5 {
        padding-block: calc(var(--spacing) * 0.5);
    }
    .py-1 {
        padding-block: calc(var(--spacing) * 1);
    }
    .py-1\.5 {
        padding-block: calc(var(--spacing) * 1.5);
    }
    .py-2 {
        padding-block: calc(var(--spacing) * 2);
    }
    .py-4 {
        padding-block: calc(var(--spacing) * 4);
    }
    .pt-0 {
        padding-top: calc(var(--spacing) * 0);
    }
    .pt-1 {
        padding-top: calc(var(--spacing) * 1);
    }
    .pr-8 {
        padding-right: calc(var(--spacing) * 8);
    }
    .pb-4 {
        padding-bottom: calc(var(--spacing) * 4);
    }
    .pl-2 {
        padding-left: calc(var(--spacing) * 2);
    }
    .text-center {
        text-align: center;
    }
    .text-left {
        text-align: left;
    }
    .align-middle {
        vertical-align: middle;
    }
    .text-3xl {
        font-size: var(--text-3xl);
        line-height: var(--tw-leading, var(--text-3xl--line-height));
    }
    .text-base {
        font-size: var(--text-base);
        line-height: var(--tw-leading, var(--text-base--line-height));
    }
    .text-lg {
        font-size: var(--text-lg);
        line-height: var(--tw-leading, var(--text-lg--line-height));
    }
    .text-sm {
        font-size: var(--text-sm);
        line-height: var(--tw-leading, var(--text-sm--line-height));
    }
    .text-xl {
        font-size: var(--text-xl);
        line-height: var(--tw-leading, var(--text-xl--line-height));
    }
    .text-xs {
        font-size: var(--text-xs);
        line-height: var(--tw-leading, var(--text-xs--line-height));
    }
    .text-\[0\.8rem\] {
        font-size: 0.8rem;
    }
    .leading-none {
        --tw-leading: 1;
        line-height: 1;
    }
    .font-bold {
        --tw-font-weight: var(--font-weight-bold);
        font-weight: var(--font-weight-bold);
    }
    .font-medium {
        --tw-font-weight: var(--font-weight-medium);
        font-weight: var(--font-weight-medium);
    }
    .font-normal {
        --tw-font-weight: var(--font-weight-normal);
        font-weight: var(--font-weight-normal);
    }
    .font-semibold {
        --tw-font-weight: var(--font-weight-semibold);
        font-weight: var(--font-weight-semibold);
    }
    .text-balance {
        text-wrap: balance;
    }
    .whitespace-nowrap {
        white-space: nowrap;
    }
    .text-accent-foreground {
        color: var(--accent-foreground);
    }
    .text-card-foreground {
        color: var(--card-foreground);
    }
    .text-destructive {
        color: var(--destructive);
    }
    .text-foreground {
        color: var(--foreground);
    }
    .text-muted-foreground {
        color: var(--muted-foreground);
    }
    .text-popover-foreground {
        color: var(--popover-foreground);
    }
    .text-primary {
        color: var(--primary);
    }
    .text-primary-foreground {
        color: var(--primary-foreground);
    }
    .text-red-500 {
        color: var(--color-red-500);
    }
    .text-red-800 {
        color: var(--color-red-800);
    }
    .text-secondary-foreground {
        color: var(--secondary-foreground);
    }
    .text-sidebar-foreground {
        color: var(--sidebar-foreground);
    }
    .text-sidebar-foreground\/70 {
        color: var(--sidebar-foreground);
        @supports (color: color-mix(in lab, red, red)) {
            color: color-mix(in oklab, var(--sidebar-foreground) 70%, transparent);
        }
    }
    .text-white {
        color: var(--color-white);
    }
    .text-zinc-500 {
        color: var(--color-zinc-500);
    }
    .text-zinc-800 {
        color: var(--color-zinc-800);
    }
    .tabular-nums {
        --tw-numeric-spacing: tabular-nums;
        font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
    }
    .underline-offset-4 {
        text-underline-offset: 4px;
    }
    .antialiased {
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }
    .opacity-25 {
        opacity: 25%;
    }
    .opacity-50 {
        opacity: 50%;
    }
    .opacity-70 {
        opacity: 70%;
    }
    .opacity-75 {
        opacity: 75%;
    }
    .shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\] {
        --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-border)));
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
    .shadow-lg {
        --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
    .shadow-md {
        --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
    .shadow-none {
        --tw-shadow: 0 0 #0000;
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
    .shadow-sm {
        --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
    .shadow-xs {
        --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
    .ring-sidebar-ring {
        --tw-ring-color: var(--sidebar-ring);
    }
    .ring-offset-background {
        --tw-ring-offset-color: var(--background);
    }
    .outline-hidden {
        --tw-outline-style: none;
        outline-style: none;
        @media (forced-colors: active) {
            outline: 2px solid transparent;
            outline-offset: 2px;
        }
    }
    .outline {
        outline-style: var(--tw-outline-style);
        outline-width: 1px;
    }
    .transition {
        transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
        transition-duration: var(--tw-duration, var(--default-transition-duration));
    }
    .transition-\[color\,box-shadow\] {
        transition-property: color,box-shadow;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
        transition-duration: var(--tw-duration, var(--default-transition-duration));
    }
    .transition-\[left\,right\,width\] {
        transition-property: left,right,width;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
        transition-duration: var(--tw-duration, var(--default-transition-duration));
    }
    .transition-\[margin\,opacity\] {
        transition-property: margin,opacity;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
        transition-duration: var(--tw-duration, var(--default-transition-duration));
    }
    .transition-\[width\,height\,padding\] {
        transition-property: width,height,padding;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
        transition-duration: var(--tw-duration, var(--default-transition-duration));
    }
    .transition-\[width\] {
        transition-property: width;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
        transition-duration: var(--tw-duration, var(--default-transition-duration));
    }
    .transition-all {
        transition-property: all;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
        transition-duration: var(--tw-duration, var(--default-transition-duration));
    }
    .transition-colors {
        transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
        transition-duration: var(--tw-duration, var(--default-transition-duration));
    }
    .transition-opacity {
        transition-property: opacity;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
        transition-duration: var(--tw-duration, var(--default-transition-duration));
    }
    .transition-transform {
        transition-property: transform, translate, scale, rotate;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
        transition-duration: var(--tw-duration, var(--default-transition-duration));
    }
    .duration-200 {
        --tw-duration: 200ms;
        transition-duration: 200ms;
    }
    .ease-in-out {
        --tw-ease: var(--ease-in-out);
        transition-timing-function: var(--ease-in-out);
    }
    .ease-linear {
        --tw-ease: linear;
        transition-timing-function: linear;
    }
    .fade-in-0 {
        --tw-enter-opacity: calc(0/100);
        --tw-enter-opacity: 0;
    }
    .outline-none {
        --tw-outline-style: none;
        outline-style: none;
    }
    .select-none {
        -webkit-user-select: none;
        user-select: none;
    }
    .zoom-in-95 {
        --tw-enter-scale: calc(95*1%);
        --tw-enter-scale: .95;
    }
    .group-focus-within\/menu-item\:opacity-100 {
        &:is(:where(.group\/menu-item):focus-within *) {
            opacity: 100%;
        }
    }
    .group-hover\/menu-item\:opacity-100 {
        &:is(:where(.group\/menu-item):hover *) {
            @media (hover: hover) {
                opacity: 100%;
            }
        }
    }
    .group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8 {
        &:is(:where(.group\/menu-item):has(*[data-sidebar="menu-action"]) *) {
            padding-right: calc(var(--spacing) * 8);
        }
    }
    .group-data-\[collapsible\=icon\]\:-mt-8 {
        &:is(:where(.group)[data-collapsible="icon"] *) {
            margin-top: calc(var(--spacing) * -8);
        }
    }
    .group-data-\[collapsible\=icon\]\:hidden {
        &:is(:where(.group)[data-collapsible="icon"] *) {
            display: none;
        }
    }
    .group-data-\[collapsible\=icon\]\:size-8\! {
        &:is(:where(.group)[data-collapsible="icon"] *) {
            width: calc(var(--spacing) * 8) !important;
            height: calc(var(--spacing) * 8) !important;
        }
    }
    .group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\) {
        &:is(:where(.group)[data-collapsible="icon"] *) {
            width: var(--sidebar-width-icon);
        }
    }
    .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\] {
        &:is(:where(.group)[data-collapsible="icon"] *) {
            width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)));
        }
    }
    .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\] {
        &:is(:where(.group)[data-collapsible="icon"] *) {
            width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px);
        }
    }
    .group-data-\[collapsible\=icon\]\:overflow-hidden {
        &:is(:where(.group)[data-collapsible="icon"] *) {
            overflow: hidden;
        }
    }
    .group-data-\[collapsible\=icon\]\:p-0\! {
        &:is(:where(.group)[data-collapsible="icon"] *) {
            padding: calc(var(--spacing) * 0) !important;
        }
    }
    .group-data-\[collapsible\=icon\]\:p-2\! {
        &:is(:where(.group)[data-collapsible="icon"] *) {
            padding: calc(var(--spacing) * 2) !important;
        }
    }
    .group-data-\[collapsible\=icon\]\:opacity-0 {
        &:is(:where(.group)[data-collapsible="icon"] *) {
            opacity: 0%;
        }
    }
    .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\] {
        &:is(:where(.group)[data-collapsible="offcanvas"] *) {
            right: calc(var(--sidebar-width) * -1);
        }
    }
    .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\] {
        &:is(:where(.group)[data-collapsible="offcanvas"] *) {
            left: calc(var(--sidebar-width) * -1);
        }
    }
    .group-data-\[collapsible\=offcanvas\]\:w-0 {
        &:is(:where(.group)[data-collapsible="offcanvas"] *) {
            width: calc(var(--spacing) * 0);
        }
    }
    .group-data-\[collapsible\=offcanvas\]\:translate-x-0 {
        &:is(:where(.group)[data-collapsible="offcanvas"] *) {
            --tw-translate-x: calc(var(--spacing) * 0);
            translate: var(--tw-translate-x) var(--tw-translate-y);
        }
    }
    .group-data-\[disabled\=true\]\:pointer-events-none {
        &:is(:where(.group)[data-disabled="true"] *) {
            pointer-events: none;
        }
    }
    .group-data-\[disabled\=true\]\:opacity-50 {
        &:is(:where(.group)[data-disabled="true"] *) {
            opacity: 50%;
        }
    }
    .group-data-\[side\=left\]\:-right-4 {
        &:is(:where(.group)[data-side="left"] *) {
            right: calc(var(--spacing) * -4);
        }
    }
    .group-data-\[side\=left\]\:border-r {
        &:is(:where(.group)[data-side="left"] *) {
            border-right-style: var(--tw-border-style);
            border-right-width: 1px;
        }
    }
    .group-data-\[side\=right\]\:left-0 {
        &:is(:where(.group)[data-side="right"] *) {
            left: calc(var(--spacing) * 0);
        }
    }
    .group-data-\[side\=right\]\:rotate-180 {
        &:is(:where(.group)[data-side="right"] *) {
            rotate: 180deg;
        }
    }
    .group-data-\[side\=right\]\:border-l {
        &:is(:where(.group)[data-side="right"] *) {
            border-left-style: var(--tw-border-style);
            border-left-width: 1px;
        }
    }
    .group-data-\[variant\=floating\]\:rounded-lg {
        &:is(:where(.group)[data-variant="floating"] *) {
            border-radius: var(--radius);
        }
    }
    .group-data-\[variant\=floating\]\:border {
        &:is(:where(.group)[data-variant="floating"] *) {
            border-style: var(--tw-border-style);
            border-width: 1px;
        }
    }
    .group-data-\[variant\=floating\]\:border-sidebar-border {
        &:is(:where(.group)[data-variant="floating"] *) {
            border-color: var(--sidebar-border);
        }
    }
    .group-data-\[variant\=floating\]\:shadow-sm {
        &:is(:where(.group)[data-variant="floating"] *) {
            --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
            box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
        }
    }
    .peer-hover\/menu-button\:text-sidebar-accent-foreground {
        &:is(:where(.peer\/menu-button):hover ~ *) {
            @media (hover: hover) {
                color: var(--sidebar-accent-foreground);
            }
        }
    }
    .peer-disabled\:cursor-not-allowed {
        &:is(:where(.peer):disabled ~ *) {
            cursor: not-allowed;
        }
    }
    .peer-disabled\:opacity-50 {
        &:is(:where(.peer):disabled ~ *) {
            opacity: 50%;
        }
    }
    .peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground {
        &:is(:where(.peer\/menu-button)[data-active="true"] ~ *) {
            color: var(--sidebar-accent-foreground);
        }
    }
    .peer-data-\[size\=default\]\/menu-button\:top-1\.5 {
        &:is(:where(.peer\/menu-button)[data-size="default"] ~ *) {
            top: calc(var(--spacing) * 1.5);
        }
    }
    .peer-data-\[size\=lg\]\/menu-button\:top-2\.5 {
        &:is(:where(.peer\/menu-button)[data-size="lg"] ~ *) {
            top: calc(var(--spacing) * 2.5);
        }
    }
    .peer-data-\[size\=sm\]\/menu-button\:top-1 {
        &:is(:where(.peer\/menu-button)[data-size="sm"] ~ *) {
            top: calc(var(--spacing) * 1);
        }
    }
    .selection\:bg-primary {
        & *::selection {
            background-color: var(--primary);
        }
        &::selection {
            background-color: var(--primary);
        }
    }
    .selection\:text-primary-foreground {
        & *::selection {
            color: var(--primary-foreground);
        }
        &::selection {
            color: var(--primary-foreground);
        }
    }
    .file\:inline-flex {
        &::file-selector-button {
            display: inline-flex;
        }
    }
    .file\:h-7 {
        &::file-selector-button {
            height: calc(var(--spacing) * 7);
        }
    }
    .file\:border-0 {
        &::file-selector-button {
            border-style: var(--tw-border-style);
            border-width: 0px;
        }
    }
    .file\:bg-transparent {
        &::file-selector-button {
            background-color: transparent;
        }
    }
    .file\:text-sm {
        &::file-selector-button {
            font-size: var(--text-sm);
            line-height: var(--tw-leading, var(--text-sm--line-height));
        }
    }
    .file\:font-medium {
        &::file-selector-button {
            --tw-font-weight: var(--font-weight-medium);
            font-weight: var(--font-weight-medium);
        }
    }
    .file\:text-foreground {
        &::file-selector-button {
            color: var(--foreground);
        }
    }
    .placeholder\:text-muted-foreground {
        &::placeholder {
            color: var(--muted-foreground);
        }
    }
    .after\:absolute {
        &::after {
            content: var(--tw-content);
            position: absolute;
        }
    }
    .after\:-inset-2 {
        &::after {
            content: var(--tw-content);
            inset: calc(var(--spacing) * -2);
        }
    }
    .after\:inset-y-0 {
        &::after {
            content: var(--tw-content);
            inset-block: calc(var(--spacing) * 0);
        }
    }
    .after\:left-1\/2 {
        &::after {
            content: var(--tw-content);
            left: calc(1/2 * 100%);
        }
    }
    .after\:w-\[2px\] {
        &::after {
            content: var(--tw-content);
            width: 2px;
        }
    }
    .group-data-\[collapsible\=offcanvas\]\:after\:left-full {
        &:is(:where(.group)[data-collapsible="offcanvas"] *) {
            &::after {
                content: var(--tw-content);
                left: 100%;
            }
        }
    }
    .last\:border-b-0 {
        &:last-child {
            border-bottom-style: var(--tw-border-style);
            border-bottom-width: 0px;
        }
    }
    .focus-within\:relative {
        &:focus-within {
            position: relative;
        }
    }
    .focus-within\:z-20 {
        &:focus-within {
            z-index: 20;
        }
    }
    .hover\:bg-accent {
        &:hover {
            @media (hover: hover) {
                background-color: var(--accent);
            }
        }
    }
    .hover\:bg-destructive\/90 {
        &:hover {
            @media (hover: hover) {
                background-color: var(--destructive);
                @supports (color: color-mix(in lab, red, red)) {
                    background-color: color-mix(in oklab, var(--destructive) 90%, transparent);
                }
            }
        }
    }
    .hover\:bg-muted\/50 {
        &:hover {
            @media (hover: hover) {
                background-color: var(--muted);
                @supports (color: color-mix(in lab, red, red)) {
                    background-color: color-mix(in oklab, var(--muted) 50%, transparent);
                }
            }
        }
    }
    .hover\:bg-primary {
        &:hover {
            @media (hover: hover) {
                background-color: var(--primary);
            }
        }
    }
    .hover\:bg-primary\/90 {
        &:hover {
            @media (hover: hover) {
                background-color: var(--primary);
                @supports (color: color-mix(in lab, red, red)) {
                    background-color: color-mix(in oklab, var(--primary) 90%, transparent);
                }
            }
        }
    }
    .hover\:bg-secondary\/80 {
        &:hover {
            @media (hover: hover) {
                background-color: var(--secondary);
                @supports (color: color-mix(in lab, red, red)) {
                    background-color: color-mix(in oklab, var(--secondary) 80%, transparent);
                }
            }
        }
    }
    .hover\:bg-sidebar-accent {
        &:hover {
            @media (hover: hover) {
                background-color: var(--sidebar-accent);
            }
        }
    }
    .hover\:text-accent-foreground {
        &:hover {
            @media (hover: hover) {
                color: var(--accent-foreground);
            }
        }
    }
    .hover\:text-primary-foreground {
        &:hover {
            @media (hover: hover) {
                color: var(--primary-foreground);
            }
        }
    }
    .hover\:text-sidebar-accent-foreground {
        &:hover {
            @media (hover: hover) {
                color: var(--sidebar-accent-foreground);
            }
        }
    }
    .hover\:text-zinc-800 {
        &:hover {
            @media (hover: hover) {
                color: var(--color-zinc-800);
            }
        }
    }
    .hover\:underline {
        &:hover {
            @media (hover: hover) {
                text-decoration-line: underline;
            }
        }
    }
    .hover\:opacity-100 {
        &:hover {
            @media (hover: hover) {
                opacity: 100%;
            }
        }
    }
    .hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\] {
        &:hover {
            @media (hover: hover) {
                --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-accent)));
                box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
            }
        }
    }
    .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar {
        &:hover {
            @media (hover: hover) {
                &:is(:where(.group)[data-collapsible="offcanvas"] *) {
                    background-color: var(--sidebar);
                }
            }
        }
    }
    .hover\:after\:bg-sidebar-border {
        &:hover {
            @media (hover: hover) {
                &::after {
                    content: var(--tw-content);
                    background-color: var(--sidebar-border);
                }
            }
        }
    }
    .focus\:bg-accent {
        &:focus {
            background-color: var(--accent);
        }
    }
    .focus\:bg-primary {
        &:focus {
            background-color: var(--primary);
        }
    }
    .focus\:text-accent-foreground {
        &:focus {
            color: var(--accent-foreground);
        }
    }
    .focus\:text-primary-foreground {
        &:focus {
            color: var(--primary-foreground);
        }
    }
    .focus\:ring-2 {
        &:focus {
            --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
            box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
        }
    }
    .focus\:ring-ring {
        &:focus {
            --tw-ring-color: var(--ring);
        }
    }
    .focus\:ring-offset-2 {
        &:focus {
            --tw-ring-offset-width: 2px;
            --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
        }
    }
    .focus\:outline-hidden {
        &:focus {
            --tw-outline-style: none;
            outline-style: none;
            @media (forced-colors: active) {
                outline: 2px solid transparent;
                outline-offset: 2px;
            }
        }
    }
    .focus-visible\:border-ring {
        &:focus-visible {
            border-color: var(--ring);
        }
    }
    .focus-visible\:ring-2 {
        &:focus-visible {
            --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
            box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
        }
    }
    .focus-visible\:ring-\[3px\] {
        &:focus-visible {
            --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
            box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
        }
    }
    .focus-visible\:ring-destructive\/20 {
        &:focus-visible {
            --tw-ring-color: var(--destructive);
            @supports (color: color-mix(in lab, red, red)) {
                --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);
            }
        }
    }
    .focus-visible\:ring-ring\/50 {
        &:focus-visible {
            --tw-ring-color: var(--ring);
            @supports (color: color-mix(in lab, red, red)) {
                --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);
            }
        }
    }
    .active\:bg-sidebar-accent {
        &:active {
            background-color: var(--sidebar-accent);
        }
    }
    .active\:text-sidebar-accent-foreground {
        &:active {
            color: var(--sidebar-accent-foreground);
        }
    }
    .disabled\:pointer-events-none {
        &:disabled {
            pointer-events: none;
        }
    }
    .disabled\:cursor-not-allowed {
        &:disabled {
            cursor: not-allowed;
        }
    }
    .disabled\:opacity-50 {
        &:disabled {
            opacity: 50%;
        }
    }
    .in-data-\[side\=left\]\:cursor-w-resize {
        :where(*[data-side="left"]) & {
            cursor: w-resize;
        }
    }
    .in-data-\[side\=right\]\:cursor-e-resize {
        :where(*[data-side="right"]) & {
            cursor: e-resize;
        }
    }
    .has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\] {
        &:has(*[data-slot="card-action"]) {
            grid-template-columns: 1fr auto;
        }
    }
    .has-data-\[variant\=inset\]\:bg-sidebar {
        &:has(*[data-variant="inset"]) {
            background-color: var(--sidebar);
        }
    }
    .has-\[\>svg\]\:px-2\.5 {
        &:has(>svg) {
            padding-inline: calc(var(--spacing) * 2.5);
        }
    }
    .has-\[\>svg\]\:px-3 {
        &:has(>svg) {
            padding-inline: calc(var(--spacing) * 3);
        }
    }
    .has-\[\>svg\]\:px-4 {
        &:has(>svg) {
            padding-inline: calc(var(--spacing) * 4);
        }
    }
    .aria-disabled\:pointer-events-none {
        &[aria-disabled="true"] {
            pointer-events: none;
        }
    }
    .aria-disabled\:opacity-50 {
        &[aria-disabled="true"] {
            opacity: 50%;
        }
    }
    .aria-invalid\:border-destructive {
        &[aria-invalid="true"] {
            border-color: var(--destructive);
        }
    }
    .aria-invalid\:ring-destructive\/20 {
        &[aria-invalid="true"] {
            --tw-ring-color: var(--destructive);
            @supports (color: color-mix(in lab, red, red)) {
                --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);
            }
        }
    }
    .aria-selected\:bg-accent {
        &[aria-selected="true"] {
            background-color: var(--accent);
        }
    }
    .aria-selected\:bg-primary {
        &[aria-selected="true"] {
            background-color: var(--primary);
        }
    }
    .aria-selected\:text-accent-foreground {
        &[aria-selected="true"] {
            color: var(--accent-foreground);
        }
    }
    .aria-selected\:text-muted-foreground {
        &[aria-selected="true"] {
            color: var(--muted-foreground);
        }
    }
    .aria-selected\:text-primary-foreground {
        &[aria-selected="true"] {
            color: var(--primary-foreground);
        }
    }
    .aria-selected\:opacity-100 {
        &[aria-selected="true"] {
            opacity: 100%;
        }
    }
    .data-\[active\=true\]\:bg-sidebar-accent {
        &[data-active="true"] {
            background-color: var(--sidebar-accent);
        }
    }
    .data-\[active\=true\]\:font-medium {
        &[data-active="true"] {
            --tw-font-weight: var(--font-weight-medium);
            font-weight: var(--font-weight-medium);
        }
    }
    .data-\[active\=true\]\:text-sidebar-accent-foreground {
        &[data-active="true"] {
            color: var(--sidebar-accent-foreground);
        }
    }
    .data-\[disabled\]\:pointer-events-none {
        &[data-disabled] {
            pointer-events: none;
        }
    }
    .data-\[disabled\]\:opacity-50 {
        &[data-disabled] {
            opacity: 50%;
        }
    }
    .data-\[error\=true\]\:text-destructive {
        &[data-error="true"] {
            color: var(--destructive);
        }
    }
    .data-\[orientation\=horizontal\]\:h-px {
        &[data-orientation="horizontal"] {
            height: 1px;
        }
    }
    .data-\[orientation\=horizontal\]\:w-full {
        &[data-orientation="horizontal"] {
            width: 100%;
        }
    }
    .data-\[orientation\=vertical\]\:h-full {
        &[data-orientation="vertical"] {
            height: 100%;
        }
    }
    .data-\[orientation\=vertical\]\:w-px {
        &[data-orientation="vertical"] {
            width: 1px;
        }
    }
    .data-\[placeholder\]\:text-muted-foreground {
        &[data-placeholder] {
            color: var(--muted-foreground);
        }
    }
    .data-\[side\=bottom\]\:translate-y-1 {
        &[data-side="bottom"] {
            --tw-translate-y: calc(var(--spacing) * 1);
            translate: var(--tw-translate-x) var(--tw-translate-y);
        }
    }
    .data-\[side\=bottom\]\:slide-in-from-top-2 {
        &[data-side="bottom"] {
            --tw-enter-translate-y: calc(2*var(--spacing)*-1);
        }
    }
    .data-\[side\=left\]\:-translate-x-1 {
        &[data-side="left"] {
            --tw-translate-x: calc(var(--spacing) * -1);
            translate: var(--tw-translate-x) var(--tw-translate-y);
        }
    }
    .data-\[side\=left\]\:slide-in-from-right-2 {
        &[data-side="left"] {
            --tw-enter-translate-x: calc(2*var(--spacing));
        }
    }
    .data-\[side\=right\]\:translate-x-1 {
        &[data-side="right"] {
            --tw-translate-x: calc(var(--spacing) * 1);
            translate: var(--tw-translate-x) var(--tw-translate-y);
        }
    }
    .data-\[side\=right\]\:slide-in-from-left-2 {
        &[data-side="right"] {
            --tw-enter-translate-x: calc(2*var(--spacing)*-1);
        }
    }
    .data-\[side\=top\]\:-translate-y-1 {
        &[data-side="top"] {
            --tw-translate-y: calc(var(--spacing) * -1);
            translate: var(--tw-translate-x) var(--tw-translate-y);
        }
    }
    .data-\[side\=top\]\:slide-in-from-bottom-2 {
        &[data-side="top"] {
            --tw-enter-translate-y: calc(2*var(--spacing));
        }
    }
    .data-\[size\=default\]\:h-9 {
        &[data-size="default"] {
            height: calc(var(--spacing) * 9);
        }
    }
    .data-\[size\=sm\]\:h-8 {
        &[data-size="sm"] {
            height: calc(var(--spacing) * 8);
        }
    }
    .\*\:data-\[slot\=select-value\]\:line-clamp-1 {
        :is(& > *) {
            &[data-slot="select-value"] {
                overflow: hidden;
                display: -webkit-box;
                -webkit-box-orient: vertical;
                -webkit-line-clamp: 1;
            }
        }
    }
    .\*\:data-\[slot\=select-value\]\:flex {
        :is(& > *) {
            &[data-slot="select-value"] {
                display: flex;
            }
        }
    }
    .\*\:data-\[slot\=select-value\]\:items-center {
        :is(& > *) {
            &[data-slot="select-value"] {
                align-items: center;
            }
        }
    }
    .\*\:data-\[slot\=select-value\]\:gap-2 {
        :is(& > *) {
            &[data-slot="select-value"] {
                gap: calc(var(--spacing) * 2);
            }
        }
    }
    .data-\[state\=closed\]\:animate-accordion-up {
        &[data-state="closed"] {
            animation: accordion-up 0.2s ease-out;
        }
    }
    .data-\[state\=closed\]\:animate-out {
        &[data-state="closed"] {
            animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);
        }
    }
    .data-\[state\=closed\]\:duration-300 {
        &[data-state="closed"] {
            --tw-duration: 300ms;
            transition-duration: 300ms;
        }
    }
    .data-\[state\=closed\]\:fade-out-0 {
        &[data-state="closed"] {
            --tw-exit-opacity: calc(0/100);
            --tw-exit-opacity: 0;
        }
    }
    .data-\[state\=closed\]\:zoom-out-95 {
        &[data-state="closed"] {
            --tw-exit-scale: calc(95*1%);
            --tw-exit-scale: .95;
        }
    }
    .data-\[state\=closed\]\:slide-out-to-bottom {
        &[data-state="closed"] {
            --tw-exit-translate-y: 100%;
        }
    }
    .data-\[state\=closed\]\:slide-out-to-left {
        &[data-state="closed"] {
            --tw-exit-translate-x: -100%;
        }
    }
    .data-\[state\=closed\]\:slide-out-to-right {
        &[data-state="closed"] {
            --tw-exit-translate-x: 100%;
        }
    }
    .data-\[state\=closed\]\:slide-out-to-top {
        &[data-state="closed"] {
            --tw-exit-translate-y: -100%;
        }
    }
    .data-\[state\=open\]\:animate-accordion-down {
        &[data-state="open"] {
            animation: accordion-down 0.2s ease-out;
        }
    }
    .data-\[state\=open\]\:animate-in {
        &[data-state="open"] {
            animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);
        }
    }
    .data-\[state\=open\]\:bg-secondary {
        &[data-state="open"] {
            background-color: var(--secondary);
        }
    }
    .data-\[state\=open\]\:opacity-100 {
        &[data-state="open"] {
            opacity: 100%;
        }
    }
    .data-\[state\=open\]\:duration-500 {
        &[data-state="open"] {
            --tw-duration: 500ms;
            transition-duration: 500ms;
        }
    }
    .data-\[state\=open\]\:fade-in-0 {
        &[data-state="open"] {
            --tw-enter-opacity: calc(0/100);
            --tw-enter-opacity: 0;
        }
    }
    .data-\[state\=open\]\:zoom-in-95 {
        &[data-state="open"] {
            --tw-enter-scale: calc(95*1%);
            --tw-enter-scale: .95;
        }
    }
    .data-\[state\=open\]\:slide-in-from-bottom {
        &[data-state="open"] {
            --tw-enter-translate-y: 100%;
        }
    }
    .data-\[state\=open\]\:slide-in-from-left {
        &[data-state="open"] {
            --tw-enter-translate-x: -100%;
        }
    }
    .data-\[state\=open\]\:slide-in-from-right {
        &[data-state="open"] {
            --tw-enter-translate-x: 100%;
        }
    }
    .data-\[state\=open\]\:slide-in-from-top {
        &[data-state="open"] {
            --tw-enter-translate-y: -100%;
        }
    }
    .data-\[state\=open\]\:hover\:bg-sidebar-accent {
        &[data-state="open"] {
            &:hover {
                @media (hover: hover) {
                    background-color: var(--sidebar-accent);
                }
            }
        }
    }
    .data-\[state\=open\]\:hover\:text-sidebar-accent-foreground {
        &[data-state="open"] {
            &:hover {
                @media (hover: hover) {
                    color: var(--sidebar-accent-foreground);
                }
            }
        }
    }
    .data-\[state\=selected\]\:bg-muted {
        &[data-state="selected"] {
            background-color: var(--muted);
        }
    }
    .sm\:flex {
        @media (width >= 40rem) {
            display: flex;
        }
    }
    .sm\:max-w-sm {
        @media (width >= 40rem) {
            max-width: var(--container-sm);
        }
    }
    .sm\:flex-row {
        @media (width >= 40rem) {
            flex-direction: row;
        }
    }
    .md\:block {
        @media (width >= 48rem) {
            display: block;
        }
    }
    .md\:flex {
        @media (width >= 48rem) {
            display: flex;
        }
    }
    .md\:text-sm {
        @media (width >= 48rem) {
            font-size: var(--text-sm);
            line-height: var(--tw-leading, var(--text-sm--line-height));
        }
    }
    .md\:opacity-0 {
        @media (width >= 48rem) {
            opacity: 0%;
        }
    }
    .md\:peer-data-\[variant\=inset\]\:m-2 {
        @media (width >= 48rem) {
            &:is(:where(.peer)[data-variant="inset"] ~ *) {
                margin: calc(var(--spacing) * 2);
            }
        }
    }
    .md\:peer-data-\[variant\=inset\]\:ml-0 {
        @media (width >= 48rem) {
            &:is(:where(.peer)[data-variant="inset"] ~ *) {
                margin-left: calc(var(--spacing) * 0);
            }
        }
    }
    .md\:peer-data-\[variant\=inset\]\:rounded-xl {
        @media (width >= 48rem) {
            &:is(:where(.peer)[data-variant="inset"] ~ *) {
                border-radius: calc(var(--radius) + 4px);
            }
        }
    }
    .md\:peer-data-\[variant\=inset\]\:shadow-sm {
        @media (width >= 48rem) {
            &:is(:where(.peer)[data-variant="inset"] ~ *) {
                --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
                box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
            }
        }
    }
    .md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2 {
        @media (width >= 48rem) {
            &:is(:where(.peer)[data-variant="inset"] ~ *) {
                &:is(:where(.peer)[data-state="collapsed"] ~ *) {
                    margin-left: calc(var(--spacing) * 2);
                }
            }
        }
    }
    .md\:after\:hidden {
        @media (width >= 48rem) {
            &::after {
                content: var(--tw-content);
                display: none;
            }
        }
    }
    .dark\:border-input {
        &:is(.dark *) {
            border-color: var(--input);
        }
    }
    .dark\:bg-destructive\/60 {
        &:is(.dark *) {
            background-color: var(--destructive);
            @supports (color: color-mix(in lab, red, red)) {
                background-color: color-mix(in oklab, var(--destructive) 60%, transparent);
            }
        }
    }
    .dark\:bg-gray-800 {
        &:is(.dark *) {
            background-color: var(--color-gray-800);
        }
    }
    .dark\:bg-input\/30 {
        &:is(.dark *) {
            background-color: var(--input);
            @supports (color: color-mix(in lab, red, red)) {
                background-color: color-mix(in oklab, var(--input) 30%, transparent);
            }
        }
    }
    .dark\:text-red-400 {
        &:is(.dark *) {
            color: var(--color-red-400);
        }
    }
    .dark\:hover\:bg-accent\/50 {
        &:is(.dark *) {
            &:hover {
                @media (hover: hover) {
                    background-color: var(--accent);
                    @supports (color: color-mix(in lab, red, red)) {
                        background-color: color-mix(in oklab, var(--accent) 50%, transparent);
                    }
                }
            }
        }
    }
    .dark\:hover\:bg-input\/50 {
        &:is(.dark *) {
            &:hover {
                @media (hover: hover) {
                    background-color: var(--input);
                    @supports (color: color-mix(in lab, red, red)) {
                        background-color: color-mix(in oklab, var(--input) 50%, transparent);
                    }
                }
            }
        }
    }
    .dark\:focus-visible\:ring-destructive\/40 {
        &:is(.dark *) {
            &:focus-visible {
                --tw-ring-color: var(--destructive);
                @supports (color: color-mix(in lab, red, red)) {
                    --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);
                }
            }
        }
    }
    .dark\:aria-invalid\:ring-destructive\/40 {
        &:is(.dark *) {
            &[aria-invalid="true"] {
                --tw-ring-color: var(--destructive);
                @supports (color: color-mix(in lab, red, red)) {
                    --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);
                }
            }
        }
    }
    .\[\&_svg\]\:pointer-events-none {
        & svg {
            pointer-events: none;
        }
    }
    .\[\&_svg\]\:shrink-0 {
        & svg {
            flex-shrink: 0;
        }
    }
    .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 {
        & svg:not([class*='size-']) {
            width: calc(var(--spacing) * 4);
            height: calc(var(--spacing) * 4);
        }
    }
    .\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground {
        & svg:not([class*='text-']) {
            color: var(--muted-foreground);
        }
    }
    .\[\&_tr\]\:border-b {
        & tr {
            border-bottom-style: var(--tw-border-style);
            border-bottom-width: 1px;
        }
    }
    .\[\&_tr\:last-child\]\:border-0 {
        & tr:last-child {
            border-style: var(--tw-border-style);
            border-width: 0px;
        }
    }
    .\[\&\:has\(\>\.day-range-end\)\]\:rounded-r-md {
        &:has(>.day-range-end) {
            border-top-right-radius: calc(var(--radius) - 2px);
            border-bottom-right-radius: calc(var(--radius) - 2px);
        }
    }
    .\[\&\:has\(\>\.day-range-start\)\]\:rounded-l-md {
        &:has(>.day-range-start) {
            border-top-left-radius: calc(var(--radius) - 2px);
            border-bottom-left-radius: calc(var(--radius) - 2px);
        }
    }
    .\[\&\:has\(\[aria-selected\]\)\]\:rounded-md {
        &:has([aria-selected]) {
            border-radius: calc(var(--radius) - 2px);
        }
    }
    .\[\&\:has\(\[aria-selected\]\)\]\:bg-accent {
        &:has([aria-selected]) {
            background-color: var(--accent);
        }
    }
    .first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md {
        &:first-child {
            &:has([aria-selected]) {
                border-top-left-radius: calc(var(--radius) - 2px);
                border-bottom-left-radius: calc(var(--radius) - 2px);
            }
        }
    }
    .last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md {
        &:last-child {
            &:has([aria-selected]) {
                border-top-right-radius: calc(var(--radius) - 2px);
                border-bottom-right-radius: calc(var(--radius) - 2px);
            }
        }
    }
    .\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md {
        &:has([aria-selected].day-range-end) {
            border-top-right-radius: calc(var(--radius) - 2px);
            border-bottom-right-radius: calc(var(--radius) - 2px);
        }
    }
    .\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0 {
        &:has([role=checkbox]) {
            padding-right: calc(var(--spacing) * 0);
        }
    }
    .\[\.border-b\]\:pb-6 {
        &:is(.border-b) {
            padding-bottom: calc(var(--spacing) * 6);
        }
    }
    .\[\.border-t\]\:pt-6 {
        &:is(.border-t) {
            padding-top: calc(var(--spacing) * 6);
        }
    }
    .\*\:\[span\]\:last\:flex {
        :is(& > *) {
            &:is(span) {
                &:last-child {
                    display: flex;
                }
            }
        }
    }
    .\*\:\[span\]\:last\:items-center {
        :is(& > *) {
            &:is(span) {
                &:last-child {
                    align-items: center;
                }
            }
        }
    }
    .\*\:\[span\]\:last\:gap-2 {
        :is(& > *) {
            &:is(span) {
                &:last-child {
                    gap: calc(var(--spacing) * 2);
                }
            }
        }
    }
    .\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\] {
        &>[role=checkbox] {
            --tw-translate-y: 2px;
            translate: var(--tw-translate-x) var(--tw-translate-y);
        }
    }
    .\[\&\>button\]\:hidden {
        &>button {
            display: none;
        }
    }
    .\[\&\>span\:last-child\]\:truncate {
        &>span:last-child {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
    }
    .\[\&\>svg\]\:size-4 {
        &>svg {
            width: calc(var(--spacing) * 4);
            height: calc(var(--spacing) * 4);
        }
    }
    .\[\&\>svg\]\:shrink-0 {
        &>svg {
            flex-shrink: 0;
        }
    }
    .\[\&\>svg\]\:text-sidebar-accent-foreground {
        &>svg {
            color: var(--sidebar-accent-foreground);
        }
    }
    .\[\&\>tr\]\:last\:border-b-0 {
        &>tr {
            &:last-child {
                border-bottom-style: var(--tw-border-style);
                border-bottom-width: 0px;
            }
        }
    }
    .\[\&\[data-state\=open\]\>svg\]\:rotate-180 {
        &[data-state=open]>svg {
            rotate: 180deg;
        }
    }
    .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2 {
        [data-side=left][data-collapsible=offcanvas] & {
            right: calc(var(--spacing) * -2);
        }
    }
    .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize {
        [data-side=left][data-state=collapsed] & {
            cursor: e-resize;
        }
    }
    .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2 {
        [data-side=right][data-collapsible=offcanvas] & {
            left: calc(var(--spacing) * -2);
        }
    }
    .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize {
        [data-side=right][data-state=collapsed] & {
            cursor: w-resize;
        }
    }
}
@property --tw-animation-delay {
    syntax: "*";
    inherits: false;
    initial-value: 0s;
}
@property --tw-animation-direction {
    syntax: "*";
    inherits: false;
    initial-value: normal;
}
@property --tw-animation-duration {
    syntax: "*";
    inherits: false;
}
@property --tw-animation-fill-mode {
    syntax: "*";
    inherits: false;
    initial-value: none;
}
@property --tw-animation-iteration-count {
    syntax: "*";
    inherits: false;
    initial-value: 1;
}
@property --tw-enter-blur {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-enter-opacity {
    syntax: "*";
    inherits: false;
    initial-value: 1;
}
@property --tw-enter-rotate {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-enter-scale {
    syntax: "*";
    inherits: false;
    initial-value: 1;
}
@property --tw-enter-translate-x {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-enter-translate-y {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-exit-blur {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-exit-opacity {
    syntax: "*";
    inherits: false;
    initial-value: 1;
}
@property --tw-exit-rotate {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-exit-scale {
    syntax: "*";
    inherits: false;
    initial-value: 1;
}
@property --tw-exit-translate-x {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-exit-translate-y {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 400;
    src: local(''), url(/build/fonts/RobotoRegular.9ff92525.woff) format('woff');
}
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 600;
    src: local(''), url(/build/fonts/RobotoBold.d4fc033d.woff) format('woff');
}
@font-face {
    font-family: 'Intro';
    font-style: normal;
    font-weight: 400;
    src: local(''), url(/build/fonts/Intro.231a4e43.woff) format('woff');
}
html, body {
    margin: 0;
    box-sizing: border-box;
}
body {
    position: relative;
}
table,thead,tbody,tfoot,tr,th,td {
    font-weight: inherit;
}
a, a:hover, button, button:hover {
    text-decoration: none;
}
h1,h2,h3,h4,h5,h6 {
    margin: 0;
    line-height: 1;
}
h1 {
    text-transform: uppercase;
}
button {
    cursor: pointer;
}
:root {
    --primary: #009be5;
    --secondary: #eaeff1;
    --white: #fff;
    --gray: #8492a6;
    --gray-dark: #273444;
    --gray-light: #454f59;
    --card: oklch(1 0 0);
    --card-foreground: oklch(0.145 0 0);
    --popover: oklch(1 0 0);
    --popover-foreground: oklch(0.145 0 0);
    --primary-foreground: oklch(0.985 0 0);
    --secondary-foreground: oklch(0.205 0 0);
    --muted: oklch(0.97 0 0);
    --muted-foreground: oklch(0.556 0 0);
    --accent: oklch(0.97 0 0);
    --accent-foreground: oklch(0.205 0 0);
    --destructive: oklch(0.577 0.245 27.325);
    --destructive-foreground: oklch(0.577 0.245 27.325);
    --border: oklch(0.922 0 0);
    --input: oklch(0.922 0 0);
    --ring: oklch(0.87 0 0);
    --chart-1: oklch(0.646 0.222 41.116);
    --chart-2: oklch(0.6 0.118 184.704);
    --chart-3: oklch(0.398 0.07 227.392);
    --chart-4: oklch(0.828 0.189 84.429);
    --chart-5: oklch(0.769 0.188 70.08);
    --radius: 0.625rem;
    --sidebar: oklch(0.985 0 0);
    --sidebar-foreground: oklch(0.145 0 0);
    --sidebar-primary: oklch(0.205 0 0);
    --sidebar-primary-foreground: oklch(0.985 0 0);
    --sidebar-accent: oklch(0.97 0 0);
    --sidebar-accent-foreground: oklch(0.205 0 0);
    --sidebar-border: oklch(0.922 0 0);
    --sidebar-ring: oklch(0.87 0 0);
    --background: oklch(1 0 0);
    --foreground: oklch(0.141 0.005 285.823);
}
body {
    font-family: "Roboto";
    font-size: 18px;
    line-height: 1.6;
    background-color: var(--secondary);
}
.container {
    width: 80%;
    margin: auto;
}
header {
    background-color: var(--primary);
    color: var(--white);
    padding: 10px 0;
    font-family: "Intro";
}
header a {
    color: var(--white);
}
header .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.brand {
    display: flex;
    align-items: center;
}
.brand span {
    margin-left: 10px;
    text-transform: uppercase;
}
.menu {
    font-size: 14px;
}
.menu a {
    margin: 0 10px;
}
.card {
    background-color: var(--white);
    border-radius: 8px;
    padding: 10px;
    border: 1px solid var(--gray-light);
    box-shadow: 0 3px 12px 0 rgba(34, 60, 80, 0.2);
}
.page-header-wrap {
    margin: 20px 0;
}
.styled-table {
    border-collapse: collapse;
    font-size: 0.9em;
    font-family: sans-serif;
    width: 100%;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
}
.styled-table thead tr {
    background-color: var(--primary);
    color: #ffffff;
    text-align: left;
    font-weight: 600;
}
.styled-table th, .styled-table td {
    padding: 12px;
}
.styled-table tbody tr {
    border-bottom: 1px solid #dddddd;
}
.styled-table tbody tr:nth-of-type(even) {
    background-color: var(--secondary);
}
.styled-table tbody tr:hover {
    color: var(--primary);
    background-color: var(--secondary);
}
.search-input {
    padding: 7px;
    border-radius: 3px;
    border: 1px solid var(--primary);
}
.search-input:focus {
    border: 3px solid var(--primary);
    outline: none;
}
.search-select {
    background-color: transparent;
    border: 1px solid var(--primary);
}
.dark {
    --background: oklch(0.145 0 0);
    --foreground: oklch(0.985 0 0);
    --card: oklch(0.145 0 0);
    --card-foreground: oklch(0.985 0 0);
    --popover: oklch(0.145 0 0);
    --popover-foreground: oklch(0.985 0 0);
    --primary: oklch(0.985 0 0);
    --primary-foreground: oklch(0.205 0 0);
    --secondary: oklch(0.269 0 0);
    --secondary-foreground: oklch(0.985 0 0);
    --muted: oklch(0.269 0 0);
    --muted-foreground: oklch(0.708 0 0);
    --accent: oklch(0.269 0 0);
    --accent-foreground: oklch(0.985 0 0);
    --destructive: oklch(0.396 0.141 25.723);
    --destructive-foreground: oklch(0.637 0.237 25.331);
    --border: oklch(0.269 0 0);
    --input: oklch(0.269 0 0);
    --ring: oklch(0.439 0 0);
    --chart-1: oklch(0.488 0.243 264.376);
    --chart-2: oklch(0.696 0.17 162.48);
    --chart-3: oklch(0.769 0.188 70.08);
    --chart-4: oklch(0.627 0.265 303.9);
    --chart-5: oklch(0.645 0.246 16.439);
    --sidebar: oklch(0.205 0 0);
    --sidebar-foreground: oklch(0.985 0 0);
    --sidebar-primary: oklch(0.488 0.243 264.376);
    --sidebar-primary-foreground: oklch(0.985 0 0);
    --sidebar-accent: oklch(0.269 0 0);
    --sidebar-accent-foreground: oklch(0.985 0 0);
    --sidebar-border: oklch(0.269 0 0);
    --sidebar-ring: oklch(0.439 0 0);
}
@layer base {
    * {
        border-color: var(--border);
        outline-color: var(--ring);
        @supports (color: color-mix(in lab, red, red)) {
            outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
        }
    }
    body {
        background-color: var(--background);
        color: var(--foreground);
    }
}
@property --tw-translate-x {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-translate-y {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-translate-z {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-space-y-reverse {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-space-x-reverse {
    syntax: "*";
    inherits: false;
    initial-value: 0;
}
@property --tw-border-style {
    syntax: "*";
    inherits: false;
    initial-value: solid;
}
@property --tw-leading {
    syntax: "*";
    inherits: false;
}
@property --tw-font-weight {
    syntax: "*";
    inherits: false;
}
@property --tw-ordinal {
    syntax: "*";
    inherits: false;
}
@property --tw-slashed-zero {
    syntax: "*";
    inherits: false;
}
@property --tw-numeric-figure {
    syntax: "*";
    inherits: false;
}
@property --tw-numeric-spacing {
    syntax: "*";
    inherits: false;
}
@property --tw-numeric-fraction {
    syntax: "*";
    inherits: false;
}
@property --tw-shadow {
    syntax: "*";
    inherits: false;
    initial-value: 0 0 #0000;
}
@property --tw-shadow-color {
    syntax: "*";
    inherits: false;
}
@property --tw-shadow-alpha {
    syntax: "<percentage>";
    inherits: false;
    initial-value: 100%;
}
@property --tw-inset-shadow {
    syntax: "*";
    inherits: false;
    initial-value: 0 0 #0000;
}
@property --tw-inset-shadow-color {
    syntax: "*";
    inherits: false;
}
@property --tw-inset-shadow-alpha {
    syntax: "<percentage>";
    inherits: false;
    initial-value: 100%;
}
@property --tw-ring-color {
    syntax: "*";
    inherits: false;
}
@property --tw-ring-shadow {
    syntax: "*";
    inherits: false;
    initial-value: 0 0 #0000;
}
@property --tw-inset-ring-color {
    syntax: "*";
    inherits: false;
}
@property --tw-inset-ring-shadow {
    syntax: "*";
    inherits: false;
    initial-value: 0 0 #0000;
}
@property --tw-ring-inset {
    syntax: "*";
    inherits: false;
}
@property --tw-ring-offset-width {
    syntax: "<length>";
    inherits: false;
    initial-value: 0px;
}
@property --tw-ring-offset-color {
    syntax: "*";
    inherits: false;
    initial-value: #fff;
}
@property --tw-ring-offset-shadow {
    syntax: "*";
    inherits: false;
    initial-value: 0 0 #0000;
}
@property --tw-outline-style {
    syntax: "*";
    inherits: false;
    initial-value: solid;
}
@property --tw-duration {
    syntax: "*";
    inherits: false;
}
@property --tw-ease {
    syntax: "*";
    inherits: false;
}
@property --tw-content {
    syntax: "*";
    initial-value: "";
    inherits: false;
}
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}
@keyframes pulse {
    50% {
        opacity: 0.5;
    }
}
@keyframes enter {
    from {
        opacity: var(--tw-enter-opacity,1);
        transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));
        filter: blur(var(--tw-enter-blur,0));
    }
}
@keyframes exit {
    to {
        opacity: var(--tw-exit-opacity,1);
        transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));
        filter: blur(var(--tw-exit-blur,0));
    }
}
@keyframes accordion-down {
    from {
        height: 0;
    }
    to {
        height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))));
    }
}
@keyframes accordion-up {
    from {
        height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))));
    }
    to {
        height: 0;
    }
}
@keyframes accordion-down {
    from {
        height: 0;
    }
    to {
        height: var(--radix-accordion-content-height);
    }
}
@keyframes accordion-up {
    from {
        height: var(--radix-accordion-content-height);
    }
    to {
        height: 0;
    }
}
@layer properties {
    @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
        *, ::before, ::after, ::backdrop {
            --tw-translate-x: 0;
            --tw-translate-y: 0;
            --tw-translate-z: 0;
            --tw-space-y-reverse: 0;
            --tw-space-x-reverse: 0;
            --tw-border-style: solid;
            --tw-leading: initial;
            --tw-font-weight: initial;
            --tw-ordinal: initial;
            --tw-slashed-zero: initial;
            --tw-numeric-figure: initial;
            --tw-numeric-spacing: initial;
            --tw-numeric-fraction: initial;
            --tw-shadow: 0 0 #0000;
            --tw-shadow-color: initial;
            --tw-shadow-alpha: 100%;
            --tw-inset-shadow: 0 0 #0000;
            --tw-inset-shadow-color: initial;
            --tw-inset-shadow-alpha: 100%;
            --tw-ring-color: initial;
            --tw-ring-shadow: 0 0 #0000;
            --tw-inset-ring-color: initial;
            --tw-inset-ring-shadow: 0 0 #0000;
            --tw-ring-inset: initial;
            --tw-ring-offset-width: 0px;
            --tw-ring-offset-color: #fff;
            --tw-ring-offset-shadow: 0 0 #0000;
            --tw-outline-style: solid;
            --tw-duration: initial;
            --tw-ease: initial;
            --tw-content: "";
            --tw-animation-delay: 0s;
            --tw-animation-direction: normal;
            --tw-animation-duration: initial;
            --tw-animation-fill-mode: none;
            --tw-animation-iteration-count: 1;
            --tw-enter-blur: 0;
            --tw-enter-opacity: 1;
            --tw-enter-rotate: 0;
            --tw-enter-scale: 1;
            --tw-enter-translate-x: 0;
            --tw-enter-translate-y: 0;
            --tw-exit-blur: 0;
            --tw-exit-opacity: 1;
            --tw-exit-rotate: 0;
            --tw-exit-scale: 1;
            --tw-exit-translate-x: 0;
            --tw-exit-translate-y: 0;
        }
    }
}










.dark {
    --background: oklch(0.145 0 0);
    --foreground: oklch(0.985 0 0);
    --card: oklch(0.145 0 0);
    --card-foreground: oklch(0.985 0 0);
    --popover: oklch(0.145 0 0);
    --popover-foreground: oklch(0.985 0 0);
    --primary: oklch(0.985 0 0);
    --primary-foreground: oklch(0.205 0 0);
    --secondary: oklch(0.269 0 0);
    --secondary-foreground: oklch(0.985 0 0);
    --muted: oklch(0.269 0 0);
    --muted-foreground: oklch(0.708 0 0);
    --accent: oklch(0.269 0 0);
    --accent-foreground: oklch(0.985 0 0);
    --destructive: oklch(0.396 0.141 25.723);
    --destructive-foreground: oklch(0.637 0.237 25.331);
    --border: oklch(0.269 0 0);
    --input: oklch(0.269 0 0);
    --ring: oklch(0.439 0 0);
    --chart-1: oklch(0.488 0.243 264.376);
    --chart-2: oklch(0.696 0.17 162.48);
    --chart-3: oklch(0.769 0.188 70.08);
    --chart-4: oklch(0.627 0.265 303.9);
    --chart-5: oklch(0.645 0.246 16.439);
    --sidebar: oklch(0.205 0 0);
    --sidebar-foreground: oklch(0.985 0 0);
    --sidebar-primary: oklch(0.488 0.243 264.376);
    --sidebar-primary-foreground: oklch(0.985 0 0);
    --sidebar-accent: oklch(0.269 0 0);
    --sidebar-accent-foreground: oklch(0.985 0 0);
    --sidebar-border: oklch(0.269 0 0);
    --sidebar-ring: oklch(0.439 0 0);
}

@theme inline {
    --color-background: var(--background);
    --color-foreground: var(--foreground);
    --color-card: var(--card);
    --color-card-foreground: var(--card-foreground);
    --color-popover: var(--popover);
    --color-popover-foreground: var(--popover-foreground);
    --color-primary: var(--primary);
    --color-primary-foreground: var(--primary-foreground);
    --color-secondary: var(--secondary);
    --color-secondary-foreground: var(--secondary-foreground);
    --color-muted: var(--muted);
    --color-muted-foreground: var(--muted-foreground);
    --color-accent: var(--accent);
    --color-accent-foreground: var(--accent-foreground);
    --color-destructive: var(--destructive);
    --color-destructive-foreground: var(--destructive-foreground);
    --color-border: var(--border);
    --color-input: var(--input);
    --color-ring: var(--ring);
    --color-chart-1: var(--chart-1);
    --color-chart-2: var(--chart-2);
    --color-chart-3: var(--chart-3);
    --color-chart-4: var(--chart-4);
    --color-chart-5: var(--chart-5);
    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
    --color-sidebar: var(--sidebar);
    --color-sidebar-foreground: var(--sidebar-foreground);
    --color-sidebar-primary: var(--sidebar-primary);
    --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
    --color-sidebar-accent: var(--sidebar-accent);
    --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
    --color-sidebar-border: var(--sidebar-border);
    --color-sidebar-ring: var(--sidebar-ring);
    --animate-accordion-down: accordion-down 0.2s ease-out;
    --animate-accordion-up: accordion-up 0.2s ease-out;

    @keyframes accordion-down {
        from {
            height: 0;
        }
        to {
            height: var(--radix-accordion-content-height);
        }
    }

    @keyframes accordion-up {
        from {
            height: var(--radix-accordion-content-height);
        }
        to {
            height: 0;
        }
    }
}



.author-filters {
    display: flex;
    align-items: center;
    gap: 10px;
}

.accordion {
    cursor: pointer;
    padding: 10px;
}

.accordion:hover {
    background-color: #e8f7f8;
}

.content {
    overflow: hidden;
    max-height: 0;
    transition: all 0.5s ease;
}

.content-inner {
    padding: 15px;
}
.add-book-button {
    padding-top: 20px;
}

.date-input {

}

.button {
    font-size: 14px;
    padding: 5px 10px;
    border-radius: 4px;
    transition: all ease-in-out .2s;
}
button.cancel, .button.cancel {
    background-color: #eee;
}
button.cancel:hover, .button.cancel:hover {
    background-color: #d1d1d1;
}
.button-form {
    width: 100%;
    text-align: center;
}

.form-block {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 10px;
}




.flash {
    padding: 12px 16px;
    border-radius: 6px;
    margin: 10px auto;
    width: fit-content;
    min-width: 250px;
    font-size: 15px;
    text-align: center;
    opacity: 0;
    animation: fade-in 0.3s ease forwards, fade-out 0.3s ease forwards 4s;
    position: absolute;
    top: 0;
    right: 0;
}

.flash-error {
    background: #ffe2e2;
    border: 1px solid #ff8a8a;
    color: #b10000;
}

.flash-success {
    background: #e2ffe7;
    border: 1px solid #7edc7e;
    color: #006915;
}

@keyframes fade-in {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes fade-out {
    from { opacity: 1; transform: translateY(0); }
    to   { opacity: 0; transform: translateY(-8px); }
}


.form-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 40px;
    justify-content: center;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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YixzQkFBc0I7SUFDdEIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQix1QkFBdUI7QUFDM0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2FwcC5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiEqKiogY3NzIC4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMTNdLm9uZU9mWzEwXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMTNdLm9uZU9mWzEwXS51c2VbM10hLi9hcHAvZ2xvYmFscy5jc3MgKioqIVxuXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohIHRhaWx3aW5kY3NzIHY0LjEuMTcgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tICovXG5AbGF5ZXIgcHJvcGVydGllcztcbkBsYXllciB0aGVtZSwgYmFzZSwgY29tcG9uZW50cywgdXRpbGl0aWVzO1xuQGxheWVyIHRoZW1lIHtcbiAgICA6cm9vdCwgOmhvc3Qge1xuICAgICAgICAtLWZvbnQtc2FuczogdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsXG4gICAgICAgIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gICAgICAgIC0tZm9udC1tb25vOiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIixcbiAgICAgICAgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gICAgICAgIC0tY29sb3ItcmVkLTUwOiBva2xjaCg5Ny4xJSAwLjAxMyAxNy4zOCk7XG4gICAgICAgIC0tY29sb3ItcmVkLTQwMDogb2tsY2goNzAuNCUgMC4xOTEgMjIuMjE2KTtcbiAgICAgICAgLS1jb2xvci1yZWQtNTAwOiBva2xjaCg2My43JSAwLjIzNyAyNS4zMzEpO1xuICAgICAgICAtLWNvbG9yLXJlZC04MDA6IG9rbGNoKDQ0LjQlIDAuMTc3IDI2Ljg5OSk7XG4gICAgICAgIC0tY29sb3ItZ3JheS04MDA6IG9rbGNoKDI3LjglIDAuMDMzIDI1Ni44NDgpO1xuICAgICAgICAtLWNvbG9yLXppbmMtNTAwOiBva2xjaCg1NS4yJSAwLjAxNiAyODUuOTM4KTtcbiAgICAgICAgLS1jb2xvci16aW5jLTgwMDogb2tsY2goMjcuNCUgMC4wMDYgMjg2LjAzMyk7XG4gICAgICAgIC0tY29sb3ItYmxhY2s6ICMwMDA7XG4gICAgICAgIC0tY29sb3Itd2hpdGU6ICNmZmY7XG4gICAgICAgIC0tc3BhY2luZzogMC4yNXJlbTtcbiAgICAgICAgLS1jb250YWluZXItc206IDI0cmVtO1xuICAgICAgICAtLXRleHQteHM6IDAuNzVyZW07XG4gICAgICAgIC0tdGV4dC14cy0tbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDAuNzUpO1xuICAgICAgICAtLXRleHQtc206IDAuODc1cmVtO1xuICAgICAgICAtLXRleHQtc20tLWxpbmUtaGVpZ2h0OiBjYWxjKDEuMjUgLyAwLjg3NSk7XG4gICAgICAgIC0tdGV4dC1iYXNlOiAxcmVtO1xuICAgICAgICAtLXRleHQtYmFzZS0tbGluZS1oZWlnaHQ6IGNhbGMoMS41IC8gMSk7XG4gICAgICAgIC0tdGV4dC1sZzogMS4xMjVyZW07XG4gICAgICAgIC0tdGV4dC1sZy0tbGluZS1oZWlnaHQ6IGNhbGMoMS43NSAvIDEuMTI1KTtcbiAgICAgICAgLS10ZXh0LXhsOiAxLjI1cmVtO1xuICAgICAgICAtLXRleHQteGwtLWxpbmUtaGVpZ2h0OiBjYWxjKDEuNzUgLyAxLjI1KTtcbiAgICAgICAgLS10ZXh0LTN4bDogMS44NzVyZW07XG4gICAgICAgIC0tdGV4dC0zeGwtLWxpbmUtaGVpZ2h0OiBjYWxjKDIuMjUgLyAxLjg3NSk7XG4gICAgICAgIC0tZm9udC13ZWlnaHQtbm9ybWFsOiA0MDA7XG4gICAgICAgIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4gICAgICAgIC0tZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcbiAgICAgICAgLS1mb250LXdlaWdodC1ib2xkOiA3MDA7XG4gICAgICAgIC0tcmFkaXVzLXhzOiAwLjEyNXJlbTtcbiAgICAgICAgLS1lYXNlLWluLW91dDogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgICAgLS1hbmltYXRlLXNwaW46IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICAtLWFuaW1hdGUtcHVsc2U6IHB1bHNlIDJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSkgaW5maW5pdGU7XG4gICAgICAgIC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcbiAgICAgICAgLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgICAgICAtLWRlZmF1bHQtZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc2Fucyk7XG4gICAgICAgIC0tZGVmYXVsdC1tb25vLWZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICAgIH1cbn1cbkBsYXllciBiYXNlIHtcbiAgICAqLCA6OmFmdGVyLCA6OmJlZm9yZSwgOjpiYWNrZHJvcCwgOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAwIHNvbGlkO1xuICAgIH1cbiAgICBodG1sLCA6aG9zdCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAgICAgdGFiLXNpemU6IDQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1kZWZhdWx0LWZvbnQtZmFtaWx5LCB1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIik7XG4gICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogdmFyKC0tZGVmYXVsdC1mb250LWZlYXR1cmUtc2V0dGluZ3MsIG5vcm1hbCk7XG4gICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiB2YXIoLS1kZWZhdWx0LWZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLCBub3JtYWwpO1xuICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgICBociB7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbiAgICB9XG4gICAgYWJicjp3aGVyZShbdGl0bGVdKSB7XG4gICAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gICAgfVxuICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIH1cbiAgICBhIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgfVxuICAgIGIsIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgfVxuICAgIGNvZGUsIGtiZCwgc2FtcCwgcHJlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWRlZmF1bHQtbW9uby1mb250LWZhbWlseSwgdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlKTtcbiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiB2YXIoLS1kZWZhdWx0LW1vbm8tZm9udC1mZWF0dXJlLXNldHRpbmdzLCBub3JtYWwpO1xuICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogdmFyKC0tZGVmYXVsdC1tb25vLWZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLCBub3JtYWwpO1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICB9XG4gICAgc21hbGwge1xuICAgICAgICBmb250LXNpemU6IDgwJTtcbiAgICB9XG4gICAgc3ViLCBzdXAge1xuICAgICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cbiAgICBzdWIge1xuICAgICAgICBib3R0b206IC0wLjI1ZW07XG4gICAgfVxuICAgIHN1cCB7XG4gICAgICAgIHRvcDogLTAuNWVtO1xuICAgIH1cbiAgICB0YWJsZSB7XG4gICAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgICAgICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgfVxuICAgIDotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIG91dGxpbmU6IGF1dG87XG4gICAgfVxuICAgIHByb2dyZXNzIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cbiAgICBzdW1tYXJ5IHtcbiAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cbiAgICBvbCwgdWwsIG1lbnUge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgICBpbWcsIHN2ZywgdmlkZW8sIGNhbnZhcywgYXVkaW8sIGlmcmFtZSwgZW1iZWQsIG9iamVjdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgICBpbWcsIHZpZGVvIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIGJ1dHRvbiwgaW5wdXQsIHNlbGVjdCwgb3B0Z3JvdXAsIHRleHRhcmVhLCA6OmZpbGUtc2VsZWN0b3ItYnV0dG9uIHtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0O1xuICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5oZXJpdDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgOndoZXJlKHNlbGVjdDppcyhbbXVsdGlwbGVdLCBbc2l6ZV0pKSBvcHRncm91cCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgfVxuICAgIDp3aGVyZShzZWxlY3Q6aXMoW211bHRpcGxlXSwgW3NpemVdKSkgb3B0Z3JvdXAgb3B0aW9uIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDIwcHg7XG4gICAgfVxuICAgIDo6ZmlsZS1zZWxlY3Rvci1idXR0b24ge1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNHB4O1xuICAgIH1cbiAgICA6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgQHN1cHBvcnRzIChub3QgKC13ZWJraXQtYXBwZWFyYW5jZTogLWFwcGxlLXBheS1idXR0b24pKSAgb3IgKGNvbnRhaW4taW50cmluc2ljLXNpemU6IDFweCkge1xuICAgICAgICA6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBjdXJyZW50Y29sb3I7XG4gICAgICAgICAgICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCBjdXJyZW50Y29sb3IgNTAlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGV4dGFyZWEge1xuICAgICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIH1cbiAgICA6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgfVxuICAgIDo6LXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIHtcbiAgICAgICAgbWluLWhlaWdodDogMWxoO1xuICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgIH1cbiAgICA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIH1cbiAgICA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1maWVsZHMtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LCA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkLCA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZCwgOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkLCA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1ob3VyLWZpZWxkLCA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1taW51dGUtZmllbGQsIDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXNlY29uZC1maWVsZCwgOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtbWlsbGlzZWNvbmQtZmllbGQsIDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1lcmlkaWVtLWZpZWxkIHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICB9XG4gICAgOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3Ige1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG4gICAgOi1tb3otdWktaW52YWxpZCB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICAgIGJ1dHRvbiwgaW5wdXQ6d2hlcmUoW3R5cGU9XCJidXR0b25cIl0sIFt0eXBlPVwicmVzZXRcIl0sIFt0eXBlPVwic3VibWl0XCJdKSwgOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gICAgICAgIGFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgICB9XG4gICAgOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLCA6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIFtoaWRkZW5dOndoZXJlKDpub3QoW2hpZGRlbj1cInVudGlsLWZvdW5kXCJdKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuQGxheWVyIHV0aWxpdGllcyB7XG4gICAgLlxcQGNvbnRhaW5lclxcL2NhcmQtaGVhZGVyIHtcbiAgICAgICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xuICAgICAgICBjb250YWluZXItbmFtZTogY2FyZC1oZWFkZXI7XG4gICAgfVxuICAgIC5wb2ludGVyLWV2ZW50cy1ub25lIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICAgIC5pbnZpc2libGUge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICAgIC5zci1vbmx5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICB9XG4gICAgLmFic29sdXRlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgICAuZml4ZWQge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICAgIC5yZWxhdGl2ZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLmluc2V0LTAge1xuICAgICAgICBpbnNldDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDApO1xuICAgIH1cbiAgICAuaW5zZXQteC0wIHtcbiAgICAgICAgaW5zZXQtaW5saW5lOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMCk7XG4gICAgfVxuICAgIC5pbnNldC15LTAge1xuICAgICAgICBpbnNldC1ibG9jazogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDApO1xuICAgIH1cbiAgICAudG9wLTAge1xuICAgICAgICB0b3A6IGNhbGModmFyKC0tc3BhY2luZykgKiAwKTtcbiAgICB9XG4gICAgLnRvcC0xXFwuNSB7XG4gICAgICAgIHRvcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEuNSk7XG4gICAgfVxuICAgIC50b3AtM1xcLjUge1xuICAgICAgICB0b3A6IGNhbGModmFyKC0tc3BhY2luZykgKiAzLjUpO1xuICAgIH1cbiAgICAudG9wLTQge1xuICAgICAgICB0b3A6IGNhbGModmFyKC0tc3BhY2luZykgKiA0KTtcbiAgICB9XG4gICAgLnJpZ2h0LTAge1xuICAgICAgICByaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDApO1xuICAgIH1cbiAgICAucmlnaHQtMSB7XG4gICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogMSk7XG4gICAgfVxuICAgIC5yaWdodC0yIHtcbiAgICAgICAgcmlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAyKTtcbiAgICB9XG4gICAgLnJpZ2h0LTMge1xuICAgICAgICByaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDMpO1xuICAgIH1cbiAgICAucmlnaHQtNCB7XG4gICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogNCk7XG4gICAgfVxuICAgIC5ib3R0b20tMCB7XG4gICAgICAgIGJvdHRvbTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDApO1xuICAgIH1cbiAgICAubGVmdC0wIHtcbiAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDApO1xuICAgIH1cbiAgICAubGVmdC0xIHtcbiAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpO1xuICAgIH1cbiAgICAuei0xMCB7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgIH1cbiAgICAuei0yMCB7XG4gICAgICAgIHotaW5kZXg6IDIwO1xuICAgIH1cbiAgICAuei01MCB7XG4gICAgICAgIHotaW5kZXg6IDUwO1xuICAgIH1cbiAgICAuY29sLXN0YXJ0LTIge1xuICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMjtcbiAgICB9XG4gICAgLnJvdy1zcGFuLTIge1xuICAgICAgICBncmlkLXJvdzogc3BhbiAyIC8gc3BhbiAyO1xuICAgIH1cbiAgICAucm93LXN0YXJ0LTEge1xuICAgICAgICBncmlkLXJvdy1zdGFydDogMTtcbiAgICB9XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBAbWVkaWEgKHdpZHRoID49IDQwcmVtKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDQwcmVtO1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSAod2lkdGggPj0gNDhyZW0pIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNDhyZW07XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhICh3aWR0aCA+PSA2NHJlbSkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2NHJlbTtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgKHdpZHRoID49IDgwcmVtKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDgwcmVtO1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSAod2lkdGggPj0gOTZyZW0pIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogOTZyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLi1teC0xIHtcbiAgICAgICAgbWFyZ2luLWlubGluZTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIC0xKTtcbiAgICB9XG4gICAgLm14LTIge1xuICAgICAgICBtYXJnaW4taW5saW5lOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMik7XG4gICAgfVxuICAgIC5teC0zXFwuNSB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IGNhbGModmFyKC0tc3BhY2luZykgKiAzLjUpO1xuICAgIH1cbiAgICAubXktMSB7XG4gICAgICAgIG1hcmdpbi1ibG9jazogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpO1xuICAgIH1cbiAgICAubXQtMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc3BhY2luZykgKiAyKTtcbiAgICB9XG4gICAgLm10LTQge1xuICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNCk7XG4gICAgfVxuICAgIC5tdC0xOCB7XG4gICAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc3BhY2luZykgKiAxOCk7XG4gICAgfVxuICAgIC5tdC1hdXRvIHtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICB9XG4gICAgLm1yLTIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAyKTtcbiAgICB9XG4gICAgLm1iLTQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNCk7XG4gICAgfVxuICAgIC5tYi01IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDUpO1xuICAgIH1cbiAgICAubWwtMyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogMyk7XG4gICAgfVxuICAgIC5mbGV4IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gICAgLmdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgIH1cbiAgICAuaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmlubGluZS1mbGV4IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuICAgIC50YWJsZSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cbiAgICAudGFibGUtY2FwdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG4gICAgfVxuICAgIC50YWJsZS1jZWxsIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gICAgLnRhYmxlLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICB9XG4gICAgLmZpZWxkLXNpemluZy1jb250ZW50IHtcbiAgICAgICAgZmllbGQtc2l6aW5nOiBjb250ZW50O1xuICAgIH1cbiAgICAuYXNwZWN0LXNxdWFyZSB7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgfVxuICAgIC5zaXplLTJcXC41IHtcbiAgICAgICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiAyLjUpO1xuICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAyLjUpO1xuICAgIH1cbiAgICAuc2l6ZS0zXFwuNSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMy41KTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogMy41KTtcbiAgICB9XG4gICAgLnNpemUtNCB7XG4gICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNCk7XG4gICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDQpO1xuICAgIH1cbiAgICAuc2l6ZS03IHtcbiAgICAgICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiA3KTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogNyk7XG4gICAgfVxuICAgIC5zaXplLTgge1xuICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDgpO1xuICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiA4KTtcbiAgICB9XG4gICAgLnNpemUtOSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNpbmcpICogOSk7XG4gICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDkpO1xuICAgIH1cbiAgICAuaC00IHtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogNCk7XG4gICAgfVxuICAgIC5oLTUge1xuICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiA1KTtcbiAgICB9XG4gICAgLmgtNyB7XG4gICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDcpO1xuICAgIH1cbiAgICAuaC04IHtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogOCk7XG4gICAgfVxuICAgIC5oLTkge1xuICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiA5KTtcbiAgICB9XG4gICAgLmgtMTAge1xuICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAxMCk7XG4gICAgfVxuICAgIC5oLTEyIHtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogMTIpO1xuICAgIH1cbiAgICAuaC1cXFt2YXJcXCgtLXJhZGl4LXNlbGVjdC10cmlnZ2VyLWhlaWdodFxcKVxcXSB7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcmFkaXgtc2VsZWN0LXRyaWdnZXItaGVpZ2h0KTtcbiAgICB9XG4gICAgLmgtYXV0byB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgLmgtZnVsbCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgLmgtcHgge1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICB9XG4gICAgLmgtc3ZoIHtcbiAgICAgICAgaGVpZ2h0OiAxMDBzdmg7XG4gICAgfVxuICAgIC5tYXgtaC1cXCgtLXJhZGl4LXNlbGVjdC1jb250ZW50LWF2YWlsYWJsZS1oZWlnaHRcXCkge1xuICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS1yYWRpeC1zZWxlY3QtY29udGVudC1hdmFpbGFibGUtaGVpZ2h0KTtcbiAgICB9XG4gICAgLm1pbi1oLTAge1xuICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogMCk7XG4gICAgfVxuICAgIC5taW4taC0xNiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAxNik7XG4gICAgfVxuICAgIC5taW4taC1zY3JlZW4ge1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICB9XG4gICAgLm1pbi1oLXN2aCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMHN2aDtcbiAgICB9XG4gICAgLnctXFwoLS1zaWRlYmFyLXdpZHRoXFwpIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgpO1xuICAgIH1cbiAgICAudy0zXFwvNCB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDMvNCAqIDEwMCUpO1xuICAgIH1cbiAgICAudy00IHtcbiAgICAgICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiA0KTtcbiAgICB9XG4gICAgLnctNSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNSk7XG4gICAgfVxuICAgIC53LTgge1xuICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDgpO1xuICAgIH1cbiAgICAudy03MiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNzIpO1xuICAgIH1cbiAgICAudy1cXFsxMTBweFxcXSB7XG4gICAgICAgIHdpZHRoOiAxMTBweDtcbiAgICB9XG4gICAgLnctXFxbMTgwcHhcXF0ge1xuICAgICAgICB3aWR0aDogMTgwcHg7XG4gICAgfVxuICAgIC53LVxcWzI1MHB4XFxdIHtcbiAgICAgICAgd2lkdGg6IDI1MHB4O1xuICAgIH1cbiAgICAudy1cXFs0MDBweFxcXSB7XG4gICAgICAgIHdpZHRoOiA0MDBweDtcbiAgICB9XG4gICAgLnctYXV0byB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICAudy1maXQge1xuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgfVxuICAgIC53LWZ1bGwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLm1heC13LVxcKC0tc2tlbGV0b24td2lkdGhcXCkge1xuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLXNrZWxldG9uLXdpZHRoKTtcbiAgICB9XG4gICAgLm1heC13LXNtIHtcbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXItc20pO1xuICAgIH1cbiAgICAubWluLXctMCB7XG4gICAgICAgIG1pbi13aWR0aDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDApO1xuICAgIH1cbiAgICAubWluLXctNSB7XG4gICAgICAgIG1pbi13aWR0aDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDUpO1xuICAgIH1cbiAgICAubWluLXctXFxbOHJlbVxcXSB7XG4gICAgICAgIG1pbi13aWR0aDogOHJlbTtcbiAgICB9XG4gICAgLm1pbi13LVxcW3ZhclxcKC0tcmFkaXgtc2VsZWN0LXRyaWdnZXItd2lkdGhcXClcXF0ge1xuICAgICAgICBtaW4td2lkdGg6IHZhcigtLXJhZGl4LXNlbGVjdC10cmlnZ2VyLXdpZHRoKTtcbiAgICB9XG4gICAgLmZsZXgtMSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxuICAgIC5zaHJpbmstMCB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgICAuY2FwdGlvbi1ib3R0b20ge1xuICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbiAgICB9XG4gICAgLmJvcmRlci1jb2xsYXBzZSB7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgfVxuICAgIC5vcmlnaW4tXFwoLS1yYWRpeC1wb3BvdmVyLWNvbnRlbnQtdHJhbnNmb3JtLW9yaWdpblxcKSB7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHZhcigtLXJhZGl4LXBvcG92ZXItY29udGVudC10cmFuc2Zvcm0tb3JpZ2luKTtcbiAgICB9XG4gICAgLm9yaWdpbi1cXCgtLXJhZGl4LXNlbGVjdC1jb250ZW50LXRyYW5zZm9ybS1vcmlnaW5cXCkge1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB2YXIoLS1yYWRpeC1zZWxlY3QtY29udGVudC10cmFuc2Zvcm0tb3JpZ2luKTtcbiAgICB9XG4gICAgLm9yaWdpbi1cXCgtLXJhZGl4LXRvb2x0aXAtY29udGVudC10cmFuc2Zvcm0tb3JpZ2luXFwpIHtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdmFyKC0tcmFkaXgtdG9vbHRpcC1jb250ZW50LXRyYW5zZm9ybS1vcmlnaW4pO1xuICAgIH1cbiAgICAuLXRyYW5zbGF0ZS14LTFcXC8yIHtcbiAgICAgICAgLS10dy10cmFuc2xhdGUteDogY2FsYyhjYWxjKDEvMiAqIDEwMCUpICogLTEpO1xuICAgICAgICB0cmFuc2xhdGU6IHZhcigtLXR3LXRyYW5zbGF0ZS14KSB2YXIoLS10dy10cmFuc2xhdGUteSk7XG4gICAgfVxuICAgIC4tdHJhbnNsYXRlLXgtcHgge1xuICAgICAgICAtLXR3LXRyYW5zbGF0ZS14OiAtMXB4O1xuICAgICAgICB0cmFuc2xhdGU6IHZhcigtLXR3LXRyYW5zbGF0ZS14KSB2YXIoLS10dy10cmFuc2xhdGUteSk7XG4gICAgfVxuICAgIC50cmFuc2xhdGUteC1weCB7XG4gICAgICAgIC0tdHctdHJhbnNsYXRlLXg6IDFweDtcbiAgICAgICAgdHJhbnNsYXRlOiB2YXIoLS10dy10cmFuc2xhdGUteCkgdmFyKC0tdHctdHJhbnNsYXRlLXkpO1xuICAgIH1cbiAgICAudHJhbnNsYXRlLXktMFxcLjUge1xuICAgICAgICAtLXR3LXRyYW5zbGF0ZS15OiBjYWxjKHZhcigtLXNwYWNpbmcpICogMC41KTtcbiAgICAgICAgdHJhbnNsYXRlOiB2YXIoLS10dy10cmFuc2xhdGUteCkgdmFyKC0tdHctdHJhbnNsYXRlLXkpO1xuICAgIH1cbiAgICAudHJhbnNsYXRlLXktXFxbY2FsY1xcKC01MFxcJV8tXzJweFxcKVxcXSB7XG4gICAgICAgIC0tdHctdHJhbnNsYXRlLXk6IGNhbGMoLTUwJSAtIDJweCk7XG4gICAgICAgIHRyYW5zbGF0ZTogdmFyKC0tdHctdHJhbnNsYXRlLXgpIHZhcigtLXR3LXRyYW5zbGF0ZS15KTtcbiAgICB9XG4gICAgLnJvdGF0ZS00NSB7XG4gICAgICAgIHJvdGF0ZTogNDVkZWc7XG4gICAgfVxuICAgIC5hbmltYXRlLWluIHtcbiAgICAgICAgYW5pbWF0aW9uOiBlbnRlciB2YXIoLS10dy1hbmltYXRpb24tZHVyYXRpb24sdmFyKC0tdHctZHVyYXRpb24sLjE1cykpdmFyKC0tdHctZWFzZSxlYXNlKXZhcigtLXR3LWFuaW1hdGlvbi1kZWxheSwwcyl2YXIoLS10dy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LDEpdmFyKC0tdHctYW5pbWF0aW9uLWRpcmVjdGlvbixub3JtYWwpdmFyKC0tdHctYW5pbWF0aW9uLWZpbGwtbW9kZSxub25lKTtcbiAgICB9XG4gICAgLmFuaW1hdGUtcHVsc2Uge1xuICAgICAgICBhbmltYXRpb246IHZhcigtLWFuaW1hdGUtcHVsc2UpO1xuICAgIH1cbiAgICAuYW5pbWF0ZS1zcGluIHtcbiAgICAgICAgYW5pbWF0aW9uOiB2YXIoLS1hbmltYXRlLXNwaW4pO1xuICAgIH1cbiAgICAuY3Vyc29yLWRlZmF1bHQge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICAgIC5jdXJzb3ItcG9pbnRlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgLnNjcm9sbC1teS0xIHtcbiAgICAgICAgc2Nyb2xsLW1hcmdpbi1ibG9jazogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpO1xuICAgIH1cbiAgICAuYXV0by1yb3dzLW1pbiB7XG4gICAgICAgIGdyaWQtYXV0by1yb3dzOiBtaW4tY29udGVudDtcbiAgICB9XG4gICAgLmdyaWQtcm93cy1cXFthdXRvX2F1dG9cXF0ge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0bztcbiAgICB9XG4gICAgLmZsZXgtY29sIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgLml0ZW1zLWNlbnRlciB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIC5pdGVtcy1zdGFydCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICAuanVzdGlmeS1iZXR3ZWVuIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cbiAgICAuanVzdGlmeS1jZW50ZXIge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gICAgLmp1c3RpZnktZW5kIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG4gICAgLmp1c3RpZnktc3RhcnQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICAgIC5nYXAtMSB7XG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpO1xuICAgIH1cbiAgICAuZ2FwLTFcXC41IHtcbiAgICAgICAgZ2FwOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMS41KTtcbiAgICB9XG4gICAgLmdhcC0yIHtcbiAgICAgICAgZ2FwOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMik7XG4gICAgfVxuICAgIC5nYXAtNCB7XG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDQpO1xuICAgIH1cbiAgICAuZ2FwLTYge1xuICAgICAgICBnYXA6IGNhbGModmFyKC0tc3BhY2luZykgKiA2KTtcbiAgICB9XG4gICAgLnNwYWNlLXktNCB7XG4gICAgICAgIDp3aGVyZSgmID4gOm5vdCg6bGFzdC1jaGlsZCkpIHtcbiAgICAgICAgICAgIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBjYWxjKGNhbGModmFyKC0tc3BhY2luZykgKiA0KSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogY2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNwYWNlLXktNiB7XG4gICAgICAgIDp3aGVyZSgmID4gOm5vdCg6bGFzdC1jaGlsZCkpIHtcbiAgICAgICAgICAgIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBjYWxjKGNhbGModmFyKC0tc3BhY2luZykgKiA2KSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogY2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpICogNikgKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdhcC14LTIge1xuICAgICAgICBjb2x1bW4tZ2FwOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMik7XG4gICAgfVxuICAgIC5zcGFjZS14LTEge1xuICAgICAgICA6d2hlcmUoJiA+IDpub3QoOmxhc3QtY2hpbGQpKSB7XG4gICAgICAgICAgICAtLXR3LXNwYWNlLXgtcmV2ZXJzZTogMDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpICogdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSk7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogY2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpICogMSkgKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdhcC15LTQge1xuICAgICAgICByb3ctZ2FwOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNCk7XG4gICAgfVxuICAgIC5zZWxmLXN0YXJ0IHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICB9XG4gICAgLmp1c3RpZnktc2VsZi1lbmQge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xuICAgIH1cbiAgICAub3ZlcmZsb3ctYXV0byB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cbiAgICAub3ZlcmZsb3ctaGlkZGVuIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgLm92ZXJmbG93LXgtYXV0byB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgfVxuICAgIC5vdmVyZmxvdy14LWhpZGRlbiB7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB9XG4gICAgLm92ZXJmbG93LXktYXV0byB7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuICAgIC5yb3VuZGVkLVxcWzJweFxcXSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICB9XG4gICAgLnJvdW5kZWQtbGcge1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICAgIH1cbiAgICAucm91bmRlZC1tZCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7XG4gICAgfVxuICAgIC5yb3VuZGVkLXNtIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1yYWRpdXMpIC0gNHB4KTtcbiAgICB9XG4gICAgLnJvdW5kZWQteHMge1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteHMpO1xuICAgIH1cbiAgICAuYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICB9XG4gICAgLmJvcmRlci10IHtcbiAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogdmFyKC0tdHctYm9yZGVyLXN0eWxlKTtcbiAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xuICAgIH1cbiAgICAuYm9yZGVyLXIge1xuICAgICAgICBib3JkZXItcmlnaHQtc3R5bGU6IHZhcigtLXR3LWJvcmRlci1zdHlsZSk7XG4gICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICAgIH1cbiAgICAuYm9yZGVyLWIge1xuICAgICAgICBib3JkZXItYm90dG9tLXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgfVxuICAgIC5ib3JkZXItbCB7XG4gICAgICAgIGJvcmRlci1sZWZ0LXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgIH1cbiAgICAuYm9yZGVyLWlucHV0IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dCk7XG4gICAgfVxuICAgIC5ib3JkZXItc2lkZWJhci1ib3JkZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNpZGViYXItYm9yZGVyKTtcbiAgICB9XG4gICAgLmJnLWFjY2VudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7XG4gICAgfVxuICAgIC5iZy1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZCk7XG4gICAgfVxuICAgIC5iZy1ibGFja1xcLzUwIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsICMwMDAgNTAlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1ibGFjaykgNTAlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmJnLWJvcmRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJvcmRlcik7XG4gICAgfVxuICAgIC5iZy1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZCk7XG5cbiAgICB9XG4gICAgLmJnLWRlc3RydWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVzdHJ1Y3RpdmUpO1xuICAgIH1cbiAgICAuYmctbXV0ZWRcXC81MCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW11dGVkKTtcbiAgICAgICAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLW11dGVkKSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYmctcG9wb3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBvcG92ZXIpO1xuICAgIH1cbiAgICAuYmctcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xuICAgIH1cbiAgICAuYmctcmVkLTUwIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcmVkLTUwKTtcbiAgICB9XG4gICAgLmJnLXNlY29uZGFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG4gICAgfVxuICAgIC5iZy1zaWRlYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2lkZWJhcik7XG4gICAgfVxuICAgIC5iZy1zaWRlYmFyLWJvcmRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNpZGViYXItYm9yZGVyKTtcbiAgICB9XG4gICAgLmJnLXRyYW5zcGFyZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIC5maWxsLXByaW1hcnkge1xuICAgICAgICBmaWxsOiB2YXIoLS1wcmltYXJ5KTtcbiAgICB9XG4gICAgLnAtMCB7XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc3BhY2luZykgKiAwKTtcbiAgICB9XG4gICAgLnAtMSB7XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc3BhY2luZykgKiAxKTtcbiAgICB9XG4gICAgLnAtMiB7XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc3BhY2luZykgKiAyKTtcbiAgICB9XG4gICAgLnAtMyB7XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc3BhY2luZykgKiAzKTtcbiAgICB9XG4gICAgLnAtNCB7XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc3BhY2luZykgKiA0KTtcbiAgICB9XG4gICAgLnAtNiB7XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc3BhY2luZykgKiA2KTtcbiAgICB9XG4gICAgLnAtMjQge1xuICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMjQpO1xuICAgIH1cbiAgICAucC1cXFsyMHB4XFxdIHtcbiAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICB9XG4gICAgLnB4LTEge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpO1xuICAgIH1cbiAgICAucHgtMiB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMik7XG4gICAgfVxuICAgIC5weC0yXFwuNSB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMi41KTtcbiAgICB9XG4gICAgLnB4LTMge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDMpO1xuICAgIH1cbiAgICAucHgtNCB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNCk7XG4gICAgfVxuICAgIC5weC02IHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IGNhbGModmFyKC0tc3BhY2luZykgKiA2KTtcbiAgICB9XG4gICAgLnB5LTBcXC41IHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDAuNSk7XG4gICAgfVxuICAgIC5weS0xIHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpO1xuICAgIH1cbiAgICAucHktMVxcLjUge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMS41KTtcbiAgICB9XG4gICAgLnB5LTIge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMik7XG4gICAgfVxuICAgIC5weS00IHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDQpO1xuICAgIH1cbiAgICAucHQtMCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMCk7XG4gICAgfVxuICAgIC5wdC0xIHtcbiAgICAgICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tc3BhY2luZykgKiAxKTtcbiAgICB9XG4gICAgLnByLTgge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogOCk7XG4gICAgfVxuICAgIC5wYi00IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tc3BhY2luZykgKiA0KTtcbiAgICB9XG4gICAgLnBsLTIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAyKTtcbiAgICB9XG4gICAgLnRleHQtY2VudGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAudGV4dC1sZWZ0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgLmFsaWduLW1pZGRsZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICAgIC50ZXh0LTN4bCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tdHctbGVhZGluZywgdmFyKC0tdGV4dC0zeGwtLWxpbmUtaGVpZ2h0KSk7XG4gICAgfVxuICAgIC50ZXh0LWJhc2Uge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXRleHQtYmFzZSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS10dy1sZWFkaW5nLCB2YXIoLS10ZXh0LWJhc2UtLWxpbmUtaGVpZ2h0KSk7XG4gICAgfVxuICAgIC50ZXh0LWxnIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXR3LWxlYWRpbmcsIHZhcigtLXRleHQtbGctLWxpbmUtaGVpZ2h0KSk7XG4gICAgfVxuICAgIC50ZXh0LXNtIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXR3LWxlYWRpbmcsIHZhcigtLXRleHQtc20tLWxpbmUtaGVpZ2h0KSk7XG4gICAgfVxuICAgIC50ZXh0LXhsIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhsKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXR3LWxlYWRpbmcsIHZhcigtLXRleHQteGwtLWxpbmUtaGVpZ2h0KSk7XG4gICAgfVxuICAgIC50ZXh0LXhzIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhzKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXR3LWxlYWRpbmcsIHZhcigtLXRleHQteHMtLWxpbmUtaGVpZ2h0KSk7XG4gICAgfVxuICAgIC50ZXh0LVxcWzBcXC44cmVtXFxdIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgfVxuICAgIC5sZWFkaW5nLW5vbmUge1xuICAgICAgICAtLXR3LWxlYWRpbmc6IDE7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cbiAgICAuZm9udC1ib2xkIHtcbiAgICAgICAgLS10dy1mb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgICB9XG4gICAgLmZvbnQtbWVkaXVtIHtcbiAgICAgICAgLS10dy1mb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gICAgfVxuICAgIC5mb250LW5vcm1hbCB7XG4gICAgICAgIC0tdHctZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW5vcm1hbCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ub3JtYWwpO1xuICAgIH1cbiAgICAuZm9udC1zZW1pYm9sZCB7XG4gICAgICAgIC0tdHctZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG4gICAgLnRleHQtYmFsYW5jZSB7XG4gICAgICAgIHRleHQtd3JhcDogYmFsYW5jZTtcbiAgICB9XG4gICAgLndoaXRlc3BhY2Utbm93cmFwIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gICAgLnRleHQtYWNjZW50LWZvcmVncm91bmQge1xuICAgICAgICBjb2xvcjogdmFyKC0tYWNjZW50LWZvcmVncm91bmQpO1xuICAgIH1cbiAgICAudGV4dC1jYXJkLWZvcmVncm91bmQge1xuICAgICAgICBjb2xvcjogdmFyKC0tY2FyZC1mb3JlZ3JvdW5kKTtcbiAgICB9XG4gICAgLnRleHQtZGVzdHJ1Y3RpdmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tZGVzdHJ1Y3RpdmUpO1xuICAgIH1cbiAgICAudGV4dC1mb3JlZ3JvdW5kIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgIH1cbiAgICAudGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHtcbiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpO1xuICAgIH1cbiAgICAudGV4dC1wb3BvdmVyLWZvcmVncm91bmQge1xuICAgICAgICBjb2xvcjogdmFyKC0tcG9wb3Zlci1mb3JlZ3JvdW5kKTtcbiAgICB9XG4gICAgLnRleHQtcHJpbWFyeSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgICB9XG4gICAgLnRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktZm9yZWdyb3VuZCk7XG4gICAgfVxuICAgIC50ZXh0LXJlZC01MDAge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTUwMCk7XG4gICAgfVxuICAgIC50ZXh0LXJlZC04MDAge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTgwMCk7XG4gICAgfVxuICAgIC50ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1mb3JlZ3JvdW5kKTtcbiAgICB9XG4gICAgLnRleHQtc2lkZWJhci1mb3JlZ3JvdW5kIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZm9yZWdyb3VuZCk7XG4gICAgfVxuICAgIC50ZXh0LXNpZGViYXItZm9yZWdyb3VuZFxcLzcwIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZm9yZWdyb3VuZCk7XG4gICAgICAgIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tc2lkZWJhci1mb3JlZ3JvdW5kKSA3MCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAudGV4dC13aGl0ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgfVxuICAgIC50ZXh0LXppbmMtNTAwIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXppbmMtNTAwKTtcbiAgICB9XG4gICAgLnRleHQtemluYy04MDAge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItemluYy04MDApO1xuICAgIH1cbiAgICAudGFidWxhci1udW1zIHtcbiAgICAgICAgLS10dy1udW1lcmljLXNwYWNpbmc6IHRhYnVsYXItbnVtcztcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHZhcigtLXR3LW9yZGluYWwsKSB2YXIoLS10dy1zbGFzaGVkLXplcm8sKSB2YXIoLS10dy1udW1lcmljLWZpZ3VyZSwpIHZhcigtLXR3LW51bWVyaWMtc3BhY2luZywpIHZhcigtLXR3LW51bWVyaWMtZnJhY3Rpb24sKTtcbiAgICB9XG4gICAgLnVuZGVybGluZS1vZmZzZXQtNCB7XG4gICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogNHB4O1xuICAgIH1cbiAgICAuYW50aWFsaWFzZWQge1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gICAgLm9wYWNpdHktMjUge1xuICAgICAgICBvcGFjaXR5OiAyNSU7XG4gICAgfVxuICAgIC5vcGFjaXR5LTUwIHtcbiAgICAgICAgb3BhY2l0eTogNTAlO1xuICAgIH1cbiAgICAub3BhY2l0eS03MCB7XG4gICAgICAgIG9wYWNpdHk6IDcwJTtcbiAgICB9XG4gICAgLm9wYWNpdHktNzUge1xuICAgICAgICBvcGFjaXR5OiA3NSU7XG4gICAgfVxuICAgIC5zaGFkb3ctXFxbMF8wXzBfMXB4X2hzbFxcKHZhclxcKC0tc2lkZWJhci1ib3JkZXJcXClcXClcXF0ge1xuICAgICAgICAtLXR3LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwgaHNsKHZhcigtLXNpZGViYXItYm9yZGVyKSkpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS10dy1pbnNldC1zaGFkb3cpLCB2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93KTtcbiAgICB9XG4gICAgLnNoYWRvdy1sZyB7XG4gICAgICAgIC0tdHctc2hhZG93OiAwIDEwcHggMTVweCAtM3B4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwgcmdiKDAgMCAwIC8gMC4xKSksIDAgNHB4IDZweCAtNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwgcmdiKDAgMCAwIC8gMC4xKSk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXR3LWluc2V0LXNoYWRvdyksIHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSwgdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3cpO1xuICAgIH1cbiAgICAuc2hhZG93LW1kIHtcbiAgICAgICAgLS10dy1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwgcmdiKDAgMCAwIC8gMC4xKSksIDAgMnB4IDRweCAtMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwgcmdiKDAgMCAwIC8gMC4xKSk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXR3LWluc2V0LXNoYWRvdyksIHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSwgdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3cpO1xuICAgIH1cbiAgICAuc2hhZG93LW5vbmUge1xuICAgICAgICAtLXR3LXNoYWRvdzogMCAwICMwMDAwO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS10dy1pbnNldC1zaGFkb3cpLCB2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93KTtcbiAgICB9XG4gICAgLnNoYWRvdy1zbSB7XG4gICAgICAgIC0tdHctc2hhZG93OiAwIDFweCAzcHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIHJnYigwIDAgMCAvIDAuMSkpLCAwIDFweCAycHggLTFweCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIHJnYigwIDAgMCAvIDAuMSkpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS10dy1pbnNldC1zaGFkb3cpLCB2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93KTtcbiAgICB9XG4gICAgLnNoYWRvdy14cyB7XG4gICAgICAgIC0tdHctc2hhZG93OiAwIDFweCAycHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIHJnYigwIDAgMCAvIDAuMDUpKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tdHctaW5zZXQtc2hhZG93KSwgdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXNoYWRvdyk7XG4gICAgfVxuICAgIC5yaW5nLXNpZGViYXItcmluZyB7XG4gICAgICAgIC0tdHctcmluZy1jb2xvcjogdmFyKC0tc2lkZWJhci1yaW5nKTtcbiAgICB9XG4gICAgLnJpbmctb2Zmc2V0LWJhY2tncm91bmQge1xuICAgICAgICAtLXR3LXJpbmctb2Zmc2V0LWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kKTtcbiAgICB9XG4gICAgLm91dGxpbmUtaGlkZGVuIHtcbiAgICAgICAgLS10dy1vdXRsaW5lLXN0eWxlOiBub25lO1xuICAgICAgICBvdXRsaW5lLXN0eWxlOiBub25lO1xuICAgICAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAub3V0bGluZSB7XG4gICAgICAgIG91dGxpbmUtc3R5bGU6IHZhcigtLXR3LW91dGxpbmUtc3R5bGUpO1xuICAgICAgICBvdXRsaW5lLXdpZHRoOiAxcHg7XG4gICAgfVxuICAgIC50cmFuc2l0aW9uIHtcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgb3V0bGluZS1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIC0tdHctZ3JhZGllbnQtZnJvbSwgLS10dy1ncmFkaWVudC12aWEsIC0tdHctZ3JhZGllbnQtdG8sIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgdHJhbnNsYXRlLCBzY2FsZSwgcm90YXRlLCBmaWx0ZXIsIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyLCBiYWNrZHJvcC1maWx0ZXIsIGRpc3BsYXksIGNvbnRlbnQtdmlzaWJpbGl0eSwgb3ZlcmxheSwgcG9pbnRlci1ldmVudHM7XG4gICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10dy1lYXNlLCB2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSk7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXR3LWR1cmF0aW9uLCB2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24pKTtcbiAgICB9XG4gICAgLnRyYW5zaXRpb24tXFxbY29sb3JcXCxib3gtc2hhZG93XFxdIHtcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsYm94LXNoYWRvdztcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXR3LWVhc2UsIHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHctZHVyYXRpb24sIHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbikpO1xuICAgIH1cbiAgICAudHJhbnNpdGlvbi1cXFtsZWZ0XFwscmlnaHRcXCx3aWR0aFxcXSB7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQscmlnaHQsd2lkdGg7XG4gICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10dy1lYXNlLCB2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSk7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXR3LWR1cmF0aW9uLCB2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24pKTtcbiAgICB9XG4gICAgLnRyYW5zaXRpb24tXFxbbWFyZ2luXFwsb3BhY2l0eVxcXSB7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG1hcmdpbixvcGFjaXR5O1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHctZWFzZSwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10dy1kdXJhdGlvbiwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uKSk7XG4gICAgfVxuICAgIC50cmFuc2l0aW9uLVxcW3dpZHRoXFwsaGVpZ2h0XFwscGFkZGluZ1xcXSB7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHdpZHRoLGhlaWdodCxwYWRkaW5nO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHctZWFzZSwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10dy1kdXJhdGlvbiwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uKSk7XG4gICAgfVxuICAgIC50cmFuc2l0aW9uLVxcW3dpZHRoXFxdIHtcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogd2lkdGg7XG4gICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10dy1lYXNlLCB2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSk7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXR3LWR1cmF0aW9uLCB2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24pKTtcbiAgICB9XG4gICAgLnRyYW5zaXRpb24tYWxsIHtcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHctZWFzZSwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10dy1kdXJhdGlvbiwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uKSk7XG4gICAgfVxuICAgIC50cmFuc2l0aW9uLWNvbG9ycyB7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsIG91dGxpbmUtY29sb3IsIHRleHQtZGVjb3JhdGlvbi1jb2xvciwgZmlsbCwgc3Ryb2tlLCAtLXR3LWdyYWRpZW50LWZyb20sIC0tdHctZ3JhZGllbnQtdmlhLCAtLXR3LWdyYWRpZW50LXRvO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHctZWFzZSwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10dy1kdXJhdGlvbiwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uKSk7XG4gICAgfVxuICAgIC50cmFuc2l0aW9uLW9wYWNpdHkge1xuICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHctZWFzZSwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10dy1kdXJhdGlvbiwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uKSk7XG4gICAgfVxuICAgIC50cmFuc2l0aW9uLXRyYW5zZm9ybSB7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgdHJhbnNsYXRlLCBzY2FsZSwgcm90YXRlO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHctZWFzZSwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10dy1kdXJhdGlvbiwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uKSk7XG4gICAgfVxuICAgIC5kdXJhdGlvbi0yMDAge1xuICAgICAgICAtLXR3LWR1cmF0aW9uOiAyMDBtcztcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjAwbXM7XG4gICAgfVxuICAgIC5lYXNlLWluLW91dCB7XG4gICAgICAgIC0tdHctZWFzZTogdmFyKC0tZWFzZS1pbi1vdXQpO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZWFzZS1pbi1vdXQpO1xuICAgIH1cbiAgICAuZWFzZS1saW5lYXIge1xuICAgICAgICAtLXR3LWVhc2U6IGxpbmVhcjtcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICB9XG4gICAgLmZhZGUtaW4tMCB7XG4gICAgICAgIC0tdHctZW50ZXItb3BhY2l0eTogY2FsYygwLzEwMCk7XG4gICAgICAgIC0tdHctZW50ZXItb3BhY2l0eTogMDtcbiAgICB9XG4gICAgLm91dGxpbmUtbm9uZSB7XG4gICAgICAgIC0tdHctb3V0bGluZS1zdHlsZTogbm9uZTtcbiAgICAgICAgb3V0bGluZS1zdHlsZTogbm9uZTtcbiAgICB9XG4gICAgLnNlbGVjdC1ub25lIHtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuICAgIC56b29tLWluLTk1IHtcbiAgICAgICAgLS10dy1lbnRlci1zY2FsZTogY2FsYyg5NSoxJSk7XG4gICAgICAgIC0tdHctZW50ZXItc2NhbGU6IC45NTtcbiAgICB9XG4gICAgLmdyb3VwLWZvY3VzLXdpdGhpblxcL21lbnUtaXRlbVxcOm9wYWNpdHktMTAwIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwXFwvbWVudS1pdGVtKTpmb2N1cy13aXRoaW4gKikge1xuICAgICAgICAgICAgb3BhY2l0eTogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JvdXAtaG92ZXJcXC9tZW51LWl0ZW1cXDpvcGFjaXR5LTEwMCB7XG4gICAgICAgICY6aXMoOndoZXJlKC5ncm91cFxcL21lbnUtaXRlbSk6aG92ZXIgKikge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5ncm91cC1oYXMtZGF0YS1cXFtzaWRlYmFyXFw9bWVudS1hY3Rpb25cXF1cXC9tZW51LWl0ZW1cXDpwci04IHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwXFwvbWVudS1pdGVtKTpoYXMoKltkYXRhLXNpZGViYXI9XCJtZW51LWFjdGlvblwiXSkgKikge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ncm91cC1kYXRhLVxcW2NvbGxhcHNpYmxlXFw9aWNvblxcXVxcOi1tdC04IHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWNvbGxhcHNpYmxlPVwiaWNvblwiXSAqKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNwYWNpbmcpICogLTgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ncm91cC1kYXRhLVxcW2NvbGxhcHNpYmxlXFw9aWNvblxcXVxcOmhpZGRlbiB7XG4gICAgICAgICY6aXMoOndoZXJlKC5ncm91cClbZGF0YS1jb2xsYXBzaWJsZT1cImljb25cIl0gKikge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JvdXAtZGF0YS1cXFtjb2xsYXBzaWJsZVxcPWljb25cXF1cXDpzaXplLThcXCEge1xuICAgICAgICAmOmlzKDp3aGVyZSguZ3JvdXApW2RhdGEtY29sbGFwc2libGU9XCJpY29uXCJdICopIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNpbmcpICogOCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDgpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdyb3VwLWRhdGEtXFxbY29sbGFwc2libGVcXD1pY29uXFxdXFw6dy1cXCgtLXNpZGViYXItd2lkdGgtaWNvblxcKSB7XG4gICAgICAgICY6aXMoOndoZXJlKC5ncm91cClbZGF0YS1jb2xsYXBzaWJsZT1cImljb25cIl0gKikge1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgtaWNvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdyb3VwLWRhdGEtXFxbY29sbGFwc2libGVcXD1pY29uXFxdXFw6dy1cXFtjYWxjXFwodmFyXFwoLS1zaWRlYmFyLXdpZHRoLWljb25cXClcXCtcXCgtLXNwYWNpbmdcXCg0XFwpXFwpXFwpXFxdIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWNvbGxhcHNpYmxlPVwiaWNvblwiXSAqKSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1zaWRlYmFyLXdpZHRoLWljb24pICsgKGNhbGModmFyKC0tc3BhY2luZykgKiA0KSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ncm91cC1kYXRhLVxcW2NvbGxhcHNpYmxlXFw9aWNvblxcXVxcOnctXFxbY2FsY1xcKHZhclxcKC0tc2lkZWJhci13aWR0aC1pY29uXFwpXFwrXFwoLS1zcGFjaW5nXFwoNFxcKVxcKVxcKzJweFxcKVxcXSB7XG4gICAgICAgICY6aXMoOndoZXJlKC5ncm91cClbZGF0YS1jb2xsYXBzaWJsZT1cImljb25cIl0gKikge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGModmFyKC0tc2lkZWJhci13aWR0aC1pY29uKSArIChjYWxjKHZhcigtLXNwYWNpbmcpICogNCkpICsgMnB4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JvdXAtZGF0YS1cXFtjb2xsYXBzaWJsZVxcPWljb25cXF1cXDpvdmVyZmxvdy1oaWRkZW4ge1xuICAgICAgICAmOmlzKDp3aGVyZSguZ3JvdXApW2RhdGEtY29sbGFwc2libGU9XCJpY29uXCJdICopIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdyb3VwLWRhdGEtXFxbY29sbGFwc2libGVcXD1pY29uXFxdXFw6cC0wXFwhIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWNvbGxhcHNpYmxlPVwiaWNvblwiXSAqKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JvdXAtZGF0YS1cXFtjb2xsYXBzaWJsZVxcPWljb25cXF1cXDpwLTJcXCEge1xuICAgICAgICAmOmlzKDp3aGVyZSguZ3JvdXApW2RhdGEtY29sbGFwc2libGU9XCJpY29uXCJdICopIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc3BhY2luZykgKiAyKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ncm91cC1kYXRhLVxcW2NvbGxhcHNpYmxlXFw9aWNvblxcXVxcOm9wYWNpdHktMCB7XG4gICAgICAgICY6aXMoOndoZXJlKC5ncm91cClbZGF0YS1jb2xsYXBzaWJsZT1cImljb25cIl0gKikge1xuICAgICAgICAgICAgb3BhY2l0eTogMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdyb3VwLWRhdGEtXFxbY29sbGFwc2libGVcXD1vZmZjYW52YXNcXF1cXDpyaWdodC1cXFtjYWxjXFwodmFyXFwoLS1zaWRlYmFyLXdpZHRoXFwpXFwqLTFcXClcXF0ge1xuICAgICAgICAmOmlzKDp3aGVyZSguZ3JvdXApW2RhdGEtY29sbGFwc2libGU9XCJvZmZjYW52YXNcIl0gKikge1xuICAgICAgICAgICAgcmlnaHQ6IGNhbGModmFyKC0tc2lkZWJhci13aWR0aCkgKiAtMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdyb3VwLWRhdGEtXFxbY29sbGFwc2libGVcXD1vZmZjYW52YXNcXF1cXDpsZWZ0LVxcW2NhbGNcXCh2YXJcXCgtLXNpZGViYXItd2lkdGhcXClcXCotMVxcKVxcXSB7XG4gICAgICAgICY6aXMoOndoZXJlKC5ncm91cClbZGF0YS1jb2xsYXBzaWJsZT1cIm9mZmNhbnZhc1wiXSAqKSB7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLXNpZGViYXItd2lkdGgpICogLTEpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ncm91cC1kYXRhLVxcW2NvbGxhcHNpYmxlXFw9b2ZmY2FudmFzXFxdXFw6dy0wIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWNvbGxhcHNpYmxlPVwib2ZmY2FudmFzXCJdICopIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdyb3VwLWRhdGEtXFxbY29sbGFwc2libGVcXD1vZmZjYW52YXNcXF1cXDp0cmFuc2xhdGUteC0wIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWNvbGxhcHNpYmxlPVwib2ZmY2FudmFzXCJdICopIHtcbiAgICAgICAgICAgIC0tdHctdHJhbnNsYXRlLXg6IGNhbGModmFyKC0tc3BhY2luZykgKiAwKTtcbiAgICAgICAgICAgIHRyYW5zbGF0ZTogdmFyKC0tdHctdHJhbnNsYXRlLXgpIHZhcigtLXR3LXRyYW5zbGF0ZS15KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JvdXAtZGF0YS1cXFtkaXNhYmxlZFxcPXRydWVcXF1cXDpwb2ludGVyLWV2ZW50cy1ub25lIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWRpc2FibGVkPVwidHJ1ZVwiXSAqKSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JvdXAtZGF0YS1cXFtkaXNhYmxlZFxcPXRydWVcXF1cXDpvcGFjaXR5LTUwIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWRpc2FibGVkPVwidHJ1ZVwiXSAqKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdyb3VwLWRhdGEtXFxbc2lkZVxcPWxlZnRcXF1cXDotcmlnaHQtNCB7XG4gICAgICAgICY6aXMoOndoZXJlKC5ncm91cClbZGF0YS1zaWRlPVwibGVmdFwiXSAqKSB7XG4gICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIC00KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JvdXAtZGF0YS1cXFtzaWRlXFw9bGVmdFxcXVxcOmJvcmRlci1yIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLXNpZGU9XCJsZWZ0XCJdICopIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC1zdHlsZTogdmFyKC0tdHctYm9yZGVyLXN0eWxlKTtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ncm91cC1kYXRhLVxcW3NpZGVcXD1yaWdodFxcXVxcOmxlZnQtMCB7XG4gICAgICAgICY6aXMoOndoZXJlKC5ncm91cClbZGF0YS1zaWRlPVwicmlnaHRcIl0gKikge1xuICAgICAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ncm91cC1kYXRhLVxcW3NpZGVcXD1yaWdodFxcXVxcOnJvdGF0ZS0xODAge1xuICAgICAgICAmOmlzKDp3aGVyZSguZ3JvdXApW2RhdGEtc2lkZT1cInJpZ2h0XCJdICopIHtcbiAgICAgICAgICAgIHJvdGF0ZTogMTgwZGVnO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ncm91cC1kYXRhLVxcW3NpZGVcXD1yaWdodFxcXVxcOmJvcmRlci1sIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLXNpZGU9XCJyaWdodFwiXSAqKSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1zdHlsZTogdmFyKC0tdHctYm9yZGVyLXN0eWxlKTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdyb3VwLWRhdGEtXFxbdmFyaWFudFxcPWZsb2F0aW5nXFxdXFw6cm91bmRlZC1sZyB7XG4gICAgICAgICY6aXMoOndoZXJlKC5ncm91cClbZGF0YS12YXJpYW50PVwiZmxvYXRpbmdcIl0gKikge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JvdXAtZGF0YS1cXFt2YXJpYW50XFw9ZmxvYXRpbmdcXF1cXDpib3JkZXIge1xuICAgICAgICAmOmlzKDp3aGVyZSguZ3JvdXApW2RhdGEtdmFyaWFudD1cImZsb2F0aW5nXCJdICopIHtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogdmFyKC0tdHctYm9yZGVyLXN0eWxlKTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ncm91cC1kYXRhLVxcW3ZhcmlhbnRcXD1mbG9hdGluZ1xcXVxcOmJvcmRlci1zaWRlYmFyLWJvcmRlciB7XG4gICAgICAgICY6aXMoOndoZXJlKC5ncm91cClbZGF0YS12YXJpYW50PVwiZmxvYXRpbmdcIl0gKikge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdyb3VwLWRhdGEtXFxbdmFyaWFudFxcPWZsb2F0aW5nXFxdXFw6c2hhZG93LXNtIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLXZhcmlhbnQ9XCJmbG9hdGluZ1wiXSAqKSB7XG4gICAgICAgICAgICAtLXR3LXNoYWRvdzogMCAxcHggM3B4IDAgdmFyKC0tdHctc2hhZG93LWNvbG9yLCByZ2IoMCAwIDAgLyAwLjEpKSwgMCAxcHggMnB4IC0xcHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCByZ2IoMCAwIDAgLyAwLjEpKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXR3LWluc2V0LXNoYWRvdyksIHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSwgdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3cpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5wZWVyLWhvdmVyXFwvbWVudS1idXR0b25cXDp0ZXh0LXNpZGViYXItYWNjZW50LWZvcmVncm91bmQge1xuICAgICAgICAmOmlzKDp3aGVyZSgucGVlclxcL21lbnUtYnV0dG9uKTpob3ZlciB+ICopIHtcbiAgICAgICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50LWZvcmVncm91bmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5wZWVyLWRpc2FibGVkXFw6Y3Vyc29yLW5vdC1hbGxvd2VkIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLnBlZXIpOmRpc2FibGVkIH4gKikge1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAucGVlci1kaXNhYmxlZFxcOm9wYWNpdHktNTAge1xuICAgICAgICAmOmlzKDp3aGVyZSgucGVlcik6ZGlzYWJsZWQgfiAqKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnBlZXItZGF0YS1cXFthY3RpdmVcXD10cnVlXFxdXFwvbWVudS1idXR0b25cXDp0ZXh0LXNpZGViYXItYWNjZW50LWZvcmVncm91bmQge1xuICAgICAgICAmOmlzKDp3aGVyZSgucGVlclxcL21lbnUtYnV0dG9uKVtkYXRhLWFjdGl2ZT1cInRydWVcIl0gfiAqKSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnBlZXItZGF0YS1cXFtzaXplXFw9ZGVmYXVsdFxcXVxcL21lbnUtYnV0dG9uXFw6dG9wLTFcXC41IHtcbiAgICAgICAgJjppcyg6d2hlcmUoLnBlZXJcXC9tZW51LWJ1dHRvbilbZGF0YS1zaXplPVwiZGVmYXVsdFwiXSB+ICopIHtcbiAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEuNSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnBlZXItZGF0YS1cXFtzaXplXFw9bGdcXF1cXC9tZW51LWJ1dHRvblxcOnRvcC0yXFwuNSB7XG4gICAgICAgICY6aXMoOndoZXJlKC5wZWVyXFwvbWVudS1idXR0b24pW2RhdGEtc2l6ZT1cImxnXCJdIH4gKikge1xuICAgICAgICAgICAgdG9wOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMi41KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAucGVlci1kYXRhLVxcW3NpemVcXD1zbVxcXVxcL21lbnUtYnV0dG9uXFw6dG9wLTEge1xuICAgICAgICAmOmlzKDp3aGVyZSgucGVlclxcL21lbnUtYnV0dG9uKVtkYXRhLXNpemU9XCJzbVwiXSB+ICopIHtcbiAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zZWxlY3Rpb25cXDpiZy1wcmltYXJ5IHtcbiAgICAgICAgJiAqOjpzZWxlY3Rpb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICAgICAgJjo6c2VsZWN0aW9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zZWxlY3Rpb25cXDp0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCB7XG4gICAgICAgICYgKjo6c2VsZWN0aW9uIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvcmVncm91bmQpO1xuICAgICAgICB9XG4gICAgICAgICY6OnNlbGVjdGlvbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1mb3JlZ3JvdW5kKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZmlsZVxcOmlubGluZS1mbGV4IHtcbiAgICAgICAgJjo6ZmlsZS1zZWxlY3Rvci1idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZpbGVcXDpoLTcge1xuICAgICAgICAmOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiA3KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZmlsZVxcOmJvcmRlci0wIHtcbiAgICAgICAgJjo6ZmlsZS1zZWxlY3Rvci1idXR0b24ge1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZpbGVcXDpiZy10cmFuc3BhcmVudCB7XG4gICAgICAgICY6OmZpbGUtc2VsZWN0b3ItYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5maWxlXFw6dGV4dC1zbSB7XG4gICAgICAgICY6OmZpbGUtc2VsZWN0b3ItYnV0dG9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tdHctbGVhZGluZywgdmFyKC0tdGV4dC1zbS0tbGluZS1oZWlnaHQpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZmlsZVxcOmZvbnQtbWVkaXVtIHtcbiAgICAgICAgJjo6ZmlsZS1zZWxlY3Rvci1idXR0b24ge1xuICAgICAgICAgICAgLS10dy1mb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5maWxlXFw6dGV4dC1mb3JlZ3JvdW5kIHtcbiAgICAgICAgJjo6ZmlsZS1zZWxlY3Rvci1idXR0b24ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5wbGFjZWhvbGRlclxcOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCB7XG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWZ0ZXJcXDphYnNvbHV0ZSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHZhcigtLXR3LWNvbnRlbnQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hZnRlclxcOi1pbnNldC0yIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogdmFyKC0tdHctY29udGVudCk7XG4gICAgICAgICAgICBpbnNldDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIC0yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWZ0ZXJcXDppbnNldC15LTAge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiB2YXIoLS10dy1jb250ZW50KTtcbiAgICAgICAgICAgIGluc2V0LWJsb2NrOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmFmdGVyXFw6bGVmdC0xXFwvMiB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHZhcigtLXR3LWNvbnRlbnQpO1xuICAgICAgICAgICAgbGVmdDogY2FsYygxLzIgKiAxMDAlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWZ0ZXJcXDp3LVxcWzJweFxcXSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHZhcigtLXR3LWNvbnRlbnQpO1xuICAgICAgICAgICAgd2lkdGg6IDJweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JvdXAtZGF0YS1cXFtjb2xsYXBzaWJsZVxcPW9mZmNhbnZhc1xcXVxcOmFmdGVyXFw6bGVmdC1mdWxsIHtcbiAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWNvbGxhcHNpYmxlPVwib2ZmY2FudmFzXCJdICopIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiB2YXIoLS10dy1jb250ZW50KTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5sYXN0XFw6Ym9yZGVyLWItMCB7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5mb2N1cy13aXRoaW5cXDpyZWxhdGl2ZSB7XG4gICAgICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZm9jdXMtd2l0aGluXFw6ei0yMCB7XG4gICAgICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ob3ZlclxcOmJnLWFjY2VudCB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5ob3ZlclxcOmJnLWRlc3RydWN0aXZlXFwvOTAge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVzdHJ1Y3RpdmUpO1xuICAgICAgICAgICAgICAgIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWRlc3RydWN0aXZlKSA5MCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmhvdmVyXFw6YmctbXV0ZWRcXC81MCB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tdXRlZCk7XG4gICAgICAgICAgICAgICAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tbXV0ZWQpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuaG92ZXJcXDpiZy1wcmltYXJ5IHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5ob3ZlclxcOmJnLXByaW1hcnlcXC85MCB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1wcmltYXJ5KSA5MCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmhvdmVyXFw6Ymctc2Vjb25kYXJ5XFwvODAge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1zZWNvbmRhcnkpIDgwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuaG92ZXJcXDpiZy1zaWRlYmFyLWFjY2VudCB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmhvdmVyXFw6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYWNjZW50LWZvcmVncm91bmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5ob3ZlclxcOnRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvcmVncm91bmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5ob3ZlclxcOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmhvdmVyXFw6dGV4dC16aW5jLTgwMCB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItemluYy04MDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5ob3ZlclxcOnVuZGVybGluZSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5ob3ZlclxcOm9wYWNpdHktMTAwIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmhvdmVyXFw6c2hhZG93LVxcWzBfMF8wXzFweF9oc2xcXCh2YXJcXCgtLXNpZGViYXItYWNjZW50XFwpXFwpXFxdIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAgICAgICAgIC0tdHctc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCBoc2wodmFyKC0tc2lkZWJhci1hY2NlbnQpKSk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tdHctaW5zZXQtc2hhZG93KSwgdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXNoYWRvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmhvdmVyXFw6Z3JvdXAtZGF0YS1cXFtjb2xsYXBzaWJsZVxcPW9mZmNhbnZhc1xcXVxcOmJnLXNpZGViYXIge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICAgICAgICAgJjppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWNvbGxhcHNpYmxlPVwib2ZmY2FudmFzXCJdICopIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2lkZWJhcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5ob3ZlclxcOmFmdGVyXFw6Ymctc2lkZWJhci1ib3JkZXIge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB2YXIoLS10dy1jb250ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2lkZWJhci1ib3JkZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuZm9jdXNcXDpiZy1hY2NlbnQge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZvY3VzXFw6YmctcHJpbWFyeSB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZvY3VzXFw6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWFjY2VudC1mb3JlZ3JvdW5kKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZm9jdXNcXDp0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktZm9yZWdyb3VuZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZvY3VzXFw6cmluZy0yIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAtLXR3LXJpbmctc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0LCkgMCAwIDAgY2FsYygycHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpIHZhcigtLXR3LXJpbmctY29sb3IsIGN1cnJlbnRjb2xvcik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS10dy1pbnNldC1zaGFkb3cpLCB2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZm9jdXNcXDpyaW5nLXJpbmcge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIC0tdHctcmluZy1jb2xvcjogdmFyKC0tcmluZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZvY3VzXFw6cmluZy1vZmZzZXQtMiB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgLS10dy1yaW5nLW9mZnNldC13aWR0aDogMnB4O1xuICAgICAgICAgICAgLS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQsKSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5mb2N1c1xcOm91dGxpbmUtaGlkZGVuIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAtLXR3LW91dGxpbmUtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBvdXRsaW5lLXN0eWxlOiBub25lO1xuICAgICAgICAgICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuZm9jdXMtdmlzaWJsZVxcOmJvcmRlci1yaW5nIHtcbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcmluZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZvY3VzLXZpc2libGVcXDpyaW5nLTIge1xuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgLS10dy1yaW5nLXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCwpIDAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS10dy1yaW5nLWNvbG9yLCBjdXJyZW50Y29sb3IpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tdHctaW5zZXQtc2hhZG93KSwgdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXNoYWRvdyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZvY3VzLXZpc2libGVcXDpyaW5nLVxcWzNweFxcXSB7XG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAtLXR3LXJpbmctc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0LCkgMCAwIDAgY2FsYygzcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpIHZhcigtLXR3LXJpbmctY29sb3IsIGN1cnJlbnRjb2xvcik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS10dy1pbnNldC1zaGFkb3cpLCB2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZm9jdXMtdmlzaWJsZVxcOnJpbmctZGVzdHJ1Y3RpdmVcXC8yMCB7XG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAtLXR3LXJpbmctY29sb3I6IHZhcigtLWRlc3RydWN0aXZlKTtcbiAgICAgICAgICAgIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgICAgICAgICAgICAgIC0tdHctcmluZy1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1kZXN0cnVjdGl2ZSkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZvY3VzLXZpc2libGVcXDpyaW5nLXJpbmdcXC81MCB7XG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAtLXR3LXJpbmctY29sb3I6IHZhcigtLXJpbmcpO1xuICAgICAgICAgICAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgICAgICAgICAgICAgLS10dy1yaW5nLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLXJpbmcpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5hY3RpdmVcXDpiZy1zaWRlYmFyLWFjY2VudCB7XG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWN0aXZlXFw6dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIHtcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50LWZvcmVncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kaXNhYmxlZFxcOnBvaW50ZXItZXZlbnRzLW5vbmUge1xuICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kaXNhYmxlZFxcOmN1cnNvci1ub3QtYWxsb3dlZCB7XG4gICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGlzYWJsZWRcXDpvcGFjaXR5LTUwIHtcbiAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICBvcGFjaXR5OiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmluLWRhdGEtXFxbc2lkZVxcPWxlZnRcXF1cXDpjdXJzb3Itdy1yZXNpemUge1xuICAgICAgICA6d2hlcmUoKltkYXRhLXNpZGU9XCJsZWZ0XCJdKSAmIHtcbiAgICAgICAgICAgIGN1cnNvcjogdy1yZXNpemU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmluLWRhdGEtXFxbc2lkZVxcPXJpZ2h0XFxdXFw6Y3Vyc29yLWUtcmVzaXplIHtcbiAgICAgICAgOndoZXJlKCpbZGF0YS1zaWRlPVwicmlnaHRcIl0pICYge1xuICAgICAgICAgICAgY3Vyc29yOiBlLXJlc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuaGFzLWRhdGEtXFxbc2xvdFxcPWNhcmQtYWN0aW9uXFxdXFw6Z3JpZC1jb2xzLVxcWzFmcl9hdXRvXFxdIHtcbiAgICAgICAgJjpoYXMoKltkYXRhLXNsb3Q9XCJjYXJkLWFjdGlvblwiXSkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuaGFzLWRhdGEtXFxbdmFyaWFudFxcPWluc2V0XFxdXFw6Ymctc2lkZWJhciB7XG4gICAgICAgICY6aGFzKCpbZGF0YS12YXJpYW50PVwiaW5zZXRcIl0pIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNpZGViYXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5oYXMtXFxbXFw+c3ZnXFxdXFw6cHgtMlxcLjUge1xuICAgICAgICAmOmhhcyg+c3ZnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDIuNSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmhhcy1cXFtcXD5zdmdcXF1cXDpweC0zIHtcbiAgICAgICAgJjpoYXMoPnN2Zykge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IGNhbGModmFyKC0tc3BhY2luZykgKiAzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuaGFzLVxcW1xcPnN2Z1xcXVxcOnB4LTQge1xuICAgICAgICAmOmhhcyg+c3ZnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hcmlhLWRpc2FibGVkXFw6cG9pbnRlci1ldmVudHMtbm9uZSB7XG4gICAgICAgICZbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmFyaWEtZGlzYWJsZWRcXDpvcGFjaXR5LTUwIHtcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICBvcGFjaXR5OiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmFyaWEtaW52YWxpZFxcOmJvcmRlci1kZXN0cnVjdGl2ZSB7XG4gICAgICAgICZbYXJpYS1pbnZhbGlkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlc3RydWN0aXZlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYXJpYS1pbnZhbGlkXFw6cmluZy1kZXN0cnVjdGl2ZVxcLzIwIHtcbiAgICAgICAgJlthcmlhLWludmFsaWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgIC0tdHctcmluZy1jb2xvcjogdmFyKC0tZGVzdHJ1Y3RpdmUpO1xuICAgICAgICAgICAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgICAgICAgICAgICAgLS10dy1yaW5nLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWRlc3RydWN0aXZlKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuYXJpYS1zZWxlY3RlZFxcOmJnLWFjY2VudCB7XG4gICAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYXJpYS1zZWxlY3RlZFxcOmJnLXByaW1hcnkge1xuICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hcmlhLXNlbGVjdGVkXFw6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCB7XG4gICAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWFjY2VudC1mb3JlZ3JvdW5kKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYXJpYS1zZWxlY3RlZFxcOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCB7XG4gICAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hcmlhLXNlbGVjdGVkXFw6dGV4dC1wcmltYXJ5LWZvcmVncm91bmQge1xuICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvcmVncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hcmlhLXNlbGVjdGVkXFw6b3BhY2l0eS0xMDAge1xuICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbYWN0aXZlXFw9dHJ1ZVxcXVxcOmJnLXNpZGViYXItYWNjZW50IHtcbiAgICAgICAgJltkYXRhLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW2FjdGl2ZVxcPXRydWVcXF1cXDpmb250LW1lZGl1bSB7XG4gICAgICAgICZbZGF0YS1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgIC0tdHctZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFthY3RpdmVcXD10cnVlXFxdXFw6dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIHtcbiAgICAgICAgJltkYXRhLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50LWZvcmVncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW2Rpc2FibGVkXFxdXFw6cG9pbnRlci1ldmVudHMtbm9uZSB7XG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0ge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbZGlzYWJsZWRcXF1cXDpvcGFjaXR5LTUwIHtcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSB7XG4gICAgICAgICAgICBvcGFjaXR5OiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbZXJyb3JcXD10cnVlXFxdXFw6dGV4dC1kZXN0cnVjdGl2ZSB7XG4gICAgICAgICZbZGF0YS1lcnJvcj1cInRydWVcIl0ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWRlc3RydWN0aXZlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtvcmllbnRhdGlvblxcPWhvcml6b250YWxcXF1cXDpoLXB4IHtcbiAgICAgICAgJltkYXRhLW9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtvcmllbnRhdGlvblxcPWhvcml6b250YWxcXF1cXDp3LWZ1bGwge1xuICAgICAgICAmW2RhdGEtb3JpZW50YXRpb249XCJob3Jpem9udGFsXCJdIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW29yaWVudGF0aW9uXFw9dmVydGljYWxcXF1cXDpoLWZ1bGwge1xuICAgICAgICAmW2RhdGEtb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbb3JpZW50YXRpb25cXD12ZXJ0aWNhbFxcXVxcOnctcHgge1xuICAgICAgICAmW2RhdGEtb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXSB7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW3BsYWNlaG9sZGVyXFxdXFw6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHtcbiAgICAgICAgJltkYXRhLXBsYWNlaG9sZGVyXSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbc2lkZVxcPWJvdHRvbVxcXVxcOnRyYW5zbGF0ZS15LTEge1xuICAgICAgICAmW2RhdGEtc2lkZT1cImJvdHRvbVwiXSB7XG4gICAgICAgICAgICAtLXR3LXRyYW5zbGF0ZS15OiBjYWxjKHZhcigtLXNwYWNpbmcpICogMSk7XG4gICAgICAgICAgICB0cmFuc2xhdGU6IHZhcigtLXR3LXRyYW5zbGF0ZS14KSB2YXIoLS10dy10cmFuc2xhdGUteSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbc2lkZVxcPWJvdHRvbVxcXVxcOnNsaWRlLWluLWZyb20tdG9wLTIge1xuICAgICAgICAmW2RhdGEtc2lkZT1cImJvdHRvbVwiXSB7XG4gICAgICAgICAgICAtLXR3LWVudGVyLXRyYW5zbGF0ZS15OiBjYWxjKDIqdmFyKC0tc3BhY2luZykqLTEpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW3NpZGVcXD1sZWZ0XFxdXFw6LXRyYW5zbGF0ZS14LTEge1xuICAgICAgICAmW2RhdGEtc2lkZT1cImxlZnRcIl0ge1xuICAgICAgICAgICAgLS10dy10cmFuc2xhdGUteDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIC0xKTtcbiAgICAgICAgICAgIHRyYW5zbGF0ZTogdmFyKC0tdHctdHJhbnNsYXRlLXgpIHZhcigtLXR3LXRyYW5zbGF0ZS15KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzaWRlXFw9bGVmdFxcXVxcOnNsaWRlLWluLWZyb20tcmlnaHQtMiB7XG4gICAgICAgICZbZGF0YS1zaWRlPVwibGVmdFwiXSB7XG4gICAgICAgICAgICAtLXR3LWVudGVyLXRyYW5zbGF0ZS14OiBjYWxjKDIqdmFyKC0tc3BhY2luZykpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW3NpZGVcXD1yaWdodFxcXVxcOnRyYW5zbGF0ZS14LTEge1xuICAgICAgICAmW2RhdGEtc2lkZT1cInJpZ2h0XCJdIHtcbiAgICAgICAgICAgIC0tdHctdHJhbnNsYXRlLXg6IGNhbGModmFyKC0tc3BhY2luZykgKiAxKTtcbiAgICAgICAgICAgIHRyYW5zbGF0ZTogdmFyKC0tdHctdHJhbnNsYXRlLXgpIHZhcigtLXR3LXRyYW5zbGF0ZS15KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzaWRlXFw9cmlnaHRcXF1cXDpzbGlkZS1pbi1mcm9tLWxlZnQtMiB7XG4gICAgICAgICZbZGF0YS1zaWRlPVwicmlnaHRcIl0ge1xuICAgICAgICAgICAgLS10dy1lbnRlci10cmFuc2xhdGUteDogY2FsYygyKnZhcigtLXNwYWNpbmcpKi0xKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzaWRlXFw9dG9wXFxdXFw6LXRyYW5zbGF0ZS15LTEge1xuICAgICAgICAmW2RhdGEtc2lkZT1cInRvcFwiXSB7XG4gICAgICAgICAgICAtLXR3LXRyYW5zbGF0ZS15OiBjYWxjKHZhcigtLXNwYWNpbmcpICogLTEpO1xuICAgICAgICAgICAgdHJhbnNsYXRlOiB2YXIoLS10dy10cmFuc2xhdGUteCkgdmFyKC0tdHctdHJhbnNsYXRlLXkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW3NpZGVcXD10b3BcXF1cXDpzbGlkZS1pbi1mcm9tLWJvdHRvbS0yIHtcbiAgICAgICAgJltkYXRhLXNpZGU9XCJ0b3BcIl0ge1xuICAgICAgICAgICAgLS10dy1lbnRlci10cmFuc2xhdGUteTogY2FsYygyKnZhcigtLXNwYWNpbmcpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzaXplXFw9ZGVmYXVsdFxcXVxcOmgtOSB7XG4gICAgICAgICZbZGF0YS1zaXplPVwiZGVmYXVsdFwiXSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiA5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzaXplXFw9c21cXF1cXDpoLTgge1xuICAgICAgICAmW2RhdGEtc2l6ZT1cInNtXCJdIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5cXCpcXDpkYXRhLVxcW3Nsb3RcXD1zZWxlY3QtdmFsdWVcXF1cXDpsaW5lLWNsYW1wLTEge1xuICAgICAgICA6aXMoJiA+ICopIHtcbiAgICAgICAgICAgICZbZGF0YS1zbG90PVwic2VsZWN0LXZhbHVlXCJdIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5cXCpcXDpkYXRhLVxcW3Nsb3RcXD1zZWxlY3QtdmFsdWVcXF1cXDpmbGV4IHtcbiAgICAgICAgOmlzKCYgPiAqKSB7XG4gICAgICAgICAgICAmW2RhdGEtc2xvdD1cInNlbGVjdC12YWx1ZVwiXSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFwqXFw6ZGF0YS1cXFtzbG90XFw9c2VsZWN0LXZhbHVlXFxdXFw6aXRlbXMtY2VudGVyIHtcbiAgICAgICAgOmlzKCYgPiAqKSB7XG4gICAgICAgICAgICAmW2RhdGEtc2xvdD1cInNlbGVjdC12YWx1ZVwiXSB7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFwqXFw6ZGF0YS1cXFtzbG90XFw9c2VsZWN0LXZhbHVlXFxdXFw6Z2FwLTIge1xuICAgICAgICA6aXMoJiA+ICopIHtcbiAgICAgICAgICAgICZbZGF0YS1zbG90PVwic2VsZWN0LXZhbHVlXCJdIHtcbiAgICAgICAgICAgICAgICBnYXA6IGNhbGModmFyKC0tc3BhY2luZykgKiAyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzdGF0ZVxcPWNsb3NlZFxcXVxcOmFuaW1hdGUtYWNjb3JkaW9uLXVwIHtcbiAgICAgICAgJltkYXRhLXN0YXRlPVwiY2xvc2VkXCJdIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogYWNjb3JkaW9uLXVwIDAuMnMgZWFzZS1vdXQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbc3RhdGVcXD1jbG9zZWRcXF1cXDphbmltYXRlLW91dCB7XG4gICAgICAgICZbZGF0YS1zdGF0ZT1cImNsb3NlZFwiXSB7XG4gICAgICAgICAgICBhbmltYXRpb246IGV4aXQgdmFyKC0tdHctYW5pbWF0aW9uLWR1cmF0aW9uLHZhcigtLXR3LWR1cmF0aW9uLC4xNXMpKXZhcigtLXR3LWVhc2UsZWFzZSl2YXIoLS10dy1hbmltYXRpb24tZGVsYXksMHMpdmFyKC0tdHctYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwxKXZhcigtLXR3LWFuaW1hdGlvbi1kaXJlY3Rpb24sbm9ybWFsKXZhcigtLXR3LWFuaW1hdGlvbi1maWxsLW1vZGUsbm9uZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbc3RhdGVcXD1jbG9zZWRcXF1cXDpkdXJhdGlvbi0zMDAge1xuICAgICAgICAmW2RhdGEtc3RhdGU9XCJjbG9zZWRcIl0ge1xuICAgICAgICAgICAgLS10dy1kdXJhdGlvbjogMzAwbXM7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAzMDBtcztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzdGF0ZVxcPWNsb3NlZFxcXVxcOmZhZGUtb3V0LTAge1xuICAgICAgICAmW2RhdGEtc3RhdGU9XCJjbG9zZWRcIl0ge1xuICAgICAgICAgICAgLS10dy1leGl0LW9wYWNpdHk6IGNhbGMoMC8xMDApO1xuICAgICAgICAgICAgLS10dy1leGl0LW9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbc3RhdGVcXD1jbG9zZWRcXF1cXDp6b29tLW91dC05NSB7XG4gICAgICAgICZbZGF0YS1zdGF0ZT1cImNsb3NlZFwiXSB7XG4gICAgICAgICAgICAtLXR3LWV4aXQtc2NhbGU6IGNhbGMoOTUqMSUpO1xuICAgICAgICAgICAgLS10dy1leGl0LXNjYWxlOiAuOTU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbc3RhdGVcXD1jbG9zZWRcXF1cXDpzbGlkZS1vdXQtdG8tYm90dG9tIHtcbiAgICAgICAgJltkYXRhLXN0YXRlPVwiY2xvc2VkXCJdIHtcbiAgICAgICAgICAgIC0tdHctZXhpdC10cmFuc2xhdGUteTogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzdGF0ZVxcPWNsb3NlZFxcXVxcOnNsaWRlLW91dC10by1sZWZ0IHtcbiAgICAgICAgJltkYXRhLXN0YXRlPVwiY2xvc2VkXCJdIHtcbiAgICAgICAgICAgIC0tdHctZXhpdC10cmFuc2xhdGUteDogLTEwMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbc3RhdGVcXD1jbG9zZWRcXF1cXDpzbGlkZS1vdXQtdG8tcmlnaHQge1xuICAgICAgICAmW2RhdGEtc3RhdGU9XCJjbG9zZWRcIl0ge1xuICAgICAgICAgICAgLS10dy1leGl0LXRyYW5zbGF0ZS14OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW3N0YXRlXFw9Y2xvc2VkXFxdXFw6c2xpZGUtb3V0LXRvLXRvcCB7XG4gICAgICAgICZbZGF0YS1zdGF0ZT1cImNsb3NlZFwiXSB7XG4gICAgICAgICAgICAtLXR3LWV4aXQtdHJhbnNsYXRlLXk6IC0xMDAlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW3N0YXRlXFw9b3BlblxcXVxcOmFuaW1hdGUtYWNjb3JkaW9uLWRvd24ge1xuICAgICAgICAmW2RhdGEtc3RhdGU9XCJvcGVuXCJdIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogYWNjb3JkaW9uLWRvd24gMC4ycyBlYXNlLW91dDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzdGF0ZVxcPW9wZW5cXF1cXDphbmltYXRlLWluIHtcbiAgICAgICAgJltkYXRhLXN0YXRlPVwib3BlblwiXSB7XG4gICAgICAgICAgICBhbmltYXRpb246IGVudGVyIHZhcigtLXR3LWFuaW1hdGlvbi1kdXJhdGlvbix2YXIoLS10dy1kdXJhdGlvbiwuMTVzKSl2YXIoLS10dy1lYXNlLGVhc2UpdmFyKC0tdHctYW5pbWF0aW9uLWRlbGF5LDBzKXZhcigtLXR3LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsMSl2YXIoLS10dy1hbmltYXRpb24tZGlyZWN0aW9uLG5vcm1hbCl2YXIoLS10dy1hbmltYXRpb24tZmlsbC1tb2RlLG5vbmUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW3N0YXRlXFw9b3BlblxcXVxcOmJnLXNlY29uZGFyeSB7XG4gICAgICAgICZbZGF0YS1zdGF0ZT1cIm9wZW5cIl0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzdGF0ZVxcPW9wZW5cXF1cXDpvcGFjaXR5LTEwMCB7XG4gICAgICAgICZbZGF0YS1zdGF0ZT1cIm9wZW5cIl0ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzdGF0ZVxcPW9wZW5cXF1cXDpkdXJhdGlvbi01MDAge1xuICAgICAgICAmW2RhdGEtc3RhdGU9XCJvcGVuXCJdIHtcbiAgICAgICAgICAgIC0tdHctZHVyYXRpb246IDUwMG1zO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbc3RhdGVcXD1vcGVuXFxdXFw6ZmFkZS1pbi0wIHtcbiAgICAgICAgJltkYXRhLXN0YXRlPVwib3BlblwiXSB7XG4gICAgICAgICAgICAtLXR3LWVudGVyLW9wYWNpdHk6IGNhbGMoMC8xMDApO1xuICAgICAgICAgICAgLS10dy1lbnRlci1vcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW3N0YXRlXFw9b3BlblxcXVxcOnpvb20taW4tOTUge1xuICAgICAgICAmW2RhdGEtc3RhdGU9XCJvcGVuXCJdIHtcbiAgICAgICAgICAgIC0tdHctZW50ZXItc2NhbGU6IGNhbGMoOTUqMSUpO1xuICAgICAgICAgICAgLS10dy1lbnRlci1zY2FsZTogLjk1O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW3N0YXRlXFw9b3BlblxcXVxcOnNsaWRlLWluLWZyb20tYm90dG9tIHtcbiAgICAgICAgJltkYXRhLXN0YXRlPVwib3BlblwiXSB7XG4gICAgICAgICAgICAtLXR3LWVudGVyLXRyYW5zbGF0ZS15OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXRhLVxcW3N0YXRlXFw9b3BlblxcXVxcOnNsaWRlLWluLWZyb20tbGVmdCB7XG4gICAgICAgICZbZGF0YS1zdGF0ZT1cIm9wZW5cIl0ge1xuICAgICAgICAgICAgLS10dy1lbnRlci10cmFuc2xhdGUteDogLTEwMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbc3RhdGVcXD1vcGVuXFxdXFw6c2xpZGUtaW4tZnJvbS1yaWdodCB7XG4gICAgICAgICZbZGF0YS1zdGF0ZT1cIm9wZW5cIl0ge1xuICAgICAgICAgICAgLS10dy1lbnRlci10cmFuc2xhdGUteDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzdGF0ZVxcPW9wZW5cXF1cXDpzbGlkZS1pbi1mcm9tLXRvcCB7XG4gICAgICAgICZbZGF0YS1zdGF0ZT1cIm9wZW5cIl0ge1xuICAgICAgICAgICAgLS10dy1lbnRlci10cmFuc2xhdGUteTogLTEwMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhdGEtXFxbc3RhdGVcXD1vcGVuXFxdXFw6aG92ZXJcXDpiZy1zaWRlYmFyLWFjY2VudCB7XG4gICAgICAgICZbZGF0YS1zdGF0ZT1cIm9wZW5cIl0ge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzdGF0ZVxcPW9wZW5cXF1cXDpob3ZlclxcOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCB7XG4gICAgICAgICZbZGF0YS1zdGF0ZT1cIm9wZW5cIl0ge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50LWZvcmVncm91bmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGF0YS1cXFtzdGF0ZVxcPXNlbGVjdGVkXFxdXFw6YmctbXV0ZWQge1xuICAgICAgICAmW2RhdGEtc3RhdGU9XCJzZWxlY3RlZFwiXSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tdXRlZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNtXFw6ZmxleCB7XG4gICAgICAgIEBtZWRpYSAod2lkdGggPj0gNDByZW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNtXFw6bWF4LXctc20ge1xuICAgICAgICBAbWVkaWEgKHdpZHRoID49IDQwcmVtKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1zbSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNtXFw6ZmxleC1yb3cge1xuICAgICAgICBAbWVkaWEgKHdpZHRoID49IDQwcmVtKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5tZFxcOmJsb2NrIHtcbiAgICAgICAgQG1lZGlhICh3aWR0aCA+PSA0OHJlbSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm1kXFw6ZmxleCB7XG4gICAgICAgIEBtZWRpYSAod2lkdGggPj0gNDhyZW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm1kXFw6dGV4dC1zbSB7XG4gICAgICAgIEBtZWRpYSAod2lkdGggPj0gNDhyZW0pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tdHctbGVhZGluZywgdmFyKC0tdGV4dC1zbS0tbGluZS1oZWlnaHQpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubWRcXDpvcGFjaXR5LTAge1xuICAgICAgICBAbWVkaWEgKHdpZHRoID49IDQ4cmVtKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubWRcXDpwZWVyLWRhdGEtXFxbdmFyaWFudFxcPWluc2V0XFxdXFw6bS0yIHtcbiAgICAgICAgQG1lZGlhICh3aWR0aCA+PSA0OHJlbSkge1xuICAgICAgICAgICAgJjppcyg6d2hlcmUoLnBlZXIpW2RhdGEtdmFyaWFudD1cImluc2V0XCJdIH4gKikge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5tZFxcOnBlZXItZGF0YS1cXFt2YXJpYW50XFw9aW5zZXRcXF1cXDptbC0wIHtcbiAgICAgICAgQG1lZGlhICh3aWR0aCA+PSA0OHJlbSkge1xuICAgICAgICAgICAgJjppcyg6d2hlcmUoLnBlZXIpW2RhdGEtdmFyaWFudD1cImluc2V0XCJdIH4gKikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm1kXFw6cGVlci1kYXRhLVxcW3ZhcmlhbnRcXD1pbnNldFxcXVxcOnJvdW5kZWQteGwge1xuICAgICAgICBAbWVkaWEgKHdpZHRoID49IDQ4cmVtKSB7XG4gICAgICAgICAgICAmOmlzKDp3aGVyZSgucGVlcilbZGF0YS12YXJpYW50PVwiaW5zZXRcIl0gfiAqKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1yYWRpdXMpICsgNHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAubWRcXDpwZWVyLWRhdGEtXFxbdmFyaWFudFxcPWluc2V0XFxdXFw6c2hhZG93LXNtIHtcbiAgICAgICAgQG1lZGlhICh3aWR0aCA+PSA0OHJlbSkge1xuICAgICAgICAgICAgJjppcyg6d2hlcmUoLnBlZXIpW2RhdGEtdmFyaWFudD1cImluc2V0XCJdIH4gKikge1xuICAgICAgICAgICAgICAgIC0tdHctc2hhZG93OiAwIDFweCAzcHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIHJnYigwIDAgMCAvIDAuMSkpLCAwIDFweCAycHggLTFweCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIHJnYigwIDAgMCAvIDAuMSkpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXR3LWluc2V0LXNoYWRvdyksIHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSwgdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5tZFxcOnBlZXItZGF0YS1cXFt2YXJpYW50XFw9aW5zZXRcXF1cXDpwZWVyLWRhdGEtXFxbc3RhdGVcXD1jb2xsYXBzZWRcXF1cXDptbC0yIHtcbiAgICAgICAgQG1lZGlhICh3aWR0aCA+PSA0OHJlbSkge1xuICAgICAgICAgICAgJjppcyg6d2hlcmUoLnBlZXIpW2RhdGEtdmFyaWFudD1cImluc2V0XCJdIH4gKikge1xuICAgICAgICAgICAgICAgICY6aXMoOndoZXJlKC5wZWVyKVtkYXRhLXN0YXRlPVwiY29sbGFwc2VkXCJdIH4gKikge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAubWRcXDphZnRlclxcOmhpZGRlbiB7XG4gICAgICAgIEBtZWRpYSAod2lkdGggPj0gNDhyZW0pIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiB2YXIoLS10dy1jb250ZW50KTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXJrXFw6Ym9yZGVyLWlucHV0IHtcbiAgICAgICAgJjppcyguZGFyayAqKSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlucHV0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGFya1xcOmJnLWRlc3RydWN0aXZlXFwvNjAge1xuICAgICAgICAmOmlzKC5kYXJrICopIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlc3RydWN0aXZlKTtcbiAgICAgICAgICAgIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tZGVzdHJ1Y3RpdmUpIDYwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXJrXFw6YmctZ3JheS04MDAge1xuICAgICAgICAmOmlzKC5kYXJrICopIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktODAwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGFya1xcOmJnLWlucHV0XFwvMzAge1xuICAgICAgICAmOmlzKC5kYXJrICopIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0KTtcbiAgICAgICAgICAgIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0taW5wdXQpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXJrXFw6dGV4dC1yZWQtNDAwIHtcbiAgICAgICAgJjppcyguZGFyayAqKSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTQwMCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhcmtcXDpob3ZlclxcOmJnLWFjY2VudFxcLzUwIHtcbiAgICAgICAgJjppcyguZGFyayAqKSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICAgICAgICAgICAgICAgICAgICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYWNjZW50KSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGFya1xcOmhvdmVyXFw6YmctaW5wdXRcXC81MCB7XG4gICAgICAgICY6aXMoLmRhcmsgKikge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0taW5wdXQpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5kYXJrXFw6Zm9jdXMtdmlzaWJsZVxcOnJpbmctZGVzdHJ1Y3RpdmVcXC80MCB7XG4gICAgICAgICY6aXMoLmRhcmsgKikge1xuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICAtLXR3LXJpbmctY29sb3I6IHZhcigtLWRlc3RydWN0aXZlKTtcbiAgICAgICAgICAgICAgICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgLS10dy1yaW5nLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWRlc3RydWN0aXZlKSA0MCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRhcmtcXDphcmlhLWludmFsaWRcXDpyaW5nLWRlc3RydWN0aXZlXFwvNDAge1xuICAgICAgICAmOmlzKC5kYXJrICopIHtcbiAgICAgICAgICAgICZbYXJpYS1pbnZhbGlkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICAgICAgLS10dy1yaW5nLWNvbG9yOiB2YXIoLS1kZXN0cnVjdGl2ZSk7XG4gICAgICAgICAgICAgICAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIC0tdHctcmluZy1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1kZXN0cnVjdGl2ZSkgNDAlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5cXFtcXCZfc3ZnXFxdXFw6cG9pbnRlci1ldmVudHMtbm9uZSB7XG4gICAgICAgICYgc3ZnIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5cXFtcXCZfc3ZnXFxdXFw6c2hyaW5rLTAge1xuICAgICAgICAmIHN2ZyB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFxbXFwmX3N2Z1xcOm5vdFxcKFxcW2NsYXNzXFwqXFw9XFwnc2l6ZS1cXCdcXF1cXClcXF1cXDpzaXplLTQge1xuICAgICAgICAmIHN2Zzpub3QoW2NsYXNzKj0nc2l6ZS0nXSkge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiA0KTtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5cXFtcXCZfc3ZnXFw6bm90XFwoXFxbY2xhc3NcXCpcXD1cXCd0ZXh0LVxcJ1xcXVxcKVxcXVxcOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCB7XG4gICAgICAgICYgc3ZnOm5vdChbY2xhc3MqPSd0ZXh0LSddKSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlxcW1xcJl90clxcXVxcOmJvcmRlci1iIHtcbiAgICAgICAgJiB0ciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5cXFtcXCZfdHJcXDpsYXN0LWNoaWxkXFxdXFw6Ym9yZGVyLTAge1xuICAgICAgICAmIHRyOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlxcW1xcJlxcOmhhc1xcKFxcPlxcLmRheS1yYW5nZS1lbmRcXClcXF1cXDpyb3VuZGVkLXItbWQge1xuICAgICAgICAmOmhhcyg+LmRheS1yYW5nZS1lbmQpIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBjYWxjKHZhcigtLXJhZGl1cykgLSAycHgpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlxcW1xcJlxcOmhhc1xcKFxcPlxcLmRheS1yYW5nZS1zdGFydFxcKVxcXVxcOnJvdW5kZWQtbC1tZCB7XG4gICAgICAgICY6aGFzKD4uZGF5LXJhbmdlLXN0YXJ0KSB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLXJhZGl1cykgLSAycHgpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogY2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFxbXFwmXFw6aGFzXFwoXFxbYXJpYS1zZWxlY3RlZFxcXVxcKVxcXVxcOnJvdW5kZWQtbWQge1xuICAgICAgICAmOmhhcyhbYXJpYS1zZWxlY3RlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlxcW1xcJlxcOmhhc1xcKFxcW2FyaWEtc2VsZWN0ZWRcXF1cXClcXF1cXDpiZy1hY2NlbnQge1xuICAgICAgICAmOmhhcyhbYXJpYS1zZWxlY3RlZF0pIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZpcnN0XFw6XFxbXFwmXFw6aGFzXFwoXFxbYXJpYS1zZWxlY3RlZFxcXVxcKVxcXVxcOnJvdW5kZWQtbC1tZCB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgJjpoYXMoW2FyaWEtc2VsZWN0ZWRdKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLXJhZGl1cykgLSAycHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5sYXN0XFw6XFxbXFwmXFw6aGFzXFwoXFxbYXJpYS1zZWxlY3RlZFxcXVxcKVxcXVxcOnJvdW5kZWQtci1tZCB7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAmOmhhcyhbYXJpYS1zZWxlY3RlZF0pIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogY2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogY2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFxbXFwmXFw6aGFzXFwoXFxbYXJpYS1zZWxlY3RlZFxcXVxcLmRheS1yYW5nZS1lbmRcXClcXF1cXDpyb3VuZGVkLXItbWQge1xuICAgICAgICAmOmhhcyhbYXJpYS1zZWxlY3RlZF0uZGF5LXJhbmdlLWVuZCkge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogY2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFxbXFwmXFw6aGFzXFwoXFxbcm9sZVxcPWNoZWNrYm94XFxdXFwpXFxdXFw6cHItMCB7XG4gICAgICAgICY6aGFzKFtyb2xlPWNoZWNrYm94XSkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5cXFtcXC5ib3JkZXItYlxcXVxcOnBiLTYge1xuICAgICAgICAmOmlzKC5ib3JkZXItYikge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tc3BhY2luZykgKiA2KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFxbXFwuYm9yZGVyLXRcXF1cXDpwdC02IHtcbiAgICAgICAgJjppcyguYm9yZGVyLXQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlxcKlxcOlxcW3NwYW5cXF1cXDpsYXN0XFw6ZmxleCB7XG4gICAgICAgIDppcygmID4gKikge1xuICAgICAgICAgICAgJjppcyhzcGFuKSB7XG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlxcKlxcOlxcW3NwYW5cXF1cXDpsYXN0XFw6aXRlbXMtY2VudGVyIHtcbiAgICAgICAgOmlzKCYgPiAqKSB7XG4gICAgICAgICAgICAmOmlzKHNwYW4pIHtcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFwqXFw6XFxbc3BhblxcXVxcOmxhc3RcXDpnYXAtMiB7XG4gICAgICAgIDppcygmID4gKikge1xuICAgICAgICAgICAgJjppcyhzcGFuKSB7XG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5cXFtcXCZcXD5cXFtyb2xlXFw9Y2hlY2tib3hcXF1cXF1cXDp0cmFuc2xhdGUteS1cXFsycHhcXF0ge1xuICAgICAgICAmPltyb2xlPWNoZWNrYm94XSB7XG4gICAgICAgICAgICAtLXR3LXRyYW5zbGF0ZS15OiAycHg7XG4gICAgICAgICAgICB0cmFuc2xhdGU6IHZhcigtLXR3LXRyYW5zbGF0ZS14KSB2YXIoLS10dy10cmFuc2xhdGUteSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlxcW1xcJlxcPmJ1dHRvblxcXVxcOmhpZGRlbiB7XG4gICAgICAgICY+YnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlxcW1xcJlxcPnNwYW5cXDpsYXN0LWNoaWxkXFxdXFw6dHJ1bmNhdGUge1xuICAgICAgICAmPnNwYW46bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5cXFtcXCZcXD5zdmdcXF1cXDpzaXplLTQge1xuICAgICAgICAmPnN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDQpO1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogNCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlxcW1xcJlxcPnN2Z1xcXVxcOnNocmluay0wIHtcbiAgICAgICAgJj5zdmcge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlxcW1xcJlxcPnN2Z1xcXVxcOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCB7XG4gICAgICAgICY+c3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFxbXFwmXFw+dHJcXF1cXDpsYXN0XFw6Ym9yZGVyLWItMCB7XG4gICAgICAgICY+dHIge1xuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFxbXFwmXFxbZGF0YS1zdGF0ZVxcPW9wZW5cXF1cXD5zdmdcXF1cXDpyb3RhdGUtMTgwIHtcbiAgICAgICAgJltkYXRhLXN0YXRlPW9wZW5dPnN2ZyB7XG4gICAgICAgICAgICByb3RhdGU6IDE4MGRlZztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFxbXFxbZGF0YS1zaWRlXFw9bGVmdFxcXVxcW2RhdGEtY29sbGFwc2libGVcXD1vZmZjYW52YXNcXF1fXFwmXFxdXFw6LXJpZ2h0LTIge1xuICAgICAgICBbZGF0YS1zaWRlPWxlZnRdW2RhdGEtY29sbGFwc2libGU9b2ZmY2FudmFzXSAmIHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogLTIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5cXFtcXFtkYXRhLXNpZGVcXD1sZWZ0XFxdXFxbZGF0YS1zdGF0ZVxcPWNvbGxhcHNlZFxcXV9cXCZcXF1cXDpjdXJzb3ItZS1yZXNpemUge1xuICAgICAgICBbZGF0YS1zaWRlPWxlZnRdW2RhdGEtc3RhdGU9Y29sbGFwc2VkXSAmIHtcbiAgICAgICAgICAgIGN1cnNvcjogZS1yZXNpemU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlxcW1xcW2RhdGEtc2lkZVxcPXJpZ2h0XFxdXFxbZGF0YS1jb2xsYXBzaWJsZVxcPW9mZmNhbnZhc1xcXV9cXCZcXF1cXDotbGVmdC0yIHtcbiAgICAgICAgW2RhdGEtc2lkZT1yaWdodF1bZGF0YS1jb2xsYXBzaWJsZT1vZmZjYW52YXNdICYge1xuICAgICAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIC0yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuXFxbXFxbZGF0YS1zaWRlXFw9cmlnaHRcXF1cXFtkYXRhLXN0YXRlXFw9Y29sbGFwc2VkXFxdX1xcJlxcXVxcOmN1cnNvci13LXJlc2l6ZSB7XG4gICAgICAgIFtkYXRhLXNpZGU9cmlnaHRdW2RhdGEtc3RhdGU9Y29sbGFwc2VkXSAmIHtcbiAgICAgICAgICAgIGN1cnNvcjogdy1yZXNpemU7XG4gICAgICAgIH1cbiAgICB9XG59XG5AcHJvcGVydHkgLS10dy1hbmltYXRpb24tZGVsYXkge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDBzO1xufVxuQHByb3BlcnR5IC0tdHctYW5pbWF0aW9uLWRpcmVjdGlvbiB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogbm9ybWFsO1xufVxuQHByb3BlcnR5IC0tdHctYW5pbWF0aW9uLWR1cmF0aW9uIHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cbkBwcm9wZXJ0eSAtLXR3LWFuaW1hdGlvbi1maWxsLW1vZGUge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IG5vbmU7XG59XG5AcHJvcGVydHkgLS10dy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50IHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbiAgICBpbml0aWFsLXZhbHVlOiAxO1xufVxuQHByb3BlcnR5IC0tdHctZW50ZXItYmx1ciB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogMDtcbn1cbkBwcm9wZXJ0eSAtLXR3LWVudGVyLW9wYWNpdHkge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDE7XG59XG5AcHJvcGVydHkgLS10dy1lbnRlci1yb3RhdGUge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDA7XG59XG5AcHJvcGVydHkgLS10dy1lbnRlci1zY2FsZSB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogMTtcbn1cbkBwcm9wZXJ0eSAtLXR3LWVudGVyLXRyYW5zbGF0ZS14IHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbiAgICBpbml0aWFsLXZhbHVlOiAwO1xufVxuQHByb3BlcnR5IC0tdHctZW50ZXItdHJhbnNsYXRlLXkge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDA7XG59XG5AcHJvcGVydHkgLS10dy1leGl0LWJsdXIge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDA7XG59XG5AcHJvcGVydHkgLS10dy1leGl0LW9wYWNpdHkge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDE7XG59XG5AcHJvcGVydHkgLS10dy1leGl0LXJvdGF0ZSB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogMDtcbn1cbkBwcm9wZXJ0eSAtLXR3LWV4aXQtc2NhbGUge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDE7XG59XG5AcHJvcGVydHkgLS10dy1leGl0LXRyYW5zbGF0ZS14IHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbiAgICBpbml0aWFsLXZhbHVlOiAwO1xufVxuQHByb3BlcnR5IC0tdHctZXhpdC10cmFuc2xhdGUteSB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogMDtcbn1cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBzcmM6IGxvY2FsKCcnKSwgdXJsKFwiLi4vZm9udHMvUm9ib3RvUmVndWxhci9Sb2JvdG9SZWd1bGFyLndvZmZcIikgZm9ybWF0KCd3b2ZmJyk7XG59XG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgc3JjOiBsb2NhbCgnJyksIHVybChcIi4uL2ZvbnRzL1JvYm90b0JvbGQvUm9ib3RvQm9sZC53b2ZmXCIpIGZvcm1hdCgnd29mZicpO1xufVxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdJbnRybyc7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOiBsb2NhbCgnJyksIHVybChcIi4uL2ZvbnRzL0ludHJvL0ludHJvLndvZmZcIikgZm9ybWF0KCd3b2ZmJyk7XG59XG5odG1sLCBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbmJvZHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnRhYmxlLHRoZWFkLHRib2R5LHRmb290LHRyLHRoLHRkIHtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cbmEsIGE6aG92ZXIsIGJ1dHRvbiwgYnV0dG9uOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5oMSxoMixoMyxoNCxoNSxoNiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuaDEge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5idXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbjpyb290IHtcbiAgICAtLXByaW1hcnk6ICMwMDliZTU7XG4gICAgLS1zZWNvbmRhcnk6ICNlYWVmZjE7XG4gICAgLS13aGl0ZTogI2ZmZjtcbiAgICAtLWdyYXk6ICM4NDkyYTY7XG4gICAgLS1ncmF5LWRhcms6ICMyNzM0NDQ7XG4gICAgLS1ncmF5LWxpZ2h0OiAjNDU0ZjU5O1xuICAgIC0tY2FyZDogb2tsY2goMSAwIDApO1xuICAgIC0tY2FyZC1mb3JlZ3JvdW5kOiBva2xjaCgwLjE0NSAwIDApO1xuICAgIC0tcG9wb3Zlcjogb2tsY2goMSAwIDApO1xuICAgIC0tcG9wb3Zlci1mb3JlZ3JvdW5kOiBva2xjaCgwLjE0NSAwIDApO1xuICAgIC0tcHJpbWFyeS1mb3JlZ3JvdW5kOiBva2xjaCgwLjk4NSAwIDApO1xuICAgIC0tc2Vjb25kYXJ5LWZvcmVncm91bmQ6IG9rbGNoKDAuMjA1IDAgMCk7XG4gICAgLS1tdXRlZDogb2tsY2goMC45NyAwIDApO1xuICAgIC0tbXV0ZWQtZm9yZWdyb3VuZDogb2tsY2goMC41NTYgMCAwKTtcbiAgICAtLWFjY2VudDogb2tsY2goMC45NyAwIDApO1xuICAgIC0tYWNjZW50LWZvcmVncm91bmQ6IG9rbGNoKDAuMjA1IDAgMCk7XG4gICAgLS1kZXN0cnVjdGl2ZTogb2tsY2goMC41NzcgMC4yNDUgMjcuMzI1KTtcbiAgICAtLWRlc3RydWN0aXZlLWZvcmVncm91bmQ6IG9rbGNoKDAuNTc3IDAuMjQ1IDI3LjMyNSk7XG4gICAgLS1ib3JkZXI6IG9rbGNoKDAuOTIyIDAgMCk7XG4gICAgLS1pbnB1dDogb2tsY2goMC45MjIgMCAwKTtcbiAgICAtLXJpbmc6IG9rbGNoKDAuODcgMCAwKTtcbiAgICAtLWNoYXJ0LTE6IG9rbGNoKDAuNjQ2IDAuMjIyIDQxLjExNik7XG4gICAgLS1jaGFydC0yOiBva2xjaCgwLjYgMC4xMTggMTg0LjcwNCk7XG4gICAgLS1jaGFydC0zOiBva2xjaCgwLjM5OCAwLjA3IDIyNy4zOTIpO1xuICAgIC0tY2hhcnQtNDogb2tsY2goMC44MjggMC4xODkgODQuNDI5KTtcbiAgICAtLWNoYXJ0LTU6IG9rbGNoKDAuNzY5IDAuMTg4IDcwLjA4KTtcbiAgICAtLXJhZGl1czogMC42MjVyZW07XG4gICAgLS1zaWRlYmFyOiBva2xjaCgwLjk4NSAwIDApO1xuICAgIC0tc2lkZWJhci1mb3JlZ3JvdW5kOiBva2xjaCgwLjE0NSAwIDApO1xuICAgIC0tc2lkZWJhci1wcmltYXJ5OiBva2xjaCgwLjIwNSAwIDApO1xuICAgIC0tc2lkZWJhci1wcmltYXJ5LWZvcmVncm91bmQ6IG9rbGNoKDAuOTg1IDAgMCk7XG4gICAgLS1zaWRlYmFyLWFjY2VudDogb2tsY2goMC45NyAwIDApO1xuICAgIC0tc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZDogb2tsY2goMC4yMDUgMCAwKTtcbiAgICAtLXNpZGViYXItYm9yZGVyOiBva2xjaCgwLjkyMiAwIDApO1xuICAgIC0tc2lkZWJhci1yaW5nOiBva2xjaCgwLjg3IDAgMCk7XG4gICAgLS1iYWNrZ3JvdW5kOiBva2xjaCgxIDAgMCk7XG4gICAgLS1mb3JlZ3JvdW5kOiBva2xjaCgwLjE0MSAwLjAwNSAyODUuODIzKTtcbn1cbmJvZHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG59XG4uY29udGFpbmVyIHtcbiAgICB3aWR0aDogODAlO1xuICAgIG1hcmdpbjogYXV0bztcbn1cbmhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG4gICAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50cm9cIjtcbn1cbmhlYWRlciBhIHtcbiAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xufVxuaGVhZGVyIC5jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uYnJhbmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5icmFuZCBzcGFuIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLm1lbnUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5tZW51IGEge1xuICAgIG1hcmdpbjogMCAxMHB4O1xufVxuLmNhcmQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ncmF5LWxpZ2h0KTtcbiAgICBib3gtc2hhZG93OiAwIDNweCAxMnB4IDAgcmdiYSgzNCwgNjAsIDgwLCAwLjIpO1xufVxuLnBhZ2UtaGVhZGVyLXdyYXAge1xuICAgIG1hcmdpbjogMjBweCAwO1xufVxuLnN0eWxlZC10YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4uc3R5bGVkLXRhYmxlIHRoZWFkIHRyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uc3R5bGVkLXRhYmxlIHRoLCAuc3R5bGVkLXRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAxMnB4O1xufVxuLnN0eWxlZC10YWJsZSB0Ym9keSB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGRkZGQ7XG59XG4uc3R5bGVkLXRhYmxlIHRib2R5IHRyOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnkpO1xufVxuLnN0eWxlZC10YWJsZSB0Ym9keSB0cjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG59XG4uc2VhcmNoLWlucHV0IHtcbiAgICBwYWRkaW5nOiA3cHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXByaW1hcnkpO1xufVxuLnNlYXJjaC1pbnB1dDpmb2N1cyB7XG4gICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tcHJpbWFyeSk7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cbi5zZWFyY2gtc2VsZWN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wcmltYXJ5KTtcbn1cbi5kYXJrIHtcbiAgICAtLWJhY2tncm91bmQ6IG9rbGNoKDAuMTQ1IDAgMCk7XG4gICAgLS1mb3JlZ3JvdW5kOiBva2xjaCgwLjk4NSAwIDApO1xuICAgIC0tY2FyZDogb2tsY2goMC4xNDUgMCAwKTtcbiAgICAtLWNhcmQtZm9yZWdyb3VuZDogb2tsY2goMC45ODUgMCAwKTtcbiAgICAtLXBvcG92ZXI6IG9rbGNoKDAuMTQ1IDAgMCk7XG4gICAgLS1wb3BvdmVyLWZvcmVncm91bmQ6IG9rbGNoKDAuOTg1IDAgMCk7XG4gICAgLS1wcmltYXJ5OiBva2xjaCgwLjk4NSAwIDApO1xuICAgIC0tcHJpbWFyeS1mb3JlZ3JvdW5kOiBva2xjaCgwLjIwNSAwIDApO1xuICAgIC0tc2Vjb25kYXJ5OiBva2xjaCgwLjI2OSAwIDApO1xuICAgIC0tc2Vjb25kYXJ5LWZvcmVncm91bmQ6IG9rbGNoKDAuOTg1IDAgMCk7XG4gICAgLS1tdXRlZDogb2tsY2goMC4yNjkgMCAwKTtcbiAgICAtLW11dGVkLWZvcmVncm91bmQ6IG9rbGNoKDAuNzA4IDAgMCk7XG4gICAgLS1hY2NlbnQ6IG9rbGNoKDAuMjY5IDAgMCk7XG4gICAgLS1hY2NlbnQtZm9yZWdyb3VuZDogb2tsY2goMC45ODUgMCAwKTtcbiAgICAtLWRlc3RydWN0aXZlOiBva2xjaCgwLjM5NiAwLjE0MSAyNS43MjMpO1xuICAgIC0tZGVzdHJ1Y3RpdmUtZm9yZWdyb3VuZDogb2tsY2goMC42MzcgMC4yMzcgMjUuMzMxKTtcbiAgICAtLWJvcmRlcjogb2tsY2goMC4yNjkgMCAwKTtcbiAgICAtLWlucHV0OiBva2xjaCgwLjI2OSAwIDApO1xuICAgIC0tcmluZzogb2tsY2goMC40MzkgMCAwKTtcbiAgICAtLWNoYXJ0LTE6IG9rbGNoKDAuNDg4IDAuMjQzIDI2NC4zNzYpO1xuICAgIC0tY2hhcnQtMjogb2tsY2goMC42OTYgMC4xNyAxNjIuNDgpO1xuICAgIC0tY2hhcnQtMzogb2tsY2goMC43NjkgMC4xODggNzAuMDgpO1xuICAgIC0tY2hhcnQtNDogb2tsY2goMC42MjcgMC4yNjUgMzAzLjkpO1xuICAgIC0tY2hhcnQtNTogb2tsY2goMC42NDUgMC4yNDYgMTYuNDM5KTtcbiAgICAtLXNpZGViYXI6IG9rbGNoKDAuMjA1IDAgMCk7XG4gICAgLS1zaWRlYmFyLWZvcmVncm91bmQ6IG9rbGNoKDAuOTg1IDAgMCk7XG4gICAgLS1zaWRlYmFyLXByaW1hcnk6IG9rbGNoKDAuNDg4IDAuMjQzIDI2NC4zNzYpO1xuICAgIC0tc2lkZWJhci1wcmltYXJ5LWZvcmVncm91bmQ6IG9rbGNoKDAuOTg1IDAgMCk7XG4gICAgLS1zaWRlYmFyLWFjY2VudDogb2tsY2goMC4yNjkgMCAwKTtcbiAgICAtLXNpZGViYXItYWNjZW50LWZvcmVncm91bmQ6IG9rbGNoKDAuOTg1IDAgMCk7XG4gICAgLS1zaWRlYmFyLWJvcmRlcjogb2tsY2goMC4yNjkgMCAwKTtcbiAgICAtLXNpZGViYXItcmluZzogb2tsY2goMC40MzkgMCAwKTtcbn1cbkBsYXllciBiYXNlIHtcbiAgICAqIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIpO1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1yaW5nKTtcbiAgICAgICAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLXJpbmcpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGJvZHkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgIH1cbn1cbkBwcm9wZXJ0eSAtLXR3LXRyYW5zbGF0ZS14IHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbiAgICBpbml0aWFsLXZhbHVlOiAwO1xufVxuQHByb3BlcnR5IC0tdHctdHJhbnNsYXRlLXkge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDA7XG59XG5AcHJvcGVydHkgLS10dy10cmFuc2xhdGUteiB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogMDtcbn1cbkBwcm9wZXJ0eSAtLXR3LXNwYWNlLXktcmV2ZXJzZSB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogMDtcbn1cbkBwcm9wZXJ0eSAtLXR3LXNwYWNlLXgtcmV2ZXJzZSB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogMDtcbn1cbkBwcm9wZXJ0eSAtLXR3LWJvcmRlci1zdHlsZSB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogc29saWQ7XG59XG5AcHJvcGVydHkgLS10dy1sZWFkaW5nIHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cbkBwcm9wZXJ0eSAtLXR3LWZvbnQtd2VpZ2h0IHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cbkBwcm9wZXJ0eSAtLXR3LW9yZGluYWwge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xufVxuQHByb3BlcnR5IC0tdHctc2xhc2hlZC16ZXJvIHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cbkBwcm9wZXJ0eSAtLXR3LW51bWVyaWMtZmlndXJlIHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cbkBwcm9wZXJ0eSAtLXR3LW51bWVyaWMtc3BhY2luZyB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG59XG5AcHJvcGVydHkgLS10dy1udW1lcmljLWZyYWN0aW9uIHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cbkBwcm9wZXJ0eSAtLXR3LXNoYWRvdyB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogMCAwICMwMDAwO1xufVxuQHByb3BlcnR5IC0tdHctc2hhZG93LWNvbG9yIHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cbkBwcm9wZXJ0eSAtLXR3LXNoYWRvdy1hbHBoYSB7XG4gICAgc3ludGF4OiBcIjxwZXJjZW50YWdlPlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbiAgICBpbml0aWFsLXZhbHVlOiAxMDAlO1xufVxuQHByb3BlcnR5IC0tdHctaW5zZXQtc2hhZG93IHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbiAgICBpbml0aWFsLXZhbHVlOiAwIDAgIzAwMDA7XG59XG5AcHJvcGVydHkgLS10dy1pbnNldC1zaGFkb3ctY29sb3Ige1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xufVxuQHByb3BlcnR5IC0tdHctaW5zZXQtc2hhZG93LWFscGhhIHtcbiAgICBzeW50YXg6IFwiPHBlcmNlbnRhZ2U+XCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDEwMCU7XG59XG5AcHJvcGVydHkgLS10dy1yaW5nLWNvbG9yIHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cbkBwcm9wZXJ0eSAtLXR3LXJpbmctc2hhZG93IHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbiAgICBpbml0aWFsLXZhbHVlOiAwIDAgIzAwMDA7XG59XG5AcHJvcGVydHkgLS10dy1pbnNldC1yaW5nLWNvbG9yIHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cbkBwcm9wZXJ0eSAtLXR3LWluc2V0LXJpbmctc2hhZG93IHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbiAgICBpbml0aWFsLXZhbHVlOiAwIDAgIzAwMDA7XG59XG5AcHJvcGVydHkgLS10dy1yaW5nLWluc2V0IHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cbkBwcm9wZXJ0eSAtLXR3LXJpbmctb2Zmc2V0LXdpZHRoIHtcbiAgICBzeW50YXg6IFwiPGxlbmd0aD5cIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogMHB4O1xufVxuQHByb3BlcnR5IC0tdHctcmluZy1vZmZzZXQtY29sb3Ige1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6ICNmZmY7XG59XG5AcHJvcGVydHkgLS10dy1yaW5nLW9mZnNldC1zaGFkb3cge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDAgMCAjMDAwMDtcbn1cbkBwcm9wZXJ0eSAtLXR3LW91dGxpbmUtc3R5bGUge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IHNvbGlkO1xufVxuQHByb3BlcnR5IC0tdHctZHVyYXRpb24ge1xuICAgIHN5bnRheDogXCIqXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xufVxuQHByb3BlcnR5IC0tdHctZWFzZSB7XG4gICAgc3ludGF4OiBcIipcIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG59XG5AcHJvcGVydHkgLS10dy1jb250ZW50IHtcbiAgICBzeW50YXg6IFwiKlwiO1xuICAgIGluaXRpYWwtdmFsdWU6IFwiXCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xufVxuQGtleWZyYW1lcyBzcGluIHtcbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuQGtleWZyYW1lcyBwdWxzZSB7XG4gICAgNTAlIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgZW50ZXIge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiB2YXIoLS10dy1lbnRlci1vcGFjaXR5LDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKHZhcigtLXR3LWVudGVyLXRyYW5zbGF0ZS14LDApLHZhcigtLXR3LWVudGVyLXRyYW5zbGF0ZS15LDApLDApc2NhbGUzZCh2YXIoLS10dy1lbnRlci1zY2FsZSwxKSx2YXIoLS10dy1lbnRlci1zY2FsZSwxKSx2YXIoLS10dy1lbnRlci1zY2FsZSwxKSlyb3RhdGUodmFyKC0tdHctZW50ZXItcm90YXRlLDApKTtcbiAgICAgICAgZmlsdGVyOiBibHVyKHZhcigtLXR3LWVudGVyLWJsdXIsMCkpO1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgZXhpdCB7XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiB2YXIoLS10dy1leGl0LW9wYWNpdHksMSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QodmFyKC0tdHctZXhpdC10cmFuc2xhdGUteCwwKSx2YXIoLS10dy1leGl0LXRyYW5zbGF0ZS15LDApLDApc2NhbGUzZCh2YXIoLS10dy1leGl0LXNjYWxlLDEpLHZhcigtLXR3LWV4aXQtc2NhbGUsMSksdmFyKC0tdHctZXhpdC1zY2FsZSwxKSlyb3RhdGUodmFyKC0tdHctZXhpdC1yb3RhdGUsMCkpO1xuICAgICAgICBmaWx0ZXI6IGJsdXIodmFyKC0tdHctZXhpdC1ibHVyLDApKTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIGFjY29yZGlvbi1kb3duIHtcbiAgICBmcm9tIHtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcmFkaXgtYWNjb3JkaW9uLWNvbnRlbnQtaGVpZ2h0LHZhcigtLWJpdHMtYWNjb3JkaW9uLWNvbnRlbnQtaGVpZ2h0LHZhcigtLXJla2EtYWNjb3JkaW9uLWNvbnRlbnQtaGVpZ2h0LHZhcigtLWtiLWFjY29yZGlvbi1jb250ZW50LWhlaWdodCx2YXIoLS1uZ3AtYWNjb3JkaW9uLWNvbnRlbnQtaGVpZ2h0LGF1dG8pKSkpKTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIGFjY29yZGlvbi11cCB7XG4gICAgZnJvbSB7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcmFkaXgtYWNjb3JkaW9uLWNvbnRlbnQtaGVpZ2h0LHZhcigtLWJpdHMtYWNjb3JkaW9uLWNvbnRlbnQtaGVpZ2h0LHZhcigtLXJla2EtYWNjb3JkaW9uLWNvbnRlbnQtaGVpZ2h0LHZhcigtLWtiLWFjY29yZGlvbi1jb250ZW50LWhlaWdodCx2YXIoLS1uZ3AtYWNjb3JkaW9uLWNvbnRlbnQtaGVpZ2h0LGF1dG8pKSkpKTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgfVxufVxuQGtleWZyYW1lcyBhY2NvcmRpb24tZG93biB7XG4gICAgZnJvbSB7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXJhZGl4LWFjY29yZGlvbi1jb250ZW50LWhlaWdodCk7XG4gICAgfVxufVxuQGtleWZyYW1lcyBhY2NvcmRpb24tdXAge1xuICAgIGZyb20ge1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXJhZGl4LWFjY29yZGlvbi1jb250ZW50LWhlaWdodCk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbn1cbkBsYXllciBwcm9wZXJ0aWVzIHtcbiAgICBAc3VwcG9ydHMgKCgtd2Via2l0LWh5cGhlbnM6IG5vbmUpIGFuZCAobm90IChtYXJnaW4tdHJpbTogaW5saW5lKSkpIG9yICgoLW1vei1vcmllbnQ6IGlubGluZSkgYW5kIChub3QgKGNvbG9yOnJnYihmcm9tIHJlZCByIGcgYikpKSkge1xuICAgICAgICAqLCA6OmJlZm9yZSwgOjphZnRlciwgOjpiYWNrZHJvcCB7XG4gICAgICAgICAgICAtLXR3LXRyYW5zbGF0ZS14OiAwO1xuICAgICAgICAgICAgLS10dy10cmFuc2xhdGUteTogMDtcbiAgICAgICAgICAgIC0tdHctdHJhbnNsYXRlLXo6IDA7XG4gICAgICAgICAgICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcbiAgICAgICAgICAgIC0tdHctc3BhY2UteC1yZXZlcnNlOiAwO1xuICAgICAgICAgICAgLS10dy1ib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgLS10dy1sZWFkaW5nOiBpbml0aWFsO1xuICAgICAgICAgICAgLS10dy1mb250LXdlaWdodDogaW5pdGlhbDtcbiAgICAgICAgICAgIC0tdHctb3JkaW5hbDogaW5pdGlhbDtcbiAgICAgICAgICAgIC0tdHctc2xhc2hlZC16ZXJvOiBpbml0aWFsO1xuICAgICAgICAgICAgLS10dy1udW1lcmljLWZpZ3VyZTogaW5pdGlhbDtcbiAgICAgICAgICAgIC0tdHctbnVtZXJpYy1zcGFjaW5nOiBpbml0aWFsO1xuICAgICAgICAgICAgLS10dy1udW1lcmljLWZyYWN0aW9uOiBpbml0aWFsO1xuICAgICAgICAgICAgLS10dy1zaGFkb3c6IDAgMCAjMDAwMDtcbiAgICAgICAgICAgIC0tdHctc2hhZG93LWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgLS10dy1zaGFkb3ctYWxwaGE6IDEwMCU7XG4gICAgICAgICAgICAtLXR3LWluc2V0LXNoYWRvdzogMCAwICMwMDAwO1xuICAgICAgICAgICAgLS10dy1pbnNldC1zaGFkb3ctY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAtLXR3LWluc2V0LXNoYWRvdy1hbHBoYTogMTAwJTtcbiAgICAgICAgICAgIC0tdHctcmluZy1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgIC0tdHctcmluZy1zaGFkb3c6IDAgMCAjMDAwMDtcbiAgICAgICAgICAgIC0tdHctaW5zZXQtcmluZy1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgIC0tdHctaW5zZXQtcmluZy1zaGFkb3c6IDAgMCAjMDAwMDtcbiAgICAgICAgICAgIC0tdHctcmluZy1pbnNldDogaW5pdGlhbDtcbiAgICAgICAgICAgIC0tdHctcmluZy1vZmZzZXQtd2lkdGg6IDBweDtcbiAgICAgICAgICAgIC0tdHctcmluZy1vZmZzZXQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogMCAwICMwMDAwO1xuICAgICAgICAgICAgLS10dy1vdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIC0tdHctZHVyYXRpb246IGluaXRpYWw7XG4gICAgICAgICAgICAtLXR3LWVhc2U6IGluaXRpYWw7XG4gICAgICAgICAgICAtLXR3LWNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAtLXR3LWFuaW1hdGlvbi1kZWxheTogMHM7XG4gICAgICAgICAgICAtLXR3LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAgICAgICAgIC0tdHctYW5pbWF0aW9uLWR1cmF0aW9uOiBpbml0aWFsO1xuICAgICAgICAgICAgLS10dy1hbmltYXRpb24tZmlsbC1tb2RlOiBub25lO1xuICAgICAgICAgICAgLS10dy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICAgICAgICAgICAgLS10dy1lbnRlci1ibHVyOiAwO1xuICAgICAgICAgICAgLS10dy1lbnRlci1vcGFjaXR5OiAxO1xuICAgICAgICAgICAgLS10dy1lbnRlci1yb3RhdGU6IDA7XG4gICAgICAgICAgICAtLXR3LWVudGVyLXNjYWxlOiAxO1xuICAgICAgICAgICAgLS10dy1lbnRlci10cmFuc2xhdGUteDogMDtcbiAgICAgICAgICAgIC0tdHctZW50ZXItdHJhbnNsYXRlLXk6IDA7XG4gICAgICAgICAgICAtLXR3LWV4aXQtYmx1cjogMDtcbiAgICAgICAgICAgIC0tdHctZXhpdC1vcGFjaXR5OiAxO1xuICAgICAgICAgICAgLS10dy1leGl0LXJvdGF0ZTogMDtcbiAgICAgICAgICAgIC0tdHctZXhpdC1zY2FsZTogMTtcbiAgICAgICAgICAgIC0tdHctZXhpdC10cmFuc2xhdGUteDogMDtcbiAgICAgICAgICAgIC0tdHctZXhpdC10cmFuc2xhdGUteTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5cblxuXG5cblxuXG5cblxuLmRhcmsge1xuICAgIC0tYmFja2dyb3VuZDogb2tsY2goMC4xNDUgMCAwKTtcbiAgICAtLWZvcmVncm91bmQ6IG9rbGNoKDAuOTg1IDAgMCk7XG4gICAgLS1jYXJkOiBva2xjaCgwLjE0NSAwIDApO1xuICAgIC0tY2FyZC1mb3JlZ3JvdW5kOiBva2xjaCgwLjk4NSAwIDApO1xuICAgIC0tcG9wb3Zlcjogb2tsY2goMC4xNDUgMCAwKTtcbiAgICAtLXBvcG92ZXItZm9yZWdyb3VuZDogb2tsY2goMC45ODUgMCAwKTtcbiAgICAtLXByaW1hcnk6IG9rbGNoKDAuOTg1IDAgMCk7XG4gICAgLS1wcmltYXJ5LWZvcmVncm91bmQ6IG9rbGNoKDAuMjA1IDAgMCk7XG4gICAgLS1zZWNvbmRhcnk6IG9rbGNoKDAuMjY5IDAgMCk7XG4gICAgLS1zZWNvbmRhcnktZm9yZWdyb3VuZDogb2tsY2goMC45ODUgMCAwKTtcbiAgICAtLW11dGVkOiBva2xjaCgwLjI2OSAwIDApO1xuICAgIC0tbXV0ZWQtZm9yZWdyb3VuZDogb2tsY2goMC43MDggMCAwKTtcbiAgICAtLWFjY2VudDogb2tsY2goMC4yNjkgMCAwKTtcbiAgICAtLWFjY2VudC1mb3JlZ3JvdW5kOiBva2xjaCgwLjk4NSAwIDApO1xuICAgIC0tZGVzdHJ1Y3RpdmU6IG9rbGNoKDAuMzk2IDAuMTQxIDI1LjcyMyk7XG4gICAgLS1kZXN0cnVjdGl2ZS1mb3JlZ3JvdW5kOiBva2xjaCgwLjYzNyAwLjIzNyAyNS4zMzEpO1xuICAgIC0tYm9yZGVyOiBva2xjaCgwLjI2OSAwIDApO1xuICAgIC0taW5wdXQ6IG9rbGNoKDAuMjY5IDAgMCk7XG4gICAgLS1yaW5nOiBva2xjaCgwLjQzOSAwIDApO1xuICAgIC0tY2hhcnQtMTogb2tsY2goMC40ODggMC4yNDMgMjY0LjM3Nik7XG4gICAgLS1jaGFydC0yOiBva2xjaCgwLjY5NiAwLjE3IDE2Mi40OCk7XG4gICAgLS1jaGFydC0zOiBva2xjaCgwLjc2OSAwLjE4OCA3MC4wOCk7XG4gICAgLS1jaGFydC00OiBva2xjaCgwLjYyNyAwLjI2NSAzMDMuOSk7XG4gICAgLS1jaGFydC01OiBva2xjaCgwLjY0NSAwLjI0NiAxNi40MzkpO1xuICAgIC0tc2lkZWJhcjogb2tsY2goMC4yMDUgMCAwKTtcbiAgICAtLXNpZGViYXItZm9yZWdyb3VuZDogb2tsY2goMC45ODUgMCAwKTtcbiAgICAtLXNpZGViYXItcHJpbWFyeTogb2tsY2goMC40ODggMC4yNDMgMjY0LjM3Nik7XG4gICAgLS1zaWRlYmFyLXByaW1hcnktZm9yZWdyb3VuZDogb2tsY2goMC45ODUgMCAwKTtcbiAgICAtLXNpZGViYXItYWNjZW50OiBva2xjaCgwLjI2OSAwIDApO1xuICAgIC0tc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZDogb2tsY2goMC45ODUgMCAwKTtcbiAgICAtLXNpZGViYXItYm9yZGVyOiBva2xjaCgwLjI2OSAwIDApO1xuICAgIC0tc2lkZWJhci1yaW5nOiBva2xjaCgwLjQzOSAwIDApO1xufVxuXG5AdGhlbWUgaW5saW5lIHtcbiAgICAtLWNvbG9yLWJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQpO1xuICAgIC0tY29sb3ItZm9yZWdyb3VuZDogdmFyKC0tZm9yZWdyb3VuZCk7XG4gICAgLS1jb2xvci1jYXJkOiB2YXIoLS1jYXJkKTtcbiAgICAtLWNvbG9yLWNhcmQtZm9yZWdyb3VuZDogdmFyKC0tY2FyZC1mb3JlZ3JvdW5kKTtcbiAgICAtLWNvbG9yLXBvcG92ZXI6IHZhcigtLXBvcG92ZXIpO1xuICAgIC0tY29sb3ItcG9wb3Zlci1mb3JlZ3JvdW5kOiB2YXIoLS1wb3BvdmVyLWZvcmVncm91bmQpO1xuICAgIC0tY29sb3ItcHJpbWFyeTogdmFyKC0tcHJpbWFyeSk7XG4gICAgLS1jb2xvci1wcmltYXJ5LWZvcmVncm91bmQ6IHZhcigtLXByaW1hcnktZm9yZWdyb3VuZCk7XG4gICAgLS1jb2xvci1zZWNvbmRhcnk6IHZhcigtLXNlY29uZGFyeSk7XG4gICAgLS1jb2xvci1zZWNvbmRhcnktZm9yZWdyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWZvcmVncm91bmQpO1xuICAgIC0tY29sb3ItbXV0ZWQ6IHZhcigtLW11dGVkKTtcbiAgICAtLWNvbG9yLW11dGVkLWZvcmVncm91bmQ6IHZhcigtLW11dGVkLWZvcmVncm91bmQpO1xuICAgIC0tY29sb3ItYWNjZW50OiB2YXIoLS1hY2NlbnQpO1xuICAgIC0tY29sb3ItYWNjZW50LWZvcmVncm91bmQ6IHZhcigtLWFjY2VudC1mb3JlZ3JvdW5kKTtcbiAgICAtLWNvbG9yLWRlc3RydWN0aXZlOiB2YXIoLS1kZXN0cnVjdGl2ZSk7XG4gICAgLS1jb2xvci1kZXN0cnVjdGl2ZS1mb3JlZ3JvdW5kOiB2YXIoLS1kZXN0cnVjdGl2ZS1mb3JlZ3JvdW5kKTtcbiAgICAtLWNvbG9yLWJvcmRlcjogdmFyKC0tYm9yZGVyKTtcbiAgICAtLWNvbG9yLWlucHV0OiB2YXIoLS1pbnB1dCk7XG4gICAgLS1jb2xvci1yaW5nOiB2YXIoLS1yaW5nKTtcbiAgICAtLWNvbG9yLWNoYXJ0LTE6IHZhcigtLWNoYXJ0LTEpO1xuICAgIC0tY29sb3ItY2hhcnQtMjogdmFyKC0tY2hhcnQtMik7XG4gICAgLS1jb2xvci1jaGFydC0zOiB2YXIoLS1jaGFydC0zKTtcbiAgICAtLWNvbG9yLWNoYXJ0LTQ6IHZhcigtLWNoYXJ0LTQpO1xuICAgIC0tY29sb3ItY2hhcnQtNTogdmFyKC0tY2hhcnQtNSk7XG4gICAgLS1yYWRpdXMtc206IGNhbGModmFyKC0tcmFkaXVzKSAtIDRweCk7XG4gICAgLS1yYWRpdXMtbWQ6IGNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7XG4gICAgLS1yYWRpdXMtbGc6IHZhcigtLXJhZGl1cyk7XG4gICAgLS1yYWRpdXMteGw6IGNhbGModmFyKC0tcmFkaXVzKSArIDRweCk7XG4gICAgLS1jb2xvci1zaWRlYmFyOiB2YXIoLS1zaWRlYmFyKTtcbiAgICAtLWNvbG9yLXNpZGViYXItZm9yZWdyb3VuZDogdmFyKC0tc2lkZWJhci1mb3JlZ3JvdW5kKTtcbiAgICAtLWNvbG9yLXNpZGViYXItcHJpbWFyeTogdmFyKC0tc2lkZWJhci1wcmltYXJ5KTtcbiAgICAtLWNvbG9yLXNpZGViYXItcHJpbWFyeS1mb3JlZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLXByaW1hcnktZm9yZWdyb3VuZCk7XG4gICAgLS1jb2xvci1zaWRlYmFyLWFjY2VudDogdmFyKC0tc2lkZWJhci1hY2NlbnQpO1xuICAgIC0tY29sb3Itc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCk7XG4gICAgLS1jb2xvci1zaWRlYmFyLWJvcmRlcjogdmFyKC0tc2lkZWJhci1ib3JkZXIpO1xuICAgIC0tY29sb3Itc2lkZWJhci1yaW5nOiB2YXIoLS1zaWRlYmFyLXJpbmcpO1xuICAgIC0tYW5pbWF0ZS1hY2NvcmRpb24tZG93bjogYWNjb3JkaW9uLWRvd24gMC4ycyBlYXNlLW91dDtcbiAgICAtLWFuaW1hdGUtYWNjb3JkaW9uLXVwOiBhY2NvcmRpb24tdXAgMC4ycyBlYXNlLW91dDtcblxuICAgIEBrZXlmcmFtZXMgYWNjb3JkaW9uLWRvd24ge1xuICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgICB0byB7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXJhZGl4LWFjY29yZGlvbi1jb250ZW50LWhlaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGFjY29yZGlvbi11cCB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1yYWRpeC1hY2NvcmRpb24tY29udGVudC1oZWlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5cbi5hdXRob3ItZmlsdGVycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbn1cblxuLmFjY29yZGlvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5hY2NvcmRpb246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlOGY3Zjg7XG59XG5cbi5jb250ZW50IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbn1cblxuLmNvbnRlbnQtaW5uZXIge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4uYWRkLWJvb2stYnV0dG9uIHtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbn1cblxuLmRhdGUtaW5wdXQge1xuXG59XG5cbi5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIGVhc2UtaW4tb3V0IC4ycztcbn1cbmJ1dHRvbi5jYW5jZWwsIC5idXR0b24uY2FuY2VsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuYnV0dG9uLmNhbmNlbDpob3ZlciwgLmJ1dHRvbi5jYW5jZWw6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkMWQxZDE7XG59XG4uYnV0dG9uLWZvcm0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZvcm0tYmxvY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG5cblxuXG4uZmxhc2gge1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgbWFyZ2luOiAxMHB4IGF1dG87XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGFuaW1hdGlvbjogZmFkZS1pbiAwLjNzIGVhc2UgZm9yd2FyZHMsIGZhZGUtb3V0IDAuM3MgZWFzZSBmb3J3YXJkcyA0cztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4uZmxhc2gtZXJyb3Ige1xuICAgIGJhY2tncm91bmQ6ICNmZmUyZTI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmOGE4YTtcbiAgICBjb2xvcjogI2IxMDAwMDtcbn1cblxuLmZsYXNoLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICNlMmZmZTc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzdlZGM3ZTtcbiAgICBjb2xvcjogIzAwNjkxNTtcbn1cblxuQGtleWZyYW1lcyBmYWRlLWluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpOyB9XG4gICAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGUtb3V0IHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gICAgdG8gICB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTsgfVxufVxuXG5cbi5mb3JtLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/