@charset "UTF-8";
/* ────────────────────────────────
    fonts
──────────────────────────────── */
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Thin.woff2") format("woff2");
    font-weight: 100;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-ExtraLight.woff2") format("woff2");
    font-weight: 200;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Light.woff2") format("woff2");
    font-weight: 300;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Regular.woff2") format("woff2");
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Medium.woff2") format("woff2");
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-SemiBold.woff2") format("woff2");
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Bold.woff2") format("woff2");
    font-weight: 700;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-ExtraBold.woff2") format("woff2");
    font-weight: 800;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Black.woff2") format("woff2");
    font-weight: 900;
    font-display: swap;
}
/* ────────────────────────────────
    common/reset
──────────────────────────────── */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
*::after, *::before {
    box-sizing: border-box;
}

html {
    font-family: var(--font-base);
    font-size: var(--font-size);
    color: var(--color-text);
    background-color: var(--color-background);
}

body {
    font-size: var(--font-base-size);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    background-color: var(--color-background);
    overflow-x: hidden;
    word-break: keep-all;
}

ol,
ul {
    list-style: none;
}
ol::after,
ul::after {
    display: none;
}

button {
    all: unset;
    cursor: pointer;
    box-sizing: border-box;
}

img,
svg,
picture,
video,
canvas,
iframe,
textarea {
    display: block;
    max-width: 100%;
}

img {
    vertical-align: top;
}

input,
button,
textarea,
select {
    font: inherit;
}

input {
    appearance: none;
    border-radius: none;
    outline: none;
    border-radius: 0;
    border: none;
}
input::-ms-clear {
    display: none;
}

input {
    color: var(--color-text);
    background-color: var(--color-background);
}
input::-webkit-search-decoration, input::-webkit-search-cancel-button, input::-webkit-search-results-button, input::-webkit-search-results-decoration {
    display: none;
}

input[type=text],
input[type=password],
input[type=submit],
input[type=search],
input[type=tel],
input[type=email],
html input[type=button],
input[type=reset] {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    border-radius: 0;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    outline: 0;
}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

input[type=number] {
    -moz-appearance: textfield;
}

select {
    appearance: none;
    outline: none;
    border-radius: 0;
    color: var(--color-text);
    background-color: var(--color-background);
}
select::-ms-expand {
    display: none;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: break-word;
}

a {
    color: inherit;
    text-decoration: none;
    display: inline-block;
}

[onclick] {
    cursor: pointer;
}

span {
    display: inline-block;
}

/* ────────────────────────────────
    common/mixins
──────────────────────────────── */
/* ────────────────────────────────
    common/root
──────────────────────────────── */
:root {
    --font-size: 62.5%;
    --font-base: "Pretendard";
    --font-base-size: 1.6rem;
    --color-gray-100: #f3f3f5;
    --color-gray-200: #ebebed;
    --color-gray-300: #dcdcde;
    --color-gray-400: #b8b8bb;
    --color-gray-500: #99999b;
    --color-gray-600: #707072;
    --color-gray-700: #616161;
    --color-gray-800: #3e3e40;
    --color-gray-900: #1d1d1f;
    --color-text: #222;
    --color-text-light: #666;
    --color-border: #e0e0e0;
    --color-border-light: #ededed;
    --color-background: #ffffff;
    --color-background-contrast: 0, 0, 0;
    --color-background-gray: #f9f9f9;
    --color-icon: #99999b;
    --size-icon: 2.4rem;
    --size-icon-small: 2rem;
    --size-icon-xsmall: 1.6rem;
    --z-index-loading: 100;
    --z-index-popover: 99;
    --z-index-modal: 98;
    --z-index-snb: 97;
    --z-index-header: 96;
    --transition-duration: 0.2s;
    --blur-background: rgba(255, 255, 255, 0.7);
    --blur-shadow: rgba(255, 255, 255, 0.5);
    --badge-green: #198754;
    --badge-green-background: #d1f7d6;
    --badge-green-border: #b2e9b9;
    --badge-red: #c82333;
    --badge-red-background: #fcebea;
    --badge-red-border: #e9d0cf;
    --badge-blue: #0d6efd;
    --badge-blue-background: #e7f1fc;
    --badge-blue-border: #d0dff0;
    --badge-yellow: #856404;
    --badge-yellow-background: #fff3cd;
    --badge-darkred: #721c24;
    --badge-darkred-background: #f8d7da;
    --badge-purple: #6f42c1;
    --badge-purple-background: #f2e8fb;
    --badge-cyan: #0dcaf0;
    --badge-cyan-background: #e0f7fb;
    --badge-teal: #20c997;
    --badge-teal-background: #e0f9f3;
    --badge-orange: #fd7e14;
    --badge-orange-background: #fff0e5;
    --badge-brown: #795548;
    --badge-brown-background: #f1e7e3;
    --badge-indigo: #6610f2;
    --badge-indigo-background: #ede7fb;
    --badge-pink: #d63384;
    --badge-pink-background: #fde7f1;
    --badge-positive: #065f46;
    --badge-positive-background: #d1fae5;
    --badge-negative: #991b1b;
    --badge-negative-background: #fee2e2;
    --badge-warning: #92400e;
    --badge-warning-background: #fef3c7;
    --badge-info: #1e40af;
    --badge-info-background: #dbeafe;
    --badge-neutral: #374151;
    --badge-neutral-background: #e5e7eb;
}
@media screen and (max-width: 767px) {
    :root {
        --font-size: 50%;
    }
}

/* ────────────────────────────────
    common/icon
──────────────────────────────── */
.icon {
    width: var(--size-icon);
    min-width: var(--size-icon);
    height: var(--size-icon);
    min-height: var(--size-icon);
    color: var(--color-icon);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition-duration);
    /*
     * default 2.4
     * small 2
     * xsmall 1.6
     * xxsmall 1.2
    */
}
.icon.icon-small {
    width: 2rem;
    min-width: 2rem;
    height: 2rem;
    min-height: 2rem;
}
.icon.icon-xsmall {
    width: 1.6rem;
    min-width: 1.6rem;
    height: 1.6rem;
    min-height: 1.6rem;
}
.icon.icon-xxsmall {
    width: 1.2rem;
    min-width: 1.2rem;
    height: 1.2rem;
    min-height: 1.2rem;
}

/* ────────────────────────────────
    common/common
──────────────────────────────── */
.key-value-item {
    display: flex;
    justify-content: space-between;
    gap: 0 var(--gap-layout);
    white-space: nowrap;
}
.key-value-item.accent {
    border-top: 1px solid var(--color-border-2);
    margin-top: 1.2rem;
    padding-top: 1.2rem;
}
.key-value-item.accent .key {
    color: var(--color-text);
}
.key-value-item.accent .accent {
    font-size: 1.8rem;
}
.key-value-item .key {
    color: var(--color-text-sub-2);
}
.key-value-item .accent {
    font-size: 1.6rem;
    font-weight: 600;
}
.key-value-item .separator {
    color: var(--color-text-sub-2);
}

.line-clamp {
    display: -webkit-box !important;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;
    text-align: left;
}
.line-clamp.show {
    max-width: none !important;
}
.line-clamp.line-2 {
    -webkit-line-clamp: 2;
}

.ratio-img {
    overflow: hidden;
    position: relative;
}
.ratio-img::after {
    content: "";
    display: block;
    padding-bottom: 100%;
}
.ratio-img.ratio-3-4::after {
    padding-bottom: 133.33%;
}
.ratio-img img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* ────────────────────────────────
    toast
──────────────────────────────── */
.toast-container {
    position: fixed;
    left: 50%;
    bottom: var(--gap-layout);
    transform: translateX(-50%);
    z-index: var(--z-index-loading);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap-component);
}
.toast-container .toast {
    width: 100vw;
    max-width: 52rem;
    min-height: calc(var(--size-icon) + var(--gap-layout) + var(--gap-layout));
    background-color: rgba(0, 0, 0, 0.7);
    transition: var(--transition-duration);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    padding: var(--gap-layout);
    border-radius: 52rem;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
    box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);
    transform: translateY(32rem);
    /*
    &:first-child {
        margin-top: var(--gap-layout);
    }
    */
}
.toast-container .toast .toast-icon {
    width: calc(var(--size-icon));
    height: calc(var(--size-icon));
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    position: absolute;
    left: calc(var(--gap-layout) * 1.5);
    background-color: var(--color-background-light);
}
.toast-container .toast .toast-icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    font-size: 1rem;
}
.toast-container .toast .toast-title {
    font-size: 1.5rem;
    font-weight: 700;
    padding-left: calc(var(--size-icon) + calc(var(--gap-layout) * 1.5));
    color: var(--color-white);
}
.toast-container .toast .toast-sub-title {
    font-size: 1.4rem;
    padding-left: calc(var(--size-icon) + calc(var(--gap-layout) * 1.5));
    color: var(--color-white);
}
.toast-container .toast.info .toast-icon {
    background-color: var(--color-info);
}
.toast-container .toast.info .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.success .toast-icon {
    background-color: var(--color-success);
}
.toast-container .toast.success .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.warning .toast-icon {
    background-color: var(--color-warning);
}
.toast-container .toast.warning .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.error .toast-icon {
    background-color: var(--color-error);
}
.toast-container .toast.error .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.active {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
.toast-container .toast.hidden {
    opacity: 0;
    pointer-events: none;
    transform: translateY(32rem);
}

/* ────────────────────────────────
    user
──────────────────────────────── */
/* ────────────────────────────────
    user/common
──────────────────────────────── */
/* ────────────────────────────────
    admin/common/root
──────────────────────────────── */
:root {
    --font-input-size: 1.4rem;
    --color-primary: #35d86f;
    --color-primary-rgb: 53, 216, 111;
    --color-primary-hover: #25c45c;
    --color-primary-active: #1fa94e;
    --color-primary-light: #f0fff5;
    --color-primary-light-active: #dcfbe7;
    --color-primary-sub: #111827;
    --color-primary-contrast: #ffffff;
    --color-text: #1e1d1c;
    --color-text-dark: #5d5c5b;
    --color-text-light: #71706f;
    --color-text-white: #ffffff;
    --color-text-sub-1: #5d5c5b;
    --color-text-sub-2: #71706f;
    --color-text-sub-3: #9a9997;
    --color-border: #dddcda;
    --color-border-light: #ecebe9;
    --color-border-2: #ecebe9;
    --color-background: #fff;
    --color-background-light: #f9f9f9;
    --color-background-contrast: 0, 0, 0;
    --z-index-loading: 100;
    --z-index-popover: 99;
    --z-index-modal: 98;
    --z-index-snb: 97;
    --z-index-header: 96;
    --z-index-panel: 95;
    --size-logo-height: 2.9rem;
    --color-icon: #99999b;
    --color-header-background: #ffffff;
    --size-header-height: 8.2rem;
    --color-snb-border: #e0e0e0;
    --color-snb-background: #ffffff;
    --size-snb-width: 27rem;
    --size-snb-collapsed-width: 8rem;
    --transition-duration: 0.2s;
    --gap-main: 2.4rem;
    --gap-layout: 2rem;
    --gap-form: 1.2rem;
    --gap-component: 0.8rem;
    --radius: 0.6rem;
    --radius-snb: 0.6rem;
    --radius-card: 1.2rem;
    --radius-input: 0.6rem;
    --radius-modal: 0.6rem;
    --size-input: 4.6rem;
    --color-input-background: #fafafa;
    --color-input-readonly-background: #f9f9f9;
    --color-excel: #1d6f42;
    --color-excel-background: #f0fff6;
    --color-excel-active-background: #e4ffef;
    --size-panel: 36rem;
    --size-layout-width: 120rem;
    --color-white: #ffffff;
    --color-info: #0067f8;
    --color-success: #18d651;
    --color-warning: #e9d62d;
    --color-error: #e93f1d;
    --color-success-background: #e4f6ea;
}

/* ────────────────────────────────
    user/common/common
──────────────────────────────── */
body {
    background-color: #fefefd;
}

.logo .logo-img {
    height: var(--size-logo-height);
}

.result-box {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    padding: 2.4rem 1.6rem;
    text-align: center;
}
.result-box.border {
    border: 1px solid var(--color-border);
    border-color: var(--color-border-2);
    border-radius: var(--radius-card);
}
.result-box img {
    width: 6.4rem;
    margin: 0 auto;
}
.result-box h2 {
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--color-text);
}
.result-box p {
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-text-dark);
}

.icon.gift-img {
    box-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.15);
    border-radius: 0.6rem;
}

.color-primary-sub {
    color: var(--color-primary-sub);
}

/* ────────────────────────────────
    user/layout
──────────────────────────────── */
/* ────────────────────────────────
    user/layout/header
──────────────────────────────── */
.header {
    width: 100%;
    height: var(--size-header-height);
    position: fixed;
    top: 0;
    left: 0;
    z-index: var(--z-index-header);
    background-color: #ffffff10;
    backdrop-filter: blur(12px);
    transition: var(--transition-duration);
}
.header[data-theme=hidden] {
    opacity: 0;
    pointer-events: none;
}
.header[data-theme=dark] .header-container .button-group .button {
    color: var(--color-text-white);
}
.header[data-theme=light] .header-container .button-group .button {
    color: var(--color-text);
}
.header[data-theme=light] .header-container .button-group .button.button-primary {
    color: var(--color-primary-contrast);
}
@media screen and (max-width: 1239px) {
    .header {
        padding: 0 var(--gap-layout);
    }
}
@media screen and (max-width: 1023px) {
    .header[data-theme=light] .header-container .gnb-button img[data-theme=default] {
        opacity: 0;
    }
    .header[data-theme=light] .header-container .gnb-button img[data-theme=light] {
        opacity: 1;
    }
    .header .header-container .gnb {
        width: 30rem;
        height: 100vh;
        height: 100dvh;
        position: fixed;
        right: -30rem;
        top: 0;
        background-color: var(--color-text);
        padding: var(--size-header-height) var(--gap-layout) var(--gap-layout) var(--gap-layout);
        flex-direction: column;
        align-items: flex-start;
        transition: var(--transition-duration);
    }
    .header .header-container .gnb .button {
        width: 100%;
    }
    .header .header-container .gnb .button.button-text {
        justify-content: flex-start;
        color: var(--color-text-white);
    }
    .header .header-container .gnb .button.button-primary {
        margin-top: auto;
    }
    .header .header-container .gnb.active {
        right: 0;
    }
    .header .header-container .gnb.active ~ .gnb-button img {
        opacity: 0 !important;
    }
    .header .header-container .gnb.active ~ .gnb-button img:last-child {
        opacity: 1 !important;
    }
    .header .header-container .gnb.active ~ .gnb-active-layer {
        opacity: 1;
        pointer-events: auto;
    }
    .header .header-container .gnb-button {
        width: 2.4rem;
        height: 2.4rem;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .header .header-container .gnb-button img {
        position: absolute;
        opacity: 0;
        transition: var(--transition-duration);
    }
    .header .header-container .gnb-button img[data-theme=default] {
        opacity: 1;
    }
    .header .header-container .gnb-active-layer {
        width: 100%;
        height: 100vh;
        height: 100dvh;
        background-color: #11111190;
        position: fixed;
        left: 0;
        top: 0;
        display: block;
        z-index: -1;
        opacity: 0;
        pointer-events: none;
        transition: var(--transition-duration);
    }
}

.header-container {
    width: 100%;
    height: 100%;
    max-width: var(--size-layout-width);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.header-container .gnb {
    gap: 1.6rem 2.4rem;
}
.header-container .gnb .button.button-primary {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-primary-contrast);
}
.header-container .gnb .button.button-border:hover {
    color: var(--color-primary);
}
.header-container .gnb .button.button-text {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-text);
    background-color: transparent;
}
.header-container .gnb .button.button-text:hover {
    color: var(--color-primary);
}
.header-container .gnb-button,
.header-container .gnb-active-layer {
    display: none;
}

/* ────────────────────────────────
    user/layout/footer
──────────────────────────────── */
.footer {
    padding: 6rem 0;
    background-color: var(--color-primary-sub);
}
@media screen and (max-width: 1239px) {
    .footer {
        padding: 6rem var(--gap-layout);
    }
}

.footer-container {
    width: 100%;
    max-width: var(--size-layout-width);
    margin: 0 auto;
    color: var(--color-text-sub-2);
}
.footer-container .info {
    margin-top: 2rem;
}
.footer-container .info ul {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
}
.footer-container .info ul li {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.footer-container .info ul li span {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    position: relative;
}
.footer-container .info ul li span::after {
    content: "|";
    display: block;
    font-size: 1.4rem;
}
.footer-container .info ul li span:last-child::after {
    display: none;
}

/* ────────────────────────────────
    user/layout/grid
──────────────────────────────── */
.grid-container {
    display: grid;
    gap: var(--gap-layout);
    grid-template-columns: repeat(12, minmax(0, 1fr));
}
.grid-container .grid-item.grid-item-row-1 {
    grid-row: span 1;
}
.grid-container .grid-item.grid-item-row-2 {
    grid-row: span 2;
}
.grid-container .grid-item.grid-item-row-3 {
    grid-row: span 3;
}
.grid-container .grid-item.grid-item-row-4 {
    grid-row: span 4;
}
.grid-container .grid-item.grid-item-row-5 {
    grid-row: span 5;
}
.grid-container .grid-item.grid-item-row-6 {
    grid-row: span 6;
}
.grid-container .grid-item.grid-item-row-7 {
    grid-row: span 7;
}
.grid-container .grid-item.grid-item-row-8 {
    grid-row: span 8;
}
.grid-container .grid-item.grid-item-row-9 {
    grid-row: span 9;
}
.grid-container .grid-item.grid-item-row-10 {
    grid-row: span 10;
}
.grid-container .grid-item.grid-item-row-11 {
    grid-row: span 11;
}
.grid-container .grid-item.grid-item-row-12 {
    grid-row: span 12;
}
.grid-container .grid-item.grid-item-column-1 {
    grid-column: span 1;
}
.grid-container .grid-item.grid-item-column-2 {
    grid-column: span 2;
}
.grid-container .grid-item.grid-item-column-3 {
    grid-column: span 3;
}
.grid-container .grid-item.grid-item-column-4 {
    grid-column: span 4;
}
.grid-container .grid-item.grid-item-column-5 {
    grid-column: span 5;
}
.grid-container .grid-item.grid-item-column-6 {
    grid-column: span 6;
}
.grid-container .grid-item.grid-item-column-7 {
    grid-column: span 7;
}
.grid-container .grid-item.grid-item-column-8 {
    grid-column: span 8;
}
.grid-container .grid-item.grid-item-column-9 {
    grid-column: span 9;
}
.grid-container .grid-item.grid-item-column-10 {
    grid-column: span 10;
}
.grid-container .grid-item.grid-item-column-11 {
    grid-column: span 11;
}
.grid-container .grid-item.grid-item-column-12 {
    grid-column: span 12;
}
.grid-container .grid-item.sticky {
    position: sticky;
    top: calc(var(--size-header-height) + var(--gap-layout));
    z-index: 1;
}
@media screen and (max-width: 767px) {
    .grid-container .grid-item.grid-item-column-1, .grid-container .grid-item.grid-item-column-2, .grid-container .grid-item.grid-item-column-3, .grid-container .grid-item.grid-item-column-4, .grid-container .grid-item.grid-item-column-5 {
        grid-column: span 6;
    }
    .grid-container .grid-item.grid-item-column-6, .grid-container .grid-item.grid-item-column-7, .grid-container .grid-item.grid-item-column-8, .grid-container .grid-item.grid-item-column-9, .grid-container .grid-item.grid-item-column-10, .grid-container .grid-item.grid-item-column-11, .grid-container .grid-item.grid-item-column-12 {
        grid-column: span 12;
    }
    .grid-container .grid-item.grid-item-column-mobile-1 {
        grid-column: span 1;
    }
    .grid-container .grid-item.grid-item-column-mobile-2 {
        grid-column: span 2;
    }
    .grid-container .grid-item.grid-item-column-mobile-3 {
        grid-column: span 3;
    }
    .grid-container .grid-item.grid-item-column-mobile-4 {
        grid-column: span 4;
    }
    .grid-container .grid-item.grid-item-column-mobile-5 {
        grid-column: span 5;
    }
    .grid-container .grid-item.grid-item-column-mobile-6 {
        grid-column: span 6;
    }
    .grid-container .grid-item.grid-item-column-mobile-7 {
        grid-column: span 7;
    }
    .grid-container .grid-item.grid-item-column-mobile-8 {
        grid-column: span 8;
    }
    .grid-container .grid-item.grid-item-column-mobile-9 {
        grid-column: span 9;
    }
    .grid-container .grid-item.grid-item-column-mobile-10 {
        grid-column: span 10;
    }
    .grid-container .grid-item.grid-item-column-mobile-11 {
        grid-column: span 11;
    }
    .grid-container .grid-item.grid-item-column-mobile-12 {
        grid-column: span 12;
    }
}

/* ────────────────────────────────
    user/layout/error
──────────────────────────────── */
.error-container {
    width: 100%;
    height: auto;
    position: relative;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--gap-layout);
    padding: var(--gap-layout);
    text-align: center;
}
.error-container .error-code {
    width: 20rem;
    height: 20rem;
    border-radius: 50%;
    background-color: var(--color-background-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 6rem;
    font-weight: 900;
    color: var(--color-text-light);
}
.error-container .error-title {
    font-size: 2.4rem;
    font-weight: 700;
}
.error-container .error-text {
    font-size: 1.8rem;
}

/* ────────────────────────────────
    user/layout/result
──────────────────────────────── */
.result-container {
    width: 100%;
    height: auto;
    position: relative;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--gap-layout);
    text-align: center;
    background-image: url(../images/user/bg.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}
.result-container .result-code {
    width: 16rem;
    height: 16rem;
    border-radius: 50%;
    background-color: var(--color-background-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 6rem;
    font-weight: 900;
    color: var(--color-text-light);
    margin-bottom: calc(var(--gap-layout) * 2);
}
.result-container .result-code::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    font-size: 7rem !important;
    color: var(--color-white);
}
.result-container .result-code.success {
    background-color: var(--color-success-background);
}
.result-container .result-code.success::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    color: var(--color-white);
}
.result-container .result-code.primary {
    background-color: var(--color-primary);
}
.result-container .result-code.primary::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    color: var(--color-white);
}
.result-container .result-title {
    font-size: 2.4rem;
    font-weight: 700;
    color: #fff;
}
.result-container .result-title ~ .result-text {
    margin-top: calc(var(--gap-layout) / 2);
}
.result-container .result-text {
    font-size: 1.8rem;
    color: #fff;
    opacity: 0.8;
}
.result-container .result-text ~ .button-group {
    margin-top: calc(var(--gap-layout) * 2);
}
.result-container .result-text ~ .result-card {
    margin-top: calc(var(--gap-layout) * 2);
}
.result-container .result-card {
    width: 100%;
    max-width: 36rem;
    border-color: #fff;
}
.result-container .key-value-item .key {
    color: #fff;
    opacity: 0.8;
}
.result-container .key-value-item .value {
    color: #fff;
}
.result-container .key-value-item .separator {
    color: #fff;
}
.result-container .button-white {
    color: #fff !important;
    border-color: #fff;
}
.result-container .button-white .icon {
    color: #fff !important;
}
.result-container .button-white:hover {
    background-color: var(--color-primary);
}

/* ────────────────────────────────
    user/components
──────────────────────────────── */
/* ────────────────────────────────
    user/components/loading
──────────────────────────────── */
.loading-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(var(--color-background-contrast), 0.2);
    z-index: var(--z-index-loading);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap-layout);
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
}
.loading-container.active {
    opacity: 1;
    pointer-events: auto;
}
.loading-container.hidden-title .loading-title {
    display: none;
}
.loading-container.hidden-sub-title .loading-sub-title {
    display: none;
}

.loading-spinner {
    width: 4rem;
    height: 4rem;
    border: 0.4rem solid var(--color-background-light);
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: spin 0.8s ease-in-out infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0);
    }
    100% {
        transform: rotate(360deg);
    }
}
.loading-title-container {
    text-align: center;
    color: var(--color-primary-contrast);
}

.loading-title {
    font-size: 1.8rem;
    font-weight: 500;
}

.loading-sub-title {
    white-space: pre-line;
}

/* ────────────────────────────────
    user/components/section
──────────────────────────────── */
.section {
    position: relative;
}
.section:first-child:not(.visual-section) {
    padding-top: calc(var(--size-header-height) + 9rem);
}
.section ~ .section {
    margin-top: 13rem;
}
@media screen and (max-width: 1239px) {
    .section:first-child:not(.visual-section) {
        padding-top: calc(var(--size-header-height) + 4.5rem);
    }
    .section ~ .section {
        margin-top: 7rem;
    }
}

.section-head {
    display: flex;
    justify-content: space-between;
    gap: var(--gap-layout);
}
.section-head ~ .section-content {
    margin-top: calc(var(--gap-layout) * 2);
}
@media screen and (max-width: 767px) {
    .section-head {
        flex-direction: column;
    }
    .section-head .button-group {
        flex-wrap: wrap !important;
    }
    .section-head .button-group .button {
        flex: 1;
    }
}

.section-keyword {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    margin-bottom: 0.4rem;
}
.section-keyword span {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-primary);
    display: flex;
    align-items: center;
    gap: 1.1rem;
}
.section-keyword span::after {
    content: "";
    display: block;
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 50%;
    background-color: var(--color-primary);
}
.section-keyword span:last-child::after {
    display: none;
}

.section-title {
    font-size: 2.4rem;
    font-weight: 700;
}
.section-title ~ .section-sub-title, .section-title ~ .text-container {
    margin-top: var(--gap-component);
}

.section-sub-title {
    font-size: 1.6rem;
    color: var(--color-text-dark);
}

.section-tab {
    width: 100%;
    height: auto;
    position: relative;
    overflow: auto;
    display: flex;
    gap: 0.8rem;
    margin-top: 3.2rem;
}
.section-tab::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.section-tab::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.section-tab::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.section-tab::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.section-tab::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.section-tab::-webkit-scrollbar-button {
    display: none;
}
.section-tab a,
.section-tab button {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-text-sub-2);
    text-align: center;
    padding: 0.7rem 2rem;
    border-radius: 2.7rem;
    position: relative;
    transition: var(--transition-duration);
    white-space: nowrap;
}
.section-tab a:hover,
.section-tab button:hover {
    color: var(--color-primary-sub);
}
.section-tab a.active,
.section-tab button.active {
    background-color: var(--color-primary-sub);
    color: var(--color-primary-contrast);
}

.section-content {
    display: flex;
    flex-direction: column;
}

.section-form {
    max-width: 52rem;
}

/* ────────────────────────────────
    user/components/input
──────────────────────────────── */
.input[type=text], .input[type=password] {
    font-size: var(--font-input-size);
    color: var(--color-text);
    height: var(--size-input);
    border: 1px solid var(--color-border);
    border-color: #f3f3f3;
    border-radius: var(--radius-input);
    background-color: var(--color-input-background);
    padding: 0 var(--gap-form);
    transition: var(--transition-duration);
}
.input[type=text]::placeholder, .input[type=password]::placeholder {
    color: var(--color-text-light);
}
.input[type=text]:focus, .input[type=password]:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}
.input[type=text]:read-only, .input[type=password]:read-only {
    color: var(--color-text-light);
    background-color: var(--color-input-readonly-background);
}
.input[type=text]:-webkit-autofill, .input[type=text]:-webkit-autofill:hover, .input[type=password]:-webkit-autofill, .input[type=password]:-webkit-autofill:hover {
    color: var(--color-text) !important;
    caret-color: var(--color-text) !important;
    -webkit-box-shadow: 0 0 0px 1000px var(--color-input-background) inset !important;
    -webkit-text-fill-color: var(--color-text) !important;
    transition: background-color 9999s ease-out 0s !important;
}
.input[type=text]:-webkit-autofill:focus, .input[type=password]:-webkit-autofill:focus {
    color: var(--color-text) !important;
    caret-color: var(--color-text) !important;
    -webkit-box-shadow: 0 0 0 1px var(--color-input-background) inset !important;
    -webkit-text-fill-color: var(--color-text) !important;
    transition: background-color 9999s ease-out 0s !important;
}

.input-group {
    width: 100%;
    display: flex;
    align-items: center;
    position: relative;
    height: 4.8rem;
    background-color: var(--color-input-background);
    border-radius: 0.6rem;
    border: 1px solid var(--color-border);
    border-color: #f3f3f3;
    transition: var(--transition-duration);
}
.input-group:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}
.input-group:focus-within .input {
    box-shadow: 0 0 0 1px var(--color-primary);
}
.input-group:focus-within .focus-show {
    display: block;
}
.input-group:focus-within .focus-hidden {
    display: none;
}
.input-group .input {
    flex: 1;
    min-width: 0;
    height: 100%;
    border: none;
    background-color: transparent;
    box-shadow: none !important;
}
.input-group .input:has(+ .input-suffix-text) {
    padding-right: 0.2rem !important;
}
.input-group .input[type=text] ~ .input-suffix .pw-show {
    display: none;
}
.input-group .input[type=password] ~ .input-suffix .pw-hidden {
    display: none;
}
.input-group .input-prefix-text,
.input-group .input-suffix-text {
    font-size: 1.2rem;
    color: var(--color-text-dark);
}
.input-group .focus-show {
    display: none;
}
.input-group .input-prefix {
    padding-left: 1.4rem;
}
.input-group .input-suffix {
    padding-right: 1.4rem;
}
.input-group .input-suffix-button {
    min-width: 10rem;
    background-color: #f5f5f5;
    color: var(--color-primary);
    border-radius: 0 var(--radius) var(--radius) 0;
    padding: 1rem;
    text-align: center;
    white-space: nowrap;
}
.input-group .input-suffix-timer {
    font-size: 1.2rem;
    padding-right: 1.4rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--color-gray-600);
}

/* ────────────────────────────────
    input/range
──────────────────────────────── */
input[type=range] {
    width: 100%;
    -webkit-appearance: none;
}
input[type=range]:focus {
    outline: none;
}
input[type=range]:active::-webkit-slider-runnable-track {
    background-color: var(--color-border);
}
input[type=range]::-webkit-slider-runnable-track {
    width: 100%;
    height: 4px;
    cursor: pointer;
    background-color: var(--color-border-light);
    transition: var(--transition-duration);
    border-radius: 4px;
}
input[type=range]::-webkit-slider-thumb {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    cursor: pointer;
    -webkit-appearance: none;
    background-color: var(--color-primary);
    margin-top: -5px;
}
input[type=range]::-webkit-slider-thumb:hover, input[type=range]::-webkit-slider-thumb:focus {
    background-color: var(--color-primary-active);
}

/* ────────────────────────────────
    user/components/select
──────────────────────────────── */
.select {
    font-size: var(--font-input-size);
    color: var(--color-text);
    height: var(--size-input);
    border: 1px solid var(--color-border);
    border-color: #f3f3f3;
    border-radius: var(--radius-input);
    background-color: var(--color-input-background);
    padding: 0 calc(var(--gap-form) + (var(--gap-form) / 2) + var(--size-icon)) 0 var(--gap-form);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23909090' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
    background-position: center right var(--gap-form);
    background-repeat: no-repeat;
    background-size: var(--size-icon-small);
    transition: var(--transition-duration);
}
.select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23909090' d='m12 10.8-3.9 3.9a.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275.948.948 0 0 1-.275-.7c0-.283.092-.517.275-.7l4.6-4.6c.2-.2.433-.3.7-.3.267 0 .5.1.7.3l4.6 4.6a.948.948 0 0 1 .275.7.948.948 0 0 1-.275.7.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275L12 10.8Z'/%3E%3C/svg%3E");
}

.select2 {
    width: 100% !important;
    height: var(--size-input);
    text-align: left;
}
.select2 .selection {
    width: 100% !important;
}
.select2 .selection .select2-selection {
    height: var(--size-input);
    border: none;
    border-radius: var(--radius-input);
    position: relative;
    outline: none;
    background-color: var(--color-input-background);
    transition: var(--transition-duration);
}
.select2 .selection .select2-selection .select2-selection__rendered {
    color: var(--color-text);
    line-height: var(--size-input);
    padding: 0 var(--gap-form);
}
.select2 .selection .select2-selection .select2-selection__arrow {
    width: var(--size-icon-small);
    height: var(--size-icon-small);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23909090' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: var(--size-icon-small);
    right: var(--gap-form);
    top: 50%;
    transform: translateY(-50%);
}
.select2 .selection .select2-selection .select2-selection__arrow b {
    display: none;
}
.select2.select2-container--open .selection .select2-selection .select2-selection__arrow {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23909090' d='m12 10.8-3.9 3.9a.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275.948.948 0 0 1-.275-.7c0-.283.092-.517.275-.7l4.6-4.6c.2-.2.433-.3.7-.3.267 0 .5.1.7.3l4.6 4.6a.948.948 0 0 1 .275.7.948.948 0 0 1-.275.7.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275L12 10.8Z'/%3E%3C/svg%3E");
}

.select2-dropdown {
    border: 1px solid var(--color-border);
    border-radius: var(--gap-form);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    background-color: var(--color-input-background);
    margin-top: 1rem;
}
.select2-dropdown .select2-search {
    padding: 0;
}
.select2-dropdown .select2-search .select2-search__field {
    font-size: var(--font-input-size);
    height: var(--size-input);
    border: none;
    border-bottom: 1px solid var(--color-border);
    padding: 0 var(--gap-form);
    background-color: var(--color-background);
}
.select2-dropdown .select2-results__option {
    padding: var(--gap-form);
}
.select2-dropdown .select2-results__message {
    background-color: var(--color-input-readonly-background);
    border-radius: 0 0 var(--radius-input) var(--radius-input);
}
.select2-dropdown .select2-results__options {
    overflow: auto;
    border-radius: var(--radius-input);
    background-color: var(--color-background);
}
.select2-dropdown .select2-results__options::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.select2-dropdown .select2-results__options::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.select2-dropdown .select2-results__options::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.select2-dropdown .select2-results__options::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.select2-dropdown .select2-results__options::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.select2-dropdown .select2-results__options::-webkit-scrollbar-button {
    display: none;
}
.select2-dropdown .select2-results__options .select2-results__option--selected {
    color: var(--color-text);
    background-color: var(--color-background);
}
.select2-dropdown .select2-results__options .select2-results__option--highlighted {
    color: var(--color-text);
    background-color: var(--color-input-readonly-background);
}

.select2-option {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.select2-option img {
    width: var(--size-icon);
    height: var(--size-icon);
    object-fit: contain;
    flex-shrink: 0;
}

.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,
.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,
.select2-container--open .select2-dropdown--below {
    border-radius: var(--radius-input);
}

.select2-container--open .select2-dropdown--below,
.select2-container--open .select2-dropdown--above {
    overflow: hidden;
}

.select2-results__options {
    display: flex;
    flex-wrap: wrap;
    overflow-x: hidden;
    max-height: 30rem !important;
    padding: 0.4rem;
}
.select2-results__options .select2-results__option {
    width: 25%;
    border-radius: var(--radius-input);
}
.select2-results__options .select2-results__message {
    width: 100%;
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-text-dark);
}
.select2-results__options .select2-option {
    flex-direction: column;
    justify-content: center;
}
.select2-results__options .select2-option img {
    width: 4rem;
    height: 4rem;
}
.select2-results__options .select2-option span {
    font-size: 1.3rem;
    font-weight: 500;
    display: -webkit-box !important;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;
}

.select2-option span {
    font-size: 1.4rem;
}

/* ────────────────────────────────
    user/components/textarea
──────────────────────────────── */
.textarea {
    width: 100%;
    border: 1px solid var(--color-border);
    border-color: var(--color-border-2);
    border-radius: var(--radius-input);
    padding: var(--gap-form);
    font-size: var(--font-input-size);
    resize: none;
    outline: none;
    overflow: auto;
    background-color: var(--color-input-background);
    color: var(--color-text);
}
.textarea::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.textarea::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.textarea::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.textarea::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.textarea::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.textarea::-webkit-scrollbar-button {
    display: none;
}
.textarea::placeholder {
    color: var(--color-text-light);
}
.textarea:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}
.textarea:read-only {
    color: var(--color-text-light);
    background-color: var(--color-input-readonly-background);
}

/* ────────────────────────────────
    user/components/button
──────────────────────────────── */
.button-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gap-component);
}
.button-group.hidden {
    display: none;
}
.button-group.gap-half {
    gap: calc(var(--gap-component) / 2);
}
.button-group.left {
    justify-content: flex-start;
}
.button-group.center {
    justify-content: center;
}
.button-group.right {
    justify-content: flex-end;
}
.button-group.between {
    justify-content: space-between;
}
.button-group.nowrap {
    flex-wrap: nowrap;
}
.button-group.full .button {
    flex: 1;
}

.button {
    min-height: var(--size-input);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    text-align: center;
    white-space: nowrap;
    padding: 1rem 2rem;
    border-radius: var(--radius-input);
    font-size: var(--font-input-size);
    border: 1px solid var(--color-border);
    transition: var(--transition-duration);
}
.button:disabled {
    cursor: no-drop;
    opacity: 0.5;
}
.button i,
.button .icon {
    width: var(--size-icon-small);
    min-width: var(--size-icon-small);
    height: var(--size-icon-small);
    min-height: var(--size-icon-small);
    color: var(--color-icon);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.button:hover, .button:focus {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background-color: var(--color-primary-light);
    outline: none;
}
.button:hover i,
.button:hover .icon, .button:focus i,
.button:focus .icon {
    color: var(--color-primary);
}
.button:active {
    background-color: var(--color-primary-light-active);
}
.button.hidden {
    display: none;
}
.button.button-small {
    min-height: auto;
    padding: 0.6rem 1.2rem;
    font-size: 1.4rem;
}
.button.button-small i,
.button.button-small .icon {
    width: var(--size-icon-xsmall);
    min-width: var(--size-icon-xsmall);
    height: var(--size-icon-xsmall);
    min-height: var(--size-icon-xsmall);
    font-size: 1.4rem;
}
.button.button-xsmall {
    min-height: auto;
    padding: 0.4rem 0.8rem;
    font-size: 1.2rem;
}
.button.button-full {
    width: 100%;
}
.button.button-flex {
    flex: 1;
}
.button.jc-start {
    justify-content: flex-start;
}
.button.button-loading {
    pointer-events: none;
}
.button.button-loading .text,
.button.button-loading .icon {
    opacity: 0;
}
.button.button-loading::after {
    content: "";
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-border);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-util {
    min-width: var(--size-form);
    padding: 0;
}
.button.button-primary {
    color: var(--color-primary-contrast);
    background-color: var(--color-primary);
    border-color: transparent;
}
.button.button-primary i,
.button.button-primary .icon {
    color: var(--color-primary-contrast);
}
.button.button-primary.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-primary-contrast);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-primary:hover, .button.button-primary:focus {
    background-color: var(--color-primary-hover);
}
.button.button-primary:active {
    background-color: var(--color-primary-active);
}
.button.button-primary-border {
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.button.button-primary-border i,
.button.button-primary-border .icon {
    color: var(--color-primary);
}
.button.button-primary-border.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-primary);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-primary-light {
    color: var(--color-primary);
    border-color: transparent;
    background-color: var(--color-primary-light);
}
.button.button-primary-light i,
.button.button-primary-light .icon {
    color: var(--color-primary);
}
.button.button-primary-light.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-primary);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-primary-light:hover, .button.button-primary-light:focus {
    border-color: var(--color-primary);
}
.button.button-primary-light:active {
    background-color: var(--color-primary-light-active);
}
.button.button-primary-light-border {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background-color: var(--color-primary-light);
}
.button.button-primary-light-border i,
.button.button-primary-light-border .icon {
    color: var(--color-primary);
}
.button.button-primary-light-border.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-primary);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-primary-light-border:active {
    background-color: var(--color-primary-light-active);
}
.button.button-primary-sub {
    color: var(--color-primary-contrast);
    background-color: var(--color-primary-sub);
    border-color: transparent;
}
.button.button-primary-sub i,
.button.button-primary-sub .icon {
    color: var(--color-primary-contrast);
}
.button.button-primary-sub.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-primary-contrast);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-white {
    background-color: #fff;
}
.button.button-black {
    color: var(--color-text-white);
    background-color: var(--color-text);
}
.button.button-icon {
    width: calc(var(--size-icon) + var(--gap-form));
    min-height: calc(var(--size-icon) + var(--gap-form));
    padding: 0;
    border: none;
}
.button.button-icon:active {
    background-color: var(--color-primary-light-active);
}
.button.button-text {
    border: none;
}
.button.button-excel {
    color: var(--color-excel);
    border-color: var(--color-excel);
}
.button.button-excel i,
.button.button-excel .icon {
    color: var(--color-excel);
}
.button.button-excel.button-loading {
    position: relative;
}
.button.button-excel.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-excel);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    left: 2rem;
}
.button.button-excel.button-loading .text {
    opacity: 1;
}
.button.button-excel:hover, .button.button-excel:focus {
    background-color: var(--color-excel-background);
}
.button.button-excel:active {
    background-color: var(--color-excel-active-background);
}
.button.button-hover-excel.button-loading {
    position: relative;
    color: var(--color-excel);
    border-color: var(--color-excel);
}
.button.button-hover-excel.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-excel);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    left: 2rem;
}
.button.button-hover-excel.button-loading .text {
    opacity: 1;
}
.button.button-hover-excel:hover, .button.button-hover-excel:focus {
    color: var(--color-excel);
    border-color: var(--color-excel);
    background-color: var(--color-excel-background);
}
.button.button-hover-excel:hover i,
.button.button-hover-excel:hover .icon, .button.button-hover-excel:focus i,
.button.button-hover-excel:focus .icon {
    color: var(--color-excel);
}
.button.button-hover-excel:active {
    background-color: var(--color-excel-active-background);
}
.button.button-delete {
    color: var(--color-text-light);
    background-color: var(--color-background);
    border-color: var(--color-border);
}
.button.button-delete i,
.button.button-delete .icon {
    color: var(--color-text-light);
}
.button.button-delete.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-text-light);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-black {
    color: var(--color-text-white);
    background-color: var(--color-text);
    border-color: transparent;
}
.button.button-black i,
.button.button-black .icon {
    color: var(--color-text-white);
}
.button.button-black.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-text-white);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-list {
    color: var(--color-text-dark);
    border-color: var(--color-border-light);
    background-color: var(--color-background);
}
.button.button-list i,
.button.button-list .icon {
    color: var(--color-text-dark);
}

/* ────────────────────────────────
    user/components/switch
──────────────────────────────── */
.switch {
    width: fit-content;
    position: relative;
}
.switch input[type=checkbox] {
    display: none;
}
.switch input[type=checkbox]:checked ~ label {
    background-color: var(--color-primary);
}
.switch input[type=checkbox]:checked ~ label::before {
    left: 3.8rem;
}
.switch label {
    width: 6.4rem;
    height: 3.2rem;
    display: flex;
    align-items: center;
    border-radius: 2.4rem;
    background-color: var(--color-border-light);
    cursor: pointer;
    transition: var(--transition-duration);
}
.switch label::before {
    content: "";
    display: block;
    width: 2rem;
    height: 2rem;
    background-color: var(--color-primary-contrast);
    border-radius: 50%;
    position: absolute;
    left: 0.6rem;
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    transition: var(--transition-duration);
}
.switch.switch-small input[type=checkbox]:checked ~ label::before {
    left: 2.7rem;
}
.switch.switch-small label {
    width: 4.8rem;
    height: 2.4rem;
}
.switch.switch-small label::before {
    width: 1.5rem;
    height: 1.5rem;
}

/* ────────────────────────────────
    user/components/checkbox
──────────────────────────────── */
.checkbox {
    width: fit-content;
    cursor: pointer;
    background-color: var(--color-background);
    position: relative;
    /*
    &.ui-sortable-handle {
        &::after {
            @include fontAwesome5("\f142");
            position: absolute;
            right: var(--gap-component);
            top: 50%;
            transform: translateY(-50%);
        }
    }
    */
}
.checkbox input[type=checkbox] {
    display: none;
}
.checkbox input[type=checkbox]:checked ~ label {
    color: var(--color-text);
}
.checkbox input[type=checkbox]:checked ~ label::before {
    border-color: transparent;
    background-color: var(--color-primary);
}
.checkbox input[type=checkbox]:checked ~ label::after {
    opacity: 1;
    transform: scale(1);
}
.checkbox label {
    position: relative;
    font-size: var(--font-input-size);
    display: flex;
    align-items: center;
    gap: var(--gap-component);
    transition: var(--transition-duration);
    cursor: pointer;
    color: var(--color-text-light);
}
.checkbox label::before, .checkbox label::after {
    content: "";
    display: flex;
    width: var(--size-icon-small);
    height: var(--size-icon-small);
    text-align: center;
    align-items: center;
    justify-content: center;
    transition: var(--transition-duration);
}
.checkbox label::before {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-input);
}
.checkbox label::after {
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
    color: var(--color-primary-contrast);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23FFFFFF' d='m9.55 15.15 8.475-8.475c.2-.2.433-.3.7-.3.267 0 .5.1.7.3.2.2.3.438.3.713a.97.97 0 0 1-.3.712l-9.175 9.2c-.2.2-.433.3-.7.3a.96.96 0 0 1-.7-.3L4.55 13a.932.932 0 0 1-.288-.712c.008-.275.112-.512.313-.713.2-.2.438-.3.713-.3.275 0 .512.1.712.3l3.55 3.575Z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: var(--size-icon-xsmall);
    background-position: center calc(50% + 0.1rem);
}
.checkbox label:hover::before, .checkbox label:focus::before {
    background-color: var(--color-primary-light);
}
.checkbox label:active::before {
    background-color: var(--color-primary-light-active);
}
.checkbox label .required {
    color: var(--color-primary);
    margin-right: -0.6rem;
}
.checkbox .drag-handle {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    padding: 0 calc(var(--gap-component) * 1.5);
}
.checkbox .drag-handle::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
.checkbox.ui-button input[type=checkbox]:checked ~ label {
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.checkbox.ui-button input[type=checkbox]:checked ~ label::after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%233677f1' d='m9.55 15.15 8.475-8.475c.2-.2.433-.3.7-.3.267 0 .5.1.7.3.2.2.3.438.3.713a.97.97 0 0 1-.3.712l-9.175 9.2c-.2.2-.433.3-.7.3a.96.96 0 0 1-.7-.3L4.55 13a.932.932 0 0 1-.288-.712c.008-.275.112-.512.313-.713.2-.2.438-.3.713-.3.275 0 .512.1.712.3l3.55 3.575Z'/%3E%3C/svg%3E");
}
.checkbox.ui-button label {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-input);
    padding: calc(var(--gap-component) / 2) var(--gap-component);
    gap: 0.25rem;
}
.checkbox.ui-button label::before {
    display: none;
}
.checkbox.ui-button label::after {
    display: block;
    position: relative;
    left: auto;
    top: auto;
    opacity: 1;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23909090' d='m9.55 15.15 8.475-8.475c.2-.2.433-.3.7-.3.267 0 .5.1.7.3.2.2.3.438.3.713a.97.97 0 0 1-.3.712l-9.175 9.2c-.2.2-.433.3-.7.3a.96.96 0 0 1-.7-.3L4.55 13a.932.932 0 0 1-.288-.712c.008-.275.112-.512.313-.713.2-.2.438-.3.713-.3.275 0 .512.1.712.3l3.55 3.575Z'/%3E%3C/svg%3E");
    background-position: center;
    order: -1;
    width: var(--size-icon-xsmall);
    height: var(--size-icon-xsmall);
}

.checkbox-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-component);
    overflow-x: hidden;
}
.checkbox-group.gap-half {
    gap: calc(var(--gap-component) / 2);
}
.checkbox-group.gap-half .checkbox.ui-button label {
    padding: 0.4rem 0.8rem;
    font-size: 1.2rem;
    gap: 0.125rem;
}
.checkbox-group.column {
    flex-direction: column;
}
.checkbox-group.border .checkbox {
    width: 100%;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-input);
    transition: background color var(--transition-duration);
}
.checkbox-group.border .checkbox:hover {
    background-color: var(--color-background-light);
}
.checkbox-group.border .checkbox label {
    padding: var(--gap-component);
}
.checkbox-group.border .checkbox label::after {
    top: var(--gap-component);
    left: var(--gap-component);
}

.checkbox-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-component);
}
.checkbox-row > button {
    font-size: 1.4rem;
    color: var(--color-text-light);
}
.checkbox-row > button:hover {
    color: var(--color-text);
    text-decoration: underline;
}

/* ────────────────────────────────
    user/components/radio
──────────────────────────────── */
.radio {
    width: fit-content;
}
.radio * {
    cursor: pointer;
}
.radio input[type=radio] {
    display: none;
}
.radio input[type=radio]:checked ~ label {
    color: var(--color-text);
}
.radio input[type=radio]:checked ~ label::before {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}
.radio input[type=radio]:checked ~ label::after {
    opacity: 1;
}
.radio label {
    font-size: var(--font-base-size);
    display: flex;
    align-items: center;
    gap: calc(var(--gap-component) / 2);
    position: relative;
    transition: var(--transition-duration);
    color: var(--color-label);
}
.radio label::before {
    content: "";
    display: flex;
    width: var(--size-icon-small);
    height: var(--size-icon-small);
    text-align: center;
    align-items: center;
    justify-content: center;
    transition: var(--transition-duration);
    border: 1px solid var(--color-border);
    border-radius: 50%;
}
.radio label:hover::before, .radio label:focus::before {
    background-color: var(--color-primary-light);
}
.radio label:active::before {
    background-color: var(--color-primary-light-active);
}

.radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-component);
}
.radio-group.ui-tab {
    width: fit-content;
    max-width: 100%;
    flex-wrap: nowrap;
    gap: 0;
    border-radius: var(--radius-form);
    overflow: hidden;
}
.radio-group.ui-tab input[type=radio]:checked ~ label {
    font-weight: 600;
    color: var(--color-primary-contrast);
    background-color: var(--color-primary);
    border-color: transparent;
}
.radio-group.ui-tab .radio label {
    min-height: var(--size-form);
    padding: 0 var(--gap-layout);
    border: 1px solid var(--color-border);
    margin-left: -1px;
}
.radio-group.ui-tab .radio label::before {
    display: none;
}
.radio-group.ui-tab .radio:first-child label {
    margin-left: 0;
    border-radius: var(--radius-form) 0 0 var(--radius-form);
}
.radio-group.ui-tab .radio:last-child label {
    border-radius: 0 var(--radius-form) var(--radius-form) 0;
}
.radio-group.ui-tab-shadow {
    width: fit-content;
    max-width: 100%;
    flex-wrap: nowrap;
    gap: 0;
    border-radius: var(--radius-form);
    background-color: var(--color-primary-light);
}
.radio-group.ui-tab-shadow input[type=radio]:checked ~ label {
    font-weight: 600;
    color: var(--color-primary);
    background-color: var(--color-primary-contrast);
    border-color: transparent;
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    border-radius: var(--radius-form);
}
.radio-group.ui-tab-shadow .radio label {
    min-height: var(--size-form);
    padding: 0 var(--gap-layout);
}
.radio-group.ui-tab-shadow .radio label::before {
    display: none;
}
.radio-group.ui-tab-shadow .radio:first-child label {
    margin-left: 0;
}

/* ────────────────────────────────
    user/components/flatpickr
──────────────────────────────── */
.flatpickr {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23606060' d='M6.808 0a.84.84 0 0 1 .84.84v1.57h9.02V.85a.84.84 0 0 1 1.68 0v1.56H21.6a2.4 2.4 0 0 1 2.4 2.4V21.6A2.4 2.4 0 0 1 21.6 24H2.4A2.4 2.4 0 0 1 0 21.601V4.81a2.4 2.4 0 0 1 2.4-2.4h3.568V.84A.84.84 0 0 1 6.808 0ZM1.68 9.29v12.311a.72.72 0 0 0 .72.72h19.2a.72.72 0 0 0 .72-.72V9.307L1.68 9.29ZM8 17.543v1.999H6v-2h2Zm5 0v1.999h-2v-2h2Zm5 0v1.999h-2v-2h2ZM8 12.77v2H6v-2h2Zm5 0v2h-2v-2h2Zm5 0v2h-2v-2h2ZM5.968 4.09H2.4a.72.72 0 0 0-.72.72v2.802l20.64.016V4.81a.72.72 0 0 0-.72-.72h-3.252v1.114a.84.84 0 0 1-1.68 0V4.09h-9.02v1.104a.84.84 0 0 1-1.68 0V4.09Z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
    background-size: var(--size-icon-xsmall);
    background-position: center right 1.2rem;
    background-repeat: no-repeat;
    padding-right: 4rem !important;
}

.flatpickr-calendar {
    color: var(--color-text);
    background-color: var(--color-background);
    font-size: 1.4rem;
    line-height: 2.4rem;
    -webkit-box-shadow: 1px 0 0 var(--color-border), -1px 0 0 var(--color-border), 0 1px 0 var(--color-border), 0 -1px 0 var(--color-border), 0 3px 13px rgba(0, 0, 0, 0.08);
    box-shadow: 1px 0 0 var(--color-border), -1px 0 0 var(--color-border), 0 1px 0 var(--color-border), 0 -1px 0 var(--color-border), 0 3px 13px rgba(0, 0, 0, 0.08);
    max-width: calc(100% - var(--gap-layout) * 2);
    margin-top: 0.4rem;
}

span.flatpickr-weekday {
    color: var(--color-text);
}

.flatpickr-months {
    align-items: center;
}

.flatpickr-months .flatpickr-month {
    color: var(--color-text);
    align-items: center;
    display: flex;
    height: 6rem;
}

.flatpickr-day {
    color: var(--color-text);
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    top: auto;
}

.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
    width: 1.4rem;
    height: 1.4rem;
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay,
.flatpickr-day.notAllowed,
.flatpickr-day.notAllowed.prevMonthDay,
.flatpickr-day.notAllowed.nextMonthDay {
    color: var(--color-text-light);
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    color: var(--color-text);
    fill: var(--color-text);
}

.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
    fill: var(--color-primary);
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover,
.flatpickr-day.selected.prevMonthDay,
.flatpickr-day.startRange.prevMonthDay,
.flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.startRange.nextMonthDay,
.flatpickr-day.endRange.nextMonthDay {
    color: var(--color-primary-contrast);
    background-color: var(--color-primary);
}

.flatpickr-current-month {
    font-size: 1.6rem;
    height: auto;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.6rem;
}

.flatpickr-month .numInputWrapper span.arrowUp {
    top: 50%;
    transform: translateY(-50%);
}

.flatpickr-month .numInputWrapper span.arrowDown {
    top: 50%;
    transform: translateY(-50%);
}

.flatpickr-current-month .numInputWrapper span.arrowUp:after {
    border-bottom-color: var(--color-icon);
    top: -0.15rem;
}

.flatpickr-current-month .numInputWrapper span.arrowDown:after {
    border-top-color: var(--color-icon);
    top: auto;
    bottom: -0.125rem;
}

.flatpickr-monthDropdown-months {
    background-color: var(--color-background) !important;
}

.flatpickr-day.inRange,
.flatpickr-day.prevMonthDay.inRange,
.flatpickr-day.nextMonthDay.inRange,
.flatpickr-day.today.inRange,
.flatpickr-day.prevMonthDay.today.inRange,
.flatpickr-day.nextMonthDay.today.inRange,
.flatpickr-day:hover,
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover,
.flatpickr-day:focus,
.flatpickr-day.prevMonthDay:focus,
.flatpickr-day.nextMonthDay:focus {
    background: var(--color-primary-light);
    border-color: var(--color-primary-light);
}

.flatpickr-day.today {
    border-color: var(--color-primary);
}

.flatpickr-day.today:hover,
.flatpickr-day.today:focus {
    border-color: var(--color-primary);
    background: var(--color-primary);
}

.flatpickr-rContainer,
.flatpickr-days,
.dayContainer {
    width: 100%;
    min-width: auto;
    background-color: var(--color-background);
}

.flatpickr-calendar.arrowTop:before {
    border-bottom-color: var(--color-border);
}

.flatpickr-calendar.arrowTop:after {
    border-bottom-color: var(--color-background);
}

.flatpickr-current-month .flatpickr-monthDropdown-months {
    font-weight: 400;
    appearance: none;
    outline: none;
    border-radius: 0;
    color: var(--color-text);
    background-color: var(--color-background);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23606060' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E") !important;
    background-position: center right !important;
    background-repeat: no-repeat !important;
    background-size: var(--size-icon-small) !important;
    padding-right: 2rem;
}
.flatpickr-current-month .flatpickr-monthDropdown-months::-ms-expand {
    display: none;
}

.flatpickr-current-month .numInputWrapper {
    width: 6rem;
    display: flex;
    align-items: center;
    order: -1;
    background-color: var(--color-background) !important;
}
.flatpickr-current-month .numInputWrapper::after {
    content: "년";
    display: inline-block;
    position: absolute;
    left: 4rem;
}

.flatpickr-current-month input.cur-year {
    width: 4rem;
    background-color: var(--color-background);
    padding: 0;
    font-weight: 400;
}

.flatpickr-month .numInputWrapper span {
    border: none;
    opacity: 1;
    padding: 0;
    width: auto;
}

.flatpickr-month .numInputWrapper span:hover {
    background-color: transparent;
}

.flatpickr-day.inRange {
    box-shadow: -5px 0 0 var(--color-primary-light), 5px 0 0 var(--color-primary-light);
}

.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
    box-shadow: -10px 0 0 var(--color-primary);
}

.timepicker {
    background-image: url("data:image/svg+xml;charset=utf8,");
    background-size: var(--size-icon-xsmall);
    background-position: center right 1.2rem;
    background-repeat: no-repeat;
    padding-right: 4rem !important;
}
.timepicker:read-only {
    color: var(--color-text) !important;
    background-color: var(--color-background) !important;
}

/* ────────────────────────────────
    user/components/badge
──────────────────────────────── */
.badge {
    font-size: 1.2rem;
    font-weight: 500;
    color: var(--color-text-sub-2);
    background-color: var(--color-border-2);
    padding: 0.6rem 1.2rem;
    border-radius: 1.6rem;
    white-space: nowrap;
    transition: var(--transition-duration);
}
.badge.badge-border {
    border: 1px solid var(--color-border);
}
.badge.badge-primary {
    color: var(--color-primary-contrast);
    background-color: var(--color-primary);
}
.badge.badge-primary-border {
    color: var(--color-primary);
    border: 1px solid var(--color-border);
    border-color: var(--color-primary);
    background-color: var(--color-background);
}
.badge.badge-primary-light {
    color: var(--color-primary);
    background-color: var(--color-primary-light);
}
.badge.badge-primary-light-border {
    color: var(--color-primary);
    border: 1px solid var(--color-border);
    border-color: var(--color-primary);
    background-color: var(--color-primary-light);
}
.badge.badge-green {
    color: var(--badge-green);
    background-color: var(--badge-green-background);
}
.badge.badge-green.border {
    border: 1px solid var(--color-border);
    border-color: var(--badge-green-border);
}
.badge.badge-red {
    color: var(--badge-red);
    background-color: var(--badge-red-background);
}
.badge.badge-red.border {
    border: 1px solid var(--color-border);
    border-color: var(--badge-red-border);
}
.badge.badge-blue {
    color: var(--badge-blue);
    background-color: var(--badge-blue-background);
}
.badge.badge-blue.border {
    border: 1px solid var(--color-border);
    border-color: var(--badge-blue-border);
}
.badge.badge-yellow {
    color: var(--badge-yellow);
    background-color: var(--badge-yellow-background);
}
.badge.badge-darkred {
    color: var(--badge-darkred);
    background-color: var(--badge-darkred-background);
}
.badge.badge-purple {
    color: var(--badge-purple);
    background-color: var(--badge-purple-background);
}
.badge.badge-cyan {
    color: var(--badge-cyan);
    background-color: var(--badge-cyan-background);
}
.badge.badge-teal {
    color: var(--badge-teal);
    background-color: var(--badge-teal-background);
}
.badge.badge-orange {
    color: var(--badge-orange);
    background-color: var(--badge-orange-background);
}
.badge.badge-brown {
    color: var(--badge-brown);
    background-color: var(--badge-brown-background);
}
.badge.badge-indigo {
    color: var(--badge-indigo);
    background-color: var(--badge-indigo-background);
}
.badge.badge-pink {
    color: var(--badge-pink);
    background-color: var(--badge-pink-background);
}

/* ────────────────────────────────
    user/components/card
──────────────────────────────── */
.card-container {
    display: flex;
    flex-direction: column;
    gap: var(--gap-layout);
}

.card {
    padding: 2.4rem;
    border-radius: var(--radius-card);
    border: 1px solid var(--color-border);
    border-color: var(--color-border-2);
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
    position: relative;
    transition: var(--transition-duration);
}
.card > * {
    transition: var(--transition-duration);
}
.card.loading {
    align-items: center;
    justify-content: center;
}
.card.loading > * {
    opacity: 0;
    pointer-events: none;
}
.card.loading::after {
    content: "";
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-border);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

.card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--gap-component);
}

.card-title {
    font-size: 1.6rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.8rem;
}
.card-title .count {
    color: var(--color-primary);
}
.card-title ~ .card-sub-title {
    margin-top: 1.2rem;
}

.card-sub-title {
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-text-dark);
}

.card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--gap-component);
}
.card-body .table-container {
    width: 100%;
    flex: 1;
    display: flex;
}
.card-body .table-body {
    width: 100%;
    max-height: 30rem;
}

/* ────────────────────────────────
    user/components/table
──────────────────────────────── */
.table-container {
    width: 100%;
    height: auto;
    position: relative;
}

.table {
    width: 100%;
    height: auto;
    position: relative;
    border-collapse: collapse;
    text-align: left;
    font-size: 1.6rem;
}
.table thead th[data-sort] {
    position: relative;
    padding-right: calc(var(--gap-form) + var(--gap-component) + 0.75rem);
    cursor: pointer;
}
.table thead th[data-sort]::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    margin-top: -0.1rem;
}
.table thead th[data-sort]::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    margin-top: 0.1rem;
}
.table thead th[data-sort]::before, .table thead th[data-sort]::after {
    position: absolute;
    right: var(--gap-form);
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2rem;
    color: var(--color-icon);
    opacity: 0.4;
}
.table thead th[data-direction=asc]::before {
    opacity: 1;
}
.table thead th[data-direction=desc]::after {
    opacity: 1;
}
.table tr {
    border-top: 1px solid var(--color-border-light);
    border-bottom: 1px solid var(--color-border-light);
    transition: var(--transition-duration);
    background-color: var(--color-background);
}
.table tr:first-child {
    border-top: 2px solid var(--color-text);
}
.table th,
.table td {
    padding: 1.6rem;
    transition: var(--transition-duration);
    font-weight: 500;
}
.table th {
    white-space: nowrap;
    font-weight: 500;
    color: var(--color-text-dark);
    background-color: var(--color-background-light);
}
.table td {
    color: var(--color-text-dark);
}
.table .button-group {
    flex-wrap: nowrap;
    flex-direction: row;
}
.table .button-group .button {
    flex: 0;
}
.table .button {
    font-size: 1.3rem;
    padding: 0.5rem 1rem;
}
.table .button .icon {
    width: 2.8rem;
    min-width: 2.8rem;
    height: 2.8rem;
    min-height: 2.8rem;
}
.table .nodata {
    color: var(--color-text-light);
    text-align: center;
}
.table .checkbox label::before, .table .checkbox label::after {
    width: var(--size-icon-small);
    height: var(--size-icon-small);
}
.table .checkbox label::after {
    background-size: var(--size-icon-xsmall);
}
.table .input[type=text], .table .input[type=password] {
    width: 100%;
    min-width: 12rem;
    height: var(--size-table-input);
}
.table .select {
    width: 100%;
    min-width: 12rem;
    height: var(--size-table-input);
    font-size: 1.4rem;
}
.table .select2 {
    min-width: 12rem;
    height: var(--size-table-input);
    font-size: 1.4rem;
}
.table .select2 .selection {
    width: 100% !important;
}
.table .select2 .selection .select2-selection {
    height: var(--size-table-input);
}
.table .select2 .selection .select2-selection .select2-selection__rendered {
    line-height: var(--size-table-input);
}
.table .select2-dropdown .select2-search .select2-search__field {
    height: var(--size-table-input);
}
.table .icon {
    vertical-align: middle;
}
.table .icon ~ p {
    display: inline-block;
    margin-left: 0.4rem;
}
.table .data-title {
    color: var(--color-text);
}
.table .data-link {
    color: var(--color-text);
}
.table .data-link a {
    vertical-align: middle;
}
.table .data-link a:hover {
    text-decoration: underline;
}
.table.table-align-left {
    text-align: left;
}
.table.table-align-left .button-group {
    justify-content: flex-start;
}
.table.table-align-center {
    text-align: center;
}
.table.table-align-center .button-group {
    justify-content: center;
}
.table.table-nowrap * {
    white-space: nowrap;
}
.table.table-border th,
.table.table-border td {
    border: 1px solid var(--color-border);
}
.table ~ .table-bottom .table-button-group {
    margin: 0 auto;
}
.table.table-card colgroup {
    display: none;
}
.table.table-card thead {
    display: none;
}
.table.table-card tbody {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--gap-component);
}
.table.table-card tr {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--gap-component);
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-form);
    padding: var(--gap-layout);
}
.table.table-card td {
    padding: 0 !important;
}
.table.table-card td[data-label]::before {
    content: attr(data-label);
    display: inline-block;
    margin-right: var(--gap-component);
    font-weight: 500;
    color: var(--color-label);
}
.table.table-card .button-group {
    justify-content: flex-end;
}
.table.table-card .nodata {
    width: 100%;
}
@media screen and (max-width: 767px) {
    .table.table-mobile-card {
        font-size: 1.5rem;
    }
    .table.table-mobile-card colgroup {
        display: none;
    }
    .table.table-mobile-card thead {
        display: none;
    }
    .table.table-mobile-card tbody {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: var(--gap-component);
    }
    .table.table-mobile-card tr {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: var(--gap-component);
        border: 1px solid var(--color-border) !important;
        border-radius: var(--radius-form);
        padding: var(--gap-layout);
    }
    .table.table-mobile-card td {
        padding: 0 !important;
    }
    .table.table-mobile-card td[data-label]::before {
        content: attr(data-label);
        display: inline-block;
        margin-right: var(--gap-component);
        font-weight: 500;
        color: var(--color-label);
    }
    .table.table-mobile-card .button-group {
        justify-content: flex-end;
    }
}

.table-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-layout);
    margin-bottom: var(--gap-layout);
}
.table-head .table-title-container .table-title {
    font-size: 2rem;
    font-weight: 700;
    white-space: nowrap;
}
.table-head .table-title-container .table-title .table-count {
    color: var(--color-primary);
    font-weight: 700;
}
@media screen and (max-width: 767px) {
    .table-head {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
    }
}

.table-search {
    margin-bottom: var(--gap-layout);
}

.table-filter {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--gap-component);
    margin-left: auto;
}
.table-filter .input {
    border: 1px solid var(--color-border);
    background-color: var(--color-background);
}
@media screen and (max-width: 767px) {
    .table-filter {
        width: 100%;
        flex-direction: column;
        margin: 0;
    }
    .table-filter .button {
        justify-content: space-between;
        padding: 0 var(--gap-form);
    }
    .table-filter .button .icon {
        order: 1;
    }
}

.table-total {
    margin-bottom: var(--gap-layout);
    display: flex;
    gap: var(--gap-layout);
    overflow: auto;
}
.table-total::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.table-total::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.table-total::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.table-total::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.table-total::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.table-total::-webkit-scrollbar-button {
    display: none;
}
.table-total .card {
    flex: 1;
}

.table-body {
    overflow: auto;
    position: relative;
}
.table-body::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.table-body::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.table-body::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.table-body::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.table-body::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.table-body::-webkit-scrollbar-button {
    display: none;
}
.table-body.thead-sticky {
    max-height: 63rem;
}
.table-body.thead-sticky .table thead {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 1;
}
.table-body.thead-sticky .table thead::before, .table-body.thead-sticky .table thead::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: var(--color-border-light);
    position: absolute;
    left: 0;
    transition: var(--transition-duration);
}
.table-body.thead-sticky .table thead::before {
    top: 0;
}
.table-body.thead-sticky .table thead::after {
    bottom: 0;
}
.table-body.thead-sticky .table tbody tr:first-child {
    border-top: none;
}
.table-body ~ .table-filter {
    margin-top: 3.2rem;
}

.table-bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gap-layout);
    margin-top: 3.2rem;
}
.table-bottom .button-group {
    flex: 1;
}
.table-bottom > .button-group {
    justify-content: center;
}
.table-bottom .pagination {
    margin-top: 0;
}
@media screen and (max-width: 767px) {
    .table-bottom .button-group .button {
        flex: 1;
    }
}

/* ────────────────────────────────
    user/components/board
──────────────────────────────── */
.board-detail {
    width: 100%;
}

.board-detail-head {
    padding: 4rem;
    border-top: 2px solid var(--color-text);
}
.board-detail-head .title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.2rem;
    word-break: break-all;
}
.board-detail-head .title .badge {
    min-width: 7.2rem;
    text-align: center;
}
.board-detail-head .title h2 {
    font-size: 2.6rem;
    font-weight: 600;
    color: var(--color-text);
}
.board-detail-head .meta {
    margin-top: 2rem;
}
.board-detail-head .meta li span {
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-text);
}
.board-detail-head .meta li span:nth-of-type(1) {
    color: var(--color-text-dark);
    margin-right: 0.4rem;
}
.board-detail-body {
    border: 1px solid var(--color-border);
    border-color: var(--color-border-2);
    border-left: none;
    border-right: none;
    padding: 4rem;
}
.board-detail-body ~ .board-detail-body {
    border-top: none;
    background-color: #fafafa;
}

.board-detail-content {
    word-break: break-all;
    white-space: pre-line;
}

.board-detail-bottom .board-detail-nav {
    background-color: #fafafa;
}
.board-detail-bottom .board-detail-nav a {
    display: flex;
    padding: 2rem 4rem;
    border-bottom: 1px solid var(--color-border-2);
}
.board-detail-bottom .board-detail-nav a.nodata {
    color: var(--color-text-dark);
}
.board-detail-bottom .board-detail-nav a.nodata span {
    text-decoration: none !important;
}
.board-detail-bottom .board-detail-nav a:hover span:nth-of-type(2) {
    text-decoration: underline;
}
.board-detail-bottom .board-detail-nav a span:nth-of-type(1) {
    min-width: 8rem;
    color: var(--color-text-dark);
}
.board-detail-bottom .board-detail-nav a span:nth-of-type(2) {
    font-weight: 500;
}
.board-detail-bottom .button-group {
    margin-top: 4.4rem;
    justify-content: center;
}
.board-detail-bottom .button-group .button {
    min-width: 14rem;
}
@media screen and (max-width: 767px) {
    .board-detail-bottom .button-group .button {
        width: 100%;
    }
}

/* ────────────────────────────────
    user/components/form
──────────────────────────────── */
.form-container {
    background-color: var(--color-background);
    position: relative;
}
.form-container ~ .form-container {
    margin-top: calc(var(--gap-layout) * 2);
}
.form-container.sticky {
    position: sticky;
    bottom: 0;
    background-color: var(--color-background);
    padding-bottom: var(--gap-layout);
    margin-bottom: calc(var(--gap-layout) * -1);
}
.form-container.sticky::before {
    content: "";
    display: block;
    width: 100%;
    height: calc(var(--gap-layout) * 2);
    background-color: var(--blur-background);
    box-shadow: 0 0 40px rgba(var(--blur-shadow)) inset;
    position: absolute;
    left: 0;
    top: calc(var(--gap-layout) * 2 * -1);
}

.form-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--gap-component);
}
.form-head .button {
    min-height: auto;
    font-size: 1.4rem;
    padding: 0.6rem 1.2rem;
}
.form-head ~ .form-content {
    margin-top: 2.4rem;
}

.form-tab {
    width: 100%;
    display: flex;
}
.form-tab a,
.form-tab button {
    flex: 1;
    border-bottom: 1px solid var(--color-border-2);
    text-align: center;
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-text-sub-2);
    padding: 1.2rem;
}
.form-tab a.active,
.form-tab button.active {
    font-weight: 600;
    color: var(--color-text);
    border-color: var(--color-text);
    border-width: 2px;
}
.form-tab ~ .form-content {
    margin-top: 2.4rem;
}

.form-title {
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.form-title b {
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--color-primary);
    margin-right: 1rem;
}
.form-title img {
    width: 2.4rem;
}
.form-title ~ .form-sub-title {
    margin-top: 1rem;
}

.form-sub-title {
    font-size: 1.6rem;
    color: var(--color-text-dark);
}

.form-content {
    display: flex;
    flex-direction: column;
    gap: var(--gap-layout);
}

.form-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-layout);
}
.form-row .form-col {
    flex: 1;
    min-width: 20rem;
}

.form-col {
    display: flex;
    flex-direction: column;
    gap: var(--gap-component);
}

.form-group {
    display: flex;
    align-items: center;
    gap: var(--gap-component);
    background-color: var(--color-background);
}
.form-group.between {
    justify-content: space-between;
}
.form-group .input,
.form-group .select {
    flex: 1;
    width: 100%;
}
.form-group .drag-handle {
    cursor: move;
}
.form-group .drag-handle::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    color: var(--color-icon-light);
}

.form-label {
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-text);
}
.form-label.required::before {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    background-color: var(--color-primary);
    margin-right: 0.4rem;
}

.form-msg {
    font-size: 1.3rem;
    color: var(--color-text-light);
    position: relative;
    padding-left: var(--size-icon);
}
.form-msg::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: var(--size-icon-xsmall);
    height: var(--size-icon-xsmall);
    position: absolute;
    left: 0;
    top: 0.15rem;
    font-size: 0.8rem !important;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    color: var(--color-text-light);
}
.form-msg.info {
    color: var(--color-info);
}
.form-msg.info::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    border-color: transparent;
    background-color: var(--color-info);
    color: var(--color-white);
}
.form-msg.success {
    color: var(--color-success);
}
.form-msg.success::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    border-color: transparent;
    background-color: var(--color-success);
    color: var(--color-white);
}
.form-msg.warning {
    color: var(--color-warning);
}
.form-msg.warning::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    border-color: transparent;
    background-color: var(--color-warning);
    color: var(--color-white);
}
.form-msg.error {
    color: var(--color-error);
}
.form-msg.error::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    border-color: transparent;
    background-color: var(--color-error);
    color: var(--color-white);
}

.form-count {
    display: flex;
    font-size: 1.4rem;
    color: var(--color-text-light);
    margin-left: auto;
}
.form-count .current {
    color: var(--color-info);
}

.form-box {
    width: 100%;
    color: var(--color-text-dark);
    border: 1px solid var(--color-border);
    background-color: var(--color-background-light);
    border-radius: var(--radius-input);
    padding: var(--gap-form);
    font-size: 1.3rem;
}
.form-box .form-box-title {
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: var(--gap-component);
}
.form-box.info {
    color: var(--color-info);
    border-color: var(--color-info);
    background-color: var(--color-info-background);
}
.form-box.success {
    color: var(--color-success);
    border-color: var(--color-success);
    background-color: var(--color-success-background);
}
.form-box.warning {
    color: var(--color-warning);
    border-color: var(--color-warning);
    background-color: var(--color-warning-background);
}
.form-box.error {
    color: var(--color-error);
    border-color: var(--color-error);
    background-color: var(--color-error-background);
}

.form-pair {
    height: var(--size-input);
    display: flex;
    align-items: center;
    border-radius: var(--radius-input);
}
.form-pair .pair-label {
    height: 100%;
    background-color: var(--color-background-light);
    border-radius: var(--radius-input) 0 0 var(--radius-input);
    padding: var(--gap-form);
    white-space: nowrap;
    border: 1px solid var(--color-border);
    border-right-width: 0;
    color: var(--color-text-dark);
    transition: var(--transition-duration);
    font-size: var(--font-input-size);
}
.form-pair .pair-label.select {
    padding: 0 calc(var(--gap-form) + (var(--gap-form) / 2) + var(--size-icon)) 0 var(--gap-form);
}
.form-pair .pair-label:focus {
    border-right-width: 1px;
    border-radius: var(--radius-input);
    border-color: var(--color-primary);
    z-index: 1;
    color: var(--color-text);
}
.form-pair .pair-label:focus ~ .pair-item:first-child {
    border-left: none;
}
.form-pair .pair-text {
    height: var(--size-input);
    border: 1px solid var(--color-border);
    padding: 0 var(--gap-form);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.form-pair .pair-item {
    border-radius: 0;
    border-right-width: 0;
}
.form-pair .pair-item ~ .select2 .selection .select2-selection .select2-selection__rendered {
    padding: 0 calc(var(--gap-form) + (var(--gap-form) / 2) + var(--size-icon)) 0 var(--gap-form) !important;
}
.form-pair .pair-item ~ .select2 .selection .select2-selection {
    border-radius: 0 var(--radius-input) var(--radius-input) 0;
}
.form-pair .pair-item:last-child {
    border-right-width: 1px;
    border-radius: 0 var(--radius-input) var(--radius-input) 0;
}
.form-pair .pair-item:focus {
    border-right-width: 1px;
    border-radius: var(--radius-input);
    z-index: 1;
}
.form-pair .input {
    max-width: 18rem;
}
@media screen and (max-width: 767px) {
    .form-pair {
        height: auto;
    }
    .form-pair .pair-label {
        height: var(--size-input);
        min-width: 12rem;
    }
    .form-pair .pair-item {
        flex: 1;
    }
    .form-pair .input {
        max-width: 100%;
    }
    .form-pair.datepicker-group {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .form-pair.datepicker-group .select {
        grid-column: span 2;
    }
    .form-pair.datepicker-group .select.pair-label {
        border-width: 1px;
        border-radius: var(--radius-input) var(--radius-input) 0 0;
    }
    .form-pair.datepicker-group .select.pair-item {
        margin-top: -1px;
        border-radius: 0 0 var(--radius-input) var(--radius-input);
    }
    .form-pair.datepicker-group .input {
        margin-top: -1px;
    }
    .form-pair.datepicker-group .input:nth-of-type(2) {
        border-right-width: 1px;
    }
}

.form-separator {
    color: var(--color-text-light);
}

.file-upload {
    border-radius: var(--radius-input);
    background-color: var(--color-background-light);
    padding: var(--gap-section);
    border: 1px solid var(--color-border);
    border-color: var(--color-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--gap-layout);
    text-align: center;
    transition: var(--transition-duration);
}
.file-upload input[type=file] {
    display: none;
}
.file-upload .button {
    width: fit-content;
    cursor: pointer;
}
.file-upload .file-upload-text {
    color: var(--color-text-dark);
    transition: var(--transition-duration);
    word-break: keep-all;
}
.file-upload.drag-over {
    background-color: var(--color-primary-light);
    border-color: var(--color-primary);
    border-style: dashed;
}
.file-upload.drag-over .file-upload-text {
    color: var(--color-primary);
}

.file-list .file-list-head {
    margin-bottom: var(--gap-component);
}
.file-list .file-list-head .file-list-count {
    font-weight: 500;
}
.file-list .file-list-head .file-list-count .current {
    font-weight: 700;
    color: var(--color-primary);
}
.file-list .file-list-content ul li {
    border: 1px solid var(--color-border);
    padding: var(--gap-layout);
    border-radius: var(--radius-input);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-layout);
}
.file-list .file-list-content ul li .file-info {
    display: -webkit-box !important;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;
}
.file-list .file-list-content ul li ~ li {
    margin-top: var(--gap-component);
}

.form-toggle-button {
    display: inline-flex;
}
.form-toggle-button .icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}

.ui-sortable-helper {
    opacity: 0.7;
}

.form-info {
    margin-top: 1.2rem;
}
.form-info h2 {
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--color-text);
    margin-bottom: 1.2rem;
}
.form-info p {
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-text-sub-1);
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.form-info p::before {
    content: "";
    width: 0.4rem;
    height: 0.4rem;
    background-color: var(--color-text-sub-3);
    border-radius: 50%;
}
.form-info p b {
    font-weight: 500;
    color: var(--color-primary);
}

/* ────────────────────────────────
    user/components/pagination
──────────────────────────────── */
.pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--gap-component);
    margin-top: 4.4rem;
}
.pagination .button-group {
    gap: calc(var(--gap-component) / 2);
    flex-direction: row;
    justify-content: center;
}
.pagination button {
    min-width: 4.6rem;
    min-height: 4.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--color-text-sub-2);
    border-radius: var(--radius-input);
    transition: var(--transition-duration);
}
.pagination button.active {
    color: var(--color-primary-contrast);
    background-color: var(--color-primary-sub);
    font-weight: 700;
}
.pagination button:hover, .pagination button:focus {
    color: var(--color-primary-sub);
}
.pagination button:active {
    color: var(--color-primary-sub);
}
.pagination .prev::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
.pagination .next::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
.pagination .prev,
.pagination .next {
    display: flex;
    align-items: center;
    justify-content: center;
}
.pagination .prev::before,
.pagination .next::before {
    color: var(--color-border);
}
.pagination .prev:hover, .pagination .prev:focus,
.pagination .next:hover,
.pagination .next:focus {
    color: var(--color-primary-sub);
}
.pagination .prev:active,
.pagination .next:active {
    color: var(--color-primary-sub);
}
.pagination .prev:active::before,
.pagination .next:active::before {
    color: var(--color-primary-sub);
}

/* ────────────────────────────────
    user/components/modal
──────────────────────────────── */
.modal {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    z-index: var(--z-index-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--gap-layout);
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
}
.modal .form-title {
    font-size: 1.8rem;
}
.modal.active {
    opacity: 1;
    pointer-events: auto;
}
.modal.full {
    padding: 0;
}
.modal.full .modal-inner {
    border-radius: 0;
    max-width: none;
}
.modal.modal-small .modal-container {
    max-width: 40rem;
}
.modal.modal-medium .modal-container {
    max-width: 56rem;
}
.modal.modal-large .modal-container {
    max-width: 72rem;
}
.modal.modal-xlarge .modal-container {
    max-width: 88rem;
}
.modal.modal-xxlarge .modal-container {
    max-width: 104rem;
}
.modal.modal-xxxlarge .modal-container {
    max-width: 120rem;
}
.modal.modal-xxxxlarge .modal-container {
    max-width: 136rem;
}
.modal.modal-full .modal-container {
    max-width: 100%;
}
.modal.modal-confirm .modal-container .modal-content {
    margin-top: var(--gap-component);
}

.modal-layer {
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    display: block;
    background-color: rgba(var(--color-background-contrast), 0.2);
}

.modal-container {
    width: 100%;
    height: auto;
    position: relative;
    overflow: auto;
    overflow-x: hidden;
    overscroll-behavior: none;
    max-height: 100%;
    max-width: 56rem;
    background-color: var(--color-background);
    border-radius: var(--radius-modal);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
}
.modal-container::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.modal-container::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.modal-container::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.modal-container::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.modal-container::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.modal-container::-webkit-scrollbar-button {
    display: none;
}

.modal-head {
    width: 100%;
    position: sticky;
    top: 0;
    left: 0;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--gap-layout);
    padding: var(--gap-layout);
    border-bottom: 1px solid var(--color-border-light);
    background-color: var(--color-background);
    z-index: 1;
    border-radius: var(--radius-modal) var(--radius-modal) 0 0;
}
.modal-head.no-border {
    border: none;
}

.modal-title {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 2.4rem;
    font-weight: 600;
}

.modal-sub-title {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-text-dark);
    margin-top: 0.8rem;
}

.modal-close-button {
    width: var(--size-icon-small);
    height: var(--size-icon-small);
    background-repeat: no-repeat;
    background-size: var(--size-icon-small);
    background-position: center;
    transition: var(--transition-duration);
    position: relative;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23909090' stroke-width='2' d='m4 4 12 12M16 4 4 16'/%3E%3C/svg%3E");
}
.modal-close-button::after {
    content: "";
    display: block;
    width: calc(100% + var(--gap-form));
    height: calc(100% + var(--gap-form));
    background-color: var(--color-primary-light);
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    border-radius: var(--radius-input);
    z-index: -1;
    opacity: 0;
    transition: var(--transition-duration);
}
.modal-close-button:hover, .modal-close-button:focus {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%2335d86f' stroke-width='2' d='m4 4 12 12M16 4 4 16'/%3E%3C/svg%3E");
}
.modal-close-button:hover::after, .modal-close-button:focus::after {
    opacity: 1;
}
.modal-close-button:active::after {
    background-color: var(--color-primary-light-active);
}

.modal-content {
    width: 100%;
    height: auto;
    position: relative;
    padding: 2rem;
}

.modal-bottom {
    width: 100%;
    position: sticky;
    left: 0;
    bottom: 0;
    display: flex;
    justify-content: flex-end;
    background-color: var(--color-background);
    z-index: 1;
    padding: 2rem;
    gap: 1rem;
}
.modal-bottom.between {
    justify-content: space-between;
}
.modal-bottom .button {
    flex: 1;
    font-weight: 600;
}

/* ────────────────────────────────
    user/components/panel
──────────────────────────────── */
.panel {
    width: 100%;
    max-width: var(--size-panel);
    height: 100%;
    position: fixed;
    right: calc(var(--size-panel) * -1);
    top: 0;
    background-color: var(--color-background);
    border-left: 1px solid var(--color-snb-border);
    padding-top: var(--size-header-height);
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
    z-index: var(--z-index-panel);
}
.panel .panel-layer {
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    display: block;
    background-color: rgba(var(--color-background-contrast), 0.2);
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
}
.panel .panel-container {
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: auto;
}
.panel .panel-container::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.panel .panel-container::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.panel .panel-container::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.panel .panel-container::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.panel .panel-container::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.panel .panel-container::-webkit-scrollbar-button {
    display: none;
}
.panel .panel-container::-webkit-scrollbar {
    width: 0;
    height: 0;
}
.panel .panel-head {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-layout);
    position: sticky;
    left: 0;
    top: 0;
    background-color: var(--color-background);
    padding: var(--gap-component) var(--gap-layout);
    border-bottom: 1px solid var(--color-border-light);
    transition: var(--transition-duration);
    z-index: 1;
}
.panel .panel-head .button-group {
    gap: 0.1rem;
}
.panel .panel-head .panel-view-change-button .icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
.panel .panel-head .panel-close-button .icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
.panel .panel-head .panel-close-button:hover .icon::after {
    color: var(--color-primary);
}
.panel .panel-title {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 1.6rem;
    font-weight: 700;
}
.panel .panel-body {
    flex: 1;
    padding: var(--gap-layout);
    background-color: var(--color-background);
}
.panel .panel-footer {
    position: sticky;
    left: 0;
    bottom: 0;
    background-color: var(--color-background);
    padding: var(--gap-layout);
    display: flex;
    flex-direction: column;
    gap: var(--gap-component);
    border-top: 1px solid var(--color-border-light);
    transition: var(--transition-duration);
}

/* ────────────────────────────────
    body/panel-open/panel
──────────────────────────────── */
body.panel-open .panel {
    right: 0;
    opacity: 1;
    pointer-events: auto;
}
body.panel-overlay .panel {
    max-width: 100%;
    right: 50%;
    transform: translateX(50%);
    z-index: var(--z-index-modal);
    padding: var(--gap-layout);
    background-color: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    pointer-events: auto;
    transition: none;
}
body.panel-overlay .panel .panel-container {
    width: 100%;
    height: auto;
    position: relative;
    overflow: auto;
    overflow-x: hidden;
    overscroll-behavior: none;
    max-height: 100%;
    max-width: 56rem;
    background-color: var(--color-background);
    border-radius: var(--radius-modal);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar-button {
    display: none;
}
body.panel-overlay .panel .panel-head .panel-view-change-button .icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
body.panel-overlay .panel .panel-head .panel-close-button .icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
body.panel-overlay .panel .panel-layer {
    opacity: 1;
    pointer-events: auto;
}
body.panel-overlay .panel .panel-footer .button-group {
    justify-content: flex-end;
}
body.panel-overlay .panel .panel-footer .button-group .button {
    flex: 0;
}
body.panel-overlay .panel .panel-control {
    display: none;
}

@media screen and (min-width: 1240px) {
    body.panel-open .main {
        padding-right: calc(var(--size-panel) + var(--gap-component));
    }
}

/* ────────────────────────────────
    user/pages/login
──────────────────────────────── */
.login-container {
    display: flex;
    justify-content: center;
    min-height: 100dvh;
    padding: 2.4rem;
    gap: 6rem;
}

.login-form {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.login-form .form-container {
    width: 100%;
    min-width: 25.2rem;
    max-width: 35.2rem;
    margin: 0 auto;
}
.login-form .form-title {
    font-size: 2.4rem;
    font-weight: 700;
    color: var(--color-primary);
}
.login-form .form-sub-title {
    margin-top: 0.8rem;
    font-weight: 500;
    color: var(--color-text-sub-2);
}
.login-form .form-logo {
    width: fit-content;
    display: block;
    margin-bottom: 4rem;
}
.login-form .form-logo img {
    height: var(--size-logo-height);
}
.login-form .form-link {
    margin-top: -0.2rem;
    margin-left: auto;
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-text-sub-2);
}
.login-form .form-link a:hover {
    text-decoration: underline;
}
.login-form .button-primary-sub {
    margin-top: 1.2rem;
}
.login-form .form-bottom-link {
    margin-top: 3.2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    text-align: center;
}
.login-form .form-bottom-link .form-link {
    margin-left: 0;
    color: var(--color-text-sub-3);
}
.login-form .form-bottom-link .form-link a {
    color: var(--color-primary);
}
.login-form .form-label {
    color: var(--color-text);
}
.login-form .input-group .input-suffix-timer .icon {
    width: 1.6rem;
    min-width: 1.6rem;
    height: 1.6rem;
    min-height: 1.6rem;
}
.login-form .button.button-gray {
    color: var(--color-text-white);
    background-color: var(--color-text-sub-3);
    border-color: transparent;
}
.login-banner {
    flex: 1;
    min-width: 92.6rem;
    background-image: url(../images/user/login_bg.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}

@media screen and (max-width: 1239px) {
    .login-container {
        flex-direction: column;
        align-items: center;
        gap: 5rem;
    }

    .login-form {
        width: 100%;
    }
    .login-banner {
        display: none;
    }
}
/* ────────────────────────────────
    user/pages/section
──────────────────────────────── */
.section-head,
.section-content,
.section-tab {
    width: 100%;
    max-width: var(--size-layout-width);
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 1239px) {
    .section-head,
.section-content,
.section-tab {
        padding: 0 var(--gap-layout);
    }
}

.head-section {
    background-image: url("../images/user/page_head_bg.png");
    background-size: cover;
    background-position: center;
    padding: calc(7rem + var(--size-header-height)) 0 7rem;
    margin-bottom: 7rem;
}
.head-section .section-title {
    font-size: 2.8rem;
    font-weight: 600;
    color: var(--color-text-white);
    display: flex;
    align-items: center;
    gap: 0.8rem;
}
.head-section .section-title img {
    width: 4.2rem;
}
.head-section .section-sub-title {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-text-white);
    opacity: 0.8;
    margin-top: 2rem;
}

.visual-section {
    background-image: url("../images/user/visual_bg.png");
    background-size: cover;
    background-position: center;
    padding: calc(14rem + var(--size-header-height)) 0 23.5rem;
    margin-top: 0;
}
.visual-section .section-head .section-keyword {
    margin-bottom: 2.2rem;
}
.visual-section .section-head .section-keyword span {
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--color-primary);
}
.visual-section .section-head .section-title {
    font-size: 4.4rem;
    font-weight: 600;
    color: var(--color-primary);
    line-height: 1.3;
}
.visual-section .section-head .section-sub-title {
    font-size: 2rem;
    font-weight: 500;
    color: var(--color-text-sub-2);
    margin-top: 2.5rem;
}
.visual-section .section-head .button {
    width: 100%;
    max-width: 19rem;
    border: none;
    background-color: var(--color-primary-sub);
    padding: 1.2rem 1.6rem;
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--color-text-white);
    margin-top: 7rem;
    border-radius: 4rem;
}
@media screen and (max-width: 767px) {
    .visual-section .section-head {
        text-align: center;
    }
    .visual-section .section-head .section-keyword {
        justify-content: center;
    }
}

.product-list-section .product-list-container .product-list {
    display: grid;
    gap: var(--gap-layout);
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 0;
}
.product-list-section .product-list-container .product-list .product-list-item {
    grid-column: span 3;
    position: relative;
    border: 1px solid var(--color-border);
    border-color: var(--color-border-2);
    margin-left: -1px;
    margin-top: -1px;
}
.product-list-section .product-list-container .product-list .product-list-item .product-img-container {
    height: 21.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.product-list-section .product-list-container .product-list .product-list-item .text {
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--color-text);
    text-align: center;
    padding: 2rem;
}
.product-list-section .product-list-container ~ .button {
    width: fit-content;
    margin: 4.4rem auto 0;
    border-radius: 3.5rem;
    font-size: 1.6rem;
    font-weight: 600;
    gap: 1.2rem;
}
@media screen and (max-width: 1023px) {
    .product-list-section .product-list-container .product-list .product-list-item {
        grid-column: span 4;
    }
}
@media screen and (max-width: 767px) {
    .product-list-section .product-list-container .product-list .product-list-item {
        grid-column: span 6;
    }
}

.main-work-section {
    background-image: url("../images/user/main_work_bg.png");
    background-size: cover;
    background-position: center;
    padding: 13rem 0;
}
.main-work-section .section-keyword {
    margin-bottom: 1.2rem;
}
.main-work-section .section-title {
    font-size: 3.8rem;
    font-weight: 600;
    color: var(--color-text-white);
}
.main-work-section .section-content {
    margin-top: 6.8rem;
}
.main-work-section .section-content ul {
    display: flex;
}
.main-work-section .section-content ul li {
    flex: 1;
    padding: 5.9rem 2.4rem;
    border: 1px solid var(--color-border);
    border-color: rgba(255, 255, 255, 0.05);
    margin-left: -1px;
}
.main-work-section .section-content ul li:first-child {
    border-left: none;
}
.main-work-section .section-content ul li:last-child {
    border-right: none;
}
.main-work-section .section-content ul li p {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--color-primary);
}
.main-work-section .section-content ul li h4 {
    font-size: 2.2rem;
    font-weight: 600;
    color: var(--color-text-white);
    margin: 4.3rem 0 1.3rem;
}
.main-work-section .section-content ul li h5 {
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--color-text-white);
    opacity: 0.5;
}

.main-board-section .grid-container {
    gap: 3.6rem;
}
.main-board-section .card {
    border: none;
    border-top: 2px solid var(--color-text);
    border-radius: 0;
    padding: 0;
    padding-top: 2rem;
    gap: 3.6rem;
}
.main-board-section .card-head {
    align-items: baseline;
}
.main-board-section .card-head .button-link {
    background-color: transparent;
    min-height: auto;
    border: none;
    padding: 0;
}
.main-board-section .card-title {
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--color-text);
}
.main-board-section .card-body .table tr:first-child {
    border-top: none;
}

.help-section {
    background-image: url("../images/user/help_bg.png");
    background-size: cover;
    background-position: center;
    padding: 8.5rem 0;
    margin-top: 18rem !important;
}
.help-section .section-title {
    font-size: 3.8rem;
    font-weight: 600;
    color: var(--color-primary);
}
.help-section .section-content {
    margin-top: 1.5rem;
}
.help-section .section-content a {
    width: fit-content;
    font-size: 2.8rem;
    font-weight: 600;
    color: var(--color-primary-sub);
}
.help-section .section-content p {
    margin-top: 0.4rem;
}

.order-list-section .table {
    border-collapse: separate;
    border-spacing: 0 0.8rem;
}
.order-list-section .table th,
.order-list-section .table td {
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.order-list-section .table th:first-child,
.order-list-section .table td:first-child {
    border-left: 1px solid var(--color-border);
    border-radius: 0.4rem 0 0 0.4rem;
}
.order-list-section .table th:last-child,
.order-list-section .table td:last-child {
    border-right: 1px solid var(--color-border);
    border-radius: 0 0.4rem 0.4rem 0;
}

.board-section .section-content {
    display: flex;
    flex-direction: row;
    gap: 11.3rem;
}
.board-section .tab {
    width: 19rem;
    min-width: 19rem;
    position: relative;
}
.board-section .tab a,
.board-section .tab button {
    width: 100%;
    display: block;
    padding: 1.6rem 0;
    font-size: 1.8rem;
    font-weight: 500;
    color: var(--color-text-sub-2);
}
.board-section .tab a.active,
.board-section .tab button.active {
    color: var(--color-primary);
    font-weight: 700;
    border-bottom: 2px solid var(--color-primary);
}
.board-section .table-bottom {
    margin-top: 4rem;
}
.board-section .table th,
.board-section .table td {
    padding: 2rem;
}
@media screen and (max-width: 1023px) {
    .board-section .section-content {
        flex-direction: column;
        gap: 4rem;
    }
    .board-section .tab {
        width: 100%;
        min-width: auto;
        display: flex;
        gap: 2rem;
    }
    .board-section .tab a,
.board-section .tab button {
        width: auto;
    }
}
@media screen and (max-width: 767px) {
    .board-section .table-body {
        border: none;
    }
}

.product-detail-section .grid-container {
    gap: 4.7rem;
    align-items: start;
}
.product-detail-section .grid-container ~ .grid-container {
    margin-top: 8.7rem;
}
.product-detail-section .form-container ~ .form-container {
    margin-top: 4.4rem;
}
.product-detail-section .form-container:nth-of-type(3) {
    padding-top: 4.4rem;
    border-top: 1px solid var(--color-border-2);
}
.product-detail-section .form-title {
    font-size: 1.6rem;
}
.product-detail-section .form-content-tab {
    margin-top: 2.4rem;
}
.product-detail-section .product-thumbs {
    background-color: #f8f8f8;
    border-radius: 1.2rem;
    overflow: hidden;
}
.product-detail-section .product-thumbs img {
    border-radius: 1.2rem;
}
.product-detail-section .product-thumbs p {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--color-text);
    text-align: center;
    padding: 3.5rem;
}
.product-detail-section .checkbox-group {
    gap: 1.2rem;
}
.product-detail-section .checkbox-group .checkbox {
    flex: 1 1 40%;
}
.product-detail-section .checkbox-group .checkbox input[type=checkbox]:checked ~ label {
    border-color: var(--color-primary);
    background-color: #fff;
    box-shadow: 0 0.4rem 1.3rem rgba(0, 0, 0, 0.05);
}
.product-detail-section .checkbox-group .checkbox input[type=checkbox]:checked ~ label p:nth-of-type(2) {
    color: var(--color-primary);
}
.product-detail-section .checkbox-group .checkbox label {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    background-color: #f8f8f8;
    padding: 2rem;
    border-radius: 0.8rem;
    border: 1px solid transparent;
}
.product-detail-section .checkbox-group .checkbox label::before, .product-detail-section .checkbox-group .checkbox label::after {
    display: none;
}
.product-detail-section .checkbox-group .checkbox label p:nth-of-type(1) {
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-text-sub-2);
}
.product-detail-section .checkbox-group .checkbox label p:nth-of-type(2) {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--color-text);
}
.product-detail-section .radio-group {
    gap: 1.2rem;
    margin-bottom: 0.8rem;
}
.product-detail-section .radio-group .radio {
    flex: 1 1 40%;
}
.product-detail-section .radio-group .radio input[type=radio]:checked ~ label {
    color: var(--color-primary-contrast);
    background-color: var(--color-primary);
}
.product-detail-section .radio-group .radio label {
    width: 100%;
    display: block;
    text-align: center;
    padding: 3.3rem;
    background-color: #f8f8f8;
    border-radius: 0.8rem;
    font-weight: 600;
}
.product-detail-section .radio-group .radio label::before, .product-detail-section .radio-group .radio label::after {
    display: none;
}
.product-detail-section .card-num-group .input {
    text-align: center;
}
.product-detail-section .co-num-group .input {
    text-align: center;
}
.product-detail-section .option-container {
    margin-bottom: 1.6rem;
}
.product-detail-section .option-container .option-list {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}
.product-detail-section .option-container .option-list .option-item {
    display: flex;
    align-items: center;
    background-color: #f8f8f8;
    border-radius: 0.6rem;
    padding: 2rem;
}
.product-detail-section .option-container .option-list .option-item .info {
    flex: 1;
    margin-right: 0.3rem;
}
.product-detail-section .option-container .option-list .option-item .info .price {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-text);
}
.product-detail-section .option-container .option-list .option-item .info .name {
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-text-sub-2);
    margin-top: 0.4rem;
}
.product-detail-section .option-container .option-list .option-item .count-group {
    margin-right: 1.2rem;
    display: flex;
}
.product-detail-section .option-container .option-list .option-item .count-group button,
.product-detail-section .option-container .option-list .option-item .count-group input {
    width: 3.2rem;
    height: 3.2rem;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border-2);
    margin-left: -1px;
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-text);
    background-color: #fff;
}
.product-detail-section .option-container .option-list .option-item .count-group button:first-child {
    border-radius: 0.2rem 0 0 0.2rem;
}
.product-detail-section .option-container .option-list .option-item .count-group button:last-child {
    border-radius: 0 0.2rem 0.2rem 0;
}
.product-detail-section .option-container .option-list .option-item > button img {
    width: 2rem;
}
@media screen and (max-width: 767px) {
    .product-detail-section .grid-container {
        display: block;
    }
    .product-detail-section .grid-container .grid-item ~ .grid-item {
        margin-top: 4.4rem;
    }
}

.my-section .section-content {
    display: flex;
    flex-direction: row;
    gap: 11.3rem;
}
.my-section .tab {
    width: 19rem;
    min-width: 19rem;
    position: relative;
}
.my-section .tab a,
.my-section .tab button {
    width: 100%;
    display: block;
    padding: 1.6rem 0;
    font-size: 1.8rem;
    font-weight: 500;
    color: var(--color-text-sub-2);
}
.my-section .tab a.active,
.my-section .tab button.active {
    color: var(--color-primary);
    font-weight: 700;
    border-bottom: 2px solid var(--color-primary);
}
.my-section .table-card tr {
    border-radius: 1.2rem;
    border-color: var(--color-border-2) !important;
    box-shadow: 0 0.4rem 2.7rem rgba(0, 0, 0, 0.03);
    flex-direction: row;
    flex-wrap: wrap;
    gap: 1.6rem;
    padding: 2.4rem;
}
.my-section .table-card .col-head {
    width: 100%;
}
.my-section .table-card .col-head .head-info {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}
.my-section .table-card .col-head .head-info .date {
    font-size: 1.4rem;
    font-weight: 400;
    color: var(--color-text);
}
.my-section .table-card .col-head .head-info button {
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-text-sub-3);
}
.my-section .table-card .col-thumb .thumb-img {
    width: 8.7rem;
    height: 8.7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border);
    border-color: var(--color-border-2);
    border-radius: 0.4rem;
}
.my-section .table-card .col-info {
    flex: 1;
}
.my-section .table-card .col-info .order-info .name {
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--color-text);
}
.my-section .table-card .col-info .order-info .meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}
.my-section .table-card .col-info .order-info .meta span {
    font-size: 1.3rem;
    font-weight: 500;
    color: var(--color-text-sub-2);
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.my-section .table-card .col-info .order-info .meta span::after {
    content: "";
    display: block;
    width: 0.2rem;
    height: 0.2rem;
    background-color: var(--color-text);
    border-radius: 50%;
}
.my-section .table-card .col-info .order-info .meta span:last-child::after {
    display: none;
}
.my-section .table-card .col-info .order-info .total {
    margin-top: 0.8rem;
    padding-top: 0.8rem;
    border-top: 1px solid var(--color-border-2);
}
.my-section .table-card .col-info .order-info .total .key-value-item .key {
    font-size: 1.6rem;
    font-weight: 400;
    color: var(--color-text);
}
.my-section .table-card .col-info .order-info .total .key-value-item .value .accent {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--color-primary);
}
.my-section .table-bottom {
    margin-top: 4rem;
}
.my-section .form-container {
    width: 100%;
}
.my-section .form-container .form-title {
    font-size: 2rem;
    font-weight: 700;
}
.my-section .form-container .form-content {
    border-radius: 1.2rem;
    border: 1px solid var(--color-border);
    border-color: var(--color-border-2) !important;
    box-shadow: 0 0.4rem 2.7rem rgba(0, 0, 0, 0.03);
    padding: 2.4rem;
}
.my-section .form-container .form-bottom {
    margin-top: 3.2rem;
}
@media screen and (max-width: 1023px) {
    .my-section .section-content {
        flex-direction: column;
        gap: 4rem;
    }
    .my-section .tab {
        width: 100%;
        min-width: auto;
        display: flex;
        gap: 2rem;
    }
    .my-section .tab a,
.my-section .tab button {
        width: auto;
    }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2NvbW1vbi9fZm9udHMuc2NzcyIsIi4uL2NvbW1vbi9fcmVzZXQuc2NzcyIsIi4uL2NvbW1vbi9fbWl4aW4uc2NzcyIsIi4uL2NvbW1vbi9fcm9vdC5zY3NzIiwiLi4vY29tbW9uL19pY29uLnNjc3MiLCIuLi9jb21tb24vX2NvbW1vbi5zY3NzIiwiLi4vY29tbW9uL190b2FzdC5zY3NzIiwiLi4vdXNlci9faW5kZXguc2NzcyIsIi4uL3VzZXIvY29tbW9uL19pbmRleC5zY3NzIiwiLi4vdXNlci9jb21tb24vX3Jvb3Quc2NzcyIsIi4uL3VzZXIvY29tbW9uL19jb21tb24uc2NzcyIsIi4uL3VzZXIvbGF5b3V0L19pbmRleC5zY3NzIiwiLi4vdXNlci9sYXlvdXQvX2hlYWRlci5zY3NzIiwiLi4vdXNlci9sYXlvdXQvX2Zvb3Rlci5zY3NzIiwiLi4vdXNlci9sYXlvdXQvX2dyaWQuc2NzcyIsIi4uL3VzZXIvbGF5b3V0L19lcnJvci5zY3NzIiwiLi4vdXNlci9sYXlvdXQvX3Jlc3VsdC5zY3NzIiwiLi4vdXNlci9jb21wb25lbnRzL19pbmRleC5zY3NzIiwiLi4vdXNlci9jb21wb25lbnRzL19sb2FkaW5nLnNjc3MiLCIuLi91c2VyL2NvbXBvbmVudHMvX3NlY3Rpb24uc2NzcyIsIi4uL3VzZXIvY29tcG9uZW50cy9faW5wdXQuc2NzcyIsIi4uL3VzZXIvY29tcG9uZW50cy9fc2VsZWN0LnNjc3MiLCIuLi91c2VyL2NvbXBvbmVudHMvX3RleHRhcmVhLnNjc3MiLCIuLi91c2VyL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vdXNlci9jb21wb25lbnRzL19zd2l0Y2guc2NzcyIsIi4uL3VzZXIvY29tcG9uZW50cy9fY2hlY2tib3guc2NzcyIsIi4uL3VzZXIvY29tcG9uZW50cy9fcmFkaW8uc2NzcyIsIi4uL3VzZXIvY29tcG9uZW50cy9fZmxhdHBpY2tyLnNjc3MiLCIuLi91c2VyL2NvbXBvbmVudHMvX2JhZGdlLnNjc3MiLCIuLi91c2VyL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIi4uL3VzZXIvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uL3VzZXIvY29tcG9uZW50cy9fYm9hcmQuc2NzcyIsIi4uL3VzZXIvY29tcG9uZW50cy9fZm9ybS5zY3NzIiwiLi4vdXNlci9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi91c2VyL2NvbXBvbmVudHMvX21vZGFsLnNjc3MiLCIuLi91c2VyL2NvbXBvbmVudHMvX3BhbmVsLnNjc3MiLCIuLi91c2VyL3BhZ2VzL19sb2dpbi5zY3NzIiwiLi4vdXNlci9wYWdlcy9fc2VjdGlvbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7QUFLQTtJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUNqRUo7QUFBQTtBQUFBO0FBR0E7SUFDSTtJQUNBO0lBQ0E7O0FBRUE7SUFFSTs7O0FBSVI7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBQUdKO0FBQUE7SUFFSTs7QUFFQTtBQUFBO0lBQ0k7OztBQUlSO0lBQ0k7SUFDQTtJQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQU9JO0lBQ0E7OztBQUdKO0lBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0lBSUk7OztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJOzs7QUFJUjtJQUNJO0lBQ0E7O0FBRUE7SUFJSTs7O0FBSVI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQVFJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFHSjtBQUFBO0lBRUk7SUFDQTtJQUNBOzs7QUFHSjtJQUNJOzs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBRUE7SUFDSTs7O0FBSVI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7SUFPSTs7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUdKO0lBQ0k7OztBQUdKO0lBQ0k7OztBQ3hKSjtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFHQTtJQUVJO0lBQ0E7SUFDQTtJQUdBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUdBO0lBQ0E7SUFHQTtJQUNBO0lBR0E7SUFDQTtJQUNBO0lBR0E7SUFDQTtJQUNBO0lBQ0E7SUFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBR0E7SUFHQTtJQUNBO0lBR0E7SUFDQTtJQUNBO0lBRUE7SUFDQTtJQUNBO0lBRUE7SUFDQTtJQUNBO0lBRUE7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUVBO0lBQ0E7O0FEMEJJO0lDaklSO1FBMEdROzs7O0FDN0dSO0FBQUE7QUFBQTtBQStEQTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUZvTEE7QUVqTEE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQU9BO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBOzs7QUNuR1I7QUFBQTtBQUFBO0FBR0E7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7SUFDQTs7QUFFQTtJQUNJOztBQU1KO0lBQ0k7O0FBSVI7SUFDSTs7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SUFDQTs7QUFJUjtJQUNJO0lBQ0E7SUFDQTs7QUFHSjtJQUNJOztBQUdKO0lBQ0k7O0FBR0o7SUFDSTs7QUFHSjtJQUNJOztBQUVBO0FBQUE7SUFFSTs7QUFHSjtJQUNJO0lyQjJFUjtJQUNBO0lBQ0EsT3FCNUV5QjtJckI2RXpCLFFxQjdFeUI7SXJCOEV6QjtJQUNBO0lBQ0E7SUFDQTs7QXFCN0VBO0lBQ0k7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTs7QUFFQTtBQUFBO0lBRUk7O0FBSUE7SXJCc0RSO0lBQ0E7SUFDQSxPcUJ2RDZCO0lyQndEN0IsUXFCeEQ2QjtJckJ5RDdCO0lBQ0E7SUFDQTtJQUNBOztBcUJ4REk7SUFFSTs7QUFHSjtJQUNJOztBQUlSO0lBQ0k7SUFDQTs7QUFFQTtBQUFBO0lBRUk7O0FBSUE7SXJCNkJSO0lBQ0E7SUFDQSxPcUI5QjZCO0lyQitCN0IsUXFCL0I2QjtJckJnQzdCO0lBQ0E7SUFDQTtJQUNBOztBcUI5QkE7SUFDSTtJQUNBO0lBQ0E7O0FBRUE7QUFBQTtJQUVJOztBQUlBO0lyQllSO0lBQ0E7SUFDQSxPcUJiNkI7SXJCYzdCLFFxQmQ2QjtJckJlN0I7SUFDQTtJQUNBO0lBQ0E7O0FxQmRJO0lBRUk7O0FBR0o7SUFDSTs7QUFJUjtJQUNJO0lBQ0E7SUFDQTs7QUFFQTtBQUFBO0lBRUk7O0FBSUE7SXJCZFI7SUFDQTtJQUNBLE9xQmE2QjtJckJaN0IsUXFCWTZCO0lyQlg3QjtJQUNBO0lBQ0E7SUFDQTs7QXFCWUk7SUFDSTs7QUFJUjtJQUNJO0lBQ0E7SUFDQTs7QUFFQTtBQUFBO0lBRUk7O0FBSUE7SXJCbkNSO0lBQ0E7SUFDQSxPcUJrQzZCO0lyQmpDN0IsUXFCaUM2QjtJckJoQzdCO0lBQ0E7SUFDQTtJQUNBOztBcUIyQ0E7SUFDSTs7QUFHSjtJQUNJO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFNQTtJQUNJOztBQUlSO0lBQ0k7O0FBR0o7SUFDSTtJQUNBOztBQUVBO0FBQUE7SUFFSTs7QUFHSjtJQUNJOztBQUVBO0lyQjFGUjtJQUNBO0lB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S1o7SUFDSTs7QUFFQTtJQUNJO0lBQ0E7O0FBSVI7SUFDSTs7QUFNSjtJQUNJOztBQUVBO0lBQ0k7O0FBRUE7SUFDSTs7QUFRWjtJQUNJOztBQUVBO0lBQ0k7O0FBSVI7SUFDSTs7QUFFQTtJQUNJOztBQUtKO0lBQ0k7O0FBS0o7QUFBQTtJNUJ0RUo7O0E0QjZFSTtJQUNJOztBNUJwRVI7SUFDSTs7QUFHSjtJQUNJOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUFHSjtJQUNJOztBQUdJO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUFLWjtJQUNJOztBNEJtQ0E7SUFDSTs7QTVCL0dKO0k0QnVIQTtRQUVJOztJNUJ0RlI7UUFDSTs7SUFHSjtRQUNJOztJQUdKO1FBQ0k7UUFDQTtRQUNBO1FBQ0E7O0lBR0o7UUFDSTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7SUFHSjtRQUNJOztJQUdJO1FBQ0k7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7SUFLWjtRQUNJOzs7O0E0Qm1EUjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUFHSTtJQUNJO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7O0E1QjlJUjtJNEI4SFI7UUFzQlE7UUFDQTtRQUNBOzs7O0FBSVI7SUFDSTs7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0k1QjVJQTtJNEI4SUk7O0E1QnZLQTtJNEI4SlI7UUFhUTtRQUNBO1FBQ0E7O0lBRUE7UUFDSTtRQUNBOztJQUVBO1FBQ0k7Ozs7QUFNaEI7SUFDSTtJQUNBO0lBQ0E7STVCelJBOztBQUVBO0lBRUk7SUFDQTs7QUFHSjtJQUVJO0lBQ0E7O0FBR0o7SUFFSTtJQUNBOztBQUdKO0lBRUk7O0FBR0o7SUFFSTs7QUFHSjtJQUVJOztBNEI0UEo7SUFDSTs7O0FBSVI7STVCalNJO0k0Qm1TQTs7QTVCalNBO0lBRUk7SUFDQTs7QUFHSjtJQUVJO0lBQ0E7O0FBR0o7SUFFSTtJQUNBOztBQUdKO0lBRUk7O0FBR0o7SUFFSTs7QUFHSjtJQUVJOztBNEJxUUo7SUFDSTs7QUFHSTtJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0lBRUk7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7STVCcEdoQjs7QTRCd0dZO0lBQ0k7O0FBR0o7SUFDSTs7QUFNQTtJQUNJOztBQU9wQjtJQUNJOzs7QUFJUjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBRUE7SUFDSTs7QUFHSjtJQUNJOztBQUdKO0lBQ0k7O0E1QnZRQTtJNEI0UUk7UUFDSTs7OztBQ2paaEI7QUFBQTtBQUFBO0FBR0E7SUFDSTs7O0FBR0o7SUFDSTtJQUNBOztBQUVBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7O0FBR0o7STdCeU9KLFc2QnhPc0I7STdCeU90QixhNkJ6TzhCO0k3QjBPOUIsT0FIdUQ7O0E2Qm5PdkQ7SUFDSTs7QUFHSTtJN0JnT1IsVzZCL04wQjtJN0JnTzFCLGE2QmhPa0M7STdCaU9sQyxPQUh1RDs7QTZCNU4zQztJQUNJO0lBQ0E7O0FBVXBCO0k3QjhHSTtJNkI1R0E7SUFDQTtJQUNBO0lBQ0E7O0FBRUE7SUFDSTtJQUNBOzs7QUFJUjtJQUNJO0lBQ0E7OztBQUlBO0lBQ0k7O0FBRUE7SUFDSTtJQUNBO0lBQ0E7O0FBRUE7SUFDSTs7QUFFQTtJQUNJOztBQU1BO0lBQ0k7O0FBTVI7SUFDSTtJQUNBOztBQUdKO0lBQ0k7O0FBTWhCO0lBQ0k7SUFDQTs7QUFFQTtJQUNJOztBN0J3Qko7STZCbEJJO1FBQ0k7Ozs7QUNuSGhCO0FBQUE7QUFBQTtBQUdBO0lBQ0k7SUFDQTs7QUFFQTtJQUNJOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FBS1o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7SUFDQTs7QUFHSjtJQUNJOzs7QUFJUjtJQUNJO0lBQ0E7O0FBRUE7QUFBQTtJQUVJO0lBQ0E7SUFDQTtJOUJ1TUosVzhCdE1rQjtJOUJ1TWxCLGE4QnZNMEI7STlCd00xQixPOEJ4TStCO0lBQzNCOztBQUVBO0FBQUE7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFJUjtJQUNJOzs7QUFPUjtJOUJtTEksVzhCbExjO0k5Qm1MZCxhOEJuTHNCO0k5Qm9MdEIsTzhCcEwyQjtJQUMzQjtJQUNBO0lBQ0E7O0FBRUE7STlCNktBLFc4QjVLa0I7STlCNktsQixhOEI3SzBCO0k5QjhLMUIsTzhCOUsrQjtJQUMzQjs7QUFHSjtJQUNJOztBQUdKO0lBQ0k7OztBQUlSO0lBQ0k7SUFDQTs7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUdKO0lBQ0k7SUFDQTtJQUNBOztBQUVBO0lBQ0k7SUFDQTs7O0FBSVI7SUFDSTtJQUNBO0lBQ0E7OztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBRUE7SUFDSTs7QUFHSjtBQUFBO0lBRUk7SUFDQTs7QUFHSjtJQUNJOztBQUVBO0k5Qm5FSixTOEJvRThCO0k5Qm5FOUI7SUFDQTtJQUNBO0lBQ0EsT0FMd0M7SUFNeEM7SThCZ0VROzs7QUFLWjtJQUNJO0lBQ0E7SUFDQTs7QUFHSTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBQUtaO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBRUE7STlCbkdBLFM4Qm9HMEI7STlCbkcxQjtJQUNBO0lBQ0E7SUFDQSxPQUx3QztJQU14QztJOEJnR0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0k5QjdCSjtJOEIrQkk7SUFDQTs7QUFHSjtJQUNJOztBQUVBO0k5QnRISixTOEJ1SDhCO0k5QnRIOUI7SUFDQTtJQUNBO0lBQ0EsT0FMd0M7SUFNeEM7SThCbUhRO0lBQ0E7SUFDQTs7QUFJUjtJQUNJOztBQUVBO0k5QmpJSixTOEJrSThCO0k5QmpJOUI7SUFDQTtJQUNBO0lBQ0EsT0FMd0M7SUFNeEM7SThCOEhRO0lBQ0E7SUFDQTs7QUFJUjtJQUNJOztBQUVBO0k5QjVJSixTOEI2SThCO0k5QjVJOUI7SUFDQTtJQUNBO0lBQ0EsT0FMd0M7SUFNeEM7SThCeUlRO0lBQ0E7SUFDQTs7QUFJUjtJQUNJOztBQUVBO0k5QnZKSixTOEJ3SjhCO0k5QnZKOUI7SUFDQTtJQUNBO0lBQ0EsT0FMd0M7SUFNeEM7SThCb0pRO0lBQ0E7SUFDQTs7O0FBS1o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJOzs7QUFJUjtJQUNJO0lBQ0E7STlCN0ZBO0k4QitGQTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7STlCOUlKO0k4QmdKSTtJQUNBO0k5Qm5ESjtJOEJxREk7O0FBRUE7SUFDSTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBR0k7SUFDSTs7QUFNaEI7SUFDSTtJOUJ6S0o7SThCMktJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBOztBQUVBO0lBQ0k7O0FBR0o7SUFDSTs7QUFHSjtJQUNJO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7O0FBSVI7SUFDSTs7QTlCcE9BO0k4QjRKUjtRQTRFUTs7SUFFQTtRQUNJO1FBQ0E7O0lBR0o7UUFDSTs7SUFHSjtRQUNJOztJQUdKO1FBQ0k7UUFDQTs7SUFFQTtRQUNJOztJQUVBO1FBQ0k7UUFDQTs7SUFHSjtRQUNJO1FBQ0E7O0lBSVI7UUFDSTs7SUFFQTtRQUNJOzs7O0FBT3BCO0lBQ0k7OztBQUdKO0lBQ0k7SUFDQTtJQUNBO0k5QmxRQTtJOEJvUUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7STlCNUtBOztBOEIrS0E7SUFDSTs7QUFHSjtJQUNJO0lBQ0E7O0FBR0o7SUFDSTtJOUJ6TEo7SThCMkxJOztBQUdKO0lBQ0k7SUFDQTtJQUNBOztBQUVBO0lBQ0k7OztBQU1SO0lBQ0k7O0FBRUE7SUFDSTs7QUFFQTtJQUNJO0lBQ0E7O0FBT0o7STlCdlRSO0k4QnlUWTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBRUE7STlCbmRaO0lBQ0Esb0JBRnFCO0lBR3JCO0lBQ0E7SUFDQTtJQUNBOztBOEJrZFk7SUFDSTs7O0FBT3BCO0lBQ0k7O0FBR0k7STlCaGFKLFM4QmlhOEI7STlCaGE5QjtJQUNBO0lBQ0E7SUFDQSxPQUx3QztJQU14Qzs7O0E4QmlhSjtJQUNJOzs7QUFHSjtJQUNJOztBQUVBO0k5QjFQQSxXOEIyUGtCO0k5QjFQbEIsYThCMFAwQjtJOUJ6UDFCLE9BSHVEO0k4QjZQbkQ7O0FBR0o7STlCL1BBLFc4QmdRa0I7STlCL1BsQixhOEIrUDBCO0k5QjlQMUIsTzhCOFArQjtJQUMzQjtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBOzs7QUNoaEJaO0FBQUE7QUFBQTtBQUdBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQUNBOztBQUVBO0lBQ0k7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJL0JpT0o7O0ErQjlOSTtJQUNJO0lBQ0E7SUFDQTs7QUFHSjtJQUVJOztBQUdKO0lBQ0k7O0FBS0o7SS9CK0JKLFMrQjlCOEI7SS9CK0I5QjtJQUNBO0lBQ0E7SUFDQSxPQUx3QztJQU14Qzs7QStCOUJJO0kvQnlCSixTK0J4QjhCO0kvQnlCOUI7SUFDQTtJQUNBO0lBQ0EsT0FMd0M7SUFNeEM7O0ErQnpCQTtBQUFBO0lBRUk7SUFDQTtJQUNBOztBQUVBO0FBQUE7SUFDSTs7QUFHSjtBQUFBO0FBQUE7SUFFSTs7QUFHSjtBQUFBO0lBQ0k7O0FBRUE7QUFBQTtJQUNJOzs7QUM1RWhCO0FBQUE7QUFBQTtBQUdBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJaEMwT0E7O0FnQ3ZPQTtJQUNJOztBQUdKO0lBQ0k7SUFDQTs7QUFHSjtJQUNJOztBQUVBO0lBQ0k7SUFDQTs7QUFLSjtJQUNJOztBQUtKO0lBQ0k7O0FBS0o7SUFDSTs7QUFLSjtJQUNJOztBQUtKO0lBQ0k7O0FBS0o7SUFDSTs7QUFLSjtJQUNJOztBQUtKO0lBQ0k7O0FBTUE7SUFDSTs7O0FBTWhCO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUE7OztBQUdKO0loQ3RHSSxPQURrQjtJQUVsQixRQUZpQztJQUdqQyxVQUhrRDtJQXFDbEQ7SWdDcUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJaENnREE7O0FBeEhBO0lBRUk7SUFDQTs7QUFHSjtJQUVJO0lBQ0E7O0FBR0o7SUFFSTtJQUNBOztBQUdKO0lBRUk7O0FBR0o7SUFFSTs7QUFHSjtJQUVJOzs7QWdDOENSO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBRUE7SUFDSTs7O0FBSVI7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBOzs7QUFHSjtJaENrRkksT2dDakZ5QjtJaENrRnpCLFFnQ2xGeUI7SWhDbUZ6QjtJQUNBLGlCZ0NwRnlCO0loQ3FGekI7SUFZQTtJQVZBO0lnQ3RGQTs7QUFFQTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJaENrRko7O0FnQzlFQTtJQUVJOztBQUVBO0lBQ0k7O0FBS0o7SUFDSTs7O0FBS1o7SWhDekxJLE9BRGtCO0lBRWxCLFFBRmlDO0lBR2pDLFVBSGtEO0lnQzRMbEQ7OztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBRUE7SUFDSTs7QUFHSjtJQUNJO0lBQ0E7OztBQ3BOUjtBQUFBO0FBQUE7QUFHQTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SWpDNk9BO0lpQzNPQTs7QUFFQTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJakNnT0o7O0FpQzVOQTtJQUNJO0lBQ0E7SUFDQTtJakNNSjs7QUFFQTtJQUVJO0lBQ0E7O0FBR0o7SUFFSTtJQUNBOztBQUdKO0lBRUk7SUFDQTs7QUFHSjtJQUVJOztBQUdKO0lBRUk7O0FBR0o7SUFFSTs7QWlDbkNBO0lBQ0k7SUFDQTs7QUFJUjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SWpDcU1KO0lpQ25NSTs7QUFFQTtJQUNJOztBQUtJO0lqQ2FaLFNpQ1pzQztJakNhdEM7SUFDQTtJQUNBO0lBQ0EsT0FMd0M7SUFNeEM7O0FpQ1ZZO0lqQ0taLFNpQ0pzQztJakNLdEM7SUFDQTtJQUNBO0lBQ0EsT0FMd0M7SUFNeEM7O0FpQ0hnQjtJQUNJOztBQU9wQjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SWpDNklKOzs7QWlDeElKO0FBQUE7QUFBQTtBQUtRO0lBQ0k7SUFDQTtJQUNBOztBQUtKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0lqQzFJUixPQURrQjtJQUVsQixRQUZpQztJQUdqQyxVQUhrRDtJQXFDbEQ7SWlDeUdZO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJakNZWjs7QUF4SEE7SUFFSTtJQUNBOztBQUdKO0lBRUk7SUFDQTs7QUFHSjtJQUVJO0lBQ0E7O0FBR0o7SUFFSTs7QUFHSjtJQUVJOztBQUdKO0lBRUk7O0FpQ3FGZ0I7SWpDaEZwQixTaUNpRjhDO0lqQ2hGOUM7SUFDQTtJQUNBO0lBQ0EsT0FMd0M7SUFNeEM7O0FpQ21Gb0I7SWpDeEZwQixTaUN5RjhDO0lqQ3hGOUM7SUFDQTtJQUNBO0lBQ0EsT0FMd0M7SUFNeEM7O0FpQzBGUTtJQUNJO0lBQ0E7O0FBSUE7SUFDSTs7QUFFQTtJQUNJOztBQUtaO0lBQ0k7OztBakM1RVI7SWlDcUZJO1FBQ0k7Ozs7QUN0TWhCO0FBQUE7QUFBQTtBQUdBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBOztBQUVBO0lBQ0k7O0FBSVI7SUFDSTtJQUNBO0lsQ2dOSixXa0MvTWtCO0lsQ2dObEIsYWtDaE4wQjtJbENpTjFCLE9rQ2pOK0I7O0FBR3ZCO0lBQ0k7O0FBS1o7SUFDSTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0lBQ0k7SUFDQTs7QUFFQTtJQUNJOztBQUtaO0lBQ0k7O0FBVUk7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFXUjtJQUNJO0lBQ0E7SUFDQTs7QUFxQlo7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBbEM3Qkk7SWtDaUNKO1FBQ0k7UUFDQTtRQUNBOzs7SUFHSjtRQUNJOztJQU1KO1FBQ0k7OztBQzNKUjtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7SUFHSTtJQUNBO0lBQ0E7SUFDQTs7QW5DbUdJO0ltQ3pHUjtBQUFBO0FBQUE7UUFTUTs7OztBQUtSO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJbkN3T0EsV21Ddk9rQjtJbkN3T2xCLGFtQ3hPMEI7SW5DeU8xQixPbUN6TytCO0lBQzNCO0lBQ0E7SUFDQTs7QUFFQTtJQUNJOztBQUlSO0luQzZOQSxXbUM1TmtCO0luQzZObEIsYW1DN04wQjtJbkM4TjFCLE9tQzlOK0I7SUFDM0I7SUFDQTs7O0FBS1I7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUdJO0lBQ0k7O0FBRUE7SW5DME1SLFdtQ3pNMEI7SW5DME0xQixhbUMxTWtDO0luQzJNbEMsT21DM011Qzs7QUFJbkM7SW5DcU1KLFdtQ3BNc0I7SW5DcU10QixhbUNyTThCO0luQ3NNOUIsT21DdE1tQztJQUMzQjs7QUFHSjtJbkNnTUosV21DL0xzQjtJbkNnTXRCLGFtQ2hNNEI7SW5DaU01QixPbUNqTWlDO0lBQ3pCOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJbkNzTFIsV21DckxzQjtJbkNzTHRCLGFtQ3RMOEI7SW5DdUw5QixPbUN2TG1DO0lBQzNCO0lBQ0E7O0FuQ3VESjtJbUNsREE7UUFDSTs7SUFFQTtRQUNJOzs7O0FBU1I7SW5DbkVKO0lBQ0EsS0FGK0M7SUFRM0M7SW1DOERJOztBQUVBO0lBQ0k7SUFDQTtJbkN3RFo7SW1DdERZO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBTUo7SW5DMElaLFdtQ3pJOEI7SW5DMEk5QixhbUMxSXNDO0luQzJJdEMsT0FIdUQ7SW1Ddkl2QztJQUNBOztBQUtaO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBbkNaSjtJbUNtQlE7UUFDSTs7O0FuQ1JaO0ltQ2lCUTtRQUNJOzs7O0FBUXBCO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBRUE7SUFDSTs7QUFHSjtJbkN3RkEsV21DdkZrQjtJbkN3RmxCLGFtQ3hGMEI7SW5DeUYxQixPbUN6RitCOztBQUcvQjtJQUNJOztBQUVBO0lBQ0k7O0FBRUE7SUFDSTtJQUNBO0luQ3ZCWjtJbUN5Qlk7SUFDQTs7QUFFQTtJQUNJOztBQUdKO0lBQ0k7O0FBR0o7SW5DK0RaLFdtQzlEOEI7SW5DK0Q5QixhbUMvRHNDO0luQ2dFdEMsT21DaEUyQzs7QUFHL0I7SW5DMkRaLFdtQzFEOEI7SW5DMkQ5QixhbUMzRHNDO0luQzREdEMsT21DNUQyQztJQUMzQjs7QUFHSjtJbkNzRFosV21DckQ4QjtJbkNzRDlCLGFtQ3REc0M7SW5DdUR0QyxPbUN2RDJDO0lBQzNCOzs7QUFTaEI7SUFDSTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUFHSjtJQUNJOztBQUVBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBSVI7SW5DbUJBLFdtQ2xCa0I7SW5DbUJsQixhbUNuQjBCO0luQ29CMUIsT0FIdUQ7O0FtQ1gzQztJQUNJOzs7QUFRcEI7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0luQ0pBLFdtQ0trQjtJbkNKbEIsYW1DSTBCO0luQ0gxQixPbUNHK0I7O0FBRy9CO0lBQ0k7O0FBRUE7SUFDSTtJbkNaUixXbUNhc0I7SW5DWnRCLGFtQ1k4QjtJbkNYOUIsT21DV21DOztBQUcvQjtJQUNJOzs7QUFPUjtJQUNJO0lBQ0E7O0FBS0E7QUFBQTtJQUVJO0lBQ0E7O0FBRUE7QUFBQTtJQUNJO0lBQ0E7O0FBR0o7QUFBQTtJQUNJO0lBQ0E7OztBQVFaO0lBQ0k7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBOztBQUVBO0FBQUE7SUFFSTtJQUNBO0lBQ0E7SW5DbEVSLFdtQ21Fc0I7SW5DbEV0QixhbUNrRThCO0luQ2pFOUIsT21DaUVtQzs7QUFFM0I7QUFBQTtJQUNJO0lBQ0E7SUFDQTs7QUFRWjtJQUNJOztBQU9BO0FBQUE7SUFFSTs7QW5DbE9KO0ltQ3VPQTtRQUNJO1FBQ0E7O0lBR0o7UUFDSTtRQUNBO1FBQ0E7UUFDQTs7SUFFQTtBQUFBO1FBRUk7OztBbkN4T1I7SW1DOE9BO1FBQ0k7Ozs7QUFPUjtJQUNJO0lBQ0E7O0FBRUE7SUFDSTs7QUFVSjtJQUNJOztBQUdKO0lBQ0k7SUFDQTs7QUFJUjtJQUNJOztBQUdKO0lBQ0k7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7O0FBRUE7SUFDSTs7QUFHSjtJbkNwS0osV21DcUtzQjtJbkNwS3RCLGFtQ29LOEI7SW5Dbks5QixPQUh1RDtJbUN1Sy9DO0lBQ0E7O0FBSVI7SUFDSTs7QUFFQTtJQUNJOztBQUlRO0lBQ0k7SUFDQTtJQUNBOztBQUdJO0lBQ0k7O0FBT3BCO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBRUE7SUFFSTs7QUFJQTtJbkNoTmhCLFdtQ2lOa0M7SW5DaE5sQyxhbUNnTjBDO0luQy9NMUMsT21DK00rQzs7QUFHL0I7SW5DcE5oQixXbUNxTmtDO0luQ3BObEMsYW1Db04wQztJbkNuTjFDLE9BSHVEOztBbUM2TnZEO0lBQ0k7SUFDQTs7QUFFQTtJQUNJOztBQUlRO0lBQ0k7SUFDQTs7QUFLWjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0lBRUk7O0FBT1o7SUFDSTs7QUFVSjtJQUNJOztBQUlSO0lBQ0k7O0FBRUE7SUFDSTtJQUNBO0lBQ0E7O0FBRUE7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0lBQ0k7SUFDQTs7QUFFQTtJbkNqU2hCLFdtQ2tTa0M7SW5DalNsQyxhbUNpUzBDO0luQ2hTMUMsT0FIdUQ7O0FtQ3NTdkM7SW5DclNoQixXbUNzU2tDO0luQ3JTbEMsYW1DcVMwQztJbkNwUzFDLE9tQ29TK0M7SUFDM0I7O0FBSVI7SUFDSTtJQUNBOztBQUVBO0FBQUE7SUFFSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0luQ3hUcEIsV21DeVRrQztJbkN4VGxDLGFtQ3dUMEM7SW5DdlQxQyxPQUh1RDtJbUMyVG5DOztBQUlBO0lBQ0k7O0FBR0o7SUFDSTs7QUFTUjtJQUNJOztBbkN6Y2hCO0ltQ2lkQTtRQUNJOztJQUdJO1FBQ0k7Ozs7QUFTaEI7SUFDSTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7O0FBRUE7QUFBQTtJQUVJO0lBQ0E7SUFDQTtJbkNsWFIsV21DbVhzQjtJbkNsWHRCLGFtQ2tYOEI7SW5Dalg5QixPbUNpWG1DOztBQUUzQjtBQUFBO0lBQ0k7SUFDQTtJQUNBOztBQU1SO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTs7QUFFQTtJQUNJO0lBQ0E7SUFDQTs7QUFFQTtJbkNoWlosV21DaVo4QjtJbkNoWjlCLGFtQ2dac0M7SW5DL1l0QyxPQUh1RDs7QW1DcVozQztJbkNwWlosV21DcVo4QjtJbkNwWjlCLGFtQ29ac0M7SW5Dblp0QyxPbUNtWjJDOztBQU1uQztJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SW5DbmdCWjtJbUNxZ0JZO0lBQ0E7O0FBT1I7SUFDSTs7QUFHSTtJbkM5YVosV21DK2E4QjtJbkM5YTlCLGFtQzhhc0M7SW5DN2F0QyxPQUh1RDs7QW1DbWIzQztJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0luQ3hiaEIsV21DeWJrQztJbkN4YmxDLGFtQ3diMEM7SW5DdmIxQyxPbUN1YitDO0lBQzNCO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUlBO0lBQ0k7O0FBTWhCO0lBQ0k7SUFDQTtJQUNBOztBQUdJO0luQ3RkcEIsV21DdWRzQztJbkN0ZHRDLGFtQ3NkOEM7SW5DcmQ5QyxPbUNxZG1EOztBQUkzQjtJbkMzZHhCLFdtQzRkMEM7SW5DM2QxQyxhbUMyZGtEO0luQzFkbEQsT21DMGR1RDs7QUFTdkQ7SUFDSTs7QUFHSjtJQUNJOztBQUVBO0lBQ0k7SUFDQTs7QUFHSjtJQUNJO0luQ3JsQlI7SW1DdWxCUTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTs7QW5DbG9CSjtJbUN1b0JBO1FBQ0k7UUFDQTs7SUFHSjtRQUNJO1FBQ0E7UUFDQTtRQUNBOztJQUVBO0FBQUE7UUFFSSIsImZpbGUiOiJ1c2VyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgZm9udHNcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcblxyXG4vLyBQcmV0ZW5kYXJkXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiUHJldGVuZGFyZFwiO1xyXG4gICAgc3JjOiB1cmwoXCIuLi9mb250cy9QcmV0ZW5kYXJkL1ByZXRlbmRhcmQtVGhpbi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcclxuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiUHJldGVuZGFyZFwiO1xyXG4gICAgc3JjOiB1cmwoXCIuLi9mb250cy9QcmV0ZW5kYXJkL1ByZXRlbmRhcmQtRXh0cmFMaWdodC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcclxuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiUHJldGVuZGFyZFwiO1xyXG4gICAgc3JjOiB1cmwoXCIuLi9mb250cy9QcmV0ZW5kYXJkL1ByZXRlbmRhcmQtTGlnaHQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlByZXRlbmRhcmRcIjtcclxuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUHJldGVuZGFyZC9QcmV0ZW5kYXJkLVJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlByZXRlbmRhcmRcIjtcclxuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUHJldGVuZGFyZC9QcmV0ZW5kYXJkLU1lZGl1bS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiUHJldGVuZGFyZFwiO1xyXG4gICAgc3JjOiB1cmwoXCIuLi9mb250cy9QcmV0ZW5kYXJkL1ByZXRlbmRhcmQtU2VtaUJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlByZXRlbmRhcmRcIjtcclxuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUHJldGVuZGFyZC9QcmV0ZW5kYXJkLUJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlByZXRlbmRhcmRcIjtcclxuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUHJldGVuZGFyZC9QcmV0ZW5kYXJkLUV4dHJhQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiUHJldGVuZGFyZFwiO1xyXG4gICAgc3JjOiB1cmwoXCIuLi9mb250cy9QcmV0ZW5kYXJkL1ByZXRlbmRhcmQtQmxhY2sud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgY29tbW9uL3Jlc2V0XHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4qIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cclxuICAgICY6OmFmdGVyLFxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfVxyXG59XHJcblxyXG5odG1sIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJhc2UpO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LWJhc2Utc2l6ZSk7XHJcbiAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xyXG59XHJcblxyXG5vbCxcclxudWwge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuYnV0dG9uIHtcclxuICAgIGFsbDogdW5zZXQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG5pbWcsXHJcbnN2ZyxcclxucGljdHVyZSxcclxudmlkZW8sXHJcbmNhbnZhcyxcclxuaWZyYW1lLFxyXG50ZXh0YXJlYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxufVxyXG5cclxuaW1nIHtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbn1cclxuXHJcbmlucHV0LFxyXG5idXR0b24sXHJcbnRleHRhcmVhLFxyXG5zZWxlY3Qge1xyXG4gICAgZm9udDogaW5oZXJpdDtcclxufVxyXG5cclxuaW5wdXQge1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IG5vbmU7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICAmOjotbXMtY2xlYXIge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbmlucHV0IHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG5cclxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXHJcbiAgICAmOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxyXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXHJcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXHJcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXHJcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXHJcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxyXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0ge1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICBvdXRsaW5lOiAwO1xyXG59XHJcblxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XHJcbn1cclxuXHJcbnNlbGVjdCB7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAmOjotbXMtZXhwYW5kIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG5wLFxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbn1cclxuXHJcbmEge1xyXG4gICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbltvbmNsaWNrXSB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbnNwYW4ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgY29tbW9uL21peGluc1xyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuQG1peGluIHBhcmVudCgkd2lkdGg6IDEwMCUsICRoZWlnaHQ6IGF1dG8sICRwb3NpdGlvbjogcmVsYXRpdmUpIHtcclxuICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgICBwb3NpdGlvbjogJHBvc2l0aW9uO1xyXG59XHJcblxyXG5AbWl4aW4gbGluZS1jbGFtcCgkbGluZTogMSkge1xyXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3ggIWltcG9ydGFudDtcclxuICAgIC13ZWJraXQtbGluZS1jbGFtcDogJGxpbmU7XHJcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG59XHJcblxyXG5AbWl4aW4gZmxleCgkZGlyZWN0aW9uOiByb3csICRqdXN0aWZ5OiBjZW50ZXIsICRhbGlnbjogY2VudGVyLCAkd3JhcDogbm93cmFwLCAkZ2FwOiAwKSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRqdXN0aWZ5O1xyXG4gICAgYWxpZ24taXRlbXM6ICRhbGlnbjtcclxuICAgIGZsZXgtd3JhcDogJHdyYXA7XHJcbiAgICBnYXA6ICRnYXA7XHJcbn1cclxuXHJcbkBtaXhpbiBncmlkKCRjb2x1bW46IDEyLCAkbWluOiAwLCAkbWF4OiAxZnIsICRnYXA6IHZhcigtLWdhcC1sYXlvdXQpKSB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ2FwOiAkZ2FwO1xyXG5cclxuICAgIEBpZiAkY29sdW1uID09YXV0byB7XHJcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcclxuICAgICAgICBncmlkLWF1dG8tY29sdW1uczogbWlubWF4KCRtaW4sICRtYXgpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoJGNvbHVtbiwgbWlubWF4KCRtaW4sICRtYXgpKTtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIHNjcm9sbGJveCB7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuXHJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICAgICAgLy8g7Iqk7YGs66GkIOuwlFxyXG4gICAgICAgIHdpZHRoOiA4cHg7XHJcbiAgICAgICAgaGVpZ2h0OiA4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgICAgIC8vIOyKpO2BrOuhpCDrsJQg67CR7J2YIOuwsOqyvVxyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc4Nzg4MDMwO1xyXG4gICAgfVxyXG5cclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuICAgICAgICAvLyDsi6Tsp4jsoIEg7Iqk7YGs66GkIOuwlFxyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzc4Nzg4MDMwO1xyXG4gICAgfVxyXG5cclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcclxuICAgICAgICAvLyDsi6Tsp4jsoIEg7Iqk7YGs66GkIOuwlCDsnITsl5Ag66eI7Jqw7Iqk66W8IOyYrOugpOuLpCDrkZgg65WMXHJcbiAgICAgICAgYmFja2dyb3VuZDogIzc4Nzg4MDUwO1xyXG4gICAgfVxyXG5cclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmFjdGl2ZSB7XHJcbiAgICAgICAgLy8g7Iuk7KeI7KCBIOyKpO2BrOuhpCDrsJTrpbwg7YG066at7ZWgIOuVjFxyXG4gICAgICAgIGJhY2tncm91bmQ6ICM3ODc4ODA3MDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24ge1xyXG4gICAgICAgIC8vIOyKpO2BrOuhpCDrsJQg7IOBIO2VmOuLqCDrsoTtirxcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm9udEF3ZXNvbWU1KCRpY29uOiBcIlxcZjEwNVwiLCAkY29sb3I6IHZhcigtLWNvbG9yLWljb24pKSB7XHJcbiAgICBjb250ZW50OiAkaWNvbjtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIjtcclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtYmFzZS1zaXplKTtcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItdG9wKCRjb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyKSkge1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvcjtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1ib3R0b20oJGNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXIpKSB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yO1xyXG59XHJcblxyXG4vLyDrr7jrlJTslrTsv7zrpqxcclxuQG1peGluIG1xLWRlc2t0b3AoJHR5cGU6IG1heCkge1xyXG4gICAgQGlmICR0eXBlID09bWF4IHtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNDM5cHgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkdHlwZSA9PW1pbiB7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQ0MHB4KSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIG1xLWxhcHRvcCgkdHlwZTogbWF4KSB7XHJcbiAgICBAaWYgJHR5cGUgPT1tYXgge1xyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMzlweCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICR0eXBlID09bWluIHtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjQwcHgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gbXEtdGFibGV0KCR0eXBlOiBtYXgpIHtcclxuICAgIEBpZiAkdHlwZSA9PW1heCB7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHR5cGUgPT1taW4ge1xyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtcS1tb2JpbGUoJHR5cGU6IG1heCkge1xyXG4gICAgQGlmICR0eXBlID09bWF4IHtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICR0eXBlID09bWluIHtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIOygle2VtOynhCDrr7jrlJTslrQg7L+866asIOydtOyZuOyXkCDsgqzsmqntlZjqs6Ag7Iu27J2AIOqyveyasFxyXG5AbWl4aW4gbXEtY3VzdG9tKCR0eXBlLCAkd2lkdGgpIHtcclxuICAgIEBpZiAkdHlwZSA9PW1heCB7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHdpZHRoKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHR5cGUgPT1taW4ge1xyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR3aWR0aCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIOuztOuNlFxyXG5AbWl4aW4gYm9yZGVyKCkge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcclxufVxyXG5cclxuLy8g67CV7IqkIOyEgOuPhOyasFxyXG5AbWl4aW4gYm94LXNoYWRvdygpIHtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEodmFyKC0tY29sb3ItYmFja2dyb3VuZC1jb250cmFzdCksIDAuMSk7XHJcbn1cclxuXHJcbi8vIOy5tOuTnO2Yle2DnCDthYzsnbTruJRcclxuQG1peGluIHRhYmxlLWNhcmQoKSB7XHJcbiAgICBjb2xncm91cCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGVhZCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICB0Ym9keSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGdhcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgdHIge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcikgIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGQge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgJltkYXRhLWxhYmVsXSB7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItbGFiZWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5idXR0b24tZ3JvdXAge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIOyKpO2UvOuEiFxyXG5AbWl4aW4gc3Bpbm5lcigkc2l6ZTogMS42cmVtLCAkY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAkc2l6ZTtcclxuICAgIGhlaWdodDogJHNpemU7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3I7XHJcbiAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7XHJcbn1cclxuXHJcbi8vIGNsb3NlIGljb24gYnV0dG9uXHJcbkBtaXhpbiBidXR0b24tY2xvc2UoKSB7XHJcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS1pY29uKTtcclxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS1pY29uKTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ljb24vY2xvc2Uuc3ZnKTtcclxufVxyXG5cclxuLy8gYmFja2dyb3VuZC1pY29uXHJcbkBtaXhpbiBiYWNrZ3JvdW5kLWljb24oJHNpemU6IHZhcigtLXNpemUtaWNvbikpIHtcclxuICAgIHdpZHRoOiAkc2l6ZTtcclxuICAgIGhlaWdodDogJHNpemU7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAkc2l6ZTtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLy8gYnV0dG9uIGFjdGl2ZVxyXG5AbWl4aW4gYnV0dG9uLWFjdGl2ZSgpIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQtYWN0aXZlKTtcclxufVxyXG5cclxuLy8gdHJhbnNpdGlvbi1kdXJhdGlvblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigpIHtcclxuICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xyXG59XHJcblxyXG4vLyB0ZXh0XHJcbkBtaXhpbiB0ZXh0KCRmb250LXNpemU6IDEuNnJlbSwgJGZvbnQtd2VpZ2h0OiA0MDAsICRjb2xvcjogdmFyKC0tY29sb3ItdGV4dCkpIHtcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XHJcbiAgICBjb2xvcjogJGNvbG9yO1xyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgY29tbW9uL3Jvb3Rcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbjpyb290IHtcclxuICAgIC8vIGZvbnRcclxuICAgIC0tZm9udC1zaXplOiA2Mi41JTtcclxuICAgIC0tZm9udC1iYXNlOiBcIlByZXRlbmRhcmRcIjtcclxuICAgIC0tZm9udC1iYXNlLXNpemU6IDEuNnJlbTtcclxuXHJcbiAgICAvLyBjb2xvclxyXG4gICAgLS1jb2xvci1ncmF5LTEwMDogI2YzZjNmNTtcclxuICAgIC0tY29sb3ItZ3JheS0yMDA6ICNlYmViZWQ7XHJcbiAgICAtLWNvbG9yLWdyYXktMzAwOiAjZGNkY2RlO1xyXG4gICAgLS1jb2xvci1ncmF5LTQwMDogI2I4YjhiYjtcclxuICAgIC0tY29sb3ItZ3JheS01MDA6ICM5OTk5OWI7XHJcbiAgICAtLWNvbG9yLWdyYXktNjAwOiAjNzA3MDcyO1xyXG4gICAgLS1jb2xvci1ncmF5LTcwMDogIzYxNjE2MTtcclxuICAgIC0tY29sb3ItZ3JheS04MDA6ICMzZTNlNDA7XHJcbiAgICAtLWNvbG9yLWdyYXktOTAwOiAjMWQxZDFmO1xyXG5cclxuICAgIC8vIHRleHRcclxuICAgIC0tY29sb3ItdGV4dDogIzIyMjtcclxuICAgIC0tY29sb3ItdGV4dC1saWdodDogIzY2NjtcclxuXHJcbiAgICAvLyBib3JkZXJcclxuICAgIC0tY29sb3ItYm9yZGVyOiAjZTBlMGUwO1xyXG4gICAgLS1jb2xvci1ib3JkZXItbGlnaHQ6ICNlZGVkZWQ7XHJcblxyXG4gICAgLy8gYmFja2dyb3VuZFxyXG4gICAgLS1jb2xvci1iYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXG4gICAgLS1jb2xvci1iYWNrZ3JvdW5kLWNvbnRyYXN0OiAwLCAwLCAwO1xyXG4gICAgLS1jb2xvci1iYWNrZ3JvdW5kLWdyYXk6ICNmOWY5Zjk7XHJcblxyXG4gICAgLy8gaWNvblxyXG4gICAgLS1jb2xvci1pY29uOiAjOTk5OTliO1xyXG4gICAgLS1zaXplLWljb246IDIuNHJlbTtcclxuICAgIC0tc2l6ZS1pY29uLXNtYWxsOiAycmVtO1xyXG4gICAgLS1zaXplLWljb24teHNtYWxsOiAxLjZyZW07XHJcblxyXG4gICAgLy8gei1pbmRleFxyXG4gICAgLS16LWluZGV4LWxvYWRpbmc6IDEwMDtcclxuICAgIC0tei1pbmRleC1wb3BvdmVyOiA5OTtcclxuICAgIC0tei1pbmRleC1tb2RhbDogOTg7XHJcbiAgICAtLXotaW5kZXgtc25iOiA5NztcclxuICAgIC0tei1pbmRleC1oZWFkZXI6IDk2O1xyXG5cclxuICAgIC8vIHRyYW5zaXRpb25cclxuICAgIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcclxuXHJcbiAgICAvLyBibHVyXHJcbiAgICAtLWJsdXItYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xyXG4gICAgLS1ibHVyLXNoYWRvdzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xyXG5cclxuICAgIC8vIOuxg+yngFxyXG4gICAgLS1iYWRnZS1ncmVlbjogIzE5ODc1NDtcclxuICAgIC0tYmFkZ2UtZ3JlZW4tYmFja2dyb3VuZDogI2QxZjdkNjtcclxuICAgIC0tYmFkZ2UtZ3JlZW4tYm9yZGVyOiAjYjJlOWI5O1xyXG5cclxuICAgIC0tYmFkZ2UtcmVkOiAjYzgyMzMzO1xyXG4gICAgLS1iYWRnZS1yZWQtYmFja2dyb3VuZDogI2ZjZWJlYTtcclxuICAgIC0tYmFkZ2UtcmVkLWJvcmRlcjogI2U5ZDBjZjtcclxuXHJcbiAgICAtLWJhZGdlLWJsdWU6ICMwZDZlZmQ7XHJcbiAgICAtLWJhZGdlLWJsdWUtYmFja2dyb3VuZDogI2U3ZjFmYztcclxuICAgIC0tYmFkZ2UtYmx1ZS1ib3JkZXI6ICNkMGRmZjA7XHJcblxyXG4gICAgLS1iYWRnZS15ZWxsb3c6ICM4NTY0MDQ7XHJcbiAgICAtLWJhZGdlLXllbGxvdy1iYWNrZ3JvdW5kOiAjZmZmM2NkO1xyXG5cclxuICAgIC0tYmFkZ2UtZGFya3JlZDogIzcyMWMyNDtcclxuICAgIC0tYmFkZ2UtZGFya3JlZC1iYWNrZ3JvdW5kOiAjZjhkN2RhO1xyXG5cclxuICAgIC0tYmFkZ2UtcHVycGxlOiAjNmY0MmMxO1xyXG4gICAgLS1iYWRnZS1wdXJwbGUtYmFja2dyb3VuZDogI2YyZThmYjtcclxuXHJcbiAgICAtLWJhZGdlLWN5YW46ICMwZGNhZjA7XHJcbiAgICAtLWJhZGdlLWN5YW4tYmFja2dyb3VuZDogI2UwZjdmYjtcclxuXHJcbiAgICAtLWJhZGdlLXRlYWw6ICMyMGM5OTc7XHJcbiAgICAtLWJhZGdlLXRlYWwtYmFja2dyb3VuZDogI2UwZjlmMztcclxuXHJcbiAgICAtLWJhZGdlLW9yYW5nZTogI2ZkN2UxNDtcclxuICAgIC0tYmFkZ2Utb3JhbmdlLWJhY2tncm91bmQ6ICNmZmYwZTU7XHJcblxyXG4gICAgLS1iYWRnZS1icm93bjogIzc5NTU0ODtcclxuICAgIC0tYmFkZ2UtYnJvd24tYmFja2dyb3VuZDogI2YxZTdlMztcclxuXHJcbiAgICAtLWJhZGdlLWluZGlnbzogIzY2MTBmMjtcclxuICAgIC0tYmFkZ2UtaW5kaWdvLWJhY2tncm91bmQ6ICNlZGU3ZmI7XHJcblxyXG4gICAgLS1iYWRnZS1waW5rOiAjZDYzMzg0O1xyXG4gICAgLS1iYWRnZS1waW5rLWJhY2tncm91bmQ6ICNmZGU3ZjE7XHJcblxyXG4gICAgLS1iYWRnZS1wb3NpdGl2ZTogIzA2NWY0NjtcclxuICAgIC0tYmFkZ2UtcG9zaXRpdmUtYmFja2dyb3VuZDogI2QxZmFlNTtcclxuXHJcbiAgICAtLWJhZGdlLW5lZ2F0aXZlOiAjOTkxYjFiO1xyXG4gICAgLS1iYWRnZS1uZWdhdGl2ZS1iYWNrZ3JvdW5kOiAjZmVlMmUyO1xyXG5cclxuICAgIC0tYmFkZ2Utd2FybmluZzogIzkyNDAwZTtcclxuICAgIC0tYmFkZ2Utd2FybmluZy1iYWNrZ3JvdW5kOiAjZmVmM2M3O1xyXG5cclxuICAgIC0tYmFkZ2UtaW5mbzogIzFlNDBhZjtcclxuICAgIC0tYmFkZ2UtaW5mby1iYWNrZ3JvdW5kOiAjZGJlYWZlO1xyXG5cclxuICAgIC0tYmFkZ2UtbmV1dHJhbDogIzM3NDE1MTtcclxuICAgIC0tYmFkZ2UtbmV1dHJhbC1iYWNrZ3JvdW5kOiAjZTVlN2ViO1xyXG5cclxuICAgIEBpbmNsdWRlIG1xLW1vYmlsZSgpIHtcclxuICAgICAgICAtLWZvbnQtc2l6ZTogNTAlO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgY29tbW9uL2ljb25cclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcblxyXG4vLyBodHRwczovL2pha2VhcmNoaWJhbGQuZ2l0aHViLmlvL3N2Z29tZ1xyXG4vLyBodHRwczovL3lva3NlbC5naXRodWIuaW8vdXJsLWVuY29kZXJcclxuLy8gaHR0cHM6Ly9jb2RlcGVuLmlvL3Nvc3VrZS9wZW4vUGpvcXFwXHJcblxyXG4kY29sb3ItaWNvbjogNjA2MDYwO1xyXG4kY29sb3ItaWNvbi1saWdodDogOTA5MDkwO1xyXG5cclxuJGNvbG9yLXByaW1hcnk6IDM2NzdmMTtcclxuJGNvbG9yLXByaW1hcnktY29udHJhc3Q6IEZGRkZGRjtcclxuXHJcbiRjb2xvci10ZXh0OiAxMTExMTE7XHJcbiRjb2xvci13aGl0ZTogZmZmZmZmO1xyXG4kY29sb3Itc3ViLTI6IDc2NzY3NjtcclxuXHJcbkBmdW5jdGlvbiBpY29uKCRpY29uTmFtZSwgJGljb25Db2xvcjogJGNvbG9yLWljb24pIHtcclxuICAgICRpY29uTGlzdDogKFxyXG4gICAgICAgIGNoZWNrOlxyXG4gICAgICAgICAgICBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZSclM0UlM0NwYXRoIGZpbGw9JyUyMyN7JGljb25Db2xvcn0nIGQ9J205LjU1IDE1LjE1IDguNDc1LTguNDc1Yy4yLS4yLjQzMy0uMy43LS4zLjI2NyAwIC41LjEuNy4zLjIuMi4zLjQzOC4zLjcxM2EuOTcuOTcgMCAwIDEtLjMuNzEybC05LjE3NSA5LjJjLS4yLjItLjQzMy4zLS43LjNhLjk2Ljk2IDAgMCAxLS43LS4zTDQuNTUgMTNhLjkzMi45MzIgMCAwIDEtLjI4OC0uNzEyYy4wMDgtLjI3NS4xMTItLjUxMi4zMTMtLjcxMy4yLS4yLjQzOC0uMy43MTMtLjMuMjc1IDAgLjUxMi4xLjcxMi4zbDMuNTUgMy41NzVaJy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgZGF0ZTpcclxuICAgICAgICAgICAgXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnJTNFJTNDZyBjbGlwLXBhdGg9J3VybCglMjNhKSclM0UlM0NwYXRoIGZpbGw9JyUyMyN7JGljb25Db2xvcn0nIGQ9J002LjgwOCAwYS44NC44NCAwIDAgMSAuODQuODR2MS41N2g5LjAyVi44NWEuODQuODQgMCAwIDEgMS42OCAwdjEuNTZIMjEuNmEyLjQgMi40IDAgMCAxIDIuNCAyLjRWMjEuNkEyLjQgMi40IDAgMCAxIDIxLjYgMjRIMi40QTIuNCAyLjQgMCAwIDEgMCAyMS42MDFWNC44MWEyLjQgMi40IDAgMCAxIDIuNC0yLjRoMy41NjhWLjg0QS44NC44NCAwIDAgMSA2LjgwOCAwWk0xLjY4IDkuMjl2MTIuMzExYS43Mi43MiAwIDAgMCAuNzIuNzJoMTkuMmEuNzIuNzIgMCAwIDAgLjcyLS43MlY5LjMwN0wxLjY4IDkuMjlaTTggMTcuNTQzdjEuOTk5SDZ2LTJoMlptNSAwdjEuOTk5aC0ydi0yaDJabTUgMHYxLjk5OWgtMnYtMmgyWk04IDEyLjc3djJINnYtMmgyWm01IDB2MmgtMnYtMmgyWm01IDB2MmgtMnYtMmgyWk01Ljk2OCA0LjA5SDIuNGEuNzIuNzIgMCAwIDAtLjcyLjcydjIuODAybDIwLjY0LjAxNlY0LjgxYS43Mi43MiAwIDAgMC0uNzItLjcyaC0zLjI1MnYxLjExNGEuODQuODQgMCAwIDEtMS42OCAwVjQuMDloLTkuMDJ2MS4xMDRhLjg0Ljg0IDAgMCAxLTEuNjggMFY0LjA5WicvJTNFJTNDL2clM0UlM0NkZWZzJTNFJTNDY2xpcFBhdGggaWQ9J2EnJTNFJTNDcGF0aCBmaWxsPSclMjNmZmYnIGQ9J00wIDBoMjR2MjRIMHonLyUzRSUzQy9jbGlwUGF0aCUzRSUzQy9kZWZzJTNFJTNDL3N2ZyUzRVwiLFxyXG4gICAgICAgIGNoZXZyb24tdXA6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggZmlsbD0nJTIzI3skaWNvbkNvbG9yfScgZD0nbTEyIDEwLjgtMy45IDMuOWEuOTQ4Ljk0OCAwIDAgMS0uNy4yNzUuOTQ4Ljk0OCAwIDAgMS0uNy0uMjc1Ljk0OC45NDggMCAwIDEtLjI3NS0uN2MwLS4yODMuMDkyLS41MTcuMjc1LS43bDQuNi00LjZjLjItLjIuNDMzLS4zLjctLjMuMjY3IDAgLjUuMS43LjNsNC42IDQuNmEuOTQ4Ljk0OCAwIDAgMSAuMjc1LjcuOTQ4Ljk0OCAwIDAgMS0uMjc1LjcuOTQ4Ljk0OCAwIDAgMS0uNy4yNzUuOTQ4Ljk0OCAwIDAgMS0uNy0uMjc1TDEyIDEwLjhaJy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgY2hldnJvbi1kb3duOlxyXG4gICAgICAgICAgICBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZSclM0UlM0NwYXRoIHN0cm9rZT0nJTIzI3skaWNvbkNvbG9yfScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzInIGQ9J203IDEwIDUgNSA1LTUnLyUzRSUzQy9zdmclM0VcIixcclxuICAgICAgICBjaGV2cm9uLWxlZnQ6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggZmlsbD0nJTIzI3skaWNvbkNvbG9yfScgZD0nTTE0LjcxIDE1Ljg4IDEwLjgzIDEybDMuODgtMy44OGEuOTk3Ljk5NyAwIDEgMC0xLjQxLTEuNDFMOC43MSAxMS4zYS45OTYuOTk2IDAgMCAwIDAgMS40MWw0LjU5IDQuNTljLjM5LjM5IDEuMDIuMzkgMS40MSAwIC4zOC0uMzkuMzktMS4wMyAwLTEuNDJaJy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgY2hldnJvbi1yaWdodDpcclxuICAgICAgICAgICAgXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBmaWxsPSclMjMjeyRpY29uQ29sb3J9JyBkPSdNOS4yOSAxNS44OCAxMy4xNyAxMiA5LjI5IDguMTJhLjk5Ny45OTcgMCAwIDEgMS40MS0xLjQxbDQuNTkgNC41OWMuMzkuMzkuMzkgMS4wMiAwIDEuNDFMMTAuNyAxNy4zYS45OTQuOTk0IDAgMCAxLTEuNDEgMGMtLjM4LS4zOS0uMzktMS4wMyAwLTEuNDJaJy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgYXJyb3ctdXA6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggc3Ryb2tlPSclMjMjeyRpY29uQ29sb3J9JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nTTEyIDIwVjRtMCAwIDYgNm0tNi02LTYgNicvJTNFJTNDL3N2ZyUzRVwiLFxyXG4gICAgICAgIGFycm93LWxlZnQ6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzQ4JyBoZWlnaHQ9JzQ4JyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgNDggNDgnJTNFJTNDcGF0aCBzdHJva2U9JyUyMyN7JGljb25Db2xvcn0nIHN0cm9rZS13aWR0aD0nMicgZD0nbTIxIDE3LTcgNyA3IDdNMTQgMjRoMjEnLyUzRSUzQy9zdmclM0VcIixcclxuICAgICAgICBhcnJvdy1yaWdodDpcclxuICAgICAgICAgICAgXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNDgnIGhlaWdodD0nNDgnIGZpbGw9J25vbmUnIHZpZXdCb3g9JzAgMCA0OCA0OCclM0UlM0NwYXRoIHN0cm9rZT0nJTIzI3skaWNvbkNvbG9yfScgc3Ryb2tlLXdpZHRoPScyJyBkPSdtMjcgMzEgNy03LTctN00zNCAyNEgxMycvJTNFJTNDL3N2ZyUzRVwiLFxyXG4gICAgICAgIGNhcmV0LWRvd246XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMTIgMTInJTNFJTNDcGF0aCBmaWxsPSclMjMjeyRpY29uQ29sb3J9JyBkPSdNNiA5IDMgNWg2eicvJTNFJTNDL3N2ZyUzRVwiLFxyXG4gICAgICAgIGNhcmV0LXVwOlxyXG4gICAgICAgICAgICBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PScxMicgZmlsbD0nbm9uZScgdmlld0JveD0nMCAwIDEyIDEyJyUzRSUzQ3BhdGggZmlsbD0nJTIzI3skaWNvbkNvbG9yfScgZD0nTTYgMyA5IDdIM3onLyUzRSUzQy9zdmclM0VcIixcclxuICAgICAgICBwYWdpbmF0aW9uLWZpcnN0OlxyXG4gICAgICAgICAgICBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZScgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggc3Ryb2tlPSclMjMjeyRpY29uQ29sb3J9JyBzdHJva2UtbGluZWNhcD0nc3F1YXJlJyBkPSdtMTIgOC0zLjUgNCAzLjUgNE0xNS41IDggMTIgMTJsMy41IDQnLyUzRSUzQy9zdmclM0VcIixcclxuICAgICAgICBwYWdpbmF0aW9uLXByZXY6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMjQgMjQnJTNFJTNDcGF0aCBzdHJva2U9JyUyMyN7JGljb25Db2xvcn0nIHN0cm9rZS1saW5lY2FwPSdzcXVhcmUnIGQ9J20xMyA4LTMuNSA0IDMuNSA0Jy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgcGFnaW5hdGlvbi1uZXh0OlxyXG4gICAgICAgICAgICBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZScgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggc3Ryb2tlPSclMjMjeyRpY29uQ29sb3J9JyBzdHJva2UtbGluZWNhcD0nc3F1YXJlJyBkPSdtMTEgOCAzLjUgNC0zLjUgNCcvJTNFJTNDL3N2ZyUzRVwiLFxyXG4gICAgICAgIHBhZ2luYXRpb24tbGFzdDpcclxuICAgICAgICAgICAgXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnIHZpZXdCb3g9JzAgMCAyNCAyNCclM0UlM0NwYXRoIHN0cm9rZT0nJTIzI3skaWNvbkNvbG9yfScgc3Ryb2tlLWxpbmVjYXA9J3NxdWFyZScgZD0nbTEyIDggMy41IDQtMy41IDRNOC41IDhsMy41IDQtMy41IDQnLyUzRSUzQy9zdmclM0VcIixcclxuICAgICAgICBlZGl0OlxyXG4gICAgICAgICAgICBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZScgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggc3Ryb2tlPSclMjMjeyRpY29uQ29sb3J9JyBzdHJva2Utd2lkdGg9JzInIGQ9J20xNi4yOSA2Ljk3Ni04LjE4MyA4LjE4My0yLjk0My4xMTQuMTE0LTIuOTQzIDguMTgzLTguMTgyeicvJTNFJTNDcGF0aCBmaWxsPSclMjMjeyRpY29uQ29sb3J9JyBkPSdNNCAxOGgxNnYySDR6Jy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgY2xvc2U6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNFJTNDcGF0aCBzdHJva2U9JyUyMyN7JGljb25Db2xvcn0nIHN0cm9rZS13aWR0aD0nMicgZD0nbTQgNCAxMiAxMk0xNiA0IDQgMTYnLyUzRSUzQy9zdmclM0VcIixcclxuICAgICAgICBsYXVuY2g6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSclMjMjeyRpY29uQ29sb3J9JyB2aWV3Qm94PScwIDAgMjQgMjQnJTNFJTNDcGF0aCBkPSdNMTggMTlINmMtLjU1IDAtMS0uNDUtMS0xVjZjMC0uNTUuNDUtMSAxLTFoNWMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMUg1YTIgMiAwIDAgMC0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtNmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY1YzAgLjU1LS40NSAxLTEgMU0xNCA0YzAgLjU1LjQ1IDEgMSAxaDIuNTlsLTkuMTMgOS4xM2EuOTk3Ljk5NyAwIDAgMCAxLjQxIDEuNDFMMTkgNi40MVY5YzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMVYzaC02Yy0uNTUgMC0xIC40NS0xIDEnLyUzRSUzQy9zdmclM0VcIixcclxuICAgICk7XHJcblxyXG4gICAgJGljb246IG1hcC1nZXQoJGljb25MaXN0LCAkaWNvbk5hbWUpO1xyXG5cclxuICAgIEByZXR1cm4gdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwjeyRpY29ufVwiKTtcclxufVxyXG5cclxuLmljb24ge1xyXG4gICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICBtaW4td2lkdGg6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICBtaW4taGVpZ2h0OiB2YXIoLS1zaXplLWljb24pO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWljb24pO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgLypcclxuICAgICAqIGRlZmF1bHQgMi40XHJcbiAgICAgKiBzbWFsbCAyXHJcbiAgICAgKiB4c21hbGwgMS42XHJcbiAgICAgKiB4eHNtYWxsIDEuMlxyXG4gICAgKi9cclxuXHJcbiAgICAmLmljb24tc21hbGwge1xyXG4gICAgICAgIHdpZHRoOiAycmVtO1xyXG4gICAgICAgIG1pbi13aWR0aDogMnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDJyZW07XHJcbiAgICAgICAgbWluLWhlaWdodDogMnJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmLmljb24teHNtYWxsIHtcclxuICAgICAgICB3aWR0aDogMS42cmVtO1xyXG4gICAgICAgIG1pbi13aWR0aDogMS42cmVtO1xyXG4gICAgICAgIGhlaWdodDogMS42cmVtO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuNnJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmLmljb24teHhzbWFsbCB7XHJcbiAgICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgICBtaW4td2lkdGg6IDEuMnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcclxuICAgICAgICBtaW4taGVpZ2h0OiAxLjJyZW07XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBjb21tb24vY29tbW9uXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4ua2V5LXZhbHVlLWl0ZW0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGdhcDogMCB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gICAgJi5hY2NlbnQge1xyXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItMik7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMS4ycmVtO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxLjJyZW07XHJcblxyXG4gICAgICAgIC5rZXkge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudmFsdWUge1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmFjY2VudCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAua2V5IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zdWItMik7XHJcbiAgICB9XHJcblxyXG4gICAgLnZhbHVlIHtcclxuICAgIH1cclxuXHJcbiAgICAuYWNjZW50IHtcclxuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZXBhcmF0b3Ige1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXN1Yi0yKTtcclxuICAgIH1cclxufVxyXG5cclxuLmxpbmUtY2xhbXAge1xyXG4gICAgQGluY2x1ZGUgbGluZS1jbGFtcCgpO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAmLnNob3cge1xyXG4gICAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgICYubGluZS0yIHtcclxuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5yYXRpby1pbWcge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAmLnJhdGlvLTMtNCB7XHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTMzLjMzJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdG9hc3Rcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi50b2FzdC1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgYm90dG9tOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgtbG9hZGluZyk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcblxyXG4gICAgLnRvYXN0IHtcclxuICAgICAgICAvLyBtYXgtd2lkdGg6IDMycmVtO1xyXG4gICAgICAgIHdpZHRoOiAxMDB2dztcclxuICAgICAgICBtYXgtd2lkdGg6IDUycmVtO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tc2l6ZS1pY29uKSArIHZhcigtLWdhcC1sYXlvdXQpICsgdmFyKC0tZ2FwLWxheW91dCkpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGNvbG9yOiAjMDAwMDAwLCAkYWxwaGE6IDAuNyk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coKTtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MnJlbTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoJGNvbG9yOiAjMDAwMDAwLCAkYWxwaGE6IDAuNSk7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMycmVtKTtcclxuICAgICAgICAvLyBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG5cclxuICAgICAgICAvKlxyXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgKi9cclxuXHJcbiAgICAgICAgLnRvYXN0LWljb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1zaXplLWljb24pKTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNpemUtaWNvbikpO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tZ2FwLWxheW91dCkgKiAxLjUpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjE0MVwiKTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRvYXN0LXRpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1zaXplLWljb24pICsgY2FsYyh2YXIoLS1nYXAtbGF5b3V0KSAqIDEuNSkpO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRvYXN0LXN1Yi10aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tc2l6ZS1pY29uKSArIGNhbGModmFyKC0tZ2FwLWxheW91dCkgKiAxLjUpKTtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuaW5mbyB7XHJcbiAgICAgICAgICAgIC50b2FzdC1pY29uIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWluZm8pO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjEyOVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc3VjY2VzcyB7XHJcbiAgICAgICAgICAgIC50b2FzdC1pY29uIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYud2FybmluZyB7XHJcbiAgICAgICAgICAgIC50b2FzdC1pY29uIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdhcm5pbmcpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjEyYVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuZXJyb3Ige1xyXG4gICAgICAgICAgICAudG9hc3QtaWNvbiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5oaWRkZW4ge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMycmVtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICB1c2VyXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG5AaW1wb3J0IFwiLi9jb21tb25cIjtcclxuQGltcG9ydCBcIi4vbGF5b3V0XCI7XHJcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHNcIjtcclxuQGltcG9ydCBcIi4vcGFnZXNcIjtcclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICB1c2VyL2NvbW1vblxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuQGltcG9ydCBcIi4vcm9vdFwiO1xyXG5AaW1wb3J0IFwiLi9jb21tb25cIjtcclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBhZG1pbi9jb21tb24vcm9vdFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuOnJvb3Qge1xyXG4gICAgLy8gZm9udFxyXG4gICAgLS1mb250LWlucHV0LXNpemU6IDEuNHJlbTtcclxuXHJcbiAgICAvLyBjb2xvclxyXG4gICAgLS1jb2xvci1wcmltYXJ5OiAjMzVkODZmO1xyXG4gICAgLS1jb2xvci1wcmltYXJ5LXJnYjogNTMsIDIxNiwgMTExO1xyXG4gICAgLS1jb2xvci1wcmltYXJ5LWhvdmVyOiAjMjVjNDVjO1xyXG4gICAgLS1jb2xvci1wcmltYXJ5LWFjdGl2ZTogIzFmYTk0ZTtcclxuICAgIC0tY29sb3ItcHJpbWFyeS1saWdodDogI2YwZmZmNTtcclxuICAgIC0tY29sb3ItcHJpbWFyeS1saWdodC1hY3RpdmU6ICNkY2ZiZTc7XHJcbiAgICAtLWNvbG9yLXByaW1hcnktc3ViOiAjMTExODI3O1xyXG4gICAgLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0OiAjZmZmZmZmO1xyXG5cclxuICAgIC8vIHRleHRcclxuICAgIC0tY29sb3ItdGV4dDogIzFlMWQxYztcclxuICAgIC0tY29sb3ItdGV4dC1kYXJrOiAjNWQ1YzViO1xyXG4gICAgLS1jb2xvci10ZXh0LWxpZ2h0OiAjNzE3MDZmO1xyXG4gICAgLS1jb2xvci10ZXh0LXdoaXRlOiAjZmZmZmZmO1xyXG5cclxuICAgIC0tY29sb3ItdGV4dC1zdWItMTogIzVkNWM1YjtcclxuICAgIC0tY29sb3ItdGV4dC1zdWItMjogIzcxNzA2ZjtcclxuICAgIC0tY29sb3ItdGV4dC1zdWItMzogIzlhOTk5NztcclxuXHJcbiAgICAvLyBib3JkZXJcclxuICAgIC0tY29sb3ItYm9yZGVyOiAjZGRkY2RhO1xyXG4gICAgLS1jb2xvci1ib3JkZXItbGlnaHQ6ICNlY2ViZTk7XHJcblxyXG4gICAgLS1jb2xvci1ib3JkZXItMjogI2VjZWJlOTtcclxuXHJcbiAgICAvLyBiYWNrZ3JvdW5kXHJcbiAgICAtLWNvbG9yLWJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQ6ICNmOWY5Zjk7XHJcbiAgICAtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3Q6IDAsIDAsIDA7XHJcblxyXG4gICAgLy8gei1pbmRleFxyXG4gICAgLS16LWluZGV4LWxvYWRpbmc6IDEwMDtcclxuICAgIC0tei1pbmRleC1wb3BvdmVyOiA5OTtcclxuICAgIC0tei1pbmRleC1tb2RhbDogOTg7XHJcbiAgICAtLXotaW5kZXgtc25iOiA5NztcclxuICAgIC0tei1pbmRleC1oZWFkZXI6IDk2O1xyXG4gICAgLS16LWluZGV4LXBhbmVsOiA5NTtcclxuXHJcbiAgICAvLyBsb2dvXHJcbiAgICAtLXNpemUtbG9nby1oZWlnaHQ6IDIuOXJlbTtcclxuXHJcbiAgICAvLyBpY29uXHJcbiAgICAtLWNvbG9yLWljb246ICM5OTk5OWI7XHJcblxyXG4gICAgLy8gaGVhZGVyXHJcbiAgICAtLWNvbG9yLWhlYWRlci1iYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXG4gICAgLS1zaXplLWhlYWRlci1oZWlnaHQ6IDguMnJlbTtcclxuXHJcbiAgICAvLyBzbmJcclxuICAgIC0tY29sb3Itc25iLWJvcmRlcjogI2UwZTBlMDtcclxuICAgIC0tY29sb3Itc25iLWJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbiAgICAtLXNpemUtc25iLXdpZHRoOiAyN3JlbTtcclxuICAgIC0tc2l6ZS1zbmItY29sbGFwc2VkLXdpZHRoOiA4cmVtO1xyXG5cclxuICAgIC8vIHRyYW5zaXRpb25cclxuICAgIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcclxuXHJcbiAgICAvLyBnYXBcclxuICAgIC0tZ2FwLW1haW46IDIuNHJlbTtcclxuICAgIC0tZ2FwLWxheW91dDogMnJlbTtcclxuICAgIC0tZ2FwLWZvcm06IDEuMnJlbTtcclxuICAgIC0tZ2FwLWNvbXBvbmVudDogMC44cmVtO1xyXG5cclxuICAgIC8vIHJhZGl1c1xyXG4gICAgLS1yYWRpdXM6IDAuNnJlbTtcclxuICAgIC0tcmFkaXVzLXNuYjogMC42cmVtO1xyXG4gICAgLS1yYWRpdXMtY2FyZDogMS4ycmVtO1xyXG4gICAgLS1yYWRpdXMtaW5wdXQ6IDAuNnJlbTtcclxuICAgIC0tcmFkaXVzLW1vZGFsOiAwLjZyZW07XHJcblxyXG4gICAgLy8gaW5wdXRcclxuICAgIC0tc2l6ZS1pbnB1dDogNC42cmVtO1xyXG4gICAgLS1jb2xvci1pbnB1dC1iYWNrZ3JvdW5kOiAjZmFmYWZhO1xyXG4gICAgLS1jb2xvci1pbnB1dC1yZWFkb25seS1iYWNrZ3JvdW5kOiAjZjlmOWY5O1xyXG5cclxuICAgIC8vIGV4Y2VsXHJcbiAgICAtLWNvbG9yLWV4Y2VsOiAjMWQ2ZjQyO1xyXG4gICAgLS1jb2xvci1leGNlbC1iYWNrZ3JvdW5kOiAjZjBmZmY2O1xyXG4gICAgLS1jb2xvci1leGNlbC1hY3RpdmUtYmFja2dyb3VuZDogI2U0ZmZlZjtcclxuXHJcbiAgICAvLyBwYW5lbFxyXG4gICAgLS1zaXplLXBhbmVsOiAzNnJlbTtcclxuXHJcbiAgICAvLyBsYXlvdXRcclxuICAgIC0tc2l6ZS1sYXlvdXQtd2lkdGg6IDEyMHJlbTtcclxuXHJcbiAgICAvLyBjb2xvcnNcclxuICAgIC0tY29sb3Itd2hpdGU6ICNmZmZmZmY7XHJcbiAgICAtLWNvbG9yLWluZm86ICMwMDY3Zjg7XHJcbiAgICAtLWNvbG9yLXN1Y2Nlc3M6ICMxOGQ2NTE7XHJcbiAgICAtLWNvbG9yLXdhcm5pbmc6ICNlOWQ2MmQ7XHJcbiAgICAtLWNvbG9yLWVycm9yOiAjZTkzZjFkO1xyXG5cclxuICAgIC8vIGJnIGNvbG9yc1xyXG4gICAgLS1jb2xvci1zdWNjZXNzLWJhY2tncm91bmQ6ICNlNGY2ZWE7XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICB1c2VyL2NvbW1vbi9jb21tb25cclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbmJvZHkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZDtcclxufVxyXG5cclxuLmxvZ28ge1xyXG4gICAgLmxvZ28taW1nIHtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtbG9nby1oZWlnaHQpO1xyXG4gICAgfVxyXG59XHJcblxyXG4ucmVzdWx0LWJveCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogMS4ycmVtO1xyXG4gICAgcGFkZGluZzogMi40cmVtIDEuNnJlbTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAmLmJvcmRlciB7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItMik7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWNhcmQpO1xyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgICAgd2lkdGg6IDYuNHJlbTtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIH1cclxuXHJcbiAgICBoMiB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDYwMCwgdmFyKC0tY29sb3ItdGV4dCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHAge1xyXG4gICAgICAgIEBpbmNsdWRlIHRleHQoMS40cmVtLCA1MDAsIHZhcigtLWNvbG9yLXRleHQtZGFyaykpO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaWNvbiB7XHJcbiAgICAmLmdpZnQtaW1nIHtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAuMnJlbSAxcmVtIHJnYmEoMCwgMCwgMCwgMC4xNSk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uY29sb3ItcHJpbWFyeS1zdWIge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktc3ViKTtcclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHVzZXIvbGF5b3V0XHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG5AaW1wb3J0IFwiLi9oZWFkZXJcIjtcclxuQGltcG9ydCBcIi4vZm9vdGVyXCI7XHJcbkBpbXBvcnQgXCIuL3NuYlwiO1xyXG5AaW1wb3J0IFwiLi9ncmlkXCI7XHJcbkBpbXBvcnQgXCIuL2Vycm9yXCI7XHJcbkBpbXBvcnQgXCIuL3Jlc3VsdFwiO1xyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHVzZXIvbGF5b3V0L2hlYWRlclxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmhlYWRlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS1oZWFkZXItaGVpZ2h0KTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4LWhlYWRlcik7XHJcbiAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1oZWFkZXItYmFja2dyb3VuZCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmMTA7XHJcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgJltkYXRhLXRoZW1lPVwiaGlkZGVuXCJdIHtcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICZbZGF0YS10aGVtZT1cImRhcmtcIl0ge1xyXG4gICAgICAgIC5oZWFkZXItY29udGFpbmVyIHtcclxuICAgICAgICAgICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC13aGl0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJltkYXRhLXRoZW1lPVwibGlnaHRcIl0ge1xyXG4gICAgICAgIC5oZWFkZXItY29udGFpbmVyIHtcclxuICAgICAgICAgICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICYuYnV0dG9uLXByaW1hcnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLWxhcHRvcCgpIHtcclxuICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLXRhYmxldCgpIHtcclxuICAgICAgICAmW2RhdGEtdGhlbWU9XCJkYXJrXCJdIHtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZbZGF0YS10aGVtZT1cImxpZ2h0XCJdIHtcclxuICAgICAgICAgICAgLmhlYWRlci1jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgLmduYi1idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICZbZGF0YS10aGVtZT1cImRlZmF1bHRcIl0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgJltkYXRhLXRoZW1lPVwibGlnaHRcIl0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmhlYWRlci1jb250YWluZXIge1xyXG4gICAgICAgICAgICAuZ25iIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMHJlbTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMGR2aDtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMzByZW07XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXNpemUtaGVhZGVyLWhlaWdodCkgdmFyKC0tZ2FwLWxheW91dCkgdmFyKC0tZ2FwLWxheW91dCkgdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICYuYnV0dG9uLXRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXdoaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICYuYnV0dG9uLXByaW1hcnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICYgfiAuZ25iLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICYgfiAuZ25iLWFjdGl2ZS1sYXllciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmduYi1idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMi40cmVtO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJltkYXRhLXRoZW1lPVwiZGVmYXVsdFwiXSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuZ25iLWFjdGl2ZS1sYXllciB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMGR2aDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMTExMTE5MDtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uaGVhZGVyLWNvbnRhaW5lciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC13aWR0aDogdmFyKC0tc2l6ZS1sYXlvdXQtd2lkdGgpO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHJcbiAgICAuZ25iIHtcclxuICAgICAgICBnYXA6IDEuNnJlbSAyLjRyZW07XHJcblxyXG4gICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICAmLmJ1dHRvbi1wcmltYXJ5IHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQoMS42cmVtLCA1MDAsIHZhcigtLWNvbG9yLXByaW1hcnktY29udHJhc3QpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5idXR0b24tYm9yZGVyIHtcclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5idXR0b24tdGV4dCB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuNnJlbSwgNTAwKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZ25iLWJ1dHRvbixcclxuICAgIC5nbmItYWN0aXZlLWxheWVyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9sYXlvdXQvZm9vdGVyXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uZm9vdGVyIHtcclxuICAgIHBhZGRpbmc6IDZyZW0gMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktc3ViKTtcclxuXHJcbiAgICBAaW5jbHVkZSBtcS1sYXB0b3AoKSB7XHJcbiAgICAgICAgcGFkZGluZzogNnJlbSB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgIH1cclxufVxyXG5cclxuLmZvb3Rlci1jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IHZhcigtLXNpemUtbGF5b3V0LXdpZHRoKTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtc3ViLTIpO1xyXG5cclxuICAgIC5pbmZvIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xyXG5cclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgZ2FwOiAxcmVtIDJyZW07XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgZ2FwOiAwLjVyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGdhcDogMC41cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcInxcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHVzZXIvbGF5b3V0L2dyaWRcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5ncmlkLWNvbnRhaW5lciB7XHJcbiAgICBAaW5jbHVkZSBncmlkKCk7XHJcblxyXG4gICAgLmdyaWQtaXRlbSB7XHJcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMiB7XHJcbiAgICAgICAgICAgICYuZ3JpZC1pdGVtLXJvdy0jeyRpfSB7XHJcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogc3BhbiAjeyRpfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMiB7XHJcbiAgICAgICAgICAgICYuZ3JpZC1pdGVtLWNvbHVtbi0jeyRpfSB7XHJcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAjeyRpfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmNhcmQge1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5zdGlja3kge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgICAgICAgICB0b3A6IGNhbGModmFyKC0tc2l6ZS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWdhcC1sYXlvdXQpKTtcclxuICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIC5ncmlkLWl0ZW0ge1xyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tMSxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTIsXHJcbiAgICAgICAgICAgICYuZ3JpZC1pdGVtLWNvbHVtbi0zLFxyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tNCxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTUge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gNjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTYsXHJcbiAgICAgICAgICAgICYuZ3JpZC1pdGVtLWNvbHVtbi03LFxyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tOCxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTksXHJcbiAgICAgICAgICAgICYuZ3JpZC1pdGVtLWNvbHVtbi0xMCxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTExLFxyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tMTIge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMTI7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTIge1xyXG4gICAgICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLW1vYmlsZS0jeyRpfSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gI3skaX07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICB1c2VyL2xheW91dC9lcnJvclxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmVycm9yLWNvbnRhaW5lciB7XHJcbiAgICBAaW5jbHVkZSBwYXJlbnQoKTtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMGR2aDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIC5lcnJvci1jb2RlIHtcclxuICAgICAgICB3aWR0aDogMjByZW07XHJcbiAgICAgICAgaGVpZ2h0OiAyMHJlbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNnJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICAuZXJyb3ItdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmVycm9yLXRleHQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9sYXlvdXQvcmVzdWx0XHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4ucmVzdWx0LWNvbnRhaW5lciB7XHJcbiAgICBAaW5jbHVkZSBwYXJlbnQoKTtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMGR2aDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3VzZXIvYmcucG5nKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG5cclxuICAgIC5yZXN1bHQtY29kZSB7XHJcbiAgICAgICAgd2lkdGg6IDE2cmVtO1xyXG4gICAgICAgIGhlaWdodDogMTZyZW07XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBmb250LXNpemU6IDZyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXAtbGF5b3V0KSAqIDIpO1xyXG5cclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjEyYVwiKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiA3cmVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnN1Y2Nlc3Mge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXNzLWJhY2tncm91bmQpO1xyXG5cclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMDBjXCIpO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5wcmltYXJ5IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcblxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYwMGNcIik7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5yZXN1bHQtdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcblxyXG4gICAgICAgICYgfiAucmVzdWx0LXRleHQge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWdhcC1sYXlvdXQpIC8gMik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5yZXN1bHQtdGV4dCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgb3BhY2l0eTogMC44O1xyXG5cclxuICAgICAgICAmIH4gLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tZ2FwLWxheW91dCkgKiAyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYgfiAucmVzdWx0LWNhcmQge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWdhcC1sYXlvdXQpICogMik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5yZXN1bHQtY2FyZCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAzNnJlbTtcclxuICAgICAgICBib3JkZXItY29sb3I6ICNmZmY7XHJcbiAgICB9XHJcblxyXG4gICAgLmtleS12YWx1ZS1pdGVtIHtcclxuICAgICAgICAua2V5IHtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC52YWx1ZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlcGFyYXRvciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uLXdoaXRlIHtcclxuICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZjtcclxuXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHVzZXIvY29tcG9uZW50c1xyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuQGltcG9ydCBcIi4vbG9hZGluZ1wiO1xyXG5AaW1wb3J0IFwiLi9zZWN0aW9uXCI7XHJcbkBpbXBvcnQgXCIuL2lucHV0XCI7XHJcbkBpbXBvcnQgXCIuL3NlbGVjdFwiO1xyXG5AaW1wb3J0IFwiLi90ZXh0YXJlYVwiO1xyXG5AaW1wb3J0IFwiLi9idXR0b25cIjtcclxuQGltcG9ydCBcIi4vc3dpdGNoXCI7XHJcbkBpbXBvcnQgXCIuL2NoZWNrYm94XCI7XHJcbkBpbXBvcnQgXCIuL3JhZGlvXCI7XHJcbkBpbXBvcnQgXCIuL2ZsYXRwaWNrclwiO1xyXG5AaW1wb3J0IFwiLi9iYWRnZVwiO1xyXG5AaW1wb3J0IFwiLi9jYXJkXCI7XHJcbkBpbXBvcnQgXCIuL3RhYmxlXCI7XHJcbkBpbXBvcnQgXCIuL2JvYXJkXCI7XHJcbkBpbXBvcnQgXCIuL2Zvcm1cIjtcclxuQGltcG9ydCBcIi4vcGFnaW5hdGlvblwiO1xyXG5AaW1wb3J0IFwiLi9tb2RhbFwiO1xyXG5AaW1wb3J0IFwiLi9wYW5lbFwiO1xyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHVzZXIvY29tcG9uZW50cy9sb2FkaW5nXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4ubG9hZGluZy1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWNvbnRyYXN0KSwgJGFscGhhOiAwLjIpO1xyXG4gICAgei1pbmRleDogdmFyKC0tei1pbmRleC1sb2FkaW5nKTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAmLmhpZGRlbi10aXRsZSB7XHJcbiAgICAgICAgLmxvYWRpbmctdGl0bGUge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmhpZGRlbi1zdWItdGl0bGUge1xyXG4gICAgICAgIC5sb2FkaW5nLXN1Yi10aXRsZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ubG9hZGluZy1zcGlubmVyIHtcclxuICAgIHdpZHRoOiA0cmVtO1xyXG4gICAgaGVpZ2h0OiA0cmVtO1xyXG4gICAgYm9yZGVyOiAwLjRyZW0gc29saWQgdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcbiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHNwaW4ge1xyXG4gICAgMCUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xyXG4gICAgfVxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICAgIH1cclxufVxyXG5cclxuLmxvYWRpbmctdGl0bGUtY29udGFpbmVyIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxufVxyXG5cclxuLmxvYWRpbmctdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG59XHJcblxyXG4ubG9hZGluZy1zdWItdGl0bGUge1xyXG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9jb21wb25lbnRzL3NlY3Rpb25cclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5zZWN0aW9uIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmOmZpcnN0LWNoaWxkOm5vdCgudmlzdWFsLXNlY3Rpb24pIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1zaXplLWhlYWRlci1oZWlnaHQpICsgOXJlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgJiB+IC5zZWN0aW9uIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxM3JlbTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1sYXB0b3AoKSB7XHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpub3QoLnZpc3VhbC1zZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLXNpemUtaGVhZGVyLWhlaWdodCkgKyA0LjVyZW0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJiB+IC5zZWN0aW9uIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogN3JlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWN0aW9uLWhlYWQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWxheW91dCk7XHJcblxyXG4gICAgJiB+IC5zZWN0aW9uLWNvbnRlbnQge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tZ2FwLWxheW91dCkgKiAyKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAgICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2VjdGlvbi10aXRsZS1jb250YWluZXIge1xyXG59XHJcblxyXG4uc2VjdGlvbi1rZXl3b3JkIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAxLjFyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjRyZW07XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDUwMCwgdmFyKC0tY29sb3ItcHJpbWFyeSkpO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDEuMXJlbTtcclxuXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgd2lkdGg6IDAuNHJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAwLjRyZW07XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2VjdGlvbi10aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDIuNHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcblxyXG4gICAgJiB+IC5zZWN0aW9uLXN1Yi10aXRsZSxcclxuICAgICYgfiAudGV4dC1jb250YWluZXIge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgfVxyXG59XHJcblxyXG4uc2VjdGlvbi1zdWItdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxufVxyXG5cclxuLnNlY3Rpb24tdGFiIHtcclxuICAgIEBpbmNsdWRlIHBhcmVudCgpO1xyXG4gICAgQGluY2x1ZGUgc2Nyb2xsYm94KCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZ2FwOiAwLjhyZW07XHJcbiAgICBtYXJnaW4tdG9wOiAzLjJyZW07XHJcblxyXG4gICAgYSxcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zdWItMik7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHBhZGRpbmc6IDAuN3JlbSAycmVtO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIuN3JlbTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1zdWIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXN1Yik7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWN0aW9uLWNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5zZWN0aW9uLWZvcm0ge1xyXG4gICAgbWF4LXdpZHRoOiA1MnJlbTtcclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHVzZXIvY29tcG9uZW50cy9pbnB1dFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmlucHV0IHtcclxuICAgICZbdHlwZT1cInRleHRcIl0sXHJcbiAgICAmW3R5cGU9XCJwYXNzd29yZFwiXSB7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LWlucHV0LXNpemUpO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaW5wdXQpO1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogI2YzZjNmMztcclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWlucHV0LWJhY2tncm91bmQpO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLWZvcm0pO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpyZWFkLW9ubHkge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWlucHV0LXJlYWRvbmx5LWJhY2tncm91bmQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjotd2Via2l0LWF1dG9maWxsLFxyXG4gICAgICAgICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBjYXJldC1jb2xvcjogdmFyKC0tY29sb3ItdGV4dCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMHB4IDEwMDBweCB2YXIoLS1jb2xvci1pbnB1dC1iYWNrZ3JvdW5kKSBpbnNldCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tY29sb3ItdGV4dCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciA5OTk5cyBlYXNlLW91dCAwcyAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjotd2Via2l0LWF1dG9maWxsOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGNhcmV0LWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jb2xvci1pbnB1dC1iYWNrZ3JvdW5kKSBpbnNldCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tY29sb3ItdGV4dCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciA5OTk5cyBlYXNlLW91dCAwcyAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmlucHV0LWdyb3VwIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDQuOHJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWlucHV0LWJhY2tncm91bmQpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMC42cmVtO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBib3JkZXItY29sb3I6ICNmM2YzZjM7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgJjpmb2N1cy13aXRoaW4ge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG5cclxuICAgICAgICAuaW5wdXQge1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZm9jdXMtc2hvdyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmZvY3VzLWhpZGRlbiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbnB1dCB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICBtaW4td2lkdGg6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgICY6aGFzKCsgLmlucHV0LXN1ZmZpeC10ZXh0KSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMnJlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJlt0eXBlPVwidGV4dFwiXSB7XHJcbiAgICAgICAgICAgICYgfiAuaW5wdXQtc3VmZml4IHtcclxuICAgICAgICAgICAgICAgIC5wdy1zaG93IHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmW3R5cGU9XCJwYXNzd29yZFwiXSB7XHJcbiAgICAgICAgICAgICYgfiAuaW5wdXQtc3VmZml4IHtcclxuICAgICAgICAgICAgICAgIC5wdy1oaWRkZW4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LXByZWZpeC10ZXh0LFxyXG4gICAgLmlucHV0LXN1ZmZpeC10ZXh0IHtcclxuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9jdXMtc2hvdyB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9jdXMtaGlkZGVuIHtcclxuICAgIH1cclxuXHJcbiAgICAuaW5wdXQtcHJlZml4IHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNHJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuaW5wdXQtc3VmZml4IHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjRyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LXN1ZmZpeC1idXR0b24ge1xyXG4gICAgICAgIG1pbi13aWR0aDogMTByZW07XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1yYWRpdXMpIHZhcigtLXJhZGl1cykgMDtcclxuICAgICAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgfVxyXG5cclxuICAgIC5pbnB1dC1zdWZmaXgtdGltZXIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNHJlbTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiAwLjRyZW07XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNjAwKTtcclxuICAgIH1cclxufVxyXG5cclxuLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBpbnB1dC9yYW5nZVxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG5cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogNHB4O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItbGlnaHQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xyXG4gICAgICAgIHdpZHRoOiAxNHB4O1xyXG4gICAgICAgIGhlaWdodDogMTRweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtNXB4O1xyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWFjdGl2ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9jb21wb25lbnRzL3NlbGVjdFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLnNlbGVjdCB7XHJcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtaW5wdXQtc2l6ZSk7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtaW5wdXQpO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBib3JkZXItY29sb3I6ICNmM2YzZjM7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItaW5wdXQtYmFja2dyb3VuZCk7XHJcbiAgICBwYWRkaW5nOiAwIGNhbGModmFyKC0tZ2FwLWZvcm0pICsgKHZhcigtLWdhcC1mb3JtKSAvIDIpICsgdmFyKC0tc2l6ZS1pY29uKSkgMCB2YXIoLS1nYXAtZm9ybSk7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tZG93biwgJGNvbG9yLWljb24tbGlnaHQpO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IHZhcigtLWdhcC1mb3JtKTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGV2cm9uLXVwLCAkY29sb3ItaWNvbi1saWdodCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWxlY3QyIHtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtaW5wdXQpO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAuc2VsZWN0aW9uIHtcclxuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24ge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaW5wdXQpO1xyXG4gICAgICAgICAgICAvLyBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWlucHV0LWJhY2tncm91bmQpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWlucHV0KTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLWZvcm0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLWljb24tc21hbGwpO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLWljb24tc21hbGwpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGV2cm9uLWRvd24sICRjb2xvci1pY29uLWxpZ2h0KTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgICAgICAgICByaWdodDogdmFyKC0tZ2FwLWZvcm0pO1xyXG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcblxyXG4gICAgICAgICAgICAgICAgYiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnNlbGVjdDItY29udGFpbmVyLS1mb2N1cyB7XHJcbiAgICAgICAgLnNlbGVjdGlvbiB7XHJcbiAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAvLyBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgLy8gYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLW9wZW4ge1xyXG4gICAgICAgIC5zZWxlY3Rpb24ge1xyXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGV2cm9uLXVwLCAkY29sb3ItaWNvbi1saWdodCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWxlY3QyLWRyb3Bkb3duIHtcclxuICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZ2FwLWZvcm0pO1xyXG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItaW5wdXQtYmFja2dyb3VuZCk7XHJcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG5cclxuICAgIC5zZWxlY3QyLXNlYXJjaCB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1pbnB1dC1zaXplKTtcclxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLWlucHV0KTtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuICAgICAgICAgICAgcGFkZGluZzogMCB2YXIoLS1nYXAtZm9ybSk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ge1xyXG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC1mb3JtKTtcclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1yZXN1bHRzX19tZXNzYWdlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1pbnB1dC1yZWFkb25seS1iYWNrZ3JvdW5kKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tcmFkaXVzLWlucHV0KSB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbnMge1xyXG4gICAgICAgIEBpbmNsdWRlIHNjcm9sbGJveCgpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1pbnB1dCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0tc2VsZWN0ZWQge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1oaWdobGlnaHRlZCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItaW5wdXQtcmVhZG9ubHktYmFja2dyb3VuZCk7XHJcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNlbGVjdDItb3B0aW9uIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAwLjhyZW07XHJcbn1cclxuXHJcbi5zZWxlY3QyLW9wdGlvbiBpbWcge1xyXG4gICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbn1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdC5zZWxlY3QyLWNvbnRhaW5lci0tb3Blbi5zZWxlY3QyLWNvbnRhaW5lci0tYmVsb3cgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdC5zZWxlY3QyLWNvbnRhaW5lci0tb3Blbi5zZWxlY3QyLWNvbnRhaW5lci0tYmVsb3cgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSxcclxuLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIC5zZWxlY3QyLWRyb3Bkb3duLS1iZWxvdyB7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG59XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24tLWJlbG93LFxyXG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24tLWFib3ZlIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi8vIO2VtOuLuSDtlITroZzsoJ3tirggYmFuay1zZWxlY3Qg7JyE7ZWoLCDquLDrs7ggc2VsZWN0MiDsgqzsmqnsi5wg7IiY7KCVIO2VhOyalFxyXG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICBtYXgtaGVpZ2h0OiAzMHJlbSAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZzogMC40cmVtO1xyXG5cclxuICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgd2lkdGg6IDI1JTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLXJlc3VsdHNfX21lc3NhZ2Uge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItb3B0aW9uIHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogNHJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiA0cmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBsaW5lLWNsYW1wKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2VsZWN0Mi1vcHRpb24ge1xyXG4gICAgc3BhbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICB1c2VyL2NvbXBvbmVudHMvdGV4dGFyZWFcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi50ZXh0YXJlYSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItMik7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWZvcm0pO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LWlucHV0LXNpemUpO1xyXG4gICAgcmVzaXplOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIEBpbmNsdWRlIHNjcm9sbGJveCgpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItaW5wdXQtYmFja2dyb3VuZCk7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcblxyXG4gICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgIH1cclxuXHJcbiAgICAmOnJlYWQtb25seSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWlucHV0LXJlYWRvbmx5LWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9jb21wb25lbnRzL2J1dHRvblxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmJ1dHRvbi1ncm91cCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcblxyXG4gICAgJi5oaWRkZW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5nYXAtaGFsZiB7XHJcbiAgICAgICAgZ2FwOiBjYWxjKHZhcigtLWdhcC1jb21wb25lbnQpIC8gMik7XHJcbiAgICB9XHJcblxyXG4gICAgJi5sZWZ0IHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5jZW50ZXIge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYucmlnaHQge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iZXR3ZWVuIHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB9XHJcblxyXG4gICAgJi5ub3dyYXAge1xyXG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gICAgfVxyXG5cclxuICAgICYuZnVsbCB7XHJcbiAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYnV0dG9uIHtcclxuICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtaW5wdXQpO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBnYXA6IDAuNnJlbTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LWlucHV0LXNpemUpO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgJjpkaXNhYmxlZCB7XHJcbiAgICAgICAgY3Vyc29yOiBuby1kcm9wO1xyXG4gICAgICAgIG9wYWNpdHk6IDAuNTtcclxuICAgIH1cclxuXHJcbiAgICBpLFxyXG4gICAgLmljb24ge1xyXG4gICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLWljb24tc21hbGwpO1xyXG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItaWNvbik7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZTtcclxuXHJcbiAgICAgICAgaSxcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQtYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmhpZGRlbiB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJ1dHRvbi1zbWFsbCB7XHJcbiAgICAgICAgbWluLWhlaWdodDogYXV0bztcclxuICAgICAgICBwYWRkaW5nOiAwLjZyZW0gMS4ycmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG5cclxuICAgICAgICBpLFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1zaXplLWljb24teHNtYWxsKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYnV0dG9uLXhzbWFsbCB7XHJcbiAgICAgICAgbWluLWhlaWdodDogYXV0bztcclxuICAgICAgICBwYWRkaW5nOiAwLjRyZW0gMC44cmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgfVxyXG5cclxuICAgICYuYnV0dG9uLWZ1bGwge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICYuYnV0dG9uLWZsZXgge1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgJi5qYy1zdGFydCB7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgfVxyXG5cclxuICAgICYuYnV0dG9uLWxvYWRpbmcge1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAgICAgICAudGV4dCxcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwaW5uZXIoMS42cmVtLCB2YXIoLS1jb2xvci1ib3JkZXIpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tdXRpbCB7XHJcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1zaXplLWZvcm0pO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tcHJpbWFyeSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktY29udHJhc3QpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgIGksXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmJ1dHRvbi1sb2FkaW5nIHtcclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bpbm5lcigxLjZyZW0sIHZhcigtLWNvbG9yLXByaW1hcnktY29udHJhc3QpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ob3Zlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYWN0aXZlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tcHJpbWFyeS1ib3JkZXIge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG5cclxuICAgICAgICBpLFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5idXR0b24tbG9hZGluZyB7XHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwaW5uZXIoMS42cmVtLCB2YXIoLS1jb2xvci1wcmltYXJ5KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tcHJpbWFyeS1saWdodCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XHJcblxyXG4gICAgICAgIGksXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmJ1dHRvbi1sb2FkaW5nIHtcclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bpbm5lcigxLjZyZW0sIHZhcigtLWNvbG9yLXByaW1hcnkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWN0aXZlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodC1hY3RpdmUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmJ1dHRvbi1wcmltYXJ5LWxpZ2h0LWJvcmRlciB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XHJcblxyXG4gICAgICAgIGksXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmJ1dHRvbi1sb2FkaW5nIHtcclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bpbm5lcigxLjZyZW0sIHZhcigtLWNvbG9yLXByaW1hcnkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0LWFjdGl2ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYnV0dG9uLXByaW1hcnktc3ViIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1zdWIpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgIGksXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmJ1dHRvbi1sb2FkaW5nIHtcclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bpbm5lcigxLjZyZW0sIHZhcigtLWNvbG9yLXByaW1hcnktY29udHJhc3QpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ob3Zlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYWN0aXZlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24td2hpdGUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tYmxhY2sge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXdoaXRlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJ1dHRvbi1pY29uIHtcclxuICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1zaXplLWljb24pICsgdmFyKC0tZ2FwLWZvcm0pKTtcclxuICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXNpemUtaWNvbikgKyB2YXIoLS1nYXAtZm9ybSkpO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG5cclxuICAgICAgICBpLFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWN0aXZlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodC1hY3RpdmUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmJ1dHRvbi10ZXh0IHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tZXhjZWwge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1leGNlbCk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1leGNlbCk7XHJcblxyXG4gICAgICAgIGksXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZXhjZWwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5idXR0b24tbG9hZGluZyB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwaW5uZXIoMS42cmVtLCB2YXIoLS1jb2xvci1leGNlbCkpO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMnJlbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnRleHQge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZXhjZWwtYmFja2dyb3VuZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWV4Y2VsLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24taG92ZXItZXhjZWwge1xyXG4gICAgICAgICYuYnV0dG9uLWxvYWRpbmcge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1leGNlbCk7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZXhjZWwpO1xyXG5cclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bpbm5lcigxLjZyZW0sIHZhcigtLWNvbG9yLWV4Y2VsKSk7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAycmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAudGV4dCB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZXhjZWwpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWV4Y2VsKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZXhjZWwtYmFja2dyb3VuZCk7XHJcblxyXG4gICAgICAgICAgICBpLFxyXG4gICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZXhjZWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWV4Y2VsLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tZGVsZXRlIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXIpO1xyXG5cclxuICAgICAgICBpLFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5idXR0b24tbG9hZGluZyB7XHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwaW5uZXIoMS42cmVtLCB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tYmxhY2sge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXdoaXRlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICBpLFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtd2hpdGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5idXR0b24tbG9hZGluZyB7XHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwaW5uZXIoMS42cmVtLCB2YXIoLS1jb2xvci10ZXh0LXdoaXRlKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tbGlzdCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItbGlnaHQpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG5cclxuICAgICAgICBpLFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9jb21wb25lbnRzL3N3aXRjaFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLnN3aXRjaCB7XHJcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAmIH4gbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAzLjhyZW07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGFiZWwge1xyXG4gICAgICAgIHdpZHRoOiA2LjRyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAzLjJyZW07XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIuNHJlbTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItbGlnaHQpO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDAuNnJlbTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIDI1JSDqsJDshoxcclxuICAgICYuc3dpdGNoLXNtYWxsIHtcclxuICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xyXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgJiB+IGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyLjdyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA0LjhyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMi40cmVtO1xyXG5cclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxLjVyZW07XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHVzZXIvY29tcG9uZW50cy9jaGVja2JveFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmNoZWNrYm94IHtcclxuICAgIHdpZHRoOiBmaXQtY29udGVudDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAgICAgJjpjaGVja2VkIHtcclxuICAgICAgICAgICAgJiB+IGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1pbnB1dC1zaXplKTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlLFxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1pbnB1dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oY2hlY2ssICRjb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiB2YXIoLS1zaXplLWljb24teHNtYWxsKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNhbGMoNTAlICsgMC4xcmVtKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodC1hY3RpdmUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucmVxdWlyZWQge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTAuNnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLypcclxuICAgICYudWktc29ydGFibGUtaGFuZGxlIHtcclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjE0MlwiKTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICByaWdodDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgKi9cclxuXHJcbiAgICAuZHJhZy1oYW5kbGUge1xyXG4gICAgICAgIC8vIHdpZHRoOiB2YXIoLS1zaXplLWljb24tc21hbGwpO1xyXG4gICAgICAgIC8vIGhlaWdodDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgY2FsYyh2YXIoLS1nYXAtY29tcG9uZW50KSAqIDEuNSk7XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMGM5XCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnVpLWJ1dHRvbiB7XHJcbiAgICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgICAgICAgJjpjaGVja2VkIHtcclxuICAgICAgICAgICAgICAgICYgfiBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGVjaywgJGNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcC1jb21wb25lbnQpIC8gMikgdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgIGdhcDogMC4yNXJlbTtcclxuXHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICB0b3A6IGF1dG87XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGVjaywgJGNvbG9yLWljb24tbGlnaHQpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgb3JkZXI6IC0xO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLWljb24teHNtYWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmNoZWNrYm94LWdyb3VwIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG5cclxuICAgICYuZ2FwLWhhbGYge1xyXG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1nYXAtY29tcG9uZW50KSAvIDIpO1xyXG5cclxuICAgICAgICAuY2hlY2tib3gge1xyXG4gICAgICAgICAgICAmLnVpLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC40cmVtIDAuOHJlbTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgICAgICAgICAgICAgICBnYXA6IDAuMTI1cmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuY29sdW1uIHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgfVxyXG5cclxuICAgICYuYm9yZGVyIHtcclxuICAgICAgICAuY2hlY2tib3gge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1pbnB1dCk7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmNoZWNrYm94LXJvdyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcblxyXG4gICAgPiBidXR0b24ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9jb21wb25lbnRzL3JhZGlvXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4ucmFkaW8ge1xyXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG5cclxuICAgICoge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgICAgICY6Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgICYgfiBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LWJhc2Utc2l6ZSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1nYXAtY29tcG9uZW50KSAvIDIpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWxhYmVsKTtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0LWFjdGl2ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5yYWRpby1ncm91cCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuXHJcbiAgICAmLnVpLXRhYiB7XHJcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgICAgICBnYXA6IDA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgICAgICAmIH4gbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktY29udHJhc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5yYWRpbyB7XHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtZm9ybSk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKSAwIDAgdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcmFkaXVzLWZvcm0pIHZhcigtLXJhZGl1cy1mb3JtKSAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYudWktdGFiLXNoYWRvdyB7XHJcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgICAgICBnYXA6IDA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG5cclxuICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgJiB+IGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coKTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5yYWRpbyB7XHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtZm9ybSk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC1sYXlvdXQpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICB1c2VyL2NvbXBvbmVudHMvZmxhdHBpY2tyXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uZmxhdHBpY2tyIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oZGF0ZSk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IDEuMnJlbTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItY2FsZW5kYXIge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6XHJcbiAgICAgICAgMXB4IDAgMCB2YXIoLS1jb2xvci1ib3JkZXIpLFxyXG4gICAgICAgIC0xcHggMCAwIHZhcigtLWNvbG9yLWJvcmRlciksXHJcbiAgICAgICAgMCAxcHggMCB2YXIoLS1jb2xvci1ib3JkZXIpLFxyXG4gICAgICAgIDAgLTFweCAwIHZhcigtLWNvbG9yLWJvcmRlciksXHJcbiAgICAgICAgMCAzcHggMTNweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xyXG4gICAgYm94LXNoYWRvdzpcclxuICAgICAgICAxcHggMCAwIHZhcigtLWNvbG9yLWJvcmRlciksXHJcbiAgICAgICAgLTFweCAwIDAgdmFyKC0tY29sb3ItYm9yZGVyKSxcclxuICAgICAgICAwIDFweCAwIHZhcigtLWNvbG9yLWJvcmRlciksXHJcbiAgICAgICAgMCAtMXB4IDAgdmFyKC0tY29sb3ItYm9yZGVyKSxcclxuICAgICAgICAwIDNweCAxM3B4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XHJcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLWdhcC1sYXlvdXQpICogMik7XHJcbiAgICBtYXJnaW4tdG9wOiAwLjRyZW07XHJcbn1cclxuXHJcbnNwYW4uZmxhdHBpY2tyLXdlZWtkYXkge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLW1vbnRocyB7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW1vbnRoIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgaGVpZ2h0OiA2cmVtO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWRheSB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCxcclxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHtcclxuICAgIHRvcDogYXV0bztcclxufVxyXG5cclxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2ZyxcclxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHN2ZyB7XHJcbiAgICB3aWR0aDogMS40cmVtO1xyXG4gICAgaGVpZ2h0OiAxLjRyZW07XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZCxcclxuLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkOmhvdmVyLFxyXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXksXHJcbi5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheSxcclxuLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZCxcclxuLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZC5wcmV2TW9udGhEYXksXHJcbi5mbGF0cGlja3ItZGF5Lm5vdEFsbG93ZWQubmV4dE1vbnRoRGF5IHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxufVxyXG5cclxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLFxyXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGgge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgZmlsbDogdmFyKC0tY29sb3ItdGV4dCk7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aDpob3ZlciBzdmcsXHJcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3ZlciBzdmcge1xyXG4gICAgZmlsbDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLFxyXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLFxyXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZSxcclxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuaW5SYW5nZSxcclxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5pblJhbmdlLFxyXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5pblJhbmdlLFxyXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZDpmb2N1cyxcclxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpmb2N1cyxcclxuLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2U6Zm9jdXMsXHJcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkOmhvdmVyLFxyXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlOmhvdmVyLFxyXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpob3ZlcixcclxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQucHJldk1vbnRoRGF5LFxyXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnByZXZNb250aERheSxcclxuLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UucHJldk1vbnRoRGF5LFxyXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5uZXh0TW9udGhEYXksXHJcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UubmV4dE1vbnRoRGF5LFxyXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5uZXh0TW9udGhEYXkge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktY29udHJhc3QpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCB7XHJcbiAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZ2FwOiAxLjZyZW07XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItbW9udGggLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXAge1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItbW9udGggLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93biB7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxufVxyXG5cclxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVyIHtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLWljb24pO1xyXG4gICAgdG9wOiAtMC4xNXJlbTtcclxufVxyXG5cclxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXIge1xyXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tY29sb3ItaWNvbik7XHJcbiAgICB0b3A6IGF1dG87XHJcbiAgICBib3R0b206IC0wLjEyNXJlbTtcclxufVxyXG5cclxuLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRocyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWRheS5pblJhbmdlLFxyXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXkuaW5SYW5nZSxcclxuLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LmluUmFuZ2UsXHJcbi5mbGF0cGlja3ItZGF5LnRvZGF5LmluUmFuZ2UsXHJcbi5mbGF0cGlja3ItZGF5LnByZXZNb250aERheS50b2RheS5pblJhbmdlLFxyXG4uZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXkudG9kYXkuaW5SYW5nZSxcclxuLmZsYXRwaWNrci1kYXk6aG92ZXIsXHJcbi5mbGF0cGlja3ItZGF5LnByZXZNb250aERheTpob3ZlcixcclxuLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5OmhvdmVyLFxyXG4uZmxhdHBpY2tyLWRheTpmb2N1cyxcclxuLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5OmZvY3VzLFxyXG4uZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXk6Zm9jdXMge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWRheS50b2RheSB7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWRheS50b2RheTpob3ZlcixcclxuLmZsYXRwaWNrci1kYXkudG9kYXk6Zm9jdXMge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLXJDb250YWluZXIsXHJcbi5mbGF0cGlja3ItZGF5cyxcclxuLmRheUNvbnRhaW5lciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1pbi13aWR0aDogYXV0bztcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZSB7XHJcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXIpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmFmdGVyIHtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRocyB7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tZG93biwgJGNvbG9yLWljb24pICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgIWltcG9ydGFudDtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgIWltcG9ydGFudDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKSAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcclxuXHJcbiAgICAmOjotbXMtZXhwYW5kIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciB7XHJcbiAgICB3aWR0aDogNnJlbTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgb3JkZXI6IC0xO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCkgIWltcG9ydGFudDtcclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCLrhYRcIjtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDRyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhciB7XHJcbiAgICB3aWR0aDogNHJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItbW9udGggLm51bUlucHV0V3JhcHBlciBzcGFuIHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItbW9udGggLm51bUlucHV0V3JhcHBlciBzcGFuOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWRheS5pblJhbmdlIHtcclxuICAgIGJveC1zaGFkb3c6XHJcbiAgICAgICAgLTVweCAwIDAgdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCksXHJcbiAgICAgICAgNXB4IDAgMCB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcclxufVxyXG5cclxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3biArIDEpKSxcclxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduICsgMSkpLFxyXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduICsgMSkpIHtcclxuICAgIGJveC1zaGFkb3c6IC0xMHB4IDAgMCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxufVxyXG5cclxuLnRpbWVwaWNrZXIge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbih0aW1lKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tc2l6ZS1pY29uLXhzbWFsbCk7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgMS4ycmVtO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDRyZW0gIWltcG9ydGFudDtcclxuXHJcbiAgICAmOnJlYWQtb25seSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCkgIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHVzZXIvY29tcG9uZW50cy9iYWRnZVxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmJhZGdlIHtcclxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXN1Yi0yKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlci0yKTtcclxuICAgIHBhZGRpbmc6IDAuNnJlbSAxLjJyZW07XHJcbiAgICAvLyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMS42cmVtO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICAmLmJhZGdlLWJvcmRlciB7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS1wcmltYXJ5IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS1wcmltYXJ5LWJvcmRlciB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS1wcmltYXJ5LWxpZ2h0IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS1wcmltYXJ5LWxpZ2h0LWJvcmRlciB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g7IOJ7IOB67OEXHJcbiAgICAmLmJhZGdlLWdyZWVuIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZ3JlZW4pO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLWdyZWVuLWJhY2tncm91bmQpO1xyXG5cclxuICAgICAgICAmLmJvcmRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWJhZGdlLWdyZWVuLWJvcmRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYmFkZ2UtcmVkIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtcmVkKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWRnZS1yZWQtYmFja2dyb3VuZCk7XHJcblxyXG4gICAgICAgICYuYm9yZGVyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYmFkZ2UtcmVkLWJvcmRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYmFkZ2UtYmx1ZSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWJsdWUpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLWJsdWUtYmFja2dyb3VuZCk7XHJcblxyXG4gICAgICAgICYuYm9yZGVyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYmFkZ2UtYmx1ZS1ib3JkZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmJhZGdlLXllbGxvdyB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXllbGxvdyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2UteWVsbG93LWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgICYuYmFkZ2UtZGFya3JlZCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWRhcmtyZWQpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLWRhcmtyZWQtYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS1wdXJwbGUge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1wdXJwbGUpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLXB1cnBsZS1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJhZGdlLWN5YW4ge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1jeWFuKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWRnZS1jeWFuLWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgICYuYmFkZ2UtdGVhbCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXRlYWwpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLXRlYWwtYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS1vcmFuZ2Uge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1vcmFuZ2UpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLW9yYW5nZS1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJhZGdlLWJyb3duIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtYnJvd24pO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLWJyb3duLWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgICYuYmFkZ2UtaW5kaWdvIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtaW5kaWdvKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWRnZS1pbmRpZ28tYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS1waW5rIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtcGluayk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2UtcGluay1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHVzZXIvY29tcG9uZW50cy9jYXJkXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uY2FyZC1jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG59XHJcblxyXG4uY2FyZCB7XHJcbiAgICBwYWRkaW5nOiAyLjRyZW07XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtY2FyZCk7XHJcbiAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyLTIpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IDIuNHJlbTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICA+ICoge1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmxvYWRpbmcge1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgICAgID4gKiB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBzcGlubmVyKDEuNnJlbSwgdmFyKC0tY29sb3ItYm9yZGVyKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uY2FyZC1oZWFkIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbn1cclxuXHJcbi5jYXJkLXRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAwLjhyZW07XHJcblxyXG4gICAgLmNvdW50IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgJiB+IC5jYXJkLXN1Yi10aXRsZSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMS4ycmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uY2FyZC1zdWItdGl0bGUge1xyXG4gICAgQGluY2x1ZGUgdGV4dCgxLjRyZW0sIDUwMCwgdmFyKC0tY29sb3ItdGV4dC1kYXJrKSk7XHJcbn1cclxuXHJcbi5jYXJkLWJvZHkge1xyXG4gICAgZmxleDogMTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuXHJcbiAgICAudGFibGUtY29udGFpbmVyIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlLWJvZHkge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9jb21wb25lbnRzL3RhYmxlXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4udGFibGUtY29udGFpbmVyIHtcclxuICAgIEBpbmNsdWRlIHBhcmVudCgpO1xyXG59XHJcblxyXG4udGFibGUge1xyXG4gICAgQGluY2x1ZGUgcGFyZW50KCk7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG5cclxuICAgIHRoZWFkIHtcclxuICAgICAgICB0aCB7XHJcbiAgICAgICAgICAgICZbZGF0YS1zb3J0XSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWdhcC1mb3JtKSArIHZhcigtLWdhcC1jb21wb25lbnQpICsgMC43NXJlbSk7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYwZGVcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuMXJlbTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMGRkXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMXJlbTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1nYXAtZm9ybSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1pY29uKTtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICZbZGF0YS1kaXJlY3Rpb249XCJhc2NcIl0ge1xyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmW2RhdGEtZGlyZWN0aW9uPVwiZGVzY1wiXSB7XHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0ciB7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcCh2YXIoLS1jb2xvci1ib3JkZXItbGlnaHQpKTtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXItYm90dG9tKHZhcigtLWNvbG9yLWJvcmRlci1saWdodCkpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aCxcclxuICAgIHRkIHtcclxuICAgICAgICBwYWRkaW5nOiAxLjZyZW07XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICB9XHJcblxyXG4gICAgdGgge1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICB0ZCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHJcbiAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGZsZXg6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5idXR0b24ge1xyXG4gICAgICAgIC8vIG1pbi1oZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XHJcblxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgd2lkdGg6IDIuOHJlbTtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjhyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMi44cmVtO1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAyLjhyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ub2RhdGEge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLmNoZWNrYm94IHtcclxuICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSxcclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tc2l6ZS1pY29uLXhzbWFsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0IHtcclxuICAgICAgICAmW3R5cGU9XCJ0ZXh0XCJdLFxyXG4gICAgICAgICZbdHlwZT1cInBhc3N3b3JkXCJdIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS10YWJsZS1pbnB1dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3Qge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1pbi13aWR0aDogMTJyZW07XHJcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLXRhYmxlLWlucHV0KTtcclxuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0MiB7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtdGFibGUtaW5wdXQpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG5cclxuICAgICAgICAuc2VsZWN0aW9uIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtdGFibGUtaW5wdXQpO1xyXG5cclxuICAgICAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLXRhYmxlLWlucHV0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1kcm9wZG93biB7XHJcbiAgICAgICAgLnNlbGVjdDItc2VhcmNoIHtcclxuICAgICAgICAgICAgLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtdGFibGUtaW5wdXQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cclxuICAgICAgICAmIH4gcCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNHJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmRhdGEtdGl0bGUge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICAuZGF0YS1hbXQge1xyXG4gICAgfVxyXG5cclxuICAgIC5kYXRhLWxpbmsge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5kYXRhLWRhdGUge1xyXG4gICAgfVxyXG5cclxuICAgICYudGFibGUtYWxpZ24tbGVmdCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi50YWJsZS1hbGlnbi1jZW50ZXIge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnRhYmxlLW5vd3JhcCB7XHJcbiAgICAgICAgKiB7XHJcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYudGFibGUtYm9yZGVyIHtcclxuICAgICAgICB0aCxcclxuICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmIH4gLnRhYmxlLWJvdHRvbSB7XHJcbiAgICAgICAgLnRhYmxlLWJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnRhYmxlLWNhcmQge1xyXG4gICAgICAgIEBpbmNsdWRlIHRhYmxlLWNhcmQoKTtcclxuXHJcbiAgICAgICAgLm5vZGF0YSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS10YWJsZXQoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgICYudGFibGUtbW9iaWxlLWNhcmQge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0YWJsZS1jYXJkKCk7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnRhYmxlLWhlYWQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLWxheW91dCk7XHJcblxyXG4gICAgLnRhYmxlLXRpdGxlLWNvbnRhaW5lciB7XHJcbiAgICAgICAgLnRhYmxlLXRpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cclxuICAgICAgICAgICAgLnRhYmxlLWNvdW50IHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgfVxyXG59XHJcblxyXG4udGFibGUtc2VhcmNoIHtcclxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcC1sYXlvdXQpO1xyXG59XHJcblxyXG4udGFibGUtZmlsdGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG5cclxuICAgIC5pbnB1dCB7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC1mb3JtKTtcclxuXHJcbiAgICAgICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgICAgIG9yZGVyOiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4udGFibGUtdG90YWwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgIEBpbmNsdWRlIHNjcm9sbGJveCgpO1xyXG5cclxuICAgIC5jYXJkIHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgfVxyXG59XHJcblxyXG4udGFibGUtYm9keSB7XHJcbiAgICBAaW5jbHVkZSBzY3JvbGxib3goKTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmLnRoZWFkLXN0aWNreSB7XHJcbiAgICAgICAgbWF4LWhlaWdodDogNjNyZW07XHJcblxyXG4gICAgICAgIC50YWJsZSB7XHJcbiAgICAgICAgICAgIHRoZWFkIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItbGlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0Ym9keSB7XHJcbiAgICAgICAgICAgICAgICB0ciB7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYgfiAudGFibGUtZmlsdGVyIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAzLjJyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi50YWJsZS1ib3R0b20ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgIG1hcmdpbi10b3A6IDMuMnJlbTtcclxuXHJcbiAgICAuYnV0dG9uLWdyb3VwIHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgfVxyXG5cclxuICAgID4gLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhZ2luYXRpb24ge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIC5idXR0b24tZ3JvdXAge1xyXG4gICAgICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICB1c2VyL2NvbXBvbmVudHMvYm9hcmRcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5ib2FyZC1kZXRhaWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5ib2FyZC1kZXRhaWwtaGVhZCB7XHJcbiAgICBwYWRkaW5nOiA0cmVtO1xyXG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWNvbG9yLXRleHQpO1xyXG5cclxuICAgIC50aXRsZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDEuMnJlbTtcclxuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcblxyXG4gICAgICAgIC5iYWRnZSB7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogNy4ycmVtO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQoMi42cmVtLCA2MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubWV0YSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQoMS40cmVtLCA1MDApO1xyXG5cclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWRhcmspO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC40cmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMikge1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYm9hcmQtZGV0YWlsLWJvZHkge1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlci0yKTtcclxuICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4gICAgcGFkZGluZzogNHJlbTtcclxuXHJcbiAgICAmIH4gLmJvYXJkLWRldGFpbC1ib2R5IHtcclxuICAgICAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5ib2FyZC1kZXRhaWwtY29udGVudCB7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XHJcbn1cclxuXHJcbi5ib2FyZC1kZXRhaWwtYm90dG9tIHtcclxuICAgIC5ib2FyZC1kZXRhaWwtbmF2IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgcGFkZGluZzogMnJlbSA0cmVtO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLTIpO1xyXG5cclxuICAgICAgICAgICAgJi5ub2RhdGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcblxyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDhyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uLWdyb3VwIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA0LjRyZW07XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDE0cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICB1c2VyL2NvbXBvbmVudHMvZm9ybVxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmZvcm0tY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICYgfiAuZm9ybS1jb250YWluZXIge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tZ2FwLWxheW91dCkgKiAyKTtcclxuICAgIH1cclxuXHJcbiAgICAmLnN0aWNreSB7XHJcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwLWxheW91dCkgKiAtMSk7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWdhcC1sYXlvdXQpICogMik7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJsdXItYmFja2dyb3VuZCk7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA0MHB4IHJnYmEodmFyKC0tYmx1ci1zaGFkb3cpKSBpbnNldDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICB0b3A6IGNhbGModmFyKC0tZ2FwLWxheW91dCkgKiAyICogLTEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZvcm0taGVhZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG5cclxuICAgIC5idXR0b24ge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgcGFkZGluZzogMC42cmVtIDEuMnJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmIH4gLmZvcm0tY29udGVudCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMi40cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS10YWIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgIGEsXHJcbiAgICBidXR0b24ge1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci0yKTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDUwMCwgdmFyKC0tY29sb3ItdGV4dC1zdWItMikpO1xyXG4gICAgICAgIHBhZGRpbmc6IDEuMnJlbTtcclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMnB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmIH4gLmZvcm0tY29udGVudCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMi40cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS10aXRsZS1jb250YWluZXIge1xyXG59XHJcblxyXG4uZm9ybS10aXRsZSB7XHJcbiAgICBAaW5jbHVkZSB0ZXh0KDEuOHJlbSwgNjAwLCB2YXIoLS1jb2xvci10ZXh0KSk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogMC42cmVtO1xyXG5cclxuICAgIGIge1xyXG4gICAgICAgIEBpbmNsdWRlIHRleHQoMS44cmVtLCA2MDAsIHZhcigtLWNvbG9yLXByaW1hcnkpKTtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgICB3aWR0aDogMi40cmVtO1xyXG4gICAgfVxyXG5cclxuICAgICYgfiAuZm9ybS1zdWItdGl0bGUge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLXN1Yi10aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWRhcmspO1xyXG59XHJcblxyXG4uZm9ybS1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxufVxyXG5cclxuLmZvcm0tcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBnYXA6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG5cclxuICAgIC5mb3JtLWNvbCB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS1jb2wge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG59XHJcblxyXG4uZm9ybS1ncm91cCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAmLmJldHdlZW4ge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIH1cclxuXHJcbiAgICAuaW5wdXQsXHJcbiAgICAuc2VsZWN0IHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5kcmFnLWhhbmRsZSB7XHJcbiAgICAgICAgY3Vyc29yOiBtb3ZlO1xyXG5cclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjU4ZVwiKTtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWljb24tbGlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZvcm0tbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG5cclxuICAgICYucmVxdWlyZWQge1xyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAwLjZyZW07XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC40cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZvcm0tbXNnIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zaXplLWljb24pO1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMTI5XCIpO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLWljb24teHNtYWxsKTtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHRvcDogMC4xNXJlbTtcclxuICAgICAgICBmb250LXNpemU6IDAuOHJlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pbmZvIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItaW5mbyk7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjEyOVwiKTtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItaW5mbyk7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc3VjY2VzcyB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYwMGNcIik7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLndhcm5pbmcge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMTJhXCIpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5lcnJvciB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMDBkXCIpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS1jb3VudCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuXHJcbiAgICAuY3VycmVudCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWluZm8pO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS1ib3gge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxuICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWZvcm0pO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcblxyXG4gICAgLmZvcm0tYm94LXRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgICYuaW5mbyB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWluZm8pO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItaW5mbyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItaW5mby1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuXHJcbiAgICAmLnN1Y2Nlc3Mge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXNzKTtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi53YXJuaW5nIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itd2FybmluZyk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nLWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgICYuZXJyb3Ige1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZXJyb3ItYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLXBhaXIge1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLWlucHV0KTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWlucHV0KTtcclxuXHJcbiAgICAucGFpci1sYWJlbCB7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1pbnB1dCkgMCAwIHZhcigtLXJhZGl1cy1pbnB1dCk7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWZvcm0pO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWRhcmspO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLWZvbnQtaW5wdXQtc2l6ZSk7XHJcblxyXG4gICAgICAgICYuc2VsZWN0IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCBjYWxjKHZhcigtLWdhcC1mb3JtKSArICh2YXIoLS1nYXAtZm9ybSkgLyAyKSArIHZhcigtLXNpemUtaWNvbikpIDAgdmFyKC0tZ2FwLWZvcm0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcblxyXG4gICAgICAgICAgICAmIH4gLnBhaXItaXRlbSB7XHJcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucGFpci10ZXh0IHtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaW5wdXQpO1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLWZvcm0pO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhaXItaXRlbSB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XHJcblxyXG4gICAgICAgICYgfiAuc2VsZWN0MiAuc2VsZWN0aW9uIC5zZWxlY3QyLXNlbGVjdGlvbiAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCBjYWxjKHZhcigtLWdhcC1mb3JtKSArICh2YXIoLS1nYXAtZm9ybSkgLyAyKSArIHZhcigtLXNpemUtaWNvbikpIDAgdmFyKC0tZ2FwLWZvcm0pICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmIH4gLnNlbGVjdDIgLnNlbGVjdGlvbiAuc2VsZWN0Mi1zZWxlY3Rpb24ge1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXJhZGl1cy1pbnB1dCkgdmFyKC0tcmFkaXVzLWlucHV0KSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcmFkaXVzLWlucHV0KSB2YXIoLS1yYWRpdXMtaW5wdXQpIDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1pbnB1dCk7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbnB1dCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxOHJlbTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgICAgICAucGFpci1sYWJlbCB7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1pbnB1dCk7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucGFpci1pdGVtIHtcclxuICAgICAgICAgICAgZmxleDogMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5pbnB1dCB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuZGF0ZXBpY2tlci1ncm91cCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcclxuXHJcbiAgICAgICAgICAgIC5zZWxlY3Qge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcclxuXHJcbiAgICAgICAgICAgICAgICAmLnBhaXItbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1pbnB1dCkgdmFyKC0tcmFkaXVzLWlucHV0KSAwIDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi5wYWlyLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLXJhZGl1cy1pbnB1dCkgdmFyKC0tcmFkaXVzLWlucHV0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmlucHV0IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcblxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLXNlcGFyYXRvciB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbn1cclxuXHJcbi5maWxlLXVwbG9hZCB7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtc2VjdGlvbik7XHJcbiAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5maWxlLXVwbG9hZC10ZXh0IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgd29yZC1icmVhazoga2VlcC1hbGw7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcmFnLW92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XHJcblxyXG4gICAgICAgIC5maWxlLXVwbG9hZC10ZXh0IHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZpbGUtbGlzdCB7XHJcbiAgICAuZmlsZS1saXN0LWhlYWQge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG5cclxuICAgICAgICAuZmlsZS1saXN0LWNvdW50IHtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuXHJcbiAgICAgICAgICAgIC5jdXJyZW50IHtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZpbGUtbGlzdC1jb250ZW50IHtcclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgICAgICBnYXA6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG5cclxuICAgICAgICAgICAgICAgIC5maWxlLWluZm8ge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxpbmUtY2xhbXAoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmIH4gbGkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS10b2dnbGUtYnV0dG9uIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjEwN1wiKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi51aS1zb3J0YWJsZS1oZWxwZXIge1xyXG4gICAgb3BhY2l0eTogMC43O1xyXG59XHJcblxyXG4uZm9ybS1pbmZvIHtcclxuICAgIG1hcmdpbi10b3A6IDEuMnJlbTtcclxuXHJcbiAgICBoMiB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDYwMCk7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4ycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIHAge1xyXG4gICAgICAgIEBpbmNsdWRlIHRleHQoMS40cmVtLCA1MDAsIHZhcigtLWNvbG9yLXRleHQtc3ViLTEpKTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogMC42cmVtO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICB3aWR0aDogMC40cmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDAuNHJlbTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zdWItMyk7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGIge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9jb21wb25lbnRzL3BhZ2luYXRpb25cclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5wYWdpbmF0aW9uIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAvLyBnYXA6IGNhbGModmFyKC0tZ2FwLWNvbXBvbmVudCkgLyAyKTtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICBtYXJnaW4tdG9wOiA0LjRyZW07XHJcblxyXG4gICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgZ2FwOiBjYWxjKHZhcigtLWdhcC1jb21wb25lbnQpIC8gMik7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICAgIG1pbi13aWR0aDogNC42cmVtO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDQuNnJlbTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXN1Yi0yKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtaW5wdXQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktc3ViKTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXN1Yik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXN1Yik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wcmV2IHtcclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYxMDRcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uZXh0IHtcclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYxMDVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wcmV2LFxyXG4gICAgLm5leHQge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1zdWIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1zdWIpO1xyXG5cclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXN1Yik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICB1c2VyL2NvbXBvbmVudHMvbW9kYWxcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5tb2RhbCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgei1pbmRleDogdmFyKC0tei1pbmRleC1tb2RhbCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgLmZvcm0tdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgfVxyXG5cclxuICAgICYuYWN0aXZlIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICYuZnVsbCB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAgICAgLm1vZGFsLWlubmVyIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLXNtYWxsIHtcclxuICAgICAgICAubW9kYWwtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA0MHJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5tb2RhbC1tZWRpdW0ge1xyXG4gICAgICAgIC5tb2RhbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDU2cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLWxhcmdlIHtcclxuICAgICAgICAubW9kYWwtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA3MnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5tb2RhbC14bGFyZ2Uge1xyXG4gICAgICAgIC5tb2RhbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDg4cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLXh4bGFyZ2Uge1xyXG4gICAgICAgIC5tb2RhbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwNHJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5tb2RhbC14eHhsYXJnZSB7XHJcbiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTIwcmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLXh4eHhsYXJnZSB7XHJcbiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTM2cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLWZ1bGwge1xyXG4gICAgICAgIC5tb2RhbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYubW9kYWwtY29uZmlybSB7XHJcbiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIC5tb2RhbC1jb250ZW50IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ubW9kYWwtbGF5ZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvcjogIzAwMDAwMCwgJGFscGhhOiAuMik7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3QpLCAkYWxwaGE6IDAuMik7XHJcbn1cclxuXHJcbi5tb2RhbC1jb250YWluZXIge1xyXG4gICAgQGluY2x1ZGUgcGFyZW50KCk7XHJcbiAgICBAaW5jbHVkZSBzY3JvbGxib3goKTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiA1NnJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1vZGFsKTtcclxuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coKTtcclxufVxyXG5cclxuLm1vZGFsLWhlYWQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWxpZ2h0KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tb2RhbCkgdmFyKC0tcmFkaXVzLW1vZGFsKSAwIDA7XHJcblxyXG4gICAgJi5uby1ib3JkZXIge1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuLm1vZGFsLXRpdGxlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAwLjZyZW07XHJcbiAgICBmb250LXNpemU6IDIuNHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5tb2RhbC1zdWItdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcbiAgICBtYXJnaW4tdG9wOiAwLjhyZW07XHJcbn1cclxuXHJcbi5tb2RhbC1jbG9zZS1idXR0b24ge1xyXG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pY29uKHZhcigtLXNpemUtaWNvbi1zbWFsbCkpO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjbG9zZSwgJGNvbG9yLWljb24tbGlnaHQpO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1nYXAtZm9ybSkpO1xyXG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tZ2FwLWZvcm0pKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1pbnB1dCk7XHJcbiAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oY2xvc2UsIDM1ZDg2Zik7XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodC1hY3RpdmUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLm1vZGFsLWNvbnRlbnQge1xyXG4gICAgQGluY2x1ZGUgcGFyZW50KCk7XHJcbiAgICBwYWRkaW5nOiAycmVtO1xyXG59XHJcblxyXG4ubW9kYWwtYm90dG9tIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIHBhZGRpbmc6IDJyZW07XHJcbiAgICBnYXA6IDFyZW07XHJcblxyXG4gICAgJi5iZXR3ZWVuIHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9jb21wb25lbnRzL3BhbmVsXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4ucGFuZWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IHZhcigtLXNpemUtcGFuZWwpO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgcmlnaHQ6IGNhbGModmFyKC0tc2l6ZS1wYW5lbCkgKiAtMSk7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY29sb3Itc25iLWJvcmRlcik7XHJcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc2l6ZS1oZWFkZXItaGVpZ2h0KTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgtcGFuZWwpO1xyXG5cclxuICAgIC5wYW5lbC1sYXllciB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3QpLCAkYWxwaGE6IDAuMik7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhbmVsLWNvbnRhaW5lciB7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBAaW5jbHVkZSBzY3JvbGxib3goKTtcclxuXHJcbiAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucGFuZWwtaGVhZCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBnYXA6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWNvbXBvbmVudCkgdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1saWdodCk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgIHotaW5kZXg6IDE7XHJcblxyXG4gICAgICAgIC5idXR0b24tZ3JvdXAge1xyXG4gICAgICAgICAgICBnYXA6IDAuMXJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5wYW5lbC12aWV3LWNoYW5nZS1idXR0b24ge1xyXG4gICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMDY1XCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucGFuZWwtY2xvc2UtYnV0dG9uIHtcclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjA2MVwiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wYW5lbC10aXRsZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogMC42cmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhbmVsLWJvZHkge1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhbmVsLWZvb3RlciB7XHJcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWxpZ2h0KTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgYm9keS9wYW5lbC1vcGVuL3BhbmVsXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG5ib2R5IHtcclxuICAgICYucGFuZWwtb3BlbiB7XHJcbiAgICAgICAgLnBhbmVsIHtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnBhbmVsLW92ZXJsYXkge1xyXG4gICAgICAgIC5wYW5lbCB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgcmlnaHQ6IDUwJTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgtbW9kYWwpO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcclxuXHJcbiAgICAgICAgICAgIC5wYW5lbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzY3JvbGxib3goKTtcclxuICAgICAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA1NnJlbTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1vZGFsKTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnBhbmVsLWhlYWQge1xyXG4gICAgICAgICAgICAgICAgLnBhbmVsLXZpZXctY2hhbmdlLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYwNjZcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLnBhbmVsLWNsb3NlLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYwMGRcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5wYW5lbC1sYXllciB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5wYW5lbC1mb290ZXIge1xyXG4gICAgICAgICAgICAgICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXg6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAucGFuZWwtY29udHJvbCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ib2R5IHtcclxuICAgIEBpbmNsdWRlIG1xLWxhcHRvcChtaW4pIHtcclxuICAgICAgICAmLnBhbmVsLW9wZW4ge1xyXG4gICAgICAgICAgICAubWFpbiB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLXNpemUtcGFuZWwpICsgdmFyKC0tZ2FwLWNvbXBvbmVudCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9wYWdlcy9sb2dpblxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmxvZ2luLWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBtaW4taGVpZ2h0OiAxMDBkdmg7XHJcbiAgICBwYWRkaW5nOiAyLjRyZW07XHJcbiAgICBnYXA6IDZyZW07XHJcbn1cclxuXHJcbi5sb2dpbi1mb3JtIHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgIC5mb3JtLWNvbnRhaW5lciB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWluLXdpZHRoOiAyNS4ycmVtO1xyXG4gICAgICAgIG1heC13aWR0aDogMzUuMnJlbTtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS10aXRsZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tc3ViLXRpdGxlIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwLjhyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zdWItMik7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tbG9nbyB7XHJcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRyZW07XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1sb2dvLWhlaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLWxpbmsge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0wLjJyZW07XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjRyZW0sIDUwMCwgdmFyKC0tY29sb3ItdGV4dC1zdWItMikpO1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uLXByaW1hcnktc3ViIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxLjJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tYm90dG9tLWxpbmsge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDMuMnJlbTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDAuOHJlbTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIC5mb3JtLWxpbmsge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtc3ViLTMpO1xyXG5cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tbGFiZWwge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICAuaW5wdXQge1xyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaW5wdXQtZ3JvdXAge1xyXG4gICAgICAgIC5pbnB1dC1zdWZmaXgtdGltZXIge1xyXG4gICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMS42cmVtO1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxLjZyZW07XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcclxuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuNnJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpmb2N1cy13aXRoaW4ge1xyXG4gICAgICAgICAgICAuaW5wdXQge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5idXR0b24ge1xyXG4gICAgICAgICYuYnV0dG9uLWdyYXkge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC13aGl0ZSk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXRleHQtc3ViLTMpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubG9naW4taXRlbS1ncm91cCB7XHJcbiAgICAgICAgLmNoZWNrYm94IHtcclxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgICAgICAgICAgICY6Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgJiB+IGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5sb2dpbi1iYW5uZXIge1xyXG4gICAgZmxleDogMTtcclxuICAgIG1pbi13aWR0aDogOTIuNnJlbTtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvdXNlci9sb2dpbl9iZy5wbmcpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1xLWxhcHRvcCgpIHtcclxuICAgIC5sb2dpbi1jb250YWluZXIge1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDVyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmxvZ2luLWZvcm0ge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAuZm9ybS1jb250YWluZXIge1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubG9naW4tYmFubmVyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdXNlci9wYWdlcy9zZWN0aW9uXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uc2VjdGlvbi1oZWFkLFxyXG4uc2VjdGlvbi1jb250ZW50LFxyXG4uc2VjdGlvbi10YWIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IHZhcigtLXNpemUtbGF5b3V0LXdpZHRoKTtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG5cclxuICAgIEBpbmNsdWRlIG1xLWxhcHRvcCgpIHtcclxuICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBoZWFkLXNlY3Rpb25cclxuLmhlYWQtc2VjdGlvbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvdXNlci9wYWdlX2hlYWRfYmcucG5nXCIpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IGNhbGMoN3JlbSArIHZhcigtLXNpemUtaGVhZGVyLWhlaWdodCkpIDAgN3JlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDdyZW07XHJcblxyXG4gICAgLnNlY3Rpb24tdGl0bGUge1xyXG4gICAgICAgIEBpbmNsdWRlIHRleHQoMi44cmVtLCA2MDAsIHZhcigtLWNvbG9yLXRleHQtd2hpdGUpKTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiAwLjhyZW07XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA0LjJyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWN0aW9uLXN1Yi10aXRsZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDUwMCwgdmFyKC0tY29sb3ItdGV4dC13aGl0ZSkpO1xyXG4gICAgICAgIG9wYWNpdHk6IDAuODtcclxuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyB2aXN1YWwtc2VjdGlvblxyXG4udmlzdWFsLXNlY3Rpb24ge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL3VzZXIvdmlzdWFsX2JnLnBuZ1wiKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiBjYWxjKDE0cmVtICsgdmFyKC0tc2l6ZS1oZWFkZXItaGVpZ2h0KSkgMCAyMy41cmVtO1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuXHJcbiAgICAuc2VjdGlvbi1oZWFkIHtcclxuICAgICAgICAuc2VjdGlvbi1rZXl3b3JkIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMi4ycmVtO1xyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuNnJlbSwgNjAwLCB2YXIoLS1jb2xvci1wcmltYXJ5KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWN0aW9uLXRpdGxlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dCg0LjRyZW0sIDYwMCwgdmFyKC0tY29sb3ItcHJpbWFyeSkpO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlY3Rpb24tc3ViLXRpdGxlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dCgycmVtLCA1MDAsIHZhcigtLWNvbG9yLXRleHQtc3ViLTIpKTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMi41cmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDE5cmVtO1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktc3ViKTtcclxuICAgICAgICAgICAgcGFkZGluZzogMS4ycmVtIDEuNnJlbTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDYwMCwgdmFyKC0tY29sb3ItdGV4dC13aGl0ZSkpO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA3cmVtO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgLnNlY3Rpb24taGVhZCB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgIC5zZWN0aW9uLWtleXdvcmQge1xyXG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIHByb2R1Y3QtbGlzdC1zZWN0aW9uXHJcbi5wcm9kdWN0LWxpc3Qtc2VjdGlvbiB7XHJcbiAgICAucHJvZHVjdC1saXN0LWNvbnRhaW5lciB7XHJcbiAgICAgICAgLnByb2R1Y3QtbGlzdCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQoKTtcclxuICAgICAgICAgICAgZ2FwOiAwO1xyXG5cclxuICAgICAgICAgICAgLnByb2R1Y3QtbGlzdC1pdGVtIHtcclxuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDM7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyLTIpO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG5cclxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LWltZy1jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjEuNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLnRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQoMS42cmVtLCA2MDApO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmIH4gLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcclxuICAgICAgICAgICAgbWFyZ2luOiA0LjRyZW0gYXV0byAwO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzLjVyZW07XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICBnYXA6IDEuMnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtdGFibGV0KCkge1xyXG4gICAgICAgIC5wcm9kdWN0LWxpc3QtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgLnByb2R1Y3QtbGlzdCB7XHJcbiAgICAgICAgICAgICAgICAucHJvZHVjdC1saXN0LWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIC5wcm9kdWN0LWxpc3QtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgLnByb2R1Y3QtbGlzdCB7XHJcbiAgICAgICAgICAgICAgICAucHJvZHVjdC1saXN0LWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDY7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIG1haW4td29yay1zZWN0aW9uXHJcbi5tYWluLXdvcmstc2VjdGlvbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvdXNlci9tYWluX3dvcmtfYmcucG5nXCIpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDEzcmVtIDA7XHJcblxyXG4gICAgLnNlY3Rpb24ta2V5d29yZCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4ycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWN0aW9uLXRpdGxlIHtcclxuICAgICAgICBAaW5jbHVkZSB0ZXh0KDMuOHJlbSwgNjAwLCB2YXIoLS1jb2xvci10ZXh0LXdoaXRlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlY3Rpb24tY29udGVudCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNi44cmVtO1xyXG5cclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogNS45cmVtIDIuNHJlbTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRjb2xvcjogI2ZmZmZmZiwgJGFscGhhOiAwLjA1KTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG5cclxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQoMS42cmVtLCA3MDAsIHZhcigtLWNvbG9yLXByaW1hcnkpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBoNCB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGV4dCgyLjJyZW0sIDYwMCwgdmFyKC0tY29sb3ItdGV4dC13aGl0ZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNC4zcmVtIDAgMS4zcmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGg1IHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuNnJlbSwgNjAwLCB2YXIoLS1jb2xvci10ZXh0LXdoaXRlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBtYWluLWJvYXJkLXNlY3Rpb25cclxuLm1haW4tYm9hcmQtc2VjdGlvbiB7XHJcbiAgICAuZ3JpZC1jb250YWluZXIge1xyXG4gICAgICAgIGdhcDogMy42cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5jYXJkIHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcclxuICAgICAgICBnYXA6IDMuNnJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuY2FyZC1oZWFkIHtcclxuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcblxyXG4gICAgICAgIC5idXR0b24tbGluayB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jYXJkLXRpdGxlIHtcclxuICAgICAgICBAaW5jbHVkZSB0ZXh0KDIuMnJlbSwgNzAwKTtcclxuICAgIH1cclxuXHJcbiAgICAuY2FyZC1ib2R5IHtcclxuICAgICAgICAudGFibGUge1xyXG4gICAgICAgICAgICB0ciB7XHJcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBoZWxwLXNlY3Rpb25cclxuLmhlbHAtc2VjdGlvbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvdXNlci9oZWxwX2JnLnBuZ1wiKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiA4LjVyZW0gMDtcclxuICAgIG1hcmdpbi10b3A6IDE4cmVtICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgLnNlY3Rpb24tdGl0bGUge1xyXG4gICAgICAgIEBpbmNsdWRlIHRleHQoMy44cmVtLCA2MDAsIHZhcigtLWNvbG9yLXByaW1hcnkpKTtcclxuICAgIH1cclxuXHJcbiAgICAuc2VjdGlvbi1jb250ZW50IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XHJcblxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQoMi44cmVtLCA2MDAsIHZhcigtLWNvbG9yLXByaW1hcnktc3ViKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC40cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gb3JkZXItbGlzdC1zZWN0aW9uXHJcbi5vcmRlci1saXN0LXNlY3Rpb24ge1xyXG4gICAgLnRhYmxlIHtcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xyXG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwIDAuOHJlbTtcclxuXHJcbiAgICAgICAgdHIge1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGgsXHJcbiAgICAgICAgdGQge1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XHJcblxyXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwIDAgMC40cmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMC40cmVtIDAuNHJlbSAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBib2FyZC1zZWN0aW9uXHJcbi5ib2FyZC1zZWN0aW9uIHtcclxuICAgIC5zZWN0aW9uLWNvbnRlbnQge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBnYXA6IDExLjNyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYiB7XHJcbiAgICAgICAgd2lkdGg6IDE5cmVtO1xyXG4gICAgICAgIG1pbi13aWR0aDogMTlyZW07XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgICBhLFxyXG4gICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcGFkZGluZzogMS42cmVtIDA7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQoMS44cmVtLCA1MDAsIHZhcigtLWNvbG9yLXRleHQtc3ViLTIpKTtcclxuXHJcbiAgICAgICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlLWJvZHkge1xyXG4gICAgfVxyXG5cclxuICAgIC50YWJsZS1ib3R0b20ge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDRyZW07XHJcblxyXG4gICAgICAgIC5wYWdpbmF0aW9uIHtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlIHtcclxuICAgICAgICB0aCxcclxuICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLXRhYmxldCgpIHtcclxuICAgICAgICAuc2VjdGlvbi1jb250ZW50IHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgZ2FwOiA0cmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRhYiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IGF1dG87XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGdhcDogMnJlbTtcclxuXHJcbiAgICAgICAgICAgIGEsXHJcbiAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgLnRhYmxlLWJvZHkge1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBwcm9kdWN0LWRldGFpbC1zZWN0aW9uXHJcbi5wcm9kdWN0LWRldGFpbC1zZWN0aW9uIHtcclxuICAgIC5ncmlkLWNvbnRhaW5lciB7XHJcbiAgICAgICAgZ2FwOiA0LjdyZW07XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xyXG5cclxuICAgICAgICAmIH4gLmdyaWQtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogOC43cmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmdyaWQtaXRlbSB7XHJcbiAgICAgICAgICAgICYuc3RpY2t5IHtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1jb250YWluZXIge1xyXG4gICAgICAgICYgfiAuZm9ybS1jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA0LjRyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOm50aC1vZi10eXBlKDMpIHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDQuNHJlbTtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci0yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLWNvbnRlbnQtdGFiIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyLjRyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnByb2R1Y3QtdGh1bWJzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEuMnJlbTtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxLjJyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjhyZW0sIDcwMCk7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgcGFkZGluZzogMy41cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY2hlY2tib3gtZ3JvdXAge1xyXG4gICAgICAgIGdhcDogMS4ycmVtO1xyXG5cclxuICAgICAgICAuY2hlY2tib3gge1xyXG4gICAgICAgICAgICBmbGV4OiAxIDEgNDAlO1xyXG5cclxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgICAgICAgICAgICY6Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgJiB+IGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwLjRyZW0gMS4zcmVtIHJnYmEoJGNvbG9yOiAjMDAwMDAwLCAkYWxwaGE6IDAuMDUpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAgICAgICAgICAgIGdhcDogMC4ycmVtO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjhyZW07XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBwIHtcclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjRyZW0sIDUwMCwgdmFyKC0tY29sb3ItdGV4dC1zdWItMikpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQoMS44cmVtLCA3MDApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucmFkaW8tZ3JvdXAge1xyXG4gICAgICAgIGdhcDogMS4ycmVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcclxuXHJcbiAgICAgICAgLnJhZGlvIHtcclxuICAgICAgICAgICAgZmxleDogMSAxIDQwJTtcclxuXHJcbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgICAgICAgICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgICAgICYgfiBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMy4zcmVtO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuOHJlbTtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNhcmQtbnVtLWdyb3VwIHtcclxuICAgICAgICAuaW5wdXQge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jYXJkLWRhdGUtZ3JvdXAge1xyXG4gICAgICAgIC5pbnB1dCB7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jby1udW0tZ3JvdXAge1xyXG4gICAgICAgIC5pbnB1dCB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm9wdGlvbi1jb250YWluZXIge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNnJlbTtcclxuXHJcbiAgICAgICAgLm9wdGlvbi1saXN0IHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgZ2FwOiAwLjhyZW07XHJcblxyXG4gICAgICAgICAgICAub3B0aW9uLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42cmVtO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMnJlbTtcclxuXHJcbiAgICAgICAgICAgICAgICAuaW5mbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuM3JlbTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDUwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAubmFtZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQoMS40cmVtLCA1MDAsIHZhcigtLWNvbG9yLXRleHQtc3ViLTIpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC40cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuY291bnQtZ3JvdXAge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbixcclxuICAgICAgICAgICAgICAgICAgICBpbnB1dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzLjJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMy4ycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuNHJlbSwgNTAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4ycmVtIDAgMCAwLjJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAuMnJlbSAwLjJyZW0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQge1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA+IGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLW1vYmlsZSgpIHtcclxuICAgICAgICAuZ3JpZC1jb250YWluZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgICAgIC5ncmlkLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgJiB+IC5ncmlkLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDQuNHJlbTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gbXktc2VjdGlvblxyXG4ubXktc2VjdGlvbiB7XHJcbiAgICAuc2VjdGlvbi1jb250ZW50IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgZ2FwOiAxMS4zcmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC50YWIge1xyXG4gICAgICAgIHdpZHRoOiAxOXJlbTtcclxuICAgICAgICBtaW4td2lkdGg6IDE5cmVtO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgYSxcclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNnJlbSAwO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuOHJlbSwgNTAwLCB2YXIoLS1jb2xvci10ZXh0LXN1Yi0yKSk7XHJcblxyXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50YWJsZS1jYXJkIHtcclxuICAgICAgICB0ciB7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEuMnJlbTtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItMikgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwLjRyZW0gMi43cmVtIHJnYmEoJGNvbG9yOiAjMDAwMDAwLCAkYWxwaGE6IDAuMDMpO1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgIGdhcDogMS42cmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAyLjRyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY29sLWhlYWQge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICAgICAgIC5oZWFkLWluZm8ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICAgICAgICAgIGdhcDogMXJlbTtcclxuXHJcbiAgICAgICAgICAgICAgICAuZGF0ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjRyZW0sIDQwMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuNHJlbSwgNTAwLCB2YXIoLS1jb2xvci10ZXh0LXN1Yi0zKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5jb2wtdGh1bWIge1xyXG4gICAgICAgICAgICAudGh1bWItaW1nIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA4LjdyZW07XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDguN3JlbTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyLTIpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xyXG5cclxuICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5jb2wtaW5mbyB7XHJcbiAgICAgICAgICAgIGZsZXg6IDE7XHJcblxyXG4gICAgICAgICAgICAub3JkZXItaW5mbyB7XHJcbiAgICAgICAgICAgICAgICAubmFtZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjVyZW0sIDUwMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLm1ldGEge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiAwLjRyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuM3JlbSwgNTAwLCB2YXIoLS1jb2xvci10ZXh0LXN1Yi0yKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAwLjRyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMC4ycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC50b3RhbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC44cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjhyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci0yKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmtleS12YWx1ZS1pdGVtIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmtleSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuNnJlbSwgNDAwLCB2YXIoLS1jb2xvci10ZXh0KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWNjZW50IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuNnJlbSwgNzAwLCB2YXIoLS1jb2xvci1wcmltYXJ5KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlLWJvdHRvbSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNHJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1jb250YWluZXIge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAuZm9ybS10aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5mb3JtLWNvbnRlbnQge1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxLjJyZW07XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlci0yKSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAuNHJlbSAyLjdyZW0gcmdiYSgkY29sb3I6ICMwMDAwMDAsICRhbHBoYTogMC4wMyk7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDIuNHJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5mb3JtLWJvdHRvbSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDMuMnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtdGFibGV0KCkge1xyXG4gICAgICAgIC5zZWN0aW9uLWNvbnRlbnQge1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBnYXA6IDRyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudGFiIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogYXV0bztcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZ2FwOiAycmVtO1xyXG5cclxuICAgICAgICAgICAgYSxcclxuICAgICAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ== */
