/*!
 * Bootstrap v4.2.1 (https://getbootstrap.com/)
 * Copyright 2011-2018 The Bootstrap Authors
 * Copyright 2011-2018 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
:root {
    --blue: #007bff;
    --indigo: #6610f2;
    --purple: #6f42c1;
    --pink: #e83e8c;
    --red: #dc3545;
    --orange: #fd7e14;
    --yellow: #ffc107;
    --green: #28a745;
    --teal: #20c997;
    --cyan: #17a2b8;
    --white: #fff;
    --gray: #6c757d;
    --gray-dark: #343a40;
    --primary: #007bff;
    --secondary: #6c757d;
    --success: #28a745;
    --info: #17a2b8;
    --warning: #ffc107;
    --danger: #dc3545;
    --light: #f8f9fa;
    --dark: #343a40;
    --breakpoint-xs: 0;
    --breakpoint-sm: 576px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 992px;
    --breakpoint-xl: 1200px;
    --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
@font-face {
    font-family: "IntroRust-BaseLine";
    src: url("../fonts/IntroRust-BaseLine.otf");
    src: local("IntroRust-BaseLine"), url("../fonts/IntroRust-BaseLine.otf") format("truetype"); /* non-IE */
}

*,
*::before,
*::after {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

html {
    font-family: sans-serif;
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
    display: block;
}

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #212529;
    text-align: left;
    background-color: #fff;

}
    body::-webkit-scrollbar {
        width: 10px;
        background-color: #F5F5F5;
    }
    body::-webkit-scrollbar-thumb {
        border-radius: 10px;
        -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
        background-color: #555;
    }
[tabindex="-1"]:focus {
    outline: 0 !important;
}
.over-flow-stopper{
    overflow:hidden;
}
hr {
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
    height: 0;
    overflow: visible;
}

h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: 0.5rem;

}

p {
    margin-top: 0;
    margin-bottom: 1rem;
}

abbr[title],
abbr[data-original-title] {
    text-decoration: underline;
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
    cursor: help;
    border-bottom: 0;
    text-decoration-skip-ink: none;
}

address {
    margin-bottom: 1rem;
    font-style: normal;
    line-height: inherit;
}

ol,
ul,
dl {
    margin-top: 0;
    margin-bottom: 1rem;
}

    ol ol,
    ul ul,
    ol ul,
    ul ol {
        margin-bottom: 0;
    }

dt {
    font-weight: 700;
}

dd {
    margin-bottom: .5rem;
    margin-left: 0;
}

blockquote {
    margin: 0 0 1rem;
}

b,
strong {
    font-weight: bolder;
}

small {
    font-size: 80%;
}

sub,
sup {
    position: relative;
    font-size: 75%;
    line-height: 0;
    vertical-align: baseline;
}

sub {
    bottom: -.25em;
}

sup {
    top: -.5em;
}

a {
    color: #007bff;
    text-decoration: none;
    background-color: transparent;
}

    a:hover {
        color: #0056b3;
        text-decoration: underline;
    }

    a:not([href]):not([tabindex]) {
        text-decoration: none;
    }

        a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
            color: inherit;
            text-decoration: none;
        }

        a:not([href]):not([tabindex]):focus {
            outline: 0;
        }

pre,
code,
kbd,
samp {
    font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 1em;
}

pre {
    margin-top: 0;
    margin-bottom: 1rem;
    overflow: auto;
}

figure {
    margin: 0 0 1rem;
}

img {
    vertical-align: middle;
    border-style: none;
}

svg {
    overflow: hidden;
    vertical-align: middle;
}

table {
    border-collapse: collapse;
}

caption {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    color: #6c757d;
    text-align: left;
    caption-side: bottom;
}

th {
    text-align: inherit;
}

label {
    display: inline-block;
    margin-bottom: 0.5rem;
}

button {
    border-radius: 0;
}

    button:focus {
        outline: 1px dotted;
        outline: 5px auto -webkit-focus-ring-color;
    }

input,
button,
select,
optgroup,
textarea {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

button,
input {
    overflow: visible;
}

button,
select {
    text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: button;
}

    button::-moz-focus-inner,
    [type="button"]::-moz-focus-inner,
    [type="reset"]::-moz-focus-inner,
    [type="submit"]::-moz-focus-inner {
        padding: 0;
        border-style: none;
    }

input[type="radio"],
input[type="checkbox"] {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 0;
}

input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
    -webkit-appearance: listbox;
}

textarea {
    overflow: auto;
    resize: vertical;
}

fieldset {
    min-width: 0;
    padding: 0;
    margin: 0;
    border: 0;
}


legend {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin-bottom: .5rem;
    font-size: 1.5rem;
    line-height: inherit;
    color: inherit;
    white-space: normal;
}

progress {
    vertical-align: baseline;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
    height: auto;
}

[type="search"] {
    outline-offset: -2px;
    -webkit-appearance: none;
}

    [type="search"]::-webkit-search-decoration {
        -webkit-appearance: none;
    }

::-webkit-file-upload-button {
    font: inherit;
    -webkit-appearance: button;
}

output {
    display: inline-block;
}

summary {
    display: list-item;
    cursor: pointer;
}

template {
    display: none;
}

[hidden] {
    display: none !important;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    margin-bottom: 0.5rem;
    font-family: inherit;
    font-weight: 500;
    line-height: 1.2;
    color: inherit;
}

h1, .h1 {
    font-size: 2.5rem;
}

h2, .h2 {
    font-size: 2rem;
}

h3, .h3 {
    font-size: 1.75rem;
}

h4, .h4 {
    font-size: 1.5rem;
}

h5, .h5 {
    font-size: 1.25rem;
}

h6, .h6 {
    font-size: 1rem;
}

.lead {
    font-size: 1.25rem;
    font-weight: 300;
}

.display-1 {
    font-size: 6rem;
    font-weight: 300;
    line-height: 1.2;
}

.display-2 {
    font-size: 5.5rem;
    font-weight: 300;
    line-height: 1.2;
}

.display-3 {
    font-size: 4.5rem;
    font-weight: 300;
    line-height: 1.2;
}

.display-4 {
    font-size: 3.5rem;
    font-weight: 300;
    line-height: 1.2;
}

hr {
    margin-top: 1rem;
    margin-bottom: 1rem;
    border: 0;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

small,
.small {
    font-size: 80%;
    font-weight: 400;
}

mark,
.mark {
    padding: 0.2em;
    background-color: #fcf8e3;
}

.list-unstyled {
    padding-left: 0;
    list-style: none;
}

.list-inline {
    padding-left: 0;
    list-style: none;
}

.list-inline-item {
    display: inline-block;
}

    .list-inline-item:not(:last-child) {
        margin-right: 0.5rem;
    }

.initialism {
    font-size: 90%;
    text-transform: uppercase;
}

.blockquote {
    margin-bottom: 1rem;
    font-size: 1.25rem;
}

.blockquote-footer {
    display: block;
    font-size: 80%;
    color: #6c757d;
}

    .blockquote-footer::before {
        content: "\2014\00A0";
    }

.img-fluid {
    max-width: 100%;
    height: auto;
}

.img-thumbnail {
    padding: 0.25rem;
    background-color: #fff;
    border: 1px solid #dee2e6;
    border-radius: 0.25rem;
    max-width: 100%;
    height: auto;
}

.figure {
    display: inline-block;
}

.figure-img {
    margin-bottom: 0.5rem;
    line-height: 1;
}

.figure-caption {
    font-size: 90%;
    color: #6c757d;
}

code {
    font-size: 87.5%;
    color: #e83e8c;
    word-break: break-word;
}

a > code {
    color: inherit;
}

kbd {
    padding: 0.2rem 0.4rem;
    font-size: 87.5%;
    color: #fff;
    background-color: #212529;
    border-radius: 0.2rem;
}

    kbd kbd {
        padding: 0;
        font-size: 100%;
        font-weight: 700;
    }

pre {
    display: block;
    font-size: 87.5%;
    color: #212529;
}

    pre code {
        font-size: inherit;
        color: inherit;
        word-break: normal;
    }

.pre-scrollable {
    max-height: 340px;
    overflow-y: scroll;
}

.container {
    width: 100%;

    margin-right: auto;
    margin-left: auto;
}
/*
@media (min-width: 576px) {
    .container {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .container {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .container {
        max-width: 1640px;
    }
}

@media (min-width: 1200px) {
    .container {
        max-width: 2000px;
    }
}
*/
.container-fluid {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

.row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

.no-gutters {
    margin-right: 0;
    margin-left: 0;
}

    .no-gutters > .col,
    .no-gutters > [class*="col-"] {
        padding-right: 0;
        padding-left: 0;
    }

.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
.col-xl-auto {
    position: relative;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
}

.col {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
}

.col-auto {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
}

.col-1 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 8.33333%;
    flex: 0 0 8.33333%;
    max-width: 8.33333%;
}

.col-2 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 16.66667%;
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
}

.col-3 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
}

.col-4 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 33.33333%;
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
}

.col-5 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 41.66667%;
    flex: 0 0 41.66667%;
    max-width: 41.66667%;
}

.col-6 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
}

.col-7 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 58.33333%;
    flex: 0 0 58.33333%;
    max-width: 58.33333%;
}

.col-8 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 66.66667%;
    flex: 0 0 66.66667%;
    max-width: 66.66667%;
}

.col-9 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
}

.col-10 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 83.33333%;
    flex: 0 0 83.33333%;
    max-width: 83.33333%;
}

.col-11 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 91.66667%;
    flex: 0 0 91.66667%;
    max-width: 91.66667%;
}

.col-12 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
}

.order-first {
    -webkit-box-ordinal-group: 0;
    -ms-flex-order: -1;
    order: -1;
}

.order-last {
    -webkit-box-ordinal-group: 14;
    -ms-flex-order: 13;
    order: 13;
}

.order-0 {
    -webkit-box-ordinal-group: 1;
    -ms-flex-order: 0;
    order: 0;
}

.order-1 {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
}

.order-2 {
    -webkit-box-ordinal-group: 3;
    -ms-flex-order: 2;
    order: 2;
}

.order-3 {
    -webkit-box-ordinal-group: 4;
    -ms-flex-order: 3;
    order: 3;
}

.order-4 {
    -webkit-box-ordinal-group: 5;
    -ms-flex-order: 4;
    order: 4;
}

.order-5 {
    -webkit-box-ordinal-group: 6;
    -ms-flex-order: 5;
    order: 5;
}

.order-6 {
    -webkit-box-ordinal-group: 7;
    -ms-flex-order: 6;
    order: 6;
}

.order-7 {
    -webkit-box-ordinal-group: 8;
    -ms-flex-order: 7;
    order: 7;
}

.order-8 {
    -webkit-box-ordinal-group: 9;
    -ms-flex-order: 8;
    order: 8;
}

.order-9 {
    -webkit-box-ordinal-group: 10;
    -ms-flex-order: 9;
    order: 9;
}

.order-10 {
    -webkit-box-ordinal-group: 11;
    -ms-flex-order: 10;
    order: 10;
}

.order-11 {
    -webkit-box-ordinal-group: 12;
    -ms-flex-order: 11;
    order: 11;
}

.order-12 {
    -webkit-box-ordinal-group: 13;
    -ms-flex-order: 12;
    order: 12;
}

.offset-1 {
    margin-left: 8.33333%;
}

.offset-2 {
    margin-left: 16.66667%;
}

.offset-3 {
    margin-left: 25%;
}

.offset-4 {
    margin-left: 33.33333%;
}

.offset-5 {
    margin-left: 41.66667%;
}

.offset-6 {
    margin-left: 50%;
}

.offset-7 {
    margin-left: 58.33333%;
}

.offset-8 {
    margin-left: 66.66667%;
}

.offset-9 {
    margin-left: 75%;
}

.offset-10 {
    margin-left: 83.33333%;
}

.offset-11 {
    margin-left: 91.66667%;
}

@media (min-width: 576px) {
    .col-sm {
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-box-flex: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
        max-width: 100%;
    }

    .col-sm-auto {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }

    .col-sm-1 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
        flex: 0 0 8.33333%;
        max-width: 8.33333%;
    }

    .col-sm-2 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
        flex: 0 0 16.66667%;
        max-width: 16.66667%;
    }

    .col-sm-3 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
        flex: 0 0 25%;
        max-width: 25%;
    }

    .col-sm-4 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
        flex: 0 0 33.33333%;
        max-width: 33.33333%;
    }

    .col-sm-5 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
        flex: 0 0 41.66667%;
        max-width: 41.66667%;
    }

    .col-sm-6 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-sm-7 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
        flex: 0 0 58.33333%;
        max-width: 58.33333%;
    }

    .col-sm-8 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
        flex: 0 0 66.66667%;
        max-width: 66.66667%;
    }

    .col-sm-9 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
        flex: 0 0 75%;
        max-width: 75%;
    }

    .col-sm-10 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
        flex: 0 0 83.33333%;
        max-width: 83.33333%;
    }

    .col-sm-11 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
        flex: 0 0 91.66667%;
        max-width: 91.66667%;
    }

    .col-sm-12 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }

    .order-sm-first {
        -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
        order: -1;
    }

    .order-sm-last {
        -webkit-box-ordinal-group: 14;
        -ms-flex-order: 13;
        order: 13;
    }

    .order-sm-0 {
        -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
        order: 0;
    }

    .order-sm-1 {
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
    }

    .order-sm-2 {
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
    }

    .order-sm-3 {
        -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
        order: 3;
    }

    .order-sm-4 {
        -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
        order: 4;
    }

    .order-sm-5 {
        -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
        order: 5;
    }

    .order-sm-6 {
        -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
        order: 6;
    }

    .order-sm-7 {
        -webkit-box-ordinal-group: 8;
        -ms-flex-order: 7;
        order: 7;
    }

    .order-sm-8 {
        -webkit-box-ordinal-group: 9;
        -ms-flex-order: 8;
        order: 8;
    }

    .order-sm-9 {
        -webkit-box-ordinal-group: 10;
        -ms-flex-order: 9;
        order: 9;
    }

    .order-sm-10 {
        -webkit-box-ordinal-group: 11;
        -ms-flex-order: 10;
        order: 10;
    }

    .order-sm-11 {
        -webkit-box-ordinal-group: 12;
        -ms-flex-order: 11;
        order: 11;
    }

    .order-sm-12 {
        -webkit-box-ordinal-group: 13;
        -ms-flex-order: 12;
        order: 12;
    }

    .offset-sm-0 {
        margin-left: 0;
    }

    .offset-sm-1 {
        margin-left: 8.33333%;
    }

    .offset-sm-2 {
        margin-left: 16.66667%;
    }

    .offset-sm-3 {
        margin-left: 25%;
    }

    .offset-sm-4 {
        margin-left: 33.33333%;
    }

    .offset-sm-5 {
        margin-left: 41.66667%;
    }

    .offset-sm-6 {
        margin-left: 50%;
    }

    .offset-sm-7 {
        margin-left: 58.33333%;
    }

    .offset-sm-8 {
        margin-left: 66.66667%;
    }

    .offset-sm-9 {
        margin-left: 75%;
    }

    .offset-sm-10 {
        margin-left: 83.33333%;
    }

    .offset-sm-11 {
        margin-left: 91.66667%;
    }
}

@media (min-width: 768px) {
    .col-md {
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-box-flex: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
        max-width: 100%;
    }

    .col-md-auto {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }

    .col-md-1 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
        flex: 0 0 8.33333%;
        max-width: 8.33333%;
    }

    .col-md-2 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
        flex: 0 0 16.66667%;
        max-width: 16.66667%;
    }

    .col-md-3 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
        flex: 0 0 25%;
        max-width: 25%;
    }

    .col-md-4 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
        flex: 0 0 33.33333%;
        max-width: 33.33333%;
    }

    .col-md-5 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
        flex: 0 0 41.66667%;
        max-width: 41.66667%;
    }

    .col-md-6 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-md-7 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
        flex: 0 0 58.33333%;
        max-width: 58.33333%;
    }

    .col-md-8 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
        flex: 0 0 66.66667%;
        max-width: 66.66667%;
    }

    .col-md-9 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
        flex: 0 0 75%;
        max-width: 75%;
    }

    .col-md-10 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
        flex: 0 0 83.33333%;
        max-width: 83.33333%;
    }

    .col-md-11 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
        flex: 0 0 91.66667%;
        max-width: 91.66667%;
    }

    .col-md-12 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }

    .order-md-first {
        -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
        order: -1;
    }

    .order-md-last {
        -webkit-box-ordinal-group: 14;
        -ms-flex-order: 13;
        order: 13;
    }

    .order-md-0 {
        -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
        order: 0;
    }

    .order-md-1 {
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
    }

    .order-md-2 {
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
    }

    .order-md-3 {
        -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
        order: 3;
    }

    .order-md-4 {
        -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
        order: 4;
    }

    .order-md-5 {
        -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
        order: 5;
    }

    .order-md-6 {
        -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
        order: 6;
    }

    .order-md-7 {
        -webkit-box-ordinal-group: 8;
        -ms-flex-order: 7;
        order: 7;
    }

    .order-md-8 {
        -webkit-box-ordinal-group: 9;
        -ms-flex-order: 8;
        order: 8;
    }

    .order-md-9 {
        -webkit-box-ordinal-group: 10;
        -ms-flex-order: 9;
        order: 9;
    }

    .order-md-10 {
        -webkit-box-ordinal-group: 11;
        -ms-flex-order: 10;
        order: 10;
    }

    .order-md-11 {
        -webkit-box-ordinal-group: 12;
        -ms-flex-order: 11;
        order: 11;
    }

    .order-md-12 {
        -webkit-box-ordinal-group: 13;
        -ms-flex-order: 12;
        order: 12;
    }

    .offset-md-0 {
        margin-left: 0;
    }

    .offset-md-1 {
        margin-left: 8.33333%;
    }

    .offset-md-2 {
        margin-left: 16.66667%;
    }

    .offset-md-3 {
        margin-left: 25%;
    }

    .offset-md-4 {
        margin-left: 33.33333%;
    }

    .offset-md-5 {
        margin-left: 41.66667%;
    }

    .offset-md-6 {
        margin-left: 50%;
    }

    .offset-md-7 {
        margin-left: 58.33333%;
    }

    .offset-md-8 {
        margin-left: 66.66667%;
    }

    .offset-md-9 {
        margin-left: 75%;
    }

    .offset-md-10 {
        margin-left: 83.33333%;
    }

    .offset-md-11 {
        margin-left: 91.66667%;
    }
}

@media (min-width: 992px) {
    .col-lg {
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-box-flex: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
        max-width: 100%;
    }

    .col-lg-auto {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }

    .col-lg-1 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
        flex: 0 0 8.33333%;
        max-width: 8.33333%;
    }

    .col-lg-2 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
        flex: 0 0 16.66667%;
        max-width: 16.66667%;
    }

    .col-lg-3 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
        flex: 0 0 25%;
        max-width: 25%;
    }

    .col-lg-4 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
        flex: 0 0 33.33333%;
        max-width: 33.33333%;
    }

    .col-lg-5 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
        flex: 0 0 41.66667%;
        max-width: 41.66667%;
    }

    .col-lg-6 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-lg-7 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
        flex: 0 0 58.33333%;
        max-width: 58.33333%;
    }

    .col-lg-8 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
        flex: 0 0 66.66667%;
        max-width: 66.66667%;
    }

    .col-lg-9 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
        flex: 0 0 75%;
        max-width: 75%;
    }

    .col-lg-10 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
        flex: 0 0 83.33333%;
        max-width: 83.33333%;
    }

    .col-lg-11 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
        flex: 0 0 91.66667%;
        max-width: 91.66667%;
    }

    .col-lg-12 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }

    .order-lg-first {
        -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
        order: -1;
    }

    .order-lg-last {
        -webkit-box-ordinal-group: 14;
        -ms-flex-order: 13;
        order: 13;
    }

    .order-lg-0 {
        -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
        order: 0;
    }

    .order-lg-1 {
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
    }

    .order-lg-2 {
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
    }

    .order-lg-3 {
        -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
        order: 3;
    }

    .order-lg-4 {
        -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
        order: 4;
    }

    .order-lg-5 {
        -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
        order: 5;
    }

    .order-lg-6 {
        -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
        order: 6;
    }

    .order-lg-7 {
        -webkit-box-ordinal-group: 8;
        -ms-flex-order: 7;
        order: 7;
    }

    .order-lg-8 {
        -webkit-box-ordinal-group: 9;
        -ms-flex-order: 8;
        order: 8;
    }

    .order-lg-9 {
        -webkit-box-ordinal-group: 10;
        -ms-flex-order: 9;
        order: 9;
    }

    .order-lg-10 {
        -webkit-box-ordinal-group: 11;
        -ms-flex-order: 10;
        order: 10;
    }

    .order-lg-11 {
        -webkit-box-ordinal-group: 12;
        -ms-flex-order: 11;
        order: 11;
    }

    .order-lg-12 {
        -webkit-box-ordinal-group: 13;
        -ms-flex-order: 12;
        order: 12;
    }

    .offset-lg-0 {
        margin-left: 0;
    }

    .offset-lg-1 {
        margin-left: 8.33333%;
    }

    .offset-lg-2 {
        margin-left: 16.66667%;
    }

    .offset-lg-3 {
        margin-left: 25%;
    }

    .offset-lg-4 {
        margin-left: 33.33333%;
    }

    .offset-lg-5 {
        margin-left: 41.66667%;
    }

    .offset-lg-6 {
        margin-left: 50%;
    }

    .offset-lg-7 {
        margin-left: 58.33333%;
    }

    .offset-lg-8 {
        margin-left: 66.66667%;
    }

    .offset-lg-9 {
        margin-left: 75%;
    }

    .offset-lg-10 {
        margin-left: 83.33333%;
    }

    .offset-lg-11 {
        margin-left: 91.66667%;
    }
}

@media (min-width: 1200px) {
    .col-xl {
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-box-flex: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
        max-width: 100%;
    }

    .col-xl-auto {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }

    .col-xl-1 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
        flex: 0 0 8.33333%;
        max-width: 8.33333%;
    }

    .col-xl-2 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
        flex: 0 0 16.66667%;
        max-width: 16.66667%;
    }

    .col-xl-3 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
        flex: 0 0 25%;
        max-width: 25%;
    }

    .col-xl-4 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
        flex: 0 0 33.33333%;
        max-width: 33.33333%;
    }

    .col-xl-5 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
        flex: 0 0 41.66667%;
        max-width: 41.66667%;
    }

    .col-xl-6 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-xl-7 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
        flex: 0 0 58.33333%;
        max-width: 58.33333%;
    }

    .col-xl-8 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
        flex: 0 0 66.66667%;
        max-width: 66.66667%;
    }

    .col-xl-9 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
        flex: 0 0 75%;
        max-width: 75%;
    }

    .col-xl-10 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
        flex: 0 0 83.33333%;
        max-width: 83.33333%;
    }

    .col-xl-11 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
        flex: 0 0 91.66667%;
        max-width: 91.66667%;
    }

    .col-xl-12 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }

    .order-xl-first {
        -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
        order: -1;
    }

    .order-xl-last {
        -webkit-box-ordinal-group: 14;
        -ms-flex-order: 13;
        order: 13;
    }

    .order-xl-0 {
        -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
        order: 0;
    }

    .order-xl-1 {
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
    }

    .order-xl-2 {
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
    }

    .order-xl-3 {
        -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
        order: 3;
    }

    .order-xl-4 {
        -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
        order: 4;
    }

    .order-xl-5 {
        -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
        order: 5;
    }

    .order-xl-6 {
        -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
        order: 6;
    }

    .order-xl-7 {
        -webkit-box-ordinal-group: 8;
        -ms-flex-order: 7;
        order: 7;
    }

    .order-xl-8 {
        -webkit-box-ordinal-group: 9;
        -ms-flex-order: 8;
        order: 8;
    }

    .order-xl-9 {
        -webkit-box-ordinal-group: 10;
        -ms-flex-order: 9;
        order: 9;
    }

    .order-xl-10 {
        -webkit-box-ordinal-group: 11;
        -ms-flex-order: 10;
        order: 10;
    }

    .order-xl-11 {
        -webkit-box-ordinal-group: 12;
        -ms-flex-order: 11;
        order: 11;
    }

    .order-xl-12 {
        -webkit-box-ordinal-group: 13;
        -ms-flex-order: 12;
        order: 12;
    }

    .offset-xl-0 {
        margin-left: 0;
    }

    .offset-xl-1 {
        margin-left: 8.33333%;
    }

    .offset-xl-2 {
        margin-left: 16.66667%;
    }

    .offset-xl-3 {
        margin-left: 25%;
    }

    .offset-xl-4 {
        margin-left: 33.33333%;
    }

    .offset-xl-5 {
        margin-left: 41.66667%;
    }

    .offset-xl-6 {
        margin-left: 50%;
    }

    .offset-xl-7 {
        margin-left: 58.33333%;
    }

    .offset-xl-8 {
        margin-left: 66.66667%;
    }

    .offset-xl-9 {
        margin-left: 75%;
    }

    .offset-xl-10 {
        margin-left: 83.33333%;
    }

    .offset-xl-11 {
        margin-left: 91.66667%;
    }
}

.table {
    width: 100%;
    margin-bottom: 1rem;
    background-color: transparent;
}

    .table th,
    .table td {
        padding: 0.75rem;
        vertical-align: top;
        border-top: 1px solid #dee2e6;
    }

    .table thead th {
        vertical-align: bottom;
        border-bottom: 2px solid #dee2e6;
    }

    .table tbody + tbody {
        border-top: 2px solid #dee2e6;
    }

    .table .table {
        background-color: #fff;
    }

.table-sm th,
.table-sm td {
    padding: 0.3rem;
}

.table-bordered {
    border: 1px solid #dee2e6;
}

    .table-bordered th,
    .table-bordered td {
        border: 1px solid #dee2e6;
    }

    .table-bordered thead th,
    .table-bordered thead td {
        border-bottom-width: 2px;
    }

.table-borderless th,
.table-borderless td,
.table-borderless thead th,
.table-borderless tbody + tbody {
    border: 0;
}

.table-striped tbody tr:nth-of-type(odd) {
    background-color: rgba(0, 0, 0, 0.05);
}

.table-hover tbody tr:hover {
    background-color: rgba(0, 0, 0, 0.075);
}

.table-primary,
.table-primary > th,
.table-primary > td {
    background-color: #b8daff;
}

    .table-primary th,
    .table-primary td,
    .table-primary thead th,
    .table-primary tbody + tbody {
        border-color: #7abaff;
    }

.table-hover .table-primary:hover {
    background-color: #9fcdff;
}

    .table-hover .table-primary:hover > td,
    .table-hover .table-primary:hover > th {
        background-color: #9fcdff;
    }

.table-secondary,
.table-secondary > th,
.table-secondary > td {
    background-color: #d6d8db;
}

    .table-secondary th,
    .table-secondary td,
    .table-secondary thead th,
    .table-secondary tbody + tbody {
        border-color: #b3b7bb;
    }

.table-hover .table-secondary:hover {
    background-color: #c8cbcf;
}

    .table-hover .table-secondary:hover > td,
    .table-hover .table-secondary:hover > th {
        background-color: #c8cbcf;
    }

.table-success,
.table-success > th,
.table-success > td {
    background-color: #c3e6cb;
}

    .table-success th,
    .table-success td,
    .table-success thead th,
    .table-success tbody + tbody {
        border-color: #8fd19e;
    }

.table-hover .table-success:hover {
    background-color: #b1dfbb;
}

    .table-hover .table-success:hover > td,
    .table-hover .table-success:hover > th {
        background-color: #b1dfbb;
    }

.table-info,
.table-info > th,
.table-info > td {
    background-color: #bee5eb;
}

    .table-info th,
    .table-info td,
    .table-info thead th,
    .table-info tbody + tbody {
        border-color: #86cfda;
    }

.table-hover .table-info:hover {
    background-color: #abdde5;
}

    .table-hover .table-info:hover > td,
    .table-hover .table-info:hover > th {
        background-color: #abdde5;
    }

.table-warning,
.table-warning > th,
.table-warning > td {
    background-color: #ffeeba;
}

    .table-warning th,
    .table-warning td,
    .table-warning thead th,
    .table-warning tbody + tbody {
        border-color: #ffdf7e;
    }

.table-hover .table-warning:hover {
    background-color: #ffe8a1;
}

    .table-hover .table-warning:hover > td,
    .table-hover .table-warning:hover > th {
        background-color: #ffe8a1;
    }

.table-danger,
.table-danger > th,
.table-danger > td {
    background-color: #f5c6cb;
}

    .table-danger th,
    .table-danger td,
    .table-danger thead th,
    .table-danger tbody + tbody {
        border-color: #ed969e;
    }

.table-hover .table-danger:hover {
    background-color: #f1b0b7;
}

    .table-hover .table-danger:hover > td,
    .table-hover .table-danger:hover > th {
        background-color: #f1b0b7;
    }

.table-light,
.table-light > th,
.table-light > td {
    background-color: #fdfdfe;
}

    .table-light th,
    .table-light td,
    .table-light thead th,
    .table-light tbody + tbody {
        border-color: #fbfcfc;
    }

.table-hover .table-light:hover {
    background-color: #ececf6;
}

    .table-hover .table-light:hover > td,
    .table-hover .table-light:hover > th {
        background-color: #ececf6;
    }

.table-dark,
.table-dark > th,
.table-dark > td {
    background-color: #c6c8ca;
}

    .table-dark th,
    .table-dark td,
    .table-dark thead th,
    .table-dark tbody + tbody {
        border-color: #95999c;
    }

.table-hover .table-dark:hover {
    background-color: #b9bbbe;
}

    .table-hover .table-dark:hover > td,
    .table-hover .table-dark:hover > th {
        background-color: #b9bbbe;
    }

.table-active,
.table-active > th,
.table-active > td {
    background-color: rgba(0, 0, 0, 0.075);
}

.table-hover .table-active:hover {
    background-color: rgba(0, 0, 0, 0.075);
}

    .table-hover .table-active:hover > td,
    .table-hover .table-active:hover > th {
        background-color: rgba(0, 0, 0, 0.075);
    }

.table .thead-dark th {
    color: #fff;
    background-color: #212529;
    border-color: #32383e;
}

.table .thead-light th {
    color: #495057;
    background-color: #e9ecef;
    border-color: #dee2e6;
}

.table-dark {
    color: #fff;
    background-color: #212529;
}

    .table-dark th,
    .table-dark td,
    .table-dark thead th {
        border-color: #32383e;
    }

    .table-dark.table-bordered {
        border: 0;
    }

    .table-dark.table-striped tbody tr:nth-of-type(odd) {
        background-color: rgba(255, 255, 255, 0.05);
    }

    .table-dark.table-hover tbody tr:hover {
        background-color: rgba(255, 255, 255, 0.075);
    }

@media (max-width: 575.98px) {
    .table-responsive-sm {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: -ms-autohiding-scrollbar;
    }

        .table-responsive-sm > .table-bordered {
            border: 0;
        }
}

@media (max-width: 767.98px) {
    .table-responsive-md {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: -ms-autohiding-scrollbar;
    }

        .table-responsive-md > .table-bordered {
            border: 0;
        }
}

@media (max-width: 991.98px) {
    .table-responsive-lg {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: -ms-autohiding-scrollbar;
    }

        .table-responsive-lg > .table-bordered {
            border: 0;
        }
}

@media (max-width: 1199.98px) {
    .table-responsive-xl {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: -ms-autohiding-scrollbar;
    }

        .table-responsive-xl > .table-bordered {
            border: 0;
        }
}

.table-responsive {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
}

    .table-responsive > .table-bordered {
        border: 0;
    }

.form-control {
    display: block;
    width: 100%;
    height: calc(2.25rem + 2px);
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    -o-transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
}

@media screen and (prefers-reduced-motion: reduce) {
    .form-control {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.form-control::-ms-expand {
    background-color: transparent;
    border: 0;
}

.form-control:focus {
    color: #495057;
    background-color: #fff;
    border-color: #80bdff;
    outline: 0;
    -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.form-control::-webkit-input-placeholder {
    color: #6c757d;
    opacity: 1;
}

.form-control:-ms-input-placeholder {
    color: #6c757d;
    opacity: 1;
}

.form-control::-ms-input-placeholder {
    color: #6c757d;
    opacity: 1;
}

.form-control::placeholder {
    color: #6c757d;
    opacity: 1;
}

.form-control:disabled, .form-control[readonly] {
    background-color: #e9ecef;
    opacity: 1;
}

select.form-control:focus::-ms-value {
    color: #495057;
    background-color: #fff;
}

.form-control-file,
.form-control-range {
    display: block;
    width: 100%;
}

.col-form-label {
    padding-top: calc(0.375rem + 1px);
    padding-bottom: calc(0.375rem + 1px);
    margin-bottom: 0;
    font-size: inherit;
    line-height: 1.5;
}

.col-form-label-lg {
    padding-top: calc(0.5rem + 1px);
    padding-bottom: calc(0.5rem + 1px);
    font-size: 1.25rem;
    line-height: 1.5;
}

.col-form-label-sm {
    padding-top: calc(0.25rem + 1px);
    padding-bottom: calc(0.25rem + 1px);
    font-size: 0.875rem;
    line-height: 1.5;
}

.form-control-plaintext {
    display: block;
    width: 100%;
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
    margin-bottom: 0;
    line-height: 1.5;
    color: #212529;
    background-color: transparent;
    border: solid transparent;
    border-width: 1px 0;
}

    .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
        padding-right: 0;
        padding-left: 0;
    }

.form-control-sm {
    height: calc(1.8125rem + 2px);
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 0.2rem;
}

.form-control-lg {
    height: calc(2.875rem + 2px);
    padding: 0.5rem 1rem;
    font-size: 1.25rem;
    line-height: 1.5;
    border-radius: 0.3rem;
}

select.form-control[size], select.form-control[multiple] {
    height: auto;
}

textarea.form-control {
    height: auto;
}

.form-group {
    margin-bottom: 1rem;
}

.form-text {
    display: block;
    margin-top: 0.25rem;
}

.form-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-right: -5px;
    margin-left: -5px;
}

    .form-row > .col,
    .form-row > [class*="col-"] {
        padding-right: 5px;
        padding-left: 5px;
    }

.form-check {
    position: relative;
    display: block;
    padding-left: 1.25rem;
}

.form-check-input {
    position: absolute;
    margin-top: 0.3rem;
    margin-left: -1.25rem;
}

    .form-check-input:disabled ~ .form-check-label {
        color: #6c757d;
    }

.form-check-label {
    margin-bottom: 0;
}

.form-check-inline {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding-left: 0;
    margin-right: 0.75rem;
}

    .form-check-inline .form-check-input {
        position: static;
        margin-top: 0;
        margin-right: 0.3125rem;
        margin-left: 0;
    }

.valid-feedback {
    display: none;
    width: 100%;
    margin-top: 0.25rem;
    font-size: 80%;
    color: #28a745;
}

.valid-tooltip {
    position: absolute;
    top: 100%;
    z-index: 5;
    display: none;
    max-width: 100%;
    padding: 0.25rem 0.5rem;
    margin-top: .1rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #fff;
    background-color: rgba(40, 167, 69, 0.9);
    border-radius: 0.25rem;
}

.was-validated .form-control:valid, .form-control.is-valid {
    border-color: #28a745;
    padding-right: 2.25rem;
    background-repeat: no-repeat;
    background-position: center right calc(2.25rem / 4);
    background-size: calc(2.25rem / 2) calc(2.25rem / 2);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
}

    .was-validated .form-control:valid:focus, .form-control.is-valid:focus {
        border-color: #28a745;
        -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
        box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
    }

    .was-validated .form-control:valid ~ .valid-feedback,
    .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,
    .form-control.is-valid ~ .valid-tooltip {
        display: block;
    }

.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
    padding-right: 2.25rem;
    background-position: top calc(2.25rem / 4) right calc(2.25rem / 4);
}

.was-validated .custom-select:valid, .custom-select.is-valid {
    border-color: #28a745;
    padding-right: 3.4375rem;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") no-repeat center right 1.75rem/1.125rem 1.125rem;
}

    .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {
        border-color: #28a745;
        -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
        box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
    }

    .was-validated .custom-select:valid ~ .valid-feedback,
    .was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,
    .custom-select.is-valid ~ .valid-tooltip {
        display: block;
    }

.was-validated .form-control-file:valid ~ .valid-feedback,
.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,
.form-control-file.is-valid ~ .valid-tooltip {
    display: block;
}

.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
    color: #28a745;
}

.was-validated .form-check-input:valid ~ .valid-feedback,
.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,
.form-check-input.is-valid ~ .valid-tooltip {
    display: block;
}

.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
    color: #28a745;
}

    .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
        border-color: #28a745;
    }

.was-validated .custom-control-input:valid ~ .valid-feedback,
.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,
.custom-control-input.is-valid ~ .valid-tooltip {
    display: block;
}

.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
    border-color: #34ce57;
    background-color: #34ce57;
}

.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
    -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {
    border-color: #28a745;
}

.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
    border-color: #28a745;
}

.was-validated .custom-file-input:valid ~ .valid-feedback,
.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,
.custom-file-input.is-valid ~ .valid-tooltip {
    display: block;
}

.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
    border-color: #28a745;
    -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.invalid-feedback {
    display: none;
    width: 100%;
    margin-top: 0.25rem;
    font-size: 80%;
    color: #dc3545;
}

.invalid-tooltip {
    position: absolute;
    top: 100%;
    z-index: 5;
    display: none;
    max-width: 100%;
    padding: 0.25rem 0.5rem;
    margin-top: .1rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #fff;
    background-color: rgba(220, 53, 69, 0.9);
    border-radius: 0.25rem;
}

.was-validated .form-control:invalid, .form-control.is-invalid {
    border-color: #dc3545;
    padding-right: 2.25rem;
    background-repeat: no-repeat;
    background-position: center right calc(2.25rem / 4);
    background-size: calc(2.25rem / 2) calc(2.25rem / 2);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");
}

    .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
        border-color: #dc3545;
        -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
        box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
    }

    .was-validated .form-control:invalid ~ .invalid-feedback,
    .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,
    .form-control.is-invalid ~ .invalid-tooltip {
        display: block;
    }

.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
    padding-right: 2.25rem;
    background-position: top calc(2.25rem / 4) right calc(2.25rem / 4);
}

.was-validated .custom-select:invalid, .custom-select.is-invalid {
    border-color: #dc3545;
    padding-right: 3.4375rem;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") no-repeat center right 1.75rem/1.125rem 1.125rem;
}

    .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {
        border-color: #dc3545;
        -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
        box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
    }

    .was-validated .custom-select:invalid ~ .invalid-feedback,
    .was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,
    .custom-select.is-invalid ~ .invalid-tooltip {
        display: block;
    }

.was-validated .form-control-file:invalid ~ .invalid-feedback,
.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,
.form-control-file.is-invalid ~ .invalid-tooltip {
    display: block;
}

.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
    color: #dc3545;
}

.was-validated .form-check-input:invalid ~ .invalid-feedback,
.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,
.form-check-input.is-invalid ~ .invalid-tooltip {
    display: block;
}

.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
    color: #dc3545;
}

    .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
        border-color: #dc3545;
    }

.was-validated .custom-control-input:invalid ~ .invalid-feedback,
.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,
.custom-control-input.is-invalid ~ .invalid-tooltip {
    display: block;
}

.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
    border-color: #e4606d;
    background-color: #e4606d;
}

.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
    -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {
    border-color: #dc3545;
}

.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
    border-color: #dc3545;
}

.was-validated .custom-file-input:invalid ~ .invalid-feedback,
.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,
.custom-file-input.is-invalid ~ .invalid-tooltip {
    display: block;
}

.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
    border-color: #dc3545;
    -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.form-inline {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

    .form-inline .form-check {
        width: 100%;
    }

@media (min-width: 576px) {
    .form-inline label {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        margin-bottom: 0;
    }

    .form-inline .form-group {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        margin-bottom: 0;
    }

    .form-inline .form-control {
        display: inline-block;
        width: auto;
        vertical-align: middle;
    }

    .form-inline .form-control-plaintext {
        display: inline-block;
    }

    .form-inline .input-group,
    .form-inline .custom-select {
        width: auto;
    }

    .form-inline .form-check {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        width: auto;
        padding-left: 0;
    }

    .form-inline .form-check-input {
        position: relative;
        margin-top: 0;
        margin-right: 0.25rem;
        margin-left: 0;
    }

    .form-inline .custom-control {
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
    }

    .form-inline .custom-control-label {
        margin-bottom: 0;
    }
}

.btn {
    display: inline-block;
    font-weight: 400;
    color: #212529;
    text-align: center;
    vertical-align: middle;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    background-color: transparent;
    border: 1px solid transparent;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    line-height: 1.5;
    border-radius: 0.25rem;
    -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    -o-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
}

@media screen and (prefers-reduced-motion: reduce) {
    .btn {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.btn:hover {
    color: #212529;
    text-decoration: none;
}

.btn:focus, .btn.focus {
    outline: 0;
    -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.btn.disabled, .btn:disabled {
    opacity: 0.65;
}

.btn:not(:disabled):not(.disabled) {
    cursor: pointer;
}

a.btn.disabled,
fieldset:disabled a.btn {
    pointer-events: none;
}

.btn-primary {
    color: #fff;
    background-color: #007bff;
    border-color: #007bff;
}

    .btn-primary:hover {
        color: #fff;
        background-color: #0069d9;
        border-color: #0062cc;
    }

    .btn-primary:focus, .btn-primary.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
    }

    .btn-primary.disabled, .btn-primary:disabled {
        color: #fff;
        background-color: #007bff;
        border-color: #007bff;
    }

    .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,
    .show > .btn-primary.dropdown-toggle {
        color: #fff;
        background-color: #0062cc;
        border-color: #005cbf;
    }

        .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
        .show > .btn-primary.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
        }

.btn-secondary {
    color: #fff;
    background-color: #6c757d;
    border-color: #6c757d;
}

    .btn-secondary:hover {
        color: #fff;
        background-color: #5a6268;
        border-color: #545b62;
    }

    .btn-secondary:focus, .btn-secondary.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
    }

    .btn-secondary.disabled, .btn-secondary:disabled {
        color: #fff;
        background-color: #6c757d;
        border-color: #6c757d;
    }

    .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,
    .show > .btn-secondary.dropdown-toggle {
        color: #fff;
        background-color: #545b62;
        border-color: #4e555b;
    }

        .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,
        .show > .btn-secondary.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
        }

.btn-success {
    color: #fff;
    background-color: #28a745;
    border-color: #28a745;
}

    .btn-success:hover {
        color: #fff;
        background-color: #218838;
        border-color: #1e7e34;
    }

    .btn-success:focus, .btn-success.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
    }

    .btn-success.disabled, .btn-success:disabled {
        color: #fff;
        background-color: #28a745;
        border-color: #28a745;
    }

    .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,
    .show > .btn-success.dropdown-toggle {
        color: #fff;
        background-color: #1e7e34;
        border-color: #1c7430;
    }

        .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,
        .show > .btn-success.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
        }

.btn-info {
    color: #fff;
    background-color: #17a2b8;
    border-color: #17a2b8;
}

    .btn-info:hover {
        color: #fff;
        background-color: #138496;
        border-color: #117a8b;
    }

    .btn-info:focus, .btn-info.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
    }

    .btn-info.disabled, .btn-info:disabled {
        color: #fff;
        background-color: #17a2b8;
        border-color: #17a2b8;
    }

    .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,
    .show > .btn-info.dropdown-toggle {
        color: #fff;
        background-color: #117a8b;
        border-color: #10707f;
    }

        .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,
        .show > .btn-info.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
        }

.btn-warning {
    color: #212529;
    background-color: #ffc107;
    border-color: #ffc107;
}

    .btn-warning:hover {
        color: #212529;
        background-color: #e0a800;
        border-color: #d39e00;
    }

    .btn-warning:focus, .btn-warning.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);
    }

    .btn-warning.disabled, .btn-warning:disabled {
        color: #212529;
        background-color: #ffc107;
        border-color: #ffc107;
    }

    .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,
    .show > .btn-warning.dropdown-toggle {
        color: #212529;
        background-color: #d39e00;
        border-color: #c69500;
    }

        .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,
        .show > .btn-warning.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);
        }

.btn-danger {
    color: #fff;
    background-color: #dc3545;
    border-color: #dc3545;
}

    .btn-danger:hover {
        color: #fff;
        background-color: #c82333;
        border-color: #bd2130;
    }

    .btn-danger:focus, .btn-danger.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
    }

    .btn-danger.disabled, .btn-danger:disabled {
        color: #fff;
        background-color: #dc3545;
        border-color: #dc3545;
    }

    .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,
    .show > .btn-danger.dropdown-toggle {
        color: #fff;
        background-color: #bd2130;
        border-color: #b21f2d;
    }

        .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,
        .show > .btn-danger.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
        }

.btn-light {
    color: #212529;
    background-color: #f8f9fa;
    border-color: #f8f9fa;
}

    .btn-light:hover {
        color: #212529;
        background-color: #e2e6ea;
        border-color: #dae0e5;
    }

    .btn-light:focus, .btn-light.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
    }

    .btn-light.disabled, .btn-light:disabled {
        color: #212529;
        background-color: #f8f9fa;
        border-color: #f8f9fa;
    }

    .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,
    .show > .btn-light.dropdown-toggle {
        color: #212529;
        background-color: #dae0e5;
        border-color: #d3d9df;
    }

        .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,
        .show > .btn-light.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
        }

.btn-dark {
    color: #fff;
    background-color: #343a40;
    border-color: #343a40;
}

    .btn-dark:hover {
        color: #fff;
        background-color: #23272b;
        border-color: #1d2124;
    }

    .btn-dark:focus, .btn-dark.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
    }

    .btn-dark.disabled, .btn-dark:disabled {
        color: #fff;
        background-color: #343a40;
        border-color: #343a40;
    }

    .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,
    .show > .btn-dark.dropdown-toggle {
        color: #fff;
        background-color: #1d2124;
        border-color: #171a1d;
    }

        .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,
        .show > .btn-dark.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
        }

.btn-outline-primary {
    color: #007bff;
    border-color: #007bff;
}

    .btn-outline-primary:hover {
        color: #fff;
        background-color: #007bff;
        border-color: #007bff;
    }

    .btn-outline-primary:focus, .btn-outline-primary.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
    }

    .btn-outline-primary.disabled, .btn-outline-primary:disabled {
        color: #007bff;
        background-color: transparent;
    }

    .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,
    .show > .btn-outline-primary.dropdown-toggle {
        color: #fff;
        background-color: #007bff;
        border-color: #007bff;
    }

        .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,
        .show > .btn-outline-primary.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
        }

.btn-outline-secondary {
    color: #6c757d;
    border-color: #6c757d;
}

    .btn-outline-secondary:hover {
        color: #fff;
        background-color: #6c757d;
        border-color: #6c757d;
    }

    .btn-outline-secondary:focus, .btn-outline-secondary.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
    }

    .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
        color: #6c757d;
        background-color: transparent;
    }

    .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,
    .show > .btn-outline-secondary.dropdown-toggle {
        color: #fff;
        background-color: #6c757d;
        border-color: #6c757d;
    }

        .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
        .show > .btn-outline-secondary.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
        }

.btn-outline-success {
    color: #28a745;
    border-color: #28a745;
}

    .btn-outline-success:hover {
        color: #fff;
        background-color: #28a745;
        border-color: #28a745;
    }

    .btn-outline-success:focus, .btn-outline-success.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
    }

    .btn-outline-success.disabled, .btn-outline-success:disabled {
        color: #28a745;
        background-color: transparent;
    }

    .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,
    .show > .btn-outline-success.dropdown-toggle {
        color: #fff;
        background-color: #28a745;
        border-color: #28a745;
    }

        .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,
        .show > .btn-outline-success.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
        }

.btn-outline-info {
    color: #17a2b8;
    border-color: #17a2b8;
}

    .btn-outline-info:hover {
        color: #fff;
        background-color: #17a2b8;
        border-color: #17a2b8;
    }

    .btn-outline-info:focus, .btn-outline-info.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
    }

    .btn-outline-info.disabled, .btn-outline-info:disabled {
        color: #17a2b8;
        background-color: transparent;
    }

    .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,
    .show > .btn-outline-info.dropdown-toggle {
        color: #fff;
        background-color: #17a2b8;
        border-color: #17a2b8;
    }

        .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,
        .show > .btn-outline-info.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
        }

.btn-outline-warning {
    color: #ffc107;
    border-color: #ffc107;
}

    .btn-outline-warning:hover {
        color: #212529;
        background-color: #ffc107;
        border-color: #ffc107;
    }

    .btn-outline-warning:focus, .btn-outline-warning.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
    }

    .btn-outline-warning.disabled, .btn-outline-warning:disabled {
        color: #ffc107;
        background-color: transparent;
    }

    .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,
    .show > .btn-outline-warning.dropdown-toggle {
        color: #212529;
        background-color: #ffc107;
        border-color: #ffc107;
    }

        .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,
        .show > .btn-outline-warning.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
        }

.btn-outline-danger {
    color: #dc3545;
    border-color: #dc3545;
}

    .btn-outline-danger:hover {
        color: #fff;
        background-color: #dc3545;
        border-color: #dc3545;
    }

    .btn-outline-danger:focus, .btn-outline-danger.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
    }

    .btn-outline-danger.disabled, .btn-outline-danger:disabled {
        color: #dc3545;
        background-color: transparent;
    }

    .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,
    .show > .btn-outline-danger.dropdown-toggle {
        color: #fff;
        background-color: #dc3545;
        border-color: #dc3545;
    }

        .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,
        .show > .btn-outline-danger.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
        }

.btn-outline-light {
    color: #f8f9fa;
    border-color: #f8f9fa;
}

    .btn-outline-light:hover {
        color: #212529;
        background-color: #f8f9fa;
        border-color: #f8f9fa;
    }

    .btn-outline-light:focus, .btn-outline-light.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
    }

    .btn-outline-light.disabled, .btn-outline-light:disabled {
        color: #f8f9fa;
        background-color: transparent;
    }

    .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,
    .show > .btn-outline-light.dropdown-toggle {
        color: #212529;
        background-color: #f8f9fa;
        border-color: #f8f9fa;
    }

        .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,
        .show > .btn-outline-light.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
        }

.btn-outline-dark {
    color: #343a40;
    border-color: #343a40;
}

    .btn-outline-dark:hover {
        color: #fff;
        background-color: #343a40;
        border-color: #343a40;
    }

    .btn-outline-dark:focus, .btn-outline-dark.focus {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
    }

    .btn-outline-dark.disabled, .btn-outline-dark:disabled {
        color: #343a40;
        background-color: transparent;
    }

    .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,
    .show > .btn-outline-dark.dropdown-toggle {
        color: #fff;
        background-color: #343a40;
        border-color: #343a40;
    }

        .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,
        .show > .btn-outline-dark.dropdown-toggle:focus {
            -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
            box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
        }

.btn-link {
    font-weight: 400;
    color: #007bff;
}

    .btn-link:hover {
        color: #0056b3;
        text-decoration: underline;
    }

    .btn-link:focus, .btn-link.focus {
        text-decoration: underline;
        -webkit-box-shadow: none;
        box-shadow: none;
    }

    .btn-link:disabled, .btn-link.disabled {
        color: #6c757d;
        pointer-events: none;
    }

.btn-lg, .btn-group-lg > .btn {
    padding: 0.5rem 1rem;
    font-size: 1.25rem;
    line-height: 1.5;
    border-radius: 0.3rem;
}

.btn-sm, .btn-group-sm > .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 0.2rem;
}

.btn-block {
    display: block;
    width: 100%;
}

    .btn-block + .btn-block {
        margin-top: 0.5rem;
    }

input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
    width: 100%;
}

.fade {
    -webkit-transition: opacity 0.15s linear;
    -o-transition: opacity 0.15s linear;
    transition: opacity 0.15s linear;
}

@media screen and (prefers-reduced-motion: reduce) {
    .fade {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.fade:not(.show) {
    opacity: 0;
}

.collapse:not(.show) {
    display: none;
}

.collapsing {
    position: relative;
    height: 0;
    overflow: hidden;
    -webkit-transition: height 0.35s ease;
    -o-transition: height 0.35s ease;
    transition: height 0.35s ease;
}

@media screen and (prefers-reduced-motion: reduce) {
    .collapsing {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.dropup,
.dropright,
.dropdown,
.dropleft {
    position: relative;
}

.dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.255em;
    vertical-align: 0.255em;
    border-top: 0.3em solid;
    border-right: 0.3em solid transparent;
    border-bottom: 0;
    border-left: 0.3em solid transparent;
}

.dropdown-toggle:empty::after {
    margin-left: 0;
}

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    display: none;
    float: left;
    min-width: 10rem;
    padding: 0.5rem 0;
    margin: 0.125rem 0 0;
    font-size: 1rem;
    color: #212529;
    text-align: left;
    list-style: none;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 0.25rem;
}

.dropdown-menu-right {
    right: 0;
    left: auto;
}

@media (min-width: 576px) {
    .dropdown-menu-sm-right {
        right: 0;
        left: auto;
    }
}

@media (min-width: 768px) {
    .dropdown-menu-md-right {
        right: 0;
        left: auto;
    }
}

@media (min-width: 992px) {
    .dropdown-menu-lg-right {
        right: 0;
        left: auto;
    }
}

@media (min-width: 1200px) {
    .dropdown-menu-xl-right {
        right: 0;
        left: auto;
    }
}

.dropdown-menu-left {
    right: auto;
    left: 0;
}

@media (min-width: 576px) {
    .dropdown-menu-sm-left {
        right: auto;
        left: 0;
    }
}

@media (min-width: 768px) {
    .dropdown-menu-md-left {
        right: auto;
        left: 0;
    }
}

@media (min-width: 992px) {
    .dropdown-menu-lg-left {
        right: auto;
        left: 0;
    }
}

@media (min-width: 1200px) {
    .dropdown-menu-xl-left {
        right: auto;
        left: 0;
    }
}

.dropup .dropdown-menu {
    top: auto;
    bottom: 100%;
    margin-top: 0;
    margin-bottom: 0.125rem;
}

.dropup .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.255em;
    vertical-align: 0.255em;
    content: "";
    border-top: 0;
    border-right: 0.3em solid transparent;
    border-bottom: 0.3em solid;
    border-left: 0.3em solid transparent;
}

.dropup .dropdown-toggle:empty::after {
    margin-left: 0;
}

.dropright .dropdown-menu {
    top: 0;
    right: auto;
    left: 100%;
    margin-top: 0;
    margin-left: 0.125rem;
}

.dropright .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.255em;
    vertical-align: 0.255em;
    content: "";
    border-top: 0.3em solid transparent;
    border-right: 0;
    border-bottom: 0.3em solid transparent;
    border-left: 0.3em solid;
}

.dropright .dropdown-toggle:empty::after {
    margin-left: 0;
}

.dropright .dropdown-toggle::after {
    vertical-align: 0;
}

.dropleft .dropdown-menu {
    top: 0;
    right: 100%;
    left: auto;
    margin-top: 0;
    margin-right: 0.125rem;
}

.dropleft .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.255em;
    vertical-align: 0.255em;
    content: "";
}

.dropleft .dropdown-toggle::after {
    display: none;
}

.dropleft .dropdown-toggle::before {
    display: inline-block;
    margin-right: 0.255em;
    vertical-align: 0.255em;
    content: "";
    border-top: 0.3em solid transparent;
    border-right: 0.3em solid;
    border-bottom: 0.3em solid transparent;
}

.dropleft .dropdown-toggle:empty::after {
    margin-left: 0;
}

.dropleft .dropdown-toggle::before {
    vertical-align: 0;
}

.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {
    right: auto;
    bottom: auto;
}

.dropdown-divider {
    height: 0;
    margin: 0.5rem 0;
    overflow: hidden;
    border-top: 1px solid #e9ecef;
}

.dropdown-item {
    display: block;
    width: 25%;
    padding: 0.25rem 1.5rem;
    clear: both;
    font-weight: 400;
    color: #212529;
    text-align: inherit;
    white-space: nowrap;
    background-color: transparent;
    border: 0;
}

    .dropdown-item:first-child {
        border-top-left-radius: calc(0.25rem - 1px);
        border-top-right-radius: calc(0.25rem - 1px);
    }

    .dropdown-item:last-child {
        border-bottom-right-radius: calc(0.25rem - 1px);
        border-bottom-left-radius: calc(0.25rem - 1px);
    }

    .dropdown-item:hover, .dropdown-item:focus {
        color: #16181b;
        text-decoration: none;
        background-color: #f8f9fa;
    }

    .dropdown-item.active, .dropdown-item:active {
        color: #fff;
        text-decoration: none;
        background-color: #007bff;
    }

    .dropdown-item.disabled, .dropdown-item:disabled {
        color: #6c757d;
        pointer-events: none;
        background-color: transparent;
    }

.dropdown-menu.show {
    display: block;
}

.dropdown-header {
    display: block;
    padding: 0.5rem 1.5rem;
    margin-bottom: 0;
    font-size: 0.875rem;
    color: #6c757d;
    white-space: nowrap;
}

.dropdown-item-text {
    display: block;
    padding: 0.25rem 1.5rem;
    color: #212529;
}

.btn-group,
.btn-group-vertical {
    position: relative;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    vertical-align: middle;
}

    .btn-group > .btn,
    .btn-group-vertical > .btn {
        position: relative;
        -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    }

        .btn-group > .btn:hover,
        .btn-group-vertical > .btn:hover {
            z-index: 1;
        }

        .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
        .btn-group-vertical > .btn:focus,
        .btn-group-vertical > .btn:active,
        .btn-group-vertical > .btn.active {
            z-index: 1;
        }

.btn-toolbar {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
}

    .btn-toolbar .input-group {
        width: auto;
    }

.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) {
    margin-left: -1px;
}

.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group > .btn-group:not(:last-child) > .btn {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) > .btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.dropdown-toggle-split {
    padding-right: 0.5625rem;
    padding-left: 0.5625rem;
}

    .dropdown-toggle-split::after,
    .dropup .dropdown-toggle-split::after,
    .dropright .dropdown-toggle-split::after {
        margin-left: 0;
    }

.dropleft .dropdown-toggle-split::before {
    margin-right: 0;
}

.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
    padding-right: 0.375rem;
    padding-left: 0.375rem;
}

.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
    padding-right: 0.75rem;
    padding-left: 0.75rem;
}

.btn-group-vertical {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}

    .btn-group-vertical > .btn,
    .btn-group-vertical > .btn-group {
        width: 100%;
    }

        .btn-group-vertical > .btn:not(:first-child),
        .btn-group-vertical > .btn-group:not(:first-child) {
            margin-top: -1px;
        }

        .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
        .btn-group-vertical > .btn-group:not(:last-child) > .btn {
            border-bottom-right-radius: 0;
            border-bottom-left-radius: 0;
        }

        .btn-group-vertical > .btn:not(:first-child),
        .btn-group-vertical > .btn-group:not(:first-child) > .btn {
            border-top-left-radius: 0;
            border-top-right-radius: 0;
        }

.btn-group-toggle > .btn,
.btn-group-toggle > .btn-group > .btn {
    margin-bottom: 0;
}

    .btn-group-toggle > .btn input[type="radio"],
    .btn-group-toggle > .btn input[type="checkbox"],
    .btn-group-toggle > .btn-group > .btn input[type="radio"],
    .btn-group-toggle > .btn-group > .btn input[type="checkbox"] {
        position: absolute;
        clip: rect(0, 0, 0, 0);
        pointer-events: none;
    }

.input-group {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    width: 100%;
}

    .input-group > .form-control,
    .input-group > .form-control-plaintext,
    .input-group > .custom-select,
    .input-group > .custom-file {
        position: relative;
        -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
        flex: 1 1 auto;
        width: 1%;
        margin-bottom: 0;
    }

        .input-group > .form-control + .form-control,
        .input-group > .form-control + .custom-select,
        .input-group > .form-control + .custom-file,
        .input-group > .form-control-plaintext + .form-control,
        .input-group > .form-control-plaintext + .custom-select,
        .input-group > .form-control-plaintext + .custom-file,
        .input-group > .custom-select + .form-control,
        .input-group > .custom-select + .custom-select,
        .input-group > .custom-select + .custom-file,
        .input-group > .custom-file + .form-control,
        .input-group > .custom-file + .custom-select,
        .input-group > .custom-file + .custom-file {
            margin-left: -1px;
        }

        .input-group > .form-control:focus,
        .input-group > .custom-select:focus,
        .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {
            z-index: 3;
        }

        .input-group > .custom-file .custom-file-input:focus {
            z-index: 4;
        }

        .input-group > .form-control:not(:last-child),
        .input-group > .custom-select:not(:last-child) {
            border-top-right-radius: 0;
            border-bottom-right-radius: 0;
        }

        .input-group > .form-control:not(:first-child),
        .input-group > .custom-select:not(:first-child) {
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
        }

    .input-group > .custom-file {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
    }

        .input-group > .custom-file:not(:last-child) .custom-file-label,
        .input-group > .custom-file:not(:last-child) .custom-file-label::after {
            border-top-right-radius: 0;
            border-bottom-right-radius: 0;
        }

        .input-group > .custom-file:not(:first-child) .custom-file-label {
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
        }

.input-group-prepend,
.input-group-append {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

    .input-group-prepend .btn,
    .input-group-append .btn {
        position: relative;
        z-index: 2;
    }

        .input-group-prepend .btn:focus,
        .input-group-append .btn:focus {
            z-index: 3;
        }

        .input-group-prepend .btn + .btn,
        .input-group-prepend .btn + .input-group-text,
        .input-group-prepend .input-group-text + .input-group-text,
        .input-group-prepend .input-group-text + .btn,
        .input-group-append .btn + .btn,
        .input-group-append .btn + .input-group-text,
        .input-group-append .input-group-text + .input-group-text,
        .input-group-append .input-group-text + .btn {
            margin-left: -1px;
        }

.input-group-prepend {
    margin-right: -1px;
}

.input-group-append {
    margin-left: -1px;
}

.input-group-text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 0.375rem 0.75rem;
    margin-bottom: 0;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    text-align: center;
    white-space: nowrap;
    background-color: #e9ecef;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
}

    .input-group-text input[type="radio"],
    .input-group-text input[type="checkbox"] {
        margin-top: 0;
    }

.input-group-lg > .form-control:not(textarea),
.input-group-lg > .custom-select {
    height: calc(2.875rem + 2px);
}

.input-group-lg > .form-control,
.input-group-lg > .custom-select,
.input-group-lg > .input-group-prepend > .input-group-text,
.input-group-lg > .input-group-append > .input-group-text,
.input-group-lg > .input-group-prepend > .btn,
.input-group-lg > .input-group-append > .btn {
    padding: 0.5rem 1rem;
    font-size: 1.25rem;
    line-height: 1.5;
    border-radius: 0.3rem;
}

.input-group-sm > .form-control:not(textarea),
.input-group-sm > .custom-select {
    height: calc(1.8125rem + 2px);
}

.input-group-sm > .form-control,
.input-group-sm > .custom-select,
.input-group-sm > .input-group-prepend > .input-group-text,
.input-group-sm > .input-group-append > .input-group-text,
.input-group-sm > .input-group-prepend > .btn,
.input-group-sm > .input-group-append > .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 0.2rem;
}

.input-group-lg > .custom-select,
.input-group-sm > .custom-select {
    padding-right: 1.75rem;
}

.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text,
.input-group > .input-group-append:not(:last-child) > .btn,
.input-group > .input-group-append:not(:last-child) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend:not(:first-child) > .btn,
.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.custom-control {
    position: relative;
    display: block;
    min-height: 1.5rem;
    padding-left: 1.5rem;
}

.custom-control-inline {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    margin-right: 1rem;
}

.custom-control-input {
    position: absolute;
    z-index: -1;
    opacity: 0;
}

    .custom-control-input:checked ~ .custom-control-label::before {
        color: #fff;
        border-color: #007bff;
        background-color: #007bff;
    }

    .custom-control-input:focus ~ .custom-control-label::before {
        -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
        box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
    }

    .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
        border-color: #80bdff;
    }

    .custom-control-input:not(:disabled):active ~ .custom-control-label::before {
        color: #fff;
        background-color: #b3d7ff;
        border-color: #b3d7ff;
    }

    .custom-control-input:disabled ~ .custom-control-label {
        color: #6c757d;
    }

        .custom-control-input:disabled ~ .custom-control-label::before {
            background-color: #e9ecef;
        }

.custom-control-label {
    position: relative;
    margin-bottom: 0;
    vertical-align: top;
}

    .custom-control-label::before {
        position: absolute;
        top: 0.25rem;
        left: -1.5rem;
        display: block;
        width: 1rem;
        height: 1rem;
        pointer-events: none;
        content: "";
        background-color: #fff;
        border: #adb5bd solid 1px;
    }

    .custom-control-label::after {
        position: absolute;
        top: 0.25rem;
        left: -1.5rem;
        display: block;
        width: 1rem;
        height: 1rem;
        content: "";
        background-repeat: no-repeat;
        background-position: center center;
        background-size: 50% 50%;
    }

.custom-checkbox .custom-control-label::before {
    border-radius: 0.25rem;
}

.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e");
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
    border-color: #007bff;
    background-color: #007bff;
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e");
}

.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
    background-color: rgba(0, 123, 255, 0.5);
}

.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
    background-color: rgba(0, 123, 255, 0.5);
}

.custom-radio .custom-control-label::before {
    border-radius: 50%;
}

.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
    background-color: rgba(0, 123, 255, 0.5);
}

.custom-switch {
    padding-left: 2.25rem;
}

    .custom-switch .custom-control-label::before {
        left: -2.25rem;
        width: 1.75rem;
        pointer-events: all;
        border-radius: 0.5rem;
    }

    .custom-switch .custom-control-label::after {
        top: calc(0.25rem + 2px);
        left: calc(-2.25rem + 2px);
        width: calc(1rem - 4px);
        height: calc(1rem - 4px);
        background-color: #adb5bd;
        border-radius: 0.5rem;
        -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
        transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
        -o-transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
        transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
        transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    }

@media screen and (prefers-reduced-motion: reduce) {
    .custom-switch .custom-control-label::after {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
    background-color: #fff;
    -webkit-transform: translateX(0.75rem);
    -ms-transform: translateX(0.75rem);
    transform: translateX(0.75rem);
}

.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
    background-color: rgba(0, 123, 255, 0.5);
}

.custom-select {
    display: inline-block;
    width: 100%;
    height: calc(2.25rem + 2px);
    padding: 0.375rem 1.75rem 0.375rem 0.75rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    vertical-align: middle;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px;
    background-color: #fff;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

    .custom-select:focus {
        border-color: #80bdff;
        outline: 0;
        -webkit-box-shadow: 0 0 0 0.2rem rgba(128, 189, 255, 0.5);
        box-shadow: 0 0 0 0.2rem rgba(128, 189, 255, 0.5);
    }

        .custom-select:focus::-ms-value {
            color: #495057;
            background-color: #fff;
        }

    .custom-select[multiple], .custom-select[size]:not([size="1"]) {
        height: auto;
        padding-right: 0.75rem;
        background-image: none;
    }

    .custom-select:disabled {
        color: #6c757d;
        background-color: #e9ecef;
    }

    .custom-select::-ms-expand {
        opacity: 0;
    }

.custom-select-sm {
    height: calc(1.8125rem + 2px);
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    padding-left: 0.5rem;
    font-size: 0.875rem;
}

.custom-select-lg {
    height: calc(2.875rem + 2px);
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 1rem;
    font-size: 1.25rem;
}

.custom-file {
    position: relative;
    display: inline-block;
    width: 100%;
    height: calc(2.25rem + 2px);
    margin-bottom: 0;
}

.custom-file-input {
    position: relative;
    z-index: 2;
    width: 100%;
    height: calc(2.25rem + 2px);
    margin: 0;
    opacity: 0;
}

    .custom-file-input:focus ~ .custom-file-label {
        border-color: #80bdff;
        -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
        box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
    }

    .custom-file-input:disabled ~ .custom-file-label {
        background-color: #e9ecef;
    }

    .custom-file-input:lang(en) ~ .custom-file-label::after {
        content: "Browse";
    }

    .custom-file-input ~ .custom-file-label[data-browse]::after {
        content: attr(data-browse);
    }

.custom-file-label {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1;
    height: calc(2.25rem + 2px);
    padding: 0.375rem 0.75rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: #fff;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
}

    .custom-file-label::after {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        z-index: 3;
        display: block;
        height: 2.25rem;
        padding: 0.375rem 0.75rem;
        line-height: 1.5;
        color: #495057;
        content: "Browse";
        background-color: #e9ecef;
        border-left: inherit;
        border-radius: 0 0.25rem 0.25rem 0;
    }

.custom-range {
    width: 100%;
    height: calc(1rem + 0.4rem);
    padding: 0;
    background-color: transparent;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

    .custom-range:focus {
        outline: none;
    }

        .custom-range:focus::-webkit-slider-thumb {
            -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
            box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
        }

        .custom-range:focus::-moz-range-thumb {
            box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
        }

        .custom-range:focus::-ms-thumb {
            box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
        }

    .custom-range::-moz-focus-outer {
        border: 0;
    }

    .custom-range::-webkit-slider-thumb {
        width: 1rem;
        height: 1rem;
        margin-top: -0.25rem;
        background-color: #007bff;
        border: 0;
        border-radius: 1rem;
        -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
        transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
        -o-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
        transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
        transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
        -webkit-appearance: none;
        appearance: none;
    }

@media screen and (prefers-reduced-motion: reduce) {
    .custom-range::-webkit-slider-thumb {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.custom-range::-webkit-slider-thumb:active {
    background-color: #b3d7ff;
}

.custom-range::-webkit-slider-runnable-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background-color: #dee2e6;
    border-color: transparent;
    border-radius: 1rem;
}

.custom-range::-moz-range-thumb {
    width: 1rem;
    height: 1rem;
    background-color: #007bff;
    border: 0;
    border-radius: 1rem;
    -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    -o-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    -moz-appearance: none;
    appearance: none;
}

@media screen and (prefers-reduced-motion: reduce) {
    .custom-range::-moz-range-thumb {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.custom-range::-moz-range-thumb:active {
    background-color: #b3d7ff;
}

.custom-range::-moz-range-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background-color: #dee2e6;
    border-color: transparent;
    border-radius: 1rem;
}

.custom-range::-ms-thumb {
    width: 1rem;
    height: 1rem;
    margin-top: 0;
    margin-right: 0.2rem;
    margin-left: 0.2rem;
    background-color: #007bff;
    border: 0;
    border-radius: 1rem;
    -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    -o-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    appearance: none;
}

@media screen and (prefers-reduced-motion: reduce) {
    .custom-range::-ms-thumb {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.custom-range::-ms-thumb:active {
    background-color: #b3d7ff;
}

.custom-range::-ms-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background-color: transparent;
    border-color: transparent;
    border-width: 0.5rem;
}

.custom-range::-ms-fill-lower {
    background-color: #dee2e6;
    border-radius: 1rem;
}

.custom-range::-ms-fill-upper {
    margin-right: 15px;
    background-color: #dee2e6;
    border-radius: 1rem;
}

.custom-range:disabled::-webkit-slider-thumb {
    background-color: #adb5bd;
}

.custom-range:disabled::-webkit-slider-runnable-track {
    cursor: default;
}

.custom-range:disabled::-moz-range-thumb {
    background-color: #adb5bd;
}

.custom-range:disabled::-moz-range-track {
    cursor: default;
}

.custom-range:disabled::-ms-thumb {
    background-color: #adb5bd;
}

.custom-control-label::before,
.custom-file-label,
.custom-select {
    -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    -o-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
}

@media screen and (prefers-reduced-motion: reduce) {
    .custom-control-label::before,
    .custom-file-label,
    .custom-select {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.nav {
  

    padding-left: 0;
    list-style: none;
}

.nav-link {
    display: block;
    padding: 0.5rem 1rem;
}

    .nav-link:hover, .nav-link:focus {
        text-decoration: none;
    }

    .nav-link.disabled {
        color: #6c757d;
        pointer-events: none;
        cursor: default;
    }

.nav-tabs {
    border-bottom: 1px solid #dee2e6;
}

    .nav-tabs .nav-item {
        margin-bottom: -1px;
    }

    .nav-tabs .nav-link {
        border: 1px solid transparent;
        border-top-left-radius: 0.25rem;
        border-top-right-radius: 0.25rem;
    }

        .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
            border-color: #e9ecef #e9ecef #dee2e6;
        }

        .nav-tabs .nav-link.disabled {
            color: #6c757d;
            background-color: transparent;
            border-color: transparent;
        }

        .nav-tabs .nav-link.active,
        .nav-tabs .nav-item.show .nav-link {
            color: #495057;
            background-color: #fff;
            border-color: #dee2e6 #dee2e6 #fff;
        }

    .nav-tabs .dropdown-menu {
        margin-top: -1px;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }

.nav-pills .nav-link {
    border-radius: 0.25rem;
}

    .nav-pills .nav-link.active,
    .nav-pills .show > .nav-link {
        color: #fff;
        background-color: #007bff;
    }

.nav-fill .nav-item {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    text-align: center;
}

.nav-justified .nav-item {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    text-align: center;
}

.tab-content > .tab-pane {
    display: none;
}

.tab-content > .active {
    display: block;
}

.navbar {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding: 0.5rem 1rem;
}

    .navbar > .container,
    .navbar > .container-fluid {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }

.navbar-brand {
    display: inline-block;
    padding-top: 0.3125rem;
    padding-bottom: 0.3125rem;
    margin-right: 1rem;
    font-size: 1.25rem;
    line-height: inherit;
    white-space: nowrap;
}

    .navbar-brand:hover, .navbar-brand:focus {
        text-decoration: none;
    }

.navbar-nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

    .navbar-nav .nav-link {
        padding-right: 0;
        padding-left: 0;
    }

    .navbar-nav .dropdown-menu {
        position: static;
        float: none;
    }

.navbar-text {
    display: inline-block;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.navbar-collapse {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.navbar-toggler {
    padding: 0.25rem 0.75rem;
    font-size: 1.25rem;
    line-height: 1;
    background-color: transparent;
    border: 1px solid transparent;
    border-radius: 0.25rem;
}

    .navbar-toggler:hover, .navbar-toggler:focus {
        text-decoration: none;
    }

    .navbar-toggler:not(:disabled):not(.disabled) {
        cursor: pointer;
    }

.navbar-toggler-icon {
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    vertical-align: middle;
    content: "";
    background: no-repeat center center;
    background-size: 100% 100%;
}

@media (max-width: 575.98px) {
    .navbar-expand-sm > .container,
    .navbar-expand-sm > .container-fluid {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 576px) {
    .navbar-expand-sm {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-flow: row nowrap;
        flex-flow: row nowrap;
        -webkit-box-pack: start;
        -ms-flex-pack: start;
        justify-content: flex-start;
    }

        .navbar-expand-sm .navbar-nav {
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
            -ms-flex-direction: row;
            flex-direction: row;
        }

            .navbar-expand-sm .navbar-nav .dropdown-menu {
                position: absolute;
            }

            .navbar-expand-sm .navbar-nav .nav-link {
                padding-right: 0.5rem;
                padding-left: 0.5rem;
            }

        .navbar-expand-sm > .container,
        .navbar-expand-sm > .container-fluid {
            -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
        }

        .navbar-expand-sm .navbar-collapse {
            display: -webkit-box !important;
            display: -ms-flexbox !important;
            display: flex !important;
            -ms-flex-preferred-size: auto;
            flex-basis: auto;
        }

        .navbar-expand-sm .navbar-toggler {
            display: none;
        }
}

@media (max-width: 767.98px) {
    .navbar-expand-md > .container,
    .navbar-expand-md > .container-fluid {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 768px) {
    .navbar-expand-md {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-flow: row nowrap;
        flex-flow: row nowrap;
        -webkit-box-pack: start;
        -ms-flex-pack: start;
        justify-content: flex-start;
    }

        .navbar-expand-md .navbar-nav {
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
            -ms-flex-direction: row;
            flex-direction: row;
        }

            .navbar-expand-md .navbar-nav .dropdown-menu {
                position: absolute;
            }

            .navbar-expand-md .navbar-nav .nav-link {
                padding-right: 0.5rem;
                padding-left: 0.5rem;
            }

        .navbar-expand-md > .container,
        .navbar-expand-md > .container-fluid {
            -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
        }

        .navbar-expand-md .navbar-collapse {
            display: -webkit-box !important;
            display: -ms-flexbox !important;
            display: flex !important;
            -ms-flex-preferred-size: auto;
            flex-basis: auto;
        }

        .navbar-expand-md .navbar-toggler {
            display: none;
        }
}

@media (max-width: 991.98px) {
    .navbar-expand-lg > .container,
    .navbar-expand-lg > .container-fluid {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 992px) {
    .navbar-expand-lg {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-flow: row nowrap;
        flex-flow: row nowrap;
        -webkit-box-pack: start;
        -ms-flex-pack: start;
        justify-content: flex-start;
    }

        .navbar-expand-lg .navbar-nav {
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
            -ms-flex-direction: row;
            flex-direction: row;
        }

            .navbar-expand-lg .navbar-nav .dropdown-menu {
                position: absolute;
            }

            .navbar-expand-lg .navbar-nav .nav-link {
                padding-right: 0.5rem;
                padding-left: 0.5rem;
            }

        .navbar-expand-lg > .container,
        .navbar-expand-lg > .container-fluid {
            -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
        }

        .navbar-expand-lg .navbar-collapse {
            display: -webkit-box !important;
            display: -ms-flexbox !important;
            display: flex !important;
            -ms-flex-preferred-size: auto;
            flex-basis: auto;
        }

        .navbar-expand-lg .navbar-toggler {
            display: none;
        }
}

@media (max-width: 1199.98px) {
    .navbar-expand-xl > .container,
    .navbar-expand-xl > .container-fluid {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 1200px) {
    .navbar-expand-xl {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-flow: row nowrap;
        flex-flow: row nowrap;
        -webkit-box-pack: start;
        -ms-flex-pack: start;
        justify-content: flex-start;
    }

        .navbar-expand-xl .navbar-nav {
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
            -ms-flex-direction: row;
            flex-direction: row;
        }

            .navbar-expand-xl .navbar-nav .dropdown-menu {
                position: absolute;
            }

            .navbar-expand-xl .navbar-nav .nav-link {
                padding-right: 0.5rem;
                padding-left: 0.5rem;
            }

        .navbar-expand-xl > .container,
        .navbar-expand-xl > .container-fluid {
            -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
        }

        .navbar-expand-xl .navbar-collapse {
            display: -webkit-box !important;
            display: -ms-flexbox !important;
            display: flex !important;
            -ms-flex-preferred-size: auto;
            flex-basis: auto;
        }

        .navbar-expand-xl .navbar-toggler {
            display: none;
        }
}

.navbar-expand {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-flow: row nowrap;
    flex-flow: row nowrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
}

    .navbar-expand > .container,
    .navbar-expand > .container-fluid {
        padding-right: 0;
        padding-left: 0;
    }

    .navbar-expand .navbar-nav {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
    }

        .navbar-expand .navbar-nav .dropdown-menu {
            position: absolute;
        }

        .navbar-expand .navbar-nav .nav-link {
            padding-right: 0.5rem;
            padding-left: 0.5rem;
        }

    .navbar-expand > .container,
    .navbar-expand > .container-fluid {
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    }

    .navbar-expand .navbar-collapse {
        display: -webkit-box !important;
        display: -ms-flexbox !important;
        display: flex !important;
        -ms-flex-preferred-size: auto;
        flex-basis: auto;
    }

    .navbar-expand .navbar-toggler {
        display: none;
    }

.navbar-light .navbar-brand {
    color: rgba(0, 0, 0, 0.9);
}

    .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
        color: rgba(0, 0, 0, 0.9);
    }

.navbar-light .navbar-nav .nav-link {
    color: rgba(0, 0, 0, 0.5);
}

    .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
        color: rgba(0, 0, 0, 0.7);
    }

    .navbar-light .navbar-nav .nav-link.disabled {
        color: rgba(0, 0, 0, 0.3);
    }

    .navbar-light .navbar-nav .show > .nav-link,
    .navbar-light .navbar-nav .active > .nav-link,
    .navbar-light .navbar-nav .nav-link.show,
    .navbar-light .navbar-nav .nav-link.active {
        color: rgba(0, 0, 0, 0.9);
    }

.navbar-light .navbar-toggler {
    color: rgba(0, 0, 0, 0.5);
    border-color: rgba(0, 0, 0, 0.1);
}

.navbar-light .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-light .navbar-text {
    color: rgba(0, 0, 0, 0.5);
}

    .navbar-light .navbar-text a {
        color: rgba(0, 0, 0, 0.9);
    }

        .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
            color: rgba(0, 0, 0, 0.9);
        }

.navbar-dark .navbar-brand {
    color: #fff;
}

    .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
        color: #fff;
    }

.navbar-dark .navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.5);
}

    .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
        color: rgba(255, 255, 255, 0.75);
    }

    .navbar-dark .navbar-nav .nav-link.disabled {
        color: rgba(255, 255, 255, 0.25);
    }

    .navbar-dark .navbar-nav .show > .nav-link,
    .navbar-dark .navbar-nav .active > .nav-link,
    .navbar-dark .navbar-nav .nav-link.show,
    .navbar-dark .navbar-nav .nav-link.active {
        color: #fff;
    }

.navbar-dark .navbar-toggler {
    color: rgba(255, 255, 255, 0.5);
    border-color: rgba(255, 255, 255, 0.1);
}

.navbar-dark .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-dark .navbar-text {
    color: rgba(255, 255, 255, 0.5);
}

    .navbar-dark .navbar-text a {
        color: #fff;
    }

        .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
            color: #fff;
        }

.owl-stage {
    height: 500px;
}

.card {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: #fff;
    background-clip: border-box;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 0.25rem;
}

    .card > hr {
        margin-right: 0;
        margin-left: 0;
    }

    .card > .list-group:first-child .list-group-item:first-child {
        border-top-left-radius: 0.25rem;
        border-top-right-radius: 0.25rem;
    }

    .card > .list-group:last-child .list-group-item:last-child {
        border-bottom-right-radius: 0.25rem;
        border-bottom-left-radius: 0.25rem;
    }

.card-body {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    padding: 1.25rem;
}

.card-title {
    margin-bottom: 0.75rem;
}

.card-subtitle {
    margin-top: -0.375rem;
    margin-bottom: 0;
}

.card-text:last-child {
    margin-bottom: 0;
}

.card-link:hover {
    text-decoration: none;
}

.card-link + .card-link {
    margin-left: 1.25rem;
}

.card-header {
    padding: 0.75rem 1.25rem;
    margin-bottom: 0;
    color: inherit;
    background-color: rgba(0, 0, 0, 0.03);
    border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}

    .card-header:first-child {
        border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
    }

    .card-header + .list-group .list-group-item:first-child {
        border-top: 0;
    }

.card-footer {
    padding: 0.75rem 1.25rem;
    background-color: rgba(0, 0, 0, 0.03);
    border-top: 1px solid rgba(0, 0, 0, 0.125);
}

    .card-footer:last-child {
        border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
    }

.card-header-tabs {
    margin-right: -0.625rem;
    margin-bottom: -0.75rem;
    margin-left: -0.625rem;
    border-bottom: 0;
}

.card-header-pills {
    margin-right: -0.625rem;
    margin-left: -0.625rem;
}

.card-img-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 1.25rem;
}

.card-img {
    width: 100%;
    border-radius: calc(0.25rem - 1px);
}

.card-img-top {
    width: 100%;
    border-top-left-radius: calc(0.25rem - 1px);
    border-top-right-radius: calc(0.25rem - 1px);
}

.card-img-bottom {
    width: 100%;
    border-bottom-right-radius: calc(0.25rem - 1px);
    border-bottom-left-radius: calc(0.25rem - 1px);
}

.card-deck {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}

    .card-deck .card {
        margin-bottom: 15px;
    }

@media (min-width: 576px) {
    .card-deck {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
        margin-right: -15px;
        margin-left: -15px;
    }

        .card-deck .card {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-flex: 1;
            -ms-flex: 1 0 0%;
            flex: 1 0 0%;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
            -ms-flex-direction: column;
            flex-direction: column;
            margin-right: 15px;
            margin-bottom: 0;
            margin-left: 15px;
        }
}

.card-group {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}

    .card-group > .card {
        margin-bottom: 15px;
    }

@media (min-width: 576px) {
    .card-group {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
    }

        .card-group > .card {
            -webkit-box-flex: 1;
            -ms-flex: 1 0 0%;
            flex: 1 0 0%;
            margin-bottom: 0;
        }

            .card-group > .card + .card {
                margin-left: 0;
                border-left: 0;
            }

            .card-group > .card:first-child {
                border-top-right-radius: 0;
                border-bottom-right-radius: 0;
            }

                .card-group > .card:first-child .card-img-top,
                .card-group > .card:first-child .card-header {
                    border-top-right-radius: 0;
                }

                .card-group > .card:first-child .card-img-bottom,
                .card-group > .card:first-child .card-footer {
                    border-bottom-right-radius: 0;
                }

            .card-group > .card:last-child {
                border-top-left-radius: 0;
                border-bottom-left-radius: 0;
            }

                .card-group > .card:last-child .card-img-top,
                .card-group > .card:last-child .card-header {
                    border-top-left-radius: 0;
                }

                .card-group > .card:last-child .card-img-bottom,
                .card-group > .card:last-child .card-footer {
                    border-bottom-left-radius: 0;
                }

            .card-group > .card:only-child {
                border-radius: 0.25rem;
            }

                .card-group > .card:only-child .card-img-top,
                .card-group > .card:only-child .card-header {
                    border-top-left-radius: 0.25rem;
                    border-top-right-radius: 0.25rem;
                }

                .card-group > .card:only-child .card-img-bottom,
                .card-group > .card:only-child .card-footer {
                    border-bottom-right-radius: 0.25rem;
                    border-bottom-left-radius: 0.25rem;
                }

            .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {
                border-radius: 0;
            }

                .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
                .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,
                .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,
                .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {
                    border-radius: 0;
                }
}

.card-columns .card {
    margin-bottom: 0.75rem;
}

@media (min-width: 576px) {
    .card-columns {
        -webkit-column-count: 3;
        column-count: 3;
        -webkit-column-gap: 1.25rem;
        column-gap: 1.25rem;
        orphans: 1;
        widows: 1;
    }

        .card-columns .card {
            display: inline-block;
            width: 100%;
        }
}

.accordion .card {
    overflow: hidden;
}

    .accordion .card:not(:first-of-type) .card-header:first-child {
        border-radius: 0;
    }

    .accordion .card:not(:first-of-type):not(:last-of-type) {
        border-bottom: 0;
        border-radius: 0;
    }

    .accordion .card:first-of-type {
        border-bottom: 0;
        border-bottom-right-radius: 0;
        border-bottom-left-radius: 0;
    }

    .accordion .card:last-of-type {
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }

    .accordion .card .card-header {
        margin-bottom: -1px;
    }

.breadcrumb {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    list-style: none;
    background-color: #e9ecef;
    border-radius: 0.25rem;
}

.breadcrumb-item + .breadcrumb-item {
    padding-left: 0.5rem;
}

    .breadcrumb-item + .breadcrumb-item::before {
        display: inline-block;
        padding-right: 0.5rem;
        color: #6c757d;
        content: "/";
    }

    .breadcrumb-item + .breadcrumb-item:hover::before {
        text-decoration: underline;
    }

    .breadcrumb-item + .breadcrumb-item:hover::before {
        text-decoration: none;
    }

.breadcrumb-item.active {
    color: #6c757d;
}

.pagination {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding-left: 0;
    list-style: none;
    border-radius: 0.25rem;
}

.page-link {
    position: relative;
    display: block;
    padding: 0.5rem 0.75rem;
    margin-left: -1px;
    line-height: 1.25;
    color: #007bff;
    background-color: #fff;
    border: 1px solid #dee2e6;
}

    .page-link:hover {
        z-index: 2;
        color: #0056b3;
        text-decoration: none;
        background-color: #e9ecef;
        border-color: #dee2e6;
    }

    .page-link:focus {
        z-index: 2;
        outline: 0;
        -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
        box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
    }

    .page-link:not(:disabled):not(.disabled) {
        cursor: pointer;
    }

.page-item:first-child .page-link {
    margin-left: 0;
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
}

.page-item:last-child .page-link {
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
}

.page-item.active .page-link {
    z-index: 1;
    color: #fff;
    background-color: #007bff;
    border-color: #007bff;
}

.page-item.disabled .page-link {
    color: #6c757d;
    pointer-events: none;
    cursor: auto;
    background-color: #fff;
    border-color: #dee2e6;
}

.pagination-lg .page-link {
    padding: 0.75rem 1.5rem;
    font-size: 1.25rem;
    line-height: 1.5;
}

.pagination-lg .page-item:first-child .page-link {
    border-top-left-radius: 0.3rem;
    border-bottom-left-radius: 0.3rem;
}

.pagination-lg .page-item:last-child .page-link {
    border-top-right-radius: 0.3rem;
    border-bottom-right-radius: 0.3rem;
}

.pagination-sm .page-link {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
}

.pagination-sm .page-item:first-child .page-link {
    border-top-left-radius: 0.2rem;
    border-bottom-left-radius: 0.2rem;
}

.pagination-sm .page-item:last-child .page-link {
    border-top-right-radius: 0.2rem;
    border-bottom-right-radius: 0.2rem;
}

.badge {
    display: inline-block;
    padding: 0.25em 0.4em;
    font-size: 75%;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: 0.25rem;
}

a.badge:hover, a.badge:focus {
    text-decoration: none;
}

.badge:empty {
    display: none;
}

.btn .badge {
    position: relative;
    top: -1px;
}

.badge-pill {
    padding-right: 0.6em;
    padding-left: 0.6em;
    border-radius: 10rem;
}

.badge-primary {
    color: #fff;
    background-color: #007bff;
}

a.badge-primary:hover, a.badge-primary:focus {
    color: #fff;
    background-color: #0062cc;
}

.badge-secondary {
    color: #fff;
    background-color: #6c757d;
}

a.badge-secondary:hover, a.badge-secondary:focus {
    color: #fff;
    background-color: #545b62;
}

.badge-success {
    color: #fff;
    background-color: #28a745;
}

a.badge-success:hover, a.badge-success:focus {
    color: #fff;
    background-color: #1e7e34;
}

.badge-info {
    color: #fff;
    background-color: #17a2b8;
}

a.badge-info:hover, a.badge-info:focus {
    color: #fff;
    background-color: #117a8b;
}

.badge-warning {
    color: #212529;
    background-color: #ffc107;
}

a.badge-warning:hover, a.badge-warning:focus {
    color: #212529;
    background-color: #d39e00;
}

.badge-danger {
    color: #fff;
    background-color: #dc3545;
}

a.badge-danger:hover, a.badge-danger:focus {
    color: #fff;
    background-color: #bd2130;
}

.badge-light {
    color: #212529;
    background-color: #f8f9fa;
}

a.badge-light:hover, a.badge-light:focus {
    color: #212529;
    background-color: #dae0e5;
}

.badge-dark {
    color: #fff;
    background-color: #343a40;
}

a.badge-dark:hover, a.badge-dark:focus {
    color: #fff;
    background-color: #1d2124;
}

.jumbotron {
    padding: 2rem 1rem;
    margin-bottom: 2rem;
    background-color: #e9ecef;
    border-radius: 0.3rem;
}

@media (min-width: 576px) {
    .jumbotron {
        padding: 4rem 2rem;
    }
}

.jumbotron-fluid {
    padding-right: 0;
    padding-left: 0;
    border-radius: 0;
}

.alert {
    position: relative;
    padding: 0.75rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: 0.25rem;
}

.alert-heading {
    color: inherit;
}

.alert-link {
    font-weight: 700;
}

.alert-dismissible {
    padding-right: 4rem;
}

    .alert-dismissible .close {
        position: absolute;
        top: 0;
        right: 0;
        padding: 0.75rem 1.25rem;
        color: inherit;
    }

.alert-primary {
    color: #004085;
    background-color: #cce5ff;
    border-color: #b8daff;
}

    .alert-primary hr {
        border-top-color: #9fcdff;
    }

    .alert-primary .alert-link {
        color: #002752;
    }

.alert-secondary {
    color: #383d41;
    background-color: #e2e3e5;
    border-color: #d6d8db;
}

    .alert-secondary hr {
        border-top-color: #c8cbcf;
    }

    .alert-secondary .alert-link {
        color: #202326;
    }

.alert-success {
    color: #155724;
    background-color: #d4edda;
    border-color: #c3e6cb;
}

    .alert-success hr {
        border-top-color: #b1dfbb;
    }

    .alert-success .alert-link {
        color: #0b2e13;
    }

.alert-info {
    color: #0c5460;
    background-color: #d1ecf1;
    border-color: #bee5eb;
}

    .alert-info hr {
        border-top-color: #abdde5;
    }

    .alert-info .alert-link {
        color: #062c33;
    }

.alert-warning {
    color: #856404;
    background-color: #fff3cd;
    border-color: #ffeeba;
}

    .alert-warning hr {
        border-top-color: #ffe8a1;
    }

    .alert-warning .alert-link {
        color: #533f03;
    }

.alert-danger {
    color: #721c24;
    background-color: #f8d7da;
    border-color: #f5c6cb;
}

    .alert-danger hr {
        border-top-color: #f1b0b7;
    }

    .alert-danger .alert-link {
        color: #491217;
    }

.alert-light {
    color: #818182;
    background-color: #fefefe;
    border-color: #fdfdfe;
}

    .alert-light hr {
        border-top-color: #ececf6;
    }

    .alert-light .alert-link {
        color: #686868;
    }

.alert-dark {
    color: #1b1e21;
    background-color: #d6d8d9;
    border-color: #c6c8ca;
}

    .alert-dark hr {
        border-top-color: #b9bbbe;
    }

    .alert-dark .alert-link {
        color: #040505;
    }

@-webkit-keyframes progress-bar-stripes {
    from {
        background-position: 1rem 0;
    }

    to {
        background-position: 0 0;
    }
}

@keyframes progress-bar-stripes {
    from {
        background-position: 1rem 0;
    }

    to {
        background-position: 0 0;
    }
}

.progress {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 1rem;
    overflow: hidden;
    font-size: 0.75rem;
    background-color: #e9ecef;
    border-radius: 0.25rem;
}

.progress-bar {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    background-color: #007bff;
    -webkit-transition: width 0.6s ease;
    -o-transition: width 0.6s ease;
    transition: width 0.6s ease;
}

@media screen and (prefers-reduced-motion: reduce) {
    .progress-bar {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.progress-bar-striped {
    background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
    background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
    background-size: 1rem 1rem;
}

.progress-bar-animated {
    -webkit-animation: progress-bar-stripes 1s linear infinite;
    animation: progress-bar-stripes 1s linear infinite;
}

.media {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
}

.media-body {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
}

.list-group {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    padding-left: 0;
    margin-bottom: 0;
}

.list-group-item-action {
    width: 100%;
    color: #495057;
    text-align: inherit;
}

    .list-group-item-action:hover, .list-group-item-action:focus {
        color: #495057;
        text-decoration: none;
        background-color: #f8f9fa;
    }

    .list-group-item-action:active {
        color: #212529;
        background-color: #e9ecef;
    }

.list-group-item {
    position: relative;
    display: block;
    padding: 0.75rem 1.25rem;
    margin-bottom: -1px;
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, 0.125);
}

    .list-group-item:first-child {
        border-top-left-radius: 0.25rem;
        border-top-right-radius: 0.25rem;
    }

    .list-group-item:last-child {
        margin-bottom: 0;
        border-bottom-right-radius: 0.25rem;
        border-bottom-left-radius: 0.25rem;
    }

    .list-group-item:hover, .list-group-item:focus {
        z-index: 1;
        text-decoration: none;
    }

    .list-group-item.disabled, .list-group-item:disabled {
        color: #6c757d;
        pointer-events: none;
        background-color: #fff;
    }

    .list-group-item.active {
        z-index: 2;
        color: #fff;
        background-color: #007bff;
        border-color: #007bff;
    }

.list-group-flush .list-group-item {
    border-right: 0;
    border-left: 0;
    border-radius: 0;
}

    .list-group-flush .list-group-item:last-child {
        margin-bottom: -1px;
    }

.list-group-flush:first-child .list-group-item:first-child {
    border-top: 0;
}

.list-group-flush:last-child .list-group-item:last-child {
    margin-bottom: 0;
    border-bottom: 0;
}

.list-group-item-primary {
    color: #004085;
    background-color: #b8daff;
}

    .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
        color: #004085;
        background-color: #9fcdff;
    }

    .list-group-item-primary.list-group-item-action.active {
        color: #fff;
        background-color: #004085;
        border-color: #004085;
    }

.list-group-item-secondary {
    color: #383d41;
    background-color: #d6d8db;
}

    .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
        color: #383d41;
        background-color: #c8cbcf;
    }

    .list-group-item-secondary.list-group-item-action.active {
        color: #fff;
        background-color: #383d41;
        border-color: #383d41;
    }

.list-group-item-success {
    color: #155724;
    background-color: #c3e6cb;
}

    .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
        color: #155724;
        background-color: #b1dfbb;
    }

    .list-group-item-success.list-group-item-action.active {
        color: #fff;
        background-color: #155724;
        border-color: #155724;
    }

.list-group-item-info {
    color: #0c5460;
    background-color: #bee5eb;
}

    .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
        color: #0c5460;
        background-color: #abdde5;
    }

    .list-group-item-info.list-group-item-action.active {
        color: #fff;
        background-color: #0c5460;
        border-color: #0c5460;
    }

.list-group-item-warning {
    color: #856404;
    background-color: #ffeeba;
}

    .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
        color: #856404;
        background-color: #ffe8a1;
    }

    .list-group-item-warning.list-group-item-action.active {
        color: #fff;
        background-color: #856404;
        border-color: #856404;
    }

.list-group-item-danger {
    color: #721c24;
    background-color: #f5c6cb;
}

    .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
        color: #721c24;
        background-color: #f1b0b7;
    }

    .list-group-item-danger.list-group-item-action.active {
        color: #fff;
        background-color: #721c24;
        border-color: #721c24;
    }

.list-group-item-light {
    color: #818182;
    background-color: #fdfdfe;
}

    .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
        color: #818182;
        background-color: #ececf6;
    }

    .list-group-item-light.list-group-item-action.active {
        color: #fff;
        background-color: #818182;
        border-color: #818182;
    }

.list-group-item-dark {
    color: #1b1e21;
    background-color: #c6c8ca;
}

    .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
        color: #1b1e21;
        background-color: #b9bbbe;
    }

    .list-group-item-dark.list-group-item-action.active {
        color: #fff;
        background-color: #1b1e21;
        border-color: #1b1e21;
    }

.close {
    float: right;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: #000;
    text-shadow: 0 1px 0 #fff;
    opacity: .5;
}

    .close:hover {
        color: #000;
        text-decoration: none;
    }

    .close:not(:disabled):not(.disabled) {
        cursor: pointer;
    }

        .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
            opacity: .75;
        }

button.close {
    padding: 0;
    background-color: transparent;
    border: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

a.close.disabled {
    pointer-events: none;
}

.toast {
    max-width: 350px;
    overflow: hidden;
    font-size: 0.875rem;
    background-color: rgba(255, 255, 255, 0.85);
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 0.25rem;
    -webkit-box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    opacity: 0;
}

    .toast:not(:last-child) {
        margin-bottom: 0.75rem;
    }

    .toast.showing {
        opacity: 1;
    }

    .toast.show {
        display: block;
        opacity: 1;
    }

    .toast.hide {
        display: none;
    }

.toast-header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 0.25rem 0.75rem;
    color: #6c757d;
    background-color: rgba(255, 255, 255, 0.85);
    background-clip: padding-box;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.toast-body {
    padding: 0.75rem;
}

.modal-open {
    overflow: hidden;
}

    .modal-open .modal {
        overflow-x: hidden;
        overflow-y: auto;
    }

.modal {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1050;
    display: none;
    width: 100%;
    height: 100%;
    overflow: hidden;
    outline: 0;
}

.modal-dialog {
    position: relative;
    width: auto;
    margin: 0.5rem;
}

.modal.fade .modal-dialog {
    -webkit-transition: -webkit-transform 0.3s ease-out;
    transition: -webkit-transform 0.3s ease-out;
    -o-transition: transform 0.3s ease-out;
    transition: transform 0.3s ease-out;
    transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
    -webkit-transform: translate(0, -50px);
    -ms-transform: translate(0, -50px);
    transform: translate(0, -50px);
}

@media screen and (prefers-reduced-motion: reduce) {
    .modal.fade .modal-dialog {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.modal.show .modal-dialog {
    -webkit-transform: none;
    -ms-transform: none;
    transform: none;
}

.modal-dialog-centered {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    min-height: calc(100% - (0.5rem * 2));
}

    .modal-dialog-centered::before {
        display: block;
        height: calc(100vh - (0.5rem * 2));
        content: "";
    }

.modal-content {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    width: 100%;
    pointer-events: auto;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 0.3rem;
    outline: 0;
}

.modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1040;
    width: 100vw;
    height: 100vh;
    background-color: #000;
}

    .modal-backdrop.fade {
        opacity: 0;
    }

    .modal-backdrop.show {
        opacity: 0.5;
    }

.modal-header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding: 1rem 1rem;
    border-bottom: 1px solid #e9ecef;
    border-top-left-radius: 0.3rem;
    border-top-right-radius: 0.3rem;
}

    .modal-header .close {
        padding: 1rem 1rem;
        margin: -1rem -1rem -1rem auto;
    }

.modal-title {
    margin-bottom: 0;
    line-height: 1.5;
}

.modal-body {
    position: relative;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    padding: 1rem;
}

.modal-footer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    padding: 1rem;
    border-top: 1px solid #e9ecef;
    border-bottom-right-radius: 0.3rem;
    border-bottom-left-radius: 0.3rem;
}

    .modal-footer > :not(:first-child) {
        margin-left: .25rem;
    }

    .modal-footer > :not(:last-child) {
        margin-right: .25rem;
    }

.modal-scrollbar-measure {
    position: absolute;
    top: -9999px;
    width: 50px;
    height: 50px;
    overflow: scroll;
}

@media (min-width: 576px) {
    .modal-dialog {
        max-width: 500px;
        margin: 1.75rem auto;
    }

    .modal-dialog-centered {
        min-height: calc(100% - (1.75rem * 2));
    }

        .modal-dialog-centered::before {
            height: calc(100vh - (1.75rem * 2));
        }

    .modal-sm {
        max-width: 300px;
    }
}

@media (min-width: 992px) {
    .modal-lg,
    .modal-xl {
        max-width: 800px;
    }
}

@media (min-width: 1200px) {
    .modal-xl {
        max-width: 1140px;
    }
}

.tooltip {
    position: absolute;
    z-index: 1070;
    display: block;
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    text-align: start;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    letter-spacing: normal;
    word-break: normal;
    word-spacing: normal;
    white-space: normal;
    line-break: auto;
    font-size: 0.875rem;
    word-wrap: break-word;
    opacity: 0;
}

    .tooltip.show {
        opacity: 0.9;
    }

    .tooltip .arrow {
        position: absolute;
        display: block;
        width: 0.8rem;
        height: 0.4rem;
    }

        .tooltip .arrow::before {
            position: absolute;
            content: "";
            border-color: transparent;
            border-style: solid;
        }

.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {
    padding: 0.4rem 0;
}

    .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {
        bottom: 0;
    }

        .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
            top: 0;
            border-width: 0.4rem 0.4rem 0;
            border-top-color: #000;
        }

.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {
    padding: 0 0.4rem;
}

    .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {
        left: 0;
        width: 0.4rem;
        height: 0.8rem;
    }

        .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
            right: 0;
            border-width: 0.4rem 0.4rem 0.4rem 0;
            border-right-color: #000;
        }

.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {
    padding: 0.4rem 0;
}

    .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {
        top: 0;
    }

        .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
            bottom: 0;
            border-width: 0 0.4rem 0.4rem;
            border-bottom-color: #000;
        }

.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {
    padding: 0 0.4rem;
}

    .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {
        right: 0;
        width: 0.4rem;
        height: 0.8rem;
    }

        .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
            left: 0;
            border-width: 0.4rem 0 0.4rem 0.4rem;
            border-left-color: #000;
        }

.tooltip-inner {
    max-width: 200px;
    padding: 0.25rem 0.5rem;
    color: #fff;
    text-align: center;
    background-color: #000;
    border-radius: 0.25rem;
}

.popover {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1060;
    display: block;
    max-width: 276px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    text-align: start;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    letter-spacing: normal;
    word-break: normal;
    word-spacing: normal;
    white-space: normal;
    line-break: auto;
    font-size: 0.875rem;
    word-wrap: break-word;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 0.3rem;
}

    .popover .arrow {
        position: absolute;
        display: block;
        width: 1rem;
        height: 0.5rem;
        margin: 0 0.3rem;
    }

        .popover .arrow::before, .popover .arrow::after {
            position: absolute;
            display: block;
            content: "";
            border-color: transparent;
            border-style: solid;
        }

.bs-popover-top, .bs-popover-auto[x-placement^="top"] {
    margin-bottom: 0.5rem;
}

    .bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow {
        bottom: calc((0.5rem + 1px) * -1);
    }

        .bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before,
        .bs-popover-top .arrow::after,
        .bs-popover-auto[x-placement^="top"] .arrow::after {
            border-width: 0.5rem 0.5rem 0;
        }

        .bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before {
            bottom: 0;
            border-top-color: rgba(0, 0, 0, 0.25);
        }

        .bs-popover-top .arrow::after,
        .bs-popover-auto[x-placement^="top"] .arrow::after {
            bottom: 1px;
            border-top-color: #fff;
        }

.bs-popover-right, .bs-popover-auto[x-placement^="right"] {
    margin-left: 0.5rem;
}

    .bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow {
        left: calc((0.5rem + 1px) * -1);
        width: 0.5rem;
        height: 1rem;
        margin: 0.3rem 0;
    }

        .bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before,
        .bs-popover-right .arrow::after,
        .bs-popover-auto[x-placement^="right"] .arrow::after {
            border-width: 0.5rem 0.5rem 0.5rem 0;
        }

        .bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before {
            left: 0;
            border-right-color: rgba(0, 0, 0, 0.25);
        }

        .bs-popover-right .arrow::after,
        .bs-popover-auto[x-placement^="right"] .arrow::after {
            left: 1px;
            border-right-color: #fff;
        }

.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {
    margin-top: 0.5rem;
}

    .bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow {
        top: calc((0.5rem + 1px) * -1);
    }

        .bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before,
        .bs-popover-bottom .arrow::after,
        .bs-popover-auto[x-placement^="bottom"] .arrow::after {
            border-width: 0 0.5rem 0.5rem 0.5rem;
        }

        .bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before {
            top: 0;
            border-bottom-color: rgba(0, 0, 0, 0.25);
        }

        .bs-popover-bottom .arrow::after,
        .bs-popover-auto[x-placement^="bottom"] .arrow::after {
            top: 1px;
            border-bottom-color: #fff;
        }

    .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {
        position: absolute;
        top: 0;
        left: 50%;
        display: block;
        width: 1rem;
        margin-left: -0.5rem;
        content: "";
        border-bottom: 1px solid #f7f7f7;
    }

.bs-popover-left, .bs-popover-auto[x-placement^="left"] {
    margin-right: 0.5rem;
}

    .bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow {
        right: calc((0.5rem + 1px) * -1);
        width: 0.5rem;
        height: 1rem;
        margin: 0.3rem 0;
    }

        .bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before,
        .bs-popover-left .arrow::after,
        .bs-popover-auto[x-placement^="left"] .arrow::after {
            border-width: 0.5rem 0 0.5rem 0.5rem;
        }

        .bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before {
            right: 0;
            border-left-color: rgba(0, 0, 0, 0.25);
        }

        .bs-popover-left .arrow::after,
        .bs-popover-auto[x-placement^="left"] .arrow::after {
            right: 1px;
            border-left-color: #fff;
        }

.popover-header {
    padding: 0.5rem 0.75rem;
    margin-bottom: 0;
    font-size: 1rem;
    color: inherit;
    background-color: #f7f7f7;
    border-bottom: 1px solid #ebebeb;
    border-top-left-radius: calc(0.3rem - 1px);
    border-top-right-radius: calc(0.3rem - 1px);
}

    .popover-header:empty {
        display: none;
    }

.popover-body {
    padding: 0.5rem 0.75rem;
    color: #212529;
}

.carousel {
    position: relative;
}

    .carousel.pointer-event {
        -ms-touch-action: pan-y;
        touch-action: pan-y;
    }

.carousel-inner {
    position: relative;
    width: 100%;
    overflow: hidden;
}

    .carousel-inner::after {
        display: block;
        clear: both;
        content: "";
    }

.carousel-item {
    position: relative;
    display: none;
    float: left;
    width: 100%;
    margin-right: -100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
    transition: -webkit-transform 0.6s ease-in-out;
    -o-transition: transform 0.6s ease-in-out;
    transition: transform 0.6s ease-in-out;
    transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
}

@media screen and (prefers-reduced-motion: reduce) {
    .carousel-item {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
    display: block;
}

    .carousel-item-next:not(.carousel-item-left),
    .active.carousel-item-right {
        -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
        transform: translateX(100%);
    }

    .carousel-item-prev:not(.carousel-item-right),
    .active.carousel-item-left {
        -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
        transform: translateX(-100%);
    }

.carousel-fade .carousel-item {
    opacity: 0;
    -webkit-transition-property: opacity;
    -o-transition-property: opacity;
    transition-property: opacity;
    -webkit-transform: none;
    -ms-transform: none;
    transform: none;
}

    .carousel-fade .carousel-item.active,
    .carousel-fade .carousel-item-next.carousel-item-left,
    .carousel-fade .carousel-item-prev.carousel-item-right {
        z-index: 1;
        opacity: 1;
    }

.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-right {
    z-index: 0;
    opacity: 0;
    -webkit-transition: 0s 0.6s opacity;
    -o-transition: 0s 0.6s opacity;
    transition: 0s 0.6s opacity;
}

@media screen and (prefers-reduced-motion: reduce) {
    .carousel-fade .active.carousel-item-left,
    .carousel-fade .active.carousel-item-right {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.carousel-control-prev,
.carousel-control-next {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 15%;
    color: #fff;
    text-align: center;
    opacity: 0.5;
    -webkit-transition: opacity 0.15s ease;
    -o-transition: opacity 0.15s ease;
    transition: opacity 0.15s ease;
}

@media screen and (prefers-reduced-motion: reduce) {
    .carousel-control-prev,
    .carousel-control-next {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.carousel-control-prev:hover, .carousel-control-prev:focus,
.carousel-control-next:hover,
.carousel-control-next:focus {
    color: #fff;
    text-decoration: none;
    outline: 0;
    opacity: 0.9;
}

.carousel-control-prev {
    left: 0;
}

.carousel-control-next {
    right: 0;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    background: transparent no-repeat center center;
    background-size: 100% 100%;
}

.carousel-control-prev-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e");
}

.carousel-control-next-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e");
}

.carousel-indicators {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 15;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    padding-left: 0;
    margin-right: 15%;
    margin-left: 15%;
    list-style: none;
}

    .carousel-indicators li {
        -webkit-box-sizing: content-box;
        box-sizing: content-box;
        -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
        flex: 0 1 auto;
        width: 30px;
        height: 3px;
        margin-right: 3px;
        margin-left: 3px;
        text-indent: -999px;
        cursor: pointer;
        background-color: #fff;
        background-clip: padding-box;
        border-top: 10px solid transparent;
        border-bottom: 10px solid transparent;
        opacity: .5;
        -webkit-transition: opacity 0.6s ease;
        -o-transition: opacity 0.6s ease;
        transition: opacity 0.6s ease;
    }

@media screen and (prefers-reduced-motion: reduce) {
    .carousel-indicators li {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

.carousel-indicators .active {
    opacity: 1;
}

.carousel-caption {
    position: absolute;
    right: 15%;
    bottom: 20px;
    left: 15%;
    z-index: 10;
    padding-top: 20px;
    padding-bottom: 20px;
    color: #fff;
    text-align: center;
}

@-webkit-keyframes spinner-border {
    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes spinner-border {
    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

.spinner-border {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: text-bottom;
    border: 0.25em solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    -webkit-animation: spinner-border .75s linear infinite;
    animation: spinner-border .75s linear infinite;
}

.spinner-border-sm {
    width: 1rem;
    height: 1rem;
    border-width: 0.2em;
}

@-webkit-keyframes spinner-grow {
    0% {
        -webkit-transform: scale(0);
        transform: scale(0);
    }

    50% {
        opacity: 1;
    }
}

@keyframes spinner-grow {
    0% {
        -webkit-transform: scale(0);
        transform: scale(0);
    }

    50% {
        opacity: 1;
    }
}

.spinner-grow {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: text-bottom;
    background-color: currentColor;
    border-radius: 50%;
    opacity: 0;
    -webkit-animation: spinner-grow .75s linear infinite;
    animation: spinner-grow .75s linear infinite;
}

.spinner-grow-sm {
    width: 1rem;
    height: 1rem;
}

.align-baseline {
    vertical-align: baseline !important;
}

.align-top {
    vertical-align: top !important;
}

.align-middle {
    vertical-align: middle !important;
}

.align-bottom {
    vertical-align: bottom !important;
}

.align-text-bottom {
    vertical-align: text-bottom !important;
}

.align-text-top {
    vertical-align: text-top !important;
}

.bg-primary {
    background-color: #007bff !important;
}

a.bg-primary:hover, a.bg-primary:focus,
button.bg-primary:hover,
button.bg-primary:focus {
    background-color: #0062cc !important;
}

.bg-secondary {
    background-color: #6c757d !important;
}

a.bg-secondary:hover, a.bg-secondary:focus,
button.bg-secondary:hover,
button.bg-secondary:focus {
    background-color: #545b62 !important;
}

.bg-success {
    background-color: #28a745 !important;
}

a.bg-success:hover, a.bg-success:focus,
button.bg-success:hover,
button.bg-success:focus {
    background-color: #1e7e34 !important;
}

.bg-info {
    background-color: #17a2b8 !important;
}

a.bg-info:hover, a.bg-info:focus,
button.bg-info:hover,
button.bg-info:focus {
    background-color: #117a8b !important;
}

.bg-warning {
    background-color: #ffc107 !important;
}

a.bg-warning:hover, a.bg-warning:focus,
button.bg-warning:hover,
button.bg-warning:focus {
    background-color: #d39e00 !important;
}

.bg-danger {
    background-color: #dc3545 !important;
}

a.bg-danger:hover, a.bg-danger:focus,
button.bg-danger:hover,
button.bg-danger:focus {
    background-color: #bd2130 !important;
}

.bg-light {
    background-color: #f8f9fa !important;
}

a.bg-light:hover, a.bg-light:focus,
button.bg-light:hover,
button.bg-light:focus {
    background-color: #dae0e5 !important;
}

.bg-dark {
    background-color: #343a40 !important;
}

a.bg-dark:hover, a.bg-dark:focus,
button.bg-dark:hover,
button.bg-dark:focus {
    background-color: #1d2124 !important;
}

.bg-white {
    background-color: #fff !important;
}

.bg-transparent {
    background-color: transparent !important;
}

.border {
    border: 1px solid #dee2e6 !important;

}

.border-top {
    border-top: 1px solid #dee2e6 !important;
}

.border-right {
    border-right: 1px solid #dee2e6 !important;
}

.border-bottom {
    border-bottom: 1px solid #dee2e6 !important;
}

.border-left {
    border-left: 1px solid #dee2e6 !important;
}

.border-0 {
    border: 0 !important;
}

.border-top-0 {
    border-top: 0 !important;
}

.border-right-0 {
    border-right: 0 !important;
}

.border-bottom-0 {
    border-bottom: 0 !important;
}

.border-left-0 {
    border-left: 0 !important;
}

.border-primary {
    border-color: #007bff !important;
}

.border-secondary {
    border-color: #6c757d !important;
}

.border-success {
    border-color: #28a745 !important;
}

.border-info {
    border-color: #17a2b8 !important;
}

.border-warning {
    border-color: #ffc107 !important;
}

.border-danger {
    border-color: #dc3545 !important;
}

.border-light {
    border-color: #f8f9fa !important;
}

.border-dark {
    border-color: #343a40 !important;
}

.border-white {
    border-color: #fff !important;
}

.rounded {
    border-radius: 0.25rem !important;
}

.rounded-top {
    border-top-left-radius: 0.25rem !important;
    border-top-right-radius: 0.25rem !important;
}

.rounded-right {
    border-top-right-radius: 0.25rem !important;
    border-bottom-right-radius: 0.25rem !important;
}

.rounded-bottom {
    border-bottom-right-radius: 0.25rem !important;
    border-bottom-left-radius: 0.25rem !important;
}

.rounded-left {
    border-top-left-radius: 0.25rem !important;
    border-bottom-left-radius: 0.25rem !important;
}

.rounded-circle {
    border-radius: 50% !important;
}

.rounded-pill {
    border-radius: 50rem !important;
}

.rounded-0 {
    border-radius: 0 !important;
}

.clearfix::after {
    display: block;
    clear: both;
    content: "";
}

.d-none {
    display: none !important;
}

.d-inline {
    display: inline !important;
}

.d-inline-block {
    display: inline-block !important;
}

.d-block {
    display: block !important;
}

.d-table {
    display: table !important;
}

.d-table-row {
    display: table-row !important;
}

.d-table-cell {
    display: table-cell !important;
}

.d-flex {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
}

.d-inline-flex {
    display: -webkit-inline-box !important;
    display: -ms-inline-flexbox !important;
    display: inline-flex !important;
}

@media (min-width: 576px) {
    .d-sm-none {
        display: none !important;
    }

    .d-sm-inline {
        display: inline !important;
    }

    .d-sm-inline-block {
        display: inline-block !important;
    }

    .d-sm-block {
        display: block !important;
    }

    .d-sm-table {
        display: table !important;
    }

    .d-sm-table-row {
        display: table-row !important;
    }

    .d-sm-table-cell {
        display: table-cell !important;
    }

    .d-sm-flex {
        display: -webkit-box !important;
        display: -ms-flexbox !important;
        display: flex !important;
    }

    .d-sm-inline-flex {
        display: -webkit-inline-box !important;
        display: -ms-inline-flexbox !important;
        display: inline-flex !important;
    }
}

@media (min-width: 768px) {
    .d-md-none {
        display: none !important;
    }

    .d-md-inline {
        display: inline !important;
    }

    .d-md-inline-block {
        display: inline-block !important;
    }

    .d-md-block {
        display: block !important;
    }

    .d-md-table {
        display: table !important;
    }

    .d-md-table-row {
        display: table-row !important;
    }

    .d-md-table-cell {
        display: table-cell !important;
    }

    .d-md-flex {
        display: -webkit-box !important;
        display: -ms-flexbox !important;
        display: flex !important;
    }

    .d-md-inline-flex {
        display: -webkit-inline-box !important;
        display: -ms-inline-flexbox !important;
        display: inline-flex !important;
    }
}

@media (min-width: 992px) {
    .d-lg-none {
        display: none !important;
    }

    .d-lg-inline {
        display: inline !important;
    }

    .d-lg-inline-block {
        display: inline-block !important;
    }

    .d-lg-block {
        display: block !important;
    }

    .d-lg-table {
        display: table !important;
    }

    .d-lg-table-row {
        display: table-row !important;
    }

    .d-lg-table-cell {
        display: table-cell !important;
    }

    .d-lg-flex {
        display: -webkit-box !important;
        display: -ms-flexbox !important;
        display: flex !important;
    }

    .d-lg-inline-flex {
        display: -webkit-inline-box !important;
        display: -ms-inline-flexbox !important;
        display: inline-flex !important;
    }
}

@media (min-width: 1200px) {
    .d-xl-none {
        display: none !important;
    }

    .d-xl-inline {
        display: inline !important;
    }

    .d-xl-inline-block {
        display: inline-block !important;
    }

    .d-xl-block {
        display: block !important;
    }

    .d-xl-table {
        display: table !important;
    }

    .d-xl-table-row {
        display: table-row !important;
    }

    .d-xl-table-cell {
        display: table-cell !important;
    }

    .d-xl-flex {
        display: -webkit-box !important;
        display: -ms-flexbox !important;
        display: flex !important;
    }

    .d-xl-inline-flex {
        display: -webkit-inline-box !important;
        display: -ms-inline-flexbox !important;
        display: inline-flex !important;
    }
}

@media print {
    .d-print-none {
        display: none !important;
    }

    .d-print-inline {
        display: inline !important;
    }

    .d-print-inline-block {
        display: inline-block !important;
    }

    .d-print-block {
        display: block !important;
    }

    .d-print-table {
        display: table !important;
    }

    .d-print-table-row {
        display: table-row !important;
    }

    .d-print-table-cell {
        display: table-cell !important;
    }

    .d-print-flex {
        display: -webkit-box !important;
        display: -ms-flexbox !important;
        display: flex !important;
    }

    .d-print-inline-flex {
        display: -webkit-inline-box !important;
        display: -ms-inline-flexbox !important;
        display: inline-flex !important;
    }
}

.embed-responsive {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
}

    .embed-responsive::before {
        display: block;
        content: "";
    }

    .embed-responsive .embed-responsive-item,
    .embed-responsive iframe,
    .embed-responsive embed,
    .embed-responsive object,
    .embed-responsive video {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: 0;
    }

.embed-responsive-21by9::before {
    padding-top: 42.85714%;
}

.embed-responsive-16by9::before {
    padding-top: 56.25%;
}

.embed-responsive-3by4::before {
    padding-top: 133.33333%;
}

.embed-responsive-1by1::before {
    padding-top: 100%;
}

.flex-row {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: normal !important;
    -ms-flex-direction: row !important;
    flex-direction: row !important;
}

.flex-column {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: normal !important;
    -ms-flex-direction: column !important;
    flex-direction: column !important;
}

.flex-row-reverse {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: reverse !important;
    -ms-flex-direction: row-reverse !important;
    flex-direction: row-reverse !important;
}

.flex-column-reverse {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: reverse !important;
    -ms-flex-direction: column-reverse !important;
    flex-direction: column-reverse !important;
}

.flex-wrap {
    -ms-flex-wrap: wrap !important;
    flex-wrap: wrap !important;
}

.flex-nowrap {
    -ms-flex-wrap: nowrap !important;
    flex-wrap: nowrap !important;
}

.flex-wrap-reverse {
    -ms-flex-wrap: wrap-reverse !important;
    flex-wrap: wrap-reverse !important;
}

.flex-fill {
    -webkit-box-flex: 1 !important;
    -ms-flex: 1 1 auto !important;
    flex: 1 1 auto !important;
}

.flex-grow-0 {
    -webkit-box-flex: 0 !important;
    -ms-flex-positive: 0 !important;
    flex-grow: 0 !important;
}

.flex-grow-1 {
    -webkit-box-flex: 1 !important;
    -ms-flex-positive: 1 !important;
    flex-grow: 1 !important;
}

.flex-shrink-0 {
    -ms-flex-negative: 0 !important;
    flex-shrink: 0 !important;
}

.flex-shrink-1 {
    -ms-flex-negative: 1 !important;
    flex-shrink: 1 !important;
}

.justify-content-start {
    -webkit-box-pack: start !important;
    -ms-flex-pack: start !important;
    justify-content: flex-start !important;
}

.justify-content-end {
    -webkit-box-pack: end !important;
    -ms-flex-pack: end !important;
    justify-content: flex-end !important;
}

.justify-content-center {
    -webkit-box-pack: center !important;
    -ms-flex-pack: center !important;
    justify-content: center !important;
}

.justify-content-between {
    -webkit-box-pack: justify !important;
    -ms-flex-pack: justify !important;
    justify-content: space-between !important;
}

.justify-content-around {
    -ms-flex-pack: distribute !important;
    justify-content: space-around !important;
}

.align-items-start {
    -webkit-box-align: start !important;
    -ms-flex-align: start !important;
    align-items: flex-start !important;
}

.align-items-end {
    -webkit-box-align: end !important;
    -ms-flex-align: end !important;
    align-items: flex-end !important;
}

.align-items-center {
    -webkit-box-align: center !important;
    -ms-flex-align: center !important;
    align-items: center !important;
}

.align-items-baseline {
    -webkit-box-align: baseline !important;
    -ms-flex-align: baseline !important;
    align-items: baseline !important;
}

.align-items-stretch {
    -webkit-box-align: stretch !important;
    -ms-flex-align: stretch !important;
    align-items: stretch !important;
}

.align-content-start {
    -ms-flex-line-pack: start !important;
    align-content: flex-start !important;
}

.align-content-end {
    -ms-flex-line-pack: end !important;
    align-content: flex-end !important;
}

.align-content-center {
    -ms-flex-line-pack: center !important;
    align-content: center !important;
}

.align-content-between {
    -ms-flex-line-pack: justify !important;
    align-content: space-between !important;
}

.align-content-around {
    -ms-flex-line-pack: distribute !important;
    align-content: space-around !important;
}

.align-content-stretch {
    -ms-flex-line-pack: stretch !important;
    align-content: stretch !important;
}

.align-self-auto {
    -ms-flex-item-align: auto !important;
    -ms-grid-row-align: auto !important;
    align-self: auto !important;
}

.align-self-start {
    -ms-flex-item-align: start !important;
    align-self: flex-start !important;
}

.align-self-end {
    -ms-flex-item-align: end !important;
    align-self: flex-end !important;
}

.align-self-center {
    -ms-flex-item-align: center !important;
    -ms-grid-row-align: center !important;
    align-self: center !important;
}

.align-self-baseline {
    -ms-flex-item-align: baseline !important;
    align-self: baseline !important;
}

.align-self-stretch {
    -ms-flex-item-align: stretch !important;
    -ms-grid-row-align: stretch !important;
    align-self: stretch !important;
}

@media (min-width: 576px) {
    .flex-sm-row {
        -webkit-box-orient: horizontal !important;
        -webkit-box-direction: normal !important;
        -ms-flex-direction: row !important;
        flex-direction: row !important;
    }

    .flex-sm-column {
        -webkit-box-orient: vertical !important;
        -webkit-box-direction: normal !important;
        -ms-flex-direction: column !important;
        flex-direction: column !important;
    }

    .flex-sm-row-reverse {
        -webkit-box-orient: horizontal !important;
        -webkit-box-direction: reverse !important;
        -ms-flex-direction: row-reverse !important;
        flex-direction: row-reverse !important;
    }

    .flex-sm-column-reverse {
        -webkit-box-orient: vertical !important;
        -webkit-box-direction: reverse !important;
        -ms-flex-direction: column-reverse !important;
        flex-direction: column-reverse !important;
    }

    .flex-sm-wrap {
        -ms-flex-wrap: wrap !important;
        flex-wrap: wrap !important;
    }

    .flex-sm-nowrap {
        -ms-flex-wrap: nowrap !important;
        flex-wrap: nowrap !important;
    }

    .flex-sm-wrap-reverse {
        -ms-flex-wrap: wrap-reverse !important;
        flex-wrap: wrap-reverse !important;
    }

    .flex-sm-fill {
        -webkit-box-flex: 1 !important;
        -ms-flex: 1 1 auto !important;
        flex: 1 1 auto !important;
    }

    .flex-sm-grow-0 {
        -webkit-box-flex: 0 !important;
        -ms-flex-positive: 0 !important;
        flex-grow: 0 !important;
    }

    .flex-sm-grow-1 {
        -webkit-box-flex: 1 !important;
        -ms-flex-positive: 1 !important;
        flex-grow: 1 !important;
    }

    .flex-sm-shrink-0 {
        -ms-flex-negative: 0 !important;
        flex-shrink: 0 !important;
    }

    .flex-sm-shrink-1 {
        -ms-flex-negative: 1 !important;
        flex-shrink: 1 !important;
    }

    .justify-content-sm-start {
        -webkit-box-pack: start !important;
        -ms-flex-pack: start !important;
        justify-content: flex-start !important;
    }

    .justify-content-sm-end {
        -webkit-box-pack: end !important;
        -ms-flex-pack: end !important;
        justify-content: flex-end !important;
    }

    .justify-content-sm-center {
        -webkit-box-pack: center !important;
        -ms-flex-pack: center !important;
        justify-content: center !important;
    }

    .justify-content-sm-between {
        -webkit-box-pack: justify !important;
        -ms-flex-pack: justify !important;
        justify-content: space-between !important;
    }

    .justify-content-sm-around {
        -ms-flex-pack: distribute !important;
        justify-content: space-around !important;
    }

    .align-items-sm-start {
        -webkit-box-align: start !important;
        -ms-flex-align: start !important;
        align-items: flex-start !important;
    }

    .align-items-sm-end {
        -webkit-box-align: end !important;
        -ms-flex-align: end !important;
        align-items: flex-end !important;
    }

    .align-items-sm-center {
        -webkit-box-align: center !important;
        -ms-flex-align: center !important;
        align-items: center !important;
    }

    .align-items-sm-baseline {
        -webkit-box-align: baseline !important;
        -ms-flex-align: baseline !important;
        align-items: baseline !important;
    }

    .align-items-sm-stretch {
        -webkit-box-align: stretch !important;
        -ms-flex-align: stretch !important;
        align-items: stretch !important;
    }

    .align-content-sm-start {
        -ms-flex-line-pack: start !important;
        align-content: flex-start !important;
    }

    .align-content-sm-end {
        -ms-flex-line-pack: end !important;
        align-content: flex-end !important;
    }

    .align-content-sm-center {
        -ms-flex-line-pack: center !important;
        align-content: center !important;
    }

    .align-content-sm-between {
        -ms-flex-line-pack: justify !important;
        align-content: space-between !important;
    }

    .align-content-sm-around {
        -ms-flex-line-pack: distribute !important;
        align-content: space-around !important;
    }

    .align-content-sm-stretch {
        -ms-flex-line-pack: stretch !important;
        align-content: stretch !important;
    }

    .align-self-sm-auto {
        -ms-flex-item-align: auto !important;
        -ms-grid-row-align: auto !important;
        align-self: auto !important;
    }

    .align-self-sm-start {
        -ms-flex-item-align: start !important;
        align-self: flex-start !important;
    }

    .align-self-sm-end {
        -ms-flex-item-align: end !important;
        align-self: flex-end !important;
    }

    .align-self-sm-center {
        -ms-flex-item-align: center !important;
        -ms-grid-row-align: center !important;
        align-self: center !important;
    }

    .align-self-sm-baseline {
        -ms-flex-item-align: baseline !important;
        align-self: baseline !important;
    }

    .align-self-sm-stretch {
        -ms-flex-item-align: stretch !important;
        -ms-grid-row-align: stretch !important;
        align-self: stretch !important;
    }
}

@media (min-width: 768px) {
    .flex-md-row {
        -webkit-box-orient: horizontal !important;
        -webkit-box-direction: normal !important;
        -ms-flex-direction: row !important;
        flex-direction: row !important;
    }

    .flex-md-column {
        -webkit-box-orient: vertical !important;
        -webkit-box-direction: normal !important;
        -ms-flex-direction: column !important;
        flex-direction: column !important;
    }

    .flex-md-row-reverse {
        -webkit-box-orient: horizontal !important;
        -webkit-box-direction: reverse !important;
        -ms-flex-direction: row-reverse !important;
        flex-direction: row-reverse !important;
    }

    .flex-md-column-reverse {
        -webkit-box-orient: vertical !important;
        -webkit-box-direction: reverse !important;
        -ms-flex-direction: column-reverse !important;
        flex-direction: column-reverse !important;
    }

    .flex-md-wrap {
        -ms-flex-wrap: wrap !important;
        flex-wrap: wrap !important;
    }

    .flex-md-nowrap {
        -ms-flex-wrap: nowrap !important;
        flex-wrap: nowrap !important;
    }

    .flex-md-wrap-reverse {
        -ms-flex-wrap: wrap-reverse !important;
        flex-wrap: wrap-reverse !important;
    }

    .flex-md-fill {
        -webkit-box-flex: 1 !important;
        -ms-flex: 1 1 auto !important;
        flex: 1 1 auto !important;
    }

    .flex-md-grow-0 {
        -webkit-box-flex: 0 !important;
        -ms-flex-positive: 0 !important;
        flex-grow: 0 !important;
    }

    .flex-md-grow-1 {
        -webkit-box-flex: 1 !important;
        -ms-flex-positive: 1 !important;
        flex-grow: 1 !important;
    }

    .flex-md-shrink-0 {
        -ms-flex-negative: 0 !important;
        flex-shrink: 0 !important;
    }

    .flex-md-shrink-1 {
        -ms-flex-negative: 1 !important;
        flex-shrink: 1 !important;
    }

    .justify-content-md-start {
        -webkit-box-pack: start !important;
        -ms-flex-pack: start !important;
        justify-content: flex-start !important;
    }

    .justify-content-md-end {
        -webkit-box-pack: end !important;
        -ms-flex-pack: end !important;
        justify-content: flex-end !important;
    }

    .justify-content-md-center {
        -webkit-box-pack: center !important;
        -ms-flex-pack: center !important;
        justify-content: center !important;
    }

    .justify-content-md-between {
        -webkit-box-pack: justify !important;
        -ms-flex-pack: justify !important;
        justify-content: space-between !important;
    }

    .justify-content-md-around {
        -ms-flex-pack: distribute !important;
        justify-content: space-around !important;
    }

    .align-items-md-start {
        -webkit-box-align: start !important;
        -ms-flex-align: start !important;
        align-items: flex-start !important;
    }

    .align-items-md-end {
        -webkit-box-align: end !important;
        -ms-flex-align: end !important;
        align-items: flex-end !important;
    }

    .align-items-md-center {
        -webkit-box-align: center !important;
        -ms-flex-align: center !important;
        align-items: center !important;
    }

    .align-items-md-baseline {
        -webkit-box-align: baseline !important;
        -ms-flex-align: baseline !important;
        align-items: baseline !important;
    }

    .align-items-md-stretch {
        -webkit-box-align: stretch !important;
        -ms-flex-align: stretch !important;
        align-items: stretch !important;
    }

    .align-content-md-start {
        -ms-flex-line-pack: start !important;
        align-content: flex-start !important;
    }

    .align-content-md-end {
        -ms-flex-line-pack: end !important;
        align-content: flex-end !important;
    }

    .align-content-md-center {
        -ms-flex-line-pack: center !important;
        align-content: center !important;
    }

    .align-content-md-between {
        -ms-flex-line-pack: justify !important;
        align-content: space-between !important;
    }

    .align-content-md-around {
        -ms-flex-line-pack: distribute !important;
        align-content: space-around !important;
    }

    .align-content-md-stretch {
        -ms-flex-line-pack: stretch !important;
        align-content: stretch !important;
    }

    .align-self-md-auto {
        -ms-flex-item-align: auto !important;
        -ms-grid-row-align: auto !important;
        align-self: auto !important;
    }

    .align-self-md-start {
        -ms-flex-item-align: start !important;
        align-self: flex-start !important;
    }

    .align-self-md-end {
        -ms-flex-item-align: end !important;
        align-self: flex-end !important;
    }

    .align-self-md-center {
        -ms-flex-item-align: center !important;
        -ms-grid-row-align: center !important;
        align-self: center !important;
    }

    .align-self-md-baseline {
        -ms-flex-item-align: baseline !important;
        align-self: baseline !important;
    }

    .align-self-md-stretch {
        -ms-flex-item-align: stretch !important;
        -ms-grid-row-align: stretch !important;
        align-self: stretch !important;
    }
}

@media (min-width: 992px) {
    .flex-lg-row {
        -webkit-box-orient: horizontal !important;
        -webkit-box-direction: normal !important;
        -ms-flex-direction: row !important;
        flex-direction: row !important;
    }

    .flex-lg-column {
        -webkit-box-orient: vertical !important;
        -webkit-box-direction: normal !important;
        -ms-flex-direction: column !important;
        flex-direction: column !important;
    }

    .flex-lg-row-reverse {
        -webkit-box-orient: horizontal !important;
        -webkit-box-direction: reverse !important;
        -ms-flex-direction: row-reverse !important;
        flex-direction: row-reverse !important;
    }

    .flex-lg-column-reverse {
        -webkit-box-orient: vertical !important;
        -webkit-box-direction: reverse !important;
        -ms-flex-direction: column-reverse !important;
        flex-direction: column-reverse !important;
    }

    .flex-lg-wrap {
        -ms-flex-wrap: wrap !important;
        flex-wrap: wrap !important;
    }

    .flex-lg-nowrap {
        -ms-flex-wrap: nowrap !important;
        flex-wrap: nowrap !important;
    }

    .flex-lg-wrap-reverse {
        -ms-flex-wrap: wrap-reverse !important;
        flex-wrap: wrap-reverse !important;
    }

    .flex-lg-fill {
        -webkit-box-flex: 1 !important;
        -ms-flex: 1 1 auto !important;
        flex: 1 1 auto !important;
    }

    .flex-lg-grow-0 {
        -webkit-box-flex: 0 !important;
        -ms-flex-positive: 0 !important;
        flex-grow: 0 !important;
    }

    .flex-lg-grow-1 {
        -webkit-box-flex: 1 !important;
        -ms-flex-positive: 1 !important;
        flex-grow: 1 !important;
    }

    .flex-lg-shrink-0 {
        -ms-flex-negative: 0 !important;
        flex-shrink: 0 !important;
    }

    .flex-lg-shrink-1 {
        -ms-flex-negative: 1 !important;
        flex-shrink: 1 !important;
    }

    .justify-content-lg-start {
        -webkit-box-pack: start !important;
        -ms-flex-pack: start !important;
        justify-content: flex-start !important;
    }

    .justify-content-lg-end {
        -webkit-box-pack: end !important;
        -ms-flex-pack: end !important;
        justify-content: flex-end !important;
    }

    .justify-content-lg-center {
        -webkit-box-pack: center !important;
        -ms-flex-pack: center !important;
        justify-content: center !important;
    }

    .justify-content-lg-between {
        -webkit-box-pack: justify !important;
        -ms-flex-pack: justify !important;
        justify-content: space-between !important;
    }

    .justify-content-lg-around {
        -ms-flex-pack: distribute !important;
        justify-content: space-around !important;
    }

    .align-items-lg-start {
        -webkit-box-align: start !important;
        -ms-flex-align: start !important;
        align-items: flex-start !important;
    }

    .align-items-lg-end {
        -webkit-box-align: end !important;
        -ms-flex-align: end !important;
        align-items: flex-end !important;
    }

    .align-items-lg-center {
        -webkit-box-align: center !important;
        -ms-flex-align: center !important;
        align-items: center !important;
    }

    .align-items-lg-baseline {
        -webkit-box-align: baseline !important;
        -ms-flex-align: baseline !important;
        align-items: baseline !important;
    }

    .align-items-lg-stretch {
        -webkit-box-align: stretch !important;
        -ms-flex-align: stretch !important;
        align-items: stretch !important;
    }

    .align-content-lg-start {
        -ms-flex-line-pack: start !important;
        align-content: flex-start !important;
    }

    .align-content-lg-end {
        -ms-flex-line-pack: end !important;
        align-content: flex-end !important;
    }

    .align-content-lg-center {
        -ms-flex-line-pack: center !important;
        align-content: center !important;
    }

    .align-content-lg-between {
        -ms-flex-line-pack: justify !important;
        align-content: space-between !important;
    }

    .align-content-lg-around {
        -ms-flex-line-pack: distribute !important;
        align-content: space-around !important;
    }

    .align-content-lg-stretch {
        -ms-flex-line-pack: stretch !important;
        align-content: stretch !important;
    }

    .align-self-lg-auto {
        -ms-flex-item-align: auto !important;
        -ms-grid-row-align: auto !important;
        align-self: auto !important;
    }

    .align-self-lg-start {
        -ms-flex-item-align: start !important;
        align-self: flex-start !important;
    }

    .align-self-lg-end {
        -ms-flex-item-align: end !important;
        align-self: flex-end !important;
    }

    .align-self-lg-center {
        -ms-flex-item-align: center !important;
        -ms-grid-row-align: center !important;
        align-self: center !important;
    }

    .align-self-lg-baseline {
        -ms-flex-item-align: baseline !important;
        align-self: baseline !important;
    }

    .align-self-lg-stretch {
        -ms-flex-item-align: stretch !important;
        -ms-grid-row-align: stretch !important;
        align-self: stretch !important;
    }
}

@media (min-width: 1200px) {
    .flex-xl-row {
        -webkit-box-orient: horizontal !important;
        -webkit-box-direction: normal !important;
        -ms-flex-direction: row !important;
        flex-direction: row !important;
    }

    .flex-xl-column {
        -webkit-box-orient: vertical !important;
        -webkit-box-direction: normal !important;
        -ms-flex-direction: column !important;
        flex-direction: column !important;
    }

    .flex-xl-row-reverse {
        -webkit-box-orient: horizontal !important;
        -webkit-box-direction: reverse !important;
        -ms-flex-direction: row-reverse !important;
        flex-direction: row-reverse !important;
    }

    .flex-xl-column-reverse {
        -webkit-box-orient: vertical !important;
        -webkit-box-direction: reverse !important;
        -ms-flex-direction: column-reverse !important;
        flex-direction: column-reverse !important;
    }

    .flex-xl-wrap {
        -ms-flex-wrap: wrap !important;
        flex-wrap: wrap !important;
    }

    .flex-xl-nowrap {
        -ms-flex-wrap: nowrap !important;
        flex-wrap: nowrap !important;
    }

    .flex-xl-wrap-reverse {
        -ms-flex-wrap: wrap-reverse !important;
        flex-wrap: wrap-reverse !important;
    }

    .flex-xl-fill {
        -webkit-box-flex: 1 !important;
        -ms-flex: 1 1 auto !important;
        flex: 1 1 auto !important;
    }

    .flex-xl-grow-0 {
        -webkit-box-flex: 0 !important;
        -ms-flex-positive: 0 !important;
        flex-grow: 0 !important;
    }

    .flex-xl-grow-1 {
        -webkit-box-flex: 1 !important;
        -ms-flex-positive: 1 !important;
        flex-grow: 1 !important;
    }

    .flex-xl-shrink-0 {
        -ms-flex-negative: 0 !important;
        flex-shrink: 0 !important;
    }

    .flex-xl-shrink-1 {
        -ms-flex-negative: 1 !important;
        flex-shrink: 1 !important;
    }

    .justify-content-xl-start {
        -webkit-box-pack: start !important;
        -ms-flex-pack: start !important;
        justify-content: flex-start !important;
    }

    .justify-content-xl-end {
        -webkit-box-pack: end !important;
        -ms-flex-pack: end !important;
        justify-content: flex-end !important;
    }

    .justify-content-xl-center {
        -webkit-box-pack: center !important;
        -ms-flex-pack: center !important;
        justify-content: center !important;
    }

    .justify-content-xl-between {
        -webkit-box-pack: justify !important;
        -ms-flex-pack: justify !important;
        justify-content: space-between !important;
    }

    .justify-content-xl-around {
        -ms-flex-pack: distribute !important;
        justify-content: space-around !important;
    }

    .align-items-xl-start {
        -webkit-box-align: start !important;
        -ms-flex-align: start !important;
        align-items: flex-start !important;
    }

    .align-items-xl-end {
        -webkit-box-align: end !important;
        -ms-flex-align: end !important;
        align-items: flex-end !important;
    }

    .align-items-xl-center {
        -webkit-box-align: center !important;
        -ms-flex-align: center !important;
        align-items: center !important;
    }

    .align-items-xl-baseline {
        -webkit-box-align: baseline !important;
        -ms-flex-align: baseline !important;
        align-items: baseline !important;
    }

    .align-items-xl-stretch {
        -webkit-box-align: stretch !important;
        -ms-flex-align: stretch !important;
        align-items: stretch !important;
    }

    .align-content-xl-start {
        -ms-flex-line-pack: start !important;
        align-content: flex-start !important;
    }

    .align-content-xl-end {
        -ms-flex-line-pack: end !important;
        align-content: flex-end !important;
    }

    .align-content-xl-center {
        -ms-flex-line-pack: center !important;
        align-content: center !important;
    }

    .align-content-xl-between {
        -ms-flex-line-pack: justify !important;
        align-content: space-between !important;
    }

    .align-content-xl-around {
        -ms-flex-line-pack: distribute !important;
        align-content: space-around !important;
    }

    .align-content-xl-stretch {
        -ms-flex-line-pack: stretch !important;
        align-content: stretch !important;
    }

    .align-self-xl-auto {
        -ms-flex-item-align: auto !important;
        -ms-grid-row-align: auto !important;
        align-self: auto !important;
    }

    .align-self-xl-start {
        -ms-flex-item-align: start !important;
        align-self: flex-start !important;
    }

    .align-self-xl-end {
        -ms-flex-item-align: end !important;
        align-self: flex-end !important;
    }

    .align-self-xl-center {
        -ms-flex-item-align: center !important;
        -ms-grid-row-align: center !important;
        align-self: center !important;
    }

    .align-self-xl-baseline {
        -ms-flex-item-align: baseline !important;
        align-self: baseline !important;
    }

    .align-self-xl-stretch {
        -ms-flex-item-align: stretch !important;
        -ms-grid-row-align: stretch !important;
        align-self: stretch !important;
    }
}

.float-left {
    float: left !important;
}

.float-right {
    float: right !important;
}

.float-none {
    float: none !important;
}

@media (min-width: 576px) {
    .float-sm-left {
        float: left !important;
    }

    .float-sm-right {
        float: right !important;
    }

    .float-sm-none {
        float: none !important;
    }
}

@media (min-width: 768px) {
    .float-md-left {
        float: left !important;
    }

    .float-md-right {
        float: right !important;
    }

    .float-md-none {
        float: none !important;
    }
}

@media (min-width: 992px) {
    .float-lg-left {
        float: left !important;
    }

    .float-lg-right {
        float: right !important;
    }

    .float-lg-none {
        float: none !important;
    }
}

@media (min-width: 1200px) {
    .float-xl-left {
        float: left !important;
    }

    .float-xl-right {
        float: right !important;
    }

    .float-xl-none {
        float: none !important;
    }
}

.overflow-auto {
    overflow: auto !important;
}

.overflow-hidden {
    overflow: hidden !important;
}

.position-static {
    position: static !important;
}

.position-relative {
    position: relative !important;
}

.position-absolute {
    position: absolute !important;
}

.position-fixed {
    position: fixed !important;
}

.position-sticky {
    position: -webkit-sticky !important;
    position: sticky !important;
}

.fixed-top {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1030;
}

.fixed-bottom {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1030;
}

@supports ((position: -webkit-sticky) or (position: sticky)) {
    .sticky-top {
        position: -webkit-sticky;
        position: sticky;
        top: 0;
        z-index: 1020;
    }
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.sr-only-focusable:active, .sr-only-focusable:focus {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

.shadow-sm {
    -webkit-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
}

.shadow {
    -webkit-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

.shadow-lg {
    -webkit-box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
}

.shadow-none {
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
}

.w-25 {
    width: 25% !important;
}

.w-50 {
    width: 50% !important;
}

.w-75 {
    width: 75% !important;
}

.w-100 {
    width: 100% !important;
}

.w-auto {
    width: auto !important;
}

.h-25 {
    height: 25% !important;
}

.h-50 {
    height: 50% !important;
}

.h-75 {
    height: 75% !important;
}

.h-100 {
    height: 100% !important;
}

.h-auto {
    height: auto !important;
}

.mw-100 {
    max-width: 100% !important;
}

.mh-100 {
    max-height: 100% !important;
}

.min-vw-100 {
    min-width: 100vw !important;
}

.min-vh-100 {
    min-height: 100vh !important;
}

.vw-100 {
    width: 100vw !important;
}

.vh-100 {
    height: 100vh !important;
}

.m-0 {
    margin: 0 !important;
}

.mt-0,
.my-0 {
    margin-top: 0 !important;
}

.mr-0,
.mx-0 {
    margin-right: 0 !important;
}

.mb-0,
.my-0 {
    margin-bottom: 0 !important;
}

.ml-0,
.mx-0 {
    margin-left: 0 !important;
}

.m-1 {
    margin: 0.25rem !important;
}

.mt-1,
.my-1 {
    margin-top: 0.25rem !important;
}

.mr-1,
.mx-1 {
    margin-right: 0.25rem !important;
}

.mb-1,
.my-1 {
    margin-bottom: 0.25rem !important;
}

.ml-1,
.mx-1 {
    margin-left: 0.25rem !important;
}

.m-2 {
    margin: 0.5rem !important;
}

.mt-2,
.my-2 {
    margin-top: 0.5rem !important;
}

.mr-2,
.mx-2 {
    margin-right: 0.5rem !important;
}

.mb-2,
.my-2 {
    margin-bottom: 0.5rem !important;
}

.ml-2,
.mx-2 {
    margin-left: 0.5rem !important;
}

.m-3 {
    margin: 1rem !important;
}

.mt-3,
.my-3 {
    margin-top: 1rem !important;
}

.mr-3,
.mx-3 {
    margin-right: 1rem !important;
}

.mb-3,
.my-3 {
    margin-bottom: 1rem !important;
}

.ml-3,
.mx-3 {
    margin-left: 1rem !important;
}

.m-4 {
    margin: 1.5rem !important;
}

.mt-4,
.my-4 {
    margin-top: 1.5rem !important;
}

.mr-4,
.mx-4 {
    margin-right: 1.5rem !important;
}

.mb-4,
.my-4 {
    margin-bottom: 1.5rem !important;
}

.ml-4,
.mx-4 {
    margin-left: 1.5rem !important;
}

.m-5 {
    margin: 3rem !important;
}

.mt-5,
.my-5 {
    margin-top: 3rem !important;
}

.mr-5,
.mx-5 {
    margin-right: 3rem !important;
}

.mb-5,
.my-5 {
    margin-bottom: 3rem !important;
}

.ml-5,
.mx-5 {
    margin-left: 3rem !important;
}

.p-0 {
    padding: 0 !important;
}

.pt-0,
.py-0 {
    padding-top: 0 !important;
}

.pr-0,
.px-0 {
    padding-right: 0 !important;
}

.pb-0,
.py-0 {
    padding-bottom: 0 !important;
}

.pl-0,
.px-0 {
    padding-left: 0 !important;
}

.p-1 {
    padding: 0.25rem !important;
}

.pt-1,
.py-1 {
    padding-top: 0.25rem !important;
}

.pr-1,
.px-1 {
    padding-right: 0.25rem !important;
}

.pb-1,
.py-1 {
    padding-bottom: 0.25rem !important;
}

.pl-1,
.px-1 {
    padding-left: 0.25rem !important;
}

.p-2 {
    padding: 0.5rem !important;
}

.pt-2,
.py-2 {
    padding-top: 0.5rem !important;
}

.pr-2,
.px-2 {
    padding-right: 0.5rem !important;
}

.pb-2,
.py-2 {
    padding-bottom: 0.5rem !important;
}

.pl-2,
.px-2 {
    padding-left: 0.5rem !important;
}

.p-3 {
    padding: 1rem !important;
}

.pt-3,
.py-3 {
    padding-top: 1rem !important;
}

.pr-3,
.px-3 {
    padding-right: 1rem !important;
}

.pb-3,
.py-3 {
    padding-bottom: 1rem !important;
}

.pl-3,
.px-3 {
    padding-left: 1rem !important;
}

.p-4 {
    padding: 1.5rem !important;
}

.pt-4,
.py-4 {
    padding-top: 1.5rem !important;
}

.pr-4,
.px-4 {
    padding-right: 1.5rem !important;
}

.pb-4,
.py-4 {
    padding-bottom: 1.5rem !important;
}

.pl-4,
.px-4 {
    padding-left: 1.5rem !important;
}

.p-5 {
    padding: 3rem !important;
}

.pt-5,
.py-5 {
    padding-top: 3rem !important;
}

.pr-5,
.px-5 {
    padding-right: 3rem !important;
}


.py-5 {
    padding-bottom: 3rem !important;
}

.pl-5,
.px-5 {
    padding-left: 3rem !important;
}

.m-n1 {
    margin: -0.25rem !important;
}

.mt-n1,
.my-n1 {
    margin-top: -0.25rem !important;
}

.mr-n1,
.mx-n1 {
    margin-right: -0.25rem !important;
}

.mb-n1,
.my-n1 {
    margin-bottom: -0.25rem !important;
}

.ml-n1,
.mx-n1 {
    margin-left: -0.25rem !important;
}

.m-n2 {
    margin: -0.5rem !important;
}

.mt-n2,
.my-n2 {
    margin-top: -0.5rem !important;
}

.mr-n2,
.mx-n2 {
    margin-right: -0.5rem !important;
}

.mb-n2,
.my-n2 {
    margin-bottom: -0.5rem !important;
}

.ml-n2,
.mx-n2 {
    margin-left: -0.5rem !important;
}

.m-n3 {
    margin: -1rem !important;
}

.mt-n3,
.my-n3 {
    margin-top: -1rem !important;
}

.mr-n3,
.mx-n3 {
    margin-right: -1rem !important;
}

.mb-n3,
.my-n3 {
    margin-bottom: -1rem !important;
}

.ml-n3,
.mx-n3 {
    margin-left: -1rem !important;
}

.m-n4 {
    margin: -1.5rem !important;
}

.mt-n4,
.my-n4 {
    margin-top: -1.5rem !important;
}

.mr-n4,
.mx-n4 {
    margin-right: -1.5rem !important;
}

.mb-n4,
.my-n4 {
    margin-bottom: -1.5rem !important;
}

.ml-n4,
.mx-n4 {
    margin-left: -1.5rem !important;
}

.m-n5 {
    margin: -3rem !important;
}

.mt-n5,
.my-n5 {
    margin-top: -3rem !important;
}

.mr-n5,
.mx-n5 {
    margin-right: -3rem !important;
}

.mb-n5,
.my-n5 {
    margin-bottom: -3rem !important;
}

.ml-n5,
.mx-n5 {
    margin-left: -3rem !important;
}

.m-auto {
    margin: auto !important;
}

.mt-auto,
.my-auto {
    margin-top: auto !important;
}

.mr-auto,
.mx-auto {
    margin-right: auto !important;
}

.mb-auto,
.my-auto {
    margin-bottom: auto !important;
}

.ml-auto,
.mx-auto {
    margin-left: auto !important;
}

@media (min-width: 576px) {
    .m-sm-0 {
        margin: 0 !important;
    }

    .mt-sm-0,
    .my-sm-0 {
        margin-top: 0 !important;
    }

    .mr-sm-0,
    .mx-sm-0 {
        margin-right: 0 !important;
    }

    .mb-sm-0,
    .my-sm-0 {
        margin-bottom: 0 !important;
    }

    .ml-sm-0,
    .mx-sm-0 {
        margin-left: 0 !important;
    }

    .m-sm-1 {
        margin: 0.25rem !important;
    }

    .mt-sm-1,
    .my-sm-1 {
        margin-top: 0.25rem !important;
    }

    .mr-sm-1,
    .mx-sm-1 {
        margin-right: 0.25rem !important;
    }

    .mb-sm-1,
    .my-sm-1 {
        margin-bottom: 0.25rem !important;
    }

    .ml-sm-1,
    .mx-sm-1 {
        margin-left: 0.25rem !important;
    }

    .m-sm-2 {
        margin: 0.5rem !important;
    }

    .mt-sm-2,
    .my-sm-2 {
        margin-top: 0.5rem !important;
    }

    .mr-sm-2,
    .mx-sm-2 {
        margin-right: 0.5rem !important;
    }

    .mb-sm-2,
    .my-sm-2 {
        margin-bottom: 0.5rem !important;
    }

    .ml-sm-2,
    .mx-sm-2 {
        margin-left: 0.5rem !important;
    }

    .m-sm-3 {
        margin: 1rem !important;
    }

    .mt-sm-3,
    .my-sm-3 {
        margin-top: 1rem !important;
    }

    .mr-sm-3,
    .mx-sm-3 {
        margin-right: 1rem !important;
    }

    .mb-sm-3,
    .my-sm-3 {
        margin-bottom: 1rem !important;
    }

    .ml-sm-3,
    .mx-sm-3 {
        margin-left: 1rem !important;
    }

    .m-sm-4 {
        margin: 1.5rem !important;
    }

    .mt-sm-4,
    .my-sm-4 {
        margin-top: 1.5rem !important;
    }

    .mr-sm-4,
    .mx-sm-4 {
        margin-right: 1.5rem !important;
    }

    .mb-sm-4,
    .my-sm-4 {
        margin-bottom: 1.5rem !important;
    }

    .ml-sm-4,
    .mx-sm-4 {
        margin-left: 1.5rem !important;
    }

    .m-sm-5 {
        margin: 3rem !important;
    }

    .mt-sm-5,
    .my-sm-5 {
        margin-top: 3rem !important;
    }

    .mr-sm-5,
    .mx-sm-5 {
        margin-right: 3rem !important;
    }

    .mb-sm-5,
    .my-sm-5 {
        margin-bottom: 3rem !important;
    }

    .ml-sm-5,
    .mx-sm-5 {
        margin-left: 3rem !important;
    }

    .p-sm-0 {
        padding: 0 !important;
    }

    .pt-sm-0,
    .py-sm-0 {
        padding-top: 0 !important;
    }

    .pr-sm-0,
    .px-sm-0 {
        padding-right: 0 !important;
    }

    .pb-sm-0,
    .py-sm-0 {
        padding-bottom: 0 !important;
    }

    .pl-sm-0,
    .px-sm-0 {
        padding-left: 0 !important;
    }

    .p-sm-1 {
        padding: 0.25rem !important;
    }

    .pt-sm-1,
    .py-sm-1 {
        padding-top: 0.25rem !important;
    }

    .pr-sm-1,
    .px-sm-1 {
        padding-right: 0.25rem !important;
    }

    .pb-sm-1,
    .py-sm-1 {
        padding-bottom: 0.25rem !important;
    }

    .pl-sm-1,
    .px-sm-1 {
        padding-left: 0.25rem !important;
    }

    .p-sm-2 {
        padding: 0.5rem !important;
    }

    .pt-sm-2,
    .py-sm-2 {
        padding-top: 0.5rem !important;
    }

    .pr-sm-2,
    .px-sm-2 {
        padding-right: 0.5rem !important;
    }

    .pb-sm-2,
    .py-sm-2 {
        padding-bottom: 0.5rem !important;
    }

    .pl-sm-2,
    .px-sm-2 {
        padding-left: 0.5rem !important;
    }

    .p-sm-3 {
        padding: 1rem !important;
    }

    .pt-sm-3,
    .py-sm-3 {
        padding-top: 1rem !important;
    }

    .pr-sm-3,
    .px-sm-3 {
        padding-right: 1rem !important;
    }

    .pb-sm-3,
    .py-sm-3 {
        padding-bottom: 1rem !important;
    }

    .pl-sm-3,
    .px-sm-3 {
        padding-left: 1rem !important;
    }

    .p-sm-4 {
        padding: 1.5rem !important;
    }

    .pt-sm-4,
    .py-sm-4 {
        padding-top: 1.5rem !important;
    }

    .pr-sm-4,
    .px-sm-4 {
        padding-right: 1.5rem !important;
    }

    .pb-sm-4,
    .py-sm-4 {
        padding-bottom: 1.5rem !important;
    }

    .pl-sm-4,
    .px-sm-4 {
        padding-left: 1.5rem !important;
    }

    .p-sm-5 {
        padding: 3rem !important;
    }

    .pt-sm-5,
    .py-sm-5 {
        padding-top: 3rem !important;
    }

    .pr-sm-5,
    .px-sm-5 {
        padding-right: 3rem !important;
    }

    .pb-sm-5,
    .py-sm-5 {
        padding-bottom: 3rem !important;
    }

    .pl-sm-5,
    .px-sm-5 {
        padding-left: 3rem !important;
    }

    .m-sm-n1 {
        margin: -0.25rem !important;
    }

    .mt-sm-n1,
    .my-sm-n1 {
        margin-top: -0.25rem !important;
    }

    .mr-sm-n1,
    .mx-sm-n1 {
        margin-right: -0.25rem !important;
    }

    .mb-sm-n1,
    .my-sm-n1 {
        margin-bottom: -0.25rem !important;
    }

    .ml-sm-n1,
    .mx-sm-n1 {
        margin-left: -0.25rem !important;
    }

    .m-sm-n2 {
        margin: -0.5rem !important;
    }

    .mt-sm-n2,
    .my-sm-n2 {
        margin-top: -0.5rem !important;
    }

    .mr-sm-n2,
    .mx-sm-n2 {
        margin-right: -0.5rem !important;
    }

    .mb-sm-n2,
    .my-sm-n2 {
        margin-bottom: -0.5rem !important;
    }

    .ml-sm-n2,
    .mx-sm-n2 {
        margin-left: -0.5rem !important;
    }

    .m-sm-n3 {
        margin: -1rem !important;
    }

    .mt-sm-n3,
    .my-sm-n3 {
        margin-top: -1rem !important;
    }

    .mr-sm-n3,
    .mx-sm-n3 {
        margin-right: -1rem !important;
    }

    .mb-sm-n3,
    .my-sm-n3 {
        margin-bottom: -1rem !important;
    }

    .ml-sm-n3,
    .mx-sm-n3 {
        margin-left: -1rem !important;
    }

    .m-sm-n4 {
        margin: -1.5rem !important;
    }

    .mt-sm-n4,
    .my-sm-n4 {
        margin-top: -1.5rem !important;
    }

    .mr-sm-n4,
    .mx-sm-n4 {
        margin-right: -1.5rem !important;
    }

    .mb-sm-n4,
    .my-sm-n4 {
        margin-bottom: -1.5rem !important;
    }

    .ml-sm-n4,
    .mx-sm-n4 {
        margin-left: -1.5rem !important;
    }

    .m-sm-n5 {
        margin: -3rem !important;
    }

    .mt-sm-n5,
    .my-sm-n5 {
        margin-top: -3rem !important;
    }

    .mr-sm-n5,
    .mx-sm-n5 {
        margin-right: -3rem !important;
    }

    .mb-sm-n5,
    .my-sm-n5 {
        margin-bottom: -3rem !important;
    }

    .ml-sm-n5,
    .mx-sm-n5 {
        margin-left: -3rem !important;
    }

    .m-sm-auto {
        margin: auto !important;
    }

    .mt-sm-auto,
    .my-sm-auto {
        margin-top: auto !important;
    }

    .mr-sm-auto,
    .mx-sm-auto {
        margin-right: auto !important;
    }

    .mb-sm-auto,
    .my-sm-auto {
        margin-bottom: auto !important;
    }

    .ml-sm-auto,
    .mx-sm-auto {
        margin-left: auto !important;
    }
}

@media (min-width: 768px) {
    .m-md-0 {
        margin: 0 !important;
    }

    .mt-md-0,
    .my-md-0 {
        margin-top: 0 !important;
    }

    .mr-md-0,
    .mx-md-0 {
        margin-right: 0 !important;
    }

    .mb-md-0,
    .my-md-0 {
        margin-bottom: 0 !important;
    }

    .ml-md-0,
    .mx-md-0 {
        margin-left: 0 !important;
    }

    .m-md-1 {
        margin: 0.25rem !important;
    }

    .mt-md-1,
    .my-md-1 {
        margin-top: 0.25rem !important;
    }

    .mr-md-1,
    .mx-md-1 {
        margin-right: 0.25rem !important;
    }

    .mb-md-1,
    .my-md-1 {
        margin-bottom: 0.25rem !important;
    }

    .ml-md-1,
    .mx-md-1 {
        margin-left: 0.25rem !important;
    }

    .m-md-2 {
        margin: 0.5rem !important;
    }

    .mt-md-2,
    .my-md-2 {
        margin-top: 0.5rem !important;
    }

    .mr-md-2,
    .mx-md-2 {
        margin-right: 0.5rem !important;
    }

    .mb-md-2,
    .my-md-2 {
        margin-bottom: 0.5rem !important;
    }

    .ml-md-2,
    .mx-md-2 {
        margin-left: 0.5rem !important;
    }

    .m-md-3 {
        margin: 1rem !important;
    }

    .mt-md-3,
    .my-md-3 {
        margin-top: 1rem !important;
    }

    .mr-md-3,
    .mx-md-3 {
        margin-right: 1rem !important;
    }

    .mb-md-3,
    .my-md-3 {
        margin-bottom: 1rem !important;
    }

    .ml-md-3,
    .mx-md-3 {
        margin-left: 1rem !important;
    }

    .m-md-4 {
        margin: 1.5rem !important;
    }

    .mt-md-4,
    .my-md-4 {
        margin-top: 1.5rem !important;
    }

    .mr-md-4,
    .mx-md-4 {
        margin-right: 1.5rem !important;
    }

    .mb-md-4,
    .my-md-4 {
        margin-bottom: 1.5rem !important;
    }

    .ml-md-4,
    .mx-md-4 {
        margin-left: 1.5rem !important;
    }

    .m-md-5 {
        margin: 3rem !important;
    }

    .mt-md-5,
    .my-md-5 {
        margin-top: 3rem !important;
    }

    .mr-md-5,
    .mx-md-5 {
        margin-right: 3rem !important;
    }

    .mb-md-5,
    .my-md-5 {
        margin-bottom: 3rem !important;
    }

    .ml-md-5,
    .mx-md-5 {
        margin-left: 3rem !important;
    }

    .p-md-0 {
        padding: 0 !important;
    }

    .pt-md-0,
    .py-md-0 {
        padding-top: 0 !important;
    }

    .pr-md-0,
    .px-md-0 {
        padding-right: 0 !important;
    }

    .pb-md-0,
    .py-md-0 {
        padding-bottom: 0 !important;
    }

    .pl-md-0,
    .px-md-0 {
        padding-left: 0 !important;
    }

    .p-md-1 {
        padding: 0.25rem !important;
    }

    .pt-md-1,
    .py-md-1 {
        padding-top: 0.25rem !important;
    }

    .pr-md-1,
    .px-md-1 {
        padding-right: 0.25rem !important;
    }

    .pb-md-1,
    .py-md-1 {
        padding-bottom: 0.25rem !important;
    }

    .pl-md-1,
    .px-md-1 {
        padding-left: 0.25rem !important;
    }

    .p-md-2 {
        padding: 0.5rem !important;
    }

    .pt-md-2,
    .py-md-2 {
        padding-top: 0.5rem !important;
    }

    .pr-md-2,
    .px-md-2 {
        padding-right: 0.5rem !important;
    }

    .pb-md-2,
    .py-md-2 {
        padding-bottom: 0.5rem !important;
    }

    .pl-md-2,
    .px-md-2 {
        padding-left: 0.5rem !important;
    }

    .p-md-3 {
        padding: 1rem !important;
    }

    .pt-md-3,
    .py-md-3 {
        padding-top: 1rem !important;
    }

    .pr-md-3,
    .px-md-3 {
        padding-right: 1rem !important;
    }

    .pb-md-3,
    .py-md-3 {
        padding-bottom: 1rem !important;
    }

    .pl-md-3,
    .px-md-3 {
        padding-left: 1rem !important;
    }

    .p-md-4 {
        padding: 1.5rem !important;
    }

    .pt-md-4,
    .py-md-4 {
        padding-top: 1.5rem !important;
    }

    .pr-md-4,
    .px-md-4 {
        padding-right: 1.5rem !important;
    }

    .pb-md-4,
    .py-md-4 {
        padding-bottom: 1.5rem !important;
    }

    .pl-md-4,
    .px-md-4 {
        padding-left: 1.5rem !important;
    }

    .p-md-5 {
        padding: 3rem !important;
    }

    .pt-md-5,
    .py-md-5 {
        padding-top: 3rem !important;
    }

    .pr-md-5,
    .px-md-5 {
        padding-right: 3rem !important;
    }

    .pb-md-5,
    .py-md-5 {
        padding-bottom: 3rem !important;
    }

    .pl-md-5,
    .px-md-5 {
        padding-left: 3rem !important;
    }

    .m-md-n1 {
        margin: -0.25rem !important;
    }

    .mt-md-n1,
    .my-md-n1 {
        margin-top: -0.25rem !important;
    }

    .mr-md-n1,
    .mx-md-n1 {
        margin-right: -0.25rem !important;
    }

    .mb-md-n1,
    .my-md-n1 {
        margin-bottom: -0.25rem !important;
    }

    .ml-md-n1,
    .mx-md-n1 {
        margin-left: -0.25rem !important;
    }

    .m-md-n2 {
        margin: -0.5rem !important;
    }

    .mt-md-n2,
    .my-md-n2 {
        margin-top: -0.5rem !important;
    }

    .mr-md-n2,
    .mx-md-n2 {
        margin-right: -0.5rem !important;
    }

    .mb-md-n2,
    .my-md-n2 {
        margin-bottom: -0.5rem !important;
    }

    .ml-md-n2,
    .mx-md-n2 {
        margin-left: -0.5rem !important;
    }

    .m-md-n3 {
        margin: -1rem !important;
    }

    .mt-md-n3,
    .my-md-n3 {
        margin-top: -1rem !important;
    }

    .mr-md-n3,
    .mx-md-n3 {
        margin-right: -1rem !important;
    }

    .mb-md-n3,
    .my-md-n3 {
        margin-bottom: -1rem !important;
    }

    .ml-md-n3,
    .mx-md-n3 {
        margin-left: -1rem !important;
    }

    .m-md-n4 {
        margin: -1.5rem !important;
    }

    .mt-md-n4,
    .my-md-n4 {
        margin-top: -1.5rem !important;
    }

    .mr-md-n4,
    .mx-md-n4 {
        margin-right: -1.5rem !important;
    }

    .mb-md-n4,
    .my-md-n4 {
        margin-bottom: -1.5rem !important;
    }

    .ml-md-n4,
    .mx-md-n4 {
        margin-left: -1.5rem !important;
    }

    .m-md-n5 {
        margin: -3rem !important;
    }

    .mt-md-n5,
    .my-md-n5 {
        margin-top: -3rem !important;
    }

    .mr-md-n5,
    .mx-md-n5 {
        margin-right: -3rem !important;
    }

    .mb-md-n5,
    .my-md-n5 {
        margin-bottom: -3rem !important;
    }

    .ml-md-n5,
    .mx-md-n5 {
        margin-left: -3rem !important;
    }

    .m-md-auto {
        margin: auto !important;
    }

    .mt-md-auto,
    .my-md-auto {
        margin-top: auto !important;
    }

    .mr-md-auto,
    .mx-md-auto {
        margin-right: auto !important;
    }

    .mb-md-auto,
    .my-md-auto {
        margin-bottom: auto !important;
    }

    .ml-md-auto,
    .mx-md-auto {
        margin-left: auto !important;
    }
}

@media (min-width: 992px) {
    .m-lg-0 {
        margin: 0 !important;
    }

    .mt-lg-0,
    .my-lg-0 {
        margin-top: 0 !important;
    }

    .mr-lg-0,
    .mx-lg-0 {
        margin-right: 0 !important;
    }

    .mb-lg-0,
    .my-lg-0 {
        margin-bottom: 0 !important;
    }

    .ml-lg-0,
    .mx-lg-0 {
        margin-left: 0 !important;
    }

    .m-lg-1 {
        margin: 0.25rem !important;
    }

    .mt-lg-1,
    .my-lg-1 {
        margin-top: 0.25rem !important;
    }

    .mr-lg-1,
    .mx-lg-1 {
        margin-right: 0.25rem !important;
    }

    .mb-lg-1,
    .my-lg-1 {
        margin-bottom: 0.25rem !important;
    }

    .ml-lg-1,
    .mx-lg-1 {
        margin-left: 0.25rem !important;
    }

    .m-lg-2 {
        margin: 0.5rem !important;
    }

    .mt-lg-2,
    .my-lg-2 {
        margin-top: 0.5rem !important;
    }

    .mr-lg-2,
    .mx-lg-2 {
        margin-right: 0.5rem !important;
    }

    .mb-lg-2,
    .my-lg-2 {
        margin-bottom: 0.5rem !important;
    }

    .ml-lg-2,
    .mx-lg-2 {
        margin-left: 0.5rem !important;
    }

    .m-lg-3 {
        margin: 1rem !important;
    }

    .mt-lg-3,
    .my-lg-3 {
        margin-top: 1rem !important;
    }

    .mr-lg-3,
    .mx-lg-3 {
        margin-right: 1rem !important;
    }

    .mb-lg-3,
    .my-lg-3 {
        margin-bottom: 1rem !important;
    }

    .ml-lg-3,
    .mx-lg-3 {
        margin-left: 1rem !important;
    }

    .m-lg-4 {
        margin: 1.5rem !important;
    }

    .mt-lg-4,
    .my-lg-4 {
        margin-top: 1.5rem !important;
    }

    .mr-lg-4,
    .mx-lg-4 {
        margin-right: 1.5rem !important;
    }

    .mb-lg-4,
    .my-lg-4 {
        margin-bottom: 1.5rem !important;
    }

    .ml-lg-4,
    .mx-lg-4 {
        margin-left: 1.5rem !important;
    }

    .m-lg-5 {
        margin: 3rem !important;
    }

    .mt-lg-5,
    .my-lg-5 {
        margin-top: 3rem !important;
    }

    .mr-lg-5,
    .mx-lg-5 {
        margin-right: 3rem !important;
    }

    .mb-lg-5,
    .my-lg-5 {
        margin-bottom: 3rem !important;
    }

    .ml-lg-5,
    .mx-lg-5 {
        margin-left: 3rem !important;
    }

    .p-lg-0 {
        padding: 0 !important;
    }

    .pt-lg-0,
    .py-lg-0 {
        padding-top: 0 !important;
    }

    .pr-lg-0,
    .px-lg-0 {
        padding-right: 0 !important;
    }

    .pb-lg-0,
    .py-lg-0 {
        padding-bottom: 0 !important;
    }

    .pl-lg-0,
    .px-lg-0 {
        padding-left: 0 !important;
    }

    .p-lg-1 {
        padding: 0.25rem !important;
    }

    .pt-lg-1,
    .py-lg-1 {
        padding-top: 0.25rem !important;
    }

    .pr-lg-1,
    .px-lg-1 {
        padding-right: 0.25rem !important;
    }

    .pb-lg-1,
    .py-lg-1 {
        padding-bottom: 0.25rem !important;
    }

    .pl-lg-1,
    .px-lg-1 {
        padding-left: 0.25rem !important;
    }

    .p-lg-2 {
        padding: 0.5rem !important;
    }

    .pt-lg-2,
    .py-lg-2 {
        padding-top: 0.5rem !important;
    }

    .pr-lg-2,
    .px-lg-2 {
        padding-right: 0.5rem !important;
    }

    .pb-lg-2,
    .py-lg-2 {
        padding-bottom: 0.5rem !important;
    }

    .pl-lg-2,
    .px-lg-2 {
        padding-left: 0.5rem !important;
    }

    .p-lg-3 {
        padding: 1rem !important;
    }

    .pt-lg-3,
    .py-lg-3 {
        padding-top: 1rem !important;
    }

    .pr-lg-3,
    .px-lg-3 {
        padding-right: 1rem !important;
    }

    .pb-lg-3,
    .py-lg-3 {
        padding-bottom: 1rem !important;
    }

    .pl-lg-3,
    .px-lg-3 {
        padding-left: 1rem !important;
    }

    .p-lg-4 {
        padding: 1.5rem !important;
    }

    .pt-lg-4,
    .py-lg-4 {
        padding-top: 1.5rem !important;
    }

    .pr-lg-4,
    .px-lg-4 {
        padding-right: 1.5rem !important;
    }

    .pb-lg-4,
    .py-lg-4 {
        padding-bottom: 1.5rem !important;
    }

    .pl-lg-4,
    .px-lg-4 {
        padding-left: 1.5rem !important;
    }

    .p-lg-5 {
        padding: 3rem !important;
    }

    .pt-lg-5,
    .py-lg-5 {
        padding-top: 3rem !important;
    }

    .pr-lg-5,
    .px-lg-5 {
        padding-right: 3rem !important;
    }

    .pb-lg-5,
    .py-lg-5 {
        padding-bottom: 3rem !important;
    }

    .pl-lg-5,
    .px-lg-5 {
        padding-left: 3rem !important;
    }

    .m-lg-n1 {
        margin: -0.25rem !important;
    }

    .mt-lg-n1,
    .my-lg-n1 {
        margin-top: -0.25rem !important;
    }

    .mr-lg-n1,
    .mx-lg-n1 {
        margin-right: -0.25rem !important;
    }

    .mb-lg-n1,
    .my-lg-n1 {
        margin-bottom: -0.25rem !important;
    }

    .ml-lg-n1,
    .mx-lg-n1 {
        margin-left: -0.25rem !important;
    }

    .m-lg-n2 {
        margin: -0.5rem !important;
    }

    .mt-lg-n2,
    .my-lg-n2 {
        margin-top: -0.5rem !important;
    }

    .mr-lg-n2,
    .mx-lg-n2 {
        margin-right: -0.5rem !important;
    }

    .mb-lg-n2,
    .my-lg-n2 {
        margin-bottom: -0.5rem !important;
    }

    .ml-lg-n2,
    .mx-lg-n2 {
        margin-left: -0.5rem !important;
    }

    .m-lg-n3 {
        margin: -1rem !important;
    }

    .mt-lg-n3,
    .my-lg-n3 {
        margin-top: -1rem !important;
    }

    .mr-lg-n3,
    .mx-lg-n3 {
        margin-right: -1rem !important;
    }

    .mb-lg-n3,
    .my-lg-n3 {
        margin-bottom: -1rem !important;
    }

    .ml-lg-n3,
    .mx-lg-n3 {
        margin-left: -1rem !important;
    }

    .m-lg-n4 {
        margin: -1.5rem !important;
    }

    .mt-lg-n4,
    .my-lg-n4 {
        margin-top: -1.5rem !important;
    }

    .mr-lg-n4,
    .mx-lg-n4 {
        margin-right: -1.5rem !important;
    }

    .mb-lg-n4,
    .my-lg-n4 {
        margin-bottom: -1.5rem !important;
    }

    .ml-lg-n4,
    .mx-lg-n4 {
        margin-left: -1.5rem !important;
    }

    .m-lg-n5 {
        margin: -3rem !important;
    }

    .mt-lg-n5,
    .my-lg-n5 {
        margin-top: -3rem !important;
    }

    .mr-lg-n5,
    .mx-lg-n5 {
        margin-right: -3rem !important;
    }

    .mb-lg-n5,
    .my-lg-n5 {
        margin-bottom: -3rem !important;
    }

    .ml-lg-n5,
    .mx-lg-n5 {
        margin-left: -3rem !important;
    }

    .m-lg-auto {
        margin: auto !important;
    }

    .mt-lg-auto,
    .my-lg-auto {
        margin-top: auto !important;
    }

    .mr-lg-auto,
    .mx-lg-auto {
        margin-right: auto !important;
    }

    .mb-lg-auto,
    .my-lg-auto {
        margin-bottom: auto !important;
    }

    .ml-lg-auto,
    .mx-lg-auto {
        margin-left: auto !important;
    }
}

@media (min-width: 1200px) {
    .m-xl-0 {
        margin: 0 !important;
    }

    .mt-xl-0,
    .my-xl-0 {
        margin-top: 0 !important;
    }

    .mr-xl-0,
    .mx-xl-0 {
        margin-right: 0 !important;
    }

    .mb-xl-0,
    .my-xl-0 {
        margin-bottom: 0 !important;
    }

    .ml-xl-0,
    .mx-xl-0 {
        margin-left: 0 !important;
    }

    .m-xl-1 {
        margin: 0.25rem !important;
    }

    .mt-xl-1,
    .my-xl-1 {
        margin-top: 0.25rem !important;
    }

    .mr-xl-1,
    .mx-xl-1 {
        margin-right: 0.25rem !important;
    }

    .mb-xl-1,
    .my-xl-1 {
        margin-bottom: 0.25rem !important;
    }

    .ml-xl-1,
    .mx-xl-1 {
        margin-left: 0.25rem !important;
    }

    .m-xl-2 {
        margin: 0.5rem !important;
    }

    .mt-xl-2,
    .my-xl-2 {
        margin-top: 0.5rem !important;
    }

    .mr-xl-2,
    .mx-xl-2 {
        margin-right: 0.5rem !important;
    }

    .mb-xl-2,
    .my-xl-2 {
        margin-bottom: 0.5rem !important;
    }

    .ml-xl-2,
    .mx-xl-2 {
        margin-left: 0.5rem !important;
    }

    .m-xl-3 {
        margin: 1rem !important;
    }

    .mt-xl-3,
    .my-xl-3 {
        margin-top: 1rem !important;
    }

    .mr-xl-3,
    .mx-xl-3 {
        margin-right: 1rem !important;
    }

    .mb-xl-3,
    .my-xl-3 {
        margin-bottom: 1rem !important;
    }

    .ml-xl-3,
    .mx-xl-3 {
        margin-left: 1rem !important;
    }

    .m-xl-4 {
        margin: 1.5rem !important;
    }

    .mt-xl-4,
    .my-xl-4 {
        margin-top: 1.5rem !important;
    }

    .mr-xl-4,
    .mx-xl-4 {
        margin-right: 1.5rem !important;
    }

    .mb-xl-4,
    .my-xl-4 {
        margin-bottom: 1.5rem !important;
    }

    .ml-xl-4,
    .mx-xl-4 {
        margin-left: 1.5rem !important;
    }

    .m-xl-5 {
        margin: 3rem !important;
    }

    .mt-xl-5,
    .my-xl-5 {
        margin-top: 3rem !important;
    }

    .mr-xl-5,
    .mx-xl-5 {
        margin-right: 3rem !important;
    }

    .mb-xl-5,
    .my-xl-5 {
        margin-bottom: 3rem !important;
    }

    .ml-xl-5,
    .mx-xl-5 {
        margin-left: 3rem !important;
    }

    .p-xl-0 {
        padding: 0 !important;
    }

    .pt-xl-0,
    .py-xl-0 {
        padding-top: 0 !important;
    }

    .pr-xl-0,
    .px-xl-0 {
        padding-right: 0 !important;
    }

    .pb-xl-0,
    .py-xl-0 {
        padding-bottom: 0 !important;
    }

    .pl-xl-0,
    .px-xl-0 {
        padding-left: 0 !important;
    }

    .p-xl-1 {
        padding: 0.25rem !important;
    }

    .pt-xl-1,
    .py-xl-1 {
        padding-top: 0.25rem !important;
    }

    .pr-xl-1,
    .px-xl-1 {
        padding-right: 0.25rem !important;
    }

    .pb-xl-1,
    .py-xl-1 {
        padding-bottom: 0.25rem !important;
    }

    .pl-xl-1,
    .px-xl-1 {
        padding-left: 0.25rem !important;
    }

    .p-xl-2 {
        padding: 0.5rem !important;
    }

    .pt-xl-2,
    .py-xl-2 {
        padding-top: 0.5rem !important;
    }

    .pr-xl-2,
    .px-xl-2 {
        padding-right: 0.5rem !important;
    }

    .pb-xl-2,
    .py-xl-2 {
        padding-bottom: 0.5rem !important;
    }

    .pl-xl-2,
    .px-xl-2 {
        padding-left: 0.5rem !important;
    }

    .p-xl-3 {
        padding: 1rem !important;
    }

    .pt-xl-3,
    .py-xl-3 {
        padding-top: 1rem !important;
    }

    .pr-xl-3,
    .px-xl-3 {
        padding-right: 1rem !important;
    }

    .pb-xl-3,
    .py-xl-3 {
        padding-bottom: 1rem !important;
    }

    .pl-xl-3,
    .px-xl-3 {
        padding-left: 1rem !important;
    }

    .p-xl-4 {
        padding: 1.5rem !important;
    }

    .pt-xl-4,
    .py-xl-4 {
        padding-top: 1.5rem !important;
    }

    .pr-xl-4,
    .px-xl-4 {
        padding-right: 1.5rem !important;
    }

    .pb-xl-4,
    .py-xl-4 {
        padding-bottom: 1.5rem !important;
    }

    .pl-xl-4,
    .px-xl-4 {
        padding-left: 1.5rem !important;
    }

    .p-xl-5 {
        padding: 3rem !important;
    }

    .pt-xl-5,
    .py-xl-5 {
        padding-top: 3rem !important;
    }

    .pr-xl-5,
    .px-xl-5 {
        padding-right: 3rem !important;
    }

    .pb-xl-5,
    .py-xl-5 {
        padding-bottom: 3rem !important;
    }

    .pl-xl-5,
    .px-xl-5 {
        padding-left: 3rem !important;
    }

    .m-xl-n1 {
        margin: -0.25rem !important;
    }

    .mt-xl-n1,
    .my-xl-n1 {
        margin-top: -0.25rem !important;
    }

    .mr-xl-n1,
    .mx-xl-n1 {
        margin-right: -0.25rem !important;
    }

    .mb-xl-n1,
    .my-xl-n1 {
        margin-bottom: -0.25rem !important;
    }

    .ml-xl-n1,
    .mx-xl-n1 {
        margin-left: -0.25rem !important;
    }

    .m-xl-n2 {
        margin: -0.5rem !important;
    }

    .mt-xl-n2,
    .my-xl-n2 {
        margin-top: -0.5rem !important;
    }

    .mr-xl-n2,
    .mx-xl-n2 {
        margin-right: -0.5rem !important;
    }

    .mb-xl-n2,
    .my-xl-n2 {
        margin-bottom: -0.5rem !important;
    }

    .ml-xl-n2,
    .mx-xl-n2 {
        margin-left: -0.5rem !important;
    }

    .m-xl-n3 {
        margin: -1rem !important;
    }

    .mt-xl-n3,
    .my-xl-n3 {
        margin-top: -1rem !important;
    }

    .mr-xl-n3,
    .mx-xl-n3 {
        margin-right: -1rem !important;
    }

    .mb-xl-n3,
    .my-xl-n3 {
        margin-bottom: -1rem !important;
    }

    .ml-xl-n3,
    .mx-xl-n3 {
        margin-left: -1rem !important;
    }

    .m-xl-n4 {
        margin: -1.5rem !important;
    }

    .mt-xl-n4,
    .my-xl-n4 {
        margin-top: -1.5rem !important;
    }

    .mr-xl-n4,
    .mx-xl-n4 {
        margin-right: -1.5rem !important;
    }

    .mb-xl-n4,
    .my-xl-n4 {
        margin-bottom: -1.5rem !important;
    }

    .ml-xl-n4,
    .mx-xl-n4 {
        margin-left: -1.5rem !important;
    }

    .m-xl-n5 {
        margin: -3rem !important;
    }

    .mt-xl-n5,
    .my-xl-n5 {
        margin-top: -3rem !important;
    }

    .mr-xl-n5,
    .mx-xl-n5 {
        margin-right: -3rem !important;
    }

    .mb-xl-n5,
    .my-xl-n5 {
        margin-bottom: -3rem !important;
    }

    .ml-xl-n5,
    .mx-xl-n5 {
        margin-left: -3rem !important;
    }

    .m-xl-auto {
        margin: auto !important;
    }

    .mt-xl-auto,
    .my-xl-auto {
        margin-top: auto !important;
    }

    .mr-xl-auto,
    .mx-xl-auto {
        margin-right: auto !important;
    }

    .mb-xl-auto,
    .my-xl-auto {
        margin-bottom: auto !important;
    }

    .ml-xl-auto,
    .mx-xl-auto {
        margin-left: auto !important;
    }
}

.text-monospace {
    font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.text-justify {
    text-align: justify !important;
}

.text-wrap {
    white-space: normal !important;
}

.text-nowrap {
    white-space: nowrap !important;
}

.text-truncate {
    overflow: hidden;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.text-left {
    text-align: left !important;
}

.text-right {
    text-align: right !important;
}

.text-center {
    text-align: center !important;
}

@media (min-width: 576px) {
    .text-sm-left {
        text-align: left !important;
    }

    .text-sm-right {
        text-align: right !important;
    }

    .text-sm-center {
        text-align: center !important;
    }
}

@media (min-width: 768px) {
    .text-md-left {
        text-align: left !important;
    }

    .text-md-right {
        text-align: right !important;
    }

    .text-md-center {
        text-align: center !important;
    }
}

@media (min-width: 992px) {
    .text-lg-left {
        text-align: left !important;
    }

    .text-lg-right {
        text-align: right !important;
    }

    .text-lg-center {
        text-align: center !important;
    }
}

@media (min-width: 1200px) {
    .text-xl-left {
        text-align: left !important;
    }

    .text-xl-right {
        text-align: right !important;
    }

    .text-xl-center {
        text-align: center !important;
    }
}

.text-lowercase {
    text-transform: lowercase !important;
}

.text-uppercase {
    text-transform: uppercase !important;
}

.text-capitalize {
    text-transform: capitalize !important;
}

.font-weight-light {
    font-weight: 300 !important;
}

.font-weight-lighter {
    font-weight: lighter !important;
}

.font-weight-normal {
    font-weight: 400 !important;
}

.font-weight-bold {
    font-weight: 700 !important;
}

.font-weight-bolder {
    font-weight: bolder !important;
}

.font-italic {
    font-style: italic !important;
}

.text-white {
    color: #fff !important;
}

.text-primary {
    color: #007bff !important;
}

a.text-primary:hover, a.text-primary:focus {
    color: #0056b3 !important;
}

.text-secondary {
    color: #6c757d !important;
}

a.text-secondary:hover, a.text-secondary:focus {
    color: #494f54 !important;
}

.text-success {
    color: #28a745 !important;
}

a.text-success:hover, a.text-success:focus {
    color: #19692c !important;
}

.text-info {
    color: #17a2b8 !important;
}

a.text-info:hover, a.text-info:focus {
    color: #0f6674 !important;
}

.text-warning {
    color: #ffc107 !important;
}

a.text-warning:hover, a.text-warning:focus {
    color: #ba8b00 !important;
}

.text-danger {
    color: #dc3545 !important;
}

a.text-danger:hover, a.text-danger:focus {
    color: #a71d2a !important;
}

.text-light {
    color: #f8f9fa !important;
}

a.text-light:hover, a.text-light:focus {
    color: #cbd3da !important;
}

.text-dark {
    color: #343a40 !important;
}

a.text-dark:hover, a.text-dark:focus {
    color: #121416 !important;
}

.text-body {
    color: #212529 !important;
}

.text-muted {
    color: #6c757d !important;
}

.text-black-50 {
    color: rgba(0, 0, 0, 0.5) !important;
}

.text-white-50 {
    color: rgba(255, 255, 255, 0.5) !important;
}

.text-hide {
    font: 0/0 a;
    color: transparent;
    text-shadow: none;
    background-color: transparent;
    border: 0;
}

.text-decoration-none {
    text-decoration: none !important;
}

.text-reset {
    color: inherit !important;
}

.visible {
    visibility: visible !important;
}

.invisible {
    visibility: hidden !important;
}

@media print {
    *,
    *::before,
    *::after {
        text-shadow: none !important;
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
    }

    a:not(.btn) {
        text-decoration: underline;
    }

    abbr[title]::after {
        content: " (" attr(title) ")";
    }

    pre {
        white-space: pre-wrap !important;
    }

    pre,
    blockquote {
        border: 1px solid #adb5bd;
        page-break-inside: avoid;
    }

    thead {
        display: table-header-group;
    }

    tr,
    img {
        page-break-inside: avoid;
    }

    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }

    @page {
        size: a3;
    }

    body {
        min-width: 992px !important;
    }

    .container {
        min-width: 992px !important;
    }

    .navbar {
        display: none;
    }

    .badge {
        border: 1px solid #000;
    }

    .table {
        border-collapse: collapse !important;
    }

        .table td,
        .table th {
            background-color: #fff !important;
        }

    .table-bordered th,
    .table-bordered td {
        border: 1px solid #dee2e6 !important;
    }

    .table-dark {
        color: inherit;
    }

        .table-dark th,
        .table-dark td,
        .table-dark thead th,
        .table-dark tbody + tbody {
            border-color: #dee2e6;
        }

    .table .thead-dark th {
        color: inherit;
        border-color: #dee2e6;
    }
}

body {
    font-family: "Poppins", Arial, sans-serif;
    background: #fff;
    font-size: 15px;
    line-height: 1.8;
    font-weight: 400;
    color: gray;
}

    body.menu-show {
        overflow: hidden;
        position: fixed;
        height: 100%;
        width: 100%;
    }

a {
    -webkit-transition: .3s all ease;
    -o-transition: .3s all ease;
    transition: .3s all ease;
    color: #82ae46;
}

    a:hover, a:focus {
        text-decoration: none;
        color: #82ae46;
    }

h1, h2, h3, h4, h5,
.h1, .h2, .h3, .h4, .h5 {
    line-height: 1.5;
    font-weight: 400;
    color: #000000;
    font-family: "Poppins", Arial, sans-serif;
}

.text-primary {
    color: #82ae46 !important;
}

.topper {
    font-size: 11px;
    width: 100%;
    display: block;
    text-transform: uppercase;
    letter-spacing: 1px;
}

@media (max-width: 767.98px) {
    .topper {
        margin-bottom: 10px;
    }
}

.topper .icon span {
    color: #fff;
}

.topper .text {
    width: calc(100% - 30px);
    color: white;
}

.ftco-navbar-light {
    background: transparent !important;
    z-index: 3;
    padding: 0;
}

@media (max-width: 991.98px) {
    .ftco-navbar-light {
        background: #000000 !important;
        position: relative;
        top: 0;
        padding: 10px 15px;
    }
}

.ftco-navbar-light.ftco-navbar-light-2 {
    position: relative;
    top: 0;
}

.ftco-navbar-light .navbar-brand {
    color: #82ae46;
}

    .ftco-navbar-light .navbar-brand:hover, .ftco-navbar-light .navbar-brand:focus {
        color: #000000;
    }

@media (max-width: 991.98px) {
    .ftco-navbar-light .navbar-brand {
        color: #fff;
    }
}

@media (max-width: 991.98px) {
    .ftco-navbar-light .navbar-nav {
        padding-bottom: 10px;
    }
}

.ftco-navbar-light .navbar-nav > .nav-item > .nav-link {
    font-size: 11px;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    padding-left: 20px;
    padding-right: 20px;
    font-weight: 400;
    color: #000000;
    text-transform: uppercase;
    letter-spacing: 2px;
    opacity: 1 !important;
}

    .ftco-navbar-light .navbar-nav > .nav-item > .nav-link:hover {
        color: #000000;
    }

@media (max-width: 991.98px) {
    .ftco-navbar-light .navbar-nav > .nav-item > .nav-link {
        padding-left: 0;
        padding-right: 0;
        padding-top: .9rem;
        padding-bottom: .9rem;
        color: rgba(255, 255, 255, 0.7);
    }

        .ftco-navbar-light .navbar-nav > .nav-item > .nav-link:hover {
            color: #fff;
        }
}

.ftco-navbar-light .navbar-nav > .nav-item .dropdown-menu {
    border: none;
    background: #fff;
    -webkit-box-shadow: 0px 10px 34px -20px rgba(0, 0, 0, 0.41);
    -moz-box-shadow: 0px 10px 34px -20px rgba(0, 0, 0, 0.41);
    box-shadow: 0px 10px 34px -20px rgba(0, 0, 0, 0.41);
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    -ms-border-radius: 0;
    border-radius: 0;
}

    .ftco-navbar-light .navbar-nav > .nav-item .dropdown-menu .dropdown-item {
        font-size: 14px;
    }

        .ftco-navbar-light .navbar-nav > .nav-item .dropdown-menu .dropdown-item:hover, .ftco-navbar-light .navbar-nav > .nav-item .dropdown-menu .dropdown-item:focus {
            background: transparent;
            color: #000000;
        }

.ftco-navbar-light .navbar-nav > .nav-item.ftco-seperator {
    position: relative;
    margin-left: 20px;
    padding-left: 20px;
}

@media (max-width: 991.98px) {
    .ftco-navbar-light .navbar-nav > .nav-item.ftco-seperator {
        padding-left: 0;
        margin-left: 0;
    }
}

.ftco-navbar-light .navbar-nav > .nav-item.ftco-seperator:before {
    position: absolute;
    content: "";
    top: 10px;
    bottom: 10px;
    left: 0;
    width: 2px;
    background: rgba(255, 255, 255, 0.05);
}

@media (max-width: 991.98px) {
    .ftco-navbar-light .navbar-nav > .nav-item.ftco-seperator:before {
        display: none;
    }
}

.ftco-navbar-light .navbar-nav > .nav-item.cta > a {
    color: #000000;
}

@media (max-width: 767.98px) {
    .ftco-navbar-light .navbar-nav > .nav-item.cta > a {
        padding-left: 15px;
        padding-right: 15px;
    }
}

@media (max-width: 991.98px) {
    .ftco-navbar-light .navbar-nav > .nav-item.cta > a {
        color: #fff;
        background: #82ae46;
    }
}

.ftco-navbar-light .navbar-nav > .nav-item.active > a {
    color: #000000;
}

@media (max-width: 991.98px) {
    .ftco-navbar-light .navbar-nav > .nav-item.active > a {
        color: #fff;
    }
}

.ftco-navbar-light .navbar-toggler {
    border: none;
    color: rgba(255, 255, 255, 0.5) !important;
    cursor: pointer;
    padding-right: 0;
    text-transform: uppercase;
    font-size: 16px;
    letter-spacing: .1em;
}

    .ftco-navbar-light .navbar-toggler:focus {
        outline: none !important;
    }

.ftco-navbar-light.scrolled {
    position: fixed;
    right: 0;
    left: 0;
    top: 0;
    margin-top: -130px;
    background: #fff !important;
    -webkit-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
}

    .ftco-navbar-light.scrolled .nav-item.active > a {
        color: #82ae46 !important;
    }

    .ftco-navbar-light.scrolled .nav-item.cta > a {
        color: #fff !important;
        background: #82ae46;
        border: none !important;
    }

        .ftco-navbar-light.scrolled .nav-item.cta > a span {
            display: inline-block;
            color: #fff !important;
        }

    .ftco-navbar-light.scrolled .nav-item.cta.cta-colored span {
        border-color: #82ae46;
    }

@media (max-width: 991.98px) {
    .ftco-navbar-light.scrolled .navbar-nav {
        background: none;
        border-radius: 0px;
        padding-left: 0rem !important;
        padding-right: 0rem !important;
    }
}

@media (max-width: 767.98px) {
    .ftco-navbar-light.scrolled .navbar-nav {
        background: none;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

.ftco-navbar-light.scrolled .navbar-toggler {
    border: none;
    color: rgba(0, 0, 0, 0.5) !important;
    border-color: rgba(0, 0, 0, 0.5) !important;
    cursor: pointer;
    padding-right: 0;
    text-transform: uppercase;
    font-size: 16px;
    letter-spacing: .1em;
}

.ftco-navbar-light.scrolled .nav-link {
    padding-top: 0.9rem !important;
    padding-bottom: 0.9rem !important;
    color: #000000 !important;
}

    .ftco-navbar-light.scrolled .nav-link.active {
        color: #82ae46 !important;
    }

.ftco-navbar-light.scrolled.awake {
    margin-top: 0px;
    -webkit-transition: .3s all ease-out;
    -o-transition: .3s all ease-out;
    transition: .3s all ease-out;
}

.ftco-navbar-light.scrolled.sleep {
    -webkit-transition: .3s all ease-out;
    -o-transition: .3s all ease-out;
    transition: .3s all ease-out;
}

.ftco-navbar-light.scrolled .navbar-brand {
    color: #000000;
}

.navbar-brand {
    font-weight: 800;
    font-size: 20px;
    text-transform: uppercase;
}

.hero-wrap {
    width: 100%;
    position: relative;
}

    .hero-wrap .overlay {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        content: '';
        opacity: .6;
        width: 50%;
        background: #82ae46;
    }

    .hero-wrap .slider-text {
        color: #fff;
        position: relative;
    }

        .hero-wrap .slider-text .breadcrumbs {
            text-transform: uppercase;
            font-size: 12px;
            letter-spacing: 3px;
            margin-bottom: 0;
            z-index: 99;
            font-weight: 300;
        }

            .hero-wrap .slider-text .breadcrumbs span {
                color:#498bc9;
            }

                .hero-wrap .slider-text .breadcrumbs span a {
                    color: grey;
                }

        .hero-wrap .slider-text .bread {
            font-weight: 800;
            color: black;
            font-size: 30px;
            font-family: "Poppins", Arial, sans-serif;
            letter-spacing: 3px;
            text-transform: uppercase;
        }

        .hero-wrap .slider-text .btn-primary {
            border: 1px solid rgba(255, 255, 255, 0.4);
            -webkit-border-radius: 30px;
            -moz-border-radius: 30px;
            -ms-border-radius: 30px;
            border-radius: 30px;
        }

            .hero-wrap .slider-text .btn-primary:hover, .hero-wrap .slider-text .btn-primary:focus {
                background: #fff !important;
                color: #000000;
            }

    .hero-wrap.hero-bread {
        padding: 10em 0;
    }

.mouse {
    position: absolute;
    left: 0;
    right: 0;
    top: -30px;
    z-index: 99;
}

.mouse-icon {
    width: 60px;
    height: 60px;
    border: 1px solid rgba(255, 255, 255, 0.7);
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    border-radius: 50%;
    background: #9F2228;
    cursor: pointer;
    position: relative;
    text-align: center;
    margin: 0 auto;
    display: block;
}

.mouse-wheel {
    height: 30px;
    margin: 2px auto 0;
    display: block;
    width: 30px;
    background: transparent;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    border-radius: 50%;
    -webkit-animation: 1.6s ease infinite wheel-up-down;
    -moz-animation: 1.6s ease infinite wheel-up-down;
    animation: 1.6s ease infinite wheel-up-down;
    color: #fff;
    font-size: 20px;
}

@-webkit-keyframes wheel-up-down {
    100% {
        margin-top: 2px;
        opacity: 1;
    }

    30% {
        opacity: 1;
    }

    0% {
        margin-top: 20px;
        opacity: 0;
    }
}

@-moz-keyframes wheel-up-down {
    100% {
        margin-top: 2px;
        opacity: 1;
    }

    30% {
        opacity: 1;
    }

    0% {
        margin-top: 20px;
        opacity: 0;
    }
}

@keyframes wheel-up-down {
    100% {
        margin-top: 2px;
        opacity: 1;
    }

    30% {
        opacity: 1;
    }

    0% {
        margin-top: 20px;
        opacity: 0;
    }
}



.bg-light {
    background: #f7f6f2 !important;
}

.bg-primary {
    background: #82ae46;
}

.bg-secondary {
    background: #ffe6eb !important;
}

.bg-color-1 {
    background: #e4b2d6;
}

.bg-color-2 {
    background: #dcc698;
}

.bg-color-3 {
    background: #a2d1e1;
}

.bg-color-4 {
    background: #dcd691;
}

.btn {
    cursor: pointer;
    -webkit-border-radius: 30px;
    -moz-border-radius: 30px;
    -ms-border-radius: 30px;
    border-radius: 30px;
    -webkit-box-shadow: 0px 24px 36px -11px rgba(0, 0, 0, 0.09);
    -moz-box-shadow: 0px 24px 36px -11px rgba(0, 0, 0, 0.09);
    box-shadow: 0px 24px 36px -11px rgba(0, 0, 0, 0.09);
}

    .btn:hover, .btn:active, .btn:focus {
        outline: none;
    }

    .btn.btn-primary {
        background: #3AB54A;
        border: 1px solid #3AB54A;
        color: #fff;
    }

        .btn.btn-primary:hover {
            border: 1px solid #82ae46;
            background: transparent;
            color: #82ae46;
        }

        .btn.btn-primary.btn-outline-primary {
            border: 1px solid #82ae46;
            background: transparent;
            color: #82ae46;
        }

            .btn.btn-primary.btn-outline-primary:hover {
                border: 1px solid transparent;
                background: #82ae46;
                color: #fff;
            }

    .btn.btn-white {
        background: #fff;
        border: 1px solid #fff;
        color: #000000;
    }

        .btn.btn-white:hover {
            background: #82ae46;
            border: 1px solid #82ae46;
            color: #fff;
        }

        .btn.btn-white.btn-outline-white {
            border: 1px solid #fff;
            background: transparent;
            color: #fff;
        }

            .btn.btn-white.btn-outline-white:hover {
                border: 1px solid transparent;
                background: #82ae46;
                color: #fff;
            }

    .btn.btn-black {
        background: #000000;
        border: 1px solid #000000;
        color: #fff;
    }

        .btn.btn-black:hover {
            background: #82ae46;
            border: 1px solid #82ae46;
            color: #fff;
        }

        .btn.btn-black.btn-outline-white {
            border: 1px solid #000000;
            background: transparent;
            color: #000000;
        }

            .btn.btn-black.btn-outline-white:hover {
                border: 1px solid transparent;
                background: #000000;
                color: #fff;
            }

.img-2 {
    position: relative;
}

@media (max-width: 767.98px) {
    .img-2 {
        height: 300px;
        margin-bottom: 40px;
    }
}

.img-2 .icon {
    width: 100px;
    height: 100px;
    background: #82ae46;
    -webkit-animation: pulse 2s infinite;
    animation: pulse 2s infinite;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    border-radius: 50%;
}

    .img-2 .icon span {
        color: #fff;
        font-size: 24px;
    }

.wrap-about {
    position: relative;
}

@media (min-width: 992px) {
    .wrap-about {
        padding-left: 6em;
    }
}

@media (min-width: 768px) {
    .wrap-about {
        padding-left: 3em;
    }
}

.wrap-about .heading-section-bold h2 {
    font-size: 40px;
    font-weight: 600;
    color: #000000;
}

.deal-of-the-day h3 {
    font-size: 30px;
    font-family: "Lora", Georgia, serif;
    font-style: italic;
}

    .deal-of-the-day h3 a {
        color: #82ae46;
    }

.deal-of-the-day .price {
    font-weight: 500;
    font-size: 18px;
    color: rgba(0, 0, 0, 0.5);
}

#timer {
    width: 80%;
}

@media (max-width: 991.98px) {
    #timer {
        width: 90%;
    }
}

#timer .time {
    width: 25%;
    font-size: 40px;
    font-weight: 500;
    border-left: 1px solid rgba(0, 0, 0, 0.05);
    color: #82ae46;
}

@media (max-width: 991.98px) {
    #timer .time {
        font-size: 30px;
    }
}

#timer .time:first-child {
    border-left: transparent;
}

#timer .time span {
    font-size: 12px;
    display: block;
    color: #000000;
    text-transform: uppercase;
}

.product-category li {
    display: inline-block;
    font-weight: 400;
    font-size: 16px;
}

    .product-category li a {
        color: #82ae46;
        padding: 5px 20px;
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        -ms-border-radius: 5px;
        border-radius: 5px;
    }

        .product-category li a.active {
            background: #82ae46;
            color: #fff;
        }

.ftco-product .owl-carousel .owl-stage-outer {
    padding-bottom: 2em;
    position: relative;
}

#products-row .product {
    display: block;
    width: 100%;
    position: relative;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
    -ms-transition: all 0.3s ease;
    transition: all 0.3s ease;
    border: 1px solid #f0f0f0;
}



.product .img-prod {
    position: relative;
    display: block;
    overflow: hidden;
}

    .product .img-prod .overlay {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        content: '';
        opacity: 0;
        background: #82ae46;
        -moz-transition: all 0.3s ease;
        -o-transition: all 0.3s ease;
        -webkit-transition: all 0.3s ease;
        -ms-transition: all 0.3s ease;
        transition: all 0.3s ease;
    }

    .product .img-prod span.status {
        position: absolute;
        top: 0;
        left: 0;
        padding: 2px 10px;
        color: #fff;
        font-weight: 300;
        background: #82ae46;
        font-size: 12px;
    }

    .product .img-prod img {
        -webkit-transform: scale(1);
        -moz-transform: scale(1);
        -ms-transform: scale(1);
        -o-transform: scale(1);
        transform: scale(1);
        -moz-transition: all 0.3s ease;
        -o-transition: all 0.3s ease;
        -webkit-transition: all 0.3s ease;
        -ms-transition: all 0.3s ease;
        transition: all 0.3s ease;
    }

    .product .img-prod:hover img, .product .img-prod:focus img {
        -webkit-transform: scale(1.1);
        -moz-transform: scale(1.1);
        -ms-transform: scale(1.1);
        -o-transform: scale(1.1);
        transform: scale(1.1);
    }



.product .icon {
    width: 60px;
    height: 60px;
    background: #fff;
    opacity: 0;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    border-radius: 50%;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
    -ms-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

    .product .icon span {
        color: #000000;
    }

.product:hover .icon {
    opacity: 1;
}

.product:hover .img-prod .overlay {
    opacity: 0;
}

.product .text {
    background: #fff;
    position: relative;
    width: 100%;
}

    .product .text h3 {
        font-size: 14px;
        margin-bottom: 5px;
        font-weight: 300;
        text-transform: uppercase;
        letter-spacing: 1px;
        font-family: "Poppins", Arial, sans-serif;
    }

        .product .text h3 a {
            color: #000000;
        }

    .product .text p.price {
        margin-bottom: 0;
        color: #82ae46;
        font-weight: 400;
    }

        .product .text p.price span.price-dc {
            text-decoration: line-through;
            color: #b3b3b3;
        }

        .product .text p.price span.price-sale {
            color: #82ae46;
        }

    .product .text .pricing {
        width: 100%;
        -moz-transition: all 0.3s ease;
        -o-transition: all 0.3s ease;
        -webkit-transition: all 0.3s ease;
        -ms-transition: all 0.3s ease;
        transition: all 0.3s ease;
    }

    .product .text .bottom-area {
        position: absolute;
        bottom: 100px;
        left: 0;
        right: 0;
        opacity: 1;
        -moz-transition: all 0.3s ease;
        -o-transition: all 0.3s ease;
        -webkit-transition: all 0.3s ease;
        -ms-transition: all 0.3s ease;
        transition: all 0.3s ease;
    }

        .product .text .bottom-area a {
            color: #fff;
            width: 100%;
            background: #82ae46;
            width: 25px;
            height: 25px;
            margin: 0 auto;
            -webkit-border-radius: 50%;
            -moz-border-radius: 50%;
            -ms-border-radius: 50%;
            border-radius: 50%;
        }

        .product .text .bottom-area .m-auto {
            margin: 0 auto;
        }

.product:hover {
    -webkit-box-shadow: 0px 7px 15px -5px rgba(0, 0, 0, 0.07);
    -moz-box-shadow: 0px 7px 15px -5px rgba(0, 0, 0, 0.07);
    box-shadow: 0px 7px 15px -5px rgba(0, 0, 0, 0.07);
}

    .product:hover .pricing {
        opacity: 0;
    }

    .product:hover .text .bottom-area {
        opacity: 1;
    }

.product-details h3 {
    font-size: 30px;
    font-weight: 400;
}

.product-details .price span {
    font-size: 30px;
    color: #000000;
}

.product-details button i {
    color: #000000;
}

.product-details .quantity-left-minus {
    background: transparent;
    padding: 0 15px;
}

.product-details .quantity-right-plus {
    background: transparent;
    padding: 0 15px;
}

.product-details button, .product-details .form-control {
    height: 40px !important;
    text-align: center;
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
    color: #82ae46;
    padding: 10px 20px;
    background: transparent !important;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    -ms-border-radius: 0;
    border-radius: 0;
    font-size: 14px;
}

    .product-details button:hover, .product-details button:focus, .product-details .form-control:hover, .product-details .form-control:focus {
        text-decoration: none;
        outline: none;
    }

.product-details .form-group {
    position: relative;
}

    .product-details .form-group .form-control {
        padding-right: 40px;
        color: #000000;
        background: transparent !important;
    }

        .product-details .form-group .form-control::-webkit-input-placeholder {
            /* Chrome/Opera/Safari */
            color: #4d4d4d;
        }

        .product-details .form-group .form-control::-moz-placeholder {
            /* Firefox 19+ */
            color: #4d4d4d;
        }

        .product-details .form-group .form-control:-ms-input-placeholder {
            /* IE 10+ */
            color: #4d4d4d;
        }

        .product-details .form-group .form-control:-moz-placeholder {
            /* Firefox 18- */
            color: #4d4d4d;
        }

    .product-details .form-group .icon {
        position: absolute;
        top: 50%;
        right: 20px;
        font-size: 14px;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
        color: #000000;
    }

        .product-details .form-group .icon span {
            color: #000000;
        }

@media (max-width: 767.98px) {
    .product-details .form-group .icon {
        right: 10px;
    }
}

.product-details .form-group .select-wrap {
    position: relative;
}

    .product-details .form-group .select-wrap select {
        font-size: 13px;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        text-transform: uppercase;
        letter-spacing: 2px;
    }

.ftco-cart button i {
    color: #82ae46;
}

.ftco-cart .quantity-left-minus {
    background: transparent;
    padding: 16px 20px;
}

.ftco-cart .quantity-right-plus {
    background: transparent;
    padding: 16px 20px;
}

.ftco-cart button, .ftco-cart .form-control {
    height: 54px !important;
    text-align: center;
    bordeR: 1px solid rgba(0, 0, 0, 0.05) !important;
    color: #000000 !important;
    padding: 0;
    font-size: 14px;
}

.ftco-cart .form-group {
    position: relative;
}

    .ftco-cart .form-group .form-control {
        padding-right: 40px;
    }

    .ftco-cart .form-group .icon {
        position: absolute;
        top: 50%;
        right: 20px;
        font-size: 14px;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
        color: #82ae46;
    }

        .ftco-cart .form-group .icon span {
            color: #82ae46;
        }

@media (max-width: 767.98px) {
    .ftco-cart .form-group .icon {
        right: 10px;
    }
}

.ftco-cart .form-group .select-wrap {
    position: relative;
}

    .ftco-cart .form-group .select-wrap select {
        font-size: 14px;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
    }

.ftco-cart .info label {
    font-size: 13px;
    color: #000000;
}




/* line 1536, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cart-title {
    padding-bottom: 15px;
}

@media (max-width: 767px) {
    /* line 1536, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .cart-title {
        display: none;
    }
}

/* line 1542, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cart-single-item {
    border-top: 1px solid #eee;
    padding: 15px 0;
}

    /* line 1545, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .cart-single-item .product-item {
        margin-left: 15px;
    }

@media (max-width: 767px) {
    /* line 1545, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .cart-single-item .product-item {
        margin-left: 0;
    }
}

/* line 1550, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cart-single-item .product-item img {
    border: 1px solid #eee;
    border-radius: 3px;
}

/* line 1554, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cart-single-item .product-item h6 {
    color: #000;
    margin-left: 30px;
    font-weight: 400;
}

/* line 1560, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cart-single-item .price, .cart-single-item .total {
    font-size: 18px;
    font-weight: 500;
    color: #222222;
}

/* line 1566, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cart-single-item .quantity-container .quantity-amount {
    color: #222222;
    font-weight: 500;
    font-size: 18px;
    border-radius: 20px 0 0 20px;
    width: 60px;
}

/* line 1573, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cart-single-item .quantity-container .arrow-btn {
    border-radius: 0 20px 20px 0;
    overflow: hidden;
    border-left: 1px solid #eee;
}

    /* line 1577, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .cart-single-item .quantity-container .arrow-btn .arrow {
        padding-right: 15px;
    }

/* line 1583, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cupon-area {
    padding: 15px;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

@media (max-width: 767px) {
    /* line 1583, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .cupon-area {
        padding-left: 0;
        padding-right: 0;
    }
}

/* line 1591, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cupon-area .view-btn {
    box-shadow: none;
    border-radius: 0px;
    cursor: pointer;
    border: 1px solid #eee;
    padding: 0 30px;
}

    /* line 1598, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .cupon-area .view-btn.color-2:after {
        border-radius: 0;
    }

    /* line 1602, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .cupon-area .view-btn span {
        font-weight: 400;
    }

/* line 1607, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cupon-area .cuppon-wrap .view-btn {
    border-radius: 0;
}

    /* line 1610, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .cupon-area .cuppon-wrap .view-btn.color-2:after {
        border-radius: 0;
    }

/* line 1616, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cupon-area .cupon-code {
    display: none;
}

@media (max-width: 767px) {
    /* line 1616, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .cupon-area .cupon-code {
        margin-top: 10px;
    }
}

/* line 1621, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cupon-area .cupon-code input {
    border: 1px solid #eee;
    line-height: 40px;
    padding: 0 15px;
    width: 200px;
    border-right: 0px;
    margin-right: -5px;
}

/* line 1629, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cupon-area .cupon-code button {
    border-right: 0;
    cursor: pointer;
}

@media (max-width: 575px) {
    /* line 1629, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .cupon-area .cupon-code button {
        border-right: 1px solid #eee;
    }
}

/* line 1635, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cupon-area .cupon-code button:focus {
    outline: none;
}

/* line 1639, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.cupon-area .cupon-code .view-btn {
    border-radius: 0;
}

    /* line 1641, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .cupon-area .cupon-code .view-btn:after {
        border-radius: 0;
    }

/* line 1647, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
.subtotal-area {
    padding: 15px;
    border-bottom: 1px solid #eee;
}

    /* line 1650, /Applications/MAMP/htdocs/1.monthy projects/29.Shop/scss/theme/_home.scss */
    .subtotal-area .subtotal {
        margin-left: 200px;
        font-weight: 500;
        color: #222222;
        font-size: 18px;
    }

.cart-list {
    overflow-x: scroll;
}

.table {
    /*TO DO: comeback to this*/
    width: 100%;
    text-align: center;
}

    .table th {
        font-weight: 500;
    }

    .table .thead-primary {
        background: #82ae46;
    }

        .table .thead-primary tr th {
            padding: 20px 10px;
            color: #fff !important;
            border: 1px solid transparent !important;
        }

    .table tbody tr td {
        text-align: center !important;
        vertical-align: middle;
        padding: 40px 10px;
        border: 1px solid transparent !important;
        border-bottom: 1px solid rgba(0, 0, 0, 0.05) !important;
    }

        .table tbody tr td.product-remove a {
            bordeR: 1px solid rgba(0, 0, 0, 0.1);
            padding: 4px 10px;
            color: #000000;
        }

            .table tbody tr td.product-remove a:hover {
                border: 1px solid #82ae46;
                background: #82ae46;
            }

                .table tbody tr td.product-remove a:hover span {
                    color: #fff;
                }

        .table tbody tr td.quantity {
            width: 20%;
        }

        .table tbody tr td.image-prod .img {
            display: block;
            width: 100px;
            height: 100px;
            margin: 0 auto;
        }

        .table tbody tr td.product-name {
            width: 30%;
        }

            .table tbody tr td.product-name h3 {
                font-size: 16px;
            }

        .table tbody tr td.total, .table tbody tr td.price {
            color: #000000;
        }

.cart-wrap .btn-primary {
    display: inline-block;
}

.cart-total {
    width: 100%;
    display: block;
    border: 1px solid rgba(0, 0, 0, 0.05);
    padding: 20px;
}

    .cart-total h3 {
        font-size: 16px;
        margin-bottom: 20px;
    }

    .cart-total p {
        width: 100%;
        display: block;
    }

        .cart-total p span {
            display: block;
            width: 50%;
        }

        .cart-total p.total-price span {
            text-transform: uppercase;
        }

            .cart-total p.total-price span:last-child {
                color: #000000;
                font-weight: 600;
            }

    .cart-total hr {
        background: rgba(255, 255, 255, 0.1);
    }

.billing-heading {
    font-size: 24px;
}

.billing-form .form-group {
    position: relative;
}

.billing-form label {
    color: #000000;
    font-size: 14px;
}

.billing-form .icon {
    position: absolute;
    top: 50% !important;
    right: 15px;
    font-size: 14px;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}

    .billing-form .icon span {
        color: black !important;
    }

.billing-form .select-wrap, .billing-form .input-wrap {
    position: relative;
}

    .billing-form .select-wrap select, .billing-form .input-wrap select {
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
    }

.billing-form .form-control {
    font-weight: 300;
    border: transparent !important;
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
    height: 58px !important;
    padding-left: 15px;
    padding-right: 15px;
    background: transparent !important;
    color: rgba(0, 0, 0, 0.4) !important;
    font-size: 14px;
    border-radius: 0px;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
}

    .billing-form .form-control::-webkit-input-placeholder {
        /* Chrome/Opera/Safari */
        color: rgba(0, 0, 0, 0.4);
    }

    .billing-form .form-control::-moz-placeholder {
        /* Firefox 19+ */
        color: rgba(0, 0, 0, 0.4);
    }

    .billing-form .form-control:-ms-input-placeholder {
        /* IE 10+ */
        color: rgba(0, 0, 0, 0.4);
    }

    .billing-form .form-control:-moz-placeholder {
        /* Firefox 18- */
        color: rgba(0, 0, 0, 0.4);
    }

    .billing-form .form-control:focus, .billing-form .form-control:active {
        border-color: #82ae46 !important;
    }

.billing-form textarea.form-control {
    height: inherit !important;
}

.cart-detail {
    width: 100%;
    display: block;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

    .cart-detail.cart-total {
        border: 1px solid rgba(0, 0, 0, 0.05);
    }

    .cart-detail .btn-primary {
        display: block;
        width: 100%;
    }

.circle {
    width: 300px;
    height: 300px;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    border-radius: 50%;
    margin: 0 auto;
    background: rgba(255, 255, 255, 0.8);
}

    .circle h2 {
        font-size: 50px;
    }

.ftco-social {
    padding: 0;
}

    .ftco-social li {
        list-style: none;
        margin-right: 10px;
    }

.ftco-partner {
    padding: 5em 0;
}

    .ftco-partner .partner {
        display: block;
        padding: 0 20px;
    }

@media (max-width: 991.98px) {
    .ftco-partner .partner {
        padding: 0;
    }
}

.subscribe-form {
    width: 100%;
}

    .subscribe-form .form-group {
        position: relative;
        margin-bottom: 0;
        border: none;
        background: #fff;
        -webkit-border-radius: 0;
        -moz-border-radius: 0;
        -ms-border-radius: 0;
        border-radius: 0;
    }

        .subscribe-form .form-group input {
            background: #fff !important;
            border: 1px solid transparent;
            color: black !important;
            font-size: 14px;
            font-weight: 300;
            -webkit-border-radius: 30px;
            -moz-border-radius: 30px;
            -ms-border-radius: 30px;
            border-radius: 30px;
        }

            .subscribe-form .form-group input::-webkit-input-placeholder {
                /* Chrome/Opera/Safari */
                color: black !important;
            }

            .subscribe-form .form-group input::-moz-placeholder {
                /* Firefox 19+ */
                color: black !important;
            }

            .subscribe-form .form-group input:-ms-input-placeholder {
                /* IE 10+ */
                color: black !important;
            }

            .subscribe-form .form-group input:-moz-placeholder {
                /* Firefox 18- */
                color: black !important;
            }

        .subscribe-form .form-group .submit {
            border-left: 1px solid #82ae46;
            color: #fff !important;
            -webkit-border-radius: 0;
            -moz-border-radius: 0;
            -ms-border-radius: 0;
            border-radius: 0;
            font-size: 12px;
            background: #82ae46 !important;
        }

            .subscribe-form .form-group .submit:hover {
                cursor: pointer;
            }

    .subscribe-form .icon {
        position: absolute;
        top: 50%;
        right: 20px;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
        color: rgba(255, 255, 255, 0.8);
    }

.aside-stretch {
    background: #9bc166;
}

    .aside-stretch:after {
        position: absolute;
        top: 0;
        left: 100%;
        bottom: 0;
        content: '';
        width: 360%;
        background: rgba(255, 255, 255, 0.9);
    }

@media (max-width: 767.98px) {
    .aside-stretch {
        background: transparent;
    }

        .aside-stretch:after {
            background: transparent;
            display: none;
        }
}

.form-control {
    height: 52px !important;
    background: #fff !important;
    color: #000000 !important;
    font-size: 18px;
    border-radius: 0px;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
}

    .form-control:focus, .form-control:active {
        border-color: #000000;
    }

textarea.form-control {
    height: inherit !important;
}

.ftco-animate {
    opacity: 0;
    visibility: hidden;
}

.bg-primary {
    background: #82ae46 !important;
}

.bg-black {
    background: #000000 !important;
}

.goto-here {
    width: 100%;
    display: block;
}

.about-author .desc h3 {
    font-size: 24px;
}

.ftco-section {
    padding: 6em 0;
    position: relative;
    
}



.ftco-no-pb {
    padding-bottom: 0 !important;
}

.ftco-bg-dark {
    background: #3c312e;
}

.ftco-footer {
    background: #1A2026;
    font-size: 14px;
    padding: 7em 0;
    color: #fff;
}

    .ftco-footer .ftco-footer-logo {
        text-transform: uppercase;
        letter-spacing: .1em;
    }

    .ftco-footer .ftco-footer-widget h2 {
        font-weight: normal;
        margin-bottom: 20px;
        font-size: 16px;
        font-weight: 500;
    }

    .ftco-footer .ftco-footer-widget ul li {
        font-size: 14px;
        margin-bottom: 0px;
    }

        .ftco-footer .ftco-footer-widget ul li a {
            color: #fff;
        }

    .ftco-footer .ftco-footer-widget .btn-primary {
        border: 2px solid #fff !important;
    }

        .ftco-footer .ftco-footer-widget .btn-primary:hover {
            border: 2px solid #fff !important;
        }

.ftco-footer-social li {
    list-style: none;
    margin: 0 10px 0 0;
    display: inline-block;
}

    .ftco-footer-social li a {
        height: 50px;
        width: 50px;
        display: block;
        float: left;
        background: rgba(0, 0, 0, 0.02);
        border-radius: 50%;
        position: relative;
    }

        .ftco-footer-social li a span {
            position: absolute;
            font-size: 26px;
            top: 50%;
            left: 50%;
            -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
     
        }

        .ftco-footer-social li a span:hover {
            color: #000000;
        }

#map {
    width: 100%;
}

@media (max-width: 991.98px) {
    #map {
        height: 300px;
    }
}

@-webkit-keyframes pulse {
    0% {
        -webkit-box-shadow: 0 0 0 0 rgba(130, 174, 70, 0.4);
    }

    70% {
        -webkit-box-shadow: 0 0 0 30px rgba(130, 174, 70, 0);
    }

    100% {
        -webkit-box-shadow: 0 0 0 0 rgba(130, 174, 70, 0);
    }
}

@keyframes pulse {
    0% {
        -moz-box-shadow: 0 0 0 0 rgba(130, 174, 70, 0.4);
        -webkit-box-shadow: 0 0 0 0 rgba(130, 174, 70, 0.4);
        box-shadow: 0 0 0 0 rgba(130, 174, 70, 0.4);
    }

    70% {
        -moz-box-shadow: 0 0 0 30px rgba(130, 174, 70, 0);
        -webkit-box-shadow: 0 0 0 30px rgba(130, 174, 70, 0);
        box-shadow: 0 0 0 30px rgba(130, 174, 70, 0);
    }

    100% {
        -moz-box-shadow: 0 0 0 0 rgba(130, 174, 70, 0);
        -webkit-box-shadow: 0 0 0 0 rgba(130, 174, 70, 0);
        box-shadow: 0 0 0 0 rgba(130, 174, 70, 0);
    }
}

.heading-section {
    position: relative;
}

    .heading-section .subheading {
        font-size: 18px;
        display: block;
        margin-bottom: 10px;
        font-family: "Lora", Georgia, serif;
        font-style: italic;
        color: #82ae46;
    }

    .heading-section h2 {
        position: relative;
        font-size: 40px;
        font-weight: 600;
        color: #3AB54A;
        font-family: "IntroRust-BaseLine";
    }

@media (max-width: 767.98px) {
    .heading-section h2 {
        font-size: 28px;
    }
}

.heading-section.heading-section-white .subheading {
    color: rgba(255, 255, 255, 0.9);
}

.heading-section.heading-section-white h2 {
    font-size: 30px;
    color: #fff;
}

    .heading-section.heading-section-white h2:after, .heading-section.heading-section-white h2:before {
        display: none;
    }

.heading-section.heading-section-white p {
    color: rgba(255, 255, 255, 0.9);
}

.hero-wrap,
.img,
.blog-img,
.user-img {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}

.ftco-services .services {
    width: 100%;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
    -ms-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

    .ftco-services .services .icon {
        line-height: 1.3;
        position: relative;
        margin: 0 auto;
        width: 100px;
        height: 100px;
        -webkit-border-radius: 50%;
        -moz-border-radius: 50%;
        -ms-border-radius: 50%;
        border-radius: 50%;
        -moz-transition: all 0.3s ease;
        -o-transition: all 0.3s ease;
        -webkit-transition: all 0.3s ease;
        -ms-transition: all 0.3s ease;
        transition: all 0.3s ease;
    }

        .ftco-services .services .icon:after {
            position: absolute;
            top: 10px;
            left: 10px;
            right: 10px;
            bottom: 10px;
            content: '';
            border: 2px solid rgba(255, 255, 255, 0.19);
            -webkit-border-radius: 50%;
            -moz-border-radius: 50%;
            -ms-border-radius: 50%;
            border-radius: 50%;
        }

        .ftco-services .services .icon span {
            font-size: 50px;
            color: #fff;
            -moz-transition: all 0.3s ease;
            -o-transition: all 0.3s ease;
            -webkit-transition: all 0.3s ease;
            -ms-transition: all 0.3s ease;
            transition: all 0.3s ease;
        }

    .ftco-services .services .media-body {
        width: 100%;
    }

        .ftco-services .services .media-body h3 {
            font-size: 15px;
            text-transform: uppercase;
            font-weight: 500;
            font-family: "Poppins", Arial, sans-serif;
            color: #000000;
        }

        .ftco-services .services .media-body span {
            text-transform: uppercase;
            color: rgba(0, 0, 0, 0.5);
            font-size: 12px;
            font-weight: 500;
        }

    .ftco-services .services:hover .icon, .ftco-services .services:focus .icon {
        background: #82ae46;
    }

        .ftco-services .services:hover .icon span, .ftco-services .services:focus .icon span {
            color: #fff;
        }


.ftco-category {
    position:relative;
    background-color: #fff;
    height:90vh;
  

}


    .ftco-category .category-wrap {
        display: block;
        width: 100%;
        height: 350px;
        transition: all .2s ease-in-out;
    }




        .ftco-category .category-wrap:hover {
            transform: scale(1.1);
        }

        .ftco-category .category-wrap .text {
            background: #3AB54A;
        }

        .ftco-category .category-wrap .text h2 {
            font-size: 18px;
            font-family: "Poppins", Arial, sans-serif;
        }

            .ftco-category .category-wrap .text h2 a {
                color: #fff;
            }

.ftco-category .category-wrap-2 {
    width: 100%;
}

    .ftco-category .category-wrap-2 .text {
        width: 100%;
    }

        .ftco-category .category-wrap-2 .text h2 {
            color: #82ae46;
            background: white;
            font-family: "Lora", Georgia, serif;
            font-style: italic;
            font-size: 24px;
        }

.ftco-category .centernonloop {

}


----------------
Map
-----------------------*/

.map {
    padding-top: 80px;
    padding-bottom: 0;
}

.map-inner {
    height: 610px;
    position: relative;
}

    .map-inner iframe {
        width: 100%;
    }

    .map-inner .icon {
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-14px, -21px);
        -ms-transform: translate(-14px, -21px);
        transform: translate(-14px, -21px);
    }

        .map-inner .icon i {
            font-size: 48px;
            color: #e7ab3c;
        }

/*---------------------
  Contact Section
-----------------------*/

.site-btn {
    color: #ffffff;
    background: #e7ab3c;
    border: 1px solid #e7ab3c;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    padding: 13px 45px 11px;
    cursor: pointer;
}

.contact-section {
    padding-top: 75px;
    padding-bottom: 80px;
    padding-left: 40px;
    padding-right: 40px;
}

@media screen and (max-width:600px){
    .contact-section {
        padding-left: 0px;
        padding-right: 0px;
    }
}

.contact-title {
    margin-bottom: 30px;
}

    .contact-title h4 {
        color: #252525;
        font-weight: 700;
        margin-bottom: 16px;
    }

.contact-widget .cw-item {
    background: #ffffff;
    margin-bottom: 11px;
    -webkit-box-shadow: 0px 8px 35px 10px #E8E8E8;
    box-shadow: 0px 8px 35px 10px #E8E8E8;
    padding-left: 25px;
    padding-top: 15px;
    padding-bottom: 15px;
    border-radius: 10px;
}

    .contact-widget .cw-item .ci-icon {
        float: left;
        margin-top: 12px;
    }

        .contact-widget .cw-item .ci-icon i {
            font-size: 30px;
            color: #b2b2b2;
        }

    .contact-widget .cw-item .ci-text {
        display: table;
        padding-left: 30px;
    }

        .contact-widget .cw-item .ci-text span {
            color: #b2b2b2;
            font-size: 16px;
        }

        .contact-widget .cw-item .ci-text p {
            font-size: 18px;
            color: #252525;
            margin-bottom: 0;
        }

.contact-form .leave-comment h4 {
    color: #292f3b;
    font-weight: 700;
    margin-bottom: 20px;
}

.contact-form .leave-comment p {
    margin-bottom: 38px;
}

.contact-form .leave-comment .comment-form input {
    width: 100%;
    font-size: 16px;
    color: #636363;
    height: 50px;
    border: 1px solid #ebebeb;
    border-radius: 5px;
    padding-left: 20px;
    margin-bottom: 30px;
}

.contact-form .leave-comment .comment-form textarea {
    width: 100%;
    resize: none;
    font-size: 16px;
    color: #636363;
    height: 150px;
    border: 1px solid #ebebeb;
    border-radius: 5px;
    padding-left: 20px;
    padding-top: 10px;
    margin-bottom: 35px;
}

.contact-form .leave-comment .comment-form .site-btn {
    padding: 13px 35px 11px;
}



.image-popup {
    cursor: -webkit-zoom-in;
    cursor: -moz-zoom-in;
    cursor: zoom-in;
}

.mfp-with-zoom .mfp-container,
.mfp-with-zoom.mfp-bg {
    opacity: 0;
    -webkit-backface-visibility: hidden;
    -webkit-transition: all 0.3s ease-out;
    -moz-transition: all 0.3s ease-out;
    -o-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out;
}

.mfp-with-zoom.mfp-ready .mfp-container {
    opacity: 1;
}

.mfp-with-zoom.mfp-ready.mfp-bg {
    opacity: 0.8;
}

.mfp-with-zoom.mfp-removing .mfp-container,
.mfp-with-zoom.mfp-removing.mfp-bg {
    opacity: 0;
}

#section-counter {
    position: relative;
    z-index: 0;
}

    #section-counter:after {
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        content: '';
        z-index: -1;
        opacity: .3;
        background: #fff;
    }

.ftco-counter {
    padding: 5em 0;
}

    .ftco-counter .text strong.number {
        font-weight: 400;
        font-size: 30px;
        color: #000000;
    }

    .ftco-counter .text span {
        display: block;
        font-size: 12px;
        color: rgba(0, 0, 0, 0.7);
        text-transform: uppercase;
        letter-spacing: 1px;
    }

@media (max-width: 767.98px) {
    .ftco-counter .counter-wrap {
        margin-bottom: 20px;
    }
}

.ftco-counter .ftco-number {
    display: block;
    font-size: 72px;
    font-weight: bold;
    color: #82ae46;
}

.ftco-counter .ftco-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.block-20 {
    overflow: hidden;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: top center;
    height: 250px;
    width: 100%;
    position: relative;
    display: block;
    margin-bottom: 20px;
}

@media (min-width: 768px) {
    .block-20 {
        width: 450px;
    }
}

@media (min-width: 768px) {
    .blog-entry {
        margin-bottom: 60px;
    }
}

@media (max-width: 767.98px) {
    .blog-entry {
        margin-bottom: 30px;
    }
}

.blog-entry .text {
    position: relative;
    border-top: 0;
    border-radius: 2px;
    width: 100%;
}

    .blog-entry .text .tag {
        color: #b3b3b3;
    }

    .blog-entry .text .heading {
        font-size: 20px;
        margin-bottom: 16px;
    }

        .blog-entry .text .heading a {
            color: #000000;
        }

            .blog-entry .text .heading a:hover, .blog-entry .text .heading a:focus, .blog-entry .text .heading a:active {
                color: #82ae46;
            }

    .blog-entry .text .meta-chat {
        color: #b3b3b3;
    }

    .blog-entry .text .read {
        color: #000000;
        font-size: 14px;
    }

.blog-entry .meta > div {
    display: inline-block;
    margin-right: 5px;
    margin-bottom: 5px;
    font-size: 12px;
    font-weight: 400;
}

    .blog-entry .meta > div a {
        color: black;
        font-size: 12px;
    }

        .blog-entry .meta > div a:hover {
            color: black;
        }

.block-23 ul {
    padding: 0;
}

    .block-23 ul li, .block-23 ul li > a {
        display: table;
        line-height: 1.5;
        margin-bottom: 15px;
    }

        .block-23 ul li .icon, .block-23 ul li .text {
            display: table-cell;
            vertical-align: top;
        }

        .block-23 ul li .icon {
            width: 40px;
            font-size: 18px;
            padding-top: 2px;
        }

.block-17 {
    background: #fff;
    overflow: hidden;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
    -ms-border-radius: 2px;
    border-radius: 2px;
}

    .block-17 form .fields {
        width: calc(100% - 80px);
        position: relative;
    }

        .block-17 form .fields .one-third {
            width: 50%;
            background: #fff;
        }

            .block-17 form .fields .one-third:last-child {
                border-right: none;
                border-left: 1px solid rgba(0, 0, 0, 0.1);
            }

            .block-17 form .fields .one-third label {
                font-weight: 700;
                color: #000000;
            }

        .block-17 form .fields .form-control {
            -webkit-box-shadow: none !important;
            box-shadow: none !important;
            border: transparent;
            background: #fff !important;
            color: #4d4d4d !important;
            border: 2px solid rgba(0, 0, 0, 0.1);
            font-size: 14px;
            width: 100%;
            height: 70px !important;
            bordeR: 1px solid transparent;
            padding: 10px 30px;
            -webkit-border-radius: 0;
            -moz-border-radius: 0;
            -ms-border-radius: 0;
            border-radius: 0;
        }

            .block-17 form .fields .form-control::-webkit-input-placeholder {
                /* Chrome/Opera/Safari */
                color: #4d4d4d;
            }

            .block-17 form .fields .form-control::-moz-placeholder {
                /* Firefox 19+ */
                color: #4d4d4d;
            }

            .block-17 form .fields .form-control:-ms-input-placeholder {
                /* IE 10+ */
                color: #4d4d4d;
            }

            .block-17 form .fields .form-control:-moz-placeholder {
                /* Firefox 18- */
                color: #4d4d4d;
            }

        .block-17 form .fields .icon {
            position: absolute;
            top: 50%;
            right: 30px;
            font-size: 14px;
            -webkit-transform: translateY(-50%);
            -ms-transform: translateY(-50%);
            transform: translateY(-50%);
            color: rgba(0, 0, 0, 0.7);
        }

@media (max-width: 767.98px) {
    .block-17 form .fields .icon {
        right: 10px;
    }
}

.block-17 form .fields .select-wrap {
    position: relative;
}

    .block-17 form .fields .select-wrap select {
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
    }

.block-17 form .search-submit {
    width: 160px;
    background: #82ae46;
    border: 1px solid #82ae46;
    color: #fff;
    padding: 12px 10px;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    -ms-border-radius: 0;
    border-radius: 0;
}

@media (max-width: 767.98px) {
    .block-17 form .search-submit {
        width: 80px;
    }
}

.block-17 form .search-submit:hover {
    background: #82ae46 !important;
    color: #fff !important;
    border: 1px solid #82ae46 !important;
}

.block-27 ul {
    padding: 0;
    margin: 0;
}

    .block-27 ul li {
        display: inline-block;
        margin-bottom: 4px;
        font-weight: 400;
    }

        .block-27 ul li a, .block-27 ul li span {
            color: #000000;
            text-align: center;
            display: inline-block;
            width: 40px;
            height: 40px;
            line-height: 40px;
            border-radius: 50%;
            border: 1px solid #e6e6e6;
            background: #fff;
        }

        .block-27 ul li.active a, .block-27 ul li.active span {
            background: #82ae46;
            color: #fff;
            border: 1px solid transparent;
        }

.contact-section .contact-info p a {
    color: #1a1a1a;
}

.contact-section .info {
    width: 100%;
}

.contact-section .contact-form {
    width: 100%;
}

.block-9 .form-control {
    outline: none !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    font-size: 15px;
}

.block-21 .blog-img {
    display: block;
    height: 80px;
    width: 80px;
}

.block-21 .text {
    width: calc(100% - 100px);
}

    .block-21 .text .heading-1 {
        font-size: 18px;
        font-weight: 300;
    }

        .block-21 .text .heading-1 a {
            color: #000000;
        }

            .block-21 .text .heading-1 a:hover, .block-21 .text .heading-1 a:active, .block-21 .text .heading-1 a:focus {
                color: #82ae46;
            }

    .block-21 .text .meta > div {
        display: inline-block;
        font-size: 12px;
        margin-right: 5px;
    }

        .block-21 .text .meta > div a {
            color: gray;
        }

.tagcloud a {
    text-transform: uppercase;
    display: inline-block;
    padding: 4px 10px;
    margin-bottom: 7px;
    margin-right: 4px;
    border-radius: 4px;
    color: #000000;
    border: 1px solid #ccc;
    font-size: 11px;
}

    .tagcloud a:hover {
        border: 1px solid #000;
    }

.comment-form-wrap {
    clear: both;
}

.comment-list {
    padding: 0;
    margin: 0;
}

    .comment-list .children {
        padding: 50px 0 0 40px;
        margin: 0;
        float: left;
        width: 100%;
    }

    .comment-list li {
        padding: 0;
        margin: 0 0 30px 0;
        float: left;
        width: 100%;
        clear: both;
        list-style: none;
    }

        .comment-list li .vcard {
            width: 80px;
            float: left;
        }

            .comment-list li .vcard img {
                width: 50px;
                border-radius: 50%;
            }

        .comment-list li .comment-body {
            float: right;
            width: calc(100% - 80px);
        }

            .comment-list li .comment-body h3 {
                font-size: 20px;
            }

            .comment-list li .comment-body .meta {
                text-transform: uppercase;
                font-size: 13px;
                letter-spacing: .1em;
                color: #ccc;
            }

            .comment-list li .comment-body .reply {
                padding: 5px 10px;
                background: #e6e6e6;
                color: #000000;
                text-transform: uppercase;
                font-size: 11px;
                letter-spacing: .1em;
                font-weight: 400;
                border-radius: 4px;
            }

                .comment-list li .comment-body .reply:hover {
                    color: #fff;
                    background: black;
                }

.search-form .form-group {
    position: relative;
}

    .search-form .form-group input {
        padding-right: 50px;
        border: 1px solid rgba(0, 0, 0, 0.05);
        color: black;
        font-size: 13px;
    }

        .search-form .form-group input::-webkit-input-placeholder {
            /* Chrome/Opera/Safari */
            color: black;
        }

        .search-form .form-group input::-moz-placeholder {
            /* Firefox 19+ */
            color: black;
        }

        .search-form .form-group input:-ms-input-placeholder {
            /* IE 10+ */
            color: black;
        }

        .search-form .form-group input:-moz-placeholder {
            /* Firefox 18- */
            color: black;
        }

        .search-form .form-group input:focus, .search-form .form-group input:active {
            border-color: #82ae46 !important;
        }

.search-form .icon {
    position: absolute;
    top: 50%;
    right: 20px;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    color: #000000;
}

.sidebar-box {
    margin-bottom: 30px;
    padding: 25px;
    font-size: 15px;
    width: 100%;
    background: #fff;
}

    .sidebar-box *:last-child {
        margin-bottom: 0;
    }

    .sidebar-box h3.heading {
        font-size: 20px;
        margin-bottom: 30px;
    }

.categories, .sidelink {
    padding: 0;
}

    .categories li, .sidelink li {
        position: relative;
        margin-bottom: 10px;
        padding-bottom: 10px;
        border-bottom: 1px dotted #dee2e6;
        list-style: none;
    }

        .categories li:last-child, .sidelink li:last-child {
            margin-bottom: 0;
            border-bottom: none;
            padding-bottom: 0;
        }

        .categories li a, .sidelink li a {
            display: block;
            color: #000000;
        }

            .categories li a span, .sidelink li a span {
                position: absolute;
                right: 0;
                top: 0;
                color: #ccc;
            }

        .categories li.active a, .sidelink li.active a {
            color: #000000;
            font-style: italic;
        }

.sidebar-box-2 {
    display: block;
    width: 100%;
    margin-bottom: 40px;
}

    .sidebar-box-2 .heading {
        font-size: 20px;
        text-transform: uppercase;
    }

        .sidebar-box-2 .heading a {
            color: #000000;
        }

    .sidebar-box-2 ul {
        margin: 0;
        padding: 0;
    }

        .sidebar-box-2 ul li {
            font-size: 12px;
            list-style: none;
            margin-bottom: 10px;
        }

            .sidebar-box-2 ul li a {
                color: #000000;
            }

#ftco-loader {
    position: fixed;
    width: 96px;
    height: 96px;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    background-color: rgba(255, 255, 255, 0.9);
    -webkit-box-shadow: 0px 24px 64px rgba(0, 0, 0, 0.24);
    box-shadow: 0px 24px 64px rgba(0, 0, 0, 0.24);
    border-radius: 16px;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: opacity .2s ease-out, visibility 0s linear .2s;
    -o-transition: opacity .2s ease-out, visibility 0s linear .2s;
    transition: opacity .2s ease-out, visibility 0s linear .2s;
    z-index: 1000;
}

    #ftco-loader.fullscreen {
        padding: 0;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        background-color: #fff;
        border-radius: 0;
        -webkit-box-shadow: none;
        box-shadow: none;
    }

    #ftco-loader.show {
        -webkit-transition: opacity .4s ease-out, visibility 0s linear 0s;
        -o-transition: opacity .4s ease-out, visibility 0s linear 0s;
        transition: opacity .4s ease-out, visibility 0s linear 0s;
        visibility: visible;
        opacity: 1;
    }

    #ftco-loader .circular {
        -webkit-animation: loader-rotate 2s linear infinite;
        animation: loader-rotate 2s linear infinite;
        position: absolute;
        left: calc(50% - 24px);
        top: calc(50% - 24px);
        display: block;
        -webkit-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        transform: rotate(0deg);
    }

    #ftco-loader .path {
        stroke-dasharray: 1, 200;
        stroke-dashoffset: 0;
        -webkit-animation: loader-dash 1.5s ease-in-out infinite;
        animation: loader-dash 1.5s ease-in-out infinite;
        stroke-linecap: round;
    }

@-webkit-keyframes loader-rotate {
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes loader-rotate {
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@-webkit-keyframes loader-dash {
    0% {
        stroke-dasharray: 1, 200;
        stroke-dashoffset: 0;
    }

    50% {
        stroke-dasharray: 89, 200;
        stroke-dashoffset: -35px;
    }

    100% {
        stroke-dasharray: 89, 200;
        stroke-dashoffset: -136px;
    }
}

@keyframes loader-dash {
    0% {
        stroke-dasharray: 1, 200;
        stroke-dashoffset: 0;
    }

    50% {
        stroke-dasharray: 89, 200;
        stroke-dashoffset: -35px;
    }

    100% {
        stroke-dasharray: 89, 200;
        stroke-dashoffset: -136px;
    }
}

.cart-header {
    font-weight: bold;
    font-size: 1.25em;
    color: #333;
}

.cart-column {
    display: flex;
    align-items: center;
    border-bottom: 1px solid black;
    margin-right: 1.5em;
    padding-bottom: 10px;
    margin-top: 10px;
}

.cart-row {
    display: flex;
}

.cart-item {
    width: 45%;
}

.cart-price {
    width: 20%;
    font-size: 1.2em;
    color: #333;
}

.cart-quantity {
    width: 35%;
}

.cart-item-title {
    color: #333;
    margin-left: .5em;
    font-size: 1.2em;
}

.cart-item-image {
    width: 75px;
    height: auto;
    border-radius: 10px;
}

.btn-danger {
    color: white;
    background-color: #EB5757;
    border: none;
    border-radius: .3em;
    font-weight: bold;
}

    .btn-danger:hover {
        background-color: #CC4C4C;
    }

.cart-quantity-input {
    height: 34px;
    width: 50px;
    border-radius: 5px;
    border: 1px solid #56CCF2;
    background-color: #eee;
    color: #333;
    padding: 0;
    text-align: center;
    font-size: 1.2em;
    margin-right: 25px;
}

.cart-row:last-child {
    border-bottom: 1px solid black;
}

    .cart-row:last-child .cart-column {
        border: none;
    }

.cart-total {
    text-align: end;
    margin-top: 10px;
    margin-right: 10px;
}

.cart-total-title {
    font-weight: bold;
    font-size: 1.5em;
    color: black;
    margin-right: 20px;
}

.cart-total-price {
    color: #333;
    font-size: 1.1em;
}

.btn-purchase {
    display: block;
    margin: 40px auto 80px auto;
    font-size: 1.75em;
}

@media (max-width: 768px) {
    .dropdown-menu-large {
        margin-left: 0;
        margin-right: 0;
    }

        .dropdown-menu-large > li {
            margin-bottom: 30px;
        }

            .dropdown-menu-large > li:last-child {
                margin-bottom: 0;
            }

        .dropdown-menu-large .dropdown-header {
            padding: 3px 15px !important;
        }
}

.dropdown  .dropdown-menu {
    min-width: 200px;
    width: 100%;
}

    .dropdown-menu.columns-2 {
        min-width: 400px;
    }

    .dropdown-menu.columns-3 {
        min-width: 600px;
    }

    .dropdown-menu li a {
        padding: 5px 15px;
        font-weight: 300;
    }

.multi-column-dropdown {
    list-style: none;
    margin: 0px;
    padding: 0px;
}

    .multi-column-dropdown li a {
        display: block;
        clear: both;
        line-height: 1.428571429;
        color: #333;
        white-space: normal;
        border-left: 1px solid gray;
    }

        .multi-column-dropdown li a:hover {
            text-decoration: none;
            color: #262626;
        }

@media (max-width: 767px) {
    #nav-basket {
    }
}

.col-sm-3 {
    width: 100% !important;
}

.dropdown-header {
    font-size: 18px;
}

.dropdown-large {
    position: static !important;
}

.scrollable-menu {
    height: auto;
    max-height: 300px;
    overflow-x: hidden;
}

.dropdown-menu-large {
    margin-left: 16px;
    margin-right: 16px;
    padding: 20px 0px;
}

    .dropdown-menu-large > li > ul {
        padding: 0;
        margin: 0;
    }

        .dropdown-menu-large > li > ul > li {
            list-style: none;
        }

            .dropdown-menu-large > li > ul > li > a {
                display: block;
                padding: 3px 20px;
                clear: both;
                font-weight: normal;
                line-height: 1.428571429;
                color: #333333;
                white-space: normal;
            }

    .dropdown-menu-large > li ul > li > a:hover,
    .dropdown-menu-large > li ul > li > a:focus {
        text-decoration: none;
        color: #262626;
        background-color: #f5f5f5;
    }

    .dropdown-menu-large .disabled > a,
    .dropdown-menu-large .disabled > a:hover,
    .dropdown-menu-large .disabled > a:focus {
        color: #999999;
    }

        .dropdown-menu-large .disabled > a:hover,
        .dropdown-menu-large .disabled > a:focus {
            text-decoration: none;
            background-color: transparent;
            background-image: none;
            filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
            cursor: not-allowed;
        }

    .dropdown-menu-large .dropdown-header {
        color: #428bca;
        font-size: 18px;
    }

@media(min-width: 600px) {
    #cart-box {
        transform: translateX(-800px);
        left: 0;
        width: 100vw;
    }

    #cart-row-id {
        width: 100vw;
    }

    #col-cart-id {
        width: 900px;
    }
}

.cat-butt {
    border: none;
    outline: none;
    padding: 10px 16px;
    background-color: #f1f1f1;
    cursor: pointer;
}

    .cat-butt:hover {
        color: white;
    }

.btn {
    font-size: 13px;
}

    .btn btn success btn-block a {
        color: white;
    }

#products-row .product {
    position: relative;

    -webkit-box-shadow: 0px 0px 0px 0px #E4E7ED, 0px 0px 0px 1px #E4E7ED;
    box-shadow: 0px 0px 0px 0px #E4E7ED, 0px 0px 0px 1px #E4E7ED;
    -webkit-transition: 0.2s all;
    transition: 0.2s all;
}

    #products-row .product:hover {
        -webkit-box-shadow: 0px 0px 6px 0px #E4E7ED, 0px 0px 0px 2px #D10024;
        box-shadow: 0px 0px 6px 0px #E4E7ED, 0px 0px 0px 2px #D10024;
    }

    #products-row .product .product-img {
        position: relative;
    }

        #products-row .product .product-img > img {
            width: 100%;
        }

        #products-row .product .product-img .product-label {
            position: absolute;
            top: 15px;
            right: 15px;
        }

            #products-row .product .product-img .product-label > span {
                border: 2px solid;
                padding: 2px 10px;
                font-size: 12px;
            }

                #products-row .product .product-img .product-label > span.sale {
                    background-color: #FFF;
                    border-color: #D10024;
                    color: #D10024;
                }

                #products-row .product .product-img .product-label > span.new {
                    background-color: #D10024;
                    border-color: #D10024;
                    color: #FFF;
                }

    #products-row .product .product-body {
        position: relative;
        background-color: #FFF;
        text-align: center;
        z-index: 20;
    }

        #products-row .product .product-body .product-category {
            text-transform: uppercase;
            font-size: 12px;
            color: #8D99AE;
        }

        .product .product-body .product-name {
            text-transform: uppercase;
            font-size: 14px;
        }

            .product .product-body .product-name > a {
                font-weight: 700;
            }

                .product .product-body .product-name > a:hover, .product .product-body .product-name > a:focus {
                    color: #D10024;
                }

        .product .product-body .product-price {
            color: #D10024;
            font-size: 18px;
        }

            .product .product-body .product-price .product-old-price {
                font-size: 70%;
                font-weight: 400;
                color: #8D99AE;
            }

        .product .product-body .product-rating {
            position: relative;
            margin: 15px 0px 10px;
            height: 20px;
        }

            .product .product-body .product-rating > i {
                position: relative;
                width: 14px;
                margin-right: -4px;
                background: #FFF;
                color: #E4E7ED;
                z-index: 10;
            }

                .product .product-body .product-rating > i.fa-star {
                    color: #ef233c;
                }

            .product .product-body .product-rating:after {
               /*content: "";*/ 
                position: absolute;
                top: 50%;
                left: 0;
                right: 0;
                -webkit-transform: translateY(-50%);
                -ms-transform: translateY(-50%);
                transform: translateY(-50%);
                height: 1px;
                background-color: #E4E7ED;
            }

        .product .product-body .product-btns > button {
            position: relative;
            width: 40px;
            height: 40px;
            line-height: 40px;
            background: transparent;
            border: none;
            -webkit-transition: 0.2s all;
            transition: 0.2s all;
        }

            .product .product-body .product-btns > button:hover {
                background-color: #E4E7ED;
                color: #D10024;
                border-radius: 50%;
            }

            .product .product-body .product-btns > button .tooltipp {
                position: absolute;
                bottom: 100%;
                left: 50%;
                -webkit-transform: translate(-50%, -15px);
                -ms-transform: translate(-50%, -15px);
                transform: translate(-50%, -15px);
                width: 150px;
                padding: 10px;
                font-size: 12px;
                line-height: 10px;
                background: #1e1f29;
                color: #FFF;
                text-transform: uppercase;
                z-index: 10;
                opacity: 0;
                visibility: hidden;
                -webkit-transition: 0.2s all;
                transition: 0.2s all;
            }

            .product .product-body .product-btns > button:hover .tooltipp {
                opacity: 1;
                visibility: visible;
                -webkit-transform: translate(-50%, -5px);
                -ms-transform: translate(-50%, -5px);
                transform: translate(-50%, -5px);
            }

    .product .add-to-cart {
        position: absolute;
        left: 1px;
        right: 1px;
        bottom: 1px;
        padding: 15px;
        background: #1e1f29;
        opacity: 0;
        text-align: center;
        -webkit-transform: translateY(0%);
        -ms-transform: translateY(0%);
        transform: translateY(0%);
        -webkit-transition: 0.2s all;
        transition: 0.2s all;
        z-index: 2;
    }

    .product:hover .add-to-cart {
        -webkit-transform: translateY(100%);
        -ms-transform: translateY(100%);
        transform: translateY(100%);
        opacity: 1;
    }

    .product .add-to-cart .add-to-cart-btn {
        position: relative;
        border: 2px solid transparent;
        height: 40px;
        padding: 0 30px;
        background-color: #ef233c;
        color: #FFF;
        text-transform: uppercase;
        font-weight: 700;
        border-radius: 40px;
        -webkit-transition: 0.2s all;
        transition: 0.2s all;
    }

        .product .add-to-cart .add-to-cart-btn > i {
            position: absolute;
            left: 0;
            top: 0;
            width: 40px;
            height: 40px;
            line-height: 38px;
            color: #D10024;
            opacity: 0;
            visibility: hidden;
        }

        .product .add-to-cart .add-to-cart-btn:hover {
            background-color: #FFF;
            color: #D10024;
            border-color: #D10024;
            padding: 0px 30px 0px 50px;
        }

            .product .add-to-cart .add-to-cart-btn:hover > i {
                opacity: 1;
                visibility: visible;
            }




.product-slider .owl-nav button[type=button] {
    font-size: 30px;
    position: absolute;
    left: -62px;
    top: 25%;
    color: #171717;
    opacity: 0.3;
}

    .product-slider .owl-nav button[type=button].owl-next {
        left: auto;
        right: -62px;
        color: #171717;
        opacity: 1;
    }

.product-slider .owl-dots {
    text-align: center;
    margin-top: 27px;
}

    .product-slider .owl-dots button {
        width: 6px;
        height: 6px;
        background: #D8D9DA;
        border-radius: 50%;
        margin-right: 10px;
        -webkit-transition: all 0.3s;
        -o-transition: all 0.3s;
        transition: all 0.3s;
    }

        .product-slider .owl-dots button:last-child {
            margin-right: 0;
        }

        .product-slider .owl-dots button.active {
            width: 30px;
            background: #252525;
            border-radius: 50px;
        }

.product-item {
    margin-bottom: 26px;
}

    .product-item:hover .pi-pic .icon {
        top: 15px;
        opacity: 1;
    }

    .product-item:hover .pi-pic ul {
        bottom: 0;
    }

    .product-item .pi-pic {
        overflow: hidden;
        position: relative;
    }

        .product-item .pi-pic img {
            min-width: 100%;
        }

        .product-item .pi-pic .sale {
            color: #ffffff;
            font-size: 10px;
            background: #76BC42;
            position: absolute;
            left: 0;
            top: 20px;
            padding: 5px 10px;
            text-transform: uppercase;
        }

            .product-item .pi-pic .sale.pp-sale {
                background: #e7ab3c;
            }

        .product-item .pi-pic .icon {
            font-size: 20px;
            color: #252525;
            position: absolute;
            right: 21px;
            top: -15px;
            cursor: pointer;
            -webkit-transition: all 0.3s;
            -o-transition: all 0.3s;
            transition: all 0.3s;
            opacity: 0;
        }

        .product-item .pi-pic ul {
            position: absolute;
            left: 0;
            bottom: -52px;
            -webkit-transition: all 0.3s;
            -o-transition: all 0.3s;
            transition: all 0.3s;
            text-align: center;
            width: 100%;
        }

            .product-item .pi-pic ul li {
                list-style: none;
                display: inline-block;
                background: #ffffff;
            }

                .product-item .pi-pic ul li.w-icon.active a {
                    background: #e7ab3c;
                    color: #ffffff;
                }

                .product-item .pi-pic ul li a {
                    font-size: 16px;
                    font-weight: 700;
                    color: #252525;
                    display: block;
                    padding: 16px 18px 12px 19px;
                }

    .product-item .pi-text {
        text-align: center;
        padding-top: 26px;
    }

        .product-item .pi-text .catagory-name {
            font-size: 10px;
            color: #b2b2b2;
            font-weight: 700;
            letter-spacing: 2px;
            text-transform: uppercase;
            margin-bottom: 10px;
        }

        .product-item .pi-text a {
            display: block;
        }

            .product-item .pi-text a h5 {
                color: #252525;
            }

        .product-item .pi-text .product-price {
            color: #e7ab3c;
            font-size: 20px;
            font-weight: 700;
        }

            .product-item .pi-text .product-price span {
                font-size: 14px;
                font-weight: 400;
                color: #b2b2b2;
                text-decoration: line-through;
            }

@media only screen and (min-width: 1200px) and (max-width: 1920px) {
    .product-item .pi-pic ul li a {
        padding: 16px 12px 12px 11px;
    }

  
}
.categorybutton {
    color: #9F2228;
    border-color: #9F2228;
    padding: 15px;
    border-radius: 25px !important;
}

    .categorybutton:hover {
        background: #9F2228;
        color: #fff;
    }

    .categorybutton.activated {
        background: #9F2228;
        color: #fff;
    }

@media only screen and (min-width: 992px) and (max-width: 1199px) {
    .nav-item .nav-menu li a {
        padding: 16px 26px 15px;
    }

    .hero-items .owl-nav button[type=button] {
        left: 5px;
    }

        .hero-items .owl-nav button[type=button].owl-next {
            right: 5px;
        }

    .product-details .quantity .primary-btn.pd-cart {
        padding: 14px 30px 10px;
    }

    .product-shop .product-item .pi-pic ul li a {
        padding: 16px 12px 12px 11px;
    }

    .related-products .product-item .pi-pic ul li a {
        padding: 16px 12px 12px 11px;
    }
}

#cart-area {
    display: none;
}

.breadcrumb_bg {
    background-image: url("../images/bg_3.jpg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.breadcrumb {
    position: relative;
    z-index: 1;
    text-align: left;
    top: 100px;
}

    .breadcrumb .breadcrumb_iner {
        height: 475px;
        width: 100%;
        display: table;
    }

        .breadcrumb .breadcrumb_iner .breadcrumb_iner_item {
            display: table-cell;
            vertical-align: middle;
        }

            .breadcrumb .breadcrumb_iner .breadcrumb_iner_item h2 {
                color: #222222;
                font-size: 36px;
                font-weight: 700;
                margin-bottom: 10px;
                text-transform: capitalize;
            }

@media (max-width: 576px) {
    .breadcrumb .breadcrumb_iner .breadcrumb_iner_item h2 {
        font-size: 25px;
    }
}

@media only screen and (min-width: 576px) and (max-width: 767px) {
    .breadcrumb .breadcrumb_iner .breadcrumb_iner_item h2 {
        font-size: 25px;
    }
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
    .breadcrumb .breadcrumb_iner .breadcrumb_iner_item h2 {
        font-size: 40px;
    }
}

@media only screen and (min-width: 992px) and (max-width: 1200px) {
    .breadcrumb .breadcrumb_iner .breadcrumb_iner_item h2 {
        font-size: 50px;
    }
}

.breadcrumb .breadcrumb_iner .breadcrumb_iner_item p {
    font-size: 15px;
    color: #777777;
}

.breadcrumb .breadcrumb_iner .breadcrumb_iner_item span {
    margin: 0px 5px;
    font-size: 12px;
}

.breadcrumb {
    margin-bottom: 0px !important;
}

.submit_btn {
    width: auto;
    display: inline-block;
    background: #fff;
    padding: 0px 50px;
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    line-height: 50px;
    border-radius: 5px;
    outline: none !important;
    box-shadow: none !important;
    text-align: center;
    border: 1px solid #edeff2;
    cursor: pointer;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}

    .submit_btn:hover {
        background: transparent;
    }

.btn_1 {
    display: inline-block;
    padding: 9px 42px;
    border-radius: 50px;
    background-color: #ecfdff;
    font-size: 15px;
    font-weight: 700;
    color: #333;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}

    .btn_1:hover {
        background-color: #ff3368;
        color: #fff;
    }

.btn_3 {
    display: inline-block;
    padding: 9px 42px;
    border-radius: 50px;
    background-color: #ff3368;
    border: 1px solid #ecfdff;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    font-weight: 400;
    box-shadow: -1.717px 8.835px 29.76px 2.24px rgba(255, 51, 104, 0.18);
    border: 1px solid #ff3368;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}

    .btn_3:hover {
        background-color: red;
        color: #fff;
    }

.btn_2 {
    display: inline-block;
    width: 180px;
    height: 60px;
    line-height: 60px;
    text-align: center;
    border-radius: 5px;
    background-color: #ff3368;
    font-size: 15px;
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    color: #fff;
    -o-transition: all .4s ease-in-out;
    -webkit-transition: all .4s ease-in-out;
    transition: all .4s ease-in-out;
    text-transform: capitalize;
    background-size: 200% auto;
    text-transform: uppercase;
    box-shadow: -1.717px 8.835px 29.76px 2.24px rgba(255, 51, 104, 0.18);
}

    .btn_2:hover {
        color: #fff !important;
        background-position: right center;
    }

@media (max-width: 991px) {
    .btn_2 {
        height: 50px;
        width: 140px;
        line-height: 50px;
    }
}

.btn_4 {
    color: #ff3368;
    font-size: 15px;
    font-weight: 700;
    margin-top: 53px;
    display: inline-block;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}

@media (max-width: 991px) {
    .btn_4 {
        margin-top: 30px;
    }
}

.btn_4 img {
    width: 20px;
    margin-left: 15px;
}

ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

/*=================== custom button rule start ====================*/

.button {
    display: inline-block;
    border: 1px solid transparent;
    font-size: 15px;
    font-weight: 500;
    padding: 12px 54px;
    border-radius: 4px;
    color: #fff;
    border: 1px solid #edeff2;
    text-transform: uppercase;
    background-color: #ff3368;
    cursor: pointer;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}

@media (max-width: 767px) {
    .button {
        font-size: 13px;
        padding: 9px 24px;
    }
}

.button:hover {
    color: #fff;
}

.button-link {
    letter-spacing: 0;
    color: #3b1d82;
    border: 0;
    padding: 0;
}

    .button-link:hover {
        background: transparent;
        color: #3b1d82;
    }

.button-header {
    color: #fff;
    border-color: #edeff2;
}

    .button-header:hover {
        background: #b8024c;
        color: #fff;
    }

.button-contactForm {
    color: #fff;
    border-color: #edeff2;
    padding: 12px 25px;
}

/* Cart Area css
============================================================================================ */

.cart_inner .table {
    margin-bottom: 30px;
    border-bottom: 1px solid #dddddd;
}

    .cart_inner .table thead tr th {
        border-top: 0px;
        font-size: 14px;
        font-weight: 500;
        font-family: "Poppins", sans-serif;
        color: #797979;
        border-bottom: 0px !important;
    }

    .cart_inner .table tbody tr td {
        padding-top: 30px;
        padding-bottom: 30px;
        vertical-align: middle;
        align-self: center;
    }

        .cart_inner .table tbody tr td .media .d-flex {
            padding-right: 30px;
        }

            .cart_inner .table tbody tr td .media .d-flex img {
                border: 1px solid #eeeeee;
                border-radius: 3px;
            }

        .cart_inner .table tbody tr td .media .media-body {
            vertical-align: middle;
            align-self: center;
        }

            .cart_inner .table tbody tr td .media .media-body p {
                margin-bottom: 0px;
            }

        .cart_inner .table tbody tr td h5 {
            font-size: 14px;
            color: #2a2a2a;
            font-family: "Poppins", sans-serif;
            margin-bottom: 0px;
        }

        .cart_inner .table tbody tr td .product_count {
            margin-bottom: 0px;
        }

            .cart_inner .table tbody tr td .product_count input {
                width: 100px;
                padding-left: 30px;
                height: 40px;
                outline: none;
                box-shadow: none;
            }

            .cart_inner .table tbody tr td .product_count .increase {
                top: -2px;
            }

                .cart_inner .table tbody tr td .product_count .increase:before {
                    content: "";
                    height: 40px;
                    width: 1px;
                    position: absolute;
                    left: -3px;
                    top: 0px;
                    background: #eeeeee;
                }

                .cart_inner .table tbody tr td .product_count .increase:after {
                    content: "";
                    height: 1px;
                    width: 30px;
                    position: absolute;
                    left: -3px;
                    top: 22px;
                    background: #eeeeee;
                }

            .cart_inner .table tbody tr td .product_count .reduced {
                bottom: -6px;
            }

    .cart_inner .table tbody tr.bottom_button .gray_btn {
        line-height: 38px;
        background: #f6f6f6;
        border: 1px solid #eeeeee;
        border-radius: 3px;
        padding: 0px 40px;
        display: inline-block;
        color: #2a2a2a;
        text-transform: uppercase;
        font-weight: 500;
    }

    .cart_inner .table tbody tr.bottom_button td:last-child {
        width: 60px;
    }

    .cart_inner .table tbody tr.bottom_button td .cupon_text {
        margin-left: -446px;
    }

        .cart_inner .table tbody tr.bottom_button td .cupon_text input {
            width: 200px;
            padding: 0px 15px;
            border-radius: 3px;
            border: 1px solid #eeeeee;
            height: 40px;
            font-size: 14px;
            color: #cccccc;
            font-family: "Poppins", sans-serif;
            font-weight: normal;
            margin-right: -3px;
            outline: none;
            box-shadow: none;
        }

            .cart_inner .table tbody tr.bottom_button td .cupon_text input.placeholder {
                font-size: 14px;
                color: #cccccc;
                font-family: "Poppins", sans-serif;
                font-weight: normal;
            }

            .cart_inner .table tbody tr.bottom_button td .cupon_text input:-moz-placeholder {
                font-size: 14px;
                color: #cccccc;
                font-family: "Poppins", sans-serif;
                font-weight: normal;
            }

            .cart_inner .table tbody tr.bottom_button td .cupon_text input::-moz-placeholder {
                font-size: 14px;
                color: #cccccc;
                font-family: "Poppins", sans-serif;
                font-weight: normal;
            }

            .cart_inner .table tbody tr.bottom_button td .cupon_text input::-webkit-input-placeholder {
                font-size: 14px;
                color: #cccccc;
                font-family: "Poppins", sans-serif;
                font-weight: normal;
            }

        .cart_inner .table tbody tr.bottom_button td .cupon_text .main_btn {
            height: 40px;
            line-height: 38px;
            text-transform: uppercase;
            padding: 0px 38px;
            margin-right: -3px;
        }

        .cart_inner .table tbody tr.bottom_button td .cupon_text .gray_btn {
            padding: 0px 40px;
        }

    .cart_inner .table tbody tr.shipping_area td:nth-child(3) {
        vertical-align: top;
    }

    .cart_inner .table tbody tr.shipping_area .shipping_box {
        margin-left: -250px;
        text-align: right;
    }

        .cart_inner .table tbody tr.shipping_area .shipping_box .list li {
            margin-bottom: 12px;
        }

            .cart_inner .table tbody tr.shipping_area .shipping_box .list li:last-child {
                margin-bottom: 0px;
            }

            .cart_inner .table tbody tr.shipping_area .shipping_box .list li a {
                padding-right: 30px;
                font-size: 14px;
                color: #797979;
                position: relative;
            }

                .cart_inner .table tbody tr.shipping_area .shipping_box .list li a:before {
                    content: "";
                    height: 16px;
                    width: 16px;
                    border: 1px solid #cdcdcd;
                    display: inline-block;
                    border-radius: 50%;
                    position: absolute;
                    right: 0px;
                    top: 50%;
                    transform: translateY(-50%);
                }

                .cart_inner .table tbody tr.shipping_area .shipping_box .list li a:after {
                    content: "";
                    height: 10px;
                    width: 10px;
                    border-radius: 50%;
                    background: #ff3368;
                    display: inline-block;
                    position: absolute;
                    right: 3px;
                    top: 50%;
                    transform: translateY(-50%);
                    opacity: 0;
                }

            .cart_inner .table tbody tr.shipping_area .shipping_box .list li.active a:after {
                opacity: 1;
            }

        .cart_inner .table tbody tr.shipping_area .shipping_box h6 {
            font-size: 14px;
            font-weight: normal;
            color: #2a2a2a;
            font-family: "Poppins", sans-serif;
            margin-top: 20px;
            margin-bottom: 20px;
        }

            .cart_inner .table tbody tr.shipping_area .shipping_box h6 i {
                color: #797979;
                padding-left: 5px;
            }

        .cart_inner .table tbody tr.shipping_area .shipping_box .shipping_select {
            display: block;
            width: 100%;
            background: #ecfdff;
            border: 1px solid #ecfdff;
            height: 40px;
            margin-bottom: 20px;
        }

            .cart_inner .table tbody tr.shipping_area .shipping_box .shipping_select .list {
                width: 100%;
                border-radius: 0px;
            }

                .cart_inner .table tbody tr.shipping_area .shipping_box .shipping_select .list li {
                    font-size: 14px;
                    font-weight: normal;
                    color: #797979;
                }

        .cart_inner .table tbody tr.shipping_area .shipping_box input {
            height: 40px;
            outline: none;
            background: #ecfdff;
            border: 1px solid #ecfdff;
            width: 100%;
            padding: 0px 15px;
            margin-bottom: 20px;
        }

    .cart_inner .table tbody tr.out_button_area .checkout_btn_inner {
        margin-left: -388px;
    }

        .cart_inner .table tbody tr.out_button_area .checkout_btn_inner .main_btn {
            height: 40px;
            padding: 0px 30px;
            line-height: 38px;
            text-transform: uppercase;
        }

.gray_btn {
    line-height: 38px;
    background: #f6f6f6;
    border: 1px solid #eeeeee;
    border-radius: 3px;
    padding: 0px 40px;
    display: inline-block;
    color: #2a2a2a;
    text-transform: uppercase;
    font-weight: 500;
}

/* End Cart Area css
============================================================================================ */
/* End Cart Area css
============================================================================================ */

.checkout_area p {
    font-size: 14px;
}

.checkout_area .form-control {
    font-size: 14px;
    height: 40px;
}

.checkout_area .form-control {
    border: 1px solid #eee;
}

    .checkout_area .form-control :focus {
        color: #495057;
        background-color: #fff;
        border: 1px solid #ced4da;
        outline: 0;
        box-shadow: none;
    }

    .checkout_area .form-control .form-control input {
        height: 50px;
    }

.check_title h2 {
    font-size: 14px;
    font-weight: normal;
    font-family: "Poppins", sans-serif;
    background: #ecfdff;
    line-height: 40px;
    padding-left: 30px;
    margin-bottom: 0px;
}

@media (max-width: 991px) {
    .check_title h2 {
        line-height: 17px;
        padding: 12px;
    }
}

.check_title h2 a {
    color: #ff3368;
    text-decoration: underline;
}

.returning_customer p {
    margin-top: 15px;
    padding-left: 30px;
    margin-bottom: 25px;
}

@media (max-width: 991px) {
    .returning_customer p {
        padding-left: 0;
    }
}

.returning_customer .contact_form {
    max-width: 710px;
    margin-left: 15px;
}

@media (max-width: 991px) {
    .returning_customer .contact_form {
        margin-left: -15px;
    }
}

.returning_customer .contact_form .form-group {
    margin-bottom: 20px;
}

    .returning_customer .contact_form .form-group input {
        border: 1px solid #eeeeee;
        height: 40px;
        border-radius: 3px;
        font-size: 14px;
        font-family: "Poppins", sans-serif;
        color: #797979;
        font-weight: normal;
    }

        .returning_customer .contact_form .form-group input.placeholder {
            font-size: 14px;
            font-family: "Poppins", sans-serif;
            color: #797979;
            font-weight: normal;
        }

        .returning_customer .contact_form .form-group input:-moz-placeholder {
            font-size: 14px;
            font-family: "Poppins", sans-serif;
            color: #797979;
            font-weight: normal;
        }

        .returning_customer .contact_form .form-group input::-moz-placeholder {
            font-size: 14px;
            font-family: "Poppins", sans-serif;
            color: #797979;
            font-weight: normal;
        }

        .returning_customer .contact_form .form-group input::-webkit-input-placeholder {
            font-size: 14px;
            font-family: "Poppins", sans-serif;
            color: #797979;
            font-weight: normal;
        }

    .returning_customer .contact_form .form-group .submit_btn {
        margin-top: 0px;
    }

    .returning_customer .contact_form .form-group .creat_account {
        display: inline-block;
        margin-left: 15px;
    }

        .returning_customer .contact_form .form-group .creat_account input {
            height: auto;
            margin-right: 10px;
        }

    .returning_customer .contact_form .form-group .lost_pass {
        display: block;
        margin-top: 20px;
        font-size: 14px;
        font-family: "Poppins", sans-serif;
        color: #797979;
        font-weight: normal;
    }

.p_star {
    display: inline-block;
    position: relative;
}

    .p_star input {
        background: #fff;
    }

        .p_star input:focus + .placeholder {
            display: none;
        }

    .p_star .placeholder {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 30px;
        z-index: 1;
    }

        .p_star .placeholder::before {
            content: attr(data-placeholder);
            color: #777;
        }

        .p_star .placeholder::after {
            content: " *";
            color: tomato;
        }

.cupon_area {
    margin-bottom: 40px;
}

    .cupon_area input {
        margin-left: 30px;
        max-width: 730px;
        width: 100%;
        display: block;
        height: 40px;
        border-radius: 3px;
        padding: 0px 15px;
        border: 1px solid #eeeeee;
        outline: none;
        box-shadow: none;
        margin-top: 20px;
        margin-bottom: 20px;
    }

@media (max-width: 991px) {
    .cupon_area input {
        margin-left: 0;
    }
}

.cupon_area .tp_btn {
    margin-left: 30px;
}

@media (max-width: 991px) {
    .cupon_area .tp_btn {
        margin-left: 0;
    }
}

.tp_btn {
    border: 1px solid #eeeeee;
    display: inline-block;
    line-height: 38px;
    padding: 0px 40px;
    color: #2a2a2a;
    text-transform: capitalize;
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    border-radius: 50px;
}

    .tp_btn:hover {
        background: #ff3368;
        color: #fff;
        border-color: #ff3368;
    }

.billing_details h3 {
    font-size: 18px;
    color: #2a2a2a;
    padding-bottom: 10px;
    margin-bottom: 30px;
}

.billing_details .contact_form .form-group {
    margin-bottom: 20px;
}

    .billing_details .contact_form .form-group input {
        border-radius: 3px;
        color: #797979;
    }

        .billing_details .contact_form .form-group input.placeholder {
            color: #797979;
        }

        .billing_details .contact_form .form-group input:-moz-placeholder {
            color: #797979;
        }

        .billing_details .contact_form .form-group input::-moz-placeholder {
            color: #797979;
        }

        .billing_details .contact_form .form-group input::-webkit-input-placeholder {
            color: #797979;
        }

    .billing_details .contact_form .form-group textarea {
        height: 150px;
        border-radius: 3px;
        margin-top: 15px;
    }

    .billing_details .contact_form .form-group .country_select {
        width: 100%;
    }

        .billing_details .contact_form .form-group .country_select span {
            color: #797979;
        }

        .billing_details .contact_form .form-group .country_select .list {
            width: 100%;
            border-radius: 0px;
        }

            .billing_details .contact_form .form-group .country_select .list li {
                font-size: 14px;
                font-family: "Poppins", sans-serif;
                font-weight: normal;
            }

    .billing_details .contact_form .form-group .creat_account #f-option2 {
        margin-right: 5px;
    }

    .billing_details .contact_form .form-group .creat_account #f-option3 {
        margin-right: 5px;
    }

    .billing_details .contact_form .form-group .creat_account a {
        color: #ff3368;
    }

.order_box {
    background: #ecfdff;
    padding: 30px;
}

    .order_box h2 {
        border-bottom: 1px solid #dddddd;
        font-size: 18px;
        font-weight: 500;
        color: #2a2a2a;
        padding-bottom: 15px;
    }

    .order_box .list li a {
        font-size: 14px;
        color: #797979;
        font-weight: normal;
        border-bottom: 1px solid #eeeeee;
        display: block;
        line-height: 42px;
    }

        .order_box .list li a span {
      
        }

        .order_box .list li a .middle {
            /*float: none;
            width: 50px;
            text-align: right;
            display: inline-block;
            margin-left: 30px;*/
            color: #2a2a2a;
        }
        .order_box .list li a .last {
            float: right;
        }

    .order_box .list li:nth-child(4) a .middle {
        margin-left: 48px;
    }

    .order_box .list_2 li a {
        text-transform: uppercase;
        color: #2a2a2a;
        font-weight: 500;
    }

        .order_box .list_2 li a span {
            color: #797979;
            text-transform: capitalize;
        }

    .order_box .list_2 li:last-child a span {
        color: #2a2a2a;
    }

    .order_box .payment_item h4 {
        font-size: 14px;
        text-transform: uppercase;
        color: #2a2a2a;
        font-weight: 500;
        padding-left: 22px;
        position: relative;
        margin-bottom: 15px;
        margin-top: 15px;
    }

        .order_box .payment_item h4:before {
            content: "";
            width: 14px;
            height: 14px;
            border-radius: 50%;
            border: 1px solid #cdcdcd;
            background: #fff;
            display: block;
            position: absolute;
            left: 0px;
            top: 50%;
            transform: translateY(-50%);
        }

        .order_box .payment_item h4:after {
            content: "";
            height: 4px;
            width: 4px;
            background: #fff;
            border-radius: 50%;
            display: block;
            position: absolute;
            left: 5px;
            top: 8px;
        }

        .order_box .payment_item h4 img {
            padding-left: 60px;
        }

    .order_box .payment_item p {
        background: #fff;
        padding: 20px;
    }

    .order_box .payment_item.active h4:before {
        background: #ff3368;
        border-color: #ff3368;
    }

    .order_box .creat_account {
        margin: 15px 0;
    }

        .order_box .creat_account label {
            padding-left: 10px;
            font-size: 12px;
            color: #2a2a2a;
        }

        .order_box .creat_account a {
            color: #ff3368;
        }

    .order_box .btn_3 {
        display: block;
        line-height: 38px;
        text-transform: uppercase;
        text-align: center;
    }

@media (max-width: 991px) {
    .order_box .btn_3 {
        padding: 9px 34px;
    }
}

@media only screen and (min-width: 992px) and (max-width: 1200px) {
    .order_box .btn_3 {
        padding: 9px 34px;
    }
}

#delcal h1, h2, h3 {
    color: #4b4b4b;
    margin: 1.2em 0 .5em 0;
}

#delcal .content {
    max-width: 900px;
    margin: 20px auto;
    background: #fff;
    padding: 10px;
    border: solid 1px #eee;
    border-radius: 10px;
}

#delcal table {
    width: 100%;
}

#delcal th, td {
    padding: 10px;
    text-align: left;
    vertical-align: top;
    font-size: .9em;
    font-weight: normal;
    border-right: 1px solid #fff;
}

#delcal th {
    background: #eee;
    white-space: nowrap;
}

#delcal td:first-child {
    color: royalblue;
    white-space: nowrap;
}

#delcal p, td {
    line-height: 1.5;
}

#delcal .inline-code {
    padding: 1px 5px;
    background: #eee;
    border-radius: 2px;
}

#delcal pre {
    margin: 10px 0;
    overflow: auto;
    white-space: pre;
    word-wrap: normal;
    border: 0;
    border-radius: 5px;
    padding: 8px 10px;
    line-height: 18px;
    background: #edf3f8;
    font-size: 14px;
}

#delcal code, kbd, pre, samp {
    font-family: monospace,monospace;
    font-size: 1em;
}

#delcal button {
    padding: 10px;
    border: 0;
    border-radius: 3px;
    font-size: 1em;
    cursor: pointer;
}

    #delcal button.info {
        background: #538fcd;
        color: #fff;
    }

#delcal .area-buttons {
    margin: 10px;
    padding: 10px;
    text-align: center;
}

.modal {
    display: none; /* Hidden by default */
    position: fixed; /* Stay in place */
    z-index: 1; /* Sit on top */
    padding-top: 100px; /* Location of the box */
    left: 0;
    top: 0;
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    overflow: auto; /* Enable scroll if needed */
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    z-index: 1042;
}

/* Modal Content */
.modal-content {
    background-color: #fefefe;
    margin: auto;
    padding: 20px;
    border: 1px solid #888;
    width: 80%;
  
}

/* The Close Button */
.close {
    color: #aaaaaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}

    .close:hover,
    .close:focus {
        color: #000;
        text-decoration: none;
        cursor: pointer;
    }

.dropdown-submenu {
    position: relative;

}

    .dropdown-submenu > a:after {
      
        float: right;
    }

    .dropdown-submenu > .dropdown-menu {
        top: 0;
        left: 100%;
        margin-top: 0px;
        margin-left: 0px;
    }

    .dropdown-submenu:hover > .dropdown-menu {
        display: block;
    }
    .dropdown-item{
        cursor: pointer;
    }

@media (min-width: 992px) {
    .dropdown-submenu > .dropdown-menu {
        top: 0%;
        left: 100%;
        margin-top: 0px;
        margin-left: 0px;
    }
}

.previous{
    cursor: pointer;
    padding: 10px;
}

.breadcrumb {

    padding: 0;
    margin: 0;
    background: transparent;
    overflow: hidden;

}

    .breadcrumb li {
        float: left;
        padding: 8px 15px 8px 50px;
        background: #fdec82;
        font-size: 14px;
        font-weight: bold;
        color: #777;
        position: relative;
       
    }

        .breadcrumb li:first-child {
            background: #fdf9cc;
        }

        .breadcrumb li:last-child {
            background: #fddc05;
            margin-right: 18px;
        }

        .breadcrumb li:before {
            display: none;
        }

        .breadcrumb li:after {
            content: "";
            display: block;
            border-left: 18px solid #fdec82;
            border-top: 18px solid transparent;
            border-bottom: 18px solid transparent;
            position: absolute;
            top: 0;
            right: -18px;
            z-index: 1;
        }

        .breadcrumb li:first-child:after {
            border-left-color: #fdf9cc;
        }

        .breadcrumb li:last-child:after {
            border-left-color: #fddc05;
        }

        .breadcrumb li a {
            font-size: 14px;
            font-weight: bold;
            color: #777;
        }


.landingbutt{
    position: relative;
    bottom: -200px;
}

#landing-page{
    height: 100vh;
    width: 100%;
    z-index:-1;
}
#landing-page2 {
    height: 50vh;
    width: 100%;
}
@media only screen and (max-width: 479px) {
    .breadcrumb li {
        padding: 8px 15px 8px 30px;
    }

    #landing-page {
        height: 100%;
        width: 100%;
        z-index: -1;
    }
}


@charset "UTF-8";
@import url('https://fonts.googleapis.com/css?family=Halant|Montserrat');

.animate-one,
.animate-1, .animate-two,
.animate-2, .animate-three,
.animate-3, .animate-four,
.animate-4, .animate-five,
.animate-5, .animate-six,
.animate-6 {
    -webkit-animation-play-state: paused;
    animation-play-state: paused;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

.is-animating .animate-one, .is-animating
.animate-1, .is-animating .animate-two, .is-animating
.animate-2, .is-animating .animate-three, .is-animating
.animate-3, .is-animating .animate-four, .is-animating
.animate-4, .is-animating .animate-five, .is-animating
.animate-5, .is-animating .animate-six, .is-animating
.animate-6 {
    -webkit-animation-play-state: running;
    animation-play-state: running;
}
/*
.nice-select {
  display: inline-block;
  position: relative;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  background-color: transparent;
  border-radius: 0px;
  border: solid 1px #555555;
  min-width: 75px;
  line-height: 33px;
  outline: none;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-weight: 800;
  font-size: 0.9375rem;
  text-align: center;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  white-space: nowrap;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent; }
  .nice-select:before, .nice-select:after {
    content: ' ';
    display: table;
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .nice-select:after {
    clear: both; }
  .nice-select:after {
    border-bottom: 2px solid #555555;
    border-right: 2px solid #555555;
    content: '';
    display: block;
    height: 7px;
    margin-top: -4px;
    pointer-events: none;
    position: absolute;
    right: 12px;
    top: 50%;
    -webkit-transform-origin: 66% 66%;
        -ms-transform-origin: 66% 66%;
            transform-origin: 66% 66%;
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transition: all 0.15s ease-in-out;
    transition: all 0.15s ease-in-out;
    width: 7px; }
  .nice-select.open:after {
    -webkit-transform: rotate(-135deg);
        -ms-transform: rotate(-135deg);
            transform: rotate(-135deg); }
  .nice-select.open .list {
    -webkit-transform: scale(1) translateY(0);
        -ms-transform: scale(1) translateY(0);
            transform: scale(1) translateY(0);
    opacity: 1;
    pointer-events: auto; }
  .nice-select.disabled {
    border-color: #f6f5f5;
    color: #cac9c9;
    pointer-events: none; }
    .nice-select.disabled:after {
      border-color: #888888; }
  .nice-select .current {
    padding: 0 30px 0 10px; }
  .nice-select .list {
    position: absolute;
    top: 100%;
    left: -53px;
    right: -2px;
    -webkit-transform-origin: 50% 0;
        -ms-transform-origin: 50% 0;
            transform-origin: 50% 0;
    -webkit-transform: scale(0.75) translateY(-18.5px);
        -ms-transform: scale(0.75) translateY(-18.5px);
            transform: scale(0.75) translateY(-18.5px);
    -webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
    transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
    opacity: 0;
    z-index: 9999999;
    margin: 4px 0 0;
    border-radius: 0px;
    background-color: #ffffff;
    padding: 0;
    overflow: hidden;
    pointer-events: none; }
    .nice-select .list:hover .option:not(:hover) {
      background-color: transparent !important; }
  .nice-select .option {
    -webkit-transition: all 0.2s;
    transition: all 0.2s;
    outline: none;
    cursor: pointer;
    min-height: 35px;
    list-style: none;
    text-align: center;
    line-height: 35px;
  	padding-left:0.75rem;
  	padding-right:0.75rem;}
    .nice-select .option:hover, .nice-select .option.focus, .nice-select .option.selected.focus {
      background-color: #f6f5f5; }
.nice-select.product__select-size {
  min-width:120px;
}*/
.add-animation-fade-in-up {
    opacity: 0;
}

.fade {
    -webkit-animation-name: fade-0-to-100;
    animation-name: fade-0-to-100;
    -webkit-animation-duration: 0.5s;
    animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@-webkit-keyframes fade-0-to-100 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fade-0-to-100 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.fade.mini-cart {
    pointer-events: auto;
}

.fade-out-slow {
    -webkit-animation-name: fade-100-to-0;
    animation-name: fade-100-to-0;
    -webkit-animation-delay: 3s;
    animation-delay: 3s;
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@-webkit-keyframes fade-100-to-0 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

@keyframes fade-100-to-0 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.fade-out {
    -webkit-animation-name: fade-100-to-0;
    animation-name: fade-100-to-0;
    -webkit-animation-duration: 0.5s;
    animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@keyframes fade-100-to-0 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.fade-out.mini-cart {
    pointer-events: none;
}

.fade-in-left {
    -webkit-animation-name: custom-1;
    animation-name: custom-1;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@-webkit-keyframes custom-1 {
    0% {
        opacity: 0;
        -webkit-transform: translateX(1.5rem);
        transform: translateX(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

@keyframes custom-1 {
    0% {
        opacity: 0;
        -webkit-transform: translateX(1.5rem);
        transform: translateX(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

.fade-in-right {
    -webkit-animation-name: custom-3;
    animation-name: custom-3;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@-webkit-keyframes custom-3 {
    0% {
        opacity: 0;
        -webkit-transform: translateX(-1.5rem);
        transform: translateX(-1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

@keyframes custom-3 {
    0% {
        opacity: 0;
        -webkit-transform: translateX(-1.5rem);
        transform: translateX(-1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

.fade-in-up {
    -webkit-animation-name: custom-5;
    animation-name: custom-5;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@-webkit-keyframes custom-5 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes custom-5 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

.fade-in-down {
    -webkit-animation-name: custom-7;
    animation-name: custom-7;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@-webkit-keyframes custom-7 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(-1.5rem);
        transform: translateY(-1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes custom-7 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(-1.5rem);
        transform: translateY(-1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

.slide-in-up {
    -webkit-animation-name: slide-in-up-1.5;
    animation-name: slide-in-up-1.5;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@-webkit-keyframes slide-in-up-1

.5 {
    0%

{
    -webkit-transform: translateY(1.5rem);
    transform: translateY(1.5rem);
}

100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
}

}

@keyframes slide-in-up-1

.5 {
    0%

{
    -webkit-transform: translateY(1.5rem);
    transform: translateY(1.5rem);
}

100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
}

}

.animate-one,
.animate-1 {
    -webkit-animation-name: custom-9;
    animation-name: custom-9;
    -webkit-animation-duration: 0.4s;
    animation-duration: 0.4s;
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
}

@-webkit-keyframes custom-9 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes custom-9 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

.animate-two,
.animate-2 {
    -webkit-animation-name: custom-10;
    animation-name: custom-10;
    -webkit-animation-duration: 0.4s;
    animation-duration: 0.4s;
    -webkit-animation-delay: 0.4s;
    animation-delay: 0.4s;
}

@-webkit-keyframes custom-10 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes custom-10 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

.animate-three,
.animate-3 {
    -webkit-animation-name: custom-11;
    animation-name: custom-11;
    -webkit-animation-duration: 0.4s;
    animation-duration: 0.4s;
    -webkit-animation-delay: 0.8s;
    animation-delay: 0.8s;
}

@-webkit-keyframes custom-11 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes custom-11 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

.animate-four,
.animate-4 {
    -webkit-animation-name: custom-12;
    animation-name: custom-12;
    -webkit-animation-duration: 0.4s;
    animation-duration: 0.4s;
    -webkit-animation-delay: 1.2s;
    animation-delay: 1.2s;
}

@-webkit-keyframes custom-12 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes custom-12 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

.animate-five,
.animate-5 {
    -webkit-animation-name: custom-13;
    animation-name: custom-13;
    -webkit-animation-duration: 0.4s;
    animation-duration: 0.4s;
    -webkit-animation-delay: 1.6s;
    animation-delay: 1.6s;
}

@-webkit-keyframes custom-13 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes custom-13 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

.animate-six,
.animate-6 {
    -webkit-animation-name: custom-14;
    animation-name: custom-14;
    -webkit-animation-duration: 0.4s;
    animation-duration: 0.4s;
    -webkit-animation-delay: 2s;
    animation-delay: 2s;
}

@-webkit-keyframes custom-14 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes custom-14 {
    0% {
        opacity: 0;
        -webkit-transform: translateY(1.5rem);
        transform: translateY(1.5rem);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

.nice-select:after, .contact-us__social-links li svg, .footer__nav a, .footer__copyright a, .footer__social-links li svg, .highlight-article__read-more a, .why-opus__read-more, .cart__add-on {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
}

    .nice-select:hover:after, .contact-us__social-links li svg:hover, .footer__nav a:hover, .footer__copyright a:hover, .footer__social-links li svg:hover, .highlight-article__read-more a:hover, .why-opus__read-more:hover, .cart__add-on:hover {
        opacity: 0.7;
    }

@-webkit-keyframes arrow-movement {
    0% {
        opacity: 0;
    }

    70% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        bottom: 0;
    }
}

@keyframes arrow-movement {
    0% {
        opacity: 0;
    }

    70% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        bottom: 0;
    }
}

.footer__signup-button, .product__add-to-cart button, .article-sidebar__btn, .contact-us__back-to-home, .contact-us__submit, .mini-cart__link-button, .product-summary__link-button, .page-404__back-to-home, .cart__checkout input[type="button"], .cart__shop-link-button {
    display: inline-block;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    border: 2px solid #555555;
    background-color: #555555;
    width: 100%;
    height: 37px;
    text-align: center;
    text-transform: uppercase;
    line-height: 33px;
    font-family: "Montserrat", Helvetica, Arial, sans-serif;
    font-weight: 800;
    font-size: 1.25rem;
    color: #ffffff;
}

    .footer__signup-button:hover, .product__add-to-cart button:hover, .article-sidebar__btn:hover, .contact-us__back-to-home:hover, .contact-us__submit:hover, .mini-cart__link-button:hover, .product-summary__link-button:hover, .page-404__back-to-home:hover, .cart__checkout input[type="button"]:hover, .cart__shop-link-button:hover {
        -webkit-transition: all 0.3s;
        transition: all 0.3s;
        background-color: transparent;
        color: #555555;
    }

.footer__signup-button {
    border: 2px solid #ffffff;
    font-weight: 700;
    font-size: 0.9375rem;
}

    .footer__signup-button:hover {
        background-color: #ffffff;
    }

.product__add-to-cart button {
    font-size: 0.9375rem;
}

.contact-us__submit, .mix-no-1 .product__add-to-cart button {
    border: 2px solid #498bc9;
    background-color: #498bc9;
    color: #ffffff;
}

    .contact-us__submit:hover, .mix-no-1 .product__add-to-cart button:hover {
        background-color: transparent;
        color: #498bc9;
    }

.mix-no-2 .product__add-to-cart button {
    border: 2px solid #7fd954;
    background-color: #7fd954;
    color: #ffffff;
}

    .mix-no-2 .product__add-to-cart button:hover {
        background-color: transparent;
        color: #7fd954;
    }

.mix-no-3 .product__add-to-cart button {
    border: 2px solid #985fa7;
    background-color: #985fa7;
    color: #ffffff;
}

    .mix-no-3 .product__add-to-cart button:hover {
        background-color: transparent;
        color: #985fa7;
    }

.amendment .product__add-to-cart button {
    border: 2px solid #ff9544;
    background-color: #ff9544;
    color: #ffffff;
}

    .amendment .product__add-to-cart button:hover {
        background-color: transparent;
        color: #ff9544;
    }

/**
 * Foundation for Sites by ZURB
 * Version 6.2.0
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
   * 1. Set default font family to sans-serif.
   * 2. Prevent iOS and IE text size adjust after device orientation change,
   *    without disabling user zoom.
   */
html {
    font-family: sans-serif;
    /* 1 */
    -ms-text-size-adjust: 100%;
    /* 2 */
    -webkit-text-size-adjust: 100%;
    /* 2 */
}

/**
   * Remove default margin.
   */
body {
    margin: 0;
}

/* HTML5 display definitions
     ========================================================================== */
/**
   * Correct `block` display not defined for any HTML5 element in IE 8/9.
   * Correct `block` display not defined for `details` or `summary` in IE 10/11
   * and Firefox.
   * Correct `block` display not defined for `main` in IE 11.
   */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
    display: block;
}

/**
   * 1. Correct `inline-block` display not defined in IE 8/9.
   * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
   */
audio,
canvas,
progress,
video {
    display: inline-block;
    /* 1 */
    vertical-align: baseline;
    /* 2 */
}

    /**
   * Prevent modern browsers from displaying `audio` without controls.
   * Remove excess height in iOS 5 devices.
   */
    audio:not([controls]) {
        display: none;
        height: 0;
    }

/**
   * Address `[hidden]` styling not present in IE 8/9/10.
   * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
   */
[hidden],
template {
    display: none;
}

/* Links
     ========================================================================== */
/**
   * Remove the gray background color from active links in IE 10.
   */
a {
    background-color: transparent;
}

    /**
   * Improve readability of focused elements when they are also in an
   * active/hover state.
   */
    a:active, a.nice-select.open,
    a:hover {
        outline: 0;
    }

/* Text-level semantics
     ========================================================================== */
/**
   * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
   */
abbr[title] {
    border-bottom: 1px dotted;
}

/**
   * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
   */
b,
strong {
    font-weight: 700;
}

/**
   * Address styling not present in Safari and Chrome.
   */
dfn {
    font-style: italic;
}

/**
   * Address variable `h1` font-size and margin within `section` and `article`
   * contexts in Firefox 4+, Safari, and Chrome.
   */
h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

/**
   * Address styling not present in IE 8/9.
   */
mark {
    background: #ff0;
    color: #000;
}

/**
   * Address inconsistent and variable font size in all browsers.
   */
small {
    font-size: 80%;
}

/**
   * Prevent `sub` and `sup` affecting `line-height` in all browsers.
   */
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sup {
    top: -0.5em;
}

sub {
    bottom: -0.25em;
}

/* Embedded content
     ========================================================================== */
/**
   * Remove border when inside `a` element in IE 8/9/10.
   */
img {
    border: 0;
}

/**
   * Correct overflow not hidden in IE 9/10/11.
   */
svg:not(:root) {
    overflow: hidden;
}

/* Grouping content
     ========================================================================== */
/**
   * Address margin not present in IE 8/9 and Safari.
   */
figure {
    margin: 1em 40px;
}

/**
   * Address differences between Firefox and other browsers.
   */
hr {
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
    height: 0;
}

/**
   * Contain overflow in all browsers.
   */
pre {
    overflow: auto;
}

/**
   * Address odd `em`-unit font size rendering in all browsers.
   */
code,
kbd,
pre,
samp {
    font-family: monospace, monospace;
    font-size: 1em;
}

/* Forms
     ========================================================================== */
/**
   * Known limitation: by default, Chrome and Safari on OS X allow very limited
   * styling of `select`, unless a `border` property is set.
   */
/**
   * 1. Correct color not being inherited.
   *    Known issue: affects color of disabled elements.
   * 2. Correct font properties not being inherited.
   * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
   */
button,
input,
optgroup,
select,
textarea {
    color: inherit;
    /* 1 */
    font: inherit;
    /* 2 */
    margin: 0;
    /* 3 */
}

/**
   * Address `overflow` set to `hidden` in IE 8/9/10/11.
   */
button {
    overflow: visible;
}

/**
   * Address inconsistent `text-transform` inheritance for `button` and `select`.
   * All other form control elements do not inherit `text-transform` values.
   * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
   * Correct `select` style inheritance in Firefox.
   */
button,
select {
    text-transform: none;
}

/**
   * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
   *    and `video` controls.
   * 2. Correct inability to style clickable `input` types in iOS.
   * 3. Improve usability and consistency of cursor style between image-type
   *    `input` and others.
   */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: button;
    /* 2 */
    cursor: pointer;
    /* 3 */
}

    /**
   * Re-set default cursor for disabled elements.
   */
    button[disabled],
    html input[disabled] {
        cursor: default;
    }

    /**
   * Remove inner padding and border in Firefox 4+.
   */
    button::-moz-focus-inner,
    input::-moz-focus-inner {
        border: 0;
        padding: 0;
    }

/**
   * Address Firefox 4+ setting `line-height` on `input` using `!important` in
   * the UA stylesheet.
   */
input {
    line-height: normal;
}

    /**
   * It's recommended that you don't attempt to style these elements.
   * Firefox's implementation doesn't respect box-sizing, padding, or width.
   *
   * 1. Address box sizing set to `content-box` in IE 8/9/10.
   * 2. Remove excess padding in IE 8/9/10.
   */
    input[type="checkbox"],
    input[type="radio"] {
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        /* 1 */
        padding: 0;
        /* 2 */
    }

    /**
   * Fix the cursor style for Chrome's increment/decrement buttons. For certain
   * `font-size` values of the `input`, it causes the cursor style of the
   * decrement button to change from `default` to `text`.
   */
    input[type="number"]::-webkit-inner-spin-button,
    input[type="number"]::-webkit-outer-spin-button {
        height: auto;
    }

    /**
   * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
   * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
   */
    input[type="search"] {
        -webkit-appearance: textfield;
        /* 1 */
        -webkit-box-sizing: content-box;
        box-sizing: content-box;
        /* 2 */
    }

        /**
   * Remove inner padding and search cancel button in Safari and Chrome on OS X.
   * Safari (but not Chrome) clips the cancel button when the search input has
   * padding (and `textfield` appearance).
   */
        input[type="search"]::-webkit-search-cancel-button,
        input[type="search"]::-webkit-search-decoration {
            -webkit-appearance: none;
        }

/**
   * Define consistent border, margin, and padding.
   * [NOTE] We don't enable this ruleset in Foundation, because we want the <fieldset> element to have plain styling.
   */
/* fieldset {
    border: 1px solid #c0c0c0;
    margin: 0 2px;
    padding: 0.35em 0.625em 0.75em;
  } */
/**
   * 1. Correct `color` not being inherited in IE 8/9/10/11.
   * 2. Remove padding so people aren't caught out if they zero out fieldsets.
   */
legend {
    border: 0;
    /* 1 */
    padding: 0;
    /* 2 */
}

/**
   * Remove default vertical scrollbar in IE 8/9/10/11.
   */
textarea {
    overflow: auto;
}

/**
   * Don't inherit the `font-weight` (applied by a rule above).
   * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
   */
optgroup {
    font-weight: 700;
}

/* Tables
     ========================================================================== */
/**
   * Remove most spacing between table cells.
   */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

td,
th {
    padding: 0;
}

.foundation-mq {
    font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em";
}

html {
    font-size: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

*,
*:before,
*:after {
    -webkit-box-sizing: inherit;
    box-sizing: inherit;
}

body {
    padding: 0;
    margin: 0;
    font-family: "Montserrat", Helvetica, Arial, sans-serif;
    color: #555555;
    background: #ffffff;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    height: auto;
    -ms-interpolation-mode: bicubic;
    display: inline-block;
    vertical-align: middle;
}

textarea {
    height: auto;
    min-height: 50px;
    border-radius: 0;
}

select {
    width: 100%;
    border-radius: 0;
}

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
    max-width: none !important;
}

button {
    -webkit-appearance: none;
    -moz-appearance: none;
    background: transparent;
    padding: 0;
    border: 0;
    border-radius: 0;
    line-height: 1;
}

.is-visible {
    display: block !important;
}

.is-hidden {
    display: none !important;
}

.row {
 
    margin-left: auto;
    margin-right: auto;
}

    .row:before, .row:after {
        content: ' ';
        display: table;
        -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .row:after {
        clear: both;
    }

    .row.collapse > .column, .row.collapse > .columns {
        padding-left: 0;
        padding-right: 0;
    }

 

        .row .row.collapse {
            margin-left: 0;
            margin-right: 0;
        }

    .row.expanded {
        max-width: none;
    }

        .row.expanded .row {
            margin-left: auto;
            margin-right: auto;
        }

.column, .columns {
    width: 100%;
    float: left;
    padding-left: 0.65625rem;
    padding-right: 0.65625rem;
}

    .column.row.row, .row.row.columns {
        float: none;
    }

.row .column.row.row, .row .row.row.columns {
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
}

.small-1 {
    width: 6.25%;
}

.small-push-1 {
    position: relative;
    left: 6.25%;
}

.small-pull-1 {
    position: relative;
    left: -6.25%;
}

.small-offset-0 {
    margin-left: 0%;
}

.small-2 {
    width: 12.5%;
}

.small-push-2 {
    position: relative;
    left: 12.5%;
}

.small-pull-2 {
    position: relative;
    left: -12.5%;
}

.small-offset-1 {
    margin-left: 6.25%;
}

.small-3 {
    width: 18.75%;
}

.small-push-3 {
    position: relative;
    left: 18.75%;
}

.small-pull-3 {
    position: relative;
    left: -18.75%;
}

.small-offset-2 {
    margin-left: 12.5%;
}

.small-4 {
    width: 25%;
}

.small-push-4 {
    position: relative;
    left: 25%;
}

.small-pull-4 {
    position: relative;
    left: -25%;
}

.small-offset-3 {
    margin-left: 18.75%;
}

.small-5 {
    width: 31.25%;
}

.small-push-5 {
    position: relative;
    left: 31.25%;
}

.small-pull-5 {
    position: relative;
    left: -31.25%;
}

.small-offset-4 {
    margin-left: 25%;
}

.small-6 {
    width: 37.5%;
}

.small-push-6 {
    position: relative;
    left: 37.5%;
}

.small-pull-6 {
    position: relative;
    left: -37.5%;
}

.small-offset-5 {
    margin-left: 31.25%;
}

.small-7 {
    width: 43.75%;
}

.small-push-7 {
    position: relative;
    left: 43.75%;
}

.small-pull-7 {
    position: relative;
    left: -43.75%;
}

.small-offset-6 {
    margin-left: 37.5%;
}

.small-8 {
    width: 50%;
}

.small-push-8 {
    position: relative;
    left: 50%;
}

.small-pull-8 {
    position: relative;
    left: -50%;
}

.small-offset-7 {
    margin-left: 43.75%;
}

.small-9 {
    width: 56.25%;
}

.small-push-9 {
    position: relative;
    left: 56.25%;
}

.small-pull-9 {
    position: relative;
    left: -56.25%;
}

.small-offset-8 {
    margin-left: 50%;
}

.small-10 {
    width: 62.5%;
}

.small-push-10 {
    position: relative;
    left: 62.5%;
}

.small-pull-10 {
    position: relative;
    left: -62.5%;
}

.small-offset-9 {
    margin-left: 56.25%;
}

.small-11 {
    width: 68.75%;
}

.small-push-11 {
    position: relative;
    left: 68.75%;
}

.small-pull-11 {
    position: relative;
    left: -68.75%;
}

.small-offset-10 {
    margin-left: 62.5%;
}

.small-12 {
    width: 75%;
}

.small-push-12 {
    position: relative;
    left: 75%;
}

.small-pull-12 {
    position: relative;
    left: -75%;
}

.small-offset-11 {
    margin-left: 68.75%;
}

.small-13 {
    width: 81.25%;
}

.small-push-13 {
    position: relative;
    left: 81.25%;
}

.small-pull-13 {
    position: relative;
    left: -81.25%;
}

.small-offset-12 {
    margin-left: 75%;
}

.small-14 {
    width: 87.5%;
}

.small-push-14 {
    position: relative;
    left: 87.5%;
}

.small-pull-14 {
    position: relative;
    left: -87.5%;
}

.small-offset-13 {
    margin-left: 81.25%;
}

.small-15 {
    width: 93.75%;
}

.small-push-15 {
    position: relative;
    left: 93.75%;
}

.small-pull-15 {
    position: relative;
    left: -93.75%;
}

.small-offset-14 {
    margin-left: 87.5%;
}

.small-16 {
    width: 100%;
}

.small-offset-15 {
    margin-left: 93.75%;
}

.small-up-1 > .column, .small-up-1 > .columns {
    width: 100%;
    float: left;
}

    .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
        clear: none;
    }

    .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
        clear: both;
    }

    .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
        float: left;
    }

.small-up-2 > .column, .small-up-2 > .columns {
    width: 50%;
    float: left;
}

    .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
        clear: none;
    }

    .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
        clear: both;
    }

    .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
        float: left;
    }

.small-up-3 > .column, .small-up-3 > .columns {
    width: 33.33333%;
    float: left;
}

    .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
        clear: none;
    }

    .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
        clear: both;
    }

    .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
        float: left;
    }

.small-up-4 > .column, .small-up-4 > .columns {
    width: 25%;
    float: left;
}

    .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
        clear: none;
    }

    .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
        clear: both;
    }

    .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
        float: left;
    }

.small-up-5 > .column, .small-up-5 > .columns {
    width: 20%;
    float: left;
}

    .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
        clear: none;
    }

    .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
        clear: both;
    }

    .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
        float: left;
    }

.small-up-6 > .column, .small-up-6 > .columns {
    width: 16.66667%;
    float: left;
}

    .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
        clear: none;
    }

    .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
        clear: both;
    }

    .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
        float: left;
    }

.small-collapse > .column, .small-collapse > .columns {
    padding-left: 0;
    padding-right: 0;
}

.small-collapse .row {
    margin-left: 0;
    margin-right: 0;
}

.small-uncollapse > .column, .small-uncollapse > .columns {
    padding-left: 0.65625rem;
    padding-right: 0.65625rem;
}

.small-centered {
    float: none;
    margin-left: auto;
    margin-right: auto;
}

.small-uncentered,
.small-push-0,
.small-pull-0 {
    position: static;
    margin-left: 0;
    margin-right: 0;
    float: left;
}

@media screen and (min-width: 40em) {
    .medium-1 {
        width: 6.25%;
    }

    .medium-push-1 {
        position: relative;
        left: 6.25%;
    }

    .medium-pull-1 {
        position: relative;
        left: -6.25%;
    }

    .medium-offset-0 {
        margin-left: 0%;
    }

    .medium-2 {
        width: 12.5%;
    }

    .medium-push-2 {
        position: relative;
        left: 12.5%;
    }

    .medium-pull-2 {
        position: relative;
        left: -12.5%;
    }

    .medium-offset-1 {
        margin-left: 6.25%;
    }

    .medium-3 {
        width: 18.75%;
    }

    .medium-push-3 {
        position: relative;
        left: 18.75%;
    }

    .medium-pull-3 {
        position: relative;
        left: -18.75%;
    }

    .medium-offset-2 {
        margin-left: 12.5%;
    }

    .medium-4 {
        width: 25%;
    }

    .medium-push-4 {
        position: relative;
        left: 25%;
    }

    .medium-pull-4 {
        position: relative;
        left: -25%;
    }

    .medium-offset-3 {
        margin-left: 18.75%;
    }

    .medium-5 {
        width: 31.25%;
    }

    .medium-push-5 {
        position: relative;
        left: 31.25%;
    }

    .medium-pull-5 {
        position: relative;
        left: -31.25%;
    }

    .medium-offset-4 {
        margin-left: 25%;
    }

    .medium-6 {
        width: 37.5%;
    }

    .medium-push-6 {
        position: relative;
        left: 37.5%;
    }

    .medium-pull-6 {
        position: relative;
        left: -37.5%;
    }

    .medium-offset-5 {
        margin-left: 31.25%;
    }

    .medium-7 {
        width: 43.75%;
    }

    .medium-push-7 {
        position: relative;
        left: 43.75%;
    }

    .medium-pull-7 {
        position: relative;
        left: -43.75%;
    }

    .medium-offset-6 {
        margin-left: 37.5%;
    }

    .medium-8 {
        width: 50%;
    }

    .medium-push-8 {
        position: relative;
        left: 50%;
    }

    .medium-pull-8 {
        position: relative;
        left: -50%;
    }

    .medium-offset-7 {
        margin-left: 43.75%;
    }

    .medium-9 {
        width: 56.25%;
    }

    .medium-push-9 {
        position: relative;
        left: 56.25%;
    }

    .medium-pull-9 {
        position: relative;
        left: -56.25%;
    }

    .medium-offset-8 {
        margin-left: 50%;
    }

    .medium-10 {
        width: 62.5%;
    }

    .medium-push-10 {
        position: relative;
        left: 62.5%;
    }

    .medium-pull-10 {
        position: relative;
        left: -62.5%;
    }

    .medium-offset-9 {
        margin-left: 56.25%;
    }

    .medium-11 {
        width: 68.75%;
    }

    .medium-push-11 {
        position: relative;
        left: 68.75%;
    }

    .medium-pull-11 {
        position: relative;
        left: -68.75%;
    }

    .medium-offset-10 {
        margin-left: 62.5%;
    }

    .medium-12 {
        width: 75%;
    }

    .medium-push-12 {
        position: relative;
        left: 75%;
    }

    .medium-pull-12 {
        position: relative;
        left: -75%;
    }

    .medium-offset-11 {
        margin-left: 68.75%;
    }

    .medium-13 {
        width: 81.25%;
    }

    .medium-push-13 {
        position: relative;
        left: 81.25%;
    }

    .medium-pull-13 {
        position: relative;
        left: -81.25%;
    }

    .medium-offset-12 {
        margin-left: 75%;
    }

    .medium-14 {
        width: 87.5%;
    }

    .medium-push-14 {
        position: relative;
        left: 87.5%;
    }

    .medium-pull-14 {
        position: relative;
        left: -87.5%;
    }

    .medium-offset-13 {
        margin-left: 81.25%;
    }

    .medium-15 {
        width: 93.75%;
    }

    .medium-push-15 {
        position: relative;
        left: 93.75%;
    }

    .medium-pull-15 {
        position: relative;
        left: -93.75%;
    }

    .medium-offset-14 {
        margin-left: 87.5%;
    }

    .medium-16 {
        width: 100%;
    }

    .medium-offset-15 {
        margin-left: 93.75%;
    }

    .medium-up-1 > .column, .medium-up-1 > .columns {
        width: 100%;
        float: left;
    }

        .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
            clear: both;
        }

        .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
            float: left;
        }

    .medium-up-2 > .column, .medium-up-2 > .columns {
        width: 50%;
        float: left;
    }

        .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
            clear: both;
        }

        .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
            float: left;
        }

    .medium-up-3 > .column, .medium-up-3 > .columns {
        width: 33.33333%;
        float: left;
    }

        .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
            clear: both;
        }

        .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
            float: left;
        }

    .medium-up-4 > .column, .medium-up-4 > .columns {
        width: 25%;
        float: left;
    }

        .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
            clear: both;
        }

        .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
            float: left;
        }

    .medium-up-5 > .column, .medium-up-5 > .columns {
        width: 20%;
        float: left;
    }

        .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
            clear: both;
        }

        .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
            float: left;
        }

    .medium-up-6 > .column, .medium-up-6 > .columns {
        width: 16.66667%;
        float: left;
    }

        .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
            clear: both;
        }

        .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
            float: left;
        }

    .medium-collapse > .column, .medium-collapse > .columns {
        padding-left: 0;
        padding-right: 0;
    }

    .medium-collapse .row {
        margin-left: 0;
        margin-right: 0;
    }

    .medium-uncollapse > .column, .medium-uncollapse > .columns {
        padding-left: 0.65625rem;
        padding-right: 0.65625rem;
    }

    .medium-centered {
        float: none;
        margin-left: auto;
        margin-right: auto;
    }

    .medium-uncentered,
    .medium-push-0,
    .medium-pull-0 {
        position: static;
        margin-left: 0;
        margin-right: 0;
        float: left;
    }
}

@media screen and (min-width: 64em) {
    .large-1 {
        width: 6.25%;
    }

    .large-push-1 {
        position: relative;
        left: 6.25%;
    }

    .large-pull-1 {
        position: relative;
        left: -6.25%;
    }

    .large-offset-0 {
        margin-left: 0%;
    }

    .large-2 {
        width: 12.5%;
    }

    .large-push-2 {
        position: relative;
        left: 12.5%;
    }

    .large-pull-2 {
        position: relative;
        left: -12.5%;
    }

    .large-offset-1 {
        margin-left: 6.25%;
    }

    .large-3 {
        width: 18.75%;
    }

    .large-push-3 {
        position: relative;
        left: 18.75%;
    }

    .large-pull-3 {
        position: relative;
        left: -18.75%;
    }

    .large-offset-2 {
        margin-left: 12.5%;
    }

    .large-4 {
        width: 25%;
    }

    .large-push-4 {
        position: relative;
        left: 25%;
    }

    .large-pull-4 {
        position: relative;
        left: -25%;
    }

    .large-offset-3 {
        margin-left: 18.75%;
    }

    .large-5 {
        width: 31.25%;
    }

    .large-push-5 {
        position: relative;
        left: 31.25%;
    }

    .large-pull-5 {
        position: relative;
        left: -31.25%;
    }

    .large-offset-4 {
        margin-left: 25%;
    }

    .large-6 {
        width: 37.5%;
    }

    .large-push-6 {
        position: relative;
        left: 37.5%;
    }

    .large-pull-6 {
        position: relative;
        left: -37.5%;
    }

    .large-offset-5 {
        margin-left: 31.25%;
    }

    .large-7 {
        width: 43.75%;
    }

    .large-push-7 {
        position: relative;
        left: 43.75%;
    }

    .large-pull-7 {
        position: relative;
        left: -43.75%;
    }

    .large-offset-6 {
        margin-left: 37.5%;
    }

    .large-8 {
        width: 50%;
    }

    .large-push-8 {
        position: relative;
        left: 50%;
    }

    .large-pull-8 {
        position: relative;
        left: -50%;
    }

    .large-offset-7 {
        margin-left: 43.75%;
    }

    .large-9 {
        width: 56.25%;
    }

    .large-push-9 {
        position: relative;
        left: 56.25%;
    }

    .large-pull-9 {
        position: relative;
        left: -56.25%;
    }

    .large-offset-8 {
        margin-left: 50%;
    }

    .large-10 {
        width: 62.5%;
    }

    .large-push-10 {
        position: relative;
        left: 62.5%;
    }

    .large-pull-10 {
        position: relative;
        left: -62.5%;
    }

    .large-offset-9 {
        margin-left: 56.25%;
    }

    .large-11 {
        width: 68.75%;
    }

    .large-push-11 {
        position: relative;
        left: 68.75%;
    }

    .large-pull-11 {
        position: relative;
        left: -68.75%;
    }

    .large-offset-10 {
        margin-left: 62.5%;
    }

    .large-12 {
        width: 75%;
    }

    .large-push-12 {
        position: relative;
        left: 75%;
    }

    .large-pull-12 {
        position: relative;
        left: -75%;
    }

    .large-offset-11 {
        margin-left: 68.75%;
    }

    .large-13 {
        width: 81.25%;
    }

    .large-push-13 {
        position: relative;
        left: 81.25%;
    }

    .large-pull-13 {
        position: relative;
        left: -81.25%;
    }

    .large-offset-12 {
        margin-left: 75%;
    }

    .large-14 {
        width: 87.5%;
    }

    .large-push-14 {
        position: relative;
        left: 87.5%;
    }

    .large-pull-14 {
        position: relative;
        left: -87.5%;
    }

    .large-offset-13 {
        margin-left: 81.25%;
    }

    .large-15 {
        width: 93.75%;
    }

    .large-push-15 {
        position: relative;
        left: 93.75%;
    }

    .large-pull-15 {
        position: relative;
        left: -93.75%;
    }

    .large-offset-14 {
        margin-left: 87.5%;
    }

    .large-16 {
        width: 100%;
    }

    .large-offset-15 {
        margin-left: 93.75%;
    }

    .large-up-1 > .column, .large-up-1 > .columns {
        width: 100%;
        float: left;
    }

        .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
            clear: both;
        }

        .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
            float: left;
        }

    .large-up-2 > .column, .large-up-2 > .columns {
        width: 50%;
        float: left;
    }

        .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
            clear: both;
        }

        .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
            float: left;
        }

    .large-up-3 > .column, .large-up-3 > .columns {
        width: 33.33333%;
        float: left;
    }

        .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
            clear: both;
        }

        .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
            float: left;
        }

    .large-up-4 > .column, .large-up-4 > .columns {
        width: 25%;
        float: left;
    }

        .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
            clear: both;
        }

        .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
            float: left;
        }

    .large-up-5 > .column, .large-up-5 > .columns {
        width: 20%;
        float: left;
    }

        .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
            clear: both;
        }

        .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
            float: left;
        }

    .large-up-6 > .column, .large-up-6 > .columns {
        width: 16.66667%;
        float: left;
    }

        .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
            clear: none;
        }

        .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
            clear: both;
        }

        .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
            float: left;
        }

    .large-collapse > .column, .large-collapse > .columns {
        padding-left: 0;
        padding-right: 0;
    }

    .large-collapse .row {
        margin-left: 0;
        margin-right: 0;
    }

    .large-uncollapse > .column, .large-uncollapse > .columns {
        padding-left: 0.65625rem;
        padding-right: 0.65625rem;
    }

    .large-centered {
        float: none;
        margin-left: auto;
        margin-right: auto;
    }

    .large-uncentered,
    .large-push-0,
    .large-pull-0 {
        position: static;
        margin-left: 0;
        margin-right: 0;
        float: left;
    }
}

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
    margin: 0;
    padding: 0;
}

p {
    font-size: inherit;
    line-height: 1.5;
    margin-bottom: 1rem;
    text-rendering: optimizeLegibility;
}

em,
i {
    font-style: italic;
    line-height: inherit;
}

strong,
b {
    font-weight: 700;
    line-height: inherit;
}

small {
    font-size: 80%;
    line-height: inherit;
}


h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Montserrat", Helvetica, Arial, sans-serif;
    font-weight: 400;
    font-style: normal;
    color: inherit;
    text-rendering: optimizeLegibility;
    margin-top: 0;
    margin-bottom: 0;
    line-height: 1.1;
}

    h1 small,
    h2 small,
    h3 small,
    h4 small,
    h5 small,
    h6 small {
        color: #cacaca;
        line-height: 0;
    }

h1 {
    font-size: 1.875rem;
}

h2 {
    font-size: 1.5625rem;
}

h3 {
    font-size: 1.375rem;
}

h4 {
    font-size: 1.25rem;
}

@media screen and (min-width: 40em) {
    h1 {
        font-size: 2.375rem;
    }

    h2 {
        font-size: 1.875rem;
    }

    h3 {
        font-size: 1.6875rem;
    }

    h4 {
        font-size: 1.25rem;
    }
}

a {
    color: #9F2228; 
    text-decoration: none;
    line-height: inherit;
    cursor: pointer;
}

    a:hover, a:focus {
        color: #3678b6;
    }

    a img {
        border: 0;
    }

hr {
    max-width: 75rem;
    height: 0;
    border-right: 0;
    border-top: 0;
    border-bottom: 1px solid #cacaca;
    border-left: 0;
    margin: 1.25rem auto;
    clear: both;
}

ul,
ol,
dl {
    line-height: 1.5;
    margin-bottom: 1rem;
    list-style-position: outside;
}

li {
    font-size: inherit;
}

ul {
    list-style-type: disc;
    margin-left: 1.25rem;
}

ol {
    margin-left: 1.25rem;
}

    ul ul, ol ul, ul ol, ol ol {
        margin-left: 1.25rem;
        margin-bottom: 0;
    }

dl {
    margin-bottom: 1rem;
}

    dl dt {
        margin-bottom: 0.3rem;
        font-weight: 700;
    }

blockquote {
    margin: 0 0 1rem;
    padding: 0.5625rem 1.25rem 0 1.1875rem;
    border-left: 1px solid #cacaca;
}

    blockquote, blockquote p {
        line-height: 1.5;
        color: #8a8a8a;
    }

cite {
    display: block;
    font-size: 0.8125rem;
    color: #8a8a8a;
}

    cite:before {
        content: '\2014 \0020';
    }

abbr {
    color: #555555;
    cursor: help;
    border-bottom: 1px dotted #555555;
}

code {
    font-family: Consolas, "Liberation Mono", Courier, monospace;
    font-weight: 400;
    color: #555555;
    background-color: #e6e6e6;
    border: 1px solid #cacaca;
    padding: 0.125rem 0.3125rem 0.0625rem;
}

kbd {
    padding: 0.125rem 0.25rem 0;
    margin: 0;
    background-color: #e6e6e6;
    color: #555555;
    font-family: Consolas, "Liberation Mono", Courier, monospace;
}

.subheader {
    margin-top: 0.2rem;
    margin-bottom: 0.5rem;
    font-weight: 400;
    line-height: 1.4;
    color: #8a8a8a;
}

.lead {
    font-size: 125%;
    line-height: 1.6;
}

.stat {
    font-size: 2.5rem;
    line-height: 1;
}

p + .stat {
    margin-top: -1rem;
}

.no-bullet {
    margin-left: 0;
    list-style: none;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

.text-center {
    text-align: center;
}

.text-justify {
    text-align: justify;
}

@media screen and (min-width: 40em) {
    .medium-text-left {
        text-align: left;
    }

    .medium-text-right {
        text-align: right;
    }

    .medium-text-center {
        text-align: center;
    }

    .medium-text-justify {
        text-align: justify;
    }
}

@media screen and (min-width: 64em) {
    .large-text-left {
        text-align: left;
    }

    .large-text-right {
        text-align: right;
    }

    .large-text-center {
        text-align: center;
    }

    .large-text-justify {
        text-align: justify;
    }
}

.show-for-print {
    display: none !important;
}

@media print {
    * {
        background: transparent !important;
        color: black !important;
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    .show-for-print {
        display: block !important;
    }

    .hide-for-print {
        display: none !important;
    }

    table.show-for-print {
        display: table !important;
    }

    thead.show-for-print {
        display: table-header-group !important;
    }

    tbody.show-for-print {
        display: table-row-group !important;
    }

    tr.show-for-print {
        display: table-row !important;
    }

    td.show-for-print {
        display: table-cell !important;
    }

    th.show-for-print {
        display: table-cell !important;
    }

    a,
    a:visited {
        text-decoration: underline;
    }

        a[href]:after {
            content: " (" attr(href) ")";
        }

        .ir a:after,
        a[href^='javascript:']:after,
        a[href^='#']:after {
            content: '';
        }

    abbr[title]:after {
        content: " (" attr(title) ")";
    }

    pre,
    blockquote {
        border: 1px solid #8a8a8a;
        page-break-inside: avoid;
    }

    thead {
        display: table-header-group;
    }

    tr,
    img {
        page-break-inside: avoid;
    }

    img {
        max-width: 100% !important;
    }

    @page {
        margin: 0.5cm;
    }

    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }
}

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
    display: block;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    height: 2.4375rem;
    padding: 0.5rem;
    border: 1px solid #cacaca;
    margin: 0 0 1rem;
    font-family: inherit;
    font-size: 1rem;
    color: #8a8a8a;
    background-color: #ffffff;
    -webkit-box-shadow: inset 0 1px 2px rgba(85, 85, 85, 0.1);
    box-shadow: inset 0 1px 2px rgba(85, 85, 85, 0.1);
    border-radius: 0;
    -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    -webkit-appearance: none;
    -moz-appearance: none;
}

    [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
    textarea:focus {
        border: 1px solid #8a8a8a;
        background-color: #ffffff;
        outline: none;
        -webkit-box-shadow: 0 0 5px #cacaca;
        box-shadow: 0 0 5px #cacaca;
        -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
        transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
        transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
        transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    }

textarea {
    max-width: 100%;
}

    textarea[rows] {
        height: auto;
    }

    input::-webkit-input-placeholder,
    textarea::-webkit-input-placeholder {
        color: #cacaca;
    }

    input::-moz-placeholder,
    textarea::-moz-placeholder {
        color: #cacaca;
    }

    input:-ms-input-placeholder,
    textarea:-ms-input-placeholder {
        color: #cacaca;
    }

    input::placeholder,
    textarea::placeholder {
        color: #cacaca;
    }

    input:disabled, input[readonly],
    textarea:disabled,
    textarea[readonly] {
        background-color: #e6e6e6;
        cursor: default;
    }

[type='submit'],
[type='button'] {
    border-radius: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
}

input[type='search'] {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

[type='file'],
[type='checkbox'],
[type='radio'] {
    margin: 0 0 1rem;
}

    [type='checkbox'] + label,
    [type='radio'] + label {
        display: inline-block;
        margin-left: 0.5rem;
        margin-right: 1rem;
        margin-bottom: 0;
        vertical-align: baseline;
    }

label > [type='checkbox'],
label > [type='radio'] {
    margin-right: 0.5rem;
}

[type='file'] {
    width: 100%;
}

label {
    display: block;
    margin: 0;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.8;
    color: #555555;
}

    label.middle {
        margin: 0 0 1rem;
        padding: 0.5625rem 0;
    }

.help-text {
    margin-top: -0.5rem;
    font-size: 0.8125rem;
    font-style: italic;
    color: #333;
}

.input-group {
    display: table;
    width: 100%;
    margin-bottom: 1rem;
}

    .input-group > :first-child {
        border-radius: 0 0 0 0;
    }

    .input-group > :last-child > * {
        border-radius: 0 0 0 0;
    }

.input-group-label, .input-group-field, .input-group-button {
    margin: 0;
    display: table-cell;
    vertical-align: middle;
}

.input-group-label {
    text-align: center;
    padding: 0 1rem;
    background: #e6e6e6;
    color: #555555;
    border: 1px solid #cacaca;
    white-space: nowrap;
    width: 1%;
    height: 100%;
}

    .input-group-label:first-child {
        border-right: 0;
    }

    .input-group-label:last-child {
        border-left: 0;
    }

.input-group-field {
    border-radius: 0;
    height: 2.5rem;
}

.input-group-button {
    padding-top: 0;
    padding-bottom: 0;
    text-align: center;
    height: 100%;
    width: 1%;
}

    .input-group-button a,
    .input-group-button input,
    .input-group-button button {
        margin: 0;
    }

.input-group .input-group-button {
    display: table-cell;
}

fieldset {
    border: 0;
    padding: 0;
    margin: 0;
}

legend {
    margin-bottom: 0.5rem;
    max-width: 100%;
}

.fieldset {
    border: 1px solid #cacaca;
    padding: 1.25rem;
    margin: 1.125rem 0;
    height: 400px;
    overflow-y: scroll;
}

    .fieldset legend {
        background: #ffffff;
        padding: 0 0.1875rem;
        margin: 0;
        margin-left: -0.1875rem;
    }

select {
    height: 2.4375rem;
    padding: 0.5rem;
    border: 1px solid #cacaca;
    margin: 0 0 1rem;
    font-size: 1rem;
    font-family: inherit;
    line-height: normal;
    color: #8a8a8a;
    background-color: #fafafa;
    border-radius: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%2851, 51, 51%29"></polygon></svg>');
    background-size: 9px 6px;
    background-position: right center;
    background-origin: content-box;
    background-repeat: no-repeat;
}

@media screen and (min-width: 0\0) {
    select {
        background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
    }
}

select:disabled {
    background-color: #e6e6e6;
    cursor: default;
}

select::-ms-expand {
    display: none;
}

select[multiple] {
    height: auto;
}

.is-invalid-input:not(:focus) {
    background-color: #ec5840;
    background-color: rgba(236, 88, 64, 0.1);
    border-color: #ec5840;
}

.is-invalid-label {
    color: #ec5840;
}

.form-error {
    display: none;
    margin-top: -0.5rem;
    margin-bottom: 1rem;
    font-size: 0.75rem;
    font-weight: 700;
    color: #ec5840;
}

    .form-error.is-visible {
        display: block;
    }

.button {
    display: inline-block;
    text-align: center;
    line-height: 1;
    cursor: pointer;
    -webkit-appearance: none;
    -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
    transition: background-color 0.25s ease-out, color 0.25s ease-out;
    vertical-align: middle;
    border: 1px solid transparent;
    border-radius: 0;
    padding: 0.85em 1em;
    margin: 0 1rem 1rem 0;
    font-size: 0.9rem;
    background-color: #498bc9;
    color: #ffffff;
}

[data-whatinput='mouse'] .button {
    outline: 0;
}

.button:hover, .button:focus {
    background-color: #ffffff;
    color: #ffffff;
}

.button.tiny {
    font-size: 0.6rem;
}

.button.small {
    font-size: 0.75rem;
}

.button.large {
    font-size: 1.25rem;
}

.button.expanded {
    display: block;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}

.button.primary {
    background-color: #2199e8;
    color: #ffffff;
}

    .button.primary:hover, .button.primary:focus {
        background-color: #147cc0;
        color: #ffffff;
    }

.button.secondary {
    background-color: #777;
    color: #ffffff;
}

    .button.secondary:hover, .button.secondary:focus {
        background-color: #5f5f5f;
        color: #ffffff;
    }

.button.success {
    background-color: #3adb76;
    color: #ffffff;
}

    .button.success:hover, .button.success:focus {
        background-color: #22bb5b;
        color: #ffffff;
    }

.button.warning {
    background-color: #ffae00;
    color: #ffffff;
}

    .button.warning:hover, .button.warning:focus {
        background-color: #cc8b00;
        color: #ffffff;
    }

.button.alert {
    background-color: #ec5840;
    color: #ffffff;
}

    .button.alert:hover, .button.alert:focus {
        background-color: #da3116;
        color: #ffffff;
    }

.button.hollow {
    border: 1px solid #2199e8;
    color: #2199e8;
}

    .button.hollow, .button.hollow:hover, .button.hollow:focus {
        background-color: transparent;
    }

        .button.hollow:hover, .button.hollow:focus {
            border-color: #0c4d78;
            color: #0c4d78;
        }

        .button.hollow.primary {
            border: 1px solid #2199e8;
            color: #2199e8;
        }

            .button.hollow.primary:hover, .button.hollow.primary:focus {
                border-color: #0c4d78;
                color: #0c4d78;
            }

        .button.hollow.secondary {
            border: 1px solid #777;
            color: #777;
        }

            .button.hollow.secondary:hover, .button.hollow.secondary:focus {
                border-color: #3c3c3c;
                color: #3c3c3c;
            }

        .button.hollow.success {
            border: 1px solid #3adb76;
            color: #3adb76;
        }

            .button.hollow.success:hover, .button.hollow.success:focus {
                border-color: #157539;
                color: #157539;
            }

        .button.hollow.warning {
            border: 1px solid #ffae00;
            color: #ffae00;
        }

            .button.hollow.warning:hover, .button.hollow.warning:focus {
                border-color: #805700;
                color: #805700;
            }

        .button.hollow.alert {
            border: 1px solid #ec5840;
            color: #ec5840;
        }

            .button.hollow.alert:hover, .button.hollow.alert:focus {
                border-color: #881f0e;
                color: #881f0e;
            }

.button.disabled, .button[disabled] {
    opacity: 0.25;
    cursor: not-allowed;
    pointer-events: none;
}

.button.dropdown:after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    border-color: #ffffff transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    position: relative;
    top: 0.4em;
    float: right;
    margin-left: 1em;
    display: inline-block;
}

.button.arrow-only:after {
    margin-left: 0;
    float: none;
    top: -0.1em;
}

.accordion {
    list-style-type: none;
    background: #ffffff;
    border: 1px solid #e6e6e6;
    border-bottom: 0;
    border-radius: 0;
    margin-left: 0;
}

.accordion-title {
    display: block;
    padding: 1.25rem 1rem;
    line-height: 1;
    font-size: 0.75rem;
    color: #498bc9;
    position: relative;
    border-bottom: 1px solid #e6e6e6;
}

    .accordion-title:hover, .accordion-title:focus {
        background-color: #e6e6e6;
    }

    .accordion-title:before {
        content: '+';
        position: absolute;
        right: 1rem;
        top: 50%;
        margin-top: -0.5rem;
    }

.is-active > .accordion-title:before {
    content: '–';
}

.accordion-content {
    padding: 1rem;
    display: none;
    border-bottom: 1px solid #e6e6e6;
    background-color: #ffffff;
}

.is-accordion-submenu-parent > a {
    position: relative;
}

    .is-accordion-submenu-parent > a:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 6px;
        border-color: #2199e8 transparent transparent;
        border-top-style: solid;
        border-bottom-width: 0;
        position: absolute;
        top: 50%;
        margin-top: -4px;
        right: 1rem;
    }

.is-accordion-submenu-parent[aria-expanded='true'] > a:after {
    -webkit-transform-origin: 50% 50%;
    -ms-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scaleY(-1);
    -ms-transform: scaleY(-1);
    transform: scaleY(-1);
}

.badge {
    display: inline-block;
    padding: 0.3em;
    min-width: 2.1em;
    font-size: 0.6rem;
    text-align: center;
    border-radius: 50%;
    background: #498bc9;
    color: #ffffff;
}

    .badge.secondary {
        background: #777;
        color: #ffffff;
    }

    .badge.success {
        background: #3adb76;
        color: #ffffff;
    }

    .badge.warning {
        background: #ffae00;
        color: #ffffff;
    }

    .badge.alert {
        background: #ec5840;
        color: #ffffff;
    }

.breadcrumbs {
    list-style: none;
    margin: 0 0 1rem 0;
}

    .breadcrumbs:before, .breadcrumbs:after {
        content: ' ';
        display: table;
        -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .breadcrumbs:after {
        clear: both;
    }

    .breadcrumbs li {
        float: left;
        color: #555555;
        font-size: 0.6875rem;
        cursor: default;
        text-transform: uppercase;
    }

        .breadcrumbs li:not(:last-child):after {
            color: #cacaca;
            content: "/";
            margin: 0 0.75rem;
            position: relative;
            top: 1px;
            opacity: 1;
        }

    .breadcrumbs a {
        color: #498bc9;
    }

        .breadcrumbs a:hover {
            text-decoration: underline;
        }

    .breadcrumbs .disabled {
        color: #cacaca;
    }

.button-group {
    margin-bottom: 1rem;
    font-size: 0;
}

    .button-group:before, .button-group:after {
        content: ' ';
        display: table;
        -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .button-group:after {
        clear: both;
    }

    .button-group .button {
        margin: 0;
        : 0.9rem;
        float: left;
    }

        .button-group .button:not(:last-child) {
            border-right: 1px solid #ffffff;
        }

    .button-group.tiny .button {
        font-size: 0.6rem;
    }

    .button-group.small .button {
        font-size: 0.75rem;
    }

    .button-group.large .button {
        font-size: 1.25rem;
    }

    .button-group.expanded {
        margin-right: -1px;
    }

        .button-group.expanded:before, .button-group.expanded:after {
            display: none;
        }

        .button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {
            display: inline-block;
            width: -webkit-calc(50% - 1px);
            width: calc(50% - 1px);
            margin-right: 1px;
        }

        .button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {
            display: inline-block;
            width: -webkit-calc(33.33333% - 1px);
            width: calc(33.33333% - 1px);
            margin-right: 1px;
        }

        .button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {
            display: inline-block;
            width: -webkit-calc(25% - 1px);
            width: calc(25% - 1px);
            margin-right: 1px;
        }

        .button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {
            display: inline-block;
            width: -webkit-calc(20% - 1px);
            width: calc(20% - 1px);
            margin-right: 1px;
        }

        .button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {
            display: inline-block;
            width: -webkit-calc(16.66667% - 1px);
            width: calc(16.66667% - 1px);
            margin-right: 1px;
        }

    .button-group.primary .button {
        background-color: #2199e8;
        color: #ffffff;
    }

        .button-group.primary .button:hover, .button-group.primary .button:focus {
            background-color: #147cc0;
            color: #ffffff;
        }

    .button-group.secondary .button {
        background-color: #777;
        color: #ffffff;
    }

        .button-group.secondary .button:hover, .button-group.secondary .button:focus {
            background-color: #5f5f5f;
            color: #ffffff;
        }

    .button-group.success .button {
        background-color: #3adb76;
        color: #ffffff;
    }

        .button-group.success .button:hover, .button-group.success .button:focus {
            background-color: #22bb5b;
            color: #ffffff;
        }

    .button-group.warning .button {
        background-color: #ffae00;
        color: #ffffff;
    }

        .button-group.warning .button:hover, .button-group.warning .button:focus {
            background-color: #cc8b00;
            color: #ffffff;
        }

    .button-group.alert .button {
        background-color: #ec5840;
        color: #ffffff;
    }

        .button-group.alert .button:hover, .button-group.alert .button:focus {
            background-color: #da3116;
            color: #ffffff;
        }

    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
        width: 100%;
    }

        .button-group.stacked .button:not(:last-child), .button-group.stacked-for-small .button:not(:last-child), .button-group.stacked-for-medium .button:not(:last-child) {
            margin-right: 0;
        }

@media screen and (min-width: 40em) {
    .button-group.stacked-for-small .button {
        width: auto;
    }

        .button-group.stacked-for-small .button:not(:last-child) {
            margin-right: 1px;
        }
}

@media screen and (min-width: 64em) {
    .button-group.stacked-for-medium .button {
        width: auto;
    }

        .button-group.stacked-for-medium .button:not(:last-child) {
            margin-right: 1px;
        }
}

@media screen and (max-width: 39.9375em) {
    .button-group.stacked-for-small.expanded {
        display: block;
    }

        .button-group.stacked-for-small.expanded .button {
            display: block;
            margin-right: 0;
        }
}

.callout {
    margin: 0 0 1rem 0;
    padding: 1rem;
    border: 1px solid #555555;
    border: 1px solid rgba(85, 85, 85, 0.25);
    border-radius: 0;
    position: relative;
    color: #555555;
    background-color: white;
}

    .callout > :first-child {
        margin-top: 0;
    }

    .callout > :last-child {
        margin-bottom: 0;
    }

    .callout.primary {
        background-color: #def0fc;
    }

    .callout.secondary {
        background-color: #ebebeb;
    }

    .callout.success {
        background-color: #e1faea;
    }

    .callout.warning {
        background-color: #fff3d9;
    }

    .callout.alert {
        background-color: #fce6e2;
    }

    .callout.small {
        padding-top: 0.5rem;
        padding-right: 0.5rem;
        padding-bottom: 0.5rem;
        padding-left: 0.5rem;
    }

    .callout.large {
        padding-top: 3rem;
        padding-right: 3rem;
        padding-bottom: 3rem;
        padding-left: 3rem;
    }

.close-button {
    position: absolute;
    color: #8a8a8a;
    right: 1rem;
    top: 0.5rem;
    font-size: 2em;
    line-height: 1;
    cursor: pointer;
}

[data-whatinput='mouse'] .close-button {
    outline: 0;
}

.close-button:hover, .close-button:focus {
    color: #555555;
}

.menu {
    margin: 0;
    list-style-type: none;
}

    .menu > li {
        display: table-cell;
        vertical-align: middle;
    }

[data-whatinput='mouse'] .menu > li {
    outline: 0;
}

.menu > li > a {
    display: block;
    padding: 0.7rem 1rem;
    line-height: 1;
}

.menu input,
.menu a,
.menu button {
    margin-bottom: 0;
}

.menu > li > a img,
.menu > li > a i {
    vertical-align: middle;
}

    .menu > li > a i + span,
    .menu > li > a img + span {
        vertical-align: middle;
    }

.menu > li > a img,
.menu > li > a i {
    margin-right: 0.25rem;
    display: inline-block;
}

.menu > li {
    display: table-cell;
}

.menu.vertical > li {
    display: block;
}

@media screen and (min-width: 40em) {
    .menu.medium-horizontal > li {
        display: table-cell;
    }

    .menu.medium-vertical > li {
        display: block;
    }
}

@media screen and (min-width: 64em) {
    .menu.large-horizontal > li {
        display: table-cell;
    }

    .menu.large-vertical > li {
        display: block;
    }
}

.menu.simple li {
    line-height: 1;
    display: inline-block;
    margin-right: 1rem;
}

.menu.simple a {
    padding: 0;
}

.menu.align-right:before, .menu.align-right:after {
    content: ' ';
    display: table;
    -webkit-flex-basis: 0;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
}

.menu.align-right:after {
    clear: both;
}

.menu.align-right > li {
    float: right;
}

.menu.expanded {
    width: 100%;
    display: table;
    table-layout: fixed;
}

    .menu.expanded > li:first-child:last-child {
        width: 100%;
    }

.menu.icon-top > li > a {
    text-align: center;
}

    .menu.icon-top > li > a img,
    .menu.icon-top > li > a i {
        display: block;
        margin: 0 auto 0.25rem;
    }

.menu.nested {
    margin-left: 1rem;
}

.menu .active > a {
    color: #ffffff;
    background: #2199e8;
}

.menu-text {
    font-weight: 700;
    color: inherit;
    line-height: 1;
    padding-top: 0;
    padding-bottom: 0;
    padding: 0.7rem 1rem;
}

.menu-centered {
    text-align: center;
}

    .menu-centered > .menu {
        display: inline-block;
    }

.no-js [data-responsive-menu] ul {
    display: none;
}

.menu-icon {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    cursor: pointer;
    width: 20px;
    height: 16px;
}

    .menu-icon:after {
        content: '';
        position: absolute;
        display: block;
        width: 100%;
        height: 2px;
        background: #ffffff;
        top: 0;
        left: 0;
        -webkit-box-shadow: 0 7px 0 #ffffff, 0 14px 0 #ffffff;
        box-shadow: 0 7px 0 #ffffff, 0 14px 0 #ffffff;
    }

    .menu-icon:hover:after {
        background: #cacaca;
        -webkit-box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
        box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
    }

    .menu-icon.dark {
        position: relative;
        display: inline-block;
        vertical-align: middle;
        cursor: pointer;
        width: 20px;
        height: 16px;
    }

        .menu-icon.dark:after {
            content: '';
            position: absolute;
            display: block;
            width: 100%;
            height: 2px;
            background: #555555;
            top: 0;
            left: 0;
            -webkit-box-shadow: 0 7px 0 #555555, 0 14px 0 #555555;
            box-shadow: 0 7px 0 #555555, 0 14px 0 #555555;
        }

        .menu-icon.dark:hover:after {
            background: #8a8a8a;
            -webkit-box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
            box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
        }

.is-drilldown {
    position: relative;
    overflow: hidden;
}

    .is-drilldown li {
        display: block !important;
    }

.is-drilldown-submenu {
    position: absolute;
    top: 0;
    left: 100%;
    z-index: -1;
    height: 100%;
    width: 100%;
    background: #ffffff;
    -webkit-transition: -webkit-transform 0.15s linear;
    transition: -webkit-transform 0.15s linear;
    transition: transform 0.15s linear;
    transition: transform 0.15s linear, -webkit-transform 0.15s linear;
}

    .is-drilldown-submenu.is-active {
        z-index: 1;
        display: block;
        -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
        transform: translateX(-100%);
    }

    .is-drilldown-submenu.is-closing {
        -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
        transform: translateX(100%);
    }

.is-drilldown-submenu-parent > a {
    position: relative;
}

    .is-drilldown-submenu-parent > a:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 6px;
        border-color: transparent transparent transparent #2199e8;
        border-left-style: solid;
        border-right-width: 0;
        position: absolute;
        top: 50%;
        margin-top: -6px;
        right: 1rem;
    }

.js-drilldown-back > a:before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    border-color: transparent #2199e8 transparent transparent;
    border-right-style: solid;
    border-left-width: 0;
    border-left-width: 0;
    display: inline-block;
    vertical-align: middle;
    margin-right: 0.75rem;
}

.dropdown-pane {
    background-color: #ffffff;
    border: 1px solid #cacaca;
    border-radius: 0;
    display: block;
    font-size: 16rem;
    padding: 1rem;
    position: absolute;
    visibility: hidden;
    width: 300px;
    z-index: 10;
}

    .dropdown-pane.is-open {
        visibility: visible;
    }

    .dropdown-pane.tiny {
        width: 100px;
    }

    .dropdown-pane.small {
        width: 200px;
    }

    .dropdown-pane.large {
        width: 400px;
    }

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 0;
    top: 100%;
}

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 0;
    top: 100%;
}

.dropdown.menu > li.is-dropdown-submenu-parent > a {
    padding-right: 1.5rem;
    position: relative;
}

    .dropdown.menu > li.is-dropdown-submenu-parent > a:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 5px;
        border-color: #498bc9 transparent transparent;
        border-top-style: solid;
        border-bottom-width: 0;
        right: 5px;
        margin-top: -2px;
    }

[data-whatinput='mouse'] .dropdown.menu a {
    outline: 0;
}

.no-js .dropdown.menu ul {
    display: none;
}

.dropdown.menu.vertical > li .is-dropdown-submenu {
    top: 0;
}

.dropdown.menu.vertical > li.opens-left .is-dropdown-submenu {
    left: auto;
    right: 100%;
}

.dropdown.menu.vertical > li.opens-right .is-dropdown-submenu {
    right: auto;
    left: 100%;
}

.dropdown.menu.vertical > li > a:after {
    right: 14px;
    margin-top: -3px;
}

.dropdown.menu.vertical > li.opens-left > a:after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #498bc9 transparent transparent;
    border-right-style: solid;
    border-left-width: 0;
}

.dropdown.menu.vertical > li.opens-right > a:after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #498bc9;
    border-left-style: solid;
    border-right-width: 0;
}

@media screen and (min-width: 40em) {
    .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
        left: auto;
        right: 0;
        top: 100%;
    }

    .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
        right: auto;
        left: 0;
        top: 100%;
    }

    .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
        padding-right: 1.5rem;
        position: relative;
    }

        .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a:after {
            content: '';
            display: block;
            width: 0;
            height: 0;
            border: inset 5px;
            border-color: #498bc9 transparent transparent;
            border-top-style: solid;
            border-bottom-width: 0;
            right: 5px;
            margin-top: -2px;
        }

    .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
        top: 0;
    }

    .dropdown.menu.medium-vertical > li.opens-left .is-dropdown-submenu {
        left: auto;
        right: 100%;
    }

    .dropdown.menu.medium-vertical > li.opens-right .is-dropdown-submenu {
        right: auto;
        left: 100%;
    }

    .dropdown.menu.medium-vertical > li > a:after {
        right: 14px;
        margin-top: -3px;
    }

    .dropdown.menu.medium-vertical > li.opens-left > a:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 5px;
        border-color: transparent #498bc9 transparent transparent;
        border-right-style: solid;
        border-left-width: 0;
    }

    .dropdown.menu.medium-vertical > li.opens-right > a:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 5px;
        border-color: transparent transparent transparent #498bc9;
        border-left-style: solid;
        border-right-width: 0;
    }
}

@media screen and (min-width: 64em) {
    .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
        left: auto;
        right: 0;
        top: 100%;
    }

    .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
        right: auto;
        left: 0;
        top: 100%;
    }

    .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
        padding-right: 1.5rem;
        position: relative;
    }

        .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a:after {
            content: '';
            display: block;
            width: 0;
            height: 0;
            border: inset 5px;
            border-color: #498bc9 transparent transparent;
            border-top-style: solid;
            border-bottom-width: 0;
            right: 5px;
            margin-top: -2px;
        }

    .dropdown.menu.large-vertical > li .is-dropdown-submenu {
        top: 0;
    }

    .dropdown.menu.large-vertical > li.opens-left .is-dropdown-submenu {
        left: auto;
        right: 100%;
    }

    .dropdown.menu.large-vertical > li.opens-right .is-dropdown-submenu {
        right: auto;
        left: 100%;
    }

    .dropdown.menu.large-vertical > li > a:after {
        right: 14px;
        margin-top: -3px;
    }

    .dropdown.menu.large-vertical > li.opens-left > a:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 5px;
        border-color: transparent #498bc9 transparent transparent;
        border-right-style: solid;
        border-left-width: 0;
    }

    .dropdown.menu.large-vertical > li.opens-right > a:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 5px;
        border-color: transparent transparent transparent #498bc9;
        border-left-style: solid;
        border-right-width: 0;
    }
}

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
    top: 100%;
    left: auto;
    right: 0;
}

.is-dropdown-menu.vertical {
    width: 100px;
}

    .is-dropdown-menu.vertical.align-right {
        float: right;
    }

.is-dropdown-submenu-parent {
    position: relative;
}

    .is-dropdown-submenu-parent a:after {
        position: absolute;
        top: 50%;
        right: 5px;
        margin-top: -2px;
    }

    .is-dropdown-submenu-parent.opens-inner .is-dropdown-submenu {
        top: 100%;
    }

    .is-dropdown-submenu-parent.opens-left .is-dropdown-submenu {
        left: auto;
        right: 0;
        top: 100%;
    }

.is-dropdown-submenu {
    display: none;
    position: absolute;
    top: 0;
    left: 100%;
    min-width: 200px;
    z-index: 1;
    background: #ffffff;
    border: 1px solid #cacaca;
}

    .is-dropdown-submenu .is-dropdown-submenu-parent > a:after {
        right: 14px;
        margin-top: -3px;
    }

    .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 5px;
        border-color: transparent #498bc9 transparent transparent;
        border-right-style: solid;
        border-left-width: 0;
    }

    .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 5px;
        border-color: transparent transparent transparent #498bc9;
        border-left-style: solid;
        border-right-width: 0;
    }

    .is-dropdown-submenu .is-dropdown-submenu {
        margin-top: -1px;
    }

    .is-dropdown-submenu > li {
        width: 100%;
    }

    .is-dropdown-submenu:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > .is-dropdown-submenu, .is-dropdown-submenu.js-dropdown-active {
        display: block;
    }

.flex-video {
    position: relative;
    height: 0;
    padding-bottom: 75%;
    margin-bottom: 1rem;
    overflow: hidden;
}

    .flex-video iframe,
    .flex-video object,
    .flex-video embed,
    .flex-video video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    .flex-video.widescreen {
        padding-bottom: 56.25%;
    }

    .flex-video.vimeo {
        padding-top: 0;
    }

.label {
    display: inline-block;
    padding: 0.33333rem 0.5rem;
    font-size: 0.8rem;
    line-height: 1;
    white-space: nowrap;
    cursor: default;
    border-radius: 0;
    background: #498bc9;
    color: #ffffff;
}

    .label.secondary {
        background: #777;
        color: #ffffff;
    }

    .label.success {
        background: #3adb76;
        color: #ffffff;
    }

    .label.warning {
        background: #ffae00;
        color: #ffffff;
    }

    .label.alert {
        background: #ec5840;
        color: #ffffff;
    }

.media-object {
    margin-bottom: 1rem;
    display: block;
}

    .media-object img {
        max-width: none;
    }

@media screen and (max-width: 39.9375em) {
    .media-object.stack-for-small .media-object-section {
        padding: 0;
        padding-bottom: 1rem;
        display: block;
    }

        .media-object.stack-for-small .media-object-section img {
            width: 100%;
        }
}

.media-object-section {
    display: table-cell;
    vertical-align: top;
}

    .media-object-section:first-child {
        padding-right: 1rem;
    }

    .media-object-section:last-child:not(:nth-child(2)) {
        padding-left: 1rem;
    }

    .media-object-section.middle {
        vertical-align: middle;
    }

    .media-object-section.bottom {
        vertical-align: bottom;
    }

html,
body {
    height: 100%;
}

.off-canvas-wrapper {
    width: 100%;
    overflow-x: hidden;
    position: relative;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-overflow-scrolling: auto;
}

.off-canvas-wrapper-inner {
    position: relative;
    width: 100%;
    -webkit-transition: -webkit-transform 0.5s ease;
    transition: -webkit-transform 0.5s ease;
    transition: transform 0.5s ease;
    transition: transform 0.5s ease, -webkit-transform 0.5s ease;
}

    .off-canvas-wrapper-inner:before, .off-canvas-wrapper-inner:after {
        content: ' ';
        display: table;
        -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .off-canvas-wrapper-inner:after {
        clear: both;
    }

.off-canvas-content,
.off-canvas-content {
    min-height: 100%;
    background: #ffffff;
    -webkit-transition: -webkit-transform 0.5s ease;
    transition: -webkit-transform 0.5s ease;
    transition: transform 0.5s ease;
    transition: transform 0.5s ease, -webkit-transform 0.5s ease;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    z-index: 1;
    padding-bottom: 0.1px;
    -webkit-box-shadow: 0 0 10px rgba(85, 85, 85, 0.5);
    box-shadow: 0 0 10px rgba(85, 85, 85, 0.5);
}

.js-off-canvas-exit {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #ffffff;
    background: rgba(255, 255, 255, 0.25);
    cursor: pointer;
    -webkit-transition: background 0.5s ease;
    transition: background 0.5s ease;
}

.off-canvas {
    position: absolute;
    background: #e6e6e6;
    z-index: -1;
    max-height: 100%;
    overflow-y: auto;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
}

[data-whatinput='mouse'] .off-canvas {
    outline: 0;
}

.off-canvas.position-left {
    left: -250px;
    top: 0;
    width: 250px;
}

.is-open-left {
    -webkit-transform: translateX(250px);
    -ms-transform: translateX(250px);
    transform: translateX(250px);
}

.off-canvas.position-right {
    right: -250px;
    top: 0;
    width: 250px;
}

.is-open-right {
    -webkit-transform: translateX(-250px);
    -ms-transform: translateX(-250px);
    transform: translateX(-250px);
}

@media screen and (min-width: 40em) {
    .position-left.reveal-for-medium {
        left: 0;
        z-index: auto;
        position: fixed;
    }

        .position-left.reveal-for-medium ~ .off-canvas-content {
            margin-left: 250px;
        }

    .position-right.reveal-for-medium {
        right: 0;
        z-index: auto;
        position: fixed;
    }

        .position-right.reveal-for-medium ~ .off-canvas-content {
            margin-right: 250px;
        }
}

@media screen and (min-width: 64em) {
    .position-left.reveal-for-large {
        left: 0;
        z-index: auto;
        position: fixed;
    }

        .position-left.reveal-for-large ~ .off-canvas-content {
            margin-left: 250px;
        }

    .position-right.reveal-for-large {
        right: 0;
        z-index: auto;
        position: fixed;
    }

        .position-right.reveal-for-large ~ .off-canvas-content {
            margin-right: 250px;
        }
}

.orbit {
    position: relative;
}

.orbit-container {
    position: relative;
    margin: 0;
    overflow: hidden;
    list-style: none;
}

.orbit-slide {
    width: 100%;
    max-height: 100%;
}

    .orbit-slide.no-motionui.is-active {
        top: 0;
        left: 0;
    }

.orbit-figure {
    margin: 0;
}

.orbit-image {
    margin: 0;
    width: 100%;
    max-width: 100%;
}

.orbit-caption {
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 1rem;
    margin-bottom: 0;
    color: #ffffff;
    background-color: #555555;
    background-color: rgba(85, 85, 85, 0.5);
}

.orbit-previous, .orbit-next {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    z-index: 10;
    padding: 1rem;
    color: #ffffff;
}

[data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
    outline: 0;
}

.orbit-previous:hover, .orbit-next:hover, .nice-select.open.orbit-previous, .nice-select.open.orbit-next, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
    background-color: #555555;
    background-color: rgba(85, 85, 85, 0.5);
}

.orbit-previous {
    left: 0;
}

.orbit-next {
    left: auto;
    right: 0;
}

.orbit-bullets {
    position: relative;
    margin-top: 0.8rem;
    margin-bottom: 0.8rem;
    text-align: center;
}

[data-whatinput='mouse'] .orbit-bullets {
    outline: 0;
}

.orbit-bullets button {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem;
    background-color: #cacaca;
    border-radius: 50%;
}

    .orbit-bullets button:hover {
        background-color: #8a8a8a;
    }

    .orbit-bullets button.is-active {
        background-color: #8a8a8a;
    }

.pagination {
    margin-left: 0;
    margin-bottom: 1rem;
}

    .pagination:before, .pagination:after {
        content: ' ';
        display: table;
        -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .pagination:after {
        clear: both;
    }

    .pagination li {
        font-size: 0.875rem;
        margin-right: 0.0625rem;
        border-radius: 0;
        display: none;
    }

        .pagination li:last-child, .pagination li:first-child {
            display: inline-block;
        }

@media screen and (min-width: 40em) {
    .pagination li {
        display: inline-block;
    }
}

.pagination a,
.pagination button {
    color: #555555;
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 0;
}

    .pagination a:hover,
    .pagination button:hover {
        background: #e6e6e6;
    }

.pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #498bc9;
    color: #ffffff;
    cursor: default;
}

.pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #cacaca;
    cursor: default;
}

    .pagination .disabled:hover {
        background: transparent;
    }

.pagination .ellipsis:after {
    content: '\2026';
    padding: 0.1875rem 0.625rem;
    color: #555555;
}

.pagination-previous a:before,
.pagination-previous.disabled:before {
    content: '\00ab';
    display: inline-block;
    margin-right: 0.5rem;
}

.pagination-next a:after,
.pagination-next.disabled:after {
    content: '\00bb';
    display: inline-block;
    margin-left: 0.5rem;
}


.desktop-navbar {
    position: fixed;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    z-index: 1000;
    width: 100%;
    height: 110px;
    background: #ffffff;
    border-bottom: 2px solid rgba(0, 0, 0, 0.05);
}

@media screen and (max-width: 1057px) {
    .desktop-navbar {
        display: none;
    }
}

.desktop-navbar.squished {
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    height: 80px;
}

.desktop-navbar__container {
    background: #fff;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    height: 110px;
}

    .desktop-navbar__container:before, .desktop-navbar__container:after {
        content: ' ';
        display: table;
        -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .desktop-navbar__container:after {
        clear: both;
    }

.squished .desktop-navbar__container {
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    height: 80px;
}

.desktop-navbar__logo {
    float: left;
    line-height: 0;
    margin-left: 50px;
}

    .desktop-navbar__logo svg {
        -webkit-transition: all 0.3s;
        transition: all 0.3s;
        width: 245px;
        height: 110px;
    }

.squished .desktop-navbar__logo svg {
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    height: 80px;
}
.desktop-navbar__logo a img {
    width:162px;
}

.desktop-navbar__menu {
    float: right;
}

    .desktop-navbar__menu ul {

        list-style: none;
        margin-bottom: 0;
    }

    .desktop-navbar__menu li {
        position: relative;
        float: left;
        margin-left: 20px;
        margin-right: 30px;
    }

    .desktop-navbar__menu a {
        display: block;
        position: relative;
        -webkit-transition: all 0.3s;
        transition: all 0.3s;
        padding-top: 0;
        padding-bottom: 0;
        text-transform: uppercase;
        line-height: 110px;
        color: #9F2228;
        font-weight: 500;
        font-size: 14px;
    }

        .desktop-navbar__menu a:hover, .desktop-navbar__menu a:focus {
            color: #555555;
        }

.squished .desktop-navbar__menu a {
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    line-height: 80px;
}

.desktop-navbar__menu-link:after {
    position: absolute;
    bottom: 32px;
    left: 0;
    right: 0;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    opacity: 0;
    margin: auto;
    text-align: center;
    content: "__";
    pointer-events: none;
}

.squished .desktop-navbar__menu-link:after {
    -webkit-transition: bottom 0.3s;
    transition: bottom 0.3s;
    bottom: 17px;
}

.desktop-navbar__menu-link:hover:after, .desktop-navbar__menu-link--active:after {
    -webkit-transition: all 0.5s;
    transition: all 0.5s;
    opacity: 1;
}

.desktop-navbar__cart-info {
    position: relative;
    margin-left: 13px !important;
    margin-right: 6px !important;
}

    .desktop-navbar__cart-info svg {
        position: relative;
        top: -7px;
        width: 30px;
        height: 30px;
    }

.desktop-navbar__cart-item-count {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    height: 25px;
    text-align: center;
    pointer-events: none;
    color:#202020;
}

.desktop-navbar__sign-in {
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    padding: 0 40px;
    background: #9F2228;
    color: #ffffff;
    margin-right: 50px;
}
@media screen and (max-width: 1500px) {

    /*#signinstatus {
        padding: 0 3px;
    }*/

    .navbar-right{
        margin-right:-50px;
    }
}
    .desktop-navbar__sign-in a, .desktop-navbar__sign-in a:hover, .desktop-navbar__sign-in a:focus {
        color: #ffffff;
        font-weight: 700;
    }

.desktop-navbar__menu-sub:hover .desktop-navbar__menu-sub-wrap {
    opacity: 1;
    visibility: visible;
}

.desktop-navbar__menu-sub-wrap {
    background-color: #f6f5f5;
    -webkit-box-shadow: 0 2px 5px 0 rgba(145, 143, 140, 0.15);
    box-shadow: 0 2px 5px 0 rgba(145, 143, 140, 0.15);
    left: -4.1rem;
    margin: 0;
    position: absolute;
    text-align: center;
    width: 170px;
    visibility: hidden;
    opacity: 0;
}

    .desktop-navbar__menu-sub-wrap li {
        float: none;
        border-bottom: 2px #ffffff solid;
        margin-left: 0;
    }

        .desktop-navbar__menu-sub-wrap li:last-child {
            border-bottom: none;
        }

        .desktop-navbar__menu-sub-wrap li a {
            line-height: 4.9;
        }


.block-search {
    float: left;
    position: relative;
    display: block;
    width: 340px;
    top: 35px;
    padding-left: 0;
    background: #fff;
    border-radius: 30px;
    padding: 5px;
}
@media (max-width: 1400px) {
    .block-search{
        width:270px;
    }
}
@media (max-width: 500px) {
    .block-search {
        margin:0 auto;
        width: 90%;
        float:none;
    }
}
.header-container_lk .header-content .block-search .block-title {
    display: none
}

.header-container_lk .header-content .block-search .block-content {
    line-height: 1
}

.block-search .block-content {
    background: #fff;
    border-radius: 30px;
}

    .block-search .block-content input {
        width: 100%;
        background-color: transparent;
        padding: 0 0 0 15px;
        border: 2px solid #e5e5e5;
        border-radius: 30px;
        font-family: 'Poppins',sans-serif;
        font-size: 12px;
        font-style: italic;
        line-height: 50px;
        height: 50px;
        color: #222;
        position: static;
        margin: 0;
    }

    .block-search .block-content .label {
        display: none;
    }

.search-autocomplete {
    display: none;
    margin-top: -15px;
    overflow: hidden;
    position: absolute;
    z-index: 3;
}

.header-container_lk .header-content .block-search .block-content label {
    display: none
}

.header-container_lk .header-content .block-search .block-content .control {
    margin: 0;
    padding: 0;
    border: none
}

.header-container_lk .header-content .block-search .block-content input {
    width: 100%;
    background-color: transparent;
    padding: 10px 0;
    border: none;
    padding-left: 55px;
    font-family: 'Lato',sans-serif;
    font-size: 12px;
    font-style: italic;
    line-height: 44px;
    height: 44px;
    color: #fff;
    position: static;
    margin: 0
}

.header-container_lk .header-content .block-search .block-content .action2.search {
    position: absolute;
    top: 0;
    left: 0;
    padding: 0;
    background-color: transparent;
    border: none;
    width: 44px;
    height: 44px;
    font-size: 18px;
    color: #b0b0b0;
    display: block
}

    .header-container_lk .header-content .block-search .block-content .action2.search:hover :before {
        color: #333
    }

    .header-container_lk .header-content .block-search .block-content .action2.search:before {
        background: 0 0;
        content: "\e003";
        font-family: Flaticon;
        font-style: normal;
        font-variant: normal;
        font-weight: 400;
        font-size: 18px;
        color: #b0b0b0;
        overflow: inherit;
        width: 100%;
        line-height: 44px
    }

    .header-container_lk .header-content .block-search .block-content .action2.search span {
        float: left;
        text-indent: -999999px
    }

.header-container_lk .header-content .block-search .nested {
    position: static;
    margin-top: 18px;
    display: none !important
}

    .header-container_lk .header-content .block-search .nested a {
        color: #666
    }








@media only screen and (max-width: 1255px) {

    .dum-cart {
        display: none;
    }
}
@media only screen and (max-width: 1120px) {

    .gohome {
        display: none;
    }
}

#landing-page {
    background-size: contain;
}
/*@media only screen and (min-width: 1000px) and (max-height:1000px) {
    #landing-page {
        background-size: 1669px 850px;
        background-position: 50% 50% !important;
    }
}

@media only screen and (min-width: 750px) and (max-height:850px) {
    #landing-page {
        background-size: 1400px 650px;
        background-position: 50% 25% !important;
    }
}

@media only screen and (min-width: 600px) and (max-height:750px) {
    #landing-page {
        background-size: 900px 520px;
        background-position: 50% 50% !important;
    }
}*/

@media (max-width:600px){
    #landing-page {
        background-position: 50% 50% !important;
    }
}

/*@media (min-width: 600px) and (max-width:1250px) {
    #landing-page {
        background-size: 1200px 700px;
    }
    
}

@media (min-width: 600px) and (max-width:1150px) {
    #landing-page {
        background-size: 1100px 700px;
        background-position: 50% 50% !important;
    }
}

@media only screen and (min-width: 1000px) and (max-width:1050px) {
    #landing-page {
        background-size: 1080px 720px;
        background-position: 50% 0% !important;
    }
}*/

.mobile-navbar {
    position: relative;
    z-index: 1000;
    width: 100%;
    height: 200px;
    background: #fff;
    border-bottom: 2px solid rgba(0, 0, 0, 0.05);
    transition: top 0.3s;
}

    @media screen and (min-width: 1058px) {
        .mobile-navbar {
            display: none;
        }
    }

    .mobile-navbar__toggle {
        position: absolute;
        top:100px;
        -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        transform: rotate(90deg);
        background-color: transparent;
        cursor: pointer;
        width: 80px;
        height: 80px;
        text-align: center;
        line-height: 80px;
        color: #555555;
        font-family: sans-serif;
        font-size: 40px;
    }

    .mobile-navbar__toggle--open {
        background-color: #f6f5f5;
    }

    .mobile-navbar__logo {
        height: 80px;
        position: absolute;
        top:100px;
        left: 25%;
    }

        .mobile-navbar__logo img {
            height: 76px;
        }

  

    .mobile-navbar__cart-info {
        position: absolute;
        top: 100px;
        right: 0;
        width: 80px;
        line-height: 80px;
        text-align: center;
    }

        .mobile-navbar__cart-info svg {
            position: relative;
            top: -5px;
            width: 30px;
            height: 30px;
        }

    .mobile-navbar__cart-item-count {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto;
        text-align: center;
        pointer-events: none;
    }

    .mobile-navbar__menu {
        display: none;
        -webkit-transition: all 0.3s linear;
        transition: all 0.3s linear;
        height:100vh;
    }

.mobile-ul {
    background-color: #f6f5f5;
    left: 0;
    list-style: none;
    margin-left: 0;
    position: absolute;
    top: 180px;
}

@media  (max-width: 600px) {
    .login-link {
        position: absolute;
        top: 10px;
        left: 70%;
    }

    .authorization-link {
        position: absolute;
        top: 10px;
        height: 20px;
        left: 7%;
        width: 200px;
        overflow: hidden;
    }
   
}

.info-account a {
    color: #9F2228
}

@media (min-width: 600px) and (max-width:1057px){
    .info-account{
        position:relative;
        top:-15px;
        padding-right:10px;
    }
    .block-search {
        width: 70%;
  
        float: none;
    }
}

        .mobile-navbar__menu li {
            text-align: center;
            border-bottom: 3px solid #ffffff;
            padding:10px;
            height:70px;
        }

            .mobile-navbar__menu li:last-child {
                border-bottom: none;
            }

            .mobile-navbar__menu li.shrink {
                line-height: -webkit-calc((100vh - 80px - ((100vh - 80px) / 4)) / 6);
                line-height: calc((100vh - 80px - ((100vh - 80px) / 4)) / 6);
            }

                .mobile-navbar__menu li.shrink .mobile-navbar__child-item {
                    display: block !important;
                }

                .mobile-navbar__menu li.shrink a {
                    line-height: -webkit-calc((100vh - 80px - ((100vh - 80px) / 4)) / 6);
                    line-height: calc((100vh - 80px - ((100vh - 80px) / 4)) / 6);
                }

        .mobile-navbar__menu a {
            color: #555555;
            display: block;
        
            text-transform: uppercase;
        }

           

        .mobile-navbar__menu li.mobile-navbar__child-item {
            display: none;
        }

            .mobile-navbar__menu li.mobile-navbar__child-item.open {
                background-color: #cac9c9;
                border-bottom: 2px solid #ffffff;
                display: block;
            }

                .mobile-navbar__menu li.mobile-navbar__child-item.open:last-child {
                    border-bottom: none;
                }

    .mobile-navbar__sign-in {
        background-color: #555555;
        color: #ffffff;
        line-height: -webkit-calc((100vh - 80px) / 4) !important;
        line-height: calc((100vh - 80px) / 4) !important;
    }

        .mobile-navbar__sign-in a {
            line-height: -webkit-calc((100vh - 80px) / 4) !important;
            line-height: calc((100vh - 80px) / 4) !important;
        }

            .mobile-navbar__sign-in a, .mobile-navbar__sign-in a:hover, .mobile-navbar__sign-in a:focus {
                color: #ffffff;
                font-weight: 700 !important;
            }

    .product-list {
        background-color: #f6f5f5;
        background-color: #f6f5f5;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        padding: 0 10%;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }

    .product-summary {
        padding-top: 30px;
        padding-bottom: 1px;
        width: 100%;
    }

    @media screen and (min-width: 64em) {
        .product-summary {
            padding-top: 50px;
            padding-bottom: 45px;
            width: 20%;
        }
    }

    @media screen and (min-width: 64em) {
        .product-summary__container {
            max-width: 75rem;
            margin-left: auto;
            margin-right: auto;
        }

            .product-summary__container:before, .product-summary__container:after {
                content: ' ';
                display: table;
                -webkit-flex-basis: 0;
                -ms-flex-preferred-size: 0;
                flex-basis: 0;
                -webkit-box-ordinal-group: 2;
                -webkit-order: 1;
                -ms-flex-order: 1;
                order: 1;
            }

            .product-summary__container:after {
                clear: both;
            }
    }

    .product-summary__images {
        text-align: center;
    }

    .product-summary__image-wrapper {
        position: relative;
        margin: 0 auto;
        width: 210px;
        height: 255px;
    }

    @media screen and (min-width: 64em) {
        .product-summary__image-wrapper {
            width: 175px;
            height: 180px;
        }
    }

    .product-summary__image-wrapper img {
        position: absolute;
        top: 0;
        left: 0;
        -webkit-transition: opacity 1.5s;
        transition: opacity 1.5s;
    }

        .product-summary__image-wrapper img:last-child {
            opacity: 0;
        }

        .product-summary__image-wrapper img:hover:first-child {
            opacity: 0;
        }

        .product-summary__image-wrapper img:hover:last-child {
            opacity: 1;
        }

    .product-summary__details {
        padding-top: 20px;
        text-align: center;
    }

        .product-summary__details h3 {
            color: #555555;
            font-family: "halant";
            margin-bottom: 0;
            font-size: 1.5rem;
        }

        .product-summary__details h1 {
            font-size: 2rem;
            font-family: "IntroRust-BaseLine";
        }

    @media screen and (min-width: 64em) {
        .product-summary__details h1 {
            margin-bottom: 20px;
        }
    }

    .product-summary__title--mix-no-1 {
        color: #498bc9;
    }

    .product-summary__title--mix-no-2 {
        color: #7fd954;
    }

    .product-summary__title--mix-no-3 {
        color: #985fa7;
    }

    .product-summary__title--amendment {
        color: #ff9544;
    }

    @media screen and (max-width: 63.9375em) {
        .product-summary__description {
            display: none;
        }
    }

    .product-summary__description--mix-no-1 {
        max-width: 490px;
    }

    .product-summary__description--mix-no-2 {
        max-width: 490px;
    }

    .product-summary__description--mix-no-3 {
        max-width: 510px;
    }

    .product-summary__description--amendment {
        max-width: 535px;
    }

    @media screen and (min-width: 64em) {
        .product-summary__description {
            margin: 0 auto;
            line-height: 1.4;
        }
    }

    .product-summary__link-button {
        margin: 40px 0 60px;
        width: 200px;
        font-size: 0.9375rem;
    }

    @media screen and (min-width: 64em) {
        .product-summary__link-button {
            margin: 30px 0 0;
        }
    }

    .product-summary__link-button--amendment {
        width: 220px;
    }

    .product-summary-inline {
        padding-top: 30px;
        padding-bottom: 1px;
        width: 100%;
    }

    .product-list h3 {
        margin: 0;
        color: #555555;
        font-family: "halant";
    }

    .product-list h1 {
        line-height: 1.2;
        color: #498bc9;
        font-family: "IntroRust-BaseLine";
    }

    @media screen and (min-width: 64em) {
        .product-list h1 {
            margin-top: -3px;
            margin-bottom: 50px;
        }
    }

    @media screen and (min-width: 64em) {
        .product-summary-inline {
            padding-top: 50px;
            padding-bottom: 45px;
            width: 20%;
        }
    }

    @media screen and (min-width: 64em) {
        .product-summary-inline__container {
            max-width: 75rem;
            margin-left: auto;
            margin-right: auto;
        }

            .product-summary-inline__container:before, .product-summary-inline__container:after {
                content: ' ';
                display: table;
                -webkit-flex-basis: 0;
                -ms-flex-preferred-size: 0;
                flex-basis: 0;
                -webkit-box-ordinal-group: 2;
                -webkit-order: 1;
                -ms-flex-order: 1;
                order: 1;
            }

            .product-summary-inline__container:after {
                clear: both;
            }
    }

    .product-summary-inline__images {
        text-align: center;
    }

    .product-summary-inline__image-wrapper {
        position: relative;
        margin: 0 auto;
        width: 210px;
        height: 255px;
    }

    @media screen and (min-width: 64em) {
        .product-summary-inline__image-wrapper {
            width: 200px;
            height: 275px;
        }
    }

    .product-summary-inline__image-wrapper img {
        position: absolute;
        top: 0;
        left: 0;
        -webkit-transition: opacity 1.5s;
        transition: opacity 1.5s;
    }

        .product-summary-inline__image-wrapper img:last-child {
            opacity: 0;
        }

        .product-summary-inline__image-wrapper img:hover:first-child {
            opacity: 0;
        }

        .product-summary-inline__image-wrapper img:hover:last-child {
            opacity: 1;
        }

    .product-summary-inline__details {
        padding-top: 20px;
        text-align: center;
    }

        .product-summary-inline__details h5 {
            color: #555555;
            font-family: "halant";
            margin-bottom: 0;
            font-size: 1.5rem;
        }

        .product-summary-inline__details h4 {
            font-size: 2rem;
            font-family: "IntroRust-BaseLine";
        }

    @media screen and (min-width: 64em) {
        .product-summary-inline__details h3 {
            margin-bottom: 20px;
        }
    }

    .product-summary-inline__title--mix-zero {
        color: #ada69e;
    }

    .product-summary-inline__title--mix-no-1 {
        color: #498bc9;
    }

    .product-summary-inline__title--mix-no-2 {
        color: #7fd954;
    }

    .product-summary-inline__title--mix-no-3 {
        color: #985fa7;
    }

    .product-summary-inline__title--amendment {
        color: #ff9544;
    }

    @media screen and (max-width: 63.9375em) {
        .product-summary-inline__description {
            display: none;
        }
    }

    .product-summary-inline__description--mix-no-1 {
        max-width: 490px;
    }

    .product-summary-inline__description--mix-no-2 {
        max-width: 490px;
    }

    .product-summary-inline__description--mix-no-3 {
        max-width: 510px;
    }

    .product-summary-inline__description--amendment {
        max-width: 535px;
    }

    @media screen and (min-width: 64em) {
        .product-summary-inline__description {
            margin: 0 auto;
            line-height: 1.4;
        }
    }

    .product-summary-inline__link-button {
        margin: 40px 0 60px;
        width: 200px;
        font-size: 0.9375rem;
    }

    @media screen and (min-width: 64em) {
        .product-summary-inline__link-button {
            margin: 30px 0 0;
        }
    }

    .product-summary-inline__link-button--amendment {
        width: 220px;
    }

    .product-summary .cta {
        background: white;
        padding: 6rem 3rem;
        font-size: 2rem;
        text-align: center;
    }

    @media screen and (min-width: 64em) {
        .product-summary .cta {
            padding: 180px 3rem 178px;
        }
    }

    .product-extended {
        background-color: #f6f5f5;
    }

        .product-extended ul {
            position: relative;
            margin-bottom: 0;
            margin-left: 0;
            list-style: none;
        }

    @media screen and (min-width: 64em) {
        .product-extended ul:before, .product-extended ul:after {
            content: ' ';
            display: table;
            -webkit-flex-basis: 0;
            -ms-flex-preferred-size: 0;
            flex-basis: 0;
            -webkit-box-ordinal-group: 2;
            -webkit-order: 1;
            -ms-flex-order: 1;
            order: 1;
        }

        .product-extended ul:after {
            clear: both;
        }
    }

    .product-extended__box {
        padding-left: 20px;
        border-bottom: 1px solid #ffffff;
        line-height: 75px;
        text-transform: uppercase;
        color: #555555;
        font-weight: 700;
        font-size: 1.25rem;
    }

    @media screen and (min-width: 64em) {
        .product-extended__box {
            padding-left: 0;
            float: left;
            border-bottom: none;
            background-color: #cac9c9;
            width: 33.33%;
            text-align: center;
            color: #ffffff;
        }

            .product-extended__box:first-child {
                border-right: 1px solid #f6f5f5;
            }

            .product-extended__box:last-child {
                border-left: 1px solid #f6f5f5;
            }

        .product-extended__box--active {
            background-color: #f6f5f5;
            color: #555555;
        }
    }

    .column-blocks {
        display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6, BB7 */
        display: -ms-flexbox; /* TWEENER - IE 10 */
        display: -webkit-flex; /* NEW - Safari 6.1+. iOS 7.1+, BB10 */
        display: flex;
    }

        .column-blocks .column:first-child {
            width: 80%;
        }

    @media screen and (min-width: 64em) {
        .column-blocks .column:first-child {
            width: 60%;
        }
    }

    .product-extended__box-content {
        position: relative;
        border-bottom: none;
        padding-right: 3%;
        line-height: 1.4;
        -webkit-transition: all 1s;
        transition: all 1s;
        max-height: 0px;
        overflow: auto;
        text-transform: none;
        color: #555555;
        font-weight: 300;
        font-size: 0.9375rem;
    }

        .product-extended__box-content .right {
            margin-top: 1em;
        }

        .product-extended__box-content h4 small {
            color: #555555;
        }

    @media screen and (min-width: 64em) {
        .product-extended__box-content {
            max-width: 75rem;
            margin-left: auto;
            margin-right: auto;
            display: none;
            max-height: none;
            padding: 75px 10.5px 75px;
        }

            .product-extended__box-content:before, .product-extended__box-content:after {
                content: ' ';
                display: table;
                -webkit-flex-basis: 0;
                -ms-flex-preferred-size: 0;
                flex-basis: 0;
                -webkit-box-ordinal-group: 2;
                -webkit-order: 1;
                -ms-flex-order: 1;
                order: 1;
            }

            .product-extended__box-content:after {
                clear: both;
            }

            .product-extended__box-content .left {
                width: 50%;
                float: left;
                padding-left: 0.65625rem;
                padding-right: 0.65625rem;
                text-align: justify;
            }

            .product-extended__box-content .right {
                width: 50%;
                float: left;
                padding-left: 0.65625rem;
                padding-right: 0.65625rem;
                margin-top: 0;
                text-align: justify;
            }
    }

    .product-extended__logos {
        text-align: center;
    }

        .product-extended__logos svg {
            width: 150px;
        }

    @media screen and (min-width: 64em) {
        .product-extended__logos svg {
            width: 200px;
        }

            .product-extended__logos svg:last-child {
                float: right;
            }
    }

    .product-extended__container {
        display: none;
    }

    @media screen and (min-width: 64em) {
        .product-extended__container {
            display: block;
        }
    }

    .more-information {
        float: right;
        margin-right: 4%;
        width: 25px;
        height: 75px;
    }

    @media screen and (min-width: 64em) {
        .more-information {
            display: none;
        }
    }

    .more-information--contract {
        display: none;
    }

    .more-information--close {
        display: none;
    }

    @media screen and (min-width: 64em) {
        .more-information--close {
            display: block;
            position: absolute;
            top: 0;
            right: 0;
            margin-right: 25px;
            height: 75px;
        }
    }

    .product-loop {
        padding-top: 10px;
        height: 165px;
        text-align: left;
    }

        .product-loop:before, .product-loop:after {
            content: ' ';
            display: table;
            -webkit-flex-basis: 0;
            -ms-flex-preferred-size: 0;
            flex-basis: 0;
            -webkit-box-ordinal-group: 2;
            -webkit-order: 1;
            -ms-flex-order: 1;
            order: 1;
        }

        .product-loop:after {
            clear: both;
        }

        .product-loop a {
            color: #555555;
        }

            .product-loop a:hover {
                color: #555555;
            }

    .product-loop__thumb {
        margin-right: 15px;
        float: left;
    }

        .product-loop__thumb img {
            width: 100px;
        }

    .product-loop__subtitle {
        margin: 35px 0 0;
        font-size: 0.9375rem;
        font-weight: 300;
    }

    .product-loop__title {
        margin-bottom: 0;
        font-weight: 700;
    }

    .product-loop__price {
        font-size: 0.9375rem;
        font-weight: 700;
    }

    .product-usage {
        position: relative;
        z-index: 2;
        text-align: center;
    }

    .product-usage__header {
        background-color: #f6f5f5;
        pointer-events: none;
    }

        .product-usage__header h1 {
            display: inline-block;
            line-height: 127px;
            font-family: "IntroRust-BaseLine";
        }

    @media screen and (min-width: 64em) {
        .product-usage__header h1 {
            line-height: 171px;
        }
    }

    .product-usage__header h3 {
        display: inline-block;
        color: #555555;
        font-family: "halant";
    }

    .product-usage__blocks {
        background-color: #ffffff;
    }

    @media screen and (min-width: 64em) {
        .product-usage__blocks:before, .product-usage__blocks:after {
            content: ' ';
            display: table;
            -webkit-flex-basis: 0;
            -ms-flex-preferred-size: 0;
            flex-basis: 0;
            -webkit-box-ordinal-group: 2;
            -webkit-order: 1;
            -ms-flex-order: 1;
            order: 1;
        }

        .product-usage__blocks:after {
            clear: both;
        }
    }

    @media screen and (min-width: 64em) {
        .product-usage__single-block--2 {
            position: relative;
        }
    }

    .product-usage__block-image {
        background-position: center center;
        background-size: cover;
        width: 100%;
        height: 336px;
    }

    @media screen and (min-width: 64em) {
        .product-usage__block-image {
            float: right;
            width: 50%;
            height: 613px;
        }
    }

    .product-usage__block-image--1 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-image1.jpeg?31 ');
    }

    .mix-no-1 .product-usage__block-image--1 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-mix1-image1.jpeg?31 ');
    }

    .mix-no-2 .product-usage__block-image--1 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-mix2-image1.jpeg?31 ');
    }

    .mix-no-3 .product-usage__block-image--1 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-mix3-image1.jpeg?31 ');
    }

    .amendment .product-usage__block-image--1 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-amendment-image1.jpeg?31 ');
    }

    .light-box .product-usage__block-image--1 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-real-light-box-image1.jpg?31 ');
    }

    .mix-zero .product-usage__block-image--1 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus_seed_planting.jpg?31 ');
    }

    .product-usage__block-image--2 {
        background-position: left center;
    }

    @media screen and (min-width: 64em) {
        .product-usage__block-image--2 {
            float: none;
            width: 50%;
            height: 613px;
        }
    }

    .mix-no-1 .product-usage__block-image--2 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-mix1-image2.jpeg?31 ');
    }

    .mix-no-2 .product-usage__block-image--2 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-mix2-image2.jpeg?31 ');
    }

    .mix-no-3 .product-usage__block-image--2 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-mix3-image2.jpeg?31 ');
    }

    .amendment .product-usage__block-image--2 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-amendment-image2.jpeg?31 ');
    }

    .mix-zero .product-usage__block-image--2 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/C71F8102-82CA-48F6-97B8-9F2B6446E3D7.JPG?31 ');
    }

    .light-box .product-usage__block-image--2 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-real-light-box-image2.jpg?31 ');
    }

    .product-usage__block-image--3 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-image1.jpeg?31 ');
    }

    .mix-no-1 .product-usage__block-image--3 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-mix1-image3.jpeg?31 ');
    }

    .mix-no-2 .product-usage__block-image--3 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-mix2-image3.jpeg?31 ');
    }

    .mix-no-3 .product-usage__block-image--3 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-mix3-image3.jpeg?31 ');
    }

    .amendment .product-usage__block-image--3 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-amendment-image3.jpeg?31 ');
    }

    .light-box .product-usage__block-image--3 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-product-perfect-for-real-light-box-image3.jpg?31 ');
    }

    .mix-zero .product-usage__block-image--3 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/61D3D5D3-51B1-46B3-9616-B58F5BF1D94A_6ae17f01-9513-4381-a310-86bb47110344.JPG?31 ');
    }

    .product-usage__block-content {
        display: table;
        height: 365px;
    }

    @media screen and (min-width: 64em) {
        .product-usage__block-content {
            width: 50%;
            height: 613px;
        }
    }

    .product-usage__block-content svg {
        height: 50px;
    }

    .amendment .product-usage__block-content svg {
        display: none;
    }

    .product-usage__block-content h3 {
        margin-top: 20px;
        text-transform: uppercase;
        font-family: "IntroRustBook-Base";
    }

    @media screen and (min-width: 64em) {
        .product-usage__block-content h3 {
            margin-top: 25px;
        }
    }

    .product-usage__block-content p {
        max-width: 75rem;
        margin-left: auto;
        margin-right: auto;
        width: 100%;
        float: left;
        padding-left: 0.65625rem;
        padding-right: 0.65625rem;
        margin-top: 25px;
        margin-bottom: 0;
        line-height: 21px;
        font-size: 0.9375rem;
    }

        .product-usage__block-content p:before, .product-usage__block-content p:after {
            content: ' ';
            display: table;
            -webkit-flex-basis: 0;
            -ms-flex-preferred-size: 0;
            flex-basis: 0;
            -webkit-box-ordinal-group: 2;
            -webkit-order: 1;
            -ms-flex-order: 1;
            order: 1;
        }

        .product-usage__block-content p:after {
            clear: both;
        }

        .product-usage__block-content p, .product-usage__block-content p:last-child {
            float: none;
        }

    @media screen and (min-width: 64em) {
        .product-usage__block-content p {
            float: none;
            margin-left: auto;
            margin-right: auto;
            width: 473px;
            line-height: 27px;
            font-size: 1.25rem;
        }
    }

    @media screen and (min-width: 64em) {
        .product-usage__block-content--1 svg {
            height: 62px;
        }
    }

    @media screen and (min-width: 64em) {
        .product-usage__block-content--2 {
            position: absolute;
            top: 0;
            right: 0;
            width: 50%;
            height: 613px;
        }

            .product-usage__block-content--2 svg {
                height: 65px;
            }

            .product-usage__block-content--2 h3 {
                margin-top: 39px;
            }
    }

    @media screen and (min-width: 64em) {
        .product-usage__block-content--3 svg {
            height: 65px;
        }

        .product-usage__block-content--3 h3 {
            margin-top: 20px;
        }

        .product-usage__block-content--3 p {
            margin-top: 30px;
        }
    }

    .product-usage__block-centered {
        display: table-cell;
        vertical-align: middle;
    }

    .related-products {
        overflow: hidden;
        background-color: #ffffff;
        text-align: center;
    }

    @media screen and (min-width: 64em) {
        .related-products {
            background-color: #f6f5f5;
        }
    }

    .related-products p {
        padding-top: 50px;
        text-transform: uppercase;
        font-size: 1.25rem;
    }

    @media screen and (min-width: 64em) {
        .related-products p {
            display: none;
        }
    }

    @media screen and (min-width: 64em) {
        .related-products__container {
            max-width: 75rem;
            margin-left: auto;
            margin-right: auto;
        }

            .related-products__container:before, .related-products__container:after {
                content: ' ';
                display: table;
                -webkit-flex-basis: 0;
                -ms-flex-preferred-size: 0;
                flex-basis: 0;
                -webkit-box-ordinal-group: 2;
                -webkit-order: 1;
                -ms-flex-order: 1;
                order: 1;
            }

            .related-products__container:after {
                clear: both;
            }
    }

    .related-product {
        height: 351px;
        padding-top: 40px;
    }

    @media screen and (min-width: 64em) {
        .related-product {
            width: 25%;
            float: left;
            padding-left: 0.65625rem;
            padding-right: 0.65625rem;
            -webkit-transition: all 0.7s;
            transition: all 0.7s;
            height: 470px;
            padding-top: 240px;
        }

            .related-product.mix-no-3 {
                padding-top: 205px;
            }

            .related-product:hover {
                padding-top: 120px;
            }
    }

    .related-product__subtitle {
        color: #555555;
        font-family: "halant";
    }

    .related-product__title {
        font-family: "IntroRust-BaseLine";
    }

    .related-product__title--mix-no-1 {
        color: #498bc9;
    }

    .related-product__title--mix-no-2 {
        color: #7fd954;
    }

    .related-product__title--mix-no-3 {
        color: #985fa7;
    }

    .related-product__title--amendment {
        color: #ff9544;
    }

    @media screen and (min-width: 64em) {
        .related-product__image--mobile {
            display: none;
        }
    }

    .related-product__image--mobile img {
        margin-top: 15px;
        width: 125px;
    }

    @media screen and (max-width: 63.9375em) {
        .related-product__image--desktop {
            display: none;
        }
    }

    .related-product__image--desktop img {
        margin-top: 15px;
        width: 260px;
    }

    .shop__hero {
        position: relative;
        width: 100%;
        height: 140px;
    }

    @media screen and (min-width: 64em) {
        .shop__hero {
            height: 300px;
        }
    }

    .shop__collection-header {
        background-color: #ffffff;
        height: 125px;
        text-align: center;
    }

        .shop__collection-header h3 {
            margin-bottom: 0;
            padding-top: 30px;
            color: #555555;
            font-family: "halant";
        }

    @media screen and (min-width: 64em) {
        .shop__collection-header h3 {
            padding-top: 40px;
        }
    }

    .shop__collection-header h1 {
        color: #555555;
        font-family: "IntroRust-BaseLine";
    }

    @media screen and (min-width: 64em) {
        .shop__collection-header--growing-mix, .shop__collection-header--grow-real-light-box {
            height: 180px;
        }
    }

    @media screen and (min-width: 64em) {
        .shop__collection-header--amendment {
            height: 145px;
        }
    }

    .shop__down-arrow {
        display: none;
    }

    @media screen and (min-width: 64em) {
        .shop__down-arrow--growing-mix {
            display: inline-block;
            margin-top: 25px;
            width: 30px;
            height: 20px;
        }
    }

    .ftco-deals {

        background-size: cover;
        height: 90vh;

    }
.ftco-banner img {
    max-height: 100%;
    max-width: 100%;
}

.ftco-banner a {
    color: #707070;
    text-decoration: none;
}

    .ftco-banner a:visited {
        color: #707070;
        text-decoration: none;
    }

    .ftco-banner a:hover {
        color: #5b8c16;
        text-decoration: none;
    }

    .ftco-banner a:active {
        color: #5b8c16;
        text-decoration: underline;
    }

*:focus {
    box-shadow: none;
    outline: 0;
}

* {
    margin: 0px;
    padding: 0px;
}

.ftco-banner .cms-home .column.main #authenticationPopup ~ div {
    display: none;
}

.ftco-banner a:active {
    text-decoration: none;
}

.ftco-banner .tm-single-banner {
    display: inline-block;
    position: relative;
    margin: 50px 0 25px;
}

.ftco-banner .single-banner {
    position: relative;
    overflow: hidden;
    border: 0;
}

    .ftco-banner .single-banner a:before {
        position: absolute;
        width: 20%;
        height: 100%;
        background: rgba(255, 255, 255, 0.3);
        content: "";
        transform: skew(-20deg);
        -webkit-transform: skew(-20deg);
        -ms-transform: skew(-20deg);
        -moz-transform: skew(-20deg);
        -o-transform: skew(-20deg);
        left: -25%;
    }

    .ftco-banner .single-banner:hover a:before {
        left: 105%;
        transition: left 0.5s ease;
        -webkit-transition: left 0.5s ease;
        -moz-transition: left 0.5s ease;
        -ms-transition: left 0.5s ease;
        -o-transition: left 0.5s ease;
    }

.ftco-banner .single-banner-content {
    position: absolute;
    text-align: left;
    text-transform: capitalize;
    top: 22%;
    bottom: auto;
    left: 5%;
    right: auto;
}

    .ftco-banner .single-banner-content .text1 {
        font-size: 28px;
        font-weight: 600;
        color: #fff;
        display: block;
        line-height: 32px;
        margin-bottom: 3%;
        letter-spacing: 0;
    }

    .ftco-banner .single-banner-content .text2 {
        font-size: 14px;
        font-weight: 400;
        color: #fff;
        margin-bottom: 3%;
        display: block;
    }

.ftco-banner .single-banner-button a {
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    border-bottom: 1px solid #fff;
}

    .ftco-banner .single-banner-button a:hover {
        color: #ffd200;
        border-color: #ffd200;
    }

.ftco-banner img {
    vertical-align: top;
}

@media (min-width: 1201px) and (max-width: 1460px) {
    .single-banner-content {
        top: 28px;
    }

    .ftco-banner .tm-single-banner {
        margin: 20px 0 25px;
    }
}

@media (min-width: 1024px) and (max-width: 1200px) {
    .single-banner-content .text1 {
        font-size: 16px;
        line-height: 25px;
        margin-bottom: 15px;
    }

    .ftco-banner .single-banner-content .text2 {
        font-size: 13px;
        margin: 0 0 15px 0;
    }

    .ftco-banner .single-banner-button a {
        font-size: 14px;
    }

    .ftco-banner .single-banner-content {
        top: 19px;
    }

    .ftco-banner .tm-single-banner {
        margin: 20px 0 25px;
    }
}

@media (min-width: 980px) and (max-width: 1023px) {
    .single-banner-content .text1 {
        font-size: 16px;
        line-height: 25px;
        margin-bottom: 10px;
    }

    .ftco-banner .single-banner-content .text2 {
        font-size: 13px;
        margin: 0 0 10px 0;
    }

    .ftco-banner .single-banner-button a {
        font-size: 14px;
    }

    .ftco-banner .single-banner-content {
        top: 20px;
        left: 4%;
    }

    .ftco-banner .tm-single-banner {
        margin: 20px 0 25px;
    }
}

@media (max-width: 979px) {
    .single-banner-content .text1 {
        font-size: 14px;
        line-height: 20px;
        margin-bottom: 5px;
    }

    .ftco-banner .single-banner-content .text2 {
        font-size: 12px;
        margin: 0 0 5px 0;
    }

    .ftco-banner .single-banner-button a {
        font-size: 14px;
    }

    .ftco-banner .single-banner-content {
        top: 13px;
        left: 2%;
    }

    .ftco-banner .tm-single-banner {
        margin: 10px 0 25px;
    }
}


    #dealsub {
        color: black;
        padding-top:110px;
    }

    .why-ics {
        background-color: #ffffff;
        text-align: center;
        height: 330px;
    }

    .why-ics__intro {
        background: #7fd954;
        padding: 3rem 1rem;
        height: 100%;
    }

        .why-ics__intro h1 {
            margin-bottom: 20px;
            color: #ffffff;
            font-family: "IntroRust-BaseLine";
        }

    @media screen and (min-width: 64em) {
        .why-ics__intro h1 {
            margin-bottom: 34px;
        }
    }

    .why-ics__intro p {
        margin-left: auto;
        margin-right: auto;
        max-width: 265px;
        line-height: 1.4;
        color: #ffffff;
        font-size: 1.5rem;
    }

    @media screen and (min-width: 64em) {
        .why-ics__intro p {
            margin-bottom: 40px;
            max-width: 712px;
        }
    }

    @media screen and (max-width: 63.9375em) {
        .why-ics__intro p span {
            display: none;
        }
    }

    .why-ics__read-more {
        color: #ffffff;
        font-weight: 700;
        font-size: 0.9375rem;
    }

    .why-opus__read-more:hover {
        color: #ffffff;
    }

    .why-opus__read-more svg {
        margin-left: 5px;
        width: 10px;
        height: 15px;
        vertical-align: middle;
        fill: #ffffff;
    }

    .why-opus {
        text-align: center;
    }

    .why-opus__intro {
        background-repeat: no-repeat;
        background-position: top left;
        background-position: 0 100%;
    }

        .why-opus__intro h1 {
            position: relative;
            font-size: 40px;
            font-weight: 600;
            color: #3AB54A;
            font-family: "IntroRust-BaseLine";
        }

    @media screen and (min-width: 64em) {
        .why-opus__intro h1 {
            margin-bottom: 34px;
        }
    }

    .why-opus__intro p {
        margin-left: auto;
        margin-right: auto;
        max-width: 265px;
        line-height: 1.4;
        color: #ffffff;
        font-size: 1.5rem;
    }

    @media screen and (min-width: 64em) {
        .why-opus__intro p {
            margin-bottom: 40px;
            max-width: 712px;
        }
    }

    @media screen and (max-width: 63.9375em) {
        .why-opus__intro p span {
            display: none;
        }
    }

    .why-opus__read-more {
        color: #ffffff;
        font-weight: 700;
        font-size: 0.9375rem;
    }

        .why-opus__read-more:hover {
            color: #ffffff;
        }

        .why-opus__read-more svg {
            margin-left: 5px;
            width: 10px;
            height: 15px;
            vertical-align: middle;
            fill: #ffffff;
        }

    @media screen and (min-width: 64em) {
        .why-opus__boxes {
            max-width: 75rem;
            margin-left: auto;
            margin-right: auto;
            margin-top: -145px;
        }

            .why-opus__boxes:before, .why-opus__boxes:after {
                content: ' ';
                display: table;
                -webkit-flex-basis: 0;
                -ms-flex-preferred-size: 0;
                flex-basis: 0;
                -webkit-box-ordinal-group: 2;
                -webkit-order: 1;
                -ms-flex-order: 1;
                order: 1;
            }

            .why-opus__boxes:after {
                clear: both;
            }
    }

    .why-opus__imagebox {
        background-position: center;
        background-size: cover;
        width: 100%;
        height: 228px;
    }

    @media screen and (min-width: 64em) {
        .why-opus__imagebox {
            width: 43.75%;
            float: left;
            padding-left: 0.65625rem;
            padding-right: 0.65625rem;
            margin-left: 6.25%;
            height: 305px;
        }
    }

    .why-opus__imagebox--image1 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-home-why-opus-1.jpg?31 ');
    }

    .why-opus__imagebox--image2 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-home-why-opus-2.jpg?31 ');
    }

    @media screen and (min-width: 64em) {
        .why-opus__imagebox--image2 {
            position: relative;
            left: 43.75%;
        }
    }

    .why-opus__imagebox--image3 {
        background-image: url(' //cdn.shopify.com/s/files/1/1206/8182/t/7/assets/opus-grows-home-why-opus-3.jpg?31 ');
    }

    .why-opus__textbox {
        background-color: #ffffff;
        width: 100%;
        height: 223px;
    }

    @media screen and (min-width: 64em) {
        .why-opus__textbox {
            width: 43.75%;
            float: left;
            padding-left: 0.65625rem;
            padding-right: 0.65625rem;
            height: 305px;
        }
    }

    .why-opus__textbox svg {
        width: 43px;
        height: 43px;
    }

    @media screen and (min-width: 64em) {
        .why-opus__textbox svg {
            height: 53px;
        }
    }

    .why-opus__textbox h3 {
        text-transform: uppercase;
        line-height: 1.35;
        color: #7fd954;
        font-family: "IntroRustBook-Base";
    }

    .why-opus__textbox p, .why-opus__textbox span {
        margin-bottom: 0;
        text-transform: none;
        color: #555555;
        font-family: "halant";
        font-size: 24px;
    }

    .why-opus__textbox--box1 {
        padding-top: 39px;
    }

    @media screen and (min-width: 64em) {
        .why-opus__textbox--box1 {
            padding-top: 80px;
        }
    }

    .why-opus__textbox--box2 {
        padding-top: 52px;
    }

    @media screen and (min-width: 64em) {
        .why-opus__textbox--box2 {
            position: relative;
            left: -43.75%;
            padding-top: 80px;
        }
    }

    .why-opus__textbox--box3 {
        padding-top: 32px;
    }

    @media screen and (min-width: 64em) {
        .why-opus__textbox--box3 {
            padding-top: 75px;
        }
    }



    @media screen and (min-width: 64em) {
        .cart__row {
            max-width: 75rem;
            margin-left: auto;
            margin-right: auto;
            padding-right: 10.5px;
            padding-left: 10.5px;
        }

            .cart__row:before, .cart__row:after {
                content: ' ';
                display: table;
                -webkit-flex-basis: 0;
                -ms-flex-preferred-size: 0;
                flex-basis: 0;
                -webkit-box-ordinal-group: 2;
                -webkit-order: 1;
                -ms-flex-order: 1;
                order: 1;
            }

            .cart__row:after {
                clear: both;
            }
    }

    .cart__header {
        background-color: #f6f5f5;
        padding: 20px 0 27px;
    }

    @media screen and (min-width: 64em) {
        .cart__header {
            padding: 100px 0 37px;
        }
    }

    .cart__header h1 {
        text-align: center;
        color: #555555;
        font-family: "IntroRust-BaseLine";
    }

    @media screen and (min-width: 64em) {
        .cart__header h1 {
            width: 62.5%;
            float: left;
            padding-left: 0.65625rem;
            padding-right: 0.65625rem;
            margin-left: 6.25%;
            text-align: left;
        }
    }

    .cart__continue-shopping {
        font-size: 1.25rem;
        color: #555555;
        text-transform: uppercase;
    }

    @media screen and (max-width: 63.9375em) {
        .cart__continue-shopping {
            display: none;
        }
    }

    @media screen and (min-width: 64em) {
        .cart__continue-shopping {
            width: 25%;
            float: left;
            padding-left: 0.65625rem;
            padding-right: 0.65625rem;
            margin-left: 6.25%;
            margin-left: 4%;
            margin-top: 16px;
        }
    }

    .cart__continue-shopping:hover {
        color: #555555;
    }

    .cart__continue-shopping svg {
        width: 13px;
        height: 13px;
        fill: #555555;
    }

    .cart__continue-shopping--mobile {
        display: block;
        padding-bottom: 25px;
        text-align: center;
    }

    @media screen and (min-width: 64em) {
        .cart__continue-shopping--mobile {
            display: none;
        }
    }

    .cart__container {
        background-color: #f6f5f5;
    }

    @media screen and (min-width: 64em) {
        .cart__content {
            width: 87.5%;
            float: left;
            padding-left: 0.65625rem;
            padding-right: 0.65625rem;
            margin-left: 6.25%;
        }
    }

    .cart__content-header {
        max-width: 75rem;
        margin-left: auto;
        margin-right: auto;
        background-color: #f6f5f5;
        text-align: center;
    }

        .cart__content-header:before, .cart__content-header:after {
            content: ' ';
            display: table;
            -webkit-flex-basis: 0;
            -ms-flex-preferred-size: 0;
            flex-basis: 0;
            -webkit-box-ordinal-group: 2;
            -webkit-order: 1;
            -ms-flex-order: 1;
            order: 1;
        }

        .cart__content-header:after {
            clear: both;
        }

    @media screen and (max-width: 63.9375em) {
        .cart__content-header {
            display: none;
        }
    }

    .cart__content-header p {
        display: inline-block;
        color: #555555;
        font-size: 1.25rem;
    }

    .cart__content-header-item {
        width: 21.42857%;
        float: left;
        padding-left: 0.65625rem;

    }

.cart__content-header-price {
    width: 21.42857%;
    float: left;
    padding-left: 0.65625rem;
    padding-right: 0.65625rem;
    margin-left: 4.28571%;
    position: relative;
    left: -1.85714%;
}

.cart__content-header-quantity {
    width: 21.42857%;
    float: left;
    padding-left: 0.65625rem;
    padding-right: 0.65625rem;
    position: absolute;
    left: 40.14286%;
}
.cart__content-header-tax {
    position: relative;
    left: 6.14286%;
}

.cart__content-header-total {
    width: 21.42857%;
    padding-left: 0.65625rem;
    padding-right: 0.65625rem;
    position: relative;
    left: 14.14286%;
}

    @media screen and (min-width: 64em) {
        .cart__item-container {
            background-color: #ffffff;
            padding-bottom: 25px;
        }

            .cart__item-container:before, .cart__item-container:after {
                content: ' ';
                display: table;
                -webkit-flex-basis: 0;
                -ms-flex-preferred-size: 0;
                flex-basis: 0;
                -webkit-box-ordinal-group: 2;
                -webkit-order: 1;
                -ms-flex-order: 1;
                order: 1;
            }

            .cart__item-container:after {
                clear: both;
            }
    }

    .cart__item {
        background-color: #ffffff;
        padding-bottom: 30px;
        padding-left: 30px;
    }

    @media screen and (min-width: 64em) {
        .cart__item:before, .cart__item:after {
            content: ' ';
            display: table;
            -webkit-flex-basis: 0;
            -ms-flex-preferred-size: 0;
            flex-basis: 0;
            -webkit-box-ordinal-group: 2;
            -webkit-order: 1;
            -ms-flex-order: 1;
            order: 1;
        }

        .cart__item:after {
            clear: both;
        }
    }

    .cart__item + .cart__item {
        border-top: 2px solid #cac9c9;
    }

    @media screen and (min-width: 64em) {
        .cart__item + .cart__item {
            border-top: 2px solid #f6f5f5;
        }
    }

    .cart__item-thumb {
        padding-top: 20px;
        text-align: center;
    }

    @media screen and (min-width: 64em) {
        .cart__item-thumb {
            float: left;
            width: 21.42857%;
            padding-top: 20px;
        }
    }


.clearfix .cart__item-thumb img {
    height: 100px;
}

    .cart__item-thumb img {
        height: 190px;
    }

    @media screen and (min-width: 64em) {
        .cart__item-thumb img {
            height: 190px;
        }
        .clearfix .cart__item-thumb img {
            height: 190px;
        }

    }

    .cart__item-title {
        margin: 25px 0 25px;
        text-align: center;
    }

    @media screen and (min-width: 64em) {
        .cart__item-title {
        
            width: 21.42857%;
            margin: 95px 0 0;
        }
    }

    .cart__item-title a {
        color: #555555;
        font-size: 1.25rem;
    }

    @media screen and (min-width: 64em) {
        .cart__item-title a {
            font-size: 0.9375rem;
        }
    }

    .cart__item-title a:hover {
        color: #555555;
    }

    .cart__item-title--product {
        font-weight: 700;
    }

    .cart__item-title--variant {
        margin-top: -5px;
        font-weight: 300;
    }

    @media screen and (min-width: 64em) {
        .cart__item-title--variant {
            margin-top: 0;
        }
    }

    @media screen and (max-width: 63.9375em) {
        .cart__item-box {
            max-width: 75rem;
            margin-left: auto;
            margin-right: auto;
            margin-left: 0.6235rem;
            margin-right: 0.6235rem;
            border-top: 2px solid #f6f5f5;
            height: 50px;
        }

            .cart__item-box:before, .cart__item-box:after {
                content: ' ';
                display: table;
                -webkit-flex-basis: 0;
                -ms-flex-preferred-size: 0;
                flex-basis: 0;
                -webkit-box-ordinal-group: 2;
                -webkit-order: 1;
                -ms-flex-order: 1;
                order: 1;
            }

            .cart__item-box:after {
                clear: both;
            }
    }

    @media screen and (min-width: 64em) {
        .cart__item-box {
            float: left;
            width: 21.42857%;
            margin-top: 95px;
            text-align: center;
        }

        .cart__item-box--quantity {
            margin-left: -7.14285%;
        }
    }

    .cart__item-box p {
        width: 56.25%;
        float: left;
        padding-left: 0.65625rem;
        padding-right: 0.65625rem;
        margin-left: 6.25%;
        margin-bottom: 0;
        line-height: 50px;
        color: #555555;
        font-family: "IntroRustBook-Base";
        font-size: 1.25rem;
    }

    @media screen and (min-width: 64em) {
        .cart__item-box p {
            display: none;
        }
    }

    .cart__item-price {
        color: #555555;
        font-weight: 700;
        font-size: 1.25rem;
    }

    .cart__item-price2 {
        color: #555555;
        font-weight: 700;
        font-size: 1.25rem;
        position:relative;
        top:24px;
    }

    @media screen and (max-width: 63.9375em) {
        .cart__item-price {
            width: 31.25%;
            float: left;
            line-height: 50px;
        }

        .cart__item-price2 {
            width: 31.25%;
            float: left;
            line-height: 50px;
            top: 0;
        }
        .cart__item-tax {
            width: 31.25%;
            float: left;
            line-height: 50px;
        }
    }

    @media screen and (min-width: 64em) {
        .cart__item-price {
            font-size: 0.9375rem;
        }

        .cart__item-price2 {
            font-size: 0.9375rem;
        }
    }

.cart__item-quantity {
    color: #555555;
    font-weight: 700;
    font-size: 1.25rem;
    position: relative;
    left: 35px;
    top: 24px;
}

    @media screen and (max-width: 63.9375em) {
        .cart__item-quantity {
            width: 37.5%;
            float: left;
            height: 50px;
            line-height: 50px;
            left: -10px;
            top: 0;
        }
    }

    @media screen and (min-width: 64em) {
        .cart__item-quantity {
            font-size: 0.9375rem;
        }
    }

    .cart__item-quantity svg {
        width: 12px;
        height: 12px;
    }

    .cart__item-quantity span {
        display: inline-block;
        border: 2px solid #555555;
        width: 55px;
        line-height: 20px;
        margin: 0 5px 0 8px;
        text-align: center;

    }

    .cart__item-total {
        color: #555555;
        font-weight: 700;
        font-size: 1.25rem;
    }

    .cart__item-total2 {
        color: #555555;
        font-weight: 700;
        font-size: 1.25rem;
    }

.cart__item-tax {
    color: #555555;
    font-weight: 700;
    font-size: 1.25rem;
}
@media screen and (max-width: 63.9375em) {
    .cart__item-total {
            width: 31.25%;
            padding-left: 0.65625rem;
            padding-right: 0.65625rem;
            text-align: right;
        }

        .cart__item-total2 {
        }
    }

    .most-searched h3 {
        padding: 50px;
        font-size: 40px;
        font-weight: 600;
        color: #3AB54A;
        font-family: "IntroRust-BaseLine"
    }

    @media screen and (min-width: 64em) {
        .cart__item-total {
            font-size: 0.9375rem;
        }

        .cart__item-total2 {
            font-size: 0.9375rem;
        }
    }

    .cart__item-remove {
        float: right;
        margin-top: -5px;
        margin-right: 10%;
        color: #555555;
        font-size: 0.9375rem;
        font-style: italic;
    }

    @media screen and (min-width: 64em) {
        .cart__item-remove {
            float: none;
            margin-top: 10px;
            margin-right: 0;
        }
    }

    .cart__add-on {
        display: none;
        padding-top: 15px;
        background-color: #FD0031;
        height: 100px;
        text-align: center;
        color: #ffffff;
    }

    @media screen and (min-width: 64em) {
        .cart__add-on {
            max-width: 75rem;
            margin-left: auto;
            margin-right: auto;
            padding-top: 0;
            height: 57px;
            line-height: 57px;
        }

            .cart__add-on:before, .cart__add-on:after {
                content: ' ';
                display: table;
                -webkit-flex-basis: 0;
                -ms-flex-preferred-size: 0;
                flex-basis: 0;
                -webkit-box-ordinal-group: 2;
                -webkit-order: 1;
                -ms-flex-order: 1;
                order: 1;
            }

            .cart__add-on:after {
                clear: both;
            }
    }

    .cart__add-on svg {
        width: 20px;
        height: 20px;
    }

    .cart__add-on p {
        text-transform: uppercase;
        font-weight: 700;
        font-size: 0.9375rem;
    }

    @media screen and (min-width: 64em) {
        .cart__add-on p {
            width: 75%;
            float: left;
            padding-left: 0.65625rem;
            padding-right: 0.65625rem;
            position: relative;
            left: -14.28571%;
            margin: 13px 0 0;
            font-size: 1.25rem;
        }
    }

    .cart__add-on p span {
        display: block;
        text-transform: none;
        font-weight: 400;
        font-style: italic;
    }

    @media screen and (min-width: 64em) {
        .cart__add-on p span {
            display: inline-block;
            margin-left: 10px;
        }
    }

    @media screen and (min-width: 64em) {
        .cart__add-on-link {
            width: 21.42857%;
            float: left;
            padding-left: 0.65625rem;
            padding-right: 0.65625rem;
            position: relative;
            left: 78.57143%;
            margin-top: 17px;
        }
    }

    .cart__add-on-link input[type="submit"] {
        display: none;
    }

    .cart__disclaimer {
        margin: 10px;
        text-align: center;
        color: #555555;
        font-size: 0.9375rem;
    }

    @media screen and (min-width: 64em) {
        .cart__disclaimer--mobile {
            display: none;
        }
    }

    @media screen and (max-width: 63.9375em) {
        .cart__disclaimer--desktop {
            display: none;
        }
    }

    .cart__subtotal-container {
        background-color: #cac9c9;
    }

    @media screen and (min-width: 64em) {
        .cart__subtotal-container {
            background-color: #f6f5f5;
            text-align: right;
        }
    }

    @media screen and (max-width: 63.9375em) {
        .cart__subtotal-box {
            max-width: 75rem;
            margin-left: auto;
            margin-right: auto;
            margin-left: 0.6235rem;
            margin-right: 0.6235rem;
            height: 50px;
        }

            .cart__subtotal-box:before, .cart__subtotal-box:after {
                content: ' ';
                display: table;
                -webkit-flex-basis: 0;
                -ms-flex-preferred-size: 0;
                flex-basis: 0;
                -webkit-box-ordinal-group: 2;
                -webkit-order: 1;
                -ms-flex-order: 1;
                order: 1;
            }

            .cart__subtotal-box:after {
                clear: both;
            }
    }

    @media screen and (min-width: 64em) {
        .cart__subtotal-box {
            margin-right: 7.5%;
            height: 105px;
            text-align: right;
        }
    }

    .cart__subtotal-box p {
        margin-bottom: 0;
        color: #555555;
        font-family: "IntroRustBook-Base";
        font-size: 1.25rem;
    }

    @media screen and (max-width: 63.9375em) {
        .cart__subtotal-box p {
            width: 56.25%;
            float: left;
            padding-left: 0.65625rem;
            padding-right: 0.65625rem;
            margin-left: 6.25%;
            line-height: 50px;
        }
    }

    @media screen and (min-width: 64em) {
        .cart__subtotal-box p {
            display: inline-block;
            margin-right: 10px;
            line-height: 105px;
        }
    }

    .cart__subtotal {
        text-align: right;
        color: #555555;
        font-weight: 700;
        font-size: 1.25rem;
    }

    @media screen and (max-width: 63.9375em) {
        .cart__subtotal {
            width: 31.25%;
            float: left;
            padding-left: 0.65625rem;
            padding-right: 0.65625rem;
            line-height: 50px;
        }
    }

    @media screen and (min-width: 64em) {
        .cart__subtotal {
            display: inline-block;
            line-height: 105px;
        }
    }

    .cart__checkout {
        padding: 45px 0 35px;
        text-align: center;
    }

    @media screen and (min-width: 64em) {
        .cart__checkout {
            padding: 0 0 160px;
        }
    }

    .cart__checkout input[type="button"] {
        width: 200px;
        height: 50px;
        line-height: 2;
    }

    @media screen and (min-width: 64em) {
        .cart__checkout input[type="button"] {
            float: right;
            margin-right: 7.5%;
        }
    }

    .cart__empty {
        background-color: #f6f5f5;
        padding: 125px 0 175px;
        text-align: center;
    }

    @media screen and (min-width: 64em) {
        .cart__empty {
            padding: 140px 0 190px;
        }
    }

    .cart__empty p {
        margin-bottom: 55px;
        text-transform: uppercase;
        font-size: 1.25rem;
    }

    .cart__shop-link-button {
        width: 200px;
    }

    .homepage__hero-container {
        position: relative;
    }


    @media screen and (min-width: 620px) {
        .landing-button-cont {
            position: absolute;
            top: 90%;
            left: 45%;
            z-index:-1;
        }
        .landing-button {
            position: absolute;
            bottom: 10%;
            left: 45%;
            z-index: 999;
            background: #9F2228;
            color: #fff;
            font-weight: 700;
            font-size: 30px;
            padding: 20px;
            margin-top: -1.5rem;
            -webkit-transition: all 0.3s;
            transition: all 0.3s;
            display: block;
            line-height: 32px;
            width: 210px;
            z-index: -1;
            font-family: "IntroRust-BaseLine";
        }

            .landing-button svg {
                display: none
            }

            .landing-button:hover {
                background: #498bc9;
                color: #fff;
                cursor: pointer;
            }
    }

.arrow {
    position: absolute;
    bottom: 6%;
    left: 50%;


}
.arrow2 {
    position: relative;
   
}
        .arrow a {
            color: white;
            text-decoration: none;
        }

    .arrow2 a {
        color: #28a745;
    }

    .bounce {
        -moz-animation: bounce 2s infinite;
        -webkit-animation: bounce 2s infinite;
        animation: bounce 2s infinite;
    }

    @keyframes bounce {
        0%, 20%, 50%, 80%, 100% {
            transform: translateY(0);
        }

        40% {
            transform: translateY(-30px);
        }

        60% {
            transform: translateY(-15px);
        }
    }

    @media screen and (max-width:600px) {
       
        
        .landing-button {
            position: absolute;
            bottom: 10%;
            left: 30%;
            z-index: 999;
            background: #3AB54A;
            color: #fff;
            font-weight: 700;
            font-size: 1.25rem;
            padding: 1rem 2rem;
            margin-top: -1.5rem;
            -webkit-transition: all 0.3s;
            transition: all 0.3s;
            display: block;
            font-family: "IntroRust-BaseLine";
        }

            .landing-button svg {
                display: none
            }
    }



    @media screen and (max-width: 63.9375em) {
        .product__video {
            display: none;
        }
    }

    .content {
        padding-top: 80px;
    }

    @media screen and (min-width: 64em) {
        .content {
            padding-top: 110px;
        }
    }

    /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwiY29yZS9zYXNzL19zZXR0aW5ncy5zY3NzIiwiY29yZS9zYXNzL3V0aWxzL2FuaW1hdGlvbnMuY2xpZW50LnV0aWxzLnNhc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19zZXJpZXMuc2NzcyIsImNvcmUvc2Fzcy92ZW5kb3JzL25pY2Utc2VsZWN0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19hbmltYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3V0aWwvX2tleWZyYW1lLnNjc3MiLCJjb3JlL3Nhc3Mvdmlld3Mvc25pcHBldHMvZm9vdGVyLmNsaWVudC52aWV3cy5zYXNzIiwiY29yZS9zYXNzL3V0aWxzL2J1dHRvbnMuY2xpZW50LnV0aWxzLnNhc3MiLCJjb3JlL3Nhc3Mvdmlld3MvdGVtcGxhdGVzL3Byb2R1Y3QuY2xpZW50LnZpZXdzLnNhc3MiLCJjb3JlL3Nhc3Mvdmlld3Mvc25pcHBldHMvY29udGFjdC11cy5jbGllbnQudmlld3Muc2FzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NsYXNzZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcm93LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19zaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19sYXlvdXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLW1lbnUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYmFkZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhbGxvdXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS1pY29uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXgtdmlkZW8uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVkaWEtb2JqZWN0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb3JiaXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy1iYXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3dpdGNoLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGh1bWJuYWlsLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RpdGxlLWJhci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b29sdGlwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RvcC1iYXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwiY29yZS9zYXNzL3ZpZXdzL3NuaXBwZXRzL2FydGljbGUtbWVudS5jbGllbnQudmlld3Muc2FzcyIsImNvcmUvc2Fzcy92aWV3cy9zbmlwcGV0cy9hcnRpY2xlLXNpZGViYXIuY2xpZW50LnZpZXdzLnNhc3MiLCJjb3JlL3Nhc3Mvdmlld3Mvc25pcHBldHMvY29taW5nLXNvb24uY2xpZW50LnZpZXdzLnNhc3MiLCJjb3JlL3Nhc3Mvdmlld3Mvc25pcHBldHMvaW5ncmVkaWVudHMuY2xpZW50LnZpZXdzLnNhc3MiLCJjb3JlL3Nhc3MvdXRpbHMvbWl4aW5zLmNsaWVudC51dGlscy5zYXNzIiwiY29yZS9zYXNzL3ZpZXdzL3NuaXBwZXRzL2hhbmQtZGVsaXZlcmVkLmNsaWVudC52aWV3cy5zYXNzIiwiY29yZS9zYXNzL3ZpZXdzL3NuaXBwZXRzL2hpZ2hsaWdodC1hcnRpY2xlLmNsaWVudC52aWV3cy5zYXNzIiwiY29yZS9zYXNzL3ZpZXdzL3NuaXBwZXRzL2xhdGVzdC1hcnRpY2xlcy5jbGllbnQudmlld3Muc2FzcyIsImNvcmUvc2Fzcy92aWV3cy9zbmlwcGV0cy9taW5pLWNhcnQuY2xpZW50LnZpZXdzLnNhc3MiLCJjb3JlL3Nhc3Mvdmlld3Mvc25pcHBldHMvbmF0dXJhbC1vcmdhbmljLmNsaWVudC52aWV3cy5zYXNzIiwiY29yZS9zYXNzL3ZpZXdzL3NuaXBwZXRzL25hdi5jbGllbnQudmlld3Muc2FzcyIsImNvcmUvc2Fzcy92aWV3cy9zbmlwcGV0cy9wcm9kdWN0LXN1bW1hcnkuY2xpZW50LnZpZXdzLnNhc3MiLCJjb3JlL3Nhc3Mvdmlld3Mvc25pcHBldHMvcHJvZHVjdC1leHRlbmRlZC5jbGllbnQudmlld3Muc2FzcyIsImNvcmUvc2Fzcy92aWV3cy9zbmlwcGV0cy9wcm9kdWN0LWxvb3AuY2xpZW50LnZpZXdzLnNhc3MiLCJjb3JlL3Nhc3Mvdmlld3Mvc25pcHBldHMvcHJvZHVjdC11c2FnZS5jbGllbnQudmlld3Muc2FzcyIsImNvcmUvc2Fzcy92aWV3cy9zbmlwcGV0cy9yZWxhdGVkLXByb2R1Y3RzLmNsaWVudC52aWV3cy5zYXNzIiwiY29yZS9zYXNzL3ZpZXdzL3NuaXBwZXRzL3Nob3AuY2xpZW50LnZpZXdzLnNhc3MiLCJjb3JlL3Nhc3Mvdmlld3Mvc25pcHBldHMvd2h5LW9wdXMuY2xpZW50LnZpZXdzLnNhc3MiLCJjb3JlL3Nhc3Mvdmlld3MvdGVtcGxhdGVzLzQwNC5jbGllbnQudmlld3Muc2FzcyIsImNvcmUvc2Fzcy92aWV3cy90ZW1wbGF0ZXMvYXJ0aWNsZS5jbGllbnQudmlld3Muc2FzcyIsImNvcmUvc2Fzcy92aWV3cy90ZW1wbGF0ZXMvYmxvZy5jbGllbnQudmlld3Muc2FzcyIsImNvcmUvc2Fzcy92aWV3cy90ZW1wbGF0ZXMvY2FydC5jbGllbnQudmlld3Muc2FzcyIsImNvcmUvc2Fzcy92aWV3cy90ZW1wbGF0ZXMvaW5kZXguY2xpZW50LnZpZXdzLnNhc3MiLCJjb3JlL3Nhc3Mvdmlld3MvdGVtcGxhdGVzL2hvdy10by1ncm93LmNsaWVudC52aWV3cy5zYXNzIiwiY29yZS9zYXNzL3ZpZXdzL3RlbXBsYXRlcy9qb2luLW91ci10ZWFtLmNsaWVudC52aWV3cy5zYXNzIiwiY29yZS9zYXNzL3ZpZXdzL3RlbXBsYXRlcy9wYWdlLmNsaWVudC52aWV3cy5zYXNzIiwibWFpbi5zYXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ3lDakIsNERBQVk7QUFxRlosZ0RBQVk7QUFFWjtFQUFZLGtDQUFrQztFQUFDLDJCQUFRO0VBQW1CLHdMQUF3SyxFQUFBOztBQUVsUDtFQUFZLGtDQUFrQztFQUFDLDJCQUFRO0VBQW1CLHdMQUF3SyxFQUFBOztBQzFFaFA7Ozs7Ozs7RUNuREEscUNBQTZCO1VBQTdCLDZCQUE2QjtFQUM3QixrQ0FBMEI7VUFBMUIsMEJBQTBCLEVBSzNCO0VBSEM7Ozs7Ozs7SUFDRSxzQ0FBOEI7WUFBOUIsOEJBQThCLEVBQy9COztBQ0pIO0VBRUUsc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQix5Q0FBaUM7RUFBakMsaUNBQWlDO0VBQ2pDLDhCQUE4QjtFQUM5QixtQkFadUI7RUFjdkIsMEJIc0NVO0VHckNWLGdCQUFnQjtFQUVoQixrQkFBMEI7RUFDMUIsY0FBYztFQUNkLDRCQUE0QjtFQUM1QixpQkFBaUI7RUFDakIscUJDMkRvQjtFRDFEcEIsbUJBQW1CO0VBQ25CLDBCQUFrQjtLQUFsQix1QkFBa0I7TUFBbEIsc0JBQWtCO1VBQWxCLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFDcEIsZ0JBQWdCO0VBQ2hCLHlD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QUNuQixhQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsY0FIbUIsRUxtRmQ7O0FBTUg7RUsvREosbUJEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosV0Nlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixVQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsV0FIbUIsRUxtRmQ7O0FBTUg7RUsvREosb0JEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosY0Nlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixhQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsY0FIbUIsRUxtRmQ7O0FBTUg7RUsvREosaUJEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosYUNlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixZQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsYUFIbUIsRUxtRmQ7O0FBTUg7RUsvREosb0JEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosY0Nlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixhQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsY0FIbUIsRUxtRmQ7O0FBTUg7RUsvREosbUJEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosV0Nlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixVQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsV0FIbUIsRUxtRmQ7O0FBTUg7RUsvREosb0JEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosY0Nlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixhQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsY0FIbUIsRUxtRmQ7O0FBTUg7RUsvREosaUJEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosYUNlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixZQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsYUFIbUIsRUxtRmQ7O0FBTUg7RUsvREosb0JEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosY0Nlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixhQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsY0FIbUIsRUxtRmQ7O0FBTUg7RUsvREosbUJEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosV0Nlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixVQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsV0FIbUIsRUxtRmQ7O0FBTUg7RUsvREosb0JEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosY0Nlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixhQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsY0FIbUIsRUxtRmQ7O0FBTUg7RUsvREosaUJEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosYUNlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixZQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsYUFIbUIsRUxtRmQ7O0FBTUg7RUsvREosb0JEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosY0Nlc0IsRUp5RGpCOztBQUlDO0VLM0VKLG1CQUFtQjtFQUNuQixhQUhtQixFTCtFZDs7QUFFRDtFSy9FSixtQkFBbUI7RUFDbkIsY0FIbUIsRUxtRmQ7O0FBTUg7RUsvREosbUJEVnNCLEVKMkVqQjs7QUFwQkQ7RUd0RUosWUNlc0IsRUp5RGpCOztBQWdCRDtFSy9ESixvQkRWc0IsRUoyRWpCOztBQUtEO0VNNUZGLFlBQWlCO0VBQ2pCLFlQbUZ1RCxFT3RFeEQ7RU44RUc7SU14RkEsWUFBWSxFQUNiO0VOdUZDO0lNcEZBLFlBQVksRUFDYjtFTm1GQztJTWhGQSxZQUFZLEVBQ2I7O0FOK0VDO0VNNUZGLFdBQWlCO0VBQ2pCLFlQbUZ1RCxFT3RFeEQ7RU44RUc7SU14RkEsWUFBWSxFQUNiO0VOdUZDO0lNcEZBLFlBQVksRUFDYjtFTm1GQztJTWhGQSxZQUFZLEVBQ2I7O0FOK0VDO0VNNUZGLGlCQUFpQjtFQUNqQixZUG1GdUQsRU90RXhEO0VOOEVHO0lNeEZBLFlBQVksRUFDYjtFTnVGQztJTXBGQSxZQUFZLEVBQ2I7RU5tRkM7SU1oRkEsWUFBWSxFQUNiOztBTitFQztFTTVGRixXQUFpQjtFQUNqQixZUG1GdUQsRU90RXhEO0VOOEVHO0lNeEZBLFlBQVksRUFDYjtFTnVGQztJTXBGQSxZQUFZLEVBQ2I7RU5tRkM7SU1oRkEsWUFBWSxFQUNiOztBTitFQztFTTVGRixXQUFpQjtFQUNqQixZUG1GdUQsRU90RXhEO0VOOEVHO0lNeEZBLFlBQVksRUFDYjtFTnVGQztJTXBGQSxZQUFZLEVBQ2I7RU5tRkM7SU1oRkEsWUFBWSxFQUNiOztBTitFQztFTTVGRixpQkFBaUI7RUFDakIsWVBtRnVELEVPdEV4RDtFTjhFRztJTXhGQSxZQUFZLEVBQ2I7RU51RkM7SU1wRkEsWUFBWSxFQUNiO0VObUZDO0lNaEZBLFlBQVksRUFDYjs7QU5xRkQ7RUV6R0YsZ0JBQWdCO0VBQ2hCLGlCQUFpQixFRnlHbUI7O0FBRGxDO0VBSUksZUFBZTtFQUNmLGdCQUFnQixFQUNqQjs7QUFHSDtFRXpHRix5QkFEaUI7RUFFakIsMEJBRmlCLEVGNkc4Qjs7QUFJN0M7RUtoSEEsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixtQkFBbUIsRUxnSGxCOztBQUdEOzs7RUsxR0YsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsWUFBWSxFTHlHVDs7QU9NRDtFUDVERTtJR3RFSixhQ2VzQixFSnlEakI7RUFJQztJSzNFSixtQkFBbUI7SUFDbkIsWUFIbUIsRUwrRWQ7RUFFRDtJSy9FSixtQkFBbUI7SUFDbkIsYUFIbUIsRUxtRmQ7RUFNSDtJSy9ESixnQkRic0IsRUo4RWpCO0VBcEJEO0lHdEVKLGFDZXNCLEVKeURqQjtFQUlDO0lLM0VKLG1CQUFtQjtJQUNuQixZQUhtQixFTCtFZDtFQUVEO0lLL0VKLG1CQUFtQjtJQUNuQixhQUhtQixFTG1GZDtFQU1IO0lLL0RKLG1CRFZzQixFSjJFakI7RUFwQkQ7SUd0RUosY0Nlc0IsRUp5RGpCO0VBSUM7SUszRUosbUJBQW1CO0lBQ25CLGFBSG1CLEVMK0VkO0VBRUQ7SUsvRUosbUJBQW1CO0lBQ25CLGNBSG1CLEVMbUZkO0VBTUg7SUsvREosbUJEVnNCLEVKMkVqQjtFQXBCRDtJR3RFSixXQ2VzQixFSnlEakI7RUFJQztJSzNFSixtQkFBbUI7SUFDbkIsVUFIbUIsRUwrRWQ7RUFFRDtJSy9FSixtQkFBbUI7SUFDbkIsV0FIbUIsRUxtRmQ7RUFNSDtJSy9ESixvQkRWc0IsRUoyRWpCO0VBcEJEO0lHdEVKLGNDZXNCLEVKeURqQjtFQUlDO0lLM0VKLG1CQUFtQjtJQUNuQixhQUhtQixFTCtFZDtFQUVEO0lLL0VKLG1CQUFtQjtJQUNuQixjQUhtQixFTG1GZDtFQU1IO0lLL0RKLGlCRFZzQixFSjJFakI7RUFwQkQ7SUd0RUosYUNlc0IsRUp5RGpCO0VBSUM7SUszRUosbUJBQW1CO0lBQ25CLFlBSG1CLEVMK0VkO0VBRUQ7SUsvRUosbUJBQW1CO0lBQ25CLGFBSG1CLEVMbUZkO0VBTUg7SUsvREosb0JEVnNCLEVKMkVqQjtFQXBCRDtJR3RFSixjQ2VzQixFSnlEakI7RUFJQztJSzNFSixtQkFBbUI7SUFDbkIsYUFIbUIsRUwrRWQ7RUFFRDtJSy9FSixtQkFBbUI7SUFDbkIsY0FIbUIsRUxtRmQ7RUFNSDtJSy9ESixtQkRWc0IsRUoyRWpCO0VBcEJEO0lHdEVKLFdDZXNCLEVKeURqQjtFQUlDO0lLM0VKLG1CQUFtQjtJQUNuQixVQUhtQixFTCtFZDtFQUVEO0lLL0VKLG1CQUFtQjtJQUNuQixXQUhtQixFTG1GZDtFQU1IO0lLL0RKLG9CRFZzQixFSjJFakI7RUFwQkQ7SUd0RUosY0Nlc0IsRUp5RGpCO0VBSUM7SUszRUosbUJBQW1CO0lBQ25CLGFBSG1CLEVMK0VkO0VBRUQ7SUsvRUosbUJBQW1CO0lBQ25CLGNBSG1CLEVMbUZkO0VBTUg7SUsvREosaUJEVnNCLEVKMkVqQjtFQXBCRDtJR3RFSixhQ2VzQixFSnlEakI7RUFJQztJSzNFSixtQkFBbUI7SUFDbkIsWUFIbUIsRUwrRWQ7RUFFRDtJSy9FSixtQkFBbUI7SUFDbkIsYUFIbUIsRUxtRmQ7RUFNSDtJSy9ESixvQkRWc0IsRUoyRWpCO0VBcEJEO0lHdEVKLGNDZXNCLEVKeURqQjtFQUlDO0lLM0VKLG1CQUFtQjtJQUNuQixhQUhtQixFTCtFZDtFQUVEO0lLL0VKLG1CQUFtQjtJQUNuQixjQUhtQixFTG1GZDtFQU1IO0lLL0RKLG1CRFZzQixFSjJFakI7RUFwQkQ7SUd0RUosV0Nlc0IsRUp5RGpCO0VBSUM7SUszRUosbUJBQW1CO0lBQ25CLFVBSG1CLEVMK0VkO0VBRUQ7SUsvRUosbUJBQW1CO0lBQ25CLFdBSG1CLEVMbUZkO0VBTUg7SUsvREosb0JEVnNCLEVKMkVqQjtFQXBCRDtJR3RFSixjQ2VzQixFSnlEakI7RUFJQztJSzNFSixtQkFBbUI7SUFDbkIsYUFIbUIsRUwrRWQ7RUFFRDtJSy9FSixtQkFBbUI7SUFDbkIsY0FIbUIsRUxtRmQ7RUFNSDtJSy9ESixpQkRWc0IsRUoyRWpCO0VBcEJEO0lHdEVKLGFDZXNCLEVKeURqQjtFQUlDO0lLM0VKLG1CQUFtQjtJQUNuQixZQUhtQixFTCtFZDtFQUVEO0lLL0VKLG1CQUFtQjtJQUNuQixhQUhtQixFTG1GZDtFQU1IO0lLL0RKLG9CRFZzQixFSjJFakI7RUFwQkQ7SUd0RUosY0Nlc0IsRUp5RGpCO0VBSUM7SUszRUosbUJBQW1CO0lBQ25CLGFBSG1CLEVMK0VkO0VBRUQ7SUsvRUosbUJBQW1CO0lBQ25CLGNBSG1CLEVMbUZkO0VBTUg7SUsvREosbUJEVnNCLEVKMkVqQjtFQXBCRDtJR3RFSixZQ2VzQixFSnlEakI7RUFnQkQ7SUsvREosb0JEVnNCLEVKMkVqQjtFQUtEO0lNNUZGLFlBQWlCO0lBQ2pCLFlQbUZ1RCxFT3RFeEQ7SU44RUc7TU14RkEsWUFBWSxFQUNiO0lOdUZDO01NcEZBLFlBQVksRUFDYjtJTm1GQztNTWhGQSxZQUFZLEVBQ2I7RU4rRUM7SU01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QUNuQixjQUhtQixFTG1GZDtFQU1IO0lLL0RKLGlCRFZzQixFSjJFakI7RUFwQkQ7SUd0RUosYUNlc0IsRUp5RGpCO0VBSUM7SUszRUosbUJBQW1CO0lBQ25CLFlBSG1CLEVMK0VkO0VBRUQ7SUsvRUosbUJBQW1CO0lBQ25CLGFBSG1CLEVMbUZkO0VBTUg7SUsvREosb0JEVnNCLEVKMkVqQjtFQXBCRDtJR3RFSixjQ2VzQixFSnlEakI7RUFJQztJSzNFSixtQkFBbUI7SUFDbkIsYUFIbUIsRUwrRWQ7RUFFRDtJSy9FSixtQkFBbUI7SUFDbkIsY0FIbUIsRUxtRmQ7RUFNSDtJSy9ESixtQkRWc0IsRUoyRWpCO0VBcEJEO0lHdEVKLFdDZXNCLEVKeURqQjtFQUlDO0lLM0VKLG1CQUFtQjtJQUNuQixVQUhtQixFTCtFZDtFQUVEO0lLL0VKLG1CQUFtQjtJQUNuQixXQUhtQixFTG1GZDtFQU1IO0lLL0RKLG9CRFZzQixFSjJFakI7RUFwQkQ7SUd0RUosY0Nlc0IsRUp5RGpCO0VBSUM7SUszRUosbUJBQW1CO0lBQ25CLGFBSG1CLEVMK0VkO0VBRUQ7SUsvRUosbUJBQW1CO0lBQ25CLGNBSG1CLEVMbUZkO0VBTUg7SUsvREosaUJEVnNCLEVKMkVqQjtFQXBCRDtJR3RFSixhQ2VzQixFSnlEakI7RUFJQztJSzNFSixtQkFBbUI7SUFDbkIsWUFIbUIsRUwrRWQ7RUFFRDtJSy9FSixtQkFBbUI7SUFDbkIsYUFIbUIsRUxtRmQ7RUFNSDtJSy9ESixvQkRWc0IsRUoyRWpCO0VBcEJEO0lHdEVKLGNDZXNCLEVKeURqQjtFQUlDO0lLM0VKLG1CQUFtQjtJQUNuQixhQUhtQixFTCtFZDtFQUVEO0lLL0VKLG1CQUFtQjtJQUNuQixjQUhtQixFTG1GZDtFQU1IO0lLL0RKLG1CRFZzQixFSjJFakI7RUFwQkQ7SUd0RUosWUNlc0IsRUp5RGpCO0VBZ0JEO0lLL0RKLG9CRFZzQixFSjJFakI7RUFLRDtJTTVGRixZQUFpQjtJQUNqQixZUG1GdUQsRU90RXhEO0lOOEVHO01NeEZBLFlBQVksRUFDYjtJTnVGQztNTXBGQSxZQUFZ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dEJoTXNCLEVzQmlNdkI7O0FBR0Q7RUFFSSxxQnRCck0yQjtFc0JzTTNCLGlCQUFpQixFQUNsQjs7QUFJSDtFQUNFLG9CdEIzTXlCLEVzQmlOMUI7RUFQRDtJQUlJLHNCdEI1TThCO0lzQjZNOUIsaUJ0QjFTbUIsRXNCMlNwQjs7QUFJSDtFQUNFLGlCdEIxTzBCO0VzQjJPMUIsdUNsQnpUa0I7RWtCMFRsQiwrQnRCdFVpQixFc0I0VWxCO0VBVEQ7SUFNSSxpQnRCaFBvQjtJc0JpUHBCLGV0QnpVYSxFc0IwVWQ7O0FBSUg7RUFDRSxlQUFlO0VBQ2YscUJsQnJVa0I7RWtCc1VsQixldEJqVmUsRXNCc1ZoQjtFQVJEO0lBTUksdUJBQXVCLEVBQ3hCOztBQUlIO0VBQ0UsZXRCM1dRO0VzQjRXUixhQUFhO0VBQ2Isa0N0QjdXUSxFc0I4V1Q7O0FBR0Q7RUFDRSw2RHRCL1JtRTtFc0JnU25FLGlCdEJoVnlCO0VzQmlWekIsZXRCcFhRO0VzQnFYUiwwQnRCdFdnQjtFc0J1V2hCLDBCdEJ0V2lCO0VzQnVXakIsc0NsQjNWa0IsRWtCNFZuQjs7QUFHRDtFQUNFLDRCbEIzVlM7RWtCNFZULFVBQVU7RUFDViwwQnRCL1dnQjtFc0JnWGhCLGV0Qi9YUTtFc0JnWVIsNkR0QjdTbUUsRXNCa1RwRTs7QUMxWUQ7RUFDRSxtQnZCMEp5QjtFdUJ6SnpCLHNCdkIwSjRCO0V1QnpKNUIsaUJ2QnFDeUI7RXVCcEN6QixpQnZCb0pzQjtFdUJuSnRCLGV2QmlCZSxFdUJoQmhCOztBQUdEO0VBQ0UsZ0J2QjRJOEI7RXVCM0k5QixpQnZCNElpQixFdUIzSWxCOztBQUdEO0VBQ0Usa0J2QjZJbUI7RXVCNUluQixlQUFlLEVBS2hCO0VBSEM7SUFDRSxrQkFBa0IsRUFDbkI7O0FBSUg7RUFDRSxlQUFpQztFQUNqQyxpQkFBaUIsRUFDbEI7O0FDN0RPO0VBQ0UsaUJBUmUsRUFTaEI7O0FBRkQ7RUFDRSxrQkFSc0IsRUFTdkI7O0FBRkQ7RUFDRSxtQkFSOEIsRUFTL0I7O0FBRkQ7RUFDRSxvQkFSdUMsRUFTeEM7O0FIZ0lQO0VHdklNO0lBQ0UsaUJBSGUsRUFJaEI7RUFGRDtJQUNFLGtCQUhzQixFQUl2QjtFQUZEO0lBQ0UsbUJBSDhCLEVBSS9CO0VBRkQ7SUFDRSxvQkFIdUMsRUFJeEMsRUFBQTs7QUhxSVA7RUd2SU07SUFDRSxpQkFIZSxFQUloQjtFQUZEO0lBQ0Usa0JBSHNCLEVBSXZCO0VBRkQ7SUFDRSxtQkFIOEIsRUFJL0I7RUFGRDtJQUNFLG9CQUh1QyxFQUl4QyxFQUFBOztBQ0NUO0VBQWtCLHlCQUF5QixFQUFJOztBQUUvQztFQUNFO0lBRUksbUNBQW1DO0lBR3JDLHdCQUF3QjtJQUN4QixvQ0FBNEI7WUFBNUIsNEJBQTRCO0lBQzVCLDZCQUE2QixFQUM5QjtFQUVEO0lBQWtCLDBCQUEwQixFQUFJO0VBQ2hEO0lBQWtCLHlCQUF5QixFQUFJO0VBRS9DO0lBQXVCLDBCQUEwQixFQUFJO0VBQ3JEO0lBQXVCLHVDQUF1QyxFQUFJO0VBQ2xFO0lBQXVCLG9DQUFvQyxFQUFJO0VBQy9EO0lBQW9CLDhCQUE4QixFQUFJO0VBQ3REO0lBQW9CLCtCQUErQixFQUFJO0VBQ3ZEO0lBQW9CLCtCQUErQixFQUFJO0VBR3ZEOztJQUNZLDJCQUEyQixFQUFHO0VBQzFDO0lBQWdCLDZCQUE0QixFQUFJO0VBR2hEOzs7SUFFcUIsWUFBWSxFQUFJO0VBR3JDO0lBQW9CLDhCQUE2QixFQUFJO0VBR3JEOztJQUVFLDBCekJrQmE7SXlCakJiLHlCQUF5QixFQUMxQjtFQUdEO0lBQVEsNEJBQTRCLEVBQUk7RUFFeEM7O0lBQ00seUJBQXlCLEVBQUk7RUFFbkM7SUFBTSwyQkFBMkIsRUFBSTtFQUVyQztJQUFRLGNBQWMsRUFBQTtFQUV0Qjs7O0lBR0UsV0FBVztJQUNYLFVBQVUsRUFDWDtFQUdEOztJQUNLLHdCQUF3QixFQUFJLEVBQUE7O0ExQm14RHJDOztFMkJ0eERFLGVBQWU7RUFDZiwrQkFBdUI7VUFBdkIsdUJBQXVCO0VBQ3ZCLFlBQVk7RUFDWixrQkFMMEI7RUFNMUIsZ0JBQXNCO0VBQ3RCLDBCMUJSbUI7RTBCU25CLGlCdEJHb0I7RXNCRHBCLHFCMUJpU3lCO0UwQmhTekIsZ0J0QkFvQjtFc0JDcEIsZTFCWmlCO0UwQmFqQiwwQjFCM0JVO0UwQjRCViwwRDFCL0JVO1UwQitCVixrRDFCL0JVO0UwQmdDVixpQjFCS2U7RTBCRmIsNEUxQm1TOEQ7RTBCblM5RCxvRTFCbVM4RDtFMEJuUzlELDREMUJtUzhEO0UwQm5TOUQscUYxQm1TOEQ7RTBCL1E5RCx5QkFBeUI7RUFDekIsc0JBQXNCLEVBQ3ZCO0UzQmt3REQ7O0kyQm54REUsMEIxQnZCZTtJMEJ3QmYsMEIxQnRDUTtJMEJ1Q1IsY0FBYztJQUNkLG9DMUIzQmlCO1kwQjJCakIsNEIxQjNCaUI7STBCOEJmLDRFMUJ3UjREO0kwQnhSNUQsb0UxQndSNEQ7STBCeFI1RCw0RDFCd1I0RDtJMEJ4UjVELHFGMUJ3UjRELEUwQnRSL0Q7O0FBWUQ7RUFDRSxnQkFBZ0IsRUFLakI7RUFORDtJQUlJLGFBQWEsRUFDZDs7QUFHSDs7RUFJSSxlMUJ4RGUsRTBCeURoQjs7QUFMSDs7RUFJSSxlMUJ4RGUsRTBCeURoQjs7QUFMSDs7RUFJSSxlMUJ4RGUsRTBCeURoQjs7QUFMSDs7RUFJSSxlMUJ4RGUsRTBCeURoQjs7QUFMSDs7O0VBVUksMEIxQi9EYztFMEJnRWQsZ0IxQnNQeUIsRTBCclAxQjs7QTNCa3dETDs7RTJCNXZESSxpQjFCakRhO0UwQmtEYix5QkFBeUI7RUFDekIsc0JBQXNCLEVBQ3ZCOztBQUlEO0VBQ0UsK0JBQXVCO1VBQXZCLHVCQUF1QixFQUN4Qjs7QTNCNHZESDs7O0U0Qm40REksaUJ2Qm9Fa0IsRXVCbkVuQjs7QTVCdTRESDs7RTRCbDRESSxzQkFBc0I7RUFDdEIsb0JBQTRDO0VBQzVDLG1CdkI0RGtCO0V1QjNEbEIsaUJBQWlCO0VBQ2pCLHlCQUF5QixFQUMxQjs7QUFHRDs7RUFFRSxxQkFBNkMsRUFDOUM7O0E1Qm00REg7RTRCLzNESSxZQUFZLEVBQ2I7O0FDTUQ7RUFmQSxlQUFlO0VBQ2YsVUFBVTtFQUNWLG9CeEJxRG9CO0V3QnBEcEIsaUI1QjJEMkI7RTRCMUQzQixpQjVCOFUwQjtFNEI3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UztNQUNULGNBQWM7TUFDZCwwQkFBMEI7TUFDMUIsaUJBQWlCO01BQ2pCLGVWNU9RO01VNk9SLGlCQUFpQjtNQUNqQixxQk5sTmtCO01NbU5sQixtQkFBbUIsRUFBRzs7QUFuUzFCO0VBc1NFLGVBQWU7RUFDZixZQUFZO0VBQ1osY0FBYyxFQXFCTTtFQTdUdEI7SUEyU0csZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osYUFBYTtJQUNiLGNBQWM7SUFDZCx5Q0FBb0I7UUFBcEIscUNBQW9CO1lBQXBCLGlDQUFvQixFQUFjO0VBblRyQztJQXNURyxvQkFBb0I7SUFDcEIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixlVmxRUztJVW1RVCxpQkFBaUIsRUFBRztFVzFLbkI7SVhoSko7TUE2VEcsY0FBYyxFQUFLLEVBQUE7O0FtRjFUdEI7RUFFQyxrQjdGd0UwQixFNkZyRWU7RXhFd0l0QztJd0U3SUo7TUFLRSxtQjdGbUUyQixFNkZuRWEsRUFBQSIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbkBpbXBvcnQgdXJsKFwiLy9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PUhhbGFudDo0MDBcIik7XG5AaW1wb3J0IHVybChcIi8vaGVsbG8ubXlmb250cy5uZXQvY291bnQvMzA5ZTdkXCIpO1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSW50cm9SdXN0LUJhc2VMaW5lJztcbiAgc3JjOiB1cmwoXCIzMDlFN0RfMF8wLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIzMDlFN0RfMF8wLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIjMwOUU3RF8wXzAud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIjMwOUU3RF8wXzAud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIzMDlFN0RfMF8wLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdJbnRyb1J1c3RCb29rLUJhc2UnO1xuICBzcmM6IHVybChcIjMwOUU3RF8xXzAuZW90XCIpO1xuICBzcmM6IHVybChcIjMwOUU3RF8xXzAuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiMzA5RTdEXzFfMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiMzA5RTdEXzFfMC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIjMwOUU3RF8xXzAudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbi5hbmltYXRlLW9uZSxcbi5hbmltYXRlLTEsIC5hbmltYXRlLXR3byxcbi5hbmltYXRlLTIsIC5hbmltYXRlLXRocmVlLFxuLmFuaW1hdGUtMywgLmFuaW1hdGUtZm91cixcbi5hbmltYXRlLTQsIC5hbmltYXRlLWZpdmUsXG4uYW5pbWF0ZS01LCAuYW5pbWF0ZS1zaXgsXG4uYW5pbWF0ZS02IHtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgfVxuICAuaXMtYW5pbWF0aW5nIC5hbmltYXRlLW9uZSwgLmlzLWFuaW1hdGluZ1xuICAuYW5pbWF0ZS0xLCAuaXMtYW5pbWF0aW5nIC5hbmltYXRlLXR3bywgLmlzLWFuaW1hdGluZ1xuICAuYW5pbWF0ZS0yLCAuaXMtYW5pbWF0aW5nIC5hbmltYXRlLXRocmVlLCAuaXMtYW5pbWF0aW5nXG4gIC5hbmltYXRlLTMsIC5pcy1hbmltYXRpbmcgLmFuaW1hdGUtZm91ciwgLmlzLWFuaW1hdGluZ1xuICAuYW5pbWF0ZS00LCAuaXMtYW5pbWF0aW5nIC5hbmltYXRlLWZpdmUsIC5pcy1hbmltYXRpbmdcbiAgLmFuaW1hdGUtNSwgLmlzLWFuaW1hdGluZyAuYW5pbWF0ZS1zaXgsIC5pcy1hbmltYXRpbmdcbiAgLmFuaW1hdGUtNiB7XG4gICAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IH1cblxuLm5pY2Utc2VsZWN0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjNTU1NTU1O1xuICBtaW4td2lkdGg6IDc1cHg7XG4gIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LWZhbWlseTogXCJwcm94aW1hLW5vdmFcIjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubmljZS1zZWxlY3Q6OmJlZm9yZSwgLm5pY2Utc2VsZWN0OjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLm5pY2Utc2VsZWN0OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLm5pY2Utc2VsZWN0OmFmdGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzU1NTU1NTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjNTU1NTU1O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogN3B4O1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDY2JSA2NiU7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDtcbiAgICB3aWR0aDogN3B4OyB9XG4gIC5uaWNlLXNlbGVjdC5vcGVuOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTsgfVxuICAubmljZS1zZWxlY3Qub3BlbiAubGlzdCB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgLm5pY2Utc2VsZWN0LmRpc2FibGVkIHtcbiAgICBib3JkZXItY29sb3I6ICNmNmY1ZjU7XG4gICAgY29sb3I6ICNjYWM5Yzk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAubmljZS1zZWxlY3QuZGlzYWJsZWQ6YWZ0ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjODg4ODg4OyB9XG4gIC5uaWNlLXNlbGVjdCAuY3VycmVudCB7XG4gICAgcGFkZGluZzogMCAzMHB4IDAgMTBweDsgfVxuICAubmljZS1zZWxlY3QgLmxpc3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogLTUzcHg7XG4gICAgcmlnaHQ6IC0ycHg7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KSB0cmFuc2xhdGVZKC0xOC41cHgpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjUsIDAsIDAsIDEuMjUpLCBvcGFjaXR5IDAuMTVzIGVhc2Utb3V0O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogOTk5OTk5OTtcbiAgICBtYXJnaW46IDRweCAwIDA7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgLm5pY2Utc2VsZWN0IC5saXN0OmhvdmVyIC5vcHRpb246bm90KDpob3Zlcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAubmljZS1zZWxlY3QgLm9wdGlvbiB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWluLWhlaWdodDogMzVweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMzVweDsgfVxuICAgIC5uaWNlLXNlbGVjdCAub3B0aW9uOmhvdmVyLCAubmljZS1zZWxlY3QgLm9wdGlvbi5mb2N1cywgLm5pY2Utc2VsZWN0IC5vcHRpb24uc2VsZWN0ZWQuZm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTsgfVxuXG4uYWRkLWFuaW1hdGlvbi1mYWRlLWluLXVwIHtcbiAgb3BhY2l0eTogMDsgfVxuXG4uZmFkZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlLTAtdG8tMTAwO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOyB9XG5cbkBrZXlmcmFtZXMgZmFkZS0wLXRvLTEwMCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuICAuZmFkZS5taW5pLWNhcnQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG5cbi5mYWRlLW91dC1zbG93IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtMTAwLXRvLTA7XG4gIGFuaW1hdGlvbi1kZWxheTogM3M7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOyB9XG5cbkBrZXlmcmFtZXMgZmFkZS0xMDAtdG8tMCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4uZmFkZS1vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZS0xMDAtdG8tMDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsgfVxuXG5Aa2V5ZnJhbWVzIGZhZGUtMTAwLXRvLTAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9IH1cbiAgLmZhZGUtb3V0Lm1pbmktY2FydCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmZhZGUtaW4tbGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBjdXN0b20tMTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsgfVxuXG5Aa2V5ZnJhbWVzIGN1c3RvbS0xIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEuNXJlbSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4uZmFkZS1pbi1yaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBjdXN0b20tMztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsgfVxuXG5Aa2V5ZnJhbWVzIGN1c3RvbS0zIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xLjVyZW0pOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLmZhZGUtaW4tdXAge1xuICBhbmltYXRpb24tbmFtZTogY3VzdG9tLTU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOyB9XG5cbkBrZXlmcmFtZXMgY3VzdG9tLTUge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMS41cmVtKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5cbi5mYWRlLWluLWRvd24ge1xuICBhbmltYXRpb24tbmFtZTogY3VzdG9tLTc7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOyB9XG5cbkBrZXlmcmFtZXMgY3VzdG9tLTcge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNXJlbSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4uc2xpZGUtaW4tdXAge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGUtaW4tdXAtMS41O1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsgfVxuXG5Aa2V5ZnJhbWVzIHNsaWRlLWluLXVwLTEuNSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMS41cmVtKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4uYW5pbWF0ZS1vbmUsXG4uYW5pbWF0ZS0xIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGN1c3RvbS05O1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMHM7IH1cblxuQGtleWZyYW1lcyBjdXN0b20tOSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxLjVyZW0pOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLmFuaW1hdGUtdHdvLFxuLmFuaW1hdGUtMiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBjdXN0b20tMTA7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC40cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjRzOyB9XG5cbkBrZXlmcmFtZXMgY3VzdG9tLTEwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEuNXJlbSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4uYW5pbWF0ZS10aHJlZSxcbi5hbmltYXRlLTMge1xuICBhbmltYXRpb24tbmFtZTogY3VzdG9tLTExO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMC44czsgfVxuXG5Aa2V5ZnJhbWVzIGN1c3RvbS0xMSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxLjVyZW0pOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLmFuaW1hdGUtZm91cixcbi5hbmltYXRlLTQge1xuICBhbmltYXRpb24tbmFtZTogY3VzdG9tLTEyO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMS4yczsgfVxuXG5Aa2V5ZnJhbWVzIGN1c3RvbS0xMiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxLjVyZW0pOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLmFuaW1hdGUtZml2ZSxcbi5hbmltYXRlLTUge1xuICBhbmltYXRpb24tbmFtZTogY3VzdG9tLTEzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMS42czsgfVxuXG5Aa2V5ZnJhbWVzIGN1c3RvbS0xMyB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxLjVyZW0pOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLmFuaW1hdGUtc2l4LFxuLmFuaW1hdGUtNiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBjdXN0b20tMTQ7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC40cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAyczsgfVxuXG5Aa2V5ZnJhbWVzIGN1c3RvbS0xNCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxLjVyZW0pOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLm5pY2Utc2VsZWN0OmFmdGVyLCAuY29udGFjdC11c19fc29jaWFsLWxpbmtzIGxpIHN2ZywgLmZvb3Rlcl9fbmF2IGEsIC5mb290ZXJfX2NvcHlyaWdodCBhLCAuZm9vdGVyX19zb2NpYWwtbGlua3MgbGkgc3ZnLCAuaGlnaGxpZ2h0LWFydGljbGVfX3JlYWQtbW9yZSBhLCAud2h5LW9wdXNfX3JlYWQtbW9yZSwgLmNhcnRfX2FkZC1vbiB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgfVxuICAubmljZS1zZWxlY3Q6aG92ZXI6YWZ0ZXIsIC5jb250YWN0LXVzX19zb2NpYWwtbGlua3MgbGkgc3ZnOmhvdmVyLCAuZm9vdGVyX19uYXYgYTpob3ZlciwgLmZvb3Rlcl9fY29weXJpZ2h0IGE6aG92ZXIsIC5mb290ZXJfX3NvY2lhbC1saW5rcyBsaSBzdmc6aG92ZXIsIC5oaWdobGlnaHQtYXJ0aWNsZV9fcmVhZC1tb3JlIGE6aG92ZXIsIC53aHktb3B1c19fcmVhZC1tb3JlOmhvdmVyLCAuY2FydF9fYWRkLW9uOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjc7IH1cblxuQGtleWZyYW1lcyBhcnJvdy1tb3ZlbWVudCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDcwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGJvdHRvbTogMDsgfSB9XG5cbi5mb290ZXJfX3NpZ251cC1idXR0b24sIC5wcm9kdWN0X19hZGQtdG8tY2FydCBidXR0b24sIC5hcnRpY2xlLXNpZGViYXJfX2J0biwgLmNvbnRhY3QtdXNfX2JhY2stdG8taG9tZSwgLmNvbnRhY3QtdXNfX3N1Ym1pdCwgLm1pbmktY2FydF9fbGluay1idXR0b24sIC5wcm9kdWN0LXN1bW1hcnlfX2xpbmstYnV0dG9uLCAucGFnZS00MDRfX2JhY2stdG8taG9tZSwgLmNhcnRfX2NoZWNrb3V0IGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sIC5jYXJ0X19zaG9wLWxpbmstYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgYm9yZGVyOiAycHggc29saWQgIzU1NTU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTU1NTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzdweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMzNweDtcbiAgZm9udC1mYW1pbHk6IFwicHJveGltYS1ub3ZhXCI7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmZvb3Rlcl9fc2lnbnVwLWJ1dHRvbjpob3ZlciwgLnByb2R1Y3RfX2FkZC10by1jYXJ0IGJ1dHRvbjpob3ZlciwgLmFydGljbGUtc2lkZWJhcl9fYnRuOmhvdmVyLCAuY29udGFjdC11c19fYmFjay10by1ob21lOmhvdmVyLCAuY29udGFjdC11c19fc3VibWl0OmhvdmVyLCAubWluaS1jYXJ0X19saW5rLWJ1dHRvbjpob3ZlciwgLnByb2R1Y3Qtc3VtbWFyeV9fbGluay1idXR0b246aG92ZXIsIC5wYWdlLTQwNF9fYmFjay10by1ob21lOmhvdmVyLCAuY2FydF9fY2hlY2tvdXQgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciwgLmNhcnRfX3Nob3AtbGluay1idXR0b246aG92ZXIge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjNTU1NTU1OyB9XG5cbi5mb290ZXJfX3NpZ251cC1idXR0b24ge1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmZmZmO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAuZm9vdGVyX19zaWdudXAtYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG5cbi5wcm9kdWN0X19hZGQtdG8tY2FydCBidXR0b24ge1xuICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuXG4uY29udGFjdC11c19fc3VibWl0LCAubWl4LW5vLTEgLnByb2R1Y3RfX2FkZC10by1jYXJ0IGJ1dHRvbiB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM0OThiYzk7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0OThiYzk7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5jb250YWN0LXVzX19zdWJtaXQ6aG92ZXIsIC5taXgtbm8tMSAucHJvZHVjdF9fYWRkLXRvLWNhcnQgYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzQ5OGJjOTsgfVxuXG4ubWl4LW5vLTIgLnByb2R1Y3RfX2FkZC10by1jYXJ0IGJ1dHRvbiB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM3ZmQ5NTQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3ZmQ5NTQ7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5taXgtbm8tMiAucHJvZHVjdF9fYWRkLXRvLWNhcnQgYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzdmZDk1NDsgfVxuXG4ubWl4LW5vLTMgLnByb2R1Y3RfX2FkZC10by1jYXJ0IGJ1dHRvbiB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM5ODVmYTc7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5ODVmYTc7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5taXgtbm8tMyAucHJvZHVjdF9fYWRkLXRvLWNhcnQgYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzk4NWZhNzsgfVxuXG4uYW1lbmRtZW50IC5wcm9kdWN0X19hZGQtdG8tY2FydCBidXR0b24ge1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmY5NTQ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5NTQ0O1xuICBjb2xvcjogI2ZmZmZmZjsgfVxuICAuYW1lbmRtZW50IC5wcm9kdWN0X19hZGQtdG8tY2FydCBidXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmY5NTQ0OyB9XG5cbi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjIuMFxuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qKlxuICAgKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICAgKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuICAgKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gICAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gICAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAgICogYW5kIEZpcmVmb3guXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gICAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gICAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gICAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gICAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gICAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAgICovXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBMaW5rc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcbiAgICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICAgKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gICAqL1xuYTphY3RpdmUsIGEubmljZS1zZWxlY3Qub3BlbixcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICAgKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKipcbiAgICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICAgKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gICAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwOyB9XG5cbi8qKlxuICAgKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAgICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICAgKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXG4gICAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAgICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gICAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbi8qIEZvcm1zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAgICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICAgKi9cbi8qKlxuICAgKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gICAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICAgKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICAgKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAgICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICAgKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICAgKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICAgKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gICAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gICAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gICAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICAgKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gICAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gICAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAgICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLyoqXG4gICAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gICAqL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qKlxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gICAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gICAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAgICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gICAqL1xuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi8qKlxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gICAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gICAqXG4gICAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gICAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gICAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gICAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gICAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAgICovXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAgICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAyICovIH1cblxuLyoqXG4gICAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICAgKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gICAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAgICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAgICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICAgKiBbTk9URV0gV2UgZG9uJ3QgZW5hYmxlIHRoaXMgcnVsZXNldCBpbiBGb3VuZGF0aW9uLCBiZWNhdXNlIHdlIHdhbnQgdGhlIDxmaWVsZHNldD4gZWxlbWVudCB0byBoYXZlIHBsYWluIHN0eWxpbmcuXG4gICAqL1xuLyogZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gIH0gKi9cbi8qKlxuICAgKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gICAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAgICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICAgKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gICAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAgICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gICAqL1xub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKiBUYWJsZXNcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gICAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDsgfVxuXG4uZm91bmRhdGlvbi1tcSB7XG4gIGZvbnQtZmFtaWx5OiBcInNtYWxsPTBlbSZtZWRpdW09NDBlbSZsYXJnZT02NGVtJnhsYXJnZT03NWVtJnh4bGFyZ2U9OTBlbVwiOyB9XG5cbmh0bWwge1xuICBmb250LXNpemU6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1mYW1pbHk6IFwicHJveGltYS1ub3ZhXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbnNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbiNtYXBfY2FudmFzIGltZyxcbiNtYXBfY2FudmFzIGVtYmVkLFxuI21hcF9jYW52YXMgb2JqZWN0LFxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ucm93IHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAucm93OjpiZWZvcmUsIC5yb3c6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAucm93OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW4sIC5yb3cuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLnJvdyAucm93IHtcbiAgICBtYXJnaW4tbGVmdDogLTAuNjU2MjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC42NTYyNXJlbTsgfVxuICAgIC5yb3cgLnJvdy5jb2xsYXBzZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAucm93LmV4cGFuZGVkIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgICAucm93LmV4cGFuZGVkIC5yb3cge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLmNvbHVtbiwgLmNvbHVtbnMge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTsgfVxuXG4uY29sdW1uLnJvdy5yb3csIC5yb3cucm93LmNvbHVtbnMge1xuICBmbG9hdDogbm9uZTsgfVxuICAucm93IC5jb2x1bW4ucm93LnJvdywgLnJvdyAucm93LnJvdy5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLnNtYWxsLTEge1xuICB3aWR0aDogNi4yNSU7IH1cblxuLnNtYWxsLXB1c2gtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNi4yNSU7IH1cblxuLnNtYWxsLXB1bGwtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTYuMjUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTsgfVxuXG4uc21hbGwtMiB7XG4gIHdpZHRoOiAxMi41JTsgfVxuXG4uc21hbGwtcHVzaC0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAxMi41JTsgfVxuXG4uc21hbGwtcHVsbC0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMTIuNSU7IH1cblxuLnNtYWxsLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDYuMjUlOyB9XG5cbi5zbWFsbC0zIHtcbiAgd2lkdGg6IDE4Ljc1JTsgfVxuXG4uc21hbGwtcHVzaC0zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAxOC43NSU7IH1cblxuLnNtYWxsLXB1bGwtMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTE4Ljc1JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTIuNSU7IH1cblxuLnNtYWxsLTQge1xuICB3aWR0aDogMjUlOyB9XG5cbi5zbWFsbC1wdXNoLTQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDI1JTsgfVxuXG4uc21hbGwtcHVsbC00IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMjUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAxOC43NSU7IH1cblxuLnNtYWxsLTUge1xuICB3aWR0aDogMzEuMjUlOyB9XG5cbi5zbWFsbC1wdXNoLTUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDMxLjI1JTsgfVxuXG4uc21hbGwtcHVsbC01IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMzEuMjUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLnNtYWxsLTYge1xuICB3aWR0aDogMzcuNSU7IH1cblxuLnNtYWxsLXB1c2gtNiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMzcuNSU7IH1cblxuLnNtYWxsLXB1bGwtNiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTM3LjUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiAzMS4yNSU7IH1cblxuLnNtYWxsLTcge1xuICB3aWR0aDogNDMuNzUlOyB9XG5cbi5zbWFsbC1wdXNoLTcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDQzLjc1JTsgfVxuXG4uc21hbGwtcHVsbC03IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNDMuNzUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiAzNy41JTsgfVxuXG4uc21hbGwtOCB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLnNtYWxsLXB1c2gtOCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNTAlOyB9XG5cbi5zbWFsbC1wdWxsLTgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC01MCU7IH1cblxuLnNtYWxsLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDQzLjc1JTsgfVxuXG4uc21hbGwtOSB7XG4gIHdpZHRoOiA1Ni4yNSU7IH1cblxuLnNtYWxsLXB1c2gtOSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNTYuMjUlOyB9XG5cbi5zbWFsbC1wdWxsLTkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC01Ni4yNSU7IH1cblxuLnNtYWxsLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuXG4uc21hbGwtMTAge1xuICB3aWR0aDogNjIuNSU7IH1cblxuLnNtYWxsLXB1c2gtMTAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDYyLjUlOyB9XG5cbi5zbWFsbC1wdWxsLTEwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNjIuNSU7IH1cblxuLnNtYWxsLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDU2LjI1JTsgfVxuXG4uc21hbGwtMTEge1xuICB3aWR0aDogNjguNzUlOyB9XG5cbi5zbWFsbC1wdXNoLTExIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA2OC43NSU7IH1cblxuLnNtYWxsLXB1bGwtMTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC02OC43NSU7IH1cblxuLnNtYWxsLW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA2Mi41JTsgfVxuXG4uc21hbGwtMTIge1xuICB3aWR0aDogNzUlOyB9XG5cbi5zbWFsbC1wdXNoLTEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA3NSU7IH1cblxuLnNtYWxsLXB1bGwtMTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC03NSU7IH1cblxuLnNtYWxsLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA2OC43NSU7IH1cblxuLnNtYWxsLTEzIHtcbiAgd2lkdGg6IDgxLjI1JTsgfVxuXG4uc21hbGwtcHVzaC0xMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogODEuMjUlOyB9XG5cbi5zbWFsbC1wdWxsLTEzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtODEuMjUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTIge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi5zbWFsbC0xNCB7XG4gIHdpZHRoOiA4Ny41JTsgfVxuXG4uc21hbGwtcHVzaC0xNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogODcuNSU7IH1cblxuLnNtYWxsLXB1bGwtMTQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC04Ny41JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEzIHtcbiAgbWFyZ2luLWxlZnQ6IDgxLjI1JTsgfVxuXG4uc21hbGwtMTUge1xuICB3aWR0aDogOTMuNzUlOyB9XG5cbi5zbWFsbC1wdXNoLTE1IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA5My43NSU7IH1cblxuLnNtYWxsLXB1bGwtMTUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC05My43NSU7IH1cblxuLnNtYWxsLW9mZnNldC0xNCB7XG4gIG1hcmdpbi1sZWZ0OiA4Ny41JTsgfVxuXG4uc21hbGwtMTYge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTE1IHtcbiAgbWFyZ2luLWxlZnQ6IDkzLjc1JTsgfVxuXG4uc21hbGwtdXAtMSA+IC5jb2x1bW4sIC5zbWFsbC11cC0xID4gLmNvbHVtbnMge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLnNtYWxsLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTIgPiAuY29sdW1uLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zIHtcbiAgd2lkdGg6IDUwJTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTMgPiAuY29sdW1uLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zIHtcbiAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTQgPiAuY29sdW1uLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zIHtcbiAgd2lkdGg6IDI1JTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLnNtYWxsLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTUgPiAuY29sdW1uLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zIHtcbiAgd2lkdGg6IDIwJTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC01ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTYgPiAuY29sdW1uLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zIHtcbiAgd2lkdGg6IDE2LjY2NjY3JTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLnNtYWxsLWNvbGxhcHNlIC5yb3cge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTsgfVxuXG4uc21hbGwtY2VudGVyZWQge1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuXG4uc21hbGwtdW5jZW50ZXJlZCxcbi5zbWFsbC1wdXNoLTAsXG4uc21hbGwtcHVsbC0wIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLTEge1xuICAgIHdpZHRoOiA2LjI1JTsgfVxuICAubWVkaXVtLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDYuMjUlOyB9XG4gIC5tZWRpdW0tcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTYuMjUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxMi41JTsgfVxuICAubWVkaXVtLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDEyLjUlOyB9XG4gIC5tZWRpdW0tcHVsbC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTEyLjUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA2LjI1JTsgfVxuICAubWVkaXVtLTMge1xuICAgIHdpZHRoOiAxOC43NSU7IH1cbiAgLm1lZGl1bS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxOC43NSU7IH1cbiAgLm1lZGl1bS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTguNzUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMi41JTsgfVxuICAubWVkaXVtLTQge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS1wdXNoLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAxOC43NSU7IH1cbiAgLm1lZGl1bS01IHtcbiAgICB3aWR0aDogMzEuMjUlOyB9XG4gIC5tZWRpdW0tcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzEuMjUlOyB9XG4gIC5tZWRpdW0tcHVsbC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMxLjI1JTsgfVxuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5tZWRpdW0tNiB7XG4gICAgd2lkdGg6IDM3LjUlOyB9XG4gIC5tZWRpdW0tcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzcuNSU7IH1cbiAgLm1lZGl1bS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzcuNSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMxLjI1JTsgfVxuICAubWVkaXVtLTcge1xuICAgIHdpZHRoOiA0My43NSU7IH1cbiAgLm1lZGl1bS1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA0My43NSU7IH1cbiAgLm1lZGl1bS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNDMuNzUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiAzNy41JTsgfVxuICAubWVkaXVtLTgge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1wdXNoLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA0My43NSU7IH1cbiAgLm1lZGl1bS05IHtcbiAgICB3aWR0aDogNTYuMjUlOyB9XG4gIC5tZWRpdW0tcHVzaC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTYuMjUlOyB9XG4gIC5tZWRpdW0tcHVsbC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU2LjI1JTsgfVxuICAubWVkaXVtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5tZWRpdW0tMTAge1xuICAgIHdpZHRoOiA2Mi41JTsgfVxuICAubWVkaXVtLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA2Mi41JTsgfVxuICAubWVkaXVtLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjIuNSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDU2LjI1JTsgfVxuICAubWVkaXVtLTExIHtcbiAgICB3aWR0aDogNjguNzUlOyB9XG4gIC5tZWRpdW0tcHVzaC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY4Ljc1JTsgfVxuICAubWVkaXVtLXB1bGwtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjguNzUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogNjIuNSU7IH1cbiAgLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubWVkaXVtLXB1c2gtMTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS1wdWxsLTEyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTc1JTsgfVxuICAubWVkaXVtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDY4Ljc1JTsgfVxuICAubWVkaXVtLTEzIHtcbiAgICB3aWR0aDogODEuMjUlOyB9XG4gIC5tZWRpdW0tcHVzaC0xMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDgxLjI1JTsgfVxuICAubWVkaXVtLXB1bGwtMTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODEuMjUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEyIHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5tZWRpdW0tMTQge1xuICAgIHdpZHRoOiA4Ny41JTsgfVxuICAubWVkaXVtLXB1c2gtMTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4Ny41JTsgfVxuICAubWVkaXVtLXB1bGwtMTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODcuNSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTMge1xuICAgIG1hcmdpbi1sZWZ0OiA4MS4yNSU7IH1cbiAgLm1lZGl1bS0xNSB7XG4gICAgd2lkdGg6IDkzLjc1JTsgfVxuICAubWVkaXVtLXB1c2gtMTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5My43NSU7IH1cbiAgLm1lZGl1bS1wdWxsLTE1IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTkzLjc1JTsgfVxuICAubWVkaXVtLW9mZnNldC0xNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDg3LjUlOyB9XG4gIC5tZWRpdW0tMTYge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTE1IHtcbiAgICBtYXJnaW4tbGVmdDogOTMuNzUlOyB9XG4gIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAubWVkaXVtLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTIgPiAuY29sdW1uLCAubWVkaXVtLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAubWVkaXVtLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTMgPiAuY29sdW1uLCAubWVkaXVtLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTQgPiAuY29sdW1uLCAubWVkaXVtLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTUgPiAuY29sdW1uLCAubWVkaXVtLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTYgPiAuY29sdW1uLCAubWVkaXVtLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAubWVkaXVtLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAubWVkaXVtLWNvbGxhcHNlIC5yb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAubWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07IH1cbiAgLm1lZGl1bS1jZW50ZXJlZCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIC5tZWRpdW0tdW5jZW50ZXJlZCxcbiAgLm1lZGl1bS1wdXNoLTAsXG4gIC5tZWRpdW0tcHVsbC0wIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBmbG9hdDogbGVmdDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLTEge1xuICAgIHdpZHRoOiA2LjI1JTsgfVxuICAubGFyZ2UtcHVzaC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNi4yNSU7IH1cbiAgLmxhcmdlLXB1bGwtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC02LjI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubGFyZ2UtMiB7XG4gICAgd2lkdGg6IDEyLjUlOyB9XG4gIC5sYXJnZS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxMi41JTsgfVxuICAubGFyZ2UtcHVsbC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTEyLjUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDYuMjUlOyB9XG4gIC5sYXJnZS0zIHtcbiAgICB3aWR0aDogMTguNzUlOyB9XG4gIC5sYXJnZS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxOC43NSU7IH1cbiAgLmxhcmdlLXB1bGwtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xOC43NSU7IH1cbiAgLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTIuNSU7IH1cbiAgLmxhcmdlLTQge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLXB1c2gtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAxOC43NSU7IH1cbiAgLmxhcmdlLTUge1xuICAgIHdpZHRoOiAzMS4yNSU7IH1cbiAgLmxhcmdlLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMxLjI1JTsgfVxuICAubGFyZ2UtcHVsbC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMxLjI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLmxhcmdlLTYge1xuICAgIHdpZHRoOiAzNy41JTsgfVxuICAubGFyZ2UtcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzcuNSU7IH1cbiAgLmxhcmdlLXB1bGwtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0zNy41JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiAzMS4yNSU7IH1cbiAgLmxhcmdlLTcge1xuICAgIHdpZHRoOiA0My43NSU7IH1cbiAgLmxhcmdlLXB1c2gtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQzLjc1JTsgfVxuICAubGFyZ2UtcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTQzLjc1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiAzNy41JTsgfVxuICAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubGFyZ2UtcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlOyB9XG4gIC5sYXJnZS1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDQzLjc1JTsgfVxuICAubGFyZ2UtOSB7XG4gICAgd2lkdGg6IDU2LjI1JTsgfVxuICAubGFyZ2UtcHVzaC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTYuMjUlOyB9XG4gIC5sYXJnZS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTYuMjUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA2Mi41JTsgfVxuICAubGFyZ2UtcHVzaC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDYyLjUlOyB9XG4gIC5sYXJnZS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTYyLjUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDU2LjI1JTsgfVxuICAubGFyZ2UtMTEge1xuICAgIHdpZHRoOiA2OC43NSU7IH1cbiAgLmxhcmdlLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA2OC43NSU7IH1cbiAgLmxhcmdlLXB1bGwtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjguNzUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA2Mi41JTsgfVxuICAubGFyZ2UtMTIge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmxhcmdlLXB1c2gtMTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLmxhcmdlLXB1bGwtMTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA2OC43NSU7IH1cbiAgLmxhcmdlLTEzIHtcbiAgICB3aWR0aDogODEuMjUlOyB9XG4gIC5sYXJnZS1wdXNoLTEzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogODEuMjUlOyB9XG4gIC5sYXJnZS1wdWxsLTEzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgxLjI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEyIHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5sYXJnZS0xNCB7XG4gICAgd2lkdGg6IDg3LjUlOyB9XG4gIC5sYXJnZS1wdXNoLTE0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogODcuNSU7IH1cbiAgLmxhcmdlLXB1bGwtMTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODcuNSU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDgxLjI1JTsgfVxuICAubGFyZ2UtMTUge1xuICAgIHdpZHRoOiA5My43NSU7IH1cbiAgLmxhcmdlLXB1c2gtMTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5My43NSU7IH1cbiAgLmxhcmdlLXB1bGwtMTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOTMuNzUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTQge1xuICAgIG1hcmdpbi1sZWZ0OiA4Ny41JTsgfVxuICAubGFyZ2UtMTYge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTUge1xuICAgIG1hcmdpbi1sZWZ0OiA5My43NSU7IH1cbiAgLmxhcmdlLXVwLTEgPiAuY29sdW1uLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtMiA+IC5jb2x1bW4sIC5sYXJnZS11cC0yID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTMgPiAuY29sdW1uLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC00ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNSA+IC5jb2x1bW4sIC5sYXJnZS11cC01ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTYgPiAuY29sdW1uLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMTYuNjY2NjclO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAubGFyZ2UtY29sbGFwc2UgLnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07IH1cbiAgLmxhcmdlLWNlbnRlcmVkIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLmxhcmdlLXVuY2VudGVyZWQsXG4gIC5sYXJnZS1wdXNoLTAsXG4gIC5sYXJnZS1wdWxsLTAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIGZsb2F0OiBsZWZ0OyB9IH1cblxuZGl2LFxuZGwsXG5kdCxcbmRkLFxudWwsXG5vbCxcbmxpLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucHJlLFxuZm9ybSxcbnAsXG5ibG9ja3F1b3RlLFxudGgsXG50ZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5wIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG5cbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LWZhbWlseTogXCJwcm94aW1hLW5vdmFcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTsgfVxuICBoMSBzbWFsbCxcbiAgaDIgc21hbGwsXG4gIGgzIHNtYWxsLFxuICBoNCBzbWFsbCxcbiAgaDUgc21hbGwsXG4gIGg2IHNtYWxsIHtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBsaW5lLWhlaWdodDogMDsgfVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07IH1cblxuaDIge1xuICBmb250LXNpemU6IDEuNTYyNXJlbTsgfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07IH1cblxuaDQge1xuICBmb250LXNpemU6IDEuMjVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBoMSB7XG4gICAgZm9udC1zaXplOiAyLjM3NXJlbTsgfVxuICBoMiB7XG4gICAgZm9udC1zaXplOiAxLjg3NXJlbTsgfVxuICBoMyB7XG4gICAgZm9udC1zaXplOiAxLjY4NzVyZW07IH1cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfSB9XG5cbmEge1xuICBjb2xvcjogIzQ5OGJjOTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjMzY3OGI2OyB9XG4gIGEgaW1nIHtcbiAgICBib3JkZXI6IDA7IH1cblxuaHIge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICBtYXJnaW46IDEuMjVyZW0gYXV0bztcbiAgY2xlYXI6IGJvdGg7IH1cblxudWwsXG5vbCxcbmRsIHtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTsgfVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG51bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cblxub2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICBkbCBkdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMS4yNXJlbSAwIDEuMTg3NXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2FjYWNhOyB9XG4gIGJsb2NrcXVvdGUsIGJsb2NrcXVvdGUgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogIzhhOGE4YTsgfVxuXG5jaXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBjb2xvcjogIzhhOGE4YTsgfVxuICBjaXRlOmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcMjAxNCBcXDAwMjAnOyB9XG5cbmFiYnIge1xuICBjb2xvcjogIzU1NTU1NTtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM1NTU1NTU7IH1cblxuY29kZSB7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzU1NTU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4zMTI1cmVtIDAuMDYyNXJlbTsgfVxuXG5rYmQge1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjI1cmVtIDA7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlOyB9XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4YThhOGE7IH1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDEyNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgcCArIC5zdGF0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuXG4ubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubWVkaXVtLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5tZWRpdW0tdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVkaXVtLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICB0YWJsZS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgYVtocmVmXj0nIyddOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTsgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH0gfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICM4YThhOGE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDg1LCA4NSwgODUsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbdHlwZT0ndGV4dCddOmZvY3VzLCBbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cywgW3R5cGU9J2RhdGUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLCBbdHlwZT0nbW9udGgnXTpmb2N1cywgW3R5cGU9J3dlZWsnXTpmb2N1cywgW3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSdudW1iZXInXTpmb2N1cywgW3R5cGU9J3NlYXJjaCddOmZvY3VzLCBbdHlwZT0ndGVsJ106Zm9jdXMsIFt0eXBlPSd0aW1lJ106Zm9jdXMsIFt0eXBlPSd1cmwnXTpmb2N1cywgW3R5cGU9J2NvbG9yJ106Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cblxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgdGV4dGFyZWFbcm93c10ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2NhY2FjYTsgfVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuW3R5cGU9J3N1Ym1pdCddLFxuW3R5cGU9J2J1dHRvbiddIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0nY2hlY2tib3gnXSxcblt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuXG5bdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxubGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbmxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG5bdHlwZT0nZmlsZSddIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzU1NTU1NTsgfVxuICBsYWJlbC5taWRkbGUge1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgcGFkZGluZzogMC41NjI1cmVtIDA7IH1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi5pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAuaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmlucHV0LWdyb3VwID4gOmxhc3QtY2hpbGQgPiAqIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCwgLmlucHV0LWdyb3VwLWZpZWxkLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xuICBjb2xvcjogIzU1NTU1NTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDElO1xuICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5pbnB1dC1ncm91cC1maWVsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGhlaWdodDogMi41cmVtOyB9XG5cbi5pbnB1dC1ncm91cC1idXR0b24ge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMSU7IH1cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwOyB9XG5cbi5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDsgfVxuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG5cbmxlZ2VuZCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG4gIG1hcmdpbjogMS4xMjVyZW0gMDsgfVxuICAuZmllbGRzZXQgbGVnZW5kIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIHBhZGRpbmc6IDAgMC4xODc1cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tbGVmdDogLTAuMTg3NXJlbTsgfVxuXG5zZWxlY3Qge1xuICBoZWlnaHQ6IDIuNDM3NXJlbTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzhhOGE4YTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogcmdiJTI4NTEsIDUxLCA1MSUyOVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG4gIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT1cIik7IH0gfVxuICBzZWxlY3Q6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIHNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBzZWxlY3RbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNiwgODgsIDY0LCAwLjEpO1xuICBib3JkZXItY29sb3I6ICNlYzU4NDA7IH1cblxuLmlzLWludmFsaWQtbGFiZWwge1xuICBjb2xvcjogI2VjNTg0MDsgfVxuXG4uZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZWM1ODQwOyB9XG4gIC5mb3JtLWVycm9yLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHBhZGRpbmc6IDAuODVlbSAxZW07XG4gIG1hcmdpbjogMCAxcmVtIDFyZW0gMDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICM0OThiYzk7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5idXR0b246aG92ZXIsIC5idXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJ1dHRvbi50aW55IHtcbiAgICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuYnV0dG9uLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi5sYXJnZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIC5idXR0b24uZXhwYW5kZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAuYnV0dG9uLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk5ZTg7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5idXR0b24ucHJpbWFyeTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ3Y2MwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJ1dHRvbi5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Nzc7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVmNWY1ZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5idXR0b24uc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5idXR0b24uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5zdWNjZXNzOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAuYnV0dG9uLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuYnV0dG9uLndhcm5pbmc6aG92ZXIsIC5idXR0b24ud2FybmluZzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJ1dHRvbi5hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjNTg0MDtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5idXR0b24uYWxlcnQ6aG92ZXIsIC5idXR0b24uYWxlcnQ6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RhMzExNjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5idXR0b24uaG9sbG93IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5OWU4O1xuICAgIGNvbG9yOiAjMjE5OWU4OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3csIC5idXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICMwYzRkNzg7XG4gICAgICBjb2xvcjogIzBjNGQ3ODsgfVxuICAgIC5idXR0b24uaG9sbG93LnByaW1hcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzIxOTllODtcbiAgICAgIGNvbG9yOiAjMjE5OWU4OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMGM0ZDc4O1xuICAgICAgICBjb2xvcjogIzBjNGQ3ODsgfVxuICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzc3O1xuICAgICAgY29sb3I6ICM3Nzc7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2MzYzNjO1xuICAgICAgICBjb2xvcjogIzNjM2MzYzsgfVxuICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3Mge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTU3NTM5O1xuICAgICAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmcge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICAgICAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAgIC5idXR0b24uaG9sbG93LmFsZXJ0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlYzU4NDA7XG4gICAgICBjb2xvcjogI2VjNTg0MDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODgxZjBlO1xuICAgICAgICBjb2xvcjogIzg4MWYwZTsgfVxuICAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC4yNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5idXR0b24uZHJvcGRvd246OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjRlbTtcbiAgICBib3JkZXItY29sb3I6ICNmZmZmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmJ1dHRvbi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgdG9wOiAtMC4xZW07IH1cblxuLmFjY29yZGlvbiB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmFjY29yZGlvbi10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiAjNDk4YmM5O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2OyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6aG92ZXIsIC5hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnKyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0wLjVyZW07IH1cbiAgLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ+KAkyc7IH1cblxuLmFjY29yZGlvbi1jb250ZW50IHtcbiAgcGFkZGluZzogMXJlbTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjE5OWU4IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgcmlnaHQ6IDFyZW07IH1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gIHRyYW5zZm9ybTogc2NhbGVZKC0xKTsgfVxuXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuM2VtO1xuICBtaW4td2lkdGg6IDIuMWVtO1xuICBmb250LXNpemU6IDAuNnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6ICM0OThiYzk7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5iYWRnZS5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICM3Nzc7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJhZGdlLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJhZGdlLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJhZGdlLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWM1ODQwO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG5cbi5icmVhZGNydW1icyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDsgfVxuICAuYnJlYWRjcnVtYnM6OmJlZm9yZSwgLmJyZWFkY3J1bWJzOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmJyZWFkY3J1bWJzOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJyZWFkY3J1bWJzIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5icmVhZGNydW1icyBsaTpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICBjb2xvcjogI2NhY2FjYTtcbiAgICAgIGNvbnRlbnQ6IFwiL1wiO1xuICAgICAgbWFyZ2luOiAwIDAuNzVyZW07XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDFweDtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmJyZWFkY3J1bWJzIGEge1xuICAgIGNvbG9yOiAjNDk4YmM5OyB9XG4gICAgLmJyZWFkY3J1bWJzIGE6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmJyZWFkY3J1bWJzIC5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICNjYWNhY2E7IH1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMDsgfVxuICAuYnV0dG9uLWdyb3VwOjpiZWZvcmUsIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAuYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJ1dHRvbi1ncm91cCAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuYnV0dG9uLWdyb3VwIC5idXR0b246bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZmZmZmZmOyB9XG4gIC5idXR0b24tZ3JvdXAudGlueSAuYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLnNtYWxsIC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLmxhcmdlIC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xcHg7IH1cbiAgICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkOjpiZWZvcmUsIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMiksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB+IC5idXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMXB4KTtcbiAgICAgIG1hcmdpbi1yaWdodDogMXB4OyB9XG4gICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMyk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMykgfiAuYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDFweCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg0KSwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpIH4gLmJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxcHgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cbiAgICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNSksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KSB+IC5idXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGNhbGMoMjAlIC0gMXB4KTtcbiAgICAgIG1hcmdpbi1yaWdodDogMXB4OyB9XG4gICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDYpLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNik6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNikgfiAuYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDFweCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuICAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTllODtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ3Y2MwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc3NztcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVmNWY1ZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM1ODQwO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RhMzExNjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b24ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b246bm90KDpsYXN0LWNoaWxkKSwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCksIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b246bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgLmJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4uY2FsbG91dCB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg4NSwgODUsIDg1LCAwLjI1KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogIzU1NTU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cbiAgLmNhbGxvdXQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLmNhbGxvdXQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY2FsbG91dC5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVmMGZjOyB9XG4gIC5jYWxsb3V0LnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsgfVxuICAuY2FsbG91dC5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFmYWVhOyB9XG4gIC5jYWxsb3V0Lndhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYzZDk7IH1cbiAgLmNhbGxvdXQuYWxlcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2U2ZTI7IH1cbiAgLmNhbGxvdXQuc21hbGwge1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07IH1cbiAgLmNhbGxvdXQubGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtOyB9XG5cbi5jbG9zZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAjOGE4YThhO1xuICByaWdodDogMXJlbTtcbiAgdG9wOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuY2xvc2UtYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5jbG9zZS1idXR0b246aG92ZXIsIC5jbG9zZS1idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjNTU1NTU1OyB9XG5cbi5tZW51IHtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgLm1lbnUgPiBsaSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5tZW51ID4gbGkge1xuICAgICAgb3V0bGluZTogMDsgfVxuICAubWVudSA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLm1lbnUgaW5wdXQsXG4gIC5tZW51IGEsXG4gIC5tZW51IGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVudSA+IGxpID4gYSBpbWcsXG4gIC5tZW51ID4gbGkgPiBhIGkge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLm1lbnUgPiBsaSA+IGEgaSArIHNwYW4sXG4gIC5tZW51ID4gbGkgPiBhIGltZyArIHNwYW4ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLm1lbnUgPiBsaSA+IGEgaW1nLFxuICAubWVudSA+IGxpID4gYSBpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5tZW51ID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cbiAgLm1lbnUudmVydGljYWwgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsgfVxuICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG4gICAgLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5tZW51LnNpbXBsZSBsaSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAubWVudS5zaW1wbGUgYSB7XG4gICAgcGFkZGluZzogMDsgfVxuICAubWVudS5hbGlnbi1yaWdodDo6YmVmb3JlLCAubWVudS5hbGlnbi1yaWdodDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQgPiBsaSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5tZW51LmV4cGFuZGVkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOyB9XG4gICAgLm1lbnUuZXhwYW5kZWQgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZW51Lmljb24tdG9wID4gbGkgPiBhIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAubWVudS5pY29uLXRvcCA+IGxpID4gYSBpbWcsXG4gICAgLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEgaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMCBhdXRvIDAuMjVyZW07IH1cbiAgLm1lbnUubmVzdGVkIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAubWVudSAuYWN0aXZlID4gYSB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZDogIzIxOTllODsgfVxuXG4ubWVudS10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuXG4ubWVudS1jZW50ZXJlZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVudS1jZW50ZXJlZCA+IC5tZW51IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZW51LWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4OyB9XG4gIC5tZW51LWljb246OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICNmZmZmZmYsIDAgMTRweCAwICNmZmZmZmY7IH1cbiAgLm1lbnUtaWNvbjpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICNjYWNhY2E7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjY2FjYWNhLCAwIDE0cHggMCAjY2FjYWNhOyB9XG5cbi5tZW51LWljb24uZGFyayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6ICM1NTU1NTU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjNTU1NTU1LCAwIDE0cHggMCAjNTU1NTU1OyB9XG4gIC5tZW51LWljb24uZGFyazpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICM4YThhOGE7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjOGE4YThhLCAwIDE0cHggMCAjOGE4YThhOyB9XG5cbi5pcy1kcmlsbGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmlzLWRyaWxsZG93biBsaSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuXG4uaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogLTE7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7IH1cbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWFjdGl2ZSB7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gIC5pcy1kcmlsbGRvd24tc3VibWVudS5pcy1jbG9zaW5nIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMjE5OWU4O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgcmlnaHQ6IDFyZW07IH1cblxuLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMjE5OWU4IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtOyB9XG5cbi5kcm9wZG93bi1wYW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTZyZW07XG4gIHBhZGRpbmc6IDFyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWR0aDogMzAwcHg7XG4gIHotaW5kZXg6IDEwOyB9XG4gIC5kcm9wZG93bi1wYW5lLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLmRyb3Bkb3duLXBhbmUudGlueSB7XG4gIHdpZHRoOiAxMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5zbWFsbCB7XG4gIHdpZHRoOiAyMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5sYXJnZSB7XG4gIHdpZHRoOiA0MDBweDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDEwMCU7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIHRvcDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA1cHg7XG4gIGJvcmRlci1jb2xvcjogIzQ5OGJjOSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIHJpZ2h0OiA1cHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7IH1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5kcm9wZG93bi5tZW51IGEge1xuICBvdXRsaW5lOiAwOyB9XG5cbi5uby1qcyAuZHJvcGRvd24ubWVudSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwMCU7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgcmlnaHQ6IDE0cHg7XG4gIG1hcmdpbi10b3A6IC0zcHg7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNXB4O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM0OThiYzkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA1cHg7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQ5OGJjOTtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDVweDtcbiAgICBib3JkZXItY29sb3I6ICM0OThiYzkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICByaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNDk4YmM5IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQ5OGJjOTtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogIzQ5OGJjOSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDtcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNDk4YmM5IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNDk4YmM5O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7IH0gfVxuXG4uZHJvcGRvd24ubWVudS5hbGlnbi1yaWdodCAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwOyB9XG5cbi5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgd2lkdGg6IDEwMHB4OyB9XG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsLmFsaWduLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCBhOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtaW5uZXIgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDEwMCU7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNDk4YmM5IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDVweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0OThiYzk7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbWFyZ2luLXRvcDogLTFweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSA+IGxpIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudTpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUsIC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmZsZXgtdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuZmxleC12aWRlbyBpZnJhbWUsXG4gIC5mbGV4LXZpZGVvIG9iamVjdCxcbiAgLmZsZXgtdmlkZW8gZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5mbGV4LXZpZGVvLndpZGVzY3JlZW4ge1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IH1cbiAgLmZsZXgtdmlkZW8udmltZW8ge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjNDk4YmM5O1xuICBjb2xvcjogI2ZmZmZmZjsgfVxuICAubGFiZWwuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjNzc3O1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5sYWJlbC5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5sYWJlbC53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5sYWJlbC5hbGVydCB7XG4gICAgYmFja2dyb3VuZDogI2VjNTg0MDtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuXG4ubWVkaWEtb2JqZWN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1lZGlhLW9iamVjdCBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAubWVkaWEtb2JqZWN0LnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbi5taWRkbGUge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uLmJvdHRvbSB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfVxuXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4ub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiBhdXRvOyB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlOyB9XG4gIC5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXI6OmJlZm9yZSwgLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXI6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50LFxuLm9mZi1jYW52YXMtY29udGVudCB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbiAgcGFkZGluZy1ib3R0b206IDAuMXB4O1xuICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDg1LCA4NSwgODUsIDAuNSk7IH1cblxuLmpzLW9mZi1jYW52YXMtZXhpdCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC41cyBlYXNlOyB9XG5cbi5vZmYtY2FudmFzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xuICB6LWluZGV4OiAtMTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub2ZmLWNhbnZhcyB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub2ZmLWNhbnZhcy5wb3NpdGlvbi1sZWZ0IHtcbiAgICBsZWZ0OiAtMjUwcHg7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAyNTBweDsgfVxuICAgIC5pcy1vcGVuLWxlZnQge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1MHB4KTsgfVxuICAub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCB7XG4gICAgcmlnaHQ6IC0yNTBweDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDI1MHB4OyB9XG4gICAgLmlzLW9wZW4tcmlnaHQge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNTBweCk7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyNTBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNTBweDsgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogYXV0bztcbiAgICBwb3NpdGlvbjogZml4ZWQ7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyNTBweDsgfSB9XG5cbi5vcmJpdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4ub3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLm9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgLm9yYml0LXNsaWRlLm5vLW1vdGlvbnVpLmlzLWFjdGl2ZSB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7IH1cblxuLm9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4ub3JiaXQtaW1hZ2Uge1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLm9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDg1LCA4NSwgODUsIDAuNSk7IH1cblxuLm9yYml0LXByZXZpb3VzLCAub3JiaXQtbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtcHJldmlvdXMsIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtbmV4dCB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub3JiaXQtcHJldmlvdXM6aG92ZXIsIC5vcmJpdC1uZXh0OmhvdmVyLCAubmljZS1zZWxlY3Qub3Blbi5vcmJpdC1wcmV2aW91cywgLm5pY2Utc2VsZWN0Lm9wZW4ub3JiaXQtbmV4dCwgLm9yYml0LXByZXZpb3VzOmFjdGl2ZSwgLm9yYml0LW5leHQ6YWN0aXZlLCAub3JiaXQtcHJldmlvdXM6Zm9jdXMsIC5vcmJpdC1uZXh0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDg1LCA4NSwgODUsIDAuNSk7IH1cblxuLm9yYml0LXByZXZpb3VzIHtcbiAgbGVmdDogMDsgfVxuXG4ub3JiaXQtbmV4dCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwOyB9XG5cbi5vcmJpdC1idWxsZXRzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAwLjhyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtYnVsbGV0cyB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub3JiaXQtYnVsbGV0cyBidXR0b24ge1xuICAgIHdpZHRoOiAxLjJyZW07XG4gICAgaGVpZ2h0OiAxLjJyZW07XG4gICAgbWFyZ2luOiAwLjFyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICAub3JiaXQtYnVsbGV0cyBidXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhhOGE4YTsgfVxuICAgIC5vcmJpdC1idWxsZXRzIGJ1dHRvbi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhhOGE4YTsgfVxuXG4ucGFnaW5hdGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5wYWdpbmF0aW9uOjpiZWZvcmUsIC5wYWdpbmF0aW9uOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAucGFnaW5hdGlvbiBsaSB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMDYyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucGFnaW5hdGlvbiBsaTpsYXN0LWNoaWxkLCAucGFnaW5hdGlvbiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFnaW5hdGlvbiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC5wYWdpbmF0aW9uIGEsXG4gIC5wYWdpbmF0aW9uIGJ1dHRvbiB7XG4gICAgY29sb3I6ICM1NTU1NTU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgICAucGFnaW5hdGlvbiBhOmhvdmVyLFxuICAgIC5wYWdpbmF0aW9uIGJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTZlNmU2OyB9XG4gIC5wYWdpbmF0aW9uIC5jdXJyZW50IHtcbiAgICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gICAgYmFja2dyb3VuZDogIzQ5OGJjOTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgLnBhZ2luYXRpb24gLmRpc2FibGVkIHtcbiAgICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gICAgY29sb3I6ICNjYWNhY2E7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gICAgLnBhZ2luYXRpb24gLmRpc2FibGVkOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5wYWdpbmF0aW9uIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBjb2xvcjogIzU1NTU1NTsgfVxuXG4ucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4ucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcMDBhYic7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbi5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgY29udGVudDogJ1xcMDBiYic7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuXG4ucHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2FjYWNhO1xuICBoZWlnaHQ6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgLnByb2dyZXNzLnByaW1hcnkgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5OWU4OyB9XG4gIC5wcm9ncmVzcy5zZWNvbmRhcnkgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3OyB9XG4gIC5wcm9ncmVzcy5zdWNjZXNzIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjsgfVxuICAucHJvZ3Jlc3Mud2FybmluZyAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7IH1cbiAgLnByb2dyZXNzLmFsZXJ0IC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjNTg0MDsgfVxuXG4ucHJvZ3Jlc3MtbWV0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ5OGJjOTsgfVxuXG4ucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lOyB9XG5cbi5zbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYWNhY2E7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0OyB9XG4gIC5zbGlkZXItZmlsbC5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjsgfVxuXG4uc2xpZGVyLWhhbmRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxLjRyZW07XG4gIGhlaWdodDogMS40cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDk4YmM5O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5zbGlkZXItaGFuZGxlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5zbGlkZXItaGFuZGxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU3NmI0OyB9XG4gIC5zbGlkZXItaGFuZGxlLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXIuZGlzYWJsZWQsXG4uc2xpZGVyW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLnNsaWRlci52ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDAuNXJlbTtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMC41cmVtO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDEuNHJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cblxuLnN0aWNreS1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc3RpY2t5LmlzLXN0dWNrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA1OyB9XG4gIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtdG9wIHtcbiAgICB0b3A6IDA7IH1cbiAgLnN0aWNreS5pcy1zdHVjay5pcy1hdC1ib3R0b20ge1xuICAgIGJvdHRvbTogMDsgfVxuXG4uc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bzsgfVxuICAuc3RpY2t5LmlzLWFuY2hvcmVkLmlzLWF0LWJvdHRvbSB7XG4gICAgYm90dG9tOiAwOyB9XG5cbmJvZHkuaXMtcmV2ZWFsLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5yZXZlYWwtb3ZlcmxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAxMDA1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDg1LCA4NSwgODUsIDAuNDUpO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cblxuLnJldmVhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDEwMDY7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEwMHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAucmV2ZWFsIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7IH0gfVxuICAucmV2ZWFsIC5jb2x1bW4sIC5yZXZlYWwgLmNvbHVtbnMsXG4gIC5yZXZlYWwgLmNvbHVtbnMge1xuICAgIG1pbi13aWR0aDogMDsgfVxuICAucmV2ZWFsID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgd2lkdGg6IDc1MHB4O1xuICAgICAgbWF4LXdpZHRoOiAxNDMwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbCAucmV2ZWFsIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cbiAgLnJldmVhbC5jb2xsYXBzZSB7XG4gICAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbC50aW55IHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBtYXgtd2lkdGg6IDE0MzBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLnNtYWxsIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDE0MzBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLmxhcmdlIHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgICBtYXgtd2lkdGg6IDE0MzBweDsgfSB9XG4gIC5yZXZlYWwuZnVsbCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGJvcmRlcjogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgYm9yZGVyOiAwOyB9IH1cbiAgLnJldmVhbC53aXRob3V0LW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuXG4uc3dpdGNoIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgb3V0bGluZTogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi5zd2l0Y2gtaW5wdXQge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLnN3aXRjaC1wYWRkbGUge1xuICBiYWNrZ3JvdW5kOiAjY2FjYWNhO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA0cmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyB9XG4gIGlucHV0ICsgLnN3aXRjaC1wYWRkbGUge1xuICAgIG1hcmdpbjogMDsgfVxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIGJhY2tncm91bmQ6ICM0OThiYzk7IH1cbiAgICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAgIGxlZnQ6IDIuMjVyZW07IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGlucHV0OmZvY3VzIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIG91dGxpbmU6IDA7IH1cblxuLnN3aXRjaC1hY3RpdmUsIC5zd2l0Y2gtaW5hY3RpdmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLnN3aXRjaC1hY3RpdmUge1xuICBsZWZ0OiA4JTtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnN3aXRjaC1pbmFjdGl2ZSB7XG4gIHJpZ2h0OiAxNSU7IH1cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uc3dpdGNoLnRpbnkgLnN3aXRjaC1wYWRkbGUge1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07IH1cblxuLnN3aXRjaC50aW55IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gIHdpZHRoOiAxcmVtO1xuICBoZWlnaHQ6IDFyZW07IH1cblxuLnN3aXRjaC50aW55IGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTphZnRlciB7XG4gIGxlZnQ6IDEuNzVyZW07IH1cblxuLnN3aXRjaC5zbWFsbCAuc3dpdGNoLXBhZGRsZSB7XG4gIHdpZHRoOiAzLjVyZW07XG4gIGhlaWdodDogMS43NXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG5cbi5zd2l0Y2guc21hbGwgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTsgfVxuXG4uc3dpdGNoLnNtYWxsIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTphZnRlciB7XG4gIGxlZnQ6IDJyZW07IH1cblxuLnN3aXRjaC5sYXJnZSAuc3dpdGNoLXBhZGRsZSB7XG4gIHdpZHRoOiA1cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG5cbi5zd2l0Y2gubGFyZ2UgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTsgfVxuXG4uc3dpdGNoLmxhcmdlIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTphZnRlciB7XG4gIGxlZnQ6IDIuNzVyZW07IH1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICB0YWJsZSB0aGVhZCxcbiAgdGFibGUgdGJvZHksXG4gIHRhYmxlIHRmb290IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjJmMmYyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgdGFibGUgY2FwdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtOyB9XG4gIHRhYmxlIHRoZWFkLFxuICB0YWJsZSB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgICBjb2xvcjogIzU1NTU1NTsgfVxuICAgIHRhYmxlIHRoZWFkIHRyLFxuICAgIHRhYmxlIHRmb290IHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgdGFibGUgdGhlYWQgdGgsXG4gICAgdGFibGUgdGhlYWQgdGQsXG4gICAgdGFibGUgdGZvb3QgdGgsXG4gICAgdGFibGUgdGZvb3QgdGQge1xuICAgICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjsgfVxuICB0YWJsZSB0Ym9keSB0aCxcbiAgdGFibGUgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgdGFibGUuc3RhY2sgdGhlYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdHIsXG4gIHRhYmxlLnN0YWNrIHRoLFxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGJvcmRlci10b3A6IDA7IH0gfVxuXG50YWJsZS5zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cblxudGFibGUuaG92ZXIgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyB9XG5cbnRhYmxlLmhvdmVyIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWRlZDsgfVxuXG4udGFibGUtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuICAudGFibGUtc2Nyb2xsIHRhYmxlIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuXG4udGFicyB7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2OyB9XG4gIC50YWJzOjpiZWZvcmUsIC50YWJzOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnRhYnM6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4udGFicy52ZXJ0aWNhbCA+IGxpIHtcbiAgd2lkdGg6IGF1dG87XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4udGFicy5zaW1wbGUgPiBsaSA+IGEge1xuICBwYWRkaW5nOiAwOyB9XG4gIC50YWJzLnNpbXBsZSA+IGxpID4gYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLnRhYnMucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMyMTk5ZTg7IH1cbiAgLnRhYnMucHJpbWFyeSA+IGxpID4gYSB7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAudGFicy5wcmltYXJ5ID4gbGkgPiBhOmhvdmVyLCAudGFicy5wcmltYXJ5ID4gbGkgPiBhOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6ICMxODkzZTQ7IH1cblxuLnRhYnMtdGl0bGUge1xuICBmbG9hdDogbGVmdDsgfVxuICAudGFicy10aXRsZSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAgIC50YWJzLXRpdGxlID4gYTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9XG4gICAgLnRhYnMtdGl0bGUgPiBhOmZvY3VzLCAudGFicy10aXRsZSA+IGFbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cblxuLnRhYnMtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci10b3A6IDA7IH1cblxuLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi50YWJzLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTsgfVxuICAudGFicy1wYW5lbC5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi50aHVtYm5haWwge1xuICBib3JkZXI6IHNvbGlkIDRweCAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSg4NSwgODUsIDg1LCAwLjIpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLnRodW1ibmFpbDpob3ZlciwgLnRodW1ibmFpbDpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDZweCAxcHggcmdiYSg3MywgMTM5LCAyMDEsIDAuNSk7IH1cblxuLnRpdGxlLWJhciB7XG4gIGJhY2tncm91bmQ6ICM1NTU1NTU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAwLjVyZW07IH1cbiAgLnRpdGxlLWJhcjo6YmVmb3JlLCAudGl0bGUtYmFyOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnRpdGxlLWJhcjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC50aXRsZS1iYXIgLm1lbnUtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuLnRpdGxlLWJhci1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLnRpdGxlLWJhci1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRpdGxlLWJhci10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLm1lbnUtaWNvbi5kYXJrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDsgfVxuICAubWVudS1pY29uLmRhcms6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogIzU1NTU1NTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICM1NTU1NTUsIDAgMTRweCAwICM1NTU1NTU7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogIzhhOGE4YTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICM4YThhOGEsIDAgMTRweCAwICM4YThhOGE7IH1cblxuLmhhcy10aXAge1xuICBib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICM4YThhOGE7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY3Vyc29yOiBoZWxwOyB9XG5cbi50b29sdGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTU1NTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB0b3A6IGNhbGMoMTAwJSArIDAuNjQ5NXJlbSk7XG4gIG1heC13aWR0aDogMTByZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAudG9vbHRpcDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzU1NTU1NTtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAudG9vbHRpcC50b3A6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBib3JkZXItY29sb3I6ICM1NTU1NTUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICB0b3A6IDEwMCU7XG4gICAgYm90dG9tOiBhdXRvOyB9XG4gIC50b29sdGlwLmxlZnQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM1NTU1NTU7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogMTAwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnRvb2x0aXAucmlnaHQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM1NTU1NTUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLnRvcC1iYXIge1xuICBwYWRkaW5nOiAwLjVyZW07IH1cbiAgLnRvcC1iYXI6OmJlZm9yZSwgLnRvcC1iYXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAudG9wLWJhcjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC50b3AtYmFyLFxuICAudG9wLWJhciB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsgfVxuICAudG9wLWJhciBpbnB1dCB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAudG9wLWJhciAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAudG9wLWJhciBpbnB1dC5idXR0b24ge1xuICAgIHdpZHRoOiBhdXRvOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuc3RhY2tlZC1mb3Itc21hbGwgLnRvcC1iYXItbGVmdCxcbiAgLnN0YWNrZWQtZm9yLXNtYWxsIC50b3AtYmFyLXJpZ2h0IHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLWxlZnQsXG4gIC5zdGFja2VkLWZvci1tZWRpdW0gLnRvcC1iYXItcmlnaHQge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gIC5zdGFja2VkLWZvci1sYXJnZSAudG9wLWJhci1sZWZ0LFxuICAuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItcmlnaHQge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnRvcC1iYXItbGVmdCxcbi50b3AtYmFyLXJpZ2h0IHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAudG9wLWJhci1sZWZ0LFxuICAudG9wLWJhci1yaWdodCB7XG4gICAgd2lkdGg6IGF1dG87IH0gfVxuXG4udG9wLWJhci10aXRsZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cblxuLnRvcC1iYXItbGVmdCB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi50b3AtYmFyLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAwZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNob3ctZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2hvdy1mb3Itc3IsXG4uc2hvdy1vbi1mb2N1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsgfVxuXG4uc2hvdy1vbi1mb2N1czphY3RpdmUsIC5zaG93LW9uLWZvY3VzLm5pY2Utc2VsZWN0Lm9wZW4sIC5zaG93LW9uLWZvY3VzOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bzsgfVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuXG4uY2xlYXJmaXg6OmJlZm9yZSwgLmNsZWFyZml4OjphZnRlciB7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxOyB9XG5cbi5jbGVhcmZpeDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4uYXJ0aWNsZS1tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcGFkZGluZzogMi42ODc1cmVtIDAgNi42NXJlbTsgfVxuICAuYXJ0aWNsZS1tZW51OjpiZWZvcmUsIC5hcnRpY2xlLW1lbnU6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAuYXJ0aWNsZS1tZW51OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5hcnRpY2xlLW1lbnUge1xuICAgICAgcGFkZGluZzogMy4xMjVyZW0gMCAwO1xuICAgICAgaGVpZ2h0OiAxMC4xMjVyZW07IH0gfVxuICAuYXJ0aWNsZS1tZW51X19jYXRlZ29yaWVzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmFydGljbGUtbWVudV9fY2F0ZWdvcmllcyBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmFydGljbGUtbWVudV9fY2F0ZWdvcmllcyBsaSB7XG4gICAgICAgICAgcGFkZGluZzogMCAyM3B4OyB9IH1cbiAgICAgIC5hcnRpY2xlLW1lbnVfX2NhdGVnb3JpZXMgbGkuYXJ0aWNsZS1tZW51X19jYXRlZ29yeSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS4ycmVtOyB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDIyLjVlbSkge1xuICAgICAgICAgIC5hcnRpY2xlLW1lbnVfX2NhdGVnb3JpZXMgbGkuYXJ0aWNsZS1tZW51X19jYXRlZ29yeSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTsgfSB9XG4gICAgICAuYXJ0aWNsZS1tZW51X19jYXRlZ29yaWVzIGxpLmFydGljbGUtbWVudV9fc3ViY2F0ZWdvcnkge1xuICAgICAgICBwYWRkaW5nOiAwIDEuMnJlbTsgfVxuICAuYXJ0aWNsZS1tZW51X190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC44NnJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1mYW1pbHk6IFwiaGFsYW50XCI7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmFydGljbGUtbWVudV9fdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmFydGljbGUtbWVudV9fdGl0bGUtZGVza3RvcCB7XG4gICAgZm9udC1mYW1pbHk6IFwiaGFsYW50XCI7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAuYXJ0aWNsZS1tZW51X190aXRsZS1kZXNrdG9wIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgLmFydGljbGUtbWVudV9fY2F0ZWdvcnkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAgIC5hcnRpY2xlLW1lbnVfX2NhdGVnb3J5ID4gYTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmOTU0NDtcbiAgICAgIGNvbG9yOiAjZmY5NTQ0OyB9XG4gIC5hcnRpY2xlLW1lbnVfX2NhdGVnb3J5LS1hY3RpdmUgPiBhIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmOTU0NDtcbiAgICBjb2xvcjogI2ZmOTU0NDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuYXJ0aWNsZS1tZW51X19jYXRlZ29yeS0tYWN0aXZlID4gLmFydGljbGUtbWVudV9fc3ViY2F0ZWdvcmllcyB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5hcnRpY2xlLW1lbnVfX2NhdGVnb3J5Om50aC1jaGlsZCgyKSAuYXJ0aWNsZS1tZW51X19zdWJjYXRlZ29yaWVzIHtcbiAgICAgIHdpZHRoOiAxOHJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5hcnRpY2xlLW1lbnVfX2NhdGVnb3J5Om50aC1jaGlsZCgzKSAuYXJ0aWNsZS1tZW51X19zdWJjYXRlZ29yaWVzIHtcbiAgICAgIHdpZHRoOiAyMHJlbTsgfSB9XG4gIC5hcnRpY2xlLW1lbnVfX3N1YmNhdGVnb3JpZXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEuOGVtO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbGluZS1oZWlnaHQ6IDEuOTdyZW07XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLmFydGljbGUtbWVudV9fc3ViY2F0ZWdvcmllcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxLjFyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5hcnRpY2xlLW1lbnVfX3N1YmNhdGVnb3JpZXMge1xuICAgICAgICB0b3A6IDEuNXJlbTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMS40cmVtOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuYXJ0aWNsZS1tZW51X19jYXRlZ29yeS1zdWI6aG92ZXIgLmFydGljbGUtbWVudV9fc3ViY2F0ZWdvcmllcyB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIG9wYWNpdHk6IDE7IH0gfVxuICAuYXJ0aWNsZS1tZW51X19zdWJjYXRlZ29yeSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5hcnRpY2xlLW1lbnVfX3N1YmNhdGVnb3J5IHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfSB9XG4gICAgLmFydGljbGUtbWVudV9fc3ViY2F0ZWdvcnkgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgICAgY29sb3I6ICNjYWM5Yzk7XG4gICAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAgICAgLmFydGljbGUtbWVudV9fc3ViY2F0ZWdvcnkgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmY5NTQ0OyB9XG4gICAgLmFydGljbGUtbWVudV9fc3ViY2F0ZWdvcnktLWFjdGl2ZSBhIHtcbiAgICAgIGNvbG9yOiAjZmY5NTQ0OyB9XG5cbi5hcnRpY2xlLXNpZGViYXIge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYXJ0aWNsZS1zaWRlYmFyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTtcbiAgICAgIHBhZGRpbmc6IDYwcHggMCAwIDUwcHg7XG4gICAgICB3aWR0aDogMjklOyB9IH1cbiAgLmFydGljbGUtc2lkZWJhciBwIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmFydGljbGUtc2lkZWJhcl9fYnRuIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgIHdpZHRoOiAyMjBweDtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAuYXJ0aWNsZS1zaWRlYmFyX19yZWNvbW1lbmRlZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmFydGljbGUtc2lkZWJhcl9fbmV4dC1hcnRpY2xlIHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMCA0cmVtOyB9XG4gICAgLmFydGljbGUtc2lkZWJhcl9fbmV4dC1hcnRpY2xlIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG4gICAgLmFydGljbGUtc2lkZWJhcl9fbmV4dC1hcnRpY2xlIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIHdpZHRoOiAxMy43NXJlbTtcbiAgICAgIGhlaWdodDogOS4wNjI1cmVtOyB9XG4gICAgLmFydGljbGUtc2lkZWJhcl9fbmV4dC1hcnRpY2xlIGltZyB7XG4gICAgICB3aWR0aDogMjIwcHg7IH1cbiAgLmFydGljbGUtc2lkZWJhcl9fbmV4dC1hcnRpY2xlLXRpdGxlIHtcbiAgICBtYXgtd2lkdGg6IDEzLjc1cmVtO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgY29sb3I6ICM1NTU1NTU7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07IH1cblxuLmNvbWluZy1zb29uIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiA5OTk5OTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmNvbWluZy1zb29uX19tb2RhbCB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogODBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIG9wYWNpdHk6IDAuOTU7XG4gICAgbWF4LXdpZHRoOiAzNzVweDtcbiAgICBoZWlnaHQ6IDU4N3B4O1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuY29taW5nLXNvb25fX21vZGFsIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNvbWluZy1zb29uX19tb2RhbCB7XG4gICAgICAgIHRvcDogY2FsYygxMTBweCArIDUwcHgpO1xuICAgICAgICBtYXgtd2lkdGg6IDcxNXB4O1xuICAgICAgICBoZWlnaHQ6IDU0MHB4OyB9IH1cbiAgLmNvbWluZy1zb29uX19jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMjBweDtcbiAgICByaWdodDogMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAyNXB4OyB9XG4gIC5jb21pbmctc29vbl9fY2VudGVyLWJsb2NrIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgICAuY29taW5nLXNvb25fX2NlbnRlci1ibG9jayBoMSB7XG4gICAgICBtYXJnaW46IDIwcHggMCA0MHB4O1xuICAgICAgY29sb3I6ICM3ZmQ5NTQ7XG4gICAgICBmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjsgfVxuICAgIC5jb21pbmctc29vbl9fY2VudGVyLWJsb2NrIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIC5jb21pbmctc29vbl9fY2VudGVyLWJsb2NrIHAge1xuICAgICAgICAgIHBhZGRpbmc6IDAgNjBweDsgfSB9XG4gICAgICAuY29taW5nLXNvb25fX2NlbnRlci1ibG9jayBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNvbWluZy1zb29uX19pY29uIHtcbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDUwcHg7IH1cbiAgLmNvbWluZy1zb29uLS1vcGVuIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG5cbi5jb250YWN0LXVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTsgfVxuICAuY29udGFjdC11czo6YmVmb3JlLCAuY29udGFjdC11czo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5jb250YWN0LXVzOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmNvbnRhY3QtdXNfX2ludHJvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDk4YmM5O1xuICAgIHBhZGRpbmc6IDc1cHggMCAzNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jb250YWN0LXVzX19pbnRybyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgICAgICAgaGVpZ2h0OiA2NDVweDsgfSB9XG4gICAgLmNvbnRhY3QtdXNfX2ludHJvIGgxIHtcbiAgICAgIG1hcmdpbjogMCAwIDQwcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNvbnRhY3QtdXNfX2ludHJvIGgxIHtcbiAgICAgICAgICBtYXJnaW46IDAgMCA2MHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jb250YWN0LXVzX19ib3hlcyB7XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG4gIC5jb250YWN0LXVzX19ib3gge1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNvbnRhY3QtdXNfX2JveCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIC01cHggMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH0gfVxuICAgIC5jb250YWN0LXVzX19ib3ggaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LWZhbWlseTogXCJJbnRyb1J1c3RCb29rLUJhc2VcIjsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY29udGFjdC11c19fYm94IGgzIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9IH1cbiAgICAuY29udGFjdC11c19fYm94IHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4OyB9XG4gICAgLmNvbnRhY3QtdXNfX2JveCBwICsgcCB7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgIC5jb250YWN0LXVzX19ib3gtLXR3ZWV0IHN2ZyB7XG4gICAgICBoZWlnaHQ6IDU1cHg7IH1cbiAgICAuY29udGFjdC11c19fYm94LS1mb2xsb3cgc3ZnIHtcbiAgICAgIGhlaWdodDogNjBweDsgfVxuICAgIC5jb250YWN0LXVzX19ib3gtLWNhbGwgc3ZnIHtcbiAgICAgIGhlaWdodDogNjBweDsgfVxuICAuY29udGFjdC11c19faWNvbiB7XG4gICAgaGVpZ2h0OiA4MHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5jb250YWN0LXVzX19zb2NpYWwtbGlua3Mge1xuICAgICAgbWFyZ2luLXRvcDogMjVweDsgfSB9XG4gIC5jb250YWN0LXVzX19zb2NpYWwtbGlua3MgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5jb250YWN0LXVzX19zb2NpYWwtbGlua3MgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgMXB4O1xuICAgIHdpZHRoOiA1MHB4OyB9XG4gICAgLmNvbnRhY3QtdXNfX3NvY2lhbC1saW5rcyBsaSBzdmcge1xuICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgd2lkdGg6IDI1cHg7IH1cbiAgLmNvbnRhY3QtdXNfX2Zvcm0tY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBwYWRkaW5nOiA2NXB4IDUlIDc1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNvbnRhY3QtdXNfX2Zvcm0tY29udGFpbmVyIHtcbiAgICAgICAgdG9wOiAtMTc1cHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBwYWRkaW5nOiA2NXB4IDEwLjYlIDc1cHg7XG4gICAgICAgIHdpZHRoOiA4Ny41JTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDA2cHg7IH0gfVxuICAgIC5jb250YWN0LXVzX19mb3JtLWNvbnRhaW5lciBoMSB7XG4gICAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiO1xuICAgICAgY29sb3I6ICM0OThiYzk7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNvbnRhY3QtdXNfX2Zvcm0tY29udGFpbmVyIGgxIHtcbiAgICAgICAgICBtYXJnaW46IDAgMCAzMHB4OyB9IH1cbiAgLmNvbnRhY3QtdXNfX2NvbnRlbnQge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBwYWRkaW5nOiAwIDYuMjUlIDMwcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY29udGFjdC11c19fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAzNXB4OyB9IH1cbiAgLmNvbnRhY3QtdXNfX2Zvcm0tcmVzcG9uc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5jb250YWN0LXVzX19mb3JtLXJlc3BvbnNlIHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMTBweDsgfVxuICAgIC5jb250YWN0LXVzX19mb3JtLXJlc3BvbnNlIGgxIHtcbiAgICAgIG1hcmdpbjogNTBweCAwIDMwcHg7XG4gICAgICBsaW5lLWhlaWdodDogNDJweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjtcbiAgICAgIGNvbG9yOiAjNDk4YmM5OyB9XG4gICAgLmNvbnRhY3QtdXNfX2Zvcm0tcmVzcG9uc2UgcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2NXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cbiAgICAuY29udGFjdC11c19fZm9ybS1yZXNwb25zZSAuY2VudGVyZWQtYm94IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICB3aWR0aDogOTAlOyB9XG4gIC5jb250YWN0LXVzX19iYWNrLXRvLWhvbWUge1xuICAgIHdpZHRoOiAyNzVweDtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAuY29udGFjdC11c19fZm9ybS13cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmNvbnRhY3QtdXNfX2Zvcm0td3JhcHBlciBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICAuY29udGFjdC11c19fZm9ybS13cmFwcGVyIGlucHV0W3R5cGU9XCJlbWFpbFwiXSB7XG4gICAgICBib3JkZXI6IDJweCAjNDk4YmM5IHNvbGlkO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgY29sb3I6ICM1NTU1NTU7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNvbnRhY3QtdXNfX2Zvcm0td3JhcHBlciBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICAgICAgLmNvbnRhY3QtdXNfX2Zvcm0td3JhcHBlciBpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfSB9XG4gICAgLmNvbnRhY3QtdXNfX2Zvcm0td3JhcHBlciB0ZXh0YXJlYSxcbiAgICAuY29udGFjdC11c19fZm9ybS13cmFwcGVyIHRleHRhcmVhOmZvY3VzIHtcbiAgICAgIGJvcmRlcjogMnB4ICM0OThiYzkgc29saWQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNWY1OyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jb250YWN0LXVzX19mb3JtLXdyYXBwZXIgdGV4dGFyZWEsXG4gICAgICAgIC5jb250YWN0LXVzX19mb3JtLXdyYXBwZXIgdGV4dGFyZWE6Zm9jdXMge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfSB9XG4gICAgLmNvbnRhY3QtdXNfX2Zvcm0td3JhcHBlciBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jb250YWN0LXVzX19mb3JtLXdyYXBwZXIgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWwge1xuICAgICAgcGFkZGluZzogMTVweCAwIDI1cHg7XG4gICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6ICM0OThiYzk7IH1cbiAgICAuY29udGFjdC11c19fZm9ybS13cmFwcGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzQ5OGJjOTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmb250OiAxNnB4LzFlbSBzYW5zLXNlcmlmO1xuICAgICAgd2lkdGg6IDEuMmVtO1xuICAgICAgaGVpZ2h0OiAxLjJlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBjb250ZW50OiBcIlxcMDBhMFwiOyB9XG4gICAgLmNvbnRhY3QtdXNfX2Zvcm0td3JhcHBlciBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBjb2xvcjogIzQ5OGJjOTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbnRlbnQ6IFwiXFwyNzEzXCI7IH1cbiAgICAuY29udGFjdC11c19fZm9ybS13cmFwcGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAuY29udGFjdC11c19fZm9ybS13cmFwcGVyIGxhYmVsIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNvbnRhY3QtdXNfX2ZpcnN0LW5hbWUge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogNDklOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jb250YWN0LXVzX19sYXN0LW5hbWUge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgd2lkdGg6IDQ5JTsgfSB9XG4gIC5jb250YWN0LXVzX19lbWFpbCB7XG4gICAgaGVpZ2h0OiAzN3B4O1xuICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuICAuY29udGFjdC11c19fc3VibWl0IHtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jb250YWN0LXVzX19zdWJtaXQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiAyNzVweDsgfSB9XG5cbi5pbmdyZWRpZW50cyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnIHt7IFwib3B1cy1ncm93cy1ob21lLXNlY3Rpb240LWluZ3JlZGllbnRzLW1vYmlsZS5qcGdcIiB8IGFzc2V0X3VybCB9fSAnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTE4MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5pbmdyZWRpZW50cyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyB7eyBcIm9wdXMtZ3Jvd3MtaG9tZS1zZWN0aW9uNC1pbmdyZWRpZW50cy1pcGFkMi5qcGdcIiB8IGFzc2V0X3VybCB9fSAnKTtcbiAgICAgIHBhZGRpbmctdG9wOiA3NXB4O1xuICAgICAgaGVpZ2h0OiA3MDBweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1Mi41ZW0pIHtcbiAgICAuaW5ncmVkaWVudHMge1xuICAgICAgaGVpZ2h0OiA3OTNweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAuaW5ncmVkaWVudHMge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLWhvbWUtaW5ncmVkaWVudHMuanBnXCIgfCBhc3NldF91cmwgfX0gJyk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIC5pbmdyZWRpZW50c19faGVhZGVyIHtcbiAgICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDIzcHg7IH1cbiAgICAgIC5pbmdyZWRpZW50c19faGVhZGVyOjpiZWZvcmUsIC5pbmdyZWRpZW50c19faGVhZGVyOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIG9yZGVyOiAxOyB9XG4gICAgICAuaW5ncmVkaWVudHNfX2hlYWRlcjo6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDsgfSB9XG4gIC5pbmdyZWRpZW50c19fZmxvd2VycG90LWljb24ge1xuICAgIHBhZGRpbmc6IDQ4cHggMCAxMHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmluZ3JlZGllbnRzX19mbG93ZXJwb3QtaWNvbiB7XG4gICAgICAgIHdpZHRoOiA2LjI1JTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDYuMjUlO1xuICAgICAgICBtYXJnaW4tbGVmdDogNyU7XG4gICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgIC5pbmdyZWRpZW50c19fZmxvd2VycG90LWljb24gc3ZnIHtcbiAgICAgIHdpZHRoOiAzN3B4O1xuICAgICAgaGVpZ2h0OiA0N3B4OyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5pbmdyZWRpZW50c19fZmxvd2VycG90LWljb24gc3ZnIHtcbiAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICBoZWlnaHQ6IDY1cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmluZ3JlZGllbnRzX19oZWFkaW5ncyB7XG4gICAgICB3aWR0aDogMzEuMjUlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjY1NjI1cmVtOyB9IH1cbiAgLmluZ3JlZGllbnRzIGgzIHtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LWZhbWlseTogXCJoYWxhbnRcIjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5pbmdyZWRpZW50cyBoMyB7XG4gICAgICAgIG1hcmdpbjogMDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmluZ3JlZGllbnRzIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4OyB9IH1cbiAgLmluZ3JlZGllbnRzIGgxIHtcbiAgICBjb2xvcjogI2ZmOTU0NDtcbiAgICBmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5pbmdyZWRpZW50cyBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDsgfSB9XG4gIC5pbmdyZWRpZW50c19faW50cm8ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAuaW5ncmVkaWVudHNfX2ludHJvIHtcbiAgICAgICAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLmluZ3JlZGllbnRzX19pbnRybzo6YmVmb3JlLCAuaW5ncmVkaWVudHNfX2ludHJvOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgICAgb3JkZXI6IDE7IH1cbiAgICAgICAgLmluZ3JlZGllbnRzX19pbnRybzo6YWZ0ZXIge1xuICAgICAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgICAgIC5pbmdyZWRpZW50c19faW50cm8gcCB7XG4gICAgICAgICAgd2lkdGg6IDM1JTtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogNi4yNSU7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAgIC5pbmdyZWRpZW50c19fZXhwYW5kZWQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAuaW5ncmVkaWVudHNfX2V4cGFuZGVkIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMjAwcHg7XG4gICAgICBoZWlnaHQ6IDc5M3B4O1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogY2FsYygoMTAwdncgLSAxMjAwcHgpIC8gMik7IH0gfVxuICAuaW5ncmVkaWVudHNfX3Rvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIC5pbmdyZWRpZW50c19fdG9vbHRpcCBzdmcge1xuICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICBoZWlnaHQ6IDI1cHg7IH1cbiAgICAuaW5ncmVkaWVudHNfX3Rvb2x0aXAtLWJpb2NoYXIge1xuICAgICAgdG9wOiAxMzBweDtcbiAgICAgIHJpZ2h0OiAxNDVweDsgfVxuICAgIC5pbmdyZWRpZW50c19fdG9vbHRpcC0tbXljb3JyaGl6YWUge1xuICAgICAgdG9wOiA1NzJweDtcbiAgICAgIHJpZ2h0OiA5OHB4OyB9XG4gICAgLmluZ3JlZGllbnRzX190b29sdGlwLS13b3JtLWNhc3RpbmdzIHtcbiAgICAgIHRvcDogMzQ1cHg7XG4gICAgICBsZWZ0OiAzODVweDsgfVxuICAgIC5pbmdyZWRpZW50c19fdG9vbHRpcC0tY29jb251dC1jb2lyLWZpYmVyIHtcbiAgICAgIHRvcDogMzgwcHg7XG4gICAgICBsZWZ0OiA3OThweDsgfVxuICAuaW5ncmVkaWVudHNfX3Rvb2x0aXAtbGluZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAuaW5ncmVkaWVudHNfX3Rvb2x0aXAtbGluZSBzdmcge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAgIC5pbmdyZWRpZW50c19fdG9vbHRpcC1saW5lLS1iaW9jaGFyIHtcbiAgICAgIHRvcDogMzhweDtcbiAgICAgIHJpZ2h0OiA3cHg7IH1cbiAgICAuaW5ncmVkaWVudHNfX3Rvb2x0aXAtbGluZS0tbXljb3JyaGl6YWUge1xuICAgICAgdG9wOiA1NjJweDtcbiAgICAgIHJpZ2h0OiA4NHB4O1xuICAgICAgd2lkdGg6IDQ4cHg7IH1cbiAgICAuaW5ncmVkaWVudHNfX3Rvb2x0aXAtbGluZS0td29ybS1jYXN0aW5ncyB7XG4gICAgICB0b3A6IDI4MHB4O1xuICAgICAgbGVmdDogMjcwcHg7XG4gICAgICB3aWR0aDogMjEwcHg7IH1cbiAgICAuaW5ncmVkaWVudHNfX3Rvb2x0aXAtbGluZS0tY29jb251dC1jb2lyLWZpYmVyIHtcbiAgICAgIHRvcDogMjIwcHg7XG4gICAgICBsZWZ0OiA3MThweDsgfVxuICAuaW5ncmVkaWVudHNfX3RleHQtYmxvY2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgLmluZ3JlZGllbnRzX190ZXh0LWJsb2NrLS1iaW9jaGFyIHtcbiAgICAgIHRvcDogODJweDtcbiAgICAgIHJpZ2h0OiAzMjFweDsgfVxuICAgIC5pbmdyZWRpZW50c19fdGV4dC1ibG9jay0tbXljb3JyaGl6YWUge1xuICAgICAgdG9wOiA2NTVweDtcbiAgICAgIHJpZ2h0OiAxMzlweDsgfVxuICAgIC5pbmdyZWRpZW50c19fdGV4dC1ibG9jay0td29ybS1jYXN0aW5ncyB7XG4gICAgICB0b3A6IDM0MHB4O1xuICAgICAgbGVmdDogNDBweDsgfVxuICAgIC5pbmdyZWRpZW50c19fdGV4dC1ibG9jay0tY29jb251dC1jb2lyLWZpYmVyIHtcbiAgICAgIHRvcDogMjA1cHg7XG4gICAgICBsZWZ0OiA1NDBweDsgfVxuICAuaW5ncmVkaWVudHNfX25hbWUge1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBjb2xvcjogI2ZmOTU0NDtcbiAgICBmb250LWZhbWlseTogXCJJbnRyb1J1c3RCb29rLUJhc2VcIjtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgLmluZ3JlZGllbnRzX19kZXNjcmlwdGlvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG5cbi5mb290ZXIge1xuICBiYWNrZ3JvdW5kOiAjNTU1NTU1O1xuICBwYWRkaW5nOiA2MHB4IDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuZm9vdGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZm9vdGVyIHtcbiAgICAgIHBhZGRpbmc6IDcwcHggMCA3NXB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5mb290ZXJfX3JvdyB7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgICAgIC5mb290ZXJfX3Jvdzo6YmVmb3JlLCAuZm9vdGVyX19yb3c6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgb3JkZXI6IDE7IH1cbiAgICAgIC5mb290ZXJfX3Jvdzo6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDsgfVxuICAgICAgLmZvb3Rlcl9fcm93Omxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjY1NjI1cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAyNXB4OyB9XG4gICAgICAgIC5mb290ZXJfX3JvdzpsYXN0LW9mLXR5cGU6OmJlZm9yZSwgLmZvb3Rlcl9fcm93Omxhc3Qtb2YtdHlwZTo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICAgIG9yZGVyOiAxOyB9XG4gICAgICAgIC5mb290ZXJfX3JvdzpsYXN0LW9mLXR5cGU6OmFmdGVyIHtcbiAgICAgICAgICBjbGVhcjogYm90aDsgfVxuICAgICAgICAuZm9vdGVyX19yb3c6bGFzdC1vZi10eXBlLCAuZm9vdGVyX19yb3c6bGFzdC1vZi10eXBlOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGZsb2F0OiBub25lOyB9IH1cbiAgLmZvb3Rlcl9fbG9nbyB7XG4gICAgaGVpZ2h0OiA2MnB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmZvb3Rlcl9fbG9nbyB7XG4gICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC01cHg7XG4gICAgICAgIGhlaWdodDogNzVweDsgfSB9XG4gICAgLmZvb3Rlcl9fbG9nbyBzdmcge1xuICAgICAgd2lkdGg6IDkwcHg7XG4gICAgICBoZWlnaHQ6IDYycHg7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmZvb3Rlcl9fbG9nbyBzdmcge1xuICAgICAgICAgIHdpZHRoOiAxMTJweDtcbiAgICAgICAgICBoZWlnaHQ6IDc1cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuZm9vdGVyX19zaWdudXAge1xuICAgICAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogMjBweDsgfVxuICAgICAgLmZvb3Rlcl9fc2lnbnVwOjpiZWZvcmUsIC5mb290ZXJfX3NpZ251cDo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBvcmRlcjogMTsgfVxuICAgICAgLmZvb3Rlcl9fc2lnbnVwOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5mb290ZXJfX3NpZ251cCB7XG4gICAgICB3aWR0aDogMzcuNSU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLmZvb3Rlcl9fc2lnbnVwLWZvcm0ge1xuICAgICAgd2lkdGg6IDg3LjUlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjY1NjI1cmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGVmdDogNi4yNSU7IH0gfVxuICAuZm9vdGVyX19zaWdudXAtbGFiZWwge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5mb290ZXJfX3NpZ251cC1sYWJlbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsgfSB9XG4gIC5mb290ZXJfX3NpZ251cC1pbnB1dCB7XG4gICAgaGVpZ2h0OiAzN3B4O1xuICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5mb290ZXJfX3NpZ251cC1pbnB1dCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogNzAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5mb290ZXJfX3NpZ251cC1idXR0b24ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgd2lkdGg6IDI4JTsgfSB9XG4gIC5mb290ZXJfX3NpZ251cC1ib3QtY2F0Y2hlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC01MDAwcHg7IH1cbiAgLmZvb3Rlcl9fbmF2IHtcbiAgICBtYXJnaW4tdG9wOiAyNXB4OyB9XG4gICAgLmZvb3Rlcl9fbmF2OjpiZWZvcmUsIC5mb290ZXJfX25hdjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7IH1cbiAgICAuZm9vdGVyX19uYXY6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmZvb3Rlcl9fbmF2IHtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDExLjUlO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OyB9IH1cbiAgICAuZm9vdGVyX19uYXYgdWwge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMTIuNSU7XG4gICAgICB3aWR0aDogMzEuMjUlO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmZvb3Rlcl9fbmF2IHVsIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICB3aWR0aDogNTAlOyB9IH1cbiAgICAgIC5mb290ZXJfX25hdiB1bDpsYXN0LW9mLXR5cGUge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOS4yNSU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMzcuNSU7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAgIC5mb290ZXJfX25hdiB1bDpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDUwJTsgfSB9XG4gICAgLmZvb3Rlcl9fbmF2IGEge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5mb290ZXJfX25hdiBhIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS42OyB9IH1cbiAgLmZvb3Rlcl9fY29weXJpZ2h0IGEge1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5mb290ZXJfX2NvcHlyaWdodCBwIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmZvb3Rlcl9fY29weXJpZ2h0IHAge1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cbiAgLmZvb3Rlcl9fY29weXJpZ2h0LS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZm9vdGVyX19jb3B5cmlnaHQtLWRlc2t0b3Age1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5mb290ZXJfX2NvcHlyaWdodC0tbW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuZm9vdGVyX19zb2NpYWwtbGlua3Mge1xuICAgICAgbWFyZ2luOiAyNXB4IDAgMTVweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZm9vdGVyX19zb2NpYWwtbGlua3Mge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA2MHB4OyB9IH1cbiAgLmZvb3Rlcl9fc29jaWFsLWxpbmtzIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuZm9vdGVyX19zb2NpYWwtbGlua3MgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogNTVweDsgfVxuICAgIC5mb290ZXJfX3NvY2lhbC1saW5rcyBsaSBzdmcge1xuICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgd2lkdGg6IDI1cHg7IH1cblxuLmhhbmQtZGVsaXZlcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcGFkZGluZzogOTBweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5oYW5kLWRlbGl2ZXJlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyB7eyBcIm9wdXMtZ3Jvd3MtaG9tZS1oYW5kLWRlbGl2ZXJlZC1sZWFmLWZyYW1lcy5qcGdcIiB8IGFzc2V0X3VybCB9fSAnKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b207XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBoZWlnaHQ6IDc5MHB4O1xuICAgICAgcGFkZGluZzogMTIxcHggMCAwOyB9IH1cbiAgLmhhbmQtZGVsaXZlcmVkIGgzIHtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LWZhbWlseTogXCJoYWxhbnRcIjsgfVxuICAuaGFuZC1kZWxpdmVyZWQgaDEge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgY29sb3I6ICM0OThiYzk7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5oYW5kLWRlbGl2ZXJlZF9fc3RlcHMge1xuICAgICAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogNTBweDsgfVxuICAgICAgLmhhbmQtZGVsaXZlcmVkX19zdGVwczo6YmVmb3JlLCAuaGFuZC1kZWxpdmVyZWRfX3N0ZXBzOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIG9yZGVyOiAxOyB9XG4gICAgICAuaGFuZC1kZWxpdmVyZWRfX3N0ZXBzOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5oYW5kLWRlbGl2ZXJlZF9fc3RlcCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjY1NjI1cmVtOyB9IH1cbiAgLmhhbmQtZGVsaXZlcmVkX19zdGVwIHN2ZyB7XG4gICAgaGVpZ2h0OiA2MHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmhhbmQtZGVsaXZlcmVkX19zdGVwIHN2ZyB7XG4gICAgICAgIGhlaWdodDogMTAwcHg7IH0gfVxuICAuaGFuZC1kZWxpdmVyZWRfX3N0ZXAgaDMge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM0OThiYzk7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0Qm9vay1CYXNlXCI7IH1cbiAgLmhhbmQtZGVsaXZlcmVkX19zdGVwIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgY29sb3I6ICM1NTU1NTU7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAuaGFuZC1kZWxpdmVyZWRfX3N0ZXAtLWNob29zZSB7XG4gICAgbWFyZ2luLXRvcDogMzdweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmhhbmQtZGVsaXZlcmVkX19zdGVwLS1jaG9vc2Uge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDc3cHg7IH0gfVxuICAgIC5oYW5kLWRlbGl2ZXJlZF9fc3RlcC0tY2hvb3NlIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmhhbmQtZGVsaXZlcmVkX19zdGVwLS1jaG9vc2UgaDMge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsgfSB9XG4gIC5oYW5kLWRlbGl2ZXJlZF9fc3RlcC0tcmVjZWl2ZSB7XG4gICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmhhbmQtZGVsaXZlcmVkX19zdGVwLS1yZWNlaXZlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsgfSB9XG4gICAgLmhhbmQtZGVsaXZlcmVkX19zdGVwLS1yZWNlaXZlIGgzIHtcbiAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmhhbmQtZGVsaXZlcmVkX19zdGVwLS1yZWNlaXZlIGgzIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAyM3B4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5oYW5kLWRlbGl2ZXJlZF9fc3RlcC0tcmVjZWl2ZSBwIHtcbiAgICAgICAgYm9yZGVyOiAwIDJweCAwIDJweCBzb2xpZCAjY2FjOWM5OyB9IH1cbiAgLmhhbmQtZGVsaXZlcmVkX19zdGVwLS1ncm93IHtcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaGFuZC1kZWxpdmVyZWRfX3N0ZXAtLWdyb3cge1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDcwcHg7IH0gfVxuICAgIC5oYW5kLWRlbGl2ZXJlZF9fc3RlcC0tZ3JvdyBoMyB7XG4gICAgICBtYXJnaW4tdG9wOiAxNHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuaGFuZC1kZWxpdmVyZWRfX3N0ZXAtLWdyb3cgaDMge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsgfSB9XG5cbi5oaWdobGlnaHQtYXJ0aWNsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgLmhpZ2hsaWdodC1hcnRpY2xlOjpiZWZvcmUsIC5oaWdobGlnaHQtYXJ0aWNsZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5oaWdobGlnaHQtYXJ0aWNsZTo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuaG9tZXBhZ2UgLmhpZ2hsaWdodC1hcnRpY2xlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1NXB4OyB9IH1cbiAgLmhpZ2hsaWdodC1hcnRpY2xlX19tb2JpbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjk1NDQ7XG4gICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgaGVpZ2h0OiAxNTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaGlnaGxpZ2h0LWFydGljbGVfX21vYmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5oaWdobGlnaHQtYXJ0aWNsZV9fbW9iaWxlIHAge1xuICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICBmb250LWZhbWlseTogXCJoYWxhbnRcIjtcbiAgICAgIGZvbnQtc2l6ZTogMjJweDsgfVxuICAgIC5oaWdobGlnaHQtYXJ0aWNsZV9fbW9iaWxlIGEge1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgLmhpZ2hsaWdodC1hcnRpY2xlX19tb2JpbGU6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuaGlnaGxpZ2h0LWFydGljbGVfX21vYmlsZSBzdmcge1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGZpbGw6ICNmZmZmZmY7IH1cbiAgICAuYmxvZyAuaGlnaGxpZ2h0LWFydGljbGVfX21vYmlsZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5oaWdobGlnaHQtYXJ0aWNsZV9faW50cm8ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjk1NDQ7XG4gICAgaGVpZ2h0OiA0MzBweDtcbiAgICBwYWRkaW5nLXRvcDogODBweDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC5oaWdobGlnaHQtYXJ0aWNsZV9faW50cm8ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAuaGlnaGxpZ2h0LWFydGljbGVfX2ludHJvIGgzIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcImhhbGFudFwiOyB9XG4gICAgLmhpZ2hsaWdodC1hcnRpY2xlX19pbnRybyBoMSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7IH1cbiAgICAuYmxvZyAuaGlnaGxpZ2h0LWFydGljbGVfX2ludHJvIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmhvbWVwYWdlIC5oaWdobGlnaHQtYXJ0aWNsZV9fb3V0ZXIge1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC0yMTVweDsgfVxuICAgIC5ob21lcGFnZSAuaGlnaGxpZ2h0LWFydGljbGVfX291dGVyOjpiZWZvcmUsIC5ob21lcGFnZSAuaGlnaGxpZ2h0LWFydGljbGVfX291dGVyOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTsgfVxuICAgIC5ob21lcGFnZSAuaGlnaGxpZ2h0LWFydGljbGVfX291dGVyOjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgLmhvbWVwYWdlIC5oaWdobGlnaHQtYXJ0aWNsZV9fb3V0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmhvbWVwYWdlIC5oaWdobGlnaHQtYXJ0aWNsZV9faW5uZXIge1xuICAgIHdpZHRoOiA4Ny41JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogNi4yNSU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5oaWdobGlnaHQtYXJ0aWNsZV9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogOCU7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgaGVpZ2h0OiA3NXB4OyB9XG4gICAgLmJsb2cgLmhpZ2hsaWdodC1hcnRpY2xlX19pY29uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmhpZ2hsaWdodC1hcnRpY2xlX19pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgICAuYmxvZyAuaGlnaGxpZ2h0LWFydGljbGVfX2ltYWdlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAzMThweDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuYmxvZyAuaGlnaGxpZ2h0LWFydGljbGVfX2ltYWdlIHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICBoZWlnaHQ6IDU3N3B4OyB9IH1cbiAgICAuaG9tZXBhZ2UgLmhpZ2hsaWdodC1hcnRpY2xlX19pbWFnZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBoZWlnaHQ6IDQzMHB4OyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgICAgLmhvbWVwYWdlIC5oaWdobGlnaHQtYXJ0aWNsZV9faW1hZ2Uge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuaGlnaGxpZ2h0LWFydGljbGVfX2NvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY1ZjU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC5oaWdobGlnaHQtYXJ0aWNsZV9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDM1cHggMjBweDsgfSB9XG4gICAgLmJsb2cgLmhpZ2hsaWdodC1hcnRpY2xlX19jb250ZW50IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5ibG9nIC5oaWdobGlnaHQtYXJ0aWNsZV9fY29udGVudCB7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICBoZWlnaHQ6IDU3N3B4OyB9IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmJsb2cgLmhpZ2hsaWdodC1hcnRpY2xlX19jb250ZW50IC5jZW50ZXJlZC1ib3gge1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICBtYXJnaW46IDUuNjI1cmVtIDkuOXJlbSAwIDEuMjVyZW07XG4gICAgICAgICAgbWF4LXdpZHRoOiA0MjBweDsgfSB9XG4gICAgLmhvbWVwYWdlIC5oaWdobGlnaHQtYXJ0aWNsZV9fY29udGVudCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgaGVpZ2h0OiA0MzBweDsgfVxuICAgICAgLmhvbWVwYWdlIC5oaWdobGlnaHQtYXJ0aWNsZV9fY29udGVudCAuY2VudGVyZWQtYm94IHtcbiAgICAgICAgbWFyZ2luOiA1LjU2MjVyZW0gMCAwIDEzJTtcbiAgICAgICAgd2lkdGg6IDM4MHB4OyB9XG4gICAgLmhpZ2hsaWdodC1hcnRpY2xlX19jb250ZW50IGgzIHtcbiAgICAgIG1hcmdpbjogNXB4IDA7XG4gICAgICBjb2xvcjogIzU1NTU1NTtcbiAgICAgIGZvbnQtZmFtaWx5OiBcImhhbGFudFwiOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5oaWdobGlnaHQtYXJ0aWNsZV9fY29udGVudCBoMyB7XG4gICAgICAgICAgbWFyZ2luOiA1MHB4IDAgMDsgfSB9XG4gICAgICAuaG9tZXBhZ2UgLmhpZ2hsaWdodC1hcnRpY2xlX19jb250ZW50IGgzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuaGlnaGxpZ2h0LWFydGljbGVfX2RhdGE6OmJlZm9yZSwgLmhpZ2hsaWdodC1hcnRpY2xlX19kYXRhOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmhpZ2hsaWdodC1hcnRpY2xlX19kYXRhOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmhpZ2hsaWdodC1hcnRpY2xlX19jYXRlZ29yeSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICBmb250LXdlaWdodDogMzAwOyB9XG4gIC5oaWdobGlnaHQtYXJ0aWNsZV9fZGF0ZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgIC5ob21lcGFnZSAuaGlnaGxpZ2h0LWFydGljbGVfX2RhdGUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuaGlnaGxpZ2h0LWFydGljbGVfX3RpdGxlLS1ibG9nIHtcbiAgICBtYXJnaW46IDAgMCAzMHB4O1xuICAgIGNvbG9yOiAjZmY5NTQ0O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiOyB9XG4gICAgLmhvbWVwYWdlIC5oaWdobGlnaHQtYXJ0aWNsZV9fdGl0bGUtLWJsb2cge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuaGlnaGxpZ2h0LWFydGljbGVfX3RpdGxlLS1ob21lcGFnZSB7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LWZhbWlseTogXCJwcm94aW1hLW5vdmFcIjtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgIC5ibG9nIC5oaWdobGlnaHQtYXJ0aWNsZV9fdGl0bGUtLWhvbWVwYWdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmhpZ2hsaWdodC1hcnRpY2xlX19leGNlcnB0IHtcbiAgICBsaW5lLWhlaWdodDogMjFweDtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5oaWdobGlnaHQtYXJ0aWNsZV9fZXhjZXJwdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7IH1cbiAgICAgICAgLmhvbWVwYWdlIC5oaWdobGlnaHQtYXJ0aWNsZV9fZXhjZXJwdCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsgfSB9XG4gIC5oaWdobGlnaHQtYXJ0aWNsZV9fcmVhZC1tb3JlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5oaWdobGlnaHQtYXJ0aWNsZV9fcmVhZC1tb3JlIGEge1xuICAgICAgY29sb3I6ICM1NTU1NTU7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07IH1cbiAgICAgIC5oaWdobGlnaHQtYXJ0aWNsZV9fcmVhZC1tb3JlIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzU1NTU1NTsgfVxuICAgIC5oaWdobGlnaHQtYXJ0aWNsZV9fcmVhZC1tb3JlIHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgZmlsbDogIzU1NTU1NTsgfVxuXG4ubGF0ZXN0LWFydGljbGVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAubGF0ZXN0LWFydGljbGVzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmxhdGVzdC1hcnRpY2xlcyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtOyB9IH1cbiAgLmxhdGVzdC1hcnRpY2xlc19fcm93IHtcbiAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgIC5sYXRlc3QtYXJ0aWNsZXNfX3Jvdzo6YmVmb3JlLCAubGF0ZXN0LWFydGljbGVzX19yb3c6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxOyB9XG4gICAgLmxhdGVzdC1hcnRpY2xlc19fcm93OjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAubGF0ZXN0LWFydGljbGVzX19oZWFkZXIge1xuICAgIHdpZHRoOiA5My43NSU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDYuMjUlO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgICAubGF0ZXN0LWFydGljbGVzX19oZWFkZXIgaDMge1xuICAgICAgY29sb3I6ICNmZjk1NDQ7XG4gICAgICBmb250LWZhbWlseTogXCJJbnRyb1J1c3RCb29rLUJhc2VcIjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmxhdGVzdC1hcnRpY2xlc19fY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiA4Ny41JTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2LjI1JTsgfSB9XG4gIC5sYXRlc3QtYXJ0aWNsZXNfX3NpbmdsZS1hcnRpY2xlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogNS4wNjI1cmVtO1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzJSAtIDMuMzc1cmVtKTsgfVxuICAgIC5sYXRlc3QtYXJ0aWNsZXNfX3NpbmdsZS1hcnRpY2xlOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzQlIC0gMy4zNzVyZW0pOyB9XG4gIC5sYXRlc3QtYXJ0aWNsZXNfX2ZlYXR1cmVkLWltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1ib3R0b206IDk1JTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAubGF0ZXN0LWFydGljbGVzX19mZWF0dXJlZC1pbWFnZSBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHotaW5kZXg6IDM7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5sYXRlc3QtYXJ0aWNsZXNfX2ZlYXR1cmVkLWltYWdlOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE0OSwgNjgsIDAuNSk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zM3M7XG4gICAgICBjb250ZW50OiBcIlwiOyB9XG4gICAgLmxhdGVzdC1hcnRpY2xlc19fZmVhdHVyZWQtaW1hZ2U6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAubGF0ZXN0LWFydGljbGVzX19mZWF0dXJlZC1pbWFnZTpob3Zlcjo6YWZ0ZXIsXG4gICAgICAubGF0ZXN0LWFydGljbGVzX19mZWF0dXJlZC1pbWFnZTpob3ZlciBzdmcge1xuICAgICAgICBvcGFjaXR5OiAxOyB9XG4gIC5sYXRlc3QtYXJ0aWNsZXMgc3ZnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHotaW5kZXg6IDM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgIGhlaWdodDogMy4xMjVyZW07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmxhdGVzdC1hcnRpY2xlc19fZGF0YSB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgIC5sYXRlc3QtYXJ0aWNsZXNfX2RhdGE6OmJlZm9yZSwgLmxhdGVzdC1hcnRpY2xlc19fZGF0YTo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7IH1cbiAgICAubGF0ZXN0LWFydGljbGVzX19kYXRhOjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAubGF0ZXN0LWFydGljbGVzX19jYXRlZ29yeSB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhdGVzdC1hcnRpY2xlc19fZGF0ZSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5sYXRlc3QtYXJ0aWNsZXNfX3RpdGxlIGgzIHtcbiAgICBtYXJnaW46IDAgMCAzMHB4O1xuICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgLmxhdGVzdC1hcnRpY2xlc19fdGl0bGUgaDM6aG92ZXIge1xuICAgICAgY29sb3I6ICM1NTU1NTU7IH1cblxuLm1pbmktY2FydCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IGNhbGMoICgoMTAwdncgLSA3NXJlbSkgLyAyKSArIDE1NXB4KTtcbiAgb3BhY2l0eTogMDtcbiAgYm9yZGVyOiAwIDJweCAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgd2lkdGg6IDQwMHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAubWluaS1jYXJ0X19oZWFkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDU1cHg7XG4gICAgcGFkZGluZzogMjNweCAwO1xuICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAubWluaS1jYXJ0X19jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLm1pbmktY2FydF9fY29udGVudDo6YmVmb3JlLCAubWluaS1jYXJ0X19jb250ZW50OjphZnRlciB7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTsgfVxuICAgIC5taW5pLWNhcnRfX2NvbnRlbnQ6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1pbmktY2FydF9fY29udGVudCBociB7XG4gICAgICBtYXJnaW46IDEwcHggNDVweCAwIDU1cHg7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGNvbG9yOiAjZjZmNWY1OyB9XG4gIC5taW5pLWNhcnRfX2l0ZW0ge1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG4gIC5taW5pLWNhcnRfX2l0ZW0tdGh1bWIge1xuICAgIG1hcmdpbjogM3B4IDE1cHggMCA1NXB4O1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLm1pbmktY2FydF9faXRlbS10aHVtYiBpbWcge1xuICAgICAgd2lkdGg6IDYwcHg7IH1cbiAgLm1pbmktY2FydF9faXRlbS10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5taW5pLWNhcnRfX2l0ZW0tcXVhbnRpdHktcHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG4gIC5taW5pLWNhcnRfX2Zvb3RlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICBoZWlnaHQ6IDgwcHg7IH1cbiAgICAubWluaS1jYXJ0X19mb290ZXIgcCB7XG4gICAgICBtYXJnaW4tbGVmdDogNTVweDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzN3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG4gIC5taW5pLWNhcnRfX3N1YnRvdGFsIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4OyB9XG4gIC5taW5pLWNhcnRfX2xpbmstYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ1cHg7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHdpZHRoOiAxMjVweDtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuXG4ubmF0dXJhbC1vcmdhbmljIHtcbiAgYmFja2dyb3VuZDogI2Y2ZjVmNTtcbiAgcGFkZGluZzogNTdweCAwIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubmF0dXJhbC1vcmdhbmljOjpiZWZvcmUsIC5uYXR1cmFsLW9yZ2FuaWM6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAubmF0dXJhbC1vcmdhbmljOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5uYXR1cmFsLW9yZ2FuaWMge1xuICAgICAgcGFkZGluZzogMTUwcHggMCA0NXB4OyB9IH1cbiAgLm5hdHVyYWwtb3JnYW5pYyBoMyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgIGZvbnQtZmFtaWx5OiBcImhhbGFudFwiOyB9XG4gIC5uYXR1cmFsLW9yZ2FuaWMgaDEge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICM0OThiYzk7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAubmF0dXJhbC1vcmdhbmljIGgxIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsgfSB9XG4gIC5uYXR1cmFsLW9yZ2FuaWNfX21vYmlsZS1pbWFnZSB7XG4gICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyB7eyBcIm9wdXMtZ3Jvd3MtaG9tZS1uYXR1cmFsLW9yZ2FuaWMtMS5qcGdcIiB8IGFzc2V0X3VybCB9fSAnKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQ0N3B4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLm5hdHVyYWwtb3JnYW5pY19fbW9iaWxlLWltYWdlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5uYXR1cmFsLW9yZ2FuaWNfX2JveGVzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAubmF0dXJhbC1vcmdhbmljX19ib3gge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubmF0dXJhbC1vcmdhbmljX19ib3ggcCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjZmNWY1O1xuICAgICAgcGFkZGluZzogNDBweCAwIDA7XG4gICAgICBoZWlnaHQ6IDE4NXB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdEJvb2stQmFzZVwiO1xuICAgICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG5cbi5kZXNrdG9wLW5hdmJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDExMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA1KTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuZGVza3RvcC1uYXZiYXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5kZXNrdG9wLW5hdmJhci5zcXVpc2hlZCB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgaGVpZ2h0OiA4MHB4OyB9XG4gIC5kZXNrdG9wLW5hdmJhcl9fY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICBoZWlnaHQ6IDExMHB4OyB9XG4gICAgLmRlc2t0b3AtbmF2YmFyX19jb250YWluZXI6OmJlZm9yZSwgLmRlc2t0b3AtbmF2YmFyX19jb250YWluZXI6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxOyB9XG4gICAgLmRlc2t0b3AtbmF2YmFyX19jb250YWluZXI6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnNxdWlzaGVkIC5kZXNrdG9wLW5hdmJhcl9fY29udGFpbmVyIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgaGVpZ2h0OiA4MHB4OyB9XG4gIC5kZXNrdG9wLW5hdmJhcl9fbG9nbyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDIxcHg7IH1cbiAgICAuZGVza3RvcC1uYXZiYXJfX2xvZ28gc3ZnIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgd2lkdGg6IDI0NXB4O1xuICAgICAgaGVpZ2h0OiAxMTBweDsgfVxuICAgICAgLnNxdWlzaGVkIC5kZXNrdG9wLW5hdmJhcl9fbG9nbyBzdmcge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgICAgaGVpZ2h0OiA4MHB4OyB9XG4gIC5kZXNrdG9wLW5hdmJhcl9fbWVudSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogMjFweDsgfVxuICAgIC5kZXNrdG9wLW5hdmJhcl9fbWVudSB1bCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmRlc2t0b3AtbmF2YmFyX19tZW51IGxpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDM1cHg7IH1cbiAgICAuZGVza3RvcC1uYXZiYXJfX21lbnUgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBsaW5lLWhlaWdodDogMTEwcHg7XG4gICAgICBjb2xvcjogIzU1NTU1NTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBmb250LXNpemU6IDE1cHg7IH1cbiAgICAgIC5kZXNrdG9wLW5hdmJhcl9fbWVudSBhOmhvdmVyLCAuZGVza3RvcC1uYXZiYXJfX21lbnUgYTpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAjNTU1NTU1OyB9XG4gICAgICAuc3F1aXNoZWQgLmRlc2t0b3AtbmF2YmFyX19tZW51IGEge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDgwcHg7IH1cbiAgLmRlc2t0b3AtbmF2YmFyX19tZW51LWxpbms6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAzMnB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgb3BhY2l0eTogMDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbnRlbnQ6IFwiX19cIjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgIC5zcXVpc2hlZCAuZGVza3RvcC1uYXZiYXJfX21lbnUtbGluazo6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbjogYm90dG9tIDAuM3M7XG4gICAgICBib3R0b206IDE3cHg7IH1cbiAgLmRlc2t0b3AtbmF2YmFyX19tZW51LWxpbms6aG92ZXI6OmFmdGVyLCAuZGVza3RvcC1uYXZiYXJfX21lbnUtbGluay0tYWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuZGVza3RvcC1uYXZiYXJfX2NhcnQtaW5mbyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHggIWltcG9ydGFudDsgfVxuICAgIC5kZXNrdG9wLW5hdmJhcl9fY2FydC1pbmZvIHN2ZyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDdweDtcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgaGVpZ2h0OiAzMHB4OyB9XG4gIC5kZXNrdG9wLW5hdmJhcl9fY2FydC1pdGVtLWNvdW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5kZXNrdG9wLW5hdmJhcl9fc2lnbi1pbiB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgcGFkZGluZzogMCA0MHB4O1xuICAgIGJhY2tncm91bmQ6ICM1NTU1NTU7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuZGVza3RvcC1uYXZiYXJfX3NpZ24taW4gYSwgLmRlc2t0b3AtbmF2YmFyX19zaWduLWluIGE6aG92ZXIsIC5kZXNrdG9wLW5hdmJhcl9fc2lnbi1pbiBhOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAuZGVza3RvcC1uYXZiYXJfX21lbnUtc3ViOmhvdmVyIC5kZXNrdG9wLW5hdmJhcl9fbWVudS1zdWItd3JhcCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5kZXNrdG9wLW5hdmJhcl9fbWVudS1zdWItd3JhcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDE0NSwgMTQzLCAxNDAsIDAuMTUpO1xuICAgIGxlZnQ6IC00LjRyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEyLjEyNXJlbSAhaW1wb3J0YW50O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwOyB9XG4gICAgLmRlc2t0b3AtbmF2YmFyX19tZW51LXN1Yi13cmFwIGxpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4ICNmZmZmZmYgc29saWQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgLmRlc2t0b3AtbmF2YmFyX19tZW51LXN1Yi13cmFwIGxpOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gICAgICAuZGVza3RvcC1uYXZiYXJfX21lbnUtc3ViLXdyYXAgbGkgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0Ljk7IH1cblxuLm1vYmlsZS1uYXZiYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDgwcHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDUpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubW9iaWxlLW5hdmJhciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLm1vYmlsZS1uYXZiYXJfX3RvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogODBweDtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDQwcHg7IH1cbiAgICAubW9iaWxlLW5hdmJhcl9fdG9nZ2xlLS1vcGVuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY1ZjU7IH1cbiAgLm1vYmlsZS1uYXZiYXJfX2xvZ28ge1xuICAgIGhlaWdodDogODBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAubW9iaWxlLW5hdmJhcl9fbG9nbyBzdmcge1xuICAgICAgd2lkdGg6IDE3NXB4O1xuICAgICAgaGVpZ2h0OiA4MHB4OyB9XG4gIC5tb2JpbGUtbmF2YmFyX19jYXJ0LWluZm8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDgwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLm1vYmlsZS1uYXZiYXJfX2NhcnQtaW5mbyBzdmcge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiA2cHg7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGhlaWdodDogMzBweDsgfVxuICAubW9iaWxlLW5hdmJhcl9fY2FydC1pdGVtLWNvdW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm1vYmlsZS1uYXZiYXJfX21lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgbGluZWFyOyB9XG4gICAgLm1vYmlsZS1uYXZiYXJfX21lbnUgdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDgwcHg7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5tb2JpbGUtbmF2YmFyX19tZW51IGxpIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjZmZmZmZmOyB9XG4gICAgICAubW9iaWxlLW5hdmJhcl9fbWVudSBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAgICAgLm1vYmlsZS1uYXZiYXJfX21lbnUgbGkuc2hyaW5rIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoKDEwMHZoIC0gODBweCAtICgoMTAwdmggLSA4MHB4KSAvIDQpKSAvIDYpOyB9XG4gICAgICAgIC5tb2JpbGUtbmF2YmFyX19tZW51IGxpLnNocmluayAubW9iaWxlLW5hdmJhcl9fY2hpbGQtaXRlbSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgICAgICAubW9iaWxlLW5hdmJhcl9fbWVudSBsaS5zaHJpbmsgYSB7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoKDEwMHZoIC0gODBweCAtICgoMTAwdmggLSA4MHB4KSAvIDQpKSAvIDYpOyB9XG4gICAgLm1vYmlsZS1uYXZiYXJfX21lbnUgYSB7XG4gICAgICBjb2xvcjogIzU1NTU1NTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoKDEwMHZoIC0gODBweCkgLyA0KTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAgIC5tb2JpbGUtbmF2YmFyX19tZW51IGEgaDIge1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuICAgIC5tb2JpbGUtbmF2YmFyX19tZW51IGxpLm1vYmlsZS1uYXZiYXJfX2NoaWxkLWl0ZW0ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLm1vYmlsZS1uYXZiYXJfX21lbnUgbGkubW9iaWxlLW5hdmJhcl9fY2hpbGQtaXRlbS5vcGVuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NhYzljOTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmZmZmZmY7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC5tb2JpbGUtbmF2YmFyX19tZW51IGxpLm1vYmlsZS1uYXZiYXJfX2NoaWxkLWl0ZW0ub3BlbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gIC5tb2JpbGUtbmF2YmFyX19zaWduLWluIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NTU1O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKCgxMDB2aCAtIDgwcHgpIC8gNCkgIWltcG9ydGFudDsgfVxuICAgIC5tb2JpbGUtbmF2YmFyX19zaWduLWluIGEge1xuICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoKDEwMHZoIC0gODBweCkgLyA0KSAhaW1wb3J0YW50OyB9XG4gICAgLm1vYmlsZS1uYXZiYXJfX3NpZ24taW4gYSwgLm1vYmlsZS1uYXZiYXJfX3NpZ24taW4gYTpob3ZlciwgLm1vYmlsZS1uYXZiYXJfX3NpZ24taW4gYTpmb2N1cyB7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDsgfVxuXG4ucHJvZHVjdC1zdW1tYXJ5IHtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wcm9kdWN0LXN1bW1hcnkge1xuICAgICAgcGFkZGluZy10b3A6IDUwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNDVweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucHJvZHVjdC1zdW1tYXJ5X19jb250YWluZXIge1xuICAgICAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gICAgICAucHJvZHVjdC1zdW1tYXJ5X19jb250YWluZXI6OmJlZm9yZSwgLnByb2R1Y3Qtc3VtbWFyeV9fY29udGFpbmVyOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIG9yZGVyOiAxOyB9XG4gICAgICAucHJvZHVjdC1zdW1tYXJ5X19jb250YWluZXI6OmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7IH0gfVxuICAucHJvZHVjdC1zdW1tYXJ5LS1taXgtbm8tMSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTsgfVxuICAucHJvZHVjdC1zdW1tYXJ5LS1taXgtbm8tMiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICAucHJvZHVjdC1zdW1tYXJ5LS1taXgtbm8tMyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTsgfVxuICAucHJvZHVjdC1zdW1tYXJ5LS1hbWVuZG1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY1ZjU7IH1cbiAgLnByb2R1Y3Qtc3VtbWFyeV9faW1hZ2VzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucHJvZHVjdC1zdW1tYXJ5X19pbWFnZXMge1xuICAgICAgICB3aWR0aDogMzklO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjY1NjI1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogOCU7IH0gfVxuICAucHJvZHVjdC1zdW1tYXJ5X19pbWFnZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDIxMHB4O1xuICAgIGhlaWdodDogMjU1cHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucHJvZHVjdC1zdW1tYXJ5X19pbWFnZS13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDQ1MHB4O1xuICAgICAgICBoZWlnaHQ6IDU1MHB4OyB9IH1cbiAgICAucHJvZHVjdC1zdW1tYXJ5X19pbWFnZS13cmFwcGVyIGltZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxLjVzOyB9XG4gICAgICAucHJvZHVjdC1zdW1tYXJ5X19pbWFnZS13cmFwcGVyIGltZzpsYXN0LWNoaWxkIHtcbiAgICAgICAgb3BhY2l0eTogMDsgfVxuICAgICAgLnByb2R1Y3Qtc3VtbWFyeV9faW1hZ2Utd3JhcHBlciBpbWc6aG92ZXI6Zmlyc3QtY2hpbGQge1xuICAgICAgICBvcGFjaXR5OiAwOyB9XG4gICAgICAucHJvZHVjdC1zdW1tYXJ5X19pbWFnZS13cmFwcGVyIGltZzpob3ZlcjpsYXN0LWNoaWxkIHtcbiAgICAgICAgb3BhY2l0eTogMTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wcm9kdWN0LXN1bW1hcnlfX2ltYWdlLXdyYXBwZXItLWFtZW5kbWVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0yNXB4O1xuICAgICAgICB3aWR0aDogMzkwcHg7IH0gfVxuICAucHJvZHVjdC1zdW1tYXJ5X19kZXRhaWxzIHtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucHJvZHVjdC1zdW1tYXJ5X19kZXRhaWxzIHtcbiAgICAgICAgd2lkdGg6IDQ3JTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yJTtcbiAgICAgICAgcGFkZGluZy10b3A6IDE3OHB4OyB9IH1cbiAgICAucHJvZHVjdC1zdW1tYXJ5X19kZXRhaWxzIGgzIHtcbiAgICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgICAgZm9udC1mYW1pbHk6IFwiaGFsYW50XCI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLnByb2R1Y3Qtc3VtbWFyeV9fZGV0YWlscyBoMSB7XG4gICAgICBmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAucHJvZHVjdC1zdW1tYXJ5X19kZXRhaWxzIGgxIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9IH1cbiAgLnByb2R1Y3Qtc3VtbWFyeV9fdGl0bGUtLW1peC1uby0xIHtcbiAgICBjb2xvcjogIzQ5OGJjOTsgfVxuICAucHJvZHVjdC1zdW1tYXJ5X190aXRsZS0tbWl4LW5vLTIge1xuICAgIGNvbG9yOiAjN2ZkOTU0OyB9XG4gIC5wcm9kdWN0LXN1bW1hcnlfX3RpdGxlLS1taXgtbm8tMyB7XG4gICAgY29sb3I6ICM5ODVmYTc7IH1cbiAgLnByb2R1Y3Qtc3VtbWFyeV9fdGl0bGUtLWFtZW5kbWVudCB7XG4gICAgY29sb3I6ICNmZjk1NDQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnByb2R1Y3Qtc3VtbWFyeV9fZGVzY3JpcHRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5wcm9kdWN0LXN1bW1hcnlfX2Rlc2NyaXB0aW9uLS1taXgtbm8tMSB7XG4gICAgbWF4LXdpZHRoOiA0OTBweDsgfVxuICAucHJvZHVjdC1zdW1tYXJ5X19kZXNjcmlwdGlvbi0tbWl4LW5vLTIge1xuICAgIG1heC13aWR0aDogNDkwcHg7IH1cbiAgLnByb2R1Y3Qtc3VtbWFyeV9fZGVzY3JpcHRpb24tLW1peC1uby0zIHtcbiAgICBtYXgtd2lkdGg6IDUxMHB4OyB9XG4gIC5wcm9kdWN0LXN1bW1hcnlfX2Rlc2NyaXB0aW9uLS1hbWVuZG1lbnQge1xuICAgIG1heC13aWR0aDogNTM1cHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wcm9kdWN0LXN1bW1hcnlfX2Rlc2NyaXB0aW9uIHtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDsgfSB9XG4gIC5wcm9kdWN0LXN1bW1hcnlfX2xpbmstYnV0dG9uIHtcbiAgICBtYXJnaW46IDQwcHggMCA2MHB4O1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wcm9kdWN0LXN1bW1hcnlfX2xpbmstYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAzMHB4IDAgMDsgfSB9XG4gICAgLnByb2R1Y3Qtc3VtbWFyeV9fbGluay1idXR0b24tLWFtZW5kbWVudCB7XG4gICAgICB3aWR0aDogMjIwcHg7IH1cblxuLnByb2R1Y3QtZXh0ZW5kZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNWY1OyB9XG4gIC5wcm9kdWN0LWV4dGVuZGVkIHVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnByb2R1Y3QtZXh0ZW5kZWQgdWw6OmJlZm9yZSwgLnByb2R1Y3QtZXh0ZW5kZWQgdWw6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgb3JkZXI6IDE7IH1cbiAgICAgIC5wcm9kdWN0LWV4dGVuZGVkIHVsOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9IH1cbiAgLnByb2R1Y3QtZXh0ZW5kZWRfX2JveCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmZmZmO1xuICAgIGxpbmUtaGVpZ2h0OiA3NXB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM1NTU1NTU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucHJvZHVjdC1leHRlbmRlZF9fYm94IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NhYzljOTtcbiAgICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgICAgICAucHJvZHVjdC1leHRlbmRlZF9fYm94OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZjZmNWY1OyB9XG4gICAgICAgIC5wcm9kdWN0LWV4dGVuZGVkX19ib3g6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZjZmNWY1OyB9XG4gICAgICAgIC5wcm9kdWN0LWV4dGVuZGVkX19ib3gtLWFjdGl2ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTtcbiAgICAgICAgICBjb2xvcjogIzU1NTU1NTsgfSB9XG4gIC5wcm9kdWN0LWV4dGVuZGVkX19ib3gtY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgcGFkZGluZy1yaWdodDogMyU7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMXM7XG4gICAgbWF4LWhlaWdodDogMHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07IH1cbiAgICAucHJvZHVjdC1leHRlbmRlZF9fYm94LWNvbnRlbnQgLnJpZ2h0IHtcbiAgICAgIG1hcmdpbi10b3A6IDFlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wcm9kdWN0LWV4dGVuZGVkX19ib3gtY29udGVudCB7XG4gICAgICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDc1cHggMTAuNXB4IDc1cHg7IH1cbiAgICAgICAgLnByb2R1Y3QtZXh0ZW5kZWRfX2JveC1jb250ZW50OjpiZWZvcmUsIC5wcm9kdWN0LWV4dGVuZGVkX19ib3gtY29udGVudDo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICAgIG9yZGVyOiAxOyB9XG4gICAgICAgIC5wcm9kdWN0LWV4dGVuZGVkX19ib3gtY29udGVudDo6YWZ0ZXIge1xuICAgICAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgICAgIC5wcm9kdWN0LWV4dGVuZGVkX19ib3gtY29udGVudCAubGVmdCB7XG4gICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG4gICAgICAgIC5wcm9kdWN0LWV4dGVuZGVkX19ib3gtY29udGVudCAucmlnaHQge1xuICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cbiAgLnByb2R1Y3QtZXh0ZW5kZWRfX2xvZ29zIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAucHJvZHVjdC1leHRlbmRlZF9fbG9nb3Mgc3ZnIHtcbiAgICAgIHdpZHRoOiAxNTBweDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAucHJvZHVjdC1leHRlbmRlZF9fbG9nb3Mgc3ZnIHtcbiAgICAgICAgICB3aWR0aDogMjAwcHg7IH1cbiAgICAgICAgICAucHJvZHVjdC1leHRlbmRlZF9fbG9nb3Mgc3ZnOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cbiAgLnByb2R1Y3QtZXh0ZW5kZWRfX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wcm9kdWN0LWV4dGVuZGVkX19jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5tb3JlLWluZm9ybWF0aW9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDQlO1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiA3NXB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubW9yZS1pbmZvcm1hdGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLm1vcmUtaW5mb3JtYXRpb24tLWNvbnRyYWN0IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5tb3JlLWluZm9ybWF0aW9uLS1jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5tb3JlLWluZm9ybWF0aW9uLS1jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjVweDtcbiAgICAgICAgaGVpZ2h0OiA3NXB4OyB9IH1cblxuLnByb2R1Y3QtbG9vcCB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBoZWlnaHQ6IDE2NXB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5wcm9kdWN0LWxvb3A6OmJlZm9yZSwgLnByb2R1Y3QtbG9vcDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5wcm9kdWN0LWxvb3A6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAucHJvZHVjdC1sb29wIGEge1xuICAgIGNvbG9yOiAjNTU1NTU1OyB9XG4gICAgLnByb2R1Y3QtbG9vcCBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjNTU1NTU1OyB9XG4gIC5wcm9kdWN0LWxvb3BfX3RodW1iIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAucHJvZHVjdC1sb29wX190aHVtYiBpbWcge1xuICAgICAgd2lkdGg6IDEwMHB4OyB9XG4gIC5wcm9kdWN0LWxvb3BfX3N1YnRpdGxlIHtcbiAgICBtYXJnaW46IDM1cHggMCAwO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgLnByb2R1Y3QtbG9vcF9fdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLnByb2R1Y3QtbG9vcF9fcHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5wcm9kdWN0LXVzYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnByb2R1Y3QtdXNhZ2VfX2hlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTtcbiAgICBoZWlnaHQ6IDEyN3B4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnByb2R1Y3QtdXNhZ2VfX2hlYWRlciB7XG4gICAgICAgIGhlaWdodDogMTgwcHg7IH0gfVxuICAgIC5wcm9kdWN0LXVzYWdlX19oZWFkZXIgaDEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEyN3B4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnByb2R1Y3QtdXNhZ2VfX2hlYWRlciBoMSB7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE3MXB4OyB9IH1cbiAgICAucHJvZHVjdC11c2FnZV9faGVhZGVyIGgzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgICAgZm9udC1mYW1pbHk6IFwiaGFsYW50XCI7IH1cbiAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wcm9kdWN0LXVzYWdlX19ibG9ja3M6OmJlZm9yZSwgLnByb2R1Y3QtdXNhZ2VfX2Jsb2Nrczo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBvcmRlcjogMTsgfVxuICAgICAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2Nrczo6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucHJvZHVjdC11c2FnZV9fc2luZ2xlLWJsb2NrLS0yIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfSB9XG4gIC5wcm9kdWN0LXVzYWdlX19ibG9jay1pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzM2cHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucHJvZHVjdC11c2FnZV9fYmxvY2staW1hZ2Uge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogNjEzcHg7IH0gfVxuICAgIC5wcm9kdWN0LXVzYWdlX19ibG9jay1pbWFnZS0tMSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyB7eyBcIm9wdXMtZ3Jvd3MtcHJvZHVjdC1wZXJmZWN0LWZvci1pbWFnZTEuanBlZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgICAubWl4LW5vLTEgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWltYWdlLS0xIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItbWl4MS1pbWFnZTEuanBlZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgICAubWl4LW5vLTIgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWltYWdlLS0xIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItbWl4Mi1pbWFnZTEuanBlZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgICAubWl4LW5vLTMgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWltYWdlLS0xIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItbWl4My1pbWFnZTEuanBlZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgICAuYW1lbmRtZW50IC5wcm9kdWN0LXVzYWdlX19ibG9jay1pbWFnZS0tMSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnIHt7IFwib3B1cy1ncm93cy1wcm9kdWN0LXBlcmZlY3QtZm9yLWFtZW5kbWVudC1pbWFnZTEuanBlZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWltYWdlLS0yIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5wcm9kdWN0LXVzYWdlX19ibG9jay1pbWFnZS0tMiB7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiA2MTNweDsgfSB9XG4gICAgICAubWl4LW5vLTEgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWltYWdlLS0yIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItbWl4MS1pbWFnZTIuanBlZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgICAubWl4LW5vLTIgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWltYWdlLS0yIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItbWl4Mi1pbWFnZTIuanBlZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgICAubWl4LW5vLTMgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWltYWdlLS0yIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItbWl4My1pbWFnZTIuanBlZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgICAuYW1lbmRtZW50IC5wcm9kdWN0LXVzYWdlX19ibG9jay1pbWFnZS0tMiB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnIHt7IFwib3B1cy1ncm93cy1wcm9kdWN0LXBlcmZlY3QtZm9yLWFtZW5kbWVudC1pbWFnZTIuanBlZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWltYWdlLS0zIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnIHt7IFwib3B1cy1ncm93cy1wcm9kdWN0LXBlcmZlY3QtZm9yLWltYWdlMS5qcGVnXCIgfCBhc3NldF91cmwgfX0gJyk7IH1cbiAgICAgIC5taXgtbm8tMSAucHJvZHVjdC11c2FnZV9fYmxvY2staW1hZ2UtLTMge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyB7eyBcIm9wdXMtZ3Jvd3MtcHJvZHVjdC1wZXJmZWN0LWZvci1taXgxLWltYWdlMy5qcGVnXCIgfCBhc3NldF91cmwgfX0gJyk7IH1cbiAgICAgIC5taXgtbm8tMiAucHJvZHVjdC11c2FnZV9fYmxvY2staW1hZ2UtLTMge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyB7eyBcIm9wdXMtZ3Jvd3MtcHJvZHVjdC1wZXJmZWN0LWZvci1taXgyLWltYWdlMy5qcGVnXCIgfCBhc3NldF91cmwgfX0gJyk7IH1cbiAgICAgIC5taXgtbm8tMyAucHJvZHVjdC11c2FnZV9fYmxvY2staW1hZ2UtLTMge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyB7eyBcIm9wdXMtZ3Jvd3MtcHJvZHVjdC1wZXJmZWN0LWZvci1taXgzLWltYWdlMy5qcGVnXCIgfCBhc3NldF91cmwgfX0gJyk7IH1cbiAgICAgIC5hbWVuZG1lbnQgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWltYWdlLS0zIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItYW1lbmRtZW50LWltYWdlMy5qcGVnXCIgfCBhc3NldF91cmwgfX0gJyk7IH1cbiAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGhlaWdodDogMzY1cHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucHJvZHVjdC11c2FnZV9fYmxvY2stY29udGVudCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogNjEzcHg7IH0gfVxuICAgIC5wcm9kdWN0LXVzYWdlX19ibG9jay1jb250ZW50IHN2ZyB7XG4gICAgICBoZWlnaHQ6IDUwcHg7IH1cbiAgICAgIC5hbWVuZG1lbnQgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5wcm9kdWN0LXVzYWdlX19ibG9jay1jb250ZW50IGgzIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0Qm9vay1CYXNlXCI7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQgaDMge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDI1cHg7IH0gfVxuICAgIC5wcm9kdWN0LXVzYWdlX19ibG9jay1jb250ZW50IHAge1xuICAgICAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07IH1cbiAgICAgIC5wcm9kdWN0LXVzYWdlX19ibG9jay1jb250ZW50IHA6OmJlZm9yZSwgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQgcDo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBvcmRlcjogMTsgfVxuICAgICAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQgcDo6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDsgfVxuICAgICAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQgcCwgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQgcCB7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgIHdpZHRoOiA0NzNweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjdweDtcbiAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wcm9kdWN0LXVzYWdlX19ibG9jay1jb250ZW50LS0xIHN2ZyB7XG4gICAgICAgIGhlaWdodDogNjJweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQtLTIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogNjEzcHg7IH1cbiAgICAgICAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQtLTIgc3ZnIHtcbiAgICAgICAgICBoZWlnaHQ6IDY1cHg7IH1cbiAgICAgICAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQtLTIgaDMge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDM5cHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wcm9kdWN0LXVzYWdlX19ibG9jay1jb250ZW50LS0zIHN2ZyB7XG4gICAgICAgIGhlaWdodDogNjVweDsgfVxuICAgICAgLnByb2R1Y3QtdXNhZ2VfX2Jsb2NrLWNvbnRlbnQtLTMgaDMge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gICAgICAucHJvZHVjdC11c2FnZV9fYmxvY2stY29udGVudC0tMyBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsgfSB9XG4gIC5wcm9kdWN0LXVzYWdlX19ibG9jay1jZW50ZXJlZCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5yZWxhdGVkLXByb2R1Y3RzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucmVsYXRlZC1wcm9kdWN0cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNWY1OyB9IH1cbiAgLnJlbGF0ZWQtcHJvZHVjdHMgcCB7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucmVsYXRlZC1wcm9kdWN0cyBwIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucmVsYXRlZC1wcm9kdWN0c19fY29udGFpbmVyIHtcbiAgICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgICAgLnJlbGF0ZWQtcHJvZHVjdHNfX2NvbnRhaW5lcjo6YmVmb3JlLCAucmVsYXRlZC1wcm9kdWN0c19fY29udGFpbmVyOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIG9yZGVyOiAxOyB9XG4gICAgICAucmVsYXRlZC1wcm9kdWN0c19fY29udGFpbmVyOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9IH1cblxuLnJlbGF0ZWQtcHJvZHVjdCB7XG4gIGhlaWdodDogMzUxcHg7XG4gIHBhZGRpbmctdG9wOiA0MHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucmVsYXRlZC1wcm9kdWN0IHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC43cztcbiAgICAgIGhlaWdodDogNDcwcHg7XG4gICAgICBwYWRkaW5nLXRvcDogMjQwcHg7IH1cbiAgICAgIC5yZWxhdGVkLXByb2R1Y3Q6aG92ZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTIwcHg7IH0gfVxuICAucmVsYXRlZC1wcm9kdWN0X19zdWJ0aXRsZSB7XG4gICAgY29sb3I6ICM1NTU1NTU7XG4gICAgZm9udC1mYW1pbHk6IFwiaGFsYW50XCI7IH1cbiAgLnJlbGF0ZWQtcHJvZHVjdF9fdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiOyB9XG4gICAgLnJlbGF0ZWQtcHJvZHVjdF9fdGl0bGUtLW1peC1uby0xIHtcbiAgICAgIGNvbG9yOiAjNDk4YmM5OyB9XG4gICAgLnJlbGF0ZWQtcHJvZHVjdF9fdGl0bGUtLW1peC1uby0yIHtcbiAgICAgIGNvbG9yOiAjN2ZkOTU0OyB9XG4gICAgLnJlbGF0ZWQtcHJvZHVjdF9fdGl0bGUtLW1peC1uby0zIHtcbiAgICAgIGNvbG9yOiAjOTg1ZmE3OyB9XG4gICAgLnJlbGF0ZWQtcHJvZHVjdF9fdGl0bGUtLWFtZW5kbWVudCB7XG4gICAgICBjb2xvcjogI2ZmOTU0NDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnJlbGF0ZWQtcHJvZHVjdF9faW1hZ2UtLW1vYmlsZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLnJlbGF0ZWQtcHJvZHVjdF9faW1hZ2UtLW1vYmlsZSBpbWcge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgd2lkdGg6IDEyNXB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5yZWxhdGVkLXByb2R1Y3RfX2ltYWdlLS1kZXNrdG9wIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAucmVsYXRlZC1wcm9kdWN0X19pbWFnZS0tZGVza3RvcCBpbWcge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgd2lkdGg6IDI2MHB4OyB9XG5cbi5zaG9wX19oZXJvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxNzBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNob3BfX2hlcm8ge1xuICAgICAgaGVpZ2h0OiAzOTVweDsgfSB9XG4gIC5zaG9wX19oZXJvOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZmQ5NTQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb250ZW50OiBcIkZSRUUgU0hJUFBJTkcgT04gQUxMIFBST0RVQ1RTXCI7IH1cblxuLnNob3BfX2NvbGxlY3Rpb24taGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgaGVpZ2h0OiAxMjVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5zaG9wX19jb2xsZWN0aW9uLWhlYWRlciBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LWZhbWlseTogXCJoYWxhbnRcIjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zaG9wX19jb2xsZWN0aW9uLWhlYWRlciBoMyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0MHB4OyB9IH1cbiAgLnNob3BfX2NvbGxlY3Rpb24taGVhZGVyIGgxIHtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNob3BfX2NvbGxlY3Rpb24taGVhZGVyLS1ncm93aW5nLW1peCB7XG4gICAgICBoZWlnaHQ6IDE4MHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zaG9wX19jb2xsZWN0aW9uLWhlYWRlci0tYW1lbmRtZW50IHtcbiAgICAgIGhlaWdodDogMTQ1cHg7IH0gfVxuXG4uc2hvcF9fZG93bi1hcnJvdyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zaG9wX19kb3duLWFycm93LS1ncm93aW5nLW1peCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBoZWlnaHQ6IDIwcHg7IH0gfVxuXG4ud2h5LW9wdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC53aHktb3B1cyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTI1cHg7IH0gfVxuICAud2h5LW9wdXNfX2ludHJvIHtcbiAgICBiYWNrZ3JvdW5kOiAjN2ZkOTU0O1xuICAgIHBhZGRpbmc6IDQwcHggMCAzNXB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLndoeS1vcHVzX19pbnRybyB7XG4gICAgICAgIGhlaWdodDogNDcwcHg7XG4gICAgICAgIHBhZGRpbmc6IDcwcHggMDsgfSB9XG4gICAgLndoeS1vcHVzX19pbnRybyBoMSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAud2h5LW9wdXNfX2ludHJvIGgxIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzNHB4OyB9IH1cbiAgICAud2h5LW9wdXNfX2ludHJvIHAge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDI2NXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLndoeS1vcHVzX19pbnRybyBwIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICAgIG1heC13aWR0aDogNzEycHg7IH0gfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICAgIC53aHktb3B1c19faW50cm8gcCBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLndoeS1vcHVzX19yZWFkLW1vcmUge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07IH1cbiAgICAud2h5LW9wdXNfX3JlYWQtbW9yZTpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC53aHktb3B1c19fcmVhZC1tb3JlIHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgZmlsbDogI2ZmZmZmZjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLndoeS1vcHVzX19ib3hlcyB7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAtMTQ1cHg7IH1cbiAgICAgIC53aHktb3B1c19fYm94ZXM6OmJlZm9yZSwgLndoeS1vcHVzX19ib3hlczo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBvcmRlcjogMTsgfVxuICAgICAgLndoeS1vcHVzX19ib3hlczo6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDsgfSB9XG4gIC53aHktb3B1c19faW1hZ2Vib3gge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjI4cHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAud2h5LW9wdXNfX2ltYWdlYm94IHtcbiAgICAgICAgd2lkdGg6IDQzLjc1JTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDYuMjUlO1xuICAgICAgICBoZWlnaHQ6IDMwNXB4OyB9IH1cbiAgICAud2h5LW9wdXNfX2ltYWdlYm94LS1pbWFnZTEge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLWhvbWUtd2h5LW9wdXMtMS5qcGdcIiB8IGFzc2V0X3VybCB9fSAnKTsgfVxuICAgIC53aHktb3B1c19faW1hZ2Vib3gtLWltYWdlMiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyB7eyBcIm9wdXMtZ3Jvd3MtaG9tZS13aHktb3B1cy0yLmpwZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC53aHktb3B1c19faW1hZ2Vib3gtLWltYWdlMiB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGxlZnQ6IDQzLjc1JTsgfSB9XG4gICAgLndoeS1vcHVzX19pbWFnZWJveC0taW1hZ2UzIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnIHt7IFwib3B1cy1ncm93cy1ob21lLXdoeS1vcHVzLTMuanBnXCIgfCBhc3NldF91cmwgfX0gJyk7IH1cbiAgLndoeS1vcHVzX190ZXh0Ym94IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjIzcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAud2h5LW9wdXNfX3RleHRib3gge1xuICAgICAgICB3aWR0aDogNDMuNzUlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjY1NjI1cmVtO1xuICAgICAgICBoZWlnaHQ6IDMwNXB4OyB9IH1cbiAgICAud2h5LW9wdXNfX3RleHRib3ggc3ZnIHtcbiAgICAgIHdpZHRoOiA0M3B4O1xuICAgICAgaGVpZ2h0OiA0M3B4OyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC53aHktb3B1c19fdGV4dGJveCBzdmcge1xuICAgICAgICAgIGhlaWdodDogNTNweDsgfSB9XG4gICAgLndoeS1vcHVzX190ZXh0Ym94IGgzIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgIGNvbG9yOiAjN2ZkOTU0O1xuICAgICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0Qm9vay1CYXNlXCI7IH1cbiAgICAud2h5LW9wdXNfX3RleHRib3ggcCwgLndoeS1vcHVzX190ZXh0Ym94IHNwYW4ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgY29sb3I6ICM1NTU1NTU7XG4gICAgICBmb250LWZhbWlseTogXCJoYWxhbnRcIjtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDsgfVxuICAgIC53aHktb3B1c19fdGV4dGJveC0tYm94MSB7XG4gICAgICBwYWRkaW5nLXRvcDogMzlweDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAud2h5LW9wdXNfX3RleHRib3gtLWJveDEge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA4MHB4OyB9IH1cbiAgICAud2h5LW9wdXNfX3RleHRib3gtLWJveDIge1xuICAgICAgcGFkZGluZy10b3A6IDUycHg7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLndoeS1vcHVzX190ZXh0Ym94LS1ib3gyIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbGVmdDogLTQzLjc1JTtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogODBweDsgfSB9XG4gICAgLndoeS1vcHVzX190ZXh0Ym94LS1ib3gzIHtcbiAgICAgIHBhZGRpbmctdG9wOiAzMnB4OyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC53aHktb3B1c19fdGV4dGJveC0tYm94MyB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDc1cHg7IH0gfVxuXG4ucGFnZS00MDQge1xuICBwYWRkaW5nOiAxMzBweCAwIDExMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNWY1O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYWdlLTQwNCB7XG4gICAgICBwYWRkaW5nOiAxOTVweCAwIDE4MHB4OyB9IH1cbiAgLnBhZ2UtNDA0IGgxIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGNvbG9yOiAjZmY5NTQ0O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiO1xuICAgIGZvbnQtc2l6ZTogNjBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wYWdlLTQwNCBoMSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH0gfVxuICAucGFnZS00MDQgaDMge1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgIGZvbnQtZmFtaWx5OiBcImhhbGFudFwiOyB9XG4gIC5wYWdlLTQwNF9fYmFjay10by1ob21lIHtcbiAgICBtYXJnaW4tdG9wOiA3NXB4O1xuICAgIHdpZHRoOiAyNzVweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wYWdlLTQwNF9fYmFjay10by1ob21lIHtcbiAgICAgICAgbWFyZ2luLXRvcDogODVweDsgfSB9XG4gICAgLnBhZ2UtNDA0X19iYWNrLXRvLWhvbWUgc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICB3aWR0aDogMTVweDtcbiAgICAgIGhlaWdodDogMTNweDtcbiAgICAgIGZpbGw6ICNmZmZmZmY7IH1cblxuLmFydGljbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gIC5hcnRpY2xlX19yb3cge1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gICAgLmFydGljbGVfX3Jvdzo6YmVmb3JlLCAuYXJ0aWNsZV9fcm93OjphZnRlciB7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTsgfVxuICAgIC5hcnRpY2xlX19yb3c6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5hcnRpY2xlX19oZWFkZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIm9wdXMtZ3Jvd3MtaW5zaWRlLWpvdXJuYWwtYmFubmVyLWltYWdlLmpwZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEyOHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmFydGljbGVfX2hlYWRlciB7XG4gICAgICAgIGhlaWdodDogMzk2cHg7IH0gfVxuICAuYXJ0aWNsZV9fbWFpbiB7XG4gICAgcGFkZGluZzogMCAyMHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmFydGljbGVfX21haW4ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiA2MCU7IH0gfVxuICAuYXJ0aWNsZV9fZGF0YSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmNmY1ZjU7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7IH1cbiAgICAuYXJ0aWNsZV9fZGF0YTo6YmVmb3JlLCAuYXJ0aWNsZV9fZGF0YTo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7IH1cbiAgICAuYXJ0aWNsZV9fZGF0YTo6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuYXJ0aWNsZV9fZGF0YSB7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgICAuYXJ0aWNsZV9fZGF0YSBwIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAuYXJ0aWNsZV9fY2F0ZWdvcnkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAuYXJ0aWNsZV9fZGF0ZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAuYXJ0aWNsZV9fdGl0bGUge1xuICAgIG1hcmdpbjogMjBweCAwIDEwcHg7XG4gICAgY29sb3I6ICNmZjk1NDQ7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7IH1cbiAgLmFydGljbGVfX2F1dGhvciB7XG4gICAgbWFyZ2luOiAwIDAgMzVweDtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAuYXJ0aWNsZV9fY29udGVudCB7XG4gICAgcGFkZGluZzogMzBweCAwOyB9XG4gICAgLmFydGljbGVfX2NvbnRlbnQgaDQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdEJvb2stQmFzZVwiOyB9XG4gICAgLmFydGljbGVfX2NvbnRlbnQgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMjFweDtcbiAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG4gIC5hcnRpY2xlX19zaGFyZSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmNmY1ZjU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmNmY1ZjU7XG4gICAgaGVpZ2h0OiA5MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5hcnRpY2xlX19zaGFyZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cbiAgICAuYXJ0aWNsZV9fc2hhcmUgcCB7XG4gICAgICBtYXJnaW46IDMwcHggMCAwO1xuICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAuYXJ0aWNsZV9fc2hhcmUgc3ZnIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgICAuYXJ0aWNsZV9fc2hhcmUgc3ZnOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC43OyB9XG4gIC5hcnRpY2xlX19mb290ZXIge1xuICAgIHBhZGRpbmctdG9wOiAzM3B4O1xuICAgIGhlaWdodDogOTBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmFydGljbGVfX2Zvb3RlciBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgY29sb3I6ICM1NTU1NTU7IH1cbiAgICAgIC5hcnRpY2xlX19mb290ZXIgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjNTU1NTU1OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmFydGljbGVfX2Zvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5hcnRpY2xlX19mb290ZXIgc3ZnIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMXB4O1xuICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICBmaWxsOiAjNTU1NTU1OyB9XG4gIC5hcnRpY2xlX19iYWNrLWxpbmsgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIG1hcmdpbi1yaWdodDogN3B4OyB9XG4gIC5hcnRpY2xlX19uZXh0LWxpbmsge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAgIC5hcnRpY2xlX19uZXh0LWxpbmsgc3ZnIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYmxvZy1hcnRpY2xlcy0tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmJsb2ctYXJ0aWNsZXMtLWRlc2t0b3Age1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuYmxvZy1hcnRpY2xlcy0tZGVza3RvcC0tc21hbGwge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmJsb2ctYXJ0aWNsZXMtLWRlc2t0b3AtLWxhcmdlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5ibG9nLWFydGljbGVzLS1kZXNrdG9wIHtcbiAgICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDAgMC43cmVtOyB9XG4gICAgICAuYmxvZy1hcnRpY2xlcy0tZGVza3RvcDo6YmVmb3JlLCAuYmxvZy1hcnRpY2xlcy0tZGVza3RvcDo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBvcmRlcjogMTsgfVxuICAgICAgLmJsb2ctYXJ0aWNsZXMtLWRlc2t0b3A6OmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7IH0gfVxuXG4uYmxvZy1hcnRpY2xlc19fcm93IHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgcGFkZGluZzogMCAwLjYyNXJlbTsgfVxuICAuYmxvZy1hcnRpY2xlc19fcm93OjpiZWZvcmUsIC5ibG9nLWFydGljbGVzX19yb3c6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAuYmxvZy1hcnRpY2xlc19fcm93OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5ibG9nLWFydGljbGVzX19yb3cge1xuICAgICAgcGFkZGluZzogMCAxLjI1cmVtOyB9IH1cbiAgLmJsb2ctYXJ0aWNsZXNfX3JvdzpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjBweDsgfVxuXG4uYmxvZy1hcnRpY2xlc19fcGFnaW5hdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDY1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG4gIC5ibG9nLWFydGljbGVzX19wYWdpbmF0aW9uIGEge1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgY29sb3I6ICM1NTU1NTU7XG4gICAgZmlsbDogIzU1NTU1NTsgfVxuICAgIC5ibG9nLWFydGljbGVzX19wYWdpbmF0aW9uIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZjk1NDQ7XG4gICAgICBmaWxsOiAjZmY5NTQ0O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmJsb2ctYXJ0aWNsZXNfX3BhZ2luYXRpb24gc3ZnIHtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7IH1cbiAgLmJsb2ctYXJ0aWNsZXNfX3BhZ2luYXRpb24gc3BhbiB7XG4gICAgbWFyZ2luOiAwIDIwcHg7IH1cbiAgLmJsb2ctYXJ0aWNsZXNfX3BhZ2luYXRpb24gLmN1cnJlbnQge1xuICAgIGNvbG9yOiAjZmY5NTQ0O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5ibG9nLWFydGljbGVzLS1kZXNrdG9wIC5ibG9nLWFydGljbGVzX19wYWdpbmF0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiA3MHB4OyB9XG5cbi5ibG9nLWFydGljbGVzX19hcnJvdy1sZWZ0IHN2ZyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cblxuLmJsb2ctYXJ0aWNsZXMtLWRlc2t0b3AgLmJsb2ctYXJ0aWNsZSB7XG4gIG1hcmdpbi1ib3R0b206IDMuNXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLmJsb2ctYXJ0aWNsZXMtLWRlc2t0b3AgLmJsb2ctYXJ0aWNsZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuMDVyZW0pOyB9XG4gICAgICAuYmxvZy1hcnRpY2xlcy0tZGVza3RvcCAuYmxvZy1hcnRpY2xlOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgY2xlYXI6IGxlZnQ7IH1cbiAgICAgIC5ibG9nLWFydGljbGVzLS1kZXNrdG9wIC5ibG9nLWFydGljbGU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYmxvZy1hcnRpY2xlcy0tZGVza3RvcCAuYmxvZy1hcnRpY2xlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDUuMDYyNXJlbTtcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzJSAtIDMuMzc1cmVtKTsgfVxuICAgICAgLmJsb2ctYXJ0aWNsZXMtLWRlc2t0b3AgLmJsb2ctYXJ0aWNsZTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB3aWR0aDogY2FsYygzMy4zNCUgLSAzLjM3NXJlbSk7IH1cbiAgICAgIC5ibG9nLWFydGljbGVzLS1kZXNrdG9wIC5ibG9nLWFydGljbGU6bnRoLWNoaWxkKDNuICsgMSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgY2xlYXI6IGxlZnQ7IH0gfVxuXG4uYmxvZy1hcnRpY2xlX19mZWF0dXJlZC1pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgaGVpZ2h0OiAxOS44MTI1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYmxvZy1hcnRpY2xlX19mZWF0dXJlZC1pbWFnZSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogOTUlOyB9IH1cbiAgLmJsb2ctYXJ0aWNsZV9fZmVhdHVyZWQtaW1hZ2UgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDM7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5ibG9nLWFydGljbGVzLS1kZXNrdG9wIC5ibG9nLWFydGljbGVfX2ZlYXR1cmVkLWltYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAyODNweDsgfVxuICAgIC5ibG9nLWFydGljbGVzLS1kZXNrdG9wIC5ibG9nLWFydGljbGVfX2ZlYXR1cmVkLWltYWdlOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE0OSwgNjgsIDAuNSk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zM3M7XG4gICAgICBjb250ZW50OiBcIlwiOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmJsb2ctYXJ0aWNsZXMtLWRlc2t0b3AgLmJsb2ctYXJ0aWNsZV9fZmVhdHVyZWQtaW1hZ2U6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICAgLmJsb2ctYXJ0aWNsZXMtLWRlc2t0b3AgLmJsb2ctYXJ0aWNsZV9fZmVhdHVyZWQtaW1hZ2U6aG92ZXI6OmFmdGVyLFxuICAgICAgICAuYmxvZy1hcnRpY2xlcy0tZGVza3RvcCAuYmxvZy1hcnRpY2xlX19mZWF0dXJlZC1pbWFnZTpob3ZlciBzdmcge1xuICAgICAgICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4uYmxvZy1hcnRpY2xlIHN2ZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgei1pbmRleDogMztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgd2lkdGg6IDMuMTI1cmVtO1xuICBoZWlnaHQ6IDMuMTI1cmVtO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4uYmxvZy1hcnRpY2xlX19kYXRhIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgLmJsb2ctYXJ0aWNsZV9fZGF0YTo6YmVmb3JlLCAuYmxvZy1hcnRpY2xlX19kYXRhOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmJsb2ctYXJ0aWNsZV9fZGF0YTo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5ibG9nLWFydGljbGVzLS1tb2JpbGUgLmJsb2ctYXJ0aWNsZV9fZGF0YSB7XG4gICAgcGFkZGluZzogMjVweCAyMHB4IDEwcHg7IH1cbiAgLmJsb2ctYXJ0aWNsZXMtLWRlc2t0b3AgLmJsb2ctYXJ0aWNsZV9fZGF0YSB7XG4gICAgbWFyZ2luLXRvcDogMC42cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblxuLmJsb2ctYXJ0aWNsZV9fY2F0ZWdvcnkge1xuICBmbG9hdDogbGVmdDsgfVxuXG4uYmxvZy1hcnRpY2xlX19kYXRlIHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5ibG9nLWFydGljbGVfX3RpdGxlIGgzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5ibG9nLWFydGljbGVfX3RpdGxlIGgzOmhvdmVyIHtcbiAgICBjb2xvcjogIzU1NTU1NTsgfVxuICAuYmxvZy1hcnRpY2xlcy0tbW9iaWxlIC5ibG9nLWFydGljbGVfX3RpdGxlIGgzIHtcbiAgICBtYXJnaW46IDAgMjBweCAzMHB4OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmNhcnRfX3JvdyB7XG4gICAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogMTAuNXB4O1xuICAgIHBhZGRpbmctbGVmdDogMTAuNXB4OyB9XG4gICAgLmNhcnRfX3Jvdzo6YmVmb3JlLCAuY2FydF9fcm93OjphZnRlciB7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTsgfVxuICAgIC5jYXJ0X19yb3c6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9IH1cblxuLmNhcnRfX2hlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY1ZjU7XG4gIHBhZGRpbmc6IDIwcHggMCAyN3B4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY2FydF9faGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDEwMHB4IDAgMzdweDsgfSB9XG4gIC5jYXJ0X19oZWFkZXIgaDEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jYXJ0X19oZWFkZXIgaDEge1xuICAgICAgICB3aWR0aDogNjIuNSU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2LjI1JTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG5cbi5jYXJ0X19jb250aW51ZS1zaG9wcGluZyB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLmNhcnRfX2NvbnRpbnVlLXNob3BwaW5nIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhcnRfX2NvbnRpbnVlLXNob3BwaW5nIHtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogNi4yNSU7XG4gICAgICBtYXJnaW4tbGVmdDogNCU7XG4gICAgICBtYXJnaW4tdG9wOiAxNnB4OyB9IH1cbiAgLmNhcnRfX2NvbnRpbnVlLXNob3BwaW5nOmhvdmVyIHtcbiAgICBjb2xvcjogIzU1NTU1NTsgfVxuICAuY2FydF9fY29udGludWUtc2hvcHBpbmcgc3ZnIHtcbiAgICB3aWR0aDogMTNweDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gICAgZmlsbDogIzU1NTU1NTsgfVxuICAuY2FydF9fY29udGludWUtc2hvcHBpbmctLW1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy1ib3R0b206IDI1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNhcnRfX2NvbnRpbnVlLXNob3BwaW5nLS1tb2JpbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmNhcnRfX2NvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY1ZjU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY2FydF9fY29udGVudCB7XG4gICAgd2lkdGg6IDg3LjUlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjY1NjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiA2LjI1JTsgfSB9XG5cbi5jYXJ0X19jb250ZW50LWhlYWRlciB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY1ZjU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuY2FydF9fY29udGVudC1oZWFkZXI6OmJlZm9yZSwgLmNhcnRfX2NvbnRlbnQtaGVhZGVyOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmNhcnRfX2NvbnRlbnQtaGVhZGVyOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLmNhcnRfX2NvbnRlbnQtaGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY2FydF9fY29udGVudC1oZWFkZXIgcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdEJvb2stQmFzZVwiO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuY2FydF9fY29udGVudC1oZWFkZXItaXRlbSB7XG4gICAgd2lkdGg6IDIxLjQyODU3JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTsgfVxuICAuY2FydF9fY29udGVudC1oZWFkZXItcHJpY2Uge1xuICAgIHdpZHRoOiAyMS40Mjg1NyU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDE0LjI4NTcxJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNy4xNDI4NiU7IH1cbiAgLmNhcnRfX2NvbnRlbnQtaGVhZGVyLXF1YW50aXR5IHtcbiAgICB3aWR0aDogMjEuNDI4NTclO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjY1NjI1cmVtOyB9XG4gIC5jYXJ0X19jb250ZW50LWhlYWRlci10b3RhbCB7XG4gICAgd2lkdGg6IDIxLjQyODU3JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jYXJ0X19pdGVtLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjVweDsgfVxuICAgIC5jYXJ0X19pdGVtLWNvbnRhaW5lcjo6YmVmb3JlLCAuY2FydF9faXRlbS1jb250YWluZXI6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxOyB9XG4gICAgLmNhcnRfX2l0ZW0tY29udGFpbmVyOjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfSB9XG5cbi5jYXJ0X19pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jYXJ0X19pdGVtOjpiZWZvcmUsIC5jYXJ0X19pdGVtOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTsgfVxuICAgIC5jYXJ0X19pdGVtOjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfSB9XG5cbi5jYXJ0X19pdGVtICsgLmNhcnRfX2l0ZW0ge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2NhYzljOTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhcnRfX2l0ZW0gKyAuY2FydF9faXRlbSB7XG4gICAgICBib3JkZXItdG9wOiAycHggc29saWQgI2Y2ZjVmNTsgfSB9XG5cbi5jYXJ0X19pdGVtLXRodW1iIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhcnRfX2l0ZW0tdGh1bWIge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMjEuNDI4NTclO1xuICAgICAgcGFkZGluZy10b3A6IDIwcHg7IH0gfVxuICAuY2FydF9faXRlbS10aHVtYiBpbWcge1xuICAgIGhlaWdodDogMTkwcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY2FydF9faXRlbS10aHVtYiBpbWcge1xuICAgICAgICBoZWlnaHQ6IDE5MHB4OyB9IH1cblxuLmNhcnRfX2l0ZW0tdGl0bGUge1xuICBtYXJnaW46IDI1cHggMCAyNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jYXJ0X19pdGVtLXRpdGxlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDIxLjQyODU3JTtcbiAgICAgIG1hcmdpbjogOTVweCAwIDA7IH0gfVxuICAuY2FydF9faXRlbS10aXRsZSBhIHtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY2FydF9faXRlbS10aXRsZSBhIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07IH0gfVxuICAgIC5jYXJ0X19pdGVtLXRpdGxlIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICM1NTU1NTU7IH1cbiAgLmNhcnRfX2l0ZW0tdGl0bGUtLXByb2R1Y3Qge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmNhcnRfX2l0ZW0tdGl0bGUtLXZhcmlhbnQge1xuICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jYXJ0X19pdGVtLXRpdGxlLS12YXJpYW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuY2FydF9faXRlbS1ib3gge1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyMzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyMzVyZW07XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNmNmY1ZjU7XG4gICAgaGVpZ2h0OiA1MHB4OyB9XG4gICAgLmNhcnRfX2l0ZW0tYm94OjpiZWZvcmUsIC5jYXJ0X19pdGVtLWJveDo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7IH1cbiAgICAuY2FydF9faXRlbS1ib3g6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY2FydF9faXRlbS1ib3gge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMS40Mjg1NyU7XG4gICAgbWFyZ2luLXRvcDogOTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuY2FydF9faXRlbS1ib3gtLXF1YW50aXR5IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNy4xNDI4NSU7IH0gfVxuXG4uY2FydF9faXRlbS1ib3ggcCB7XG4gIHdpZHRoOiA1Ni4yNSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gIG1hcmdpbi1sZWZ0OiA2LjI1JTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICBmb250LWZhbWlseTogXCJJbnRyb1J1c3RCb29rLUJhc2VcIjtcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY2FydF9faXRlbS1ib3ggcCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmNhcnRfX2l0ZW0tcHJpY2Uge1xuICBjb2xvcjogIzU1NTU1NTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5jYXJ0X19pdGVtLXByaWNlIHtcbiAgICAgIHdpZHRoOiAzMS4yNSU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jYXJ0X19pdGVtLXByaWNlIHtcbiAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9IH1cblxuLmNhcnRfX2l0ZW0tcXVhbnRpdHkge1xuICBjb2xvcjogIzU1NTU1NTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5jYXJ0X19pdGVtLXF1YW50aXR5IHtcbiAgICAgIHdpZHRoOiAzNy41JTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhcnRfX2l0ZW0tcXVhbnRpdHkge1xuICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07IH0gfVxuICAuY2FydF9faXRlbS1xdWFudGl0eSBzdmcge1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTJweDsgfVxuICAuY2FydF9faXRlbS1xdWFudGl0eSBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzU1NTU1NTtcbiAgICB3aWR0aDogNTVweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBtYXJnaW46IDAgNXB4IDAgOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4uY2FydF9faXRlbS10b3RhbCB7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLmNhcnRfX2l0ZW0tdG90YWwge1xuICAgICAgd2lkdGg6IDMxLjI1JTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhcnRfX2l0ZW0tdG90YWwge1xuICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07IH0gfVxuXG4uY2FydF9faXRlbS1yZW1vdmUge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIG1hcmdpbi1yaWdodDogMTAlO1xuICBjb2xvcjogIzU1NTU1NTtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhcnRfX2l0ZW0tcmVtb3ZlIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5jYXJ0X19hZGQtb24ge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nLXRvcDogMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOTU0NDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZmZmZjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhcnRfX2FkZC1vbiB7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIGhlaWdodDogNTdweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA1N3B4OyB9XG4gICAgICAuY2FydF9fYWRkLW9uOjpiZWZvcmUsIC5jYXJ0X19hZGQtb246OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgb3JkZXI6IDE7IH1cbiAgICAgIC5jYXJ0X19hZGQtb246OmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7IH0gfVxuICAuY2FydF9fYWRkLW9uIHN2ZyB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4OyB9XG4gIC5jYXJ0X19hZGQtb24gcCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNhcnRfX2FkZC1vbiBwIHtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsZWZ0OiAtMTQuMjg1NzElO1xuICAgICAgICBtYXJnaW46IDEzcHggMCAwO1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07IH0gfVxuICAgIC5jYXJ0X19hZGQtb24gcCBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jYXJ0X19hZGQtb24gcCBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhcnRfX2FkZC1vbi1saW5rIHtcbiAgICAgIHdpZHRoOiAyMS40Mjg1NyU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsZWZ0OiA3OC41NzE0MyU7XG4gICAgICBtYXJnaW4tdG9wOiAxN3B4OyB9IH1cbiAgLmNhcnRfX2FkZC1vbi1saW5rIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNhcnRfX2Rpc2NsYWltZXIge1xuICBtYXJnaW46IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY2FydF9fZGlzY2xhaW1lci0tbW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuY2FydF9fZGlzY2xhaW1lci0tZGVza3RvcCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmNhcnRfX3N1YnRvdGFsLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYWM5Yzk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jYXJ0X19zdWJ0b3RhbC1jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5jYXJ0X19zdWJ0b3RhbC1ib3gge1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyMzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyMzVyZW07XG4gICAgaGVpZ2h0OiA1MHB4OyB9XG4gICAgLmNhcnRfX3N1YnRvdGFsLWJveDo6YmVmb3JlLCAuY2FydF9fc3VidG90YWwtYm94OjphZnRlciB7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTsgfVxuICAgIC5jYXJ0X19zdWJ0b3RhbC1ib3g6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY2FydF9fc3VidG90YWwtYm94IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDcuNSU7XG4gICAgaGVpZ2h0OiAxMDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG5cbi5jYXJ0X19zdWJ0b3RhbC1ib3ggcCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICBmb250LWZhbWlseTogXCJJbnRyb1J1c3RCb29rLUJhc2VcIjtcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5jYXJ0X19zdWJ0b3RhbC1ib3ggcCB7XG4gICAgICB3aWR0aDogNTYuMjUlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjY1NjI1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDYuMjUlO1xuICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhcnRfX3N1YnRvdGFsLWJveCBwIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxMDVweDsgfSB9XG5cbi5jYXJ0X19zdWJ0b3RhbCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjb2xvcjogIzU1NTU1NTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5jYXJ0X19zdWJ0b3RhbCB7XG4gICAgICB3aWR0aDogMzEuMjUlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjU2MjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjY1NjI1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhcnRfX3N1YnRvdGFsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxMDVweDsgfSB9XG5cbi5jYXJ0X19jaGVja291dCB7XG4gIHBhZGRpbmc6IDQ1cHggMCAzNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jYXJ0X19jaGVja291dCB7XG4gICAgICBwYWRkaW5nOiAwIDAgMTYwcHg7IH0gfVxuICAuY2FydF9fY2hlY2tvdXQgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogNTBweDtcbiAgICBsaW5lLWhlaWdodDogMjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jYXJ0X19jaGVja291dCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDcuNSU7IH0gfVxuXG4uY2FydF9fZW1wdHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNWY1O1xuICBwYWRkaW5nOiAxMjVweCAwIDE3NXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jYXJ0X19lbXB0eSB7XG4gICAgICBwYWRkaW5nOiAxNDBweCAwIDE5MHB4OyB9IH1cbiAgLmNhcnRfX2VtcHR5IHAge1xuICAgIG1hcmdpbi1ib3R0b206IDU1cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cblxuLmNhcnRfX3Nob3AtbGluay1idXR0b24ge1xuICB3aWR0aDogMjAwcHg7IH1cblxuLmhvbWVwYWdlX19oZXJvLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uaG9tZXBhZ2VfX2hlcm8ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyNTdweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmhvbWVwYWdlX19oZXJvIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDExMHB4KTsgfSB9XG5cbi5ob21lcGFnZV9fYXJyb3dzIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5ob21lcGFnZV9fZG93bi1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNXB4O1xuICBsZWZ0OiA1MCU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gIGhlaWdodDogMTVweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmhvbWVwYWdlX19kb3duLWFycm93IHtcbiAgICAgIGJvdHRvbTogMjVweDtcbiAgICAgIGhlaWdodDogMjVweDsgfSB9XG4gIC5ob21lcGFnZV9fZG93bi1hcnJvdzpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGVYKC0yMyUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0OyB9XG4gIC5ob21lcGFnZV9fZG93bi1hcnJvdzphZnRlciB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVYKDIzJSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0OyB9XG4gIC5ob21lcGFnZV9fZG93bi1hcnJvdy0tMSB7XG4gICAgYW5pbWF0aW9uOiBhcnJvdy1tb3ZlbWVudCAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsgfVxuICAuaG9tZXBhZ2VfX2Rvd24tYXJyb3ctLTIge1xuICAgIGFuaW1hdGlvbjogYXJyb3ctbW92ZW1lbnQgMnMgMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH1cblxuLmhvdy10by1ncm93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTtcbiAgcGFkZGluZy1ib3R0b206IDIuOHJlbTtcbiAgcGFkZGluZy10b3A6IDEuNXJlbTsgfVxuICAuaG93LXRvLWdyb3cgc3ZnIHtcbiAgICBmaWxsOiAjNDk4YmM5OyB9XG4gIC5ob3ctdG8tZ3Jvd19faGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNWY1ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaG93LXRvLWdyb3dfX2hlYWRlciB7XG4gICAgICAgIGhlaWdodDogMzUuNXJlbSAhaW1wb3J0YW50OyB9IH1cbiAgICAuaG93LXRvLWdyb3dfX2hlYWRlciBoMyB7XG4gICAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAgIC5ob3ctdG8tZ3Jvd19faGVhZGVyIGgxIHtcbiAgICAgIGNvbG9yOiAjNDk4YmM5OyB9XG4gICAgICAuaG93LXRvLWdyb3dfX2hlYWRlciBoMS5ob3ctdG8tZ3Jvd19fdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07IH1cbiAgLmhvdy10by1ncm93X190ZXh0IHtcbiAgICBwYWRkaW5nOiAxLjdyZW0gMS4zNzVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaG93LXRvLWdyb3dfX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH0gfVxuICAgIC5ob3ctdG8tZ3Jvd19fdGV4dCBoMS5jdXN0b20ge1xuICAgICAgY29sb3I6ICM0OThiYzkgIWltcG9ydGFudDtcbiAgICAgIGZvbnQtZmFtaWx5OiBJbnRyb1J1c3QtQmFzZUxpbmU7XG4gICAgICBmb250LXNpemU6IDIuODEyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMS4xcmVtO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuaG93LXRvLWdyb3dfX3RleHQgaDEuY3VzdG9tIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgZm9udC1zaXplOiAzLjQzNzVyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIuMXJlbTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMi42cmVtO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH0gfVxuICAgIC5ob3ctdG8tZ3Jvd19fdGV4dCBwIHtcbiAgICAgIGNvbG9yOiAjNTU1NTU1O1xuICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4zMTI1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5ob3ctdG8tZ3Jvd19fdGV4dCBwIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAgIC5ob3ctdG8tZ3Jvd19fdGV4dCBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmhvdy10by1ncm93X190ZXh0IHN2ZyB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgLmhvdy10by1ncm93X19pbWctZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob3ctdG8tZ3Jvd19faW1nLWRlc2t0b3Age1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH0gfVxuICAuaG93LXRvLWdyb3dfX3NlY3Rpb24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGhlaWdodDogMjguMnJlbTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmhvdy10by1ncm93X19zZWN0aW9uLnN0ZXAtb25lIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY1ZjU7IH0gfVxuICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLW9uZSAuaG93LXRvLWdyb3dfX2ltZy1kZXNrdG9wIHtcbiAgICAgIGhlaWdodDogMTRyZW07XG4gICAgICB3aWR0aDogMTAuOHJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLW9uZSAuaG93LXRvLWdyb3dfX3RleHQge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzIuODEyNXJlbSk7IH1cbiAgICAgICAgLmhvdy10by1ncm93X19zZWN0aW9uLnN0ZXAtb25lIC5ob3ctdG8tZ3Jvd19fdGV4dCBwIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNXJlbSk7IH0gfVxuICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLW9uZSAuaG93LXRvLWdyb3dfX3RleHQgc3ZnIHtcbiAgICAgIGhlaWdodDogMTcuNHJlbTtcbiAgICAgIG1hcmdpbjogMS4xcmVtIGF1dG8gMi43cmVtIGF1dG87XG4gICAgICB3aWR0aDogMTMuNHJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLXR3byB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9IH1cbiAgICAuaG93LXRvLWdyb3dfX3NlY3Rpb24uc3RlcC10d28gLmhvdy10by1ncm93X19pbWctZGVza3RvcCB7XG4gICAgICBoZWlnaHQ6IDE3cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDQuMnJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogOS43cmVtO1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgd2lkdGg6IDE4LjFyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaG93LXRvLWdyb3dfX3NlY3Rpb24uc3RlcC10d28gLmhvdy10by1ncm93X190ZXh0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDM0LjgxMjVyZW0pOyB9XG4gICAgICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLXR3byAuaG93LXRvLWdyb3dfX3RleHQgcCB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQuOXJlbSk7IH0gfVxuICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLXR3byAuaG93LXRvLWdyb3dfX3RleHQgc3ZnIHtcbiAgICAgIGhlaWdodDogMTdyZW07XG4gICAgICBtYXJnaW46IDEuMXJlbSBhdXRvIDIuNnJlbSBhdXRvO1xuICAgICAgd2lkdGg6IDE4LjFyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaG93LXRvLWdyb3dfX3NlY3Rpb24uc3RlcC10aHJlZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0LjNyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY1ZjU7IH0gfVxuICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLXRocmVlIC5ob3ctdG8tZ3Jvd19faW1nLWRlc2t0b3Age1xuICAgICAgaGVpZ2h0OiAyMC4ycmVtO1xuICAgICAgd2lkdGg6IDE1LjlyZW07XG4gICAgICBtYXJnaW4tbGVmdDogOXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLXRocmVlIC5ob3ctdG8tZ3Jvd19fdGV4dCB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIG1hcmdpbi10b3A6IDcuM3JlbTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDM0LjgxMjVyZW0pOyB9XG4gICAgICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLXRocmVlIC5ob3ctdG8tZ3Jvd19fdGV4dCBwIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNC45cmVtKTsgfSB9XG4gICAgLmhvdy10by1ncm93X19zZWN0aW9uLnN0ZXAtdGhyZWUgLmhvdy10by1ncm93X190ZXh0IHN2ZyB7XG4gICAgICBoZWlnaHQ6IDIwLjJyZW07XG4gICAgICBtYXJnaW46IDAgYXV0byAxLjZyZW0gYXV0bztcbiAgICAgIHdpZHRoOiAxNS44cmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmhvdy10by1ncm93X19zZWN0aW9uLnN0ZXAtZm91ciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9IH1cbiAgICAuaG93LXRvLWdyb3dfX3NlY3Rpb24uc3RlcC1mb3VyIC5ob3ctdG8tZ3Jvd19faW1nLWRlc2t0b3Age1xuICAgICAgaGVpZ2h0OiAxOS41cmVtO1xuICAgICAgd2lkdGg6IDE5LjZyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMy41cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4LjlyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaG93LXRvLWdyb3dfX3NlY3Rpb24uc3RlcC1mb3VyIC5ob3ctdG8tZ3Jvd19fdGV4dCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNHJlbTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMzLjMxMjVyZW0pOyB9XG4gICAgICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLWZvdXIgLmhvdy10by1ncm93X190ZXh0IHAge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA1cmVtKTsgfSB9XG4gICAgLmhvdy10by1ncm93X19zZWN0aW9uLnN0ZXAtZm91ciAuaG93LXRvLWdyb3dfX3RleHQgc3ZnIHtcbiAgICAgIGhlaWdodDogMTkuNXJlbTtcbiAgICAgIG1hcmdpbjogMi4xcmVtIGF1dG8gMS43cmVtIGF1dG87XG4gICAgICB3aWR0aDogMTkuNnJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLWZpdmUge1xuICAgICAgICBwYWRkaW5nLXRvcDogNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmNTsgfSB9XG4gICAgLmhvdy10by1ncm93X19zZWN0aW9uLnN0ZXAtZml2ZSAuaG93LXRvLWdyb3dfX2ltZy1kZXNrdG9wIHtcbiAgICAgIGhlaWdodDogMTguOXJlbTtcbiAgICAgIHdpZHRoOiAxN3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDAuNHJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob3ctdG8tZ3Jvd19fc2VjdGlvbi5zdGVwLWZpdmUgLmhvdy10by1ncm93X190ZXh0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMi41cmVtO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzMuNDEyNXJlbSk7IH1cbiAgICAgICAgLmhvdy10by1ncm93X19zZWN0aW9uLnN0ZXAtZml2ZSAuaG93LXRvLWdyb3dfX3RleHQgcCB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDVyZW0pOyB9IH1cbiAgICAuaG93LXRvLWdyb3dfX3NlY3Rpb24uc3RlcC1maXZlIC5ob3ctdG8tZ3Jvd19fdGV4dCBzdmcge1xuICAgICAgaGVpZ2h0OiAxOC45cmVtO1xuICAgICAgbWFyZ2luOiAwLjlyZW0gYXV0byAxLjlyZW0gYXV0bztcbiAgICAgIHdpZHRoOiAxN3JlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmhvdy10by1ncm93X19zZWN0aW9uLXdyYXAge1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDY2cmVtO1xuICAgICAgcGFkZGluZzogMCAxcmVtOyB9IH1cblxuLmpvaW4tb3VyLXRlYW1fX2hlcm8ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMzBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmpvaW4tb3VyLXRlYW1fX2hlcm8ge1xuICAgICAgaGVpZ2h0OiAzOTVweDsgfSB9XG5cbi5qb2luLW91ci10ZWFtX19oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNWY1ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4uam9pbi1vdXItdGVhbV9faGVhZGVyLW91dHRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMy44cmVtIDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5qb2luLW91ci10ZWFtX19oZWFkZXItb3V0dGVyIHtcbiAgICAgIGhlaWdodDogMjMuMjVyZW0gIWltcG9ydGFudDsgfSB9XG5cbi5qb2luLW91ci10ZWFtX19oZWFkZXItaW5uZXIge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5qb2luLW91ci10ZWFtX19oZWFkZXItaW5uZXIgaDMge1xuICAgIHBhZGRpbmc6IDEuMnJlbSAwIDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5qb2luLW91ci10ZWFtX19oZWFkZXItaW5uZXIgaDMge1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgLmpvaW4tb3VyLXRlYW1fX2hlYWRlci1pbm5lciBoMSB7XG4gICAgY29sb3I6ICM0OThiYzkgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMi4xcmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmpvaW4tb3VyLXRlYW1fX2hlYWRlci1pbm5lciBoMSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjZyZW07IH0gfVxuICAuam9pbi1vdXItdGVhbV9faGVhZGVyLWlubmVyIHAge1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDFyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuam9pbi1vdXItdGVhbV9faGVhZGVyLWlubmVyIHAge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zMTI1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDcwcmVtOyB9IH1cblxuLmpvaW4tb3VyLXRlYW1fX2Jsb2NrLWltZ3Mge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuam9pbi1vdXItdGVhbV9fYmxvY2staW1ncyB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgICAgLmpvaW4tb3VyLXRlYW1fX2Jsb2NrLWltZ3M6OmJlZm9yZSwgLmpvaW4tb3VyLXRlYW1fX2Jsb2NrLWltZ3M6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgb3JkZXI6IDE7IH1cbiAgICAgIC5qb2luLW91ci10ZWFtX19ibG9jay1pbWdzOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9IH1cblxuLmpvaW4tb3VyLXRlYW1fX2Jsb2NrLWltZyB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTguMzc1cmVtO1xuICBoZWlnaHQ6IDI3LjY3NXJlbTtcbiAgY29udGVudDogJyc7IH1cbiAgLmpvaW4tb3VyLXRlYW1fX2Jsb2NrLWltZzpudGgtY2hpbGQoMikge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuam9pbi1vdXItdGVhbV9fYmxvY2staW1nIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42NTYyNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjU2MjVyZW07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMjIuMjVyZW07IH0gfVxuXG4uam9pbi1vdXItdGVhbV9fY2xvc2luZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY1ZjUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuam9pbi1vdXItdGVhbV9fY2xvc2luZyB7XG4gICAgICBoZWlnaHQ6IDIyLjY4NzVyZW0gIWltcG9ydGFudDsgfSB9XG5cbi5qb2luLW91ci10ZWFtX19jbG9zaW5nLW91dHRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMy44cmVtIDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5qb2luLW91ci10ZWFtX19jbG9zaW5nLW91dHRlciB7XG4gICAgICBoZWlnaHQ6IDIyLjY4NzVyZW0gIWltcG9ydGFudDsgfSB9XG5cbi5qb2luLW91ci10ZWFtX19jbG9zaW5nLWlubmVyIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5qb2luLW91ci10ZWFtX19jbG9zaW5nLWlubmVyIHAge1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmc6IDAgMXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5qb2luLW91ci10ZWFtX19jbG9zaW5nLWlubmVyIHAge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zMTI1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDcwcmVtOyB9IH1cbiAgICAuam9pbi1vdXItdGVhbV9fY2xvc2luZy1pbm5lciBwOm50aC1jaGlsZCgyKSB7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5qb2luLW91ci10ZWFtX19jbG9zaW5nLWlubmVyIHA6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9IH1cblxuLmpvaW4tb3VyLXRlYW1fX2J0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0OThiYzk7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM0OThiYzk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFkZGluZzogMC4wNXJlbSAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgd2lkdGg6IDE3LjE4NzVyZW07IH1cbiAgLmpvaW4tb3VyLXRlYW1fX2J0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5qb2luLW91ci10ZWFtX19idG4ge1xuICAgICAgcGFkZGluZzogMC4yNXJlbSAwOyB9IH1cblxuLnBhZ2VfX3JvdyB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMjFweDtcbiAgcGFkZGluZy1yaWdodDogMjFweDsgfVxuICAucGFnZV9fcm93OjpiZWZvcmUsIC5wYWdlX19yb3c6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAucGFnZV9fcm93OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLnBhZ2VfX2hlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3ZmQ5NTQ7XG4gIHBhZGRpbmc6IDMwcHggMCAyN3B4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucGFnZV9faGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDgwcHggMCA3MnB4OyB9IH1cbiAgLnBhZ2VfX2hlYWRlciBoMSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnBhZ2VfX2hlYWRlciBoMSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuXG4ucGFnZV9fY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcGFkZGluZzogMzVweCAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucGFnZV9fY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmc6IDcwcHggMDsgfSB9XG5cbi5wYWdlX19jb250ZW50IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhZ2VfX2NvbnRlbnQge1xuICAgICAgY29sdW1uczogNTAwcHggMjtcbiAgICAgIGNvbHVtbi1nYXA6IDIuNXJlbTsgfSB9XG4gIC5wYWdlX19jb250ZW50IGg0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGNvbG9yOiAjN2ZkOTU0O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdEJvb2stQmFzZVwiO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAucGFnZV9fY29udGVudCBwIHtcbiAgICBsaW5lLWhlaWdodDogMjFweDtcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhZ2VfX2NvbnRlbnQgcCArIGg0IHtcbiAgICAgIG1hcmdpbi10b3A6IDQwcHg7IH0gfVxuXG4ucHJvZHVjdF9faGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogNTsgfVxuICAucHJvZHVjdF9faGVybzo6YmVmb3JlLCAucHJvZHVjdF9faGVybzo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5wcm9kdWN0X19oZXJvOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wcm9kdWN0X19oZXJvIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBib3R0b207XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA3NTVweDsgfVxuICAgICAgLm1peC1uby0xIC5wcm9kdWN0X19oZXJvIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3RwYWdlLWhlcm8taW1hZ2UuanBnXCIgfCBhc3NldF91cmwgfX0gJyk7IH1cbiAgICAgIC5taXgtbm8tMiAucHJvZHVjdF9faGVybyB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnIHt7IFwib3B1cy1ncm93cy1wcm9kdWN0cGFnZS1oZXJvLWltYWdlMi5qcGdcIiB8IGFzc2V0X3VybCB9fSAnKTsgfVxuICAgICAgLm1peC1uby0zIC5wcm9kdWN0X19oZXJvIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3RwYWdlLWhlcm8taW1hZ2UzLmpwZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgICAuYW1lbmRtZW50IC5wcm9kdWN0X19oZXJvIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3RwYWdlLWhlcm8taW1hZ2U0LmpwZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9IH1cbiAgLnByb2R1Y3RfX2hlcm8tLW1vYmlsZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzUzcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucHJvZHVjdF9faGVyby0tbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLm1peC1uby0xIC5wcm9kdWN0X19oZXJvLS1tb2JpbGUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3RwYWdlLWhlcm8taW1hZ2UtbW9iaWxlLmpwZ1wiIHwgYXNzZXRfdXJsIH19ICcpOyB9XG4gICAgLm1peC1uby0yIC5wcm9kdWN0X19oZXJvLS1tb2JpbGUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3RwYWdlLWhlcm8taW1hZ2UyLW1vYmlsZS5qcGdcIiB8IGFzc2V0X3VybCB9fSAnKTsgfVxuICAgIC5taXgtbm8tMyAucHJvZHVjdF9faGVyby0tbW9iaWxlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnIHt7IFwib3B1cy1ncm93cy1wcm9kdWN0cGFnZS1oZXJvLWltYWdlMy1tb2JpbGUuanBnXCIgfCBhc3NldF91cmwgfX0gJyk7IH1cbiAgICAuYW1lbmRtZW50IC5wcm9kdWN0X19oZXJvLS1tb2JpbGUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCJvcHVzLWdyb3dzLXByb2R1Y3RwYWdlLWhlcm8taW1hZ2U0LW1vYmlsZS5qcGdcIiB8IGFzc2V0X3VybCB9fSAnKTsgfVxuXG4ucHJvZHVjdF9fY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgd2lkdGg6IDg3LjUlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjY1NjI1cmVtO1xuICBtYXJnaW4tbGVmdDogNi4yNSU7XG4gIHBhZGRpbmctdG9wOiA2MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNTVweDsgfVxuICAucHJvZHVjdF9fY29udGFpbmVyOjpiZWZvcmUsIC5wcm9kdWN0X19jb250YWluZXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAucHJvZHVjdF9fY29udGFpbmVyOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wcm9kdWN0X19jb250YWluZXIge1xuICAgICAgd2lkdGg6IDMxLjI1JTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjY1NjI1cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42NTYyNXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2MSU7XG4gICAgICBwYWRkaW5nLXRvcDogMTA1cHg7IH0gfVxuXG4ucHJvZHVjdF9fc3VidGl0bGUge1xuICBjb2xvcjogIzU1NTU1NTtcbiAgZm9udC1mYW1pbHk6IFwiaGFsYW50XCI7IH1cblxuLnByb2R1Y3RfX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMTdweDtcbiAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7IH1cblxuLm1peC1uby0xIC5wcm9kdWN0X19jb2xvciB7XG4gIGNvbG9yOiAjNDk4YmM5O1xuICBmaWxsOiAjNDk4YmM5OyB9XG5cbi5taXgtbm8tMiAucHJvZHVjdF9fY29sb3Ige1xuICBjb2xvcjogIzdmZDk1NDtcbiAgZmlsbDogIzdmZDk1NDsgfVxuXG4ubWl4LW5vLTMgLnByb2R1Y3RfX2NvbG9yIHtcbiAgY29sb3I6ICM5ODVmYTc7XG4gIGZpbGw6ICM5ODVmYTc7IH1cblxuLmFtZW5kbWVudCAucHJvZHVjdF9fY29sb3Ige1xuICBjb2xvcjogI2ZmOTU0NDtcbiAgZmlsbDogI2ZmOTU0NDsgfVxuXG4ucHJvZHVjdF9fcHJpY2Uge1xuICBjb2xvcjogIzU1NTU1NTtcbiAgZm9udC1mYW1pbHk6IFwiaGFsYW50XCI7IH1cblxuLnByb2R1Y3RfX3NoaXBwaW5nLW9mZmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0zMHB4O1xuICBsZWZ0OiAxMDBweDtcbiAgd2lkdGg6IDIwMHB4O1xuICBjb2xvcjogIzU1NTU1NTtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4ucHJvZHVjdF9fb3ZlcnZpZXctbGluayB7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucHJvZHVjdF9fb3ZlcnZpZXctbGluayB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAucHJvZHVjdF9fb3ZlcnZpZXctbGluay5hY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJfX19fXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuXG4ucHJvZHVjdF9fb3ZlcnZpZXctY29udGVudCB7XG4gIG1heC13aWR0aDogMzgwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnByb2R1Y3RfX292ZXJ2aWV3LWNvbnRlbnQge1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgaGVpZ2h0OiAxMDhweDsgfVxuICAgICAgLnByb2R1Y3RfX292ZXJ2aWV3LWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB3aWR0aDogN3B4OyB9XG4gICAgICAucHJvZHVjdF9fb3ZlcnZpZXctY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfSB9XG5cbi5wcm9kdWN0X19kZXRhaWxzLCAucHJvZHVjdF9fc2l6ZSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjZmNWY1O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y2ZjVmNTtcbiAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnByb2R1Y3RfX2RldGFpbHMsIC5wcm9kdWN0X19zaXplIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAucHJvZHVjdF9fZGV0YWlscyBzdmcsIC5wcm9kdWN0X19zaXplIHN2ZyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogNCU7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiA2MHB4OyB9XG4gIC5wcm9kdWN0X19kZXRhaWxzLWxpbmssIC5wcm9kdWN0X19zaXplLWxpbmsge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucHJvZHVjdF9fZGV0YWlscy1saW5rLCAucHJvZHVjdF9fc2l6ZS1saW5rIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7IH1cbiAgICAgICAgLnByb2R1Y3RfX2RldGFpbHMtbGluay5hY3RpdmU6OmFmdGVyLCAucHJvZHVjdF9fc2l6ZS1saW5rLmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiX19fX1wiO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgLnByb2R1Y3RfX2RldGFpbHMtLWNvbnRyYWN0LCAucHJvZHVjdF9fc2l6ZS0tY29udHJhY3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnByb2R1Y3RfX2RldGFpbHMge1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5wcm9kdWN0X19kZXRhaWxzLWNvbnRlbnQtLW1vYmlsZSwgLnByb2R1Y3RfX3NpemUtY29udGVudC0tbW9iaWxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDFzO1xuICBtYXgtaGVpZ2h0OiAwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuXG4ucHJvZHVjdF9fZGV0YWlscy1jb250ZW50LCAucHJvZHVjdF9fc2l6ZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBtYXgtd2lkdGg6IDM4MHB4O1xuICBoZWlnaHQ6IDEwOHB4O1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzU1NTU1NTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnByb2R1Y3RfX2RldGFpbHMtY29udGVudCwgLnByb2R1Y3RfX3NpemUtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICAucHJvZHVjdF9fZGV0YWlscy1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhciwgLnByb2R1Y3RfX3NpemUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICB3aWR0aDogN3B4OyB9XG4gIC5wcm9kdWN0X19kZXRhaWxzLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLCAucHJvZHVjdF9fc2l6ZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG5cbi5wcm9kdWN0X19jaG9vc2UtdmFyaWFudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuICAucHJvZHVjdF9fY2hvb3NlLXZhcmlhbnQgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IC01cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzU1NTU1NTtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGluZS1oZWlnaHQ6IDMzcHg7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyMC42MjVlbSkge1xuICAgIC5wcm9kdWN0X19jaG9vc2UtdmFyaWFudCBiciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLnByb2R1Y3RfX2Nob29zZS12YXJpYW50IGJyICsgbGFiZWxbZm9yPVwicXVhbnRpdHlcIl0ge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgLnByb2R1Y3RfX2Nob29zZS12YXJpYW50IHNlbGVjdCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHJvZHVjdF9fc2luZ2xlLXNpemUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAucHJvZHVjdF9fc2luZ2xlLXNpemU6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcm9kdWN0X19zaW5nbGUtc2l6ZSAuY3VycmVudCB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4ucHJvZHVjdF9fYWRkLXRvLWNhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgLnByb2R1Y3RfX2FkZC10by1jYXJ0IGJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1yaWdodDogMyU7XG4gICAgd2lkdGg6IDEyNXB4OyB9XG4gICAgLnByb2R1Y3RfX2FkZC10by1jYXJ0IGJ1dHRvbiA+IHNwYW4ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA3cHg7XG4gICAgICByaWdodDogLTE0MHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICBjb2xvcjogIzU1NTU1NTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4ucHJvZHVjdF9fdmlkZW8ge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNzk1cHg7IH1cbiAgLnByb2R1Y3RfX3ZpZGVvIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB6LWluZGV4OiAtMjAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gIC5wcm9kdWN0X192aWRlbyBoMSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXdlaWdodDogODAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5wcm9kdWN0X192aWRlbyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogODBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNvbnRlbnQge1xuICAgICAgcGFkZGluZy10b3A6IDExMHB4OyB9IH1cbiIsIi8vICBGb3VuZGF0aW9uIGZvciBTaXRlcyBTZXR0aW5nc1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxuLy9cbi8vICAgMS4gR2xvYmFsXG4vLyAgIDIuIEJyZWFrcG9pbnRzXG4vLyAgIDMuIFRoZSBHcmlkXG4vLyAgIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vICAgNi4gQWJpZGVcbi8vICAgNy4gQWNjb3JkaW9uXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XG4vLyAgIDkuIEJhZGdlXG4vLyAgMTAuIEJyZWFkY3J1bWJzXG4vLyAgMTEuIEJ1dHRvblxuLy8gIDEyLiBCdXR0b24gR3JvdXBcbi8vICAxMy4gQ2FsbG91dFxuLy8gIDE0LiBDbG9zZSBCdXR0b25cbi8vICAxNS4gRHJpbGxkb3duXG4vLyAgMTYuIERyb3Bkb3duXG4vLyAgMTcuIERyb3Bkb3duIE1lbnVcbi8vICAxOC4gRmxleCBWaWRlb1xuLy8gIDE5LiBGb3Jtc1xuLy8gIDIwLiBMYWJlbFxuLy8gIDIxLiBNZWRpYSBPYmplY3Rcbi8vICAyMi4gTWVudVxuLy8gIDIzLiBPZmYtY2FudmFzXG4vLyAgMjQuIE9yYml0XG4vLyAgMjUuIFBhZ2luYXRpb25cbi8vICAyNi4gUHJvZ3Jlc3MgQmFyXG4vLyAgMjcuIFJldmVhbFxuLy8gIDI4LiBTbGlkZXJcbi8vICAyOS4gU3dpdGNoXG4vLyAgMzAuIFRhYmxlXG4vLyAgMzEuIFRhYnNcbi8vICAzMi4gVGh1bWJuYWlsXG4vLyAgMzMuIFRvb2x0aXBcbi8vICAzNC4gVG9wIEJhclxuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuQGltcG9ydCB1cmwoJy8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1IYWxhbnQ6NDAwJyk7XG5cbi8vIDEuIEdsb2JhbFxuLy8gLS0tLS0tLS0tXG5cbi8vIENvbG9yc1xuLy8gLS0tLS0tLS0tXG4kYzE6ICNmZjk1NDQ7IC8vIG9yYW5nZVxuJGMyOiAjN2ZkOTU0OyAvLyBncmVlblxuJGMzOiAjNDk4YmM5OyAvLyBibHVlXG4kYzQ6ICM5ODVmYTc7IC8vIHB1cnBsZVxuJGM1OiAjNTU1NTU1OyAvLyBkYXJrIGdyZXlcbiRjNjogI2NhYzljOTsgLy8gZ3JleVxuJGM3OiAjZjZmNWY1OyAvLyBsaWdodCBncmV5XG4kYzg6ICNmZmZmZmY7IC8vIHdoaXRlXG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50O1xuJGZvcm0tZXJyb3I6ICRjMTtcblxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCk7XG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJTtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuJHByaW1hcnktY29sb3I6ICRjMztcbiRzZWNvbmRhcnktY29sb3I6ICRjNjtcbiRzdWNjZXNzLWNvbG9yOiAjM2FkYjc2O1xuJHdhcm5pbmctY29sb3I6ICNmZmFlMDA7XG4kYWxlcnQtY29sb3I6ICNlYzU4NDA7XG4kbGlnaHQtZ3JheTogI2U2ZTZlNjtcbiRtZWRpdW0tZ3JheTogI2NhY2FjYTtcbiRkYXJrLWdyYXk6ICM4YThhOGE7XG4kYmxhY2s6ICRjNTtcbiR3aGl0ZTogJGM4O1xuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlO1xuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrO1xuXG4kZGVza3RvcC1uYXZiYXItaGVpZ2h0OiAxMTBweDtcbiRkZXNrdG9wLW5hdmJhci1oZWlnaHQtc3F1aXNoZWQ6IDgwcHg7XG4kbW9iaWxlLW5hdmJhci1oZWlnaHQ6IDgwcHg7XG5cbi8vIEZvbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuJGJvZHktZm9udC1mYW1pbHk6IFwicHJveGltYS1ub3ZhXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kc3ViaGVhZGluZy1mb250LWZhbWlseTogXCJIYWxhbnRcIiwgc2VyaWY7XG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZTtcbiRnbG9iYWwtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC1wYWRkaW5nOiAxcmVtO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQ7XG4kZ2xvYmFsLXJhZGl1czogMDtcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0cjtcbiRyZW0tYmFzZTogMTZweDtcblxuJHAxOiByZW0tY2FsYygyMCk7XG4kcDI6IHJlbS1jYWxjKDE1KTtcblxuLy8gMi4gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbik7XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKTtcblxuLy8gMy4gVGhlIEdyaWRcbi8vIC0tLS0tLS0tLS0tXG5cbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRncmlkLXJvdy1vdXRlci1ndXR0ZXI6IDIxcHg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDE2O1xuLy8gJGdyaWQtY29sdW1uLXJlc3BvbnNpdmUtZ3V0dGVyOiAoXG4vLyAgIHNtYWxsOiAyMXB4LFxuLy8gICBsYXJnZTogMjFweFxuLy8gKTtcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IDIxcHg7XG4kbmF2LWNvbHVtbi1ndXR0ZXI6IDIxcHg7XG4kYmxvY2stZ3JpZC1tYXg6IDY7XG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogZmFsc2U7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbXBvcnQgdXJsKFwiLy9oZWxsby5teWZvbnRzLm5ldC9jb3VudC8zMDllN2RcIik7XG5cbkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnSW50cm9SdXN0LUJhc2VMaW5lJztzcmM6IHVybCgnMzA5RTdEXzBfMC5lb3QnKTtzcmM6IHVybCgnMzA5RTdEXzBfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnMzA5RTdEXzBfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJzMwOUU3RF8wXzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnMzA5RTdEXzBfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7fVxuIFxuQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ICdJbnRyb1J1c3RCb29rLUJhc2UnO3NyYzogdXJsKCczMDlFN0RfMV8wLmVvdCcpO3NyYzogdXJsKCczMDlFN0RfMV8wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCczMDlFN0RfMV8wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnMzA5RTdEXzFfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCczMDlFN0RfMV8wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTt9XG5cbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItc2l6ZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAzMCxcbiAgICAnaDInOiAyNSxcbiAgICAnaDMnOiAyMixcbiAgICAnaDQnOiAyMFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAzOCxcbiAgICAnaDInOiAzMCxcbiAgICAnaDMnOiAyNyxcbiAgICAnaDQnOiAyMFxuICApLFxuKTtcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuMTtcbiRoZWFkZXItbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMDtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjU7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrO1xuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcblxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6ICRhbGVydC1jb2xvcjtcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6ICRhbGVydC1jb2xvcjtcbiRpbnB1dC1lcnJvci1jb2xvcjogJGFsZXJ0LWNvbG9yO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyA3LiBBY2NvcmRpb25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJGFjY29yZGlvbi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogZm9yZWdyb3VuZCgkYmFkZ2UtYmFja2dyb3VuZCk7XG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlO1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbTtcbiRidXR0b24tbWFyZ2luOiAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luIDA7XG4kYnV0dG9uLWZpbGw6IHNvbGlkO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbi8vICRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiRidXR0b24tYmFja2dyb3VuZC1ob3ZlcjogJGM4O1xuJGJ1dHRvbi1jb2xvcjogJGM4O1xuJGJ1dHRvbi1jb2xvci1ob3ZlcjogJHByaW1hcnktY29sb3I7XG4kYnV0dG9uLWNvbG9yLWFsdDogIzAwMDtcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG5cbi8vIDEyLiBCdXR0b24gR3JvdXBcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHg7XG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJztcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xuXG4vLyAxMy4gQ2FsbG91dFxuLy8gLS0tLS0tLS0tLS1cblxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSk7XG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtO1xuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kO1xuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYWxsb3V0LWxpbmstdGludDogMzAlO1xuXG4vLyAxNC4gQ2xvc2UgQnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wO1xuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAxcmVtO1xuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogMC41cmVtO1xuJGNsb3NlYnV0dG9uLXNpemU6IDJlbTtcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxO1xuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2s7XG5cbi8vIDE1LiBEcmlsbGRvd25cbi8vIC0tLS0tLS0tLS0tLS1cblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XG5cbi8vIDE2LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDE2cmVtO1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbik7XG5cbi8vIDE3LiBEcm9wZG93biBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZTtcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweDtcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG5cbi8vIDE4LiBGbGV4IFZpZGVvXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kZmxleHZpZGVvLXBhZGRpbmctdG9wOiByZW0tY2FsYygyNSk7XG4kZmxleHZpZGVvLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiRmbGV4dmlkZW8tcmF0aW86IDQgYnkgMztcbiRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbjogMTYgYnkgOTtcblxuLy8gMTkuIEZvcm1zXG4vLyAtLS0tLS0tLS1cblxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCk7XG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKTtcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKTtcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KTtcbiRoZWxwdGV4dC1jb2xvcjogIzMzMztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogI2ZhZmFmYTtcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICMzMzM7XG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kaW5wdXQtY29sb3I6ICRkYXJrLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKTtcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5O1xuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogZGVmYXVsdDtcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjAuIExhYmVsXG4vLyAtLS0tLS0tLS1cblxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGxhYmVsLWNvbG9yOiBmb3JlZ3JvdW5kKCRsYWJlbC1iYWNrZ3JvdW5kKTtcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbTtcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMS4gTWVkaWEgT2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlO1xuXG4vLyAyMi4gTWVudVxuLy8gLS0tLS0tLS1cblxuJG1lbnUtbWFyZ2luOiAwO1xuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbTtcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW07XG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG4kbWVudS1leHBhbmQtbWF4OiA2O1xuXG4vLyAyMy4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplOiAyNTBweDtcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kb2ZmY2FudmFzLXppbmRleDogLTE7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZTtcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCc7XG4kbWFpbmNvbnRlbnQtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC41KTtcblxuLy8gMjQuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5O1xuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwO1xuXG4vLyAyNS4gUGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS1cblxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpO1xuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3I7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6IGZvcmVncm91bmQoJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQpO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWU7XG5cbi8vIDI2LiBQcm9ncmVzcyBCYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJHByb2dyZXNzLWhlaWdodDogMXJlbTtcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjcuIFJldmVhbFxuLy8gLS0tLS0tLS0tLVxuXG4kcmV2ZWFsLWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjkwKTtcbi8vICRyZXZlYWwtd2lkdGg6IDYwMHB4O1xuLy8gJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kcmV2ZWFsLXdpZHRoOiA3NTBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAxNDMwcHg7XG4kcmV2ZWFsLW9mZnNldDogcmVtLWNhbGMoMTAwKTtcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDI4LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6ICRzbGlkZXItaGVpZ2h0O1xuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG5cbi8vIDI5LiBTd2l0Y2hcbi8vIC0tLS0tLS0tLS1cblxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtO1xuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtO1xuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcblxuLy8gMzAuIFRhYmxlXG4vLyAtLS0tLS0tLS1cblxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWJsZS1jb2xvci1zY2FsZTogNSU7XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XG4kdGFibGUtaG92ZXItc2NhbGU6IDIlO1xuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG5cbi8vIDMxLiBUYWJzXG4vLyAtLS0tLS0tLVxuXG4kdGFiLW1hcmdpbjogMDtcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4kdGFiLWJvcmRlcjogJGxpZ2h0LWdyYXk7XG4kdGFiLWl0ZW0tY29sb3I6IGZvcmVncm91bmQoJHRhYi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCR0YWItYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDMyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzMy4gVG9vbHRpcFxuLy8gLS0tLS0tLS0tLS1cblxuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW07XG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NjtcbiR0b29sdGlwLXBpcC1vZmZzZXQ6IDEuMjVyZW07XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzNC4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICNlZWU7XG4kdG9wYmFyLWxpbmstY29sb3I6ICNmZmY7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcblxuIiwiLy8gc2V0IGFsbCBmYWRlIGVsZW1lbnRzIHRvIDAgb3BhY2l0eSBpbml0aWFsbHlcbi5hZGQtYW5pbWF0aW9uLWZhZGUtaW4tdXAge1xuICBvcGFjaXR5OiAwOyB9XG5cbi5mYWRlIHtcbiAgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihmYWRlKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcblxuICAvLyBzbyBoaWRkZW4gY2FydCBkb2Vzbid0IHByZXZlbnQgY2xpY2tpbmcgb3RoZXIgcGFnZSBlbGVtZW50c1xuICAmLm1pbmktY2FydCB7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH0gfVxuXG4uZmFkZS1vdXQtc2xvdyB7XG4gIEBpbmNsdWRlIG11aS1hbmltYXRpb24oZmFkZSgxLCAwKSk7XG4gIGFuaW1hdGlvbi1kZWxheTogM3M7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOyB9XG5cbi5mYWRlLW91dCB7XG4gIEBpbmNsdWRlIG11aS1hbmltYXRpb24oZmFkZSgxLCAwKSk7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG5cbiAgJi5taW5pLWNhcnQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9IH1cblxuLmZhZGUtaW4tbGVmdCB7XG4gIEBpbmNsdWRlIG11aS1hbmltYXRpb24oZmFkZSwgc2xpZGUoaW4sIGxlZnQsIDEuNXJlbSkpO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOyB9XG5cbi5mYWRlLWluLXJpZ2h0IHtcbiAgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihmYWRlLCBzbGlkZShpbiwgcmlnaHQsIDEuNXJlbSkpO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOyB9XG5cbi5mYWRlLWluLXVwIHtcbiAgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihmYWRlLCBzbGlkZShpbiwgdXAsIDEuNXJlbSkpO1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsgfVxuXG4uZmFkZS1pbi1kb3duIHtcbiAgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihmYWRlLCBzbGlkZShpbiwgZG93biwgMS41cmVtKSk7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOyB9XG5cbi5zbGlkZS1pbi11cCB7XG4gIEBpbmNsdWRlIG11aS1hbmltYXRpb24oc2xpZGUoaW4sIHVwLCAxLjVyZW0pKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7IH1cblxuLy8gYWRkICdhbmltYXRlLWNoYWluJyBjbGFzcyB0byBhbnkgZWxlbWVudCwgYW5kIHdheXBvaW50cyB3aWxsIHRyaWdnZXIgYW4gYW5pbWF0aW9uIHNlcmllc1xuLy8gTk9URTogY2hpbGQgZWxlbWVudHMgbmVlZCB0byBoYXZlIHRoZXNlIGNsYXNzZXMgYXNzaWduZWRcbkBpbmNsdWRlIG11aS1zZXJpZXMge1xuXG4gIC5hbmltYXRlLW9uZSxcbiAgLmFuaW1hdGUtMSB7XG4gICAgQGluY2x1ZGUgbXVpLXF1ZXVlKDAuNHMsIDBzLCBmYWRlLCBzbGlkZShpbiwgdXAsIDEuNXJlbSkpOyB9XG5cbiAgLmFuaW1hdGUtdHdvLFxuICAuYW5pbWF0ZS0yIHtcbiAgICBAaW5jbHVkZSBtdWktcXVldWUoMC40cywgMHMsIGZhZGUsIHNsaWRlKGluLCB1cCwgMS41cmVtKSk7IH1cblxuICAuYW5pbWF0ZS10aHJlZSxcbiAgLmFuaW1hdGUtMyB7XG4gICAgQGluY2x1ZGUgbXVpLXF1ZXVlKDAuNHMsIDBzLCBmYWRlLCBzbGlkZShpbiwgdXAsIDEuNXJlbSkpOyB9XG5cbiAgLmFuaW1hdGUtZm91cixcbiAgLmFuaW1hdGUtNCB7XG4gICAgQGluY2x1ZGUgbXVpLXF1ZXVlKDAuNHMsIDBzLCBmYWRlLCBzbGlkZShpbiwgdXAsIDEuNXJlbSkpOyB9XG5cbiAgLmFuaW1hdGUtZml2ZSxcbiAgLmFuaW1hdGUtNSB7XG4gICAgQGluY2x1ZGUgbXVpLXF1ZXVlKDAuNHMsIDBzLCBmYWRlLCBzbGlkZShpbiwgdXAsIDEuNXJlbSkpOyB9XG5cbiAgLmFuaW1hdGUtc2l4LFxuICAuYW5pbWF0ZS02IHtcbiAgICBAaW5jbHVkZSBtdWktcXVldWUoMC40cywgMHMsIGZhZGUsIHNsaWRlKGluLCB1cCwgMS41cmVtKSk7IH0gfVxuXG4vLyAzMCUgaG92ZXIgdHJhbnNpdGlvblxuJWhvdmVyLTMwIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuXG4gICY6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNzsgfSB9XG5cbi8vIGZvciBhbmltYXRpbmcgYXJyb3dzIG9uIGhvbWUgYW5kIHByb2R1Y3QgcGFnZXNcbkBrZXlmcmFtZXMgYXJyb3ctbW92ZW1lbnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuXG4gIDcwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYm90dG9tOiAwOyB9IH1cbiIsIiQtbXVpLXF1ZXVlOiAoKTtcblxuLy8vIFBhdXNlcyB0aGUgYW5pbWF0aW9uIG9uIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIHRoZW4gcGxheXMgaXQgd2hlbiBhbiBhY3RpdmUgY2xhc3MgaXMgYWRkZWQgdG8gYSBwYXJlbnQuIEFsc28gc2V0cyB0aGUgZmlsbCBtb2RlIG9mIHRoZSBhbmltYXRpb24gdG8gYGJvdGhgLiBUaGlzIHBhdXNlcyB0aGUgZWxlbWVudCBhdCB0aGUgZmlyc3QgZnJhbWUgb2YgdGhlIGFuaW1hdGlvbiwgYW5kIGhvbGRzIGl0IGluIHBsYWNlIGF0IHRoZSBlbmQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4lYW5pbWF0ZWQtZWxlbWVudCB7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG5cbiAgLiN7bWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBhY3RpdmF0ZS1xdWV1ZS1jbGFzcyl9ICYge1xuICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbmV3IGFuaW1hdGlvbiBxdWV1ZS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgWzBzXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIHRvIHBsYWNlIGF0IHRoZSBmcm9udCBvZiB0aGUgYW5pbWF0aW9uIHF1ZXVlLlxuQG1peGluIG11aS1zZXJpZXMoJGRlbGF5OiAwcykge1xuICAkLW11aS1xdWV1ZTogKCkgIWdsb2JhbDtcblxuICBAaWYgJGRlbGF5ID4gMCB7XG4gICAgJGl0ZW06ICgkZGVsYXksIDBzKTtcbiAgICAkLW11aS1xdWV1ZTogYXBwZW5kKCQtbXVpLXF1ZXVlLCAkaXRlbSkgIWdsb2JhbDtcbiAgfVxuXG4gIEBjb250ZW50O1xufVxuXG4vLy8gQWRkcyBhbiBhbmltYXRpb24gdG8gYW4gYW5pbWF0aW9uIHF1ZXVlLiBPbmx5IHVzZSB0aGlzIG1peGluIGluc2lkZSBvZiBgbXVpLXNlcmllcygpYC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gWzFzXSAtIExlbmd0aCBvZiB0aGUgYW5pbWF0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRnYXAgWzBzXSAtIEFtb3VudCBvZiB0aW1lIHRvIHBhdXNlIGJlZm9yZSBwbGF5aW5nIHRoZSBhbmltYXRpb24gYWZ0ZXIgdGhpcyBvbmUuIFVzZSBhIG5lZ2F0aXZlIHZhbHVlIHRvIG1ha2UgdGhlIG5leHQgZWZmZWN0IG92ZXJsYXAgd2l0aCB0aGUgY3VycmVudCBvbmUuXG4vLy8gQHBhcmFtIHtGdW5jdGlvbn0gJGtleWZyYW1lcy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLXF1ZXVlKFxuICAkZHVyYXRpb246IDFzLFxuICAkZ2FwOiAwcyxcbiAgJGtleWZyYW1lcy4uLlxuKSB7XG4gIC8vIEJ1aWxkIHRoZSBhbmltYXRpb25cbiAgJGtmOiAtbXVpLXByb2Nlc3MtYXJncygka2V5ZnJhbWVzLi4uKTtcblxuICAvLyBDYWxjdWxhdGUgdGhlIGRlbGF5IGZvciB0aGlzIGFuaW1hdGlvbiBiYXNlZCBvbiBob3cgbG9uZyB0aGUgcHJldmlvdXMgb25lcyB0YWtlXG4gICRhY3R1YWwtZGVsYXk6IDBzO1xuICBAZWFjaCAkYW5pbSBpbiAkLW11aS1xdWV1ZSB7XG4gICAgJGFjdHVhbC1kZWxheTogJGFjdHVhbC1kZWxheSArIG50aCgkYW5pbSwgMSkgKyBudGgoJGFuaW0sIDIpO1xuICB9XG5cbiAgLy8gQXBwZW5kIHRoaXMgYW5pbWF0aW9uJ3MgbGVuZ3RoIGFuZCBnYXAgdG8gdGhlIGVuZCBvZiB0aGUgcXVldWVcbiAgJGl0ZW06ICgkZHVyYXRpb24sICRnYXApO1xuICAkLW11aS1xdWV1ZTogYXBwZW5kKCQtbXVpLXF1ZXVlLCAkaXRlbSkgIWdsb2JhbDtcblxuICAvLyBDU1Mgb3V0cHV0XG4gIEBleHRlbmQgJWFuaW1hdGVkLWVsZW1lbnQ7XG4gIEBpbmNsdWRlIG11aS1hbmltYXRpb24oJGtmKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIGFuaW1hdGlvbi1kZWxheTogJGFjdHVhbC1kZWxheTtcbn1cbiIsIiRpbnB1dF9ib3JkZXJfcmFkaXVzOiAwcHggIWRlZmF1bHQ7XG4kaW5wdXRfaGVpZ2h0OiAzN3B4ICFkZWZhdWx0O1xuJGlucHV0X2hlaWdodF9zbWFsbDogMzdweCAhZGVmYXVsdDtcbiRhcnJvd19jb2xvcjogJGM1ICFkZWZhdWx0O1xuXG4vLyBTdHlsZSB0aGUgZHJvcGRvd25cbi5uaWNlLXNlbGVjdCB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXRfYm9yZGVyX3JhZGl1cztcbiAgLy8gYm9yZGVyOiBzb2xpZCAycHggJGM1OyBcbiAgYm9yZGVyOiBzb2xpZCAxcHggJGM1OyBcbiAgbWluLXdpZHRoOiA3NXB4O1xuICAvLyBoZWlnaHQ6ICRpbnB1dF9oZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXRfaGVpZ2h0IC0gNDtcbiAgb3V0bGluZTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwicHJveGltYS1ub3ZhXCI7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogJHAyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgLy8gVE9ETzogcmVwbGFjZSB3aXRoIHN2Z1xuICAvLyBBcnJvd1xuICAmOmFmdGVyIHtcbiAgICBAZXh0ZW5kICVob3Zlci0zMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGFycm93X2NvbG9yO1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICRhcnJvd19jb2xvcjtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jazsgXG4gICAgaGVpZ2h0OiA3cHg7XG4gICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IFxuICAgIHJpZ2h0OiAxMnB4OyBcbiAgICB0b3A6IDUwJTsgXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNjYlIDY2JTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0O1xuICAgIHdpZHRoOiA3cHg7XG4gIH1cbiAgXG4gICYub3BlbiB7XG4gICAgQGV4dGVuZCA6YWN0aXZlO1xuXG4gICAgJjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgICB9XG5cbiAgICAubGlzdCB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICB9XG4gICYuZGlzYWJsZWQge1xuICAgIGJvcmRlci1jb2xvcjogJGM3O1xuICAgIGNvbG9yOiAkYzY7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAmOmFmdGVyIHsgXG4gICAgICBib3JkZXItY29sb3I6IGxpZ2h0ZW4oJGFycm93X2NvbG9yLCAyMCUpO1xuICAgIH1cbiAgfVxuICBcblxuICAvLyBzZWxlY3RlZCBpdGVtXG4gIC5jdXJyZW50IHtcbiAgICBwYWRkaW5nOiAwIDMwcHggMCAxMHB4O1xuICB9XG4gIFxuICAvLyBMaXN0IGFuZCBvcHRpb25zXG4gIC5saXN0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IC01M3B4O1xuICAgIHJpZ2h0OiAtMnB4O1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjc1KSB0cmFuc2xhdGVZKC0gJGlucHV0X2hlaWdodCAvIDIpO1xuICAgIHRyYW5zaXRpb246IGFsbCAuMnMgY3ViaWMtYmV6aWVyKDAuNSwgMCwgMCwgMS4yNSksIG9wYWNpdHkgLjE1cyBlYXNlLW91dDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDk5OTk5OTk7XG4gICAgbWFyZ2luOiA0cHggMCAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzg7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgJjpob3ZlciAub3B0aW9uOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLm9wdGlvbiB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWluLWhlaWdodDogJGlucHV0X2hlaWdodCAtIDI7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6ICRpbnB1dF9oZWlnaHQgLSAyO1xuXG4gICAgJjpob3ZlciwgJi5mb2N1cywgJi5zZWxlY3RlZC5mb2N1cyB7IFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGM3O1xuICAgIH1cbiAgfVxufSIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6IGZsb29yKCgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSkpO1xuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cmVkKCRjb2xvcil9LCAje2dyZWVuKCRjb2xvcil9LCAje2JsdWUoJGNvbG9yKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogI3skcmdifVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlKSB7XG4gICRtYXA6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRtYXA6IG1hcC1yZW1vdmUoJG1hcCwgc21hbGwpO1xuICB9XG5cbiAgQGVhY2ggJHNpemUgaW4gJG1hcCB7XG4gICAgJC16Zi1zaXplOiAkc2l6ZSAhZ2xvYmFsO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyBhbmQgYXNzaWducyBpdCB0byB0aGUgZWxlbWVudCBieSBhZGRpbmcgdGhlIGBhbmltYXRpb24tbmFtZWAgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtGdW5jdGlvbn0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1hbmltYXRpb24oJGFyZ3MuLi4pIHtcbiAgJG5hbWU6IG1hcC1nZXQoLW11aS1wcm9jZXNzLWFyZ3MoJGFyZ3MuLi4pLCBuYW1lKTtcbiAgQGluY2x1ZGUgbXVpLWtleWZyYW1lcygkbmFtZSwgJGFyZ3MuLi4pO1xuICBhbmltYXRpb24tbmFtZTogdW5xdW90ZSgkbmFtZSk7XG59XG4iLCIvLyBJbnRlcm5hbCBjb3VudGVyIGZvciBjcmVhdGluZyB1bmlxdWUga2V5ZnJhbWUgbmFtZXNcbiQtbXVpLWN1c3RvbTogMDtcblxuLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMuIFVzZSB0aGlzIGZ1bmN0aW9uIGluc3RlYWQgb2YgYG11aS1hbmltYXRpb25gIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGtleWZyYW1lIGFuaW1hdGlvbiAqd2l0aG91dCogYXV0b21hdGljYWxseSBhc3NpZ25pbmcgaXQgdG8gdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUga2V5ZnJhbWUuXG4vLy8gQHBhcmFtIHtGdW5jdGlvbn0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1rZXlmcmFtZXMoJG5hbWUsICRlZmZlY3RzLi4uKSB7XG4gICRvYmo6IC1tdWktcHJvY2Vzcy1hcmdzKCRlZmZlY3RzLi4uKTtcbiAgJG9iajogbWFwLXJlbW92ZSgkb2JqLCBuYW1lKTtcblxuICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAvLyBOb3cgaXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIEBlYWNoICRwY3QsICRwcm9wcyBpbiAkb2JqIHtcbiAgICAgICN7LW11aS1rZXlmcmFtZS1wY3QoJHBjdCl9IHtcbiAgICAgICAgLy8gTGFzdGx5LCBpdGVyYXRlIHRocm91Z2ggZWFjaCBDU1MgcHJvcGVydHkgd2l0aGluIGEgcGVyY2VudGFnZSBhbmQgcHJpbnQgaXQgb3V0XG4gICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BzIHtcbiAgICAgICAgICAjeyRwcm9wfTogI3skdmFsdWV9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc3RyaW5nIGZvciBhIENTUyBrZXlmcmFtZSwgYnkgY29udmVydGluZyBhIGxpc3Qgb2YgbnVtYmVycyB0byBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRpbnB1dCAtIExpc3Qgb2YgbnVtYmVycyB0byB1c2UuXG4vLy8gQHJldHVybiB7U3RyaW5nfSBBIHNldCBvZiBjb21tYS1zZXBhcmF0ZWQgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1wY3QoJGlucHV0KSB7XG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ251bWJlcicge1xuICAgICRvdXRwdXQ6ICgkaW5wdXQgKiAxJSk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkaW5wdXQpID09ICdsaXN0JyB7XG4gICAgQGVhY2ggJGkgaW4gJGlucHV0IHtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAoJGkgKiAxJSksIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBQcmludHMgdGhlIENTUyBwcm9wZXJ0aWVzIGZyb20gYSBzcGVjaWZpYyBrZXkgaW4gYSBrZXlmcmFtZXMgbWFwLiBVc2VkIHRvIGJvcnJvdyBDU1MgZnJvbSBrZXlmcmFtZSBmdW5jdGlvbnMgZm9yIHVzZSBpbiB0cmFuc2l0aW9ucy5cbi8vLyBAcGFyYW0ge01hcH0gJGtmIC0gS2V5ZnJhbWUgbWFwIHRvIGV4dHJhY3QgZnJvbS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGtleSAtIEtleSBpbiB0aGUgbWFwIHRvIHByaW50IHRoZSBDU1Mgb2YuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLW11aS1rZXlmcmFtZS1nZXQoJGtmLCAka2V5KSB7XG4gICRtYXA6IG1hcC1nZXQoJGtmLCAka2V5KTtcblxuICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRtYXAgb3IgKCkge1xuICAgIC8vIFNvbWUga2V5ZnJhbWUgbWFwcyBzdG9yZSB0cmFuc2Zvcm1zIGFzIHF1b3RlZCBzdHJpbmdzXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkdmFsdWU6IHVucXVvdGUoJHZhbHVlKTtcbiAgICB9XG4gICAgI3skcHJvcH06ICR2YWx1ZTtcbiAgfVxufVxuXG4vLy8gUmVmb3JtYXRzIGEgbWFwIGNvbnRhaW5pbmcga2V5cyB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMsIHNvIHRoYXQgZWFjaCBrZXkgaXMgYSBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gc3BsaXQgdXAuXG4vLy8gQHJldHVybiB7TWFwfSBBIHJlZm9ybWF0dGVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApIHtcbiAgJG5ldy1tYXA6ICgpO1xuXG4gIC8vIFNwbGl0IGtleXMgd2l0aCBtdWx0aXBsZSB2YWx1ZXMgaW50byBpbmRpdmlkdWFsIGtleXNcbiAgQGVhY2ggJGtleSwgJGl0ZW0gaW4gJG1hcCB7XG4gICAgJGtleS10eXBlOiB0eXBlLW9mKCRrZXkpO1xuXG4gICAgQGlmICRrZXktdHlwZSA9PSAnbnVtYmVyJyB7XG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJGl0ZW0pKTtcbiAgICB9IEBlbHNlIGlmICRrZXktdHlwZSA9PSAnbGlzdCcge1xuICAgICAgQGVhY2ggJGsgaW4gJGtleSB7XG4gICAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgkazogJGl0ZW0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgYSBzZXJpZXMgb2Yga2V5ZnJhbWUgb2JqZWN0cyBpbnRvIG9uZS5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcHMuLi4gLSBBIHNlcmllcyBvZiBtYXBzIHRvIG1lcmdlLCBhcyBpbmRpdmlkdWFsIHBhcmFtZXRlcnMuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIGtleWZyYW1lIG9iamVjdC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLWNvbWJpbmUoJG1hcHMuLi4pIHtcbiAgJG5ldy1tYXA6ICgpO1xuXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIG1hcCBwYXNzZWQgaW5cbiAgQGVhY2ggJG1hcCBpbiAkbWFwcyB7XG4gICAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ3N0cmluZycge1xuICAgICAgJG1hcDogY2FsbCgkbWFwKTtcbiAgICB9XG5cbiAgICAkbWFwOiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgaW4gdGhlIG1hcFxuICAgIC8vICRrZXkgaXMgdGhlIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICAvLyAkdmFsdWUgaXMgYSBtYXAgb2YgQ1NTIHByb3BlcnRpZXNcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgICAkbmV3LXZhbHVlOiAoKTtcblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRuZXctbWFwLCAka2V5KSB7XG4gICAgICAgIC8vIElmIHRoZSBtYXAgYWxyZWFkeSBoYXMgdGhlIGtleWZyYW1lICUsIGFwcGVuZCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6IC1tdWktbWVyZ2UtcHJvcGVydGllcyhtYXAtZ2V0KCRuZXctbWFwLCAka2V5KSwgJHZhbHVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSBhIG5ldyBtYXAgd2l0aCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6ICR2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gRmluYWxseSwgbWVyZ2UgdGhlIG1vZGlmaWVkIGtleWZyYW1lIHZhbHVlIGludG8gdGhlIG91dHB1dCBtYXBcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkbmV3LXZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWFrZSBhIG5hbWUgZm9yIHRoZSBrZXlmcmFtZXNcbiAgJC1tdWktY3VzdG9tOiAkLW11aS1jdXN0b20gKyAxICFnbG9iYWw7XG4gICRtYXAtbmFtZTogKG5hbWU6ICdjdXN0b20tI3skLW11aS1jdXN0b219Jyk7XG4gICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICRtYXAtbmFtZSk7XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIHR3byBtYXBzIG9mIENTUyBwcm9wZXJ0aWVzIGludG8gb25lIG1hcC4gSWYgYm90aCBtYXBzIGhhdmUgYSB0cmFuc2Zvcm0gcHJvcGVydHksIHRoZSB2YWx1ZXMgZnJvbSBlYWNoIHdpbGwgYmUgY29tYmluZWQgaW50byBvbmUgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtNYXB9ICRvbmUgLSBGaXJzdCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHBhcmFtIHtNYXB9ICR0d28gLSBTZWNvbmQgbWFwIHRvIG1lcmdlLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1tZXJnZS1wcm9wZXJ0aWVzKCRvbmUsICR0d28pIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRvbmUsIHRyYW5zZm9ybSkgYW5kIG1hcC1oYXMta2V5KCR0d28sIHRyYW5zZm9ybSkge1xuICAgICR0cmFuc2Zvcm06IGpvaW4obWFwLWdldCgkb25lLCB0cmFuc2Zvcm0pLCBtYXAtZ2V0KCR0d28sIHRyYW5zZm9ybSkpO1xuICAgICRvbmU6IG1hcC1tZXJnZSgkb25lLCAodHJhbnNmb3JtOiAkdHJhbnNmb3JtKSk7XG4gICAgJHR3bzogbWFwLXJlbW92ZSgkdHdvLCB0cmFuc2Zvcm0pO1xuICB9XG5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJG9uZSwgJHR3byk7XG59XG4iLCIuZm9vdGVyIHtcblx0YmFja2dyb3VuZDogJGM1O1xuXHRwYWRkaW5nOiA2MHB4IDA7XG5cdGNvbG9yOiAkYzg7XG5cdGZvbnQtc2l6ZTogJHAyO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0cGFkZGluZzogNzBweCAwIDc1cHg7IH1cblxuXHQmX19yb3cge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtcm93KDE2KTtcblxuXHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbC1yb3c7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDI1cHg7IH0gfSB9XG5cblx0Jl9fbG9nbyB7XG5cdFx0aGVpZ2h0OiA2MnB4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2woNCk7XG5cdFx0XHRtYXJnaW4tbGVmdDogMTBweDtcblx0XHRcdG1hcmdpbi1yaWdodDogLTVweDtcblx0XHRcdGhlaWdodDogNzVweDsgfVxuXG5cdFx0c3ZnIHtcblx0XHRcdHdpZHRoOiA5MHB4O1xuXHRcdFx0aGVpZ2h0OiA2MnB4O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdHdpZHRoOiAxMTJweDtcblx0XHRcdFx0aGVpZ2h0OiA3NXB4OyB9IH0gfVxuXG5cdCZfX3NpZ251cCB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1yb3coMTYpO1xuXHRcdFx0bWFyZ2luLXRvcDogMjBweDsgfVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2woNik7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMHB4OyB9IH1cblxuXHQmX19zaWdudXAtZm9ybSB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2woMTQpO1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2wtcG9zKDEpOyB9IH1cblxuXHQmX19zaWdudXAtbGFiZWwge1xuXHRcdGNvbG9yOiAkYzg7XG5cdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRcdGZvbnQtc2l6ZTogJHAyO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMHB4OyB9IH1cblxuXHQmX19zaWdudXAtaW5wdXQge1xuXHRcdGhlaWdodDogMzdweDtcblx0XHRjb2xvcjogJGM1O1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0d2lkdGg6IDcwJTsgfSB9XG5cblx0Jl9fc2lnbnVwLWJ1dHRvbiB7XG5cdFx0QGV4dGVuZCAlYnV0dG9uLXN1YnNjcmliZTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdHdpZHRoOiAyOCU7IH0gfVxuXG5cdC8vIHVzZWQgdG8gZGlzcGxheSBvZmYgY2FudmFzIGlucHV0IHRoYXQgb25seSBhIGJvdCB3b3VsZCBpbnB1dCBpbnRvXG5cdCZfX3NpZ251cC1ib3QtY2F0Y2hlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IC01MDAwcHg7IH1cblxuXHQmX19uYXYge1xuXHRcdEBpbmNsdWRlIGNsZWFyZml4O1xuXHRcdG1hcmdpbi10b3A6IDI1cHg7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbCg0KTtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sLW9mZigxMS41JSk7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMHB4OyB9XG5cblx0XHR1bCB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxMi41JTtcblx0XHRcdHdpZHRoOiAzMS4yNSU7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdFx0d2lkdGg6IDUwJTsgfVxuXG5cdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA5LjI1JTtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdHdpZHRoOiAzNy41JTtcblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdHdpZHRoOiA1MCU7IH0gfSB9XG5cblx0XHRhIHtcblx0XHRcdEBleHRlbmQgJWhvdmVyLTMwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuODtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdGNvbG9yOiAkYzg7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuNjsgfSB9IH1cblxuXHQmX19jb3B5cmlnaHQge1xuXG5cdFx0YSB7XG5cdFx0XHRAZXh0ZW5kICVob3Zlci0zMDtcblx0XHRcdGNvbG9yOiAkYzg7IH1cblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luLXRvcDogNDBweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRmb250LXNpemU6ICRwMjtcblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAwOyB9IH1cblxuXHRcdCYtLWRlc2t0b3Age1xuXHRcdFx0ZGlzcGxheTogbm9uZTsgfVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXG5cdFx0XHQmLS1kZXNrdG9wIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiA1cHg7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdFx0XHRmbG9hdDogbGVmdDsgfVxuXG5cdFx0XHQmLS1tb2JpbGUge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lOyB9IH0gfVxuXG5cdCZfX3NvY2lhbC1saW5rcyB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0bWFyZ2luOiAyNXB4IDAgMTVweDsgfVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA2MHB4OyB9XG5cblx0XHR1bCB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lOyB9XG5cblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR3aWR0aDogNTVweDtcblxuXHRcdFx0c3ZnIHtcblx0XHRcdFx0QGV4dGVuZCAlaG92ZXItMzA7XG5cdFx0XHRcdGhlaWdodDogMjVweDtcblx0XHRcdFx0d2lkdGg6IDI1cHg7IH0gfSB9IH1cbiIsIi8vIEJ1dHRvbiBTdHlsZXNcblxuLy8gYmFzZSBidXR0b24gLSBncmV5XG5cbiVidXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICBib3JkZXI6IDJweCBzb2xpZCAkYzU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjNTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzdweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMzNweDtcbiAgZm9udC1mYW1pbHk6IFwicHJveGltYS1ub3ZhXCI7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogJHAxO1xuICBjb2xvcjogJGM4O1xuXG4gICY6aG92ZXIge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYzU7IH0gfVxuXG4vLyBzdWJzY3JpYmUgYnV0dG9uXG5cbiVidXR0b24tc3Vic2NyaWJlIHtcbiAgQGV4dGVuZCAlYnV0dG9uO1xuICBib3JkZXI6IDJweCBzb2xpZCAkYzg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogJHAyO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjODsgfSB9XG5cbi8vIHZpZXcgY2FydCBidXR0b25cblxuJWJ1dHRvbi12aWV3LWNhcnQge1xuICBAZXh0ZW5kICVidXR0b247XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogJHAyOyB9XG5cbi8vIGFkZCB0byBjYXJ0IGJ1dHRvblxuXG4lYnV0dG9uLWFkZC10by1jYXJ0IHtcbiAgQGV4dGVuZCAlYnV0dG9uO1xuICBmb250LXNpemU6ICRwMjsgfVxuXG4vLyBjb2xvcmVkIGJ1dHRvbnMgKioqIGRvIG5vdCBleHRlbmQgYnV0dG9uIHdpdGhpbiwgdGhhdCB3aWxsIGJlIGhhbmRsZWQgYnkgYnV0dG9uIHR5cGUgKHN1YnNjcmliZSwgdmlldyBjYXJ0LCBldGMuKVxuXG4lYnV0dG9uLWJsdWUge1xuICBib3JkZXI6IDJweCBzb2xpZCAkYzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjMztcbiAgY29sb3I6ICRjODtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJGMzOyB9IH1cblxuJWJ1dHRvbi1ncmVlbiB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICRjMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGMyO1xuICBjb2xvcjogJGM4O1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYzI7IH0gfVxuXG4lYnV0dG9uLXB1cnBsZSB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICRjNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGM0O1xuICBjb2xvcjogJGM4O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJGM0OyB9IH1cblxuJWJ1dHRvbi1vcmFuZ2Uge1xuICBib3JkZXI6IDJweCBzb2xpZCAkYzE7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjMTtcbiAgY29sb3I6ICRjODtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJGMxOyB9IH1cbiIsIi5wcm9kdWN0IHtcblxuXHQmX19oZXJvIHtcblx0XHRAaW5jbHVkZSBjbGVhcmZpeDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogNTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBib3R0b207XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiA3NTVweDtcblxuXHRcdFx0Lm1peC1uby0xICYge1xuXHRcdFx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWZpbGUoXCJvcHVzLWdyb3dzLXByb2R1Y3RwYWdlLWhlcm8taW1hZ2UuanBnXCIpOyB9XG5cblx0XHRcdC5taXgtbm8tMiAmIHtcblx0XHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1wcm9kdWN0cGFnZS1oZXJvLWltYWdlMi5qcGdcIik7IH1cblxuXHRcdFx0Lm1peC1uby0zICYge1xuXHRcdFx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWZpbGUoXCJvcHVzLWdyb3dzLXByb2R1Y3RwYWdlLWhlcm8taW1hZ2UzLmpwZ1wiKTsgfVxuXG5cdFx0XHQuYW1lbmRtZW50ICYge1xuXHRcdFx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWZpbGUoXCJvcHVzLWdyb3dzLXByb2R1Y3RwYWdlLWhlcm8taW1hZ2U0LmpwZ1wiKTsgfSB9XG5cblx0XHQmLS1tb2JpbGUge1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMzUzcHg7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTsgfVxuXG5cdFx0XHQubWl4LW5vLTEgJiB7XG5cdFx0XHRcdEBpbmNsdWRlIGJhY2tncm91bmQtZmlsZShcIm9wdXMtZ3Jvd3MtcHJvZHVjdHBhZ2UtaGVyby1pbWFnZS1tb2JpbGUuanBnXCIpOyB9XG5cblx0XHRcdC5taXgtbm8tMiAmIHtcblx0XHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1wcm9kdWN0cGFnZS1oZXJvLWltYWdlMi1tb2JpbGUuanBnXCIpOyB9XG5cblx0XHRcdC5taXgtbm8tMyAmIHtcblx0XHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1wcm9kdWN0cGFnZS1oZXJvLWltYWdlMy1tb2JpbGUuanBnXCIpOyB9XG5cblx0XHRcdC5hbWVuZG1lbnQgJiB7XG5cdFx0XHRcdEBpbmNsdWRlIGJhY2tncm91bmQtZmlsZShcIm9wdXMtZ3Jvd3MtcHJvZHVjdHBhZ2UtaGVyby1pbWFnZTQtbW9iaWxlLmpwZ1wiKTsgfSB9IH1cblxuXHQmX19jb250YWluZXIge1xuXHRcdEBpbmNsdWRlIGdyaWQtcm93KDE2LCAyMHB4KTtcblx0XHRAaW5jbHVkZSBncmlkLWNvbCgxNCk7XG5cdFx0QGluY2x1ZGUgZ3JpZC1jb2wtb2ZmKDEpO1xuXHRcdHBhZGRpbmctdG9wOiA2MHB4O1xuXHRcdHBhZGRpbmctYm90dG9tOiA1NXB4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2woNSk7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbC1vZmYoNjElKTtcblx0XHRcdHBhZGRpbmctdG9wOiAxMDVweDsgfSB9XG5cblx0Jl9fc3VidGl0bGUge1xuXHRcdGNvbG9yOiAkYzU7XG5cdFx0Zm9udC1mYW1pbHk6IFwiaGFsYW50XCI7IH1cblxuXHQmX190aXRsZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTdweDtcblx0XHRmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjsgfVxuXG5cdC8vIHByb2R1Y3Qtc3BlY2lmaWMgY29sb3JzXG5cdCZfX2NvbG9yIHtcblx0XHQubWl4LW5vLTEgJiB7XG5cdFx0XHRjb2xvcjogJGMzO1xuXHRcdFx0ZmlsbDogJGMzOyB9XG5cblx0XHQubWl4LW5vLTIgJiB7XG5cdFx0XHRjb2xvcjogJGMyO1xuXHRcdFx0ZmlsbDogJGMyOyB9XG5cblx0XHQubWl4LW5vLTMgJiB7XG5cdFx0XHRjb2xvcjogJGM0O1xuXHRcdFx0ZmlsbDogJGM0OyB9XG5cblx0XHQuYW1lbmRtZW50ICYge1xuXHRcdFx0Y29sb3I6ICRjMTtcblx0XHRcdGZpbGw6ICRjMTsgfSB9XG5cblx0Jl9fcHJpY2Uge1xuXHRcdGNvbG9yOiAkYzU7XG5cdFx0Zm9udC1mYW1pbHk6IFwiaGFsYW50XCI7IH1cblxuXHQmX19zaGlwcGluZy1vZmZlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRvcDogLTMwcHg7XG5cdFx0bGVmdDogMTAwcHg7XG5cdFx0d2lkdGg6IDIwMHB4O1xuXHRcdGNvbG9yOiAkYzU7XG5cdFx0Zm9udC1zaXplOiAkcDI7XG5cdFx0Zm9udC1zdHlsZTogaXRhbGljOyB9XG5cblx0Jl9fb3ZlcnZpZXctbGluayB7XG5cdFx0bWFyZ2luLXRvcDogOHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0Y29sb3I6ICRjNTtcblx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdGZvbnQtc2l6ZTogJHAyO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0bWFyZ2luLXRvcDogMTBweDtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0Ji5hY3RpdmU6OmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogXCJfX19fXCI7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAxMHB4O1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfSB9XG5cblx0Jl9fb3ZlcnZpZXctY29udGVudCB7XG5cdFx0bWF4LXdpZHRoOiAzODBweDtcblx0XHRsaW5lLWhlaWdodDogMS40O1xuXHRcdGNvbG9yOiAkYzU7XG5cdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRmb250LXNpemU6ICRwMjtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdG92ZXJmbG93LXk6IHNjcm9sbDtcblx0XHRcdGhlaWdodDogMTA4cHg7XG5cblx0XHRcdC8vIGZvcmNlIHNjcm9sbCBkaXNwbGF5XG5cdFx0XHQmOjotd2Via2l0LXNjcm9sbGJhciB7XG5cdFx0XHQgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRcdFx0ICAgIHdpZHRoOiA3cHg7IH1cblxuXHRcdFx0Jjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuXHRcdFx0ICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRcdCAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC41KTtcblx0XHRcdCAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuNSk7IH0gfSB9XG5cblx0Jl9fZGV0YWlscyxcblx0Jl9fc2l6ZSB7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRjNztcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGM3O1xuXHRcdGxpbmUtaGVpZ2h0OiA2MHB4O1xuXHRcdGNvbG9yOiAkYzU7XG5cdFx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0XHRmb250LXNpemU6ICRwMjtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7IH1cblxuXHRcdHN2ZyB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDQlO1xuXHRcdFx0d2lkdGg6IDI1cHg7XG5cdFx0XHRoZWlnaHQ6IDYwcHg7IH1cblxuXHRcdCYtbGluayB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMTVweDtcblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XHRmb250LXdlaWdodDogODAwO1xuXG5cdFx0XHRcdCYuYWN0aXZlOjphZnRlciB7XG5cdFx0XHRcdFx0Y29udGVudDogXCJfX19fXCI7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdHRvcDogMTBweDtcblx0XHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRcdG1hcmdpbjogYXV0bztcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfSB9XG5cblx0XHQvLyBoaWRlIGFuZCB0b2dnbGUgd2l0aCBqUXVlcnlcblx0XHQmLS1jb250cmFjdCB7XG5cdFx0XHRkaXNwbGF5OiBub25lOyB9IH1cblxuXHQmX19kZXRhaWxzIHtcblx0XHRib3JkZXItYm90dG9tOiBub25lOyB9XG5cblx0Jl9fZGV0YWlscy1jb250ZW50LS1tb2JpbGUsXG5cdCZfX3NpemUtY29udGVudC0tbW9iaWxlIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdHRyYW5zaXRpb246IGFsbCAxcztcblx0XHRtYXgtaGVpZ2h0OiAwcHg7IC8vIHVzZSBpbnN0ZWFkIG9mIGhlaWdodCBmb3Igc21vb3RoIHRyYW5zaXRpb25cblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjQ7XG5cdFx0Y29sb3I6ICRjNTtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdGZvbnQtc2l6ZTogJHAyOyB9XG5cblx0Jl9fZGV0YWlscy1jb250ZW50LFxuXHQmX19zaXplLWNvbnRlbnQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRvdmVyZmxvdy15OiBzY3JvbGw7XG5cdFx0bWF4LXdpZHRoOiAzODBweDtcblx0XHRoZWlnaHQ6IDEwOHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjQ7XG5cdFx0Y29sb3I6ICRjNTtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdGZvbnQtc2l6ZTogJHAyO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cblx0XHQvLyBmb3JjZSBzY3JvbGwgZGlzcGxheVxuXHRcdCY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHQgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRcdCAgICB3aWR0aDogN3B4OyB9XG5cblx0XHQmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG5cdFx0ICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHQgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuNSk7XG5cdFx0ICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC41KTsgfSB9XG5cblx0Jl9fY2hvb3NlLXZhcmlhbnQge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXG5cdFx0bGFiZWwge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtNXB4O1xuXHRcdFx0Ly8gYm9yZGVyOiAycHggc29saWQgJGM1XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkYzU7XG5cdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XG5cdFx0XHRwYWRkaW5nOiAwIDEwcHg7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDMzcHg7XG5cdFx0XHRmb250LXNpemU6ICRwMjtcblx0XHRcdGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuXHRcdGJyIHtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoMzMwIHVwKSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7IH1cblxuXHRcdFx0KyBsYWJlbFtmb3I9XCJxdWFudGl0eVwiXSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDIwcHg7IH0gfVxuXG5cdFx0Ly8gaGlkZGVuIHNlbGVjdCB0byBob2xkIHF1YW50aXR5IGNob3NlbiBpbiBjdXN0b20gZHJvcGRvd25cblx0XHQvLyBjdXN0b20gc3R5bGVzIHNldCBpbiBuaWNlLXNlbGVjdC5zY3NzXG5cdFx0c2VsZWN0IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5cdC8vIG92ZXJpZGUgdGhlIG5pY2Ugc2VsZWN0IGRyb3Bkb3duIHdoZW4gb25seSBvbmUgc2l6ZSB2YXJpYW50XG5cdCZfX3NpbmdsZS1zaXplIHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7IH1cblxuXHRcdC5jdXJyZW50IHtcblx0XHRcdHBhZGRpbmc6IDA7IH0gfVxuXG5cdCZfX2FkZC10by1jYXJ0IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblxuXHRcdGJ1dHRvbiB7XG5cdFx0XHRAZXh0ZW5kICVidXR0b24tYWRkLXRvLWNhcnQ7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDMlO1xuXHRcdFx0d2lkdGg6IDEyNXB4O1xuXG5cdFx0XHQubWl4LW5vLTEgJiB7XG5cdFx0XHRcdEBleHRlbmQgJWJ1dHRvbi1ibHVlOyB9XG5cblx0XHRcdC5taXgtbm8tMiAmIHtcblx0XHRcdFx0QGV4dGVuZCAlYnV0dG9uLWdyZWVuOyB9XG5cblx0XHRcdC5taXgtbm8tMyAmIHtcblx0XHRcdFx0QGV4dGVuZCAlYnV0dG9uLXB1cnBsZTsgfVxuXG5cdFx0XHQuYW1lbmRtZW50ICYge1xuXHRcdFx0XHRAZXh0ZW5kICVidXR0b24tb3JhbmdlOyB9XG5cblx0XHRcdC8vIHdpbGwgaG9sZCBzdGF0dXMgbWVzc2FnZSBvZiBhamF4IGFkZCB0byBjYXJ0XG5cdFx0XHQ+IHNwYW4ge1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogN3B4O1xuXHRcdFx0XHRyaWdodDogLTE0MHB4O1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMS40O1xuXHRcdFx0XHRjb2xvcjogJGM1O1xuXHRcdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0XHRmb250LXNpemU6ICRwMjtcblx0XHRcdFx0Zm9udC1zdHlsZTogaXRhbGljOyB9IH0gfVxuXG5cdCZfX3ZpZGVvIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDc5NXB4O1xuXG5cdFx0dmlkZW8ge1xuXHRcdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtaW4td2lkdGg6IDEwMCU7XG5cdFx0XHRtaW4taGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHR6LWluZGV4OiAtMjAwO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTsgfVxuXG5cdFx0aDEge1xuXHRcdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRjb2xvcjogJGM4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDgwMDsgfVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0ZGlzcGxheTogbm9uZTsgfSB9IH1cbiIsIi5jb250YWN0LXVzIHtcblx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjNztcblxuXHQmX19pbnRybyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGMzO1xuXHRcdHBhZGRpbmc6IDc1cHggMCAzNXB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRjb2xvcjogJGM4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0cGFkZGluZy10b3A6IDEwMHB4O1xuXHRcdFx0aGVpZ2h0OiA2NDVweDsgfVxuXG5cdFx0aDEge1xuXHRcdFx0bWFyZ2luOiAwIDAgNDBweDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRtYXJnaW46IDAgMCA2MHB4OyB9IH0gfVxuXG5cdCZfX2JveGVzIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRtYXJnaW46IDAgYXV0bzsgfSB9XG5cblx0Jl9fYm94IHtcblx0XHRwYWRkaW5nLWJvdHRvbTogNDBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbjogMCAtNXB4IDA7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuXHRcdGgzIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0Qm9vay1CYXNlXCI7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDsgfSB9XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0XHRmb250LXNpemU6ICRwMTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyN3B4OyB9XG5cblx0XHRwICsgcCB7XG5cdFx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDsgfVxuXG5cdFx0Ji0tdHdlZXQge1xuXG5cdFx0XHRzdmcge1xuXHRcdFx0XHRoZWlnaHQ6IDU1cHg7IH0gfVxuXG5cdFx0Ji0tZm9sbG93IHtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuIH1cdFx0XHRcdC8vIGhlaWdodDogMTczcHhcblxuXHRcdFx0c3ZnIHtcblx0XHRcdFx0aGVpZ2h0OiA2MHB4OyB9IH1cblxuXHRcdCYtLWNhbGwge1xuXG5cdFx0XHRzdmcge1xuXHRcdFx0XHRoZWlnaHQ6IDYwcHg7IH0gfSB9XG5cblx0Jl9faWNvbiB7XG5cdFx0aGVpZ2h0OiA4MHB4OyB9XG5cblx0Jl9fc29jaWFsLWxpbmtzIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAyNXB4OyB9XG5cblx0XHR1bCB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lOyB9XG5cblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRtYXJnaW46IDAgMXB4O1xuXHRcdFx0d2lkdGg6IDUwcHg7XG5cblx0XHRcdHN2ZyB7XG5cdFx0XHRcdEBleHRlbmQgJWhvdmVyLTMwO1xuXHRcdFx0XHRoZWlnaHQ6IDI1cHg7XG5cdFx0XHRcdHdpZHRoOiAyNXB4OyB9IH0gfVxuXG5cdCZfX2Zvcm0tY29udGFpbmVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGM4O1xuXHRcdHBhZGRpbmc6IDY1cHggNSUgNzVweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHR0b3A6IC0xNzVweDtcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0cGFkZGluZzogNjVweCAxMC42JSA3NXB4O1xuXHRcdFx0d2lkdGg6IDg3LjUlO1xuXHRcdFx0bWF4LXdpZHRoOiAxMDA2cHg7IH1cblxuXHRcdGgxIHtcblx0XHRcdG1hcmdpbjogMCAwIDIwcHg7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7XG5cdFx0XHRjb2xvcjogJGMzO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDMwcHg7IH0gfSB9XG5cblx0Jl9fY29udGVudCB7XG5cdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRmb250LXNpemU6ICRwMjtcblx0XHRsaW5lLWhlaWdodDogMS40O1xuXHRcdHBhZGRpbmc6IDAgNi4yNSUgMzBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdHBhZGRpbmc6IDAgMCAzNXB4OyB9IH1cblxuXHQmX19mb3JtIHt9XG5cblx0Jl9fZm9ybS1yZXNwb25zZSB7XG5cdFx0Ly8gY292ZXIgdGhlIGZvcm0gY29tcGxldGVseSB3aXRoIHJlc3BvbnNlIGNvbnRlbnRcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjODtcblxuXHRcdHN2ZyB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMzBweDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiAxMTBweDsgfVxuXG5cdFx0aDEge1xuXHRcdFx0bWFyZ2luOiA1MHB4IDAgMzBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiA0MnB4O1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiO1xuXHRcdFx0Y29sb3I6ICRjMzsgfVxuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA2NXB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRmb250LXNpemU6ICRwMjtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuXHRcdC5jZW50ZXJlZC1ib3gge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblx0XHRcdHdpZHRoOiA5MCU7IH1cblxuXHRcdCYtLXN1Y2Nlc3Mge31cblxuXHRcdCYtLWVycm9yIHt9IH1cblxuXHQmX19iYWNrLXRvLWhvbWUge1xuXHRcdEBleHRlbmQgJWJ1dHRvbjtcblx0XHR3aWR0aDogMjc1cHg7XG5cdFx0Zm9udC1zaXplOiAkcDI7IH1cblxuXHQmX19mb3JtLXdyYXBwZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjODtcblxuXHRcdGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuXHRcdGlucHV0W3R5cGU9XCJlbWFpbFwiXSB7XG5cdFx0XHRib3JkZXI6IDJweCAkYzMgc29saWQ7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYzc7XG5cdFx0XHRoZWlnaHQ6IDUwcHg7XG5cdFx0XHRmb250LXNpemU6ICRwMjtcblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdGNvbG9yOiAkYzU7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMS41cmVtOyB9IH0gLy8gdG8gb3ZlcnJpZGUgc2F0IHN0eWxlc1xuXG5cdFx0dGV4dGFyZWEsXG5cdFx0dGV4dGFyZWE6Zm9jdXMge1xuXHRcdFx0Ym9yZGVyOiAycHggJGMzIHNvbGlkO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGM3O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfSB9IC8vIHRvIG92ZXJyaWRlIHNhdCBzdHlsZXNcblxuXHRcdC8vIGhpZGUgZGVmYXVsdCBhbmQgdXNlIGN1c3RvbSBjaGVja2JveFxuXHRcdGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG5cdFx0XHRkaXNwbGF5OiBub25lOyB9XG5cblx0XHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCB7XG5cdFx0XHRwYWRkaW5nOiAxNXB4IDAgMjVweDtcblx0XHRcdGZvbnQtc2l6ZTogJHAyO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRjb2xvcjogJGMzOyB9XG5cblx0XHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDpiZWZvcmUge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwLjVlbTtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkICRjMztcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRmb250OiAxNnB4LzFlbSBzYW5zLXNlcmlmO1xuXHRcdFx0d2lkdGg6IDEuMmVtO1xuXHRcdFx0aGVpZ2h0OiAxLjJlbTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRjb250ZW50OiBcIlxcMDBhMFwiOyB9XG5cblx0XHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG5cdFx0XHRjb2xvcjogJGMzO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Y29udGVudDogXCJcXDI3MTNcIjsgfVxuXG5cdFx0aW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG5cdFx0ICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5cdFx0bGFiZWwge1xuXHRcdCAgY3Vyc29yOiBwb2ludGVyOyB9IH1cblxuXHQmX19maXJzdC1uYW1lIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiA0OSU7IH0gfVxuXG5cdCZfX2xhc3QtbmFtZSB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0d2lkdGg6IDQ5JTsgfSB9XG5cblx0Jl9fZW1haWwge1xuXHRcdGhlaWdodDogMzdweDtcblx0XHRjb2xvcjogJGM1O1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5cdCZfX3N1Ym1pdCB7XG5cdFx0QGV4dGVuZCAlYnV0dG9uO1xuXHRcdEBleHRlbmQgJWJ1dHRvbi1ibHVlO1xuXHRcdGZvbnQtc2l6ZTogJHAyO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdHdpZHRoOiAyNzVweDsgfSB9IH1cbiIsIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjIuMFxuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gU2FzcyB1dGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vIEdsb2JhbCB2YXJpYWJsZXMgYW5kIHN0eWxlc1xuQGltcG9ydCAnZ2xvYmFsJztcblxuLy8gQ29tcG9uZW50c1xuQGltcG9ydCAnZ3JpZC9ncmlkJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleC12aWRlbyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoJGZsZXg6IGZhbHNlKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gIH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC12aWRlbztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcblxuICBAaWYgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Nzcy1saW50OmRpc2FibGUgQ29sb3JWYXJpYWJsZSwgUXVhbGlmeWluZ0VsZW1lbnQsIFZlbmRvclByZWZpeFxuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzIxOTllOCxcbiAgc2Vjb25kYXJ5OiAjNzc3LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2VjNTg0MCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG4kcHJpbWFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcbiRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KTtcbiRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpO1xuJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZyk7XG4kYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xuXG4vLyBSZW1vdmUgdGhpcyBpbiA2LjNcbiQtemYtbWVudS1pY29uLWltcG9ydGVkOiBmYWxzZTtcbiQtemYtZmxleC1jbGFzc2VzLWltcG9ydGVkOiBmYWxzZTtcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIC16Zi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOmJlZm9yZSxcbiAgKjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcblxuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJZFNlbGVjdG9yXG4gICNtYXBfY2FudmFzLFxuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcbiAgLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4gIC8qKlxuICAgKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICAgKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuICAgKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gICAqL1xuXG4gIGh0bWwge1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gICAqL1xuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAgICogYW5kIEZpcmVmb3guXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gICAqL1xuXG4gIGFydGljbGUsXG4gIGFzaWRlLFxuICBkZXRhaWxzLFxuICBmaWdjYXB0aW9uLFxuICBmaWd1cmUsXG4gIGZvb3RlcixcbiAgaGVhZGVyLFxuICBoZ3JvdXAsXG4gIG1haW4sXG4gIG1lbnUsXG4gIG5hdixcbiAgc2VjdGlvbixcbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvKipcbiAgICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAgICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgKi9cblxuICBhdWRpbyxcbiAgY2FudmFzLFxuICBwcm9ncmVzcyxcbiAgdmlkZW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gICAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gICAqL1xuXG4gIGF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICAgKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gICAqL1xuXG4gIFtoaWRkZW5dLFxuICB0ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8qIExpbmtzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgKi9cblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4gICAqIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiAgICovXG5cbiAgYTphY3RpdmUsXG4gIGE6aG92ZXIge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5cbiAgYixcbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGRmbiB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAgICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICAgKi9cblxuICBtYXJrIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmYwO1xuICAgIGNvbG9yOiAjMDAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBzdWIsXG4gIHN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIHN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG4gIH1cblxuICBzdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgfVxuXG4gIC8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gICAqL1xuXG4gIGltZyB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICAgKi9cblxuICBzdmc6bm90KDpyb290KSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAxZW0gNDBweDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gICAqL1xuXG4gIGhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cblxuICAvKipcbiAgICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBjb2RlLFxuICBrYmQsXG4gIHByZSxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICB9XG5cbiAgLyogRm9ybXNcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAgICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICAgKi9cblxuICAvKipcbiAgICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICAgKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAgICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAgICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICBtYXJnaW46IDA7IC8qIDMgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAgICovXG5cbiAgYnV0dG9uIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gICAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gICAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gICAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAgICovXG5cbiAgYnV0dG9uLFxuICBzZWxlY3Qge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gICAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICAgKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gICAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gICAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAgICovXG5cbiAgYnV0dG9uLFxuICBodG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbiAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gICAqL1xuXG4gIGJ1dHRvbltkaXNhYmxlZF0sXG4gIGh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICAgKi9cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIGlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gICAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICAgKi9cblxuICBpbnB1dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gICAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gICAqXG4gICAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gICAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gICAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gICAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAgICovXG5cbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICAgKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gICAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAgICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICAgKi9cblxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICAgKiBbTk9URV0gV2UgZG9uJ3QgZW5hYmxlIHRoaXMgcnVsZXNldCBpbiBGb3VuZGF0aW9uLCBiZWNhdXNlIHdlIHdhbnQgdGhlIDxmaWVsZHNldD4gZWxlbWVudCB0byBoYXZlIHBsYWluIHN0eWxpbmcuXG4gICAqL1xuXG4gIC8qIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICB9ICovXG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAgICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICAgKi9cblxuICBsZWdlbmQge1xuICAgIGJvcmRlcjogMDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICAgKi9cblxuICB0ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAvKipcbiAgICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICAgKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAgICovXG5cbiAgb3B0Z3JvdXAge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLyogVGFibGVzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAgICovXG5cbiAgdGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIH1cblxuICB0ZCxcbiAgdGgge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIE91dHB1dHMgQ1NTIGNsYXNzZXMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIGZvdW5kYXRpb24tZ3JpZChcbiAgJHJvdzogJ3JvdycsXG4gICRjb2x1bW46ICdjb2x1bW4nLFxuICAkY29sdW1uLXJvdzogJ2NvbHVtbi1yb3cnLFxuICAkcHVzaDogJ3B1c2gnLFxuICAkcHVsbDogJ3B1bGwnLFxuICAkY2VudGVyOiAnY2VudGVyZWQnLFxuICAkdW5jZW50ZXI6ICd1bmNlbnRlcmVkJyxcbiAgJGNvbGxhcHNlOiAnY29sbGFwc2UnLFxuICAkdW5jb2xsYXBzZTogJ3VuY29sbGFwc2UnLFxuICAkb2Zmc2V0OiAnb2Zmc2V0JyxcbiAgJGVuZDogJ2VuZCcsXG4gICRleHBhbmRlZDogJ2V4cGFuZGVkJ1xuKSB7XG4gIC8vIFJvd1xuICAuI3skcm93fSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAvLyBDb2xsYXBzaW5nXG4gICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmICYge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3JpZC1jb2x1bW4tZ3V0dGVyKTtcblxuICAgICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIChmdWxsLXdpZHRoKSByb3dcbiAgICAmLiN7JGV4cGFuZGVkfSB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG5cbiAgICAgIC4jeyRyb3d9IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLiN7JGNvbHVtbn0ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sO1xuXG4gICAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAgICYuI3skZW5kfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBmbG9hdDogbm9uZTtcblxuICAgIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAgIC4jeyRyb3d9ICYge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIENvbHVtbiB3aWR0aFxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXNpemUoJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgIEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygkaSk7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoLSRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LSN7JG9mZnNldH0tI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1vZmYoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1sYXlvdXQoJGksIFwiLiN7JGNvbHVtbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS0jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XG5cbiAgICAgIC4jeyRyb3d9IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LSN7JHVuY29sbGFwc2V9IHtcbiAgICAgICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRncmlkLWNvbHVtbi1ndXR0ZXIsICQtemYtc2l6ZSk7XG5cbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXIpOyB9XG4gICAgfVxuXG4gICAgLy8gUG9zaXRpb25pbmdcbiAgICAuI3skLXpmLXNpemV9LSN7JGNlbnRlcn0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLy8gR3V0dGVyIGFkanVzdG1lbnRcbiAgICAuI3skLXpmLXNpemV9LSN7JHVuY2VudGVyfSxcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1c2h9LTAsXG4gICAgLiN7JC16Zi1zaXplfS0jeyRwdWxsfS0wIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXVucG9zO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkY29sdW1uID09ICdjb2x1bW4nIHtcbiAgICAuY29sdW1ucyB7XG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBQbGFjZWhvbGRlckluRXh0ZW5kXG4gICAgICBAZXh0ZW5kIC5jb2x1bW47XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJGdyaWQtcm93LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIHJvdy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLCBpbiBjYXNlIHRoZSByb3cgaXMgbmVzdGVkLlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkd2lkdGg6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNmOiB0cnVlLFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXIpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfG51bGx9ICRndXR0ZXIgW251bGxdIC0gR3V0dGVyIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyB0aGUgbWFyZ2lucy4gU2V0IHRvIGBudWxsYCB0byByZWZlciB0byB0aGUgcmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIHtcbiAgICAkZ3V0dGVyOiAoc21hbGw6ICRndXR0ZXIpO1xuICB9XG5cbiAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3V0dGVyIHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygkdmFsdWUpIC8gMiAqIC0xO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xuICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXI7XG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXI7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSB3aWR0aCBvZiBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHdpZHRoIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggdG8gbWFrZSB0aGUgY29sdW1uLiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIHdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1zaXplKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1zaXplXG5AbWl4aW4gZ3JpZC1jb2wtc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBzdHJpbmcgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgJHdpZHRoOiAwJTtcblxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xuICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuXG4gIC8vIEd1dHRlcnNcbiAgQGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ21hcCcge1xuICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGd1dHRlciB7XG4gICAgICAkcGFkZGluZzogcmVtLWNhbGMoJHZhbHVlKSAvIDI7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJGd1dHRlcikgPiAwIHtcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gIH1cblxuICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcbiAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4gcm93LiBUaGlzIGlzIHRoZSBlcXVpdmFsZW50IG9mIGFkZGluZyBgLnJvd2AgYW5kIGAuY29sdW1uYCB0byB0aGUgc2FtZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gV2lkdGggb2YgdGhlIGd1dHRlcnMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIGNvbHVtbiByb3cuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcm93KFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRndXR0ZXI6ICRndXR0ZXIpO1xuXG4gICYsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQGZ1bmN0aW9uIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQHJldHVybiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBtaXhpbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcm93KCRndXR0ZXIpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcG9zaXRpb24gLSBEaXJlY3Rpb24gYW5kIGFtb3VudCB0byBtb3ZlLiBUaGUgY29sdW1uIHdpbGwgbW92ZSBlcXVhbCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBjb3VudCBzcGVjaWZpZWQuIEEgcG9zaXRpdmUgbnVtYmVyIHdpbGwgcHVzaCB0aGUgY29sdW1uIHRvIHRoZSByaWdodCwgd2hpbGUgYSBuZWdhdGl2ZSBudW1iZXIgd2lsbCBwdWxsIGl0IHRvIHRoZSBsZWZ0LlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBjZW50ZXIge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKS4gRW50ZXIgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIsIG9yIGNlbnRlci4nO1xuICB9XG59XG5cbi8vLyBSZXNldCBhIHBvc2l0aW9uIGRlZmluaXRpb24uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQgYnkgYCRuYCBjb2x1bW5zLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gV2lkdGggdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdyaWQtY29sdW1uKCRuKTtcbn1cblxuLy8vIERpc2FibGUgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGxhc3QgY29sdW1uIGluIGEgcm93IGFsaWduaW5nIHRvIHRoZSBvcHBvc2l0ZSBlZGdlLlxuQG1peGluIGdyaWQtY29sdW1uLWVuZCB7XG4gIC8vIFRoaXMgZXh0cmEgc3BlY2lmaWNpdHkgaXMgcmVxdWlyZWQgZm9yIHRoZSBwcm9wZXJ0eSB0byBiZSBhcHBsaWVkXG4gICY6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC1wb3MoJHBvc2l0aW9uKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bnBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bnBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtdW5wb3Mge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bnBvc2l0aW9uO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tb2Zmc2V0KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1vZmZzZXRcbkBtaXhpbiBncmlkLWNvbC1vZmYoJG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWVuZCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZW5kXG5AbWl4aW4gZ3JpZC1jb2wtZW5kIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZW5kO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY29sdW1uJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuQG1peGluIGdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICAmID4gI3skc2VsZWN0b3J9IHtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgxLyRuKTtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuXG4gICAgJjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgjeyRufW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBleHRyYSBDU1MgdG8gYmxvY2sgZ3JpZCBjaGlsZHJlbiBzbyB0aGUgbGFzdCBpdGVtcyBpbiB0aGUgcm93IGNlbnRlciBhdXRvbWF0aWNhbGx5LiBBcHBseSB0aGlzIHRvIHRoZSBjb2x1bW5zLCBub3QgdGhlIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBpdGVtcyB0aGF0IGFwcGVhciBpbiBlYWNoIHJvdy5cbkBtaXhpbiBncmlkLWxheW91dC1jZW50ZXItbGFzdCgkbikge1xuICBAZm9yICRpIGZyb20gMSB0byAkbiB7XG4gICAgQGlmICRpID09IDEge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gMTAwLyRuICogJGkpIC8gMiAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkgb3Igbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gIEBlcnJvciAnWW91ciBsaXN0IG9mIGJyZWFrcG9pbnRzIChkZWZpbmVkIGluICRicmVha3BvaW50cykgbXVzdCBpbmNsdWRlIG9uZSBuYW1lZCBcInNtYWxsXCIgYW5kIG9uZSBuYW1lZCBcIm1lZGl1bVwiLic7XG59XG5AZWxzZSBpZiBtYXAtZ2V0KCRicmVha3BvaW50cywgc21hbGwpICE9IDAge1xuICBAZXJyb3IgJ1lvdXIgXCJzbWFsbFwiIGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogc21hbGwpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuXG4gIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgQGlmICRzdHIgPT0gJycge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgQGVsc2Uge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuICAvLyBTdG9yZSB0aGUgdmFsdWVzIG9mIHRoZSBtYXAgYXMgYSBsaXN0LCBzbyB3ZSBjYW4gYWNjZXNzIHRoZW0gd2l0aCBudGhcbiAgJHZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcblxuICAvLyBHaGV0dG8gZm9yIGxvb3BcbiAgJGk6IDE7XG4gICRmb3VuZDogZmFsc2U7XG4gIEBlYWNoICR2YWwgaW4gbWFwLWtleXMoJG1hcCkge1xuICAgIEBpZiAkZm91bmQgPT0gZmFsc2Uge1xuICAgICAgQGlmICgka2V5ID09ICR2YWwpIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfVxuICAgICAgJGk6ICRpICsgMTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAkaSA+IGxlbmd0aCgkbWFwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBudGgoJHZhbHVlcywgJGkpO1xuICB9XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAuIElmIHRoZSBjb25maWcgbWFwIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC4gSWYgdGhlIGNvbmZpZyBtYXAgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIElucHV0IGNvbmZpZyBtYXAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuLy8gTGVnYWN5IGJyZWFrcG9pbnQgdmFyaWFibGVzXG4vLyBUaGVzZSB3aWxsIGJlIHJlbW92ZWQgaW4gNi4zXG4kc21hbGwtdXA6IG51bGw7XG4kc21hbGwtb25seTogbnVsbDtcbiRtZWRpdW0tdXA6IG51bGw7XG4kbWVkaXVtLW9ubHk6IG51bGw7XG4kbGFyZ2UtdXA6IG51bGw7XG4kbGFyZ2Utb25seTogbnVsbDtcbiR4bGFyZ2UtdXA6IG51bGw7XG4keGxhcmdlLW9ubHk6IG51bGw7XG4keHhsYXJnZS11cDogbnVsbDtcbiR4eGxhcmdlLW9ubHk6IG51bGw7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPuKAlDxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFNpemVzIG9mIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc2l6ZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXNpemVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogMjQsXG4gICAgJ2gyJzogMjAsXG4gICAgJ2gzJzogMTksXG4gICAgJ2g0JzogMTgsXG4gICAgJ2g1JzogMTcsXG4gICAgJ2g2JzogMTYsXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6IDQ4LFxuICAgICdoMic6IDQwLFxuICAgICdoMyc6IDMxLFxuICAgICdoNCc6IDI1LFxuICAgICdoNSc6IDIwLFxuICAgICdoNic6IDE2LFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlb2NyYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogJGhlYWRlci1tYXJnaW4tYm90dG9tO1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWxpbmVoZWlnaHQ7XG5cbiAgICBzbWFsbCB7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzaXplc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAgICN7JGhlYWRlcn0ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoJGZvbnQtc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2l0YXRpb25zXG4gIGNpdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJztcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIge1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gIH1cblxuICAvLyBDb2RlXG4gIGNvZGUge1xuICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRjb2RlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xuXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWhlbHBlcnNcbi8vLy9cblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRvcCBtYXJnaW4gZm9yIHN1YmhoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWhlbHBlcnMge1xuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXG4gIC8vIE1ha2Ugc3VyZSB5b3UgcGFpciB0aGUgdHdvIGVsZW1lbnRzIGluIGEgPGhlYWRlcj4gZWxlbWVudCwgbGlrZSB0aGlzOlxuICAvLyA8aGVhZGVyPlxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cbiAgLy8gICA8aDI+U3ViaGVhZGluZzwvaDI+XG4gIC8vIDwvaGVhZGVyPlxuICAuc3ViaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLW1hcmdpbi10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tO1xuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIC8vIFVzZSB0byByZW1vdmUgdGhlIGJ1bGxldHMgZnJvbSBhbiB1bm9yZGVyZWQgbGlzdFxuICAubm8tYnVsbGV0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudCB7XG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJ3NtYWxsJyB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIGFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogZGVmYXVsdCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBRdWFsaWZ5aW5nRWxlbWVudFxuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cbiAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAkZm9ybS1zcGFjaW5nICogMS41KTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzIDAgMCAkZ2xvYmFsLXJhZGl1cztcbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFF1YWxpZnlpbmdTZWxlY3RvclxuICAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmZpZWxkc2V0IHtcbiAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMik7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcblxuICBAaWYgJHNlbGVjdC10cmlhbmdsZS1jb2xvciAhPSB0cmFuc3BhcmVudCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGdsb2JhbC1yaWdodCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1hbHBoYSBbMC4xXSAtIFRyYW5zcGFyZW5jeSBsZXZlbCBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcbiAgJGJhY2tncm91bmQtYWxwaGE6IDAuMVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWFscGhhKTtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvblxuLy8vL1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYXJvdW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmaWxsIGZvciBidXR0b25zLiBDYW4gZWl0aGVyIGJlIGBzb2xpZGAgb3IgYGhvbGxvd2AuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGJ1dHRvbi1maWxsOiBzb2xpZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucywgaWYgdGhlIGJhY2tncm91bmQgaXMgbGlnaHQuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGZvcmVncm91bmQoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLFxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3I6ICRwcmltYXJ5LWNvbG9yKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAtNTAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuXG4gIEBpZiAkc3R5bGUgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJHN0eWxlID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbjtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0geyBmb250LXNpemU6ICR2YWx1ZTsgfVxuICAgIH1cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi4jeyRuYW1lfS5kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhvbGxvdyBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogZm9yZWdyb3VuZCgkYWNjb3JkaW9uLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogZm9yZWdyb3VuZCgkYWNjb3JkaW9uLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gYWNjb3JkaW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgc2FtZSBlbGVtZW50IHRoYXQgZ2V0cyBgZGF0YS1hY2NvcmRpb25gLlxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZDtcbiAgYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICBjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gIH1cblxuICBAaWYgJGFjY29yZGlvbi1wbHVzbWludXMge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIH1cblxuICAgIC5pcy1hY3RpdmUgPiAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+KAkyc7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYWNjb3JkaW9uIGNvbnRlbnQuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbnRlbnQgcGFuZSBiZWxvdyBhbiBhY2NvcmRpb24gaXRlbSdzIHRpdGxlLlxuQG1peGluIGFjY29yZGlvbi1jb250ZW50IHtcbiAgcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGFpbmVyO1xuICB9XG5cbiAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICAvLyBUaGlzIGNsYXNzIGRvZXNuJ3QgbmVlZCBzdHlsZXMhXG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvbi1tZW51XG4vLy8vXG5cbi8vLyBTZXRzIGlmIGFjY29yZGlvbiBtZW51cyBoYXZlIHRoZSBkZWZhdWx0IGFycm93IHN0eWxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnUge1xuICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgICAgICByaWdodDogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBiYWRnZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3I6IGZvcmVncm91bmQoJGJhZGdlLWJhY2tncm91bmQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGEgYmFkZ2UuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgYmFkZ2UuXG5AbWl4aW4gYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuICBtaW4td2lkdGg6ICRiYWRnZS1taW53aWR0aDtcbiAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tYmFkZ2Uge1xuICAuYmFkZ2Uge1xuICAgIEBpbmNsdWRlIGJhZGdlO1xuXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJG5hbWUgIT0gcHJpbWFyeSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgICBjb2xvcjogZm9yZWdyb3VuZCgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLCBhbG9uZyB3aXRoIHRoZSBzdHlsZXMgZm9yIHRoZSBgPGxpPmAgYW5kIGA8YT5gIGVsZW1lbnRzIGluc2lkZSBvZiBpdC5cbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAkYnJlYWRjcnVtYnMtbWFyZ2luO1xuXG4gIC8vIEl0ZW0gd3JhcHBlclxuICBsaSB7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNsYXNoIHtcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcbiAgICAgICRzbGFzaDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJy8nLCAnXFxcXCcpO1xuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICAgICAgY29udGVudDogJHNsYXNoO1xuICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMXB4O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b24tZ3JvdXBcbi8vLy9cblxuLy8vIE1hcmdpbiBmb3IgYnV0dG9uIGdyb3Vwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIEJvcmRlclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJyAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGJ1dHRvbnMgdGhhdCBjYW4gYmUgaW4gYW4gZXZlbi13aWR0aCBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAoXG4gICRjaGlsZC1zZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi1ib3R0b206ICRidXR0b25ncm91cC1tYXJnaW47XG4gIGZvbnQtc2l6ZTogMDtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG5cbiAgI3skY2hpbGQtc2VsZWN0b3J9IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGJ1dHRvbmdyb3VwLXNwYWNpbmc7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAkYnV0dG9uZ3JvdXAtc3BhY2luZyBzb2xpZCAkYm9keS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtd2lkdGggYnV0dG9uIGdyb3VwLCBtYWtpbmcgZWFjaCBidXR0b24gZXF1YWwgd2lkdGguXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0kYnV0dG9uZ3JvdXAtc3BhY2luZztcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxLyRpKX0gLSAjeyRidXR0b25ncm91cC1zcGFjaW5nfSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRidXR0b25ncm91cC1zcGFjaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gVW4tc3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXVuc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJ1dHRvbmdyb3VwLXNwYWNpbmc7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHsgZm9udC1zaXplOiAkdmFsdWU7IH1cbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIEdyb3VwXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQsXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCxcbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3RhY2s7XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIE1lcmdlYWJsZVNlbGVjdG9yXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhbGxvdXRcbi8vLy9cblxuLy8vIERlZnVhbHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmYWRlIHZhbHVlIGZvciBjYWxsb3V0IGJhY2tncm91bmRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZSBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgaW5uZXIgcGFkZGluZyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMsIGlmIHRoZSBjYWxsb3V0IGhhcyBhIGRhcmsgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQW1vdW50IHRvIHRpbnQgbGlua3MgdXNlZCB3aXRoaW4gY29sb3JlZCBwYW5lbHMuIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLlxuLy8vIEB0eXBlIE51bWJlciB8IEJvb2xlYW5cbiRjYWxsb3V0LWxpbmstdGludDogMzAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGEgY2FsbG91dCwgaW5jbHVkaW5nIHBhZGRpbmcgYW5kIG1hcmdpbi5cbkBtaXhpbiBjYWxsb3V0LWJhc2UoKSB7XG4gIG1hcmdpbjogJGNhbGxvdXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkY2FsbG91dC1wYWRkaW5nO1xuICBib3JkZXI6ICRjYWxsb3V0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGNhbGxvdXQtcmFkaXVzO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiAkY2FsbG91dC1mb250LWNvbG9yO1xuXG4gIC8vIFJlc3BlY3QgdGhlIHBhZGRpbmcsIGZvb2wuXG4gID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgcXVpY2sgc3R5bGVzIGZvciBhIGNhbGxvdXQgdXNpbmcgYSBzaW5nbGUgY29sb3IgYXMgYSBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQtc3R5bGUoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gICRiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRjYWxsb3V0LWJhY2tncm91bmQtZmFkZSk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG59XG5cbkBtaXhpbiBjYWxsb3V0LXNpemUoJHBhZGRpbmcpIHtcbiAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nO1xuICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYWxsb3V0LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dCgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgQGluY2x1ZGUgY2FsbG91dC1iYXNlO1xuICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhbGxvdXQge1xuICAuY2FsbG91dCB7XG4gICAgQGluY2x1ZGUgY2FsbG91dDtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc21hbGwge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDAuNXJlbSk7XG4gICAgfVxuXG4gICAgJi5sYXJnZSB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoM3JlbSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjbG9zZS1idXR0b25cbi8vLy9cblxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxuLy8vIEB0eXBlIExpc3RcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgKG9yIGxlZnQpIG9mZnNldCBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0IGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tc2l6ZTogMmVtICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cbkBtaXhpbiBjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvcjtcbiAgI3skeH06ICRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDtcbiAgI3skeX06ICRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw7XG4gIGZvbnQtc2l6ZTogJGNsb3NlYnV0dG9uLXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkY2xvc2VidXR0b24tbGluZWhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uIHtcbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIE1lbnUuXG5AbWl4aW4gbWVudS1iYXNlIHtcbiAgbWFyZ2luOiAkbWVudS1tYXJnaW47XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zIGFyZSB0YWJsZSBjZWxsIHRvIGFsbG93IGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgPiBsaSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgbGluZSBoZWlnaHQgdG8gbWFrZSB0aGUgaGVpZ2h0IG9mIHRoZSBvdmVyYWxsIGl0ZW0gZWFzaWVyIHRvIGNhbGN1bGF0ZVxuICA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgICA+IGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAgID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICA+IGxpIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgPiBsaSAgPiBhIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbkBtaXhpbiBtZW51LXNpbXBsZSB7XG4gIGxpIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IGdldC1zaWRlKCRtZW51LWl0ZW0tcGFkZGluZywgJGdsb2JhbC1yaWdodCk7XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHBhZGRpbmcgW2F1dG9dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG5AbWl4aW4gbWVudS1uZXN0ZWQoJG1hcmdpbjogJG1lbnUtbWFyZ2luLW5lc3RlZCkge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xufVxuXG4vLy8gQWRkcyBzdXBwb3J0IGZvciBpY29ucyB0byBNZW51IGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHBvc2l0aW9uIFtzaWRlXSAtIFBvc2l0aW9uaW5nIGZvciBpY29ucy4gQ2FuIGJlIGBzaWRlYCAobGVmdCwgb3IgcmlnaHQgb24gUlRMKSBvciBgdG9wYC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgdGhlIHNoYXJlZCBDU1MgYmV0d2VlbiBzaWRlLSBhbmQgdG9wLWFsaWduZWQgaWNvbnMgZnJvbSBiZWluZyBwcmludGVkLiBTZXQgdGhpcyB0byBgZmFsc2VgIGlmIHlvdSdyZSBjYWxsaW5nIHRoZSBtaXhpbiBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBlbGVtZW50LlxuQG1peGluIG1lbnUtaWNvbnMoJHBvc2l0aW9uOiBzaWRlLCAkYmFzZTogdHJ1ZSkge1xuICBAaWYgJGJhc2Uge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIGltZyxcbiAgICAgICAgaSB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGkgKyBzcGFuLFxuICAgICAgICBpbWcgKyBzcGFuIHtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRwb3NpdGlvbiA9PSBzaWRlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtZW51LWljb24tc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgID4gbGkgPiBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkbWVudS1pY29uLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtZW51LWljb24tc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUge1xuICAubWVudSB7XG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG5cbiAgICAvLyBPcmllbnRhdGlvblxuICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gc21hbGwge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgICAgICA+IGxpIHtcbiAgICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGhcbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuXG4gICAgICA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBpY29uc1xuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucyh0b3AsICRiYXNlOiBmYWxzZSk7XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgIGNvbG9yOiAkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtdGV4dCB7XG4gICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICB9XG5cbiAgLy8gQWxpZ24gY2VudGVyXG4gIC5tZW51LWNlbnRlcmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICA+IC5tZW51IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbWVudS1pY29uIHtcbiAgLm1lbnUtaWNvbiB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCRjb2xvcjogJHRpdGxlYmFyLWljb24tY29sb3IsICRjb2xvci1ob3ZlcjogJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXIpO1xuICB9XG5cbiAgLm1lbnUtaWNvbi5kYXJrIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXI7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyaWxsZG93blxuLy8vL1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eSB0byB1c2UgZm9yIGFuaW1hdGluZyBtZW51cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGFycm93cyB0byBkcmlsbGRvd24gaXRlbXMgd2l0aCBzdWJtZW51cywgYXMgd2VsbCBhcyB0aGUgYmFjayBidXR0b24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFwcGxpZWQgdG8gbmVzdGVkIDx1bD5zXG4gIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogLTE7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLXJpZ2h0KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1sZWZ0KTtcbiAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0td2lkdGg6IDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93blxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGRyb3Bkb3duIHBhbmVzLiBFYWNoIHNpemUgaXMgYSBDU1MgY2xhc3MgeW91IGNhbiBhcHBseS5cbi8vLyBAdHlwZSBNYXBcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIGEgYmFzaWMgZHJvcGRvd24uXG5AbWl4aW4gZHJvcGRvd24tY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmFja2dyb3VuZDtcbiAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZHJvcGRvd24tcmFkaXVzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkZHJvcGRvd24tZm9udC1zaXplO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAkZHJvcGRvd24td2lkdGg7XG4gIHotaW5kZXg6IDEwO1xuXG4gICYuaXMtb3BlbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93biB7XG4gIC5kcm9wZG93bi1wYW5lIHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcbiAgICAuZHJvcGRvd24tcGFuZS4jeyRuYW1lfSB7XG4gICAgICB3aWR0aDogJHNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XG4vLy8vXG5cbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG5AbWl4aW4gbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gIH1cblxuICAmLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDVweCwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gIH1cblxuICAmLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg1cHgsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICA+IGxpLm9wZW5zLWxlZnQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaS5vcGVucy1yaWdodCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06IDEuNXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNXB4LCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICA+IGxpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLWxlZnQge1xuICAgICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLXJpZ2h0IHtcbiAgICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9IHNtYWxsIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgdG9wOiAxMDAlO1xuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcbiAgICBib3JkZXI6ICRkcm9wZG93bm1lbnUtYm9yZGVyO1xuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIGxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTZWxlY3RvckRlcHRoXG4gICAgJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJixcbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtdmlkZW9cbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIGZsZXggdmlkZW8gY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIHVzZWQgdG8gY3JlYXRlIGEgNDozIGFzcGVjdCByYXRpby5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4dmlkZW8tcmF0aW86IDQgYnkgMyAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgdXNlZCB0byBjcmVhdGUgYSAxNjo5IGFzcGVjdCByYXRpby5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbjogMTYgYnkgOSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSBwZXJjZW50YWdlIGhlaWdodCB0aGF0IGNhbiBiZSB1c2VkIGFzIHBhZGRpbmcgaW4gYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyAtIFJhdGlvIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgYXMgdGhlIGBwYWRkaW5nLWJvdHRvbWAgcGFyYW1ldGVyIG9mIGEgZmxleCB2aWRlbyBjb250YWluZXIuXG5AZnVuY3Rpb24gZmxleC12aWRlbygkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG5cbi8vLyBDcmVhdGVzIGEgZmxleCB2aWRlbyBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gWyRmbGV4dmlkZW8tcmF0aW9dIC0gUmF0aW8gdG8gdXNlIGZvciB0aGUgY29udGFpbmVyLCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG5AbWl4aW4gZmxleC12aWRlbygkcmF0aW86ICRmbGV4dmlkZW8tcmF0aW8pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRyYXRpbyk7XG4gIG1hcmdpbi1ib3R0b206ICRmbGV4dmlkZW8tbWFyZ2luLWJvdHRvbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC12aWRlbyB7XG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSBmbGV4LXZpZGVvO1xuXG4gICAgJi53aWRlc2NyZWVuIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbik7XG4gICAgfVxuXG4gICAgJi52aW1lbyB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGxhYmVsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvcjogZm9yZWdyb3VuZCgkbGFiZWwtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbGFiZWwge1xuICAubGFiZWwge1xuICAgIEBpbmNsdWRlIGxhYmVsO1xuXG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJG5hbWUgIT0gcHJpbWFyeSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgICBjb2xvcjogZm9yZWdyb3VuZCgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZWRpYS1vYmplY3Rcbi8vLy9cblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9uIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGltYWdlcyB3aXRoaW4gYSBtZWRpYSBvYmplY3QsIHdoZW4gdGhlIG9iamVjdCBpcyBzdGFja2VkIHZlcnRpY2FsbHkuIFNldCB0byAnYXV0bycgdG8gdXNlIHRoZSBpbWFnZSdzIG5hdHVyYWwgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1lZGlhIG9iamVjdCBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206ICRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tO1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmddIC0gUGFkZGluZyBiZXR3ZWVuIHNlY3Rpb25zLlxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtbGVmdH06ICRwYWRkaW5nO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBzdGFjayBzZWN0aW9ucyBvZiBhIG1lZGlhIG9iamVjdC4gQXBwbHkgdGhpcyB0byB0aGUgc2VjdGlvbiBlbGVtZW50cywgbm90IHRoZSBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXN0YWNrIHtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1ib3R0b206ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0IHtcbiAgLm1lZGlhLW9iamVjdCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LWNvbnRhaW5lcjtcblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAmLnN0YWNrLWZvci1zbWFsbCB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAgICAgJi5tYWluLXNlY3Rpb24ge1xuICAgICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmLm1pZGRsZSB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgICAgICYuYm90dG9tIHsgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2ZmLWNhbnZhc1xuLy8vL1xuXG4vLy8gV2lkdGggb2YgYW4gb2ZmLWNhbnZhcyBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1zaXplOiAyNTBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gb2ZmLWNhbnZhcyBtZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXppbmRleDogLTEgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzICFkZWZhdWx0O1xuXG4vLy8gVGltaW5nIGZ1bmN0aW9uIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBtZW51LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGEgcmV2ZWFsZWQgb2ZmLWNhbnZhcyB3aWxsIGJlIGZpeGVkLXBvc2l0aW9uLCBhbmQgc2Nyb2xsIHdpdGggdGhlIHNjcmVlbi5cbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBtZW51IGlzIG9wZW4uXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBDU1MgY2xhc3MgdXNlZCBmb3IgdGhlIG1haW4gY29udGVudCBhcmVhLiBUaGUgb2ZmLWNhbnZhcyBtaXhpbnMgdXNlIHRoaXMgdG8gdGFyZ2V0IHRoZSBwYWdlIGJvZHkuXG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB0byBwbGFjZSB1bmRlciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoaXMgc2hhZG93IG92ZXJsYXBzIHRoZSBvZmYtY2FudmFzIG1lbnVzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJG1haW5jb250ZW50LXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2VsaW5lIHN0eWxlcyBmb3Igb2ZmLWNhbnZhcy4gVGhpcyBDU1MgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgb3RoZXIgcGllY2VzIHdvcmsuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNpY3Mge1xuICAvLyBFeHRyYSBwcm9wZXJ0aWVzIG5lZWRlZCBvbiA8aHRtbD4gYW5kIDxib2R5PiB0byBtYWtlIG9mZi1jYW52YXMgd29ya1xuICBodG1sLFxuICBib2R5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogYXV0bztcbiAgfVxuXG4gIC5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXIge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICB9XG5cbiAgLy8gQ29udGFpbmVyIGZvciBwYWdlIGNvbnRlbnRcbiAgLm9mZi1jYW52YXMtY29udGVudCxcbiAgLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHotaW5kZXg6IDE7XG4gICAgcGFkZGluZy1ib3R0b206IDAuMXB4OyAvLyBQcmV2ZW50cyBtYXJnaW4gY29sbGFwc2luZywgd2hpY2ggd291bGQgcmV2ZWFsIHRoZSBib3ggc2hhZG93IG9mIHRoZSB3cmFwcGVyXG5cbiAgICBAaWYgaGFzLXZhbHVlKCRtYWluY29udGVudC1zaGFkb3cpIHtcbiAgICAgIGJveC1zaGFkb3c6ICRtYWluY29udGVudC1zaGFkb3c7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2xpY2stdG8tZXhpdCBvdmVybGF5IChnZW5lcmF0ZWQgYnkgSmF2YVNjcmlwdClcbiAgLmpzLW9mZi1jYW52YXMtZXhpdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgfVxufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgbWVudS5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kO1xuICB6LWluZGV4OiAkb2ZmY2FudmFzLXppbmRleDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG5AbWl4aW4gb2ZmLWNhbnZhcy1wb3NpdGlvbihcbiAgJHBvc2l0aW9uOiBsZWZ0LFxuICAkc2l6ZTogJG9mZmNhbnZhcy1zaXplLFxuICAkZml4ZWQ6IGZhbHNlXG4pIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBsZWZ0OiAtJHNpemU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgfVxuXG4gIC8vIEdlbmVyYXRlcyBhbiBvcGVuIHN0YXRlIGNsYXNzIHRoYXQgbWF0Y2hlcyB0aGUgd2lkdGggb2YgdGhlIG1lbnVcbiAgQGF0LXJvb3Qge1xuICAgIC5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkcG9zaXRpb24gW2xlZnRdIC0gUG9zaXRpb24gb2YgdGhlIG9mZi1jYW52YXMgbWVudSBiZWluZyByZXZlYWxlZC5cbkBtaXhpbiBvZmYtY2FudmFzLXJldmVhbChcbiAgJHBvc2l0aW9uOiBsZWZ0XG4pIHtcbiAgI3skcG9zaXRpb259OiAwO1xuICB6LWluZGV4OiBhdXRvO1xuXG4gIEBpZiAkb2ZmY2FudmFzLWZpeGVkLXJldmVhbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG5cbiAgJiB+IC4jeyRtYWluY29udGVudC1jbGFzc30ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06ICRvZmZjYW52YXMtc2l6ZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vZmYtY2FudmFzIHtcbiAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNpY3M7XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXJcbiAgLm9mZi1jYW52YXMge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcblxuICAgICYucG9zaXRpb24tbGVmdCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0KTsgfVxuICAgICYucG9zaXRpb24tcmlnaHQgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCk7IH1cbiAgfVxuXG4gIC8vIFJldmVhbCBvZmYtY2FudmFzIG1lbnUgb24gbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gc21hbGwge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChsZWZ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG9yYml0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBhY3RpdmUgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGlhbWV0ZXIgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGJldHdlZW4gT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGlzdGFuY2UgZnJvbSBzbGlkZSByZWdpb24gZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZyb20gT3JiaXQncyBidWxsZXRzIHRvIHdoYXRldmVyIGNvbnRlbnQgbWF5IGx1cmsgYmVsb3cgaXQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgT3JiaXQncyBjYXB0aW9uLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjYXB0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgT3JiaXQncyBjb250cm9scyB3aGVuIGhvdmVyZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgei1pbmRleCBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTAgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIG91dGVyIE9yYml0IHdyYXBwZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgT3JiaXQgc2xpZGUgY29udGFpbmVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY29udGFpbmVyYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5kaXZpZHVhbCBzbGlkZXMgb2YgYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtc2xpZGVgIGNsYXNzLlxuQG1peGluIG9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgJi5uby1tb3Rpb251aSB7XG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjb2xvcjogZm9yZWdyb3VuZCgkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIHRoZSBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgaW4gYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZSBgLm9yYml0LW5leHRgIGFuZCBgLm9yYml0LXByZXZpb3VzYCBjbGFzc2VzIGluIHRoZSBkZWZhdWx0IENTUy5cbkBtaXhpbiBvcmJpdC1jb250cm9sIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIHotaW5kZXg6ICRvcmJpdC1jb250cm9sLXppbmRleDtcbiAgcGFkZGluZzogJG9yYml0LWNvbnRyb2wtcGFkZGluZztcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtcHJldmlvdXMge1xuICAjeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IG5leHQgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtbmV4dGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtbmV4dCB7XG4gICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNvbnRhaW5lciBvZiBPcmJpdCBidWxsZXRzLiAvLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1idWxsZXRzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1idWxsZXRzIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDtcbiAgbWFyZ2luLWJvdHRvbTogJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBoZWlnaHQ6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgbWFyZ2luOiAkb3JiaXQtYnVsbGV0LW1hcmdpbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9yYml0IHtcbiAgLm9yYml0IHtcbiAgICBAaW5jbHVkZSBvcmJpdC13cmFwcGVyO1xuICB9XG5cbiAgLm9yYml0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udGFpbmVyO1xuICB9XG5cbiAgLm9yYml0LXNsaWRlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1zbGlkZTtcbiAgfVxuXG4gIC5vcmJpdC1maWd1cmUge1xuICAgIEBpbmNsdWRlIG9yYml0LWZpZ3VyZTtcbiAgfVxuXG4gIC5vcmJpdC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtaW1hZ2U7XG4gIH1cblxuICAub3JiaXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY2FwdGlvbjtcbiAgfVxuXG4gICVvcmJpdC1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250cm9sO1xuICB9XG5cbiAgLm9yYml0LXByZXZpb3VzIHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LXByZXZpb3VzO1xuICB9XG5cbiAgLm9yYml0LW5leHQge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtbmV4dDtcbiAgfVxuXG4gIC5vcmJpdC1idWxsZXRzIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1idWxsZXRzO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwYWdpbmF0aW9uXG4vLy8vXG5cbi8vLyBGb250IHNpemUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIG9mIHRoZSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6IGZvcmVncm91bmQoJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGVsbGlwc2lzIGluIGEgcGFnaW5hdGlvbiBtZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBwYWdlIG51bWJlciBsaW5rcyBvbiBtb2JpbGUsIG9ubHkgbmV4dC9wcmV2aW91cyBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhcnJvd3MgYXJlIGFkZGVkIHRvIHRoZSBuZXh0IGFuZCBwcmV2aW91cyBsaW5rcyBvZiBwYWdpbmF0aW9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHBhZ2luYXRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHBhZ2luYXRpb24tY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIG1hcmdpbi1ib3R0b206ICRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b207XG5cbiAgLy8gTGlzdCBpdGVtXG4gIGxpIHtcbiAgICBmb250LXNpemU6ICRwYWdpbmF0aW9uLWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRwYWdpbmF0aW9uLXJhZGl1cztcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhLFxuICBidXR0b24ge1xuICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudCB7XG4gIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZztcbiAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ7XG4gIGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQge1xuICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc7XG4gIGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBlbGxpcHNpcyBmb3IgdXNlIGluIGEgcGFnaW5hdGlvbiBsaXN0LlxuQG1peGluIHBhZ2luYXRpb24tZWxsaXBzaXMge1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nO1xuICBjb2xvcjogJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXBhZ2luYXRpb24ge1xuICAucGFnaW5hdGlvbiB7XG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1jb250YWluZXI7XG5cbiAgICAuY3VycmVudCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudDtcbiAgICB9XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1lbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZ2luYXRpb24tYXJyb3dzIHtcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwwMGFiJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjVyZW07XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbiAgICAucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwwMGJiJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcHJvZ3Jlc3MgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiBwcm9ncmVzcy1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcbiAgaGVpZ2h0OiAkcHJvZ3Jlc3MtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgbWV0ZXIgb2YgYSBwcm9ncmVzcyBiYXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0ZXh0IGluIHRoZSBwcm9ncmVzcyBtZXRlci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgQGluY2x1ZGUgYWJzb2x1dGUtY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb2dyZXNzLWJhciB7XG4gIC8vIFByb2dyZXNzIGJhclxuICAucHJvZ3Jlc3Mge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLWNvbnRhaW5lcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJbm5lciBtZXRlclxuICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyO1xuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXIgdGV4dFxuICAucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXItdGV4dDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIFtUT0RPXSBDaGVjayBob3cgcGx1Z2luIGNvbmZpcm1zIGRpc2FibGVkIG9yIHZlcnRpY2FsIHN0YXR1c1xuLy8gW1RPRE9dIENoZWNrIGlmIHRyYW5zaXRpb246IGFsbDsgaXMgbmVjZXNzYXJ5XG5cbi8vLy9cbi8vLyBAZ3JvdXAgc2xpZGVyXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHNsaWRlciB3aWR0aCBvZiBhIHZlcnRpY2FsIHNsaWRlci4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0aWVzIHRvIGFwcGx5IHRvIHRoZSBzbGlkZXIgaGFuZGxlIGFuZCBmaWxsLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBzbGlkZXJzLlxuQG1peGluIHNsaWRlci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDIuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIGFjdGl2ZSBmaWxsIGZvciBzbGlkZXJzLlxuQG1peGluIHNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWZpbGwtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHNsaWRlci10cmFuc2l0aW9uO1xuXG4gICYuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0aGUgc2xpZGVyIGhhbmRsZXMuXG5AbWl4aW4gc2xpZGVyLWhhbmRsZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHNsaWRlci10cmFuc2l0aW9uO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4gIH1cblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbkBtaXhpbiBzbGlkZXItZGlzYWJsZWQge1xuICBvcGFjaXR5OiAkc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbkBtaXhpbiBzbGlkZXItdmVydGljYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICBoZWlnaHQ6IDEyLjVyZW07XG4gIG1hcmdpbjogMCAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcblxuICAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc2xpZGVyIHtcbiAgLy8gQ29udGFpbmVyXG4gIC5zbGlkZXIge1xuICAgIEBpbmNsdWRlIHNsaWRlci1jb250YWluZXI7XG4gIH1cblxuICAvLyBGaWxsIGFyZWFcbiAgLnNsaWRlci1maWxsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZmlsbDtcbiAgfVxuXG4gIC8vIERyYWdnYWJsZSBoYW5kbGVcbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIEBpbmNsdWRlIHNsaWRlci1oYW5kbGU7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAuc2xpZGVyLmRpc2FibGVkLFxuICAuc2xpZGVyW2Rpc2FibGVkXSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gVmVydGljYWwgc2xpZGVyXG4gIC5zbGlkZXIudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHNsaWRlci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFJUTCBzdXBwb3J0XG4gIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCB7XG4gICAgLnNsaWRlcjpub3QoLnZlcnRpY2FsKSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zdGlja3kge1xuICAuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnN0aWNreSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIC5zdGlja3kuaXMtc3R1Y2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA1O1xuXG4gICAgJi5pcy1hdC10b3Age1xuICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJldmVhbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiBhIG1vZGFsLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgb3ZlcmxheXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtb2RhbCBvdmVybGF5LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5LlxuQG1peGluIHJldmVhbC1vdmVybGF5IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICBwYWRkaW5nOiAkcmV2ZWFsLXBhZGRpbmc7XG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtYmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXM7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4sXG4gIC5jb2x1bW5zIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIG1vZGFsLiBHZW5lcmFsbHkgYSBwZXJjZW50YWdlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXG4gICR3aWR0aDogJHJldmVhbC13aWR0aCxcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIER1cGxpY2F0ZVByb3BlcnR5XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlcjogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcbiAgLy8gW1RPRE9dIElzIHRoaXMgbmVjZXNzYXJ5P1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBRdWFsaWZ5aW5nRWxlbWVudFxuICBib2R5LmlzLXJldmVhbC1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuICAgIC8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHN3aXRjaFxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGFjdGl2ZSBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2gsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnRpbnkgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAuc21hbGwgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5sYXJnZSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2hcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzd2l0Y2ggY29udGFpbmVyIGFuZCBwYWRkbGUuXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoIHBhZGRsZVxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHN3aXRjaCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBtYWtlIHRoZW0gdmFyaWFibGVzXG4vLyBhc2sgYWJvdXQgYWNjZXNzaWJpbGl0eSBvbiBsYWJlbFxuLy8gY2hhbmdlIGNsYXNzIG5hbWUgZm9yIHRleHRcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBjb250YWluZXIgY2xhc3MuXG5AbWl4aW4gc3dpdGNoLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206ICRzd2l0Y2gtbWFyZ2luO1xuICBvdXRsaW5lOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuXG4gIC8vIFRoZXNlIHByb3BlcnRpZXMgY2FzY2FkZSBkb3duIHRvIHRoZSBzd2l0Y2ggdGV4dFxuICBjb2xvcjogJHdoaXRlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggaW5wdXQuIEFwcGx5IHRoaXMgdG8gYW4gYDxpbnB1dD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtaW5wdXQge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGJhY2tncm91bmQgYW5kIHBhZGRsZSBvZiBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byBhIGA8bGFiZWw+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXBhZGRsZSB7XG4gIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNHJlbTtcbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcbiAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1yYWRpdXM7XG5cbiAgLy8gUmVzZXR0aW5nIHRoZXNlIDxsYWJlbD4gcHJlc2V0cyBzbyB0eXBlIHN0eWxlcyBjYXNjYWRlIGRvd25cbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXG4gIC8vIE5lZWRlZCB0byBvdmVycmlkZSBzcGVjaWZpY2l0eVxuICBpbnB1dCArICYge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIFRoZSBwYWRkbGUgaXRzZWxmXG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDAuMjVyZW07XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcGFkZGxlLXJhZGl1cztcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgdmlzdWFsIHN0eWxlIHdoZW4gdGhlIHN3aXRjaCBpcyBhY3RpdmVcbiAgaW5wdXQ6Y2hlY2tlZCB+ICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IDIuMjVyZW07XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWFjdGl2ZSB7XG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiBhIHN3aXRjaCBieSBtb2RpZnlpbmcgdGhlIHNpemUgb2YgdGhlIGJvZHkgYW5kIHBhZGRsZS4gQXBwbHkgdGhpcyB0byBhIHN3aXRjaCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbNHJlbV0gLSBXaWR0aCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzJyZW1dIC0gSGVpZ2h0IG9mIHRoZSBzd2l0Y2ggYm9keS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRsZS13aWR0aCBbMS41cmVtXSAtIFdpZHRoIG9mIHRoZSBzd2l0Y2ggcGFkZGxlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGxlLW9mZnNldCBbMC4yNXJlbV0gLSBTcGFjaW5nIGJldHdlZW4gdGhlIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBzd2l0Y2ggYm9keS5cbkBtaXhpbiBzd2l0Y2gtc2l6ZShcbiAgJGZvbnQtc2l6ZTogMXJlbSxcbiAgJHdpZHRoOiA0cmVtLFxuICAkaGVpZ2h0OiAycmVtLFxuICAkcGFkZGxlLXdpZHRoOiAxLjVyZW0sXG4gICRwYWRkbGUtb2Zmc2V0OiAwLjI1cmVtXG4pIHtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRoZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1sZWZ0LWFjdGl2ZTogJHdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRwYWRkbGUtb2Zmc2V0O1xuXG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIH1cblxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1sZWZ0LWFjdGl2ZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zd2l0Y2gge1xuICAvLyBDb250YWluZXIgY2xhc3NcbiAgLnN3aXRjaCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIDxpbnB1dD4gZWxlbWVudFxuICAuc3dpdGNoLWlucHV0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtaW5wdXQ7XG4gIH1cblxuICAvLyA8bGFiZWw+IGVsZW1lbnRcbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1wYWRkbGU7XG4gIH1cblxuICAvLyBCYXNlIGxhYmVsIHRleHQgc3R5bGVzXG4gICVzd2l0Y2gtdGV4dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQ7XG4gIH1cblxuICAvLyBBY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWFjdGl2ZTtcbiAgfVxuXG4gIC8vIEluYWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtaW5hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWluYWN0aXZlO1xuICB9XG5cbiAgLy8gU3dpdGNoIHNpemVzXG4gIC5zd2l0Y2gudGlueSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTApLCAzcmVtLCAkc3dpdGNoLWhlaWdodC10aW55LCAxcmVtLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5zbWFsbCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTIpLCAzLjVyZW0sICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAxLjI1cmVtLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5sYXJnZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCA1cmVtLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgMnJlbSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIE1lcmdlYWJsZVNlbGVjdG9yLCBRdWFsaWZ5aW5nRWxlbWVudFxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnlvdGhlciB2YWx1ZSwgdGhlIHRhYmxlIHJvd3Mgd2lsbCBoYXZlIG5vIHN0cmlwaW5nLlxuLy8vIEB0eXBlIEtleW93b3JkXG4kdGFibGUtc3RyaXBlOiBldmVuICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGZvb3RlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG5cbiAgICAvLyBSb3dzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdHIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gQ2VsbHMgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgdGV4dC1hbGlnbjogI3skZ2xvYmFsLWxlZnR9O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRhYmxlIHJvd3NcbiAgdGJvZHkge1xuICAgIHRyIHtcbiAgICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gZXZlbiwgZGFya2VuIHRoZSBldmVuIHJvd3MuXG4gICAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBvZGQsIGRhcmtlbiB0aGUgb2RkIHJvd3MuXG4gICAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V5d29yZHMgZXZlbiwgb2RkLCBvciBub25lIHRvIGRhcmtlbiByb3dzIG9mIHRoZSB0YWJsZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZXZlbi5cbkBtaXhpbiB0YWJsZShcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcbiAgJG5lc3Q6IGZhbHNlXG4pIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICBAaWYgJG5lc3Qge1xuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuXG4gICAgLy9EYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9EYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhY2tlZCB0YWJsZS4gVXNlZnVsIGZvciBzbWFsbC1zY3JlZW4gbGF5b3V0cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRoZWFkZXIgWyRzaG93LWhlYWRlci1mb3Itc3RhY2tlZF0gLSBTaG93IHRoZSBmaXJzdCB0aCBvZiBoZWFkZXIgd2hlbiBzdGFja2VkLlxuQG1peGluIHRhYmxlLXN0YWNrKCRoZWFkZXI6ICRzaG93LWhlYWRlci1mb3Itc3RhY2tlZCkge1xuICBAaWYgJGhlYWRlciB7XG4gICAgdGhlYWQge1xuICAgICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgdGgge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgdGhlYWQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHRyLFxuICB0aCxcbiAgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFibGUoJG5lc3Q6IGZhbHNlKSB7XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSB0YWJsZSgkbmVzdDogJG5lc3QpO1xuICB9XG5cbiAgdGFibGUuc3RhY2sge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgIEBpbmNsdWRlIHRhYmxlLXN0YWNrO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlLnNjcm9sbCB7XG4gICAgQGluY2x1ZGUgdGFibGUtc2Nyb2xsO1xuICB9XG5cbiAgdGFibGUuaG92ZXIge1xuICAgIEBpbmNsdWRlIHRhYmxlLWhvdmVyO1xuICB9XG5cbiAgLnRhYmxlLXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIHRhYmxlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGxpZ2h0bmVzcyBvZiBgJGNvbG9yYCwgYW5kIGlmIGl0IHBhc3NlcyB0aGUgYCR0aHJlc2hvbGRgIG9mIGxpZ2h0bmVzcywgaXQgcmV0dXJucyB0aGUgYCR5ZXNgIGNvbG9yLiBPdGhlcndpc2UsIGl0IHJldHVybnMgdGhlIGAkbm9gIGNvbG9yLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBkeW5hbWljYWxseSBvdXRwdXQgYSBmb3JlZ3JvdW5kIGNvbG9yIGJhc2VkIG9uIGEgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsaWdodG5lc3Mgb2YuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHllcyBbJGJsYWNrXSAtIENvbG9yIHRvIHJldHVybiBpZiBgJGNvbG9yYCBpcyBsaWdodC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkbm8gWyR3aGl0ZV0gLSBDb2xvciB0byByZXR1cm4gaWYgYCRjb2xvcmAgaXMgZGFyay5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzYwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IFRoZSAkeWVzIGNvbG9yIG9yICRubyBjb2xvci5cbkBmdW5jdGlvbiBmb3JlZ3JvdW5kKCRjb2xvciwgJHllczogJGJsYWNrLCAkbm86ICR3aGl0ZSwgJHRocmVzaG9sZDogNjAlKSB7XG4gIEBpZiAkY29sb3IgPT0gdHJhbnNwYXJlbnQge1xuICAgICRjb2xvcjogJGJvZHktYmFja2dyb3VuZDtcbiAgfVxuICBAaWYgKGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCkge1xuICAgIEByZXR1cm4gJHllcztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkbm87XG4gIH1cbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGxpZ2h0ZXIgaWYgaXQncyBsaWdodCwgb3IgZGFya2VyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgIHZhcmlhYmxlIGludG8gdGhlIGxlZ2FjeSBjb2xvciB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSB7XG4gICAgJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2VzcykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykge1xuICAgICR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSB7XG4gICAgJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBhY3RpdmUgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYGV4cGFuZC1uYCBjbGFzc2VzIHRvIGluY2x1ZGUgaW4gdGhlIENTUy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCR0YWItYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gdGFicy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkdGFiLW1hcmdpbjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBiYWNrZ3JvdW5kOiAkdGFiLWJhY2tncm91bmQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250YWluZXIgdG8gaGF2ZSB2ZXJ0aWNhbCB0YWJzLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRhaW5lcigpYC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbCB7XG4gID4gbGkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGxpbmtzIHdpdGhpbiBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIGA8bGk+YCBlbGVtZW50cyBpbnNpZGUgYSB0YWIgY29udGFpbmVyLlxuQG1peGluIHRhYnMtdGl0bGUge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHRhYi1pdGVtLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAkdGFiLWl0ZW0tZm9udC1zaXplO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICZbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgIGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxuQG1peGluIHRhYnMtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkdGFiLWNvbnRlbnQtYm9yZGVyO1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XG4gIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gaW5kaXZpZHVhbCB0YWIgY29udGVudCBwYW5lbCB3aXRoaW4gdGhlIHRhYiBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmc7XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYnMge1xuICAudGFicyB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXI7XG4gIH1cblxuICAvLyBWZXJ0aWNhbFxuICAudGFicy52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBTaW1wbGVcbiAgLnRhYnMuc2ltcGxlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJpbWFyeSBjb2xvclxuICAudGFicy5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCRwcmltYXJ5LWNvbG9yKTtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkcHJpbWFyeS1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYnMtdGl0bGUge1xuICAgIEBpbmNsdWRlIHRhYnMtdGl0bGU7XG4gIH1cblxuICAudGFicy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQ7XG4gIH1cblxuICAudGFicy1jb250ZW50LnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQtdmVydGljYWw7XG4gIH1cblxuICAudGFicy1wYW5lbCB7XG4gICAgQGluY2x1ZGUgdGFicy1wYW5lbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGh1bWJuYWlsXG4vLy8vXG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wcnRpZXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRodW1ibmFpbCBzdHlsZXMgdG8gYW4gZWxlbWVudC5cbkBtaXhpbiB0aHVtYm5haWwge1xuICBib3JkZXI6ICR0aHVtYm5haWwtYm9yZGVyO1xuICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG4gIGJvcmRlci1yYWRpdXM6ICR0aHVtYm5haWwtcmFkaXVzO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGh1bWJuYWlsIHtcbiAgLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aXRsZS1iYXJcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBXZWlnaHRcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhciBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiB0aGUgbWVudSBpY29uIGFuZCB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRpdGxlLWJhciB7XG4gIC50aXRsZS1iYXIge1xuICAgIGJhY2tncm91bmQ6ICR0aXRsZWJhci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGl0bGViYXItY29sb3I7XG4gICAgcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICAubWVudS1pY29uIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHRpdGxlYmFyLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgICAudGl0bGUtYmFyLWxlZnQsXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudGl0bGUtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAudGl0bGUtYmFyLXRpdGxlIHtcbiAgICBmb250LXdlaWdodDogJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICAubWVudS1pY29uLmRhcmsge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9vbHRpcFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYm90dG9tIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgTGlzdFxuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGZvbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgdG9vbHRpcCB0ZXh0LiBCeSBkZWZhdWx0LCB3ZSByZWNvbW1lbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSB0aGFuIHRoZSBib2R5IGNvcHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCBoZWlnaHQgZm9yIHRvb2x0aXBzLiBUaGlzIGlzIGhlbHBmdWwgZm9yIGNhbGN1bGF0aW5nIHRoZSBkaXN0YW5jZSBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b29sdGlwIHdvcmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoYXMtdGlwIHtcbiAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcbiAgZm9udC13ZWlnaHQ6ICRoYXMtdGlwLWZvbnQtd2VpZ2h0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY3Vyc29yOiBoZWxwO1xufVxuXG5AbWl4aW4gdG9vbHRpcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJhY2tncm91bmQtY29sb3I7XG4gIGNvbG9yOiAkdG9vbHRpcC1jb2xvcjtcbiAgZm9udC1zaXplOiAkdG9vbHRpcC1mb250LXNpemU7XG4gIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG4gIHRvcDogY2FsYygxMDAlICsgI3skdG9vbHRpcC1waXAtaGVpZ2h0fSk7XG4gIG1heC13aWR0aDogMTByZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogJHRvb2x0aXAtcmFkaXVzO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgdXApO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxuXG4gICYudG9wOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGRvd24pO1xuICAgIHRvcDogMTAwJTtcbiAgICBib3R0b206IGF1dG87XG4gIH1cblxuICAmLmxlZnQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgcmlnaHQpO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuXG4gICYucmlnaHQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgbGVmdCk7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvb2x0aXAge1xuICAuaGFzLXRpcCB7XG4gICAgQGluY2x1ZGUgaGFzLXRpcDtcbiAgfVxuXG4gIC50b29sdGlwIHtcbiAgICBAaW5jbHVkZSB0b29sdGlwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b3AtYmFyXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXIuIFRoaXMgY29sb3IgYWxzbyBjYXNjYWRlcyB0byBtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHN1Ym1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci4gVXNlZnVsbCBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgdHJhbnNwYXJlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGZvciB0aGUgdG9wIGJhciB0aXRsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGA8aW5wdXQ+YCBlbGVtZW50cyBpbnNpZGUgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggdG9wIGJhciBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRvcCBiYXIgY29udGFpbmVyLlxuQG1peGluIHRvcC1iYXItY29udGFpbmVyIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyBkaWZmZXJudCBmcm9tICR0b3BiYXItYmFja2dyb3VuZC1zdWJtZW51XG4gIEBpZiAoJHRvcGJhci1iYWNrZ3JvdW5kICE9ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kKSB7XG4gICAgdWwgdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdHJhaW4gd2lkdGggb2YgaW5wdXRzIGJ5IGRlZmF1bHQgdG8gbWFrZSB0aGVtIGVhc2llciB0byBhcnJhbmdlXG4gIGlucHV0IHtcbiAgICB3aWR0aDogJHRvcGJhci1pbnB1dC13aWR0aDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgfVxuXG4gIC8vIFRoZSBhYm92ZSBzdHlsZXMgc2hvdWxkbid0IGFwcGx5IHRvIGlucHV0IGdyb3VwIGZpZWxkc1xuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICB9XG5cbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgUXVhbGlmeWluZ0VsZW1lbnRcbiAgaW5wdXQuYnV0dG9uIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gTWFrZXMgc2VjdGlvbnMgb2YgYSB0b3AgYmFyIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuQG1peGluIHRvcC1iYXItc3RhY2tlZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gVW5kb2VzIHRoZSBDU1MgYXBwbGllZCBieSB0aGUgYHRvcC1iYXItc3RhY2tlZCgpYCBtaXhpbi5cbkBtaXhpbiB0b3AtYmFyLXVuc3RhY2sge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIEdlbmVyYXRlIGNsYXNzZXMgZm9yIHN0YWNraW5nIG9uIGVhY2ggc2NyZWVuIHNpemUgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcylcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgICAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3RhY2sgb24gc21hbGwgc2NyZWVucyBieSBkZWZhdWx0XG4gIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCR0b3BiYXItdW5zdGFjay1icmVha3BvaW50KSB7XG4gICAgQGluY2x1ZGUgdG9wLWJhci11bnN0YWNrO1xuICB9XG5cbiAgLy8gU3ViLXNlY3Rpb25zXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG4gICAgICBcbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAoMS8xNik7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAoMS8xNik7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSBzbWFsbCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxvYXRcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcyB7XG4gIC5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIi5hcnRpY2xlLW1lbnUge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGM4O1xuICBwYWRkaW5nOiAyLjY4NzVyZW0gMCA2LjY1cmVtO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBwYWRkaW5nOiByZW0tY2FsYyg1MCkgMCAwO1xuICAgIGhlaWdodDogcmVtLWNhbGMoMTYyKTsgfVxuXG4gICZfX2NhdGVnb3JpZXMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgcGFkZGluZzogMCAyM3B4OyB9XG5cbiAgICAgICYuYXJ0aWNsZS1tZW51X19jYXRlZ29yeSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS4ycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMzYwKSB7XG4gICAgICAgICAgcGFkZGluZzogMCAxLjVyZW07IH0gfVxuXG5cbiAgICAgICYuYXJ0aWNsZS1tZW51X19zdWJjYXRlZ29yeSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS4ycmVtOyB9IH0gfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjg2cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LWZhbWlseTogXCJoYWxhbnRcIjtcbiAgICBmb250LXNpemU6ICRwMTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4gICZfX3RpdGxlLWRlc2t0b3Age1xuICAgIGZvbnQtZmFtaWx5OiBcImhhbGFudFwiO1xuICAgIGZvbnQtc2l6ZTogJHAxO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuICAmX19jYXRlZ29yeSB7XG5cbiAgICA+IGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBjb2xvcjogJGM1O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6ICRwMTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYzE7XG4gICAgICAgIGNvbG9yOiAkYzE7IH0gfVxuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgID4gYSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYzE7XG4gICAgICAgIGNvbG9yOiAkYzE7IH1cblxuICAgICAgLy8gc2hvdyB0aGUgc3ViY2F0ZWdvcmllcyBvZiB0aGUgYWN0aXZlIHRhZ1xuICAgICAgPiAuYXJ0aWNsZS1tZW51X19zdWJjYXRlZ29yaWVzIHtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfSB9XG5cbiAgICAvLyBwbGFudHMgY2F0ZWdvcnlcbiAgICAmOm50aC1jaGlsZCgyKSB7XG5cbiAgICAgIC5hcnRpY2xlLW1lbnVfX3N1YmNhdGVnb3JpZXMge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgIHdpZHRoOiAxOHJlbTsgfSB9IH1cblxuICAgIC8vIGxpZmUgY2F0ZWdvcnlcbiAgICAmOm50aC1jaGlsZCgzKSB7XG5cbiAgICAgIC5hcnRpY2xlLW1lbnVfX3N1YmNhdGVnb3JpZXMge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgIHdpZHRoOiAyMHJlbTsgfSB9IH0gfVxuXG5cbiAgLy8gc3ViY2F0ZWdvcmllcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgLy8gdWxcbiAgJl9fc3ViY2F0ZWdvcmllcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMS44ZW07XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBtYXJnaW46IDAgYXV0bzsgLy8gY2VudGVycyB0aGUgc3ViY2F0IHVsXG4gICAgbGluZS1oZWlnaHQ6IDEuOTdyZW07XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwYWRkaW5nLXRvcDogMS4xcmVtOyB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICB0b3A6IDEuNXJlbTtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwYWRkaW5nLXRvcDogMS40cmVtO1xuIH0gICAgICAvLyBsaW5lLWhlaWdodDogMy41ZW1cblxuICAgIC5hcnRpY2xlLW1lbnVfX2NhdGVnb3J5LXN1Yjpob3ZlciAmIHtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBvcGFjaXR5OiAxOyB9IH0gfVxuXG4gIC8vIGxpXG4gICZfX3N1YmNhdGVnb3J5IHtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgICAgY29sb3I6ICRjNjtcbiAgICAgIGZvbnQtc2l6ZTogJHAyO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRjMTtcbiB9IH0gICAgICAgIC8vIGZvbnQtd2VpZ2h0OiBib2xkXG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYzE7XG4gfSB9IH0gICAgICAgIC8vIGZvbnQtd2VpZ2h0OiBib2xkXG5cbiB9ICAvLyBlbmQgc3ViY2F0ZWdvcmllcyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5cbiIsIi5hcnRpY2xlLXNpZGViYXIge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjNztcbiAgICBwYWRkaW5nOiA2MHB4IDAgMCA1MHB4O1xuICAgIHdpZHRoOiAyOSU7IH1cblxuICBwIHtcbiAgICBmb250LXNpemU6ICRwMTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4gICZfX2J0biB7XG4gICAgQGV4dGVuZCAlYnV0dG9uO1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIGZvbnQtc2l6ZTogJHAyOyB9XG5cbiAgJl9fcmVjb21tZW5kZWQge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG5cblxuICAmX19uZXh0LWFydGljbGUge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAwIDRyZW07XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgpOyB9XG5cbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICB3aWR0aDogcmVtLWNhbGMoMjIwKTtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoMTQ1KTsgfVxuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAyMjBweDsgfSB9XG5cbiAgJl9fbmV4dC1hcnRpY2xlLXRpdGxlIHtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDIyMCk7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBjb2xvcjogJGM1O1xuICAgIGZvbnQtc2l6ZTogJHAyOyB9IH1cbiIsIi5jb21pbmctc29vbiB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1pbjtcblx0b3BhY2l0eTogMDtcblx0ei1pbmRleDogOTk5OTk7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdCZfX21vZGFsIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiAkbW9iaWxlLW5hdmJhci1oZWlnaHQ7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGM4O1xuXHRcdG9wYWNpdHk6IDAuOTU7XG5cdFx0bWF4LXdpZHRoOiAzNzVweDtcblx0XHRoZWlnaHQ6IDU4N3B4O1xuXHRcdG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRtb2JpbGUtbmF2YmFyLWhlaWdodH0pO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHQvLyB0b3A6IGNhbGMoI3skZGVza3RvcC1uYXZiYXItaGVpZ2h0fSArIDIwcHgpXG5cdFx0XHRtYXgtd2lkdGg6IDYwMHB4OyB9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHR0b3A6IGNhbGMoI3skZGVza3RvcC1uYXZiYXItaGVpZ2h0fSArIDUwcHgpO1xuXHRcdFx0bWF4LXdpZHRoOiA3MTVweDtcblx0XHRcdGhlaWdodDogNTQwcHg7IH0gfVxuXG5cdCZfX2Nsb3NlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAyMHB4O1xuXHRcdHJpZ2h0OiAyMHB4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR3aWR0aDogMjVweDtcblx0XHRoZWlnaHQ6IDI1cHg7IH1cblxuXHQmX19jZW50ZXItYmxvY2sge1xuXHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuXHRcdGgxIHtcblx0XHRcdG1hcmdpbjogMjBweCAwIDQwcHg7XG5cdFx0XHRjb2xvcjogJGMyO1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7IH1cblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMjVweDtcblx0XHRcdHBhZGRpbmc6IDAgNDBweDtcblx0XHRcdGZvbnQtc2l6ZTogJHAyO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRwYWRkaW5nOiAwIDYwcHg7IH1cblxuXHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwOyB9IH0gfVxuXG5cdCZfX2ljb24ge1xuXHRcdHdpZHRoOiA1MHB4O1xuXHRcdGhlaWdodDogNTBweDsgfVxuXG5cdCYtLW9wZW4ge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0cG9pbnRlci1ldmVudHM6IGF1dG87IH0gfVxuIiwiLmluZ3JlZGllbnRzIHtcblx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1ob21lLXNlY3Rpb240LWluZ3JlZGllbnRzLW1vYmlsZS5qcGdcIik7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDExODBweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoNzY4IHVwKSB7XG5cdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1ob21lLXNlY3Rpb240LWluZ3JlZGllbnRzLWlwYWQyLmpwZ1wiKTtcblx0XHRwYWRkaW5nLXRvcDogNzVweDtcblx0XHRoZWlnaHQ6IDcwMHB4O1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7IH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KDg0MCB1cCkge1xuXHRcdGhlaWdodDogNzkzcHg7IH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuXHRcdEBpbmNsdWRlIGJhY2tncm91bmQtZmlsZShcIm9wdXMtZ3Jvd3MtaG9tZS1pbmdyZWRpZW50cy5qcGdcIik7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7IH1cblxuXHQmX19oZWFkZXIge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLXJvdztcblx0XHRcdG1hcmdpbi1ib3R0b206IDIzcHg7IH0gfVxuXG5cdCZfX2Zsb3dlcnBvdC1pY29uIHtcblx0XHRwYWRkaW5nOiA0OHB4IDAgMTBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoNzY4IHVwKSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbigxKTtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sLW9mZigxKTtcblx0XHRcdG1hcmdpbi1sZWZ0OiA3JTtcblx0XHRcdHBhZGRpbmc6IDA7IH1cblxuXHRcdHN2ZyB7XG5cdFx0XHR3aWR0aDogMzdweDtcblx0XHRcdGhlaWdodDogNDdweDtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCg3NjggdXApIHtcblx0XHRcdFx0d2lkdGg6IDUwcHg7XG5cdFx0XHRcdGhlaWdodDogNjVweDsgfSB9IH1cblxuXHQmX19oZWFkaW5ncyB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCg3NjggdXApIHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sdW1uKDUpOyB9IH1cblxuXHRoMyB7XG5cdFx0Y29sb3I6ICRjNTtcblx0XHRmb250LWZhbWlseTogXCJoYWxhbnRcIjtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdG1hcmdpbjogMDsgfVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCg3NjggdG8gODM5KSB7XG5cdFx0XHRmb250LXNpemU6IDIycHg7IH0gfVxuXG5cdGgxIHtcblx0XHRjb2xvcjogJGMxO1xuXHRcdGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCg3NjggdG8gODM5KSB7XG5cdFx0XHRmb250LXNpemU6IDMwcHg7IH0gfVxuXG5cdCZfX2ludHJvIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtcm93O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdHAge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbigzNSUpO1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbC1vZmYoMSk7XG5cdFx0XHRcdGZvbnQtc2l6ZTogJHAyO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMS40OyB9IH0gfVxuXG5cdCZfX2V4cGFuZGVkIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIGRvd24pIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7IH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG5cdFx0XHQvLyByZWxhdGl2ZSB0byBpbmdyZWRpZW50cyBjb250YWluZXIgd2hpY2ggaXMgZmlsbGVkIGJ5IGJhY2tncm91bmRcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiAxMjAwcHg7XG5cdFx0XHRoZWlnaHQ6IDc5M3B4O1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogY2FsYygoMTAwdncgLSAxMjAwcHgpIC8gMik7IH0gfSAvLyBmb3IgY2VudGVyaW5nXG5cblx0Jl9fc2luZ2xlLWluZ3JlZGllbnQge31cblxuXHQmX190b29sdGlwIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0XHRzdmcge1xuXHRcdFx0d2lkdGg6IDI1cHg7XG5cdFx0XHRoZWlnaHQ6IDI1cHg7IH1cblxuXHRcdCYtLWJpb2NoYXIge1xuXHRcdFx0dG9wOiAxMzBweDtcblx0XHRcdHJpZ2h0OiAxNDVweDsgfVxuXG5cdFx0Ji0tbXljb3JyaGl6YWUge1xuXHRcdFx0dG9wOiA1NzJweDtcblx0XHRcdHJpZ2h0OiA5OHB4OyB9XG5cblx0XHQmLS13b3JtLWNhc3RpbmdzIHtcblx0XHRcdHRvcDogMzQ1cHg7XG5cdFx0XHRsZWZ0OiAzODVweDsgfVxuXG5cdFx0Ji0tY29jb251dC1jb2lyLWZpYmVyIHtcblx0XHRcdHRvcDogMzgwcHg7XG5cdFx0XHRsZWZ0OiA3OThweDsgfSB9XG5cblx0Jl9fdG9vbHRpcC1saW5lIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRcdHN2ZyB7XG5cdFx0XHR3aWR0aDogNTAlOyB9XG5cblx0XHQmLS1iaW9jaGFyIHtcblx0XHRcdHRvcDogMzhweDtcblx0XHRcdHJpZ2h0OiA3cHg7IH1cblxuXHRcdCYtLW15Y29ycmhpemFlIHtcblx0XHRcdHRvcDogNTYycHg7XG5cdFx0XHRyaWdodDogODRweDtcblx0XHRcdHdpZHRoOiA0OHB4OyB9XG5cblx0XHQmLS13b3JtLWNhc3RpbmdzIHtcblx0XHRcdHRvcDogMjgwcHg7XG5cdFx0XHRsZWZ0OiAyNzBweDtcblx0XHRcdHdpZHRoOiAyMTBweDsgfVxuXG5cdFx0Ji0tY29jb251dC1jb2lyLWZpYmVyIHtcblx0XHRcdHRvcDogMjIwcHg7XG5cdFx0XHRsZWZ0OiA3MThweDsgfSB9XG5cblx0Jl9fdGV4dC1ibG9jayB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cblx0XHQmLS1iaW9jaGFyIHtcblx0XHRcdHRvcDogODJweDtcblx0XHRcdHJpZ2h0OiAzMjFweDsgfVxuXG5cdFx0Ji0tbXljb3JyaGl6YWUge1xuXHRcdFx0dG9wOiA2NTVweDtcblx0XHRcdHJpZ2h0OiAxMzlweDsgfVxuXG5cdFx0Ji0td29ybS1jYXN0aW5ncyB7XG5cdFx0XHR0b3A6IDM0MHB4O1xuXHRcdFx0bGVmdDogNDBweDsgfVxuXG5cdFx0Ji0tY29jb251dC1jb2lyLWZpYmVyIHtcblx0XHRcdHRvcDogMjA1cHg7XG5cdFx0XHRsZWZ0OiA1NDBweDsgfSB9XG5cblx0Jl9fbmFtZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHRcdGNvbG9yOiAkYzE7XG5cdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0Qm9vay1CYXNlXCI7XG5cdFx0Zm9udC1zaXplOiAkcDE7IH1cblxuXHQmX19kZXNjcmlwdGlvbiB7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNDtcblx0XHRjb2xvcjogJGM1O1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0Zm9udC1zaXplOiAkcDI7IH0gfVxuIiwiQG1peGluIGdyaWQtcm93LW1hcmdpbiB7XG4gIG1hcmdpbi1sZWZ0OiAkZ3JpZC1yb3ctb3V0ZXItZ3V0dGVyO1xuICBtYXJnaW4tcmlnaHQ6ICRncmlkLXJvdy1vdXRlci1ndXR0ZXI7IH1cblxuQG1peGluIGdyaWQtcm93LXBhZGRpbmcge1xuICBwYWRkaW5nLWxlZnQ6ICRncmlkLXJvdy1vdXRlci1ndXR0ZXI7XG4gIHBhZGRpbmctcmlnaHQ6ICRncmlkLXJvdy1vdXRlci1ndXR0ZXI7IH1cblxuLy8gYWxsb3dzIHNob3BpZnkgYXNzZXRfdXJsIGZvciBsYXRlc3Qgbm9uLWNhY2hlZCBpbWFnZVxuQG1peGluIGJhY2tncm91bmQtZmlsZSgkYXNzZXQtaW1hZ2Utd2l0aC1leHRlbnNpb24pIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcge3sgXCIjeyRhc3NldC1pbWFnZS13aXRoLWV4dGVuc2lvbn1cIiB8IGFzc2V0X3VybCB9fSAnKTsgfVxuIiwiLmhhbmQtZGVsaXZlcmVkIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGM4O1xuXHRwYWRkaW5nOiA5MHB4IDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gIFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1ob21lLWhhbmQtZGVsaXZlcmVkLWxlYWYtZnJhbWVzLmpwZ1wiKTtcbiAgXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBcdGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbTtcbiAgXHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIFx0aGVpZ2h0OiA3OTBweDtcbiAgXHRwYWRkaW5nOiAxMjFweCAwIDA7IH1cblxuXHRoMyB7XG5cdFx0Y29sb3I6ICRjNTtcblx0XHRmb250LWZhbWlseTogXCJoYWxhbnRcIjsgfVxuXG5cdGgxIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdGNvbG9yOiAkYzM7XG5cdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7IH1cblxuXHQmX19zdGVwcyB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1yb3coMyk7XG5cdFx0XHRtYXJnaW4tdG9wOiA1MHB4OyB9IH1cblxuXHQmX19zdGVwIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbCgxIG9mIDMpOyB9XG5cblx0XHRzdmcge1xuXHRcdFx0aGVpZ2h0OiA2MHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdGhlaWdodDogMTAwcHg7IH0gfVxuXG5cdFx0aDMge1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGNvbG9yOiAkYzM7XG5cdFx0XHRmb250LWZhbWlseTogXCJJbnRyb1J1c3RCb29rLUJhc2VcIjsgfVxuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0Y29sb3I6ICRjNTtcblx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHRmb250LXNpemU6ICRwMjsgfVxuXG5cdFx0Ji0tY2hvb3NlIHtcblx0XHRcdG1hcmdpbi10b3A6IDM3cHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDI1cHg7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogNzdweDsgfVxuXG5cdFx0XHRoMyB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDE0cHg7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjRweDsgfSB9IH1cblxuXHRcdCYtLXJlY2VpdmUge1xuXHRcdFx0bWFyZ2luLXRvcDogMzVweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMTZweDsgfVxuXG5cdFx0XHRoMyB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDNweDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTJweDtcblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMjNweDtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyNXB4OyB9IH1cblxuXHRcdFx0cCB7XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0XHRib3JkZXI6IDAgMnB4IDAgMnB4IHNvbGlkICRjNjsgfSB9IH1cblxuXHRcdCYtLWdyb3cge1xuXHRcdFx0bWFyZ2luLXRvcDogMzVweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMHB4O1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiA3MHB4OyB9XG5cblx0XHRcdGgzIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMTRweDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogNDBweDtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyNHB4OyB9IH0gfSB9IH1cbiIsIi5oaWdobGlnaHQtYXJ0aWNsZSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzg7XG5cbiAgLmhvbWVwYWdlICYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1NXB4OyB9IH1cblxuICAmX19tb2JpbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjMTtcbiAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJGM4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcImhhbGFudFwiO1xuICAgICAgZm9udC1zaXplOiAyMnB4OyB9XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkYzg7XG4gICAgICBmb250LXNpemU6ICRwMjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkYzg7IH1cblxuICAgIHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgZmlsbDogJGM4OyB9XG5cbiAgICAuYmxvZyAmIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4gICZfX2ludHJvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzE7XG4gICAgaGVpZ2h0OiA0MzBweDtcbiAgICBwYWRkaW5nLXRvcDogODBweDtcbiAgICBjb2xvcjogJGM4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuICAgIGgzIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcImhhbGFudFwiOyB9XG5cbiAgICBoMSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7IH1cblxuICAgIC5ibG9nICYge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbiAgJl9fb3V0ZXIge1xuICAgIC5ob21lcGFnZSAmIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93KDE2KTtcbiAgICAgIG1hcmdpbi10b3A6IC0yMTVweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH0gfVxuXG4gICZfX2lubmVyIHtcblxuICAgIC5ob21lcGFnZSAmIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sKDE0KTtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sLW9mZigxKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfSB9XG5cbiAgJl9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogOCU7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgaGVpZ2h0OiA3NXB4O1xuXG4gICAgLmJsb2cgJiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuICAmX19pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAuYmxvZyAmIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAzMThweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogNTc3cHg7IH0gfVxuXG5cbiAgICAuaG9tZXBhZ2UgJiB7XG4gICAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGhlaWdodDogNDMwcHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9IH1cblxuICAmX19jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzc7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICBwYWRkaW5nOiAzNXB4IDIwcHg7IH1cblxuICAgIC5ibG9nICYge1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogNTc3cHg7IH1cblxuICAgICAgLmNlbnRlcmVkLWJveCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIG1hcmdpbjogcmVtLWNhbGMoOTApIDkuOXJlbSAwIDEuMjVyZW07XG4gICAgICAgICAgbWF4LXdpZHRoOiA0MjBweDsgfSB9IH1cblxuICAgIC5ob21lcGFnZSAmIHtcbiAgICAgIC8vIHBhZGRpbmc6IDUwcHggNTVweCA0MHB4XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgaGVpZ2h0OiA0MzBweDtcblxuICAgICAgLmNlbnRlcmVkLWJveCB7XG4gICAgICAgIG1hcmdpbjogcmVtLWNhbGMoODkpIDAgMCAxMyU7XG4gICAgICAgIHdpZHRoOiAzODBweDsgfSB9XG5cbiAgICBoMyB7XG4gICAgICBtYXJnaW46IDVweCAwO1xuICAgICAgY29sb3I6ICRjNTtcbiAgICAgIGZvbnQtZmFtaWx5OiBcImhhbGFudFwiO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIG1hcmdpbjogNTBweCAwIDA7IH1cblxuICAgICAgLmhvbWVwYWdlICYge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH0gfVxuXG4gICZfX2RhdGEge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pOyB9XG5cbiAgJl9fY2F0ZWdvcnkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAkcDI7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4gICZfX2RhdGUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogJHAyO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG5cbiAgICAuaG9tZXBhZ2UgJiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuICAmX190aXRsZSB7XG5cbiAgICAmLS1ibG9nIHtcbiAgICAgIG1hcmdpbjogMCAwIDMwcHg7XG4gICAgICBjb2xvcjogJGMxO1xuICAgICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7XG5cbiAgICAgIC5ob21lcGFnZSAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbiAgICAmLS1ob21lcGFnZSB7XG4gICAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgICAgY29sb3I6ICRjNTtcbiAgICAgIGZvbnQtZmFtaWx5OiBcInByb3hpbWEtbm92YVwiO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgIC5ibG9nICYge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH0gfVxuXG4gICZfX2V4Y2VycHQge1xuICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICAgIGNvbG9yOiAkYzU7XG4gICAgZm9udC1zaXplOiAkcDI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuXG4gICAgICAuaG9tZXBhZ2UgJiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH0gfSB9XG5cbiAgJl9fcmVhZC1tb3JlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgIGEge1xuICAgICAgQGV4dGVuZCAlaG92ZXItMzA7XG4gICAgICBjb2xvcjogJGM1O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGZvbnQtc2l6ZTogJHAyO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRjNTsgfSB9XG5cbiAgICBzdmcge1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGZpbGw6ICRjNTsgfSB9IH1cbiIsIi5sYXRlc3QtYXJ0aWNsZXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTsgfVxuXG4gICZfX3JvdyB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3coMTYpOyB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbCgxNSk7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2wtb2ZmKDEpO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cbiAgICBoMyB7XG4gICAgICBjb2xvcjogJGMxO1xuICAgICAgZm9udC1mYW1pbHk6IFwiSW50cm9SdXN0Qm9vay1CYXNlXCI7IH0gfVxuXG4gICZfX2NvbnRhaW5lciB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbCgxNCk7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC1vZmYoMSk7IH0gfVxuXG4gICZfX3NpbmdsZS1hcnRpY2xlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoODEpO1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzJSAtICN7cmVtLWNhbGMoNTQpfSk7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzQlIC0gI3tyZW0tY2FsYyg1NCl9KTsgfSB9XG5cbiAgJl9fZmVhdHVyZWQtaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogOTUlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGhlaWdodDogYXV0bztcblxuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgei1pbmRleDogMztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYzEsIDAuNSk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zM3M7XG4gICAgICBjb250ZW50OiBcIlwiOyB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjo6YWZ0ZXIsXG4gICAgICBzdmcge1xuICAgICAgICBvcGFjaXR5OiAxOyB9IH0gfVxuXG4gIHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB6LWluZGV4OiAzO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgIHdpZHRoOiByZW0tY2FsYyg1MCk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYyg1MCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuICAmX19kYXRhIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAvLyBtYXJnaW4tdG9wOiAtNDVweCAvLyB0byBhY291bnQgZm9yIHJlbGF0aXZlIHN2Z1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogJHAyO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuICAmX19jYXRlZ29yeSB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuICAmX19kYXRlIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuICAmX190aXRsZSB7XG5cbiAgICBoMyB7XG4gICAgICBtYXJnaW46IDAgMCAzMHB4O1xuICAgICAgY29sb3I6ICRjNTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRjNTsgfSB9IH0gfVxuIiwiLm1pbmktY2FydCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IGNhbGMoICgoMTAwdncgLSAjeyRncmlkLXJvdy13aWR0aH0pIC8gMikgKyAxNTVweCk7XG5cdG9wYWNpdHk6IDA7IC8vIGhpZGUgYW5kIGZhZGUgaW4gd2hlbiBjbGlja2luZyBjYXJ0IG9uIGRlc2t0b3Bcblx0Ym9yZGVyOiAwIDJweCAycHggc29saWQgcmdiYSgwLDAsMCwwLjA1KTtcblx0YmFja2dyb3VuZC1jb2xvcjogJGM4O1xuXHR3aWR0aDogNDAwcHg7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdCZfX2hlYWRlciB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRtYXJnaW4tbGVmdDogNTVweDtcblx0XHRwYWRkaW5nOiAyM3B4IDA7XG5cdFx0Y29sb3I6ICRjNTtcblx0XHRmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjtcblx0XHRmb250LXNpemU6ICRwMTsgfVxuXG5cdCZfX2NvbnRlbnQge1xuXHRcdEBpbmNsdWRlIGNsZWFyZml4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjODtcblxuXHRcdGhyIHtcblx0XHRcdG1hcmdpbjogMTBweCA0NXB4IDAgNTVweDtcblx0XHRcdGhlaWdodDogMnB4O1xuXHRcdFx0Y29sb3I6ICRjNzsgfSB9XG5cblx0Jl9faXRlbSB7XG5cdFx0cGFkZGluZzogMTBweCAwO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0Zm9udC1zaXplOiAkcDI7IH1cblxuXHQmX19pdGVtLXRodW1iIHtcblx0XHRtYXJnaW46IDNweCAxNXB4IDAgNTVweDtcblx0XHRmbG9hdDogbGVmdDtcblxuXHRcdGltZyB7XG5cdFx0XHR3aWR0aDogNjBweDsgfSB9XG5cblx0Jl9faXRlbS10aXRsZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRwYWRkaW5nLXRvcDogMTBweDtcblx0XHRmb250LXdlaWdodDogNzAwOyB9XG5cblx0Jl9faXRlbS1xdWFudGl0eS1wcmljZSB7XG5cdFx0Zm9udC1zaXplOiAkcDI7IH1cblxuXHQmX19mb290ZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjODtcblx0XHRwYWRkaW5nLXRvcDogMjBweDtcblx0XHRoZWlnaHQ6IDgwcHg7XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiA1NXB4O1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDM3cHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Zm9udC1zaXplOiAkcDI7IH0gfVxuXG5cdCZfX3N1YnRvdGFsIHtcblx0XHRtYXJnaW4tbGVmdDogNXB4OyB9XG5cblx0Jl9fbGluay1idXR0b24ge1xuXHRcdEBleHRlbmQgJWJ1dHRvbjtcblx0XHRtYXJnaW4tcmlnaHQ6IDQ1cHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdHdpZHRoOiAxMjVweDtcblx0XHRmb250LXNpemU6ICRwMjsgfSB9XG4iLCIubmF0dXJhbC1vcmdhbmljIHtcblx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdGJhY2tncm91bmQ6ICRjNztcblx0cGFkZGluZzogNTdweCAwIDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0cGFkZGluZzogMTUwcHggMCA0NXB4OyB9XG5cblx0aDMge1xuXHRcdG1hcmdpbjogMDtcblx0XHRjb2xvcjogJGM1O1xuXHRcdGZvbnQtZmFtaWx5OiBcImhhbGFudFwiOyB9XG5cblx0aDEge1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdFx0Y29sb3I6ICRjMztcblx0XHRmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdG1hcmdpbi10b3A6IC0zcHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA1MHB4OyB9IH1cblxuXHQmX19tb2JpbGUtaW1hZ2Uge1xuXHRcdG1hcmdpbi10b3A6IDUwcHg7XG5cdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1ob21lLW5hdHVyYWwtb3JnYW5pYy0xLmpwZ1wiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMCU7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDQ0N3B4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0ZGlzcGxheTogbm9uZTsgfSB9XG5cblx0Jl9fYm94ZXMge1xuXHRcdEBpbmNsdWRlIGdyaWQtY29udGV4dCgzKTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5cdCZfX2JveCB7XG5cdFx0QGluY2x1ZGUgZ3JpZC1jb2woMSwgMCk7XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGJhY2tncm91bmQ6ICRjNztcblx0XHRcdHBhZGRpbmc6IDQwcHggMCAwO1xuXHRcdFx0aGVpZ2h0OiAxODVweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjQ7XG5cdFx0XHRmb250LWZhbWlseTogXCJJbnRyb1J1c3RCb29rLUJhc2VcIjtcblx0XHRcdGZvbnQtc2l6ZTogJHAxOyB9IH0gfVxuIiwiJGxpLW5ldXRyYWwtaGVpZ2h0OiBjYWxjKCgxMDB2aCAtICN7JG1vYmlsZS1uYXZiYXItaGVpZ2h0fSkgLyA0KTtcblxuLmRlc2t0b3AtbmF2YmFyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgei1pbmRleDogMTAwMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGRlc2t0b3AtbmF2YmFyLWhlaWdodDtcbiAgYmFja2dyb3VuZDogJGM4O1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSgwLDAsMCwwLjA1KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4gICYuc3F1aXNoZWQge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgIGhlaWdodDogJGRlc2t0b3AtbmF2YmFyLWhlaWdodC1zcXVpc2hlZDsgfVxuXG5cbiAgJl9fY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICBoZWlnaHQ6ICRkZXNrdG9wLW5hdmJhci1oZWlnaHQ7XG5cbiAgICAuc3F1aXNoZWQgJiB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgIGhlaWdodDogJGRlc2t0b3AtbmF2YmFyLWhlaWdodC1zcXVpc2hlZDsgfSB9XG5cbiAgJl9fbG9nbyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6ICRuYXYtY29sdW1uLWd1dHRlcjtcblxuICAgIHN2ZyB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgIHdpZHRoOiAyNDVweDtcbiAgICAgIGhlaWdodDogJGRlc2t0b3AtbmF2YmFyLWhlaWdodDtcblxuICAgICAgLnNxdWlzaGVkICYge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgICAgaGVpZ2h0OiAkZGVza3RvcC1uYXZiYXItaGVpZ2h0LXNxdWlzaGVkOyB9IH0gfVxuXG4gICZfX21lbnUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRuYXYtY29sdW1uLWd1dHRlcjtcblxuICAgIHVsIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuICAgIGxpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDM1cHg7IH1cblxuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbGluZS1oZWlnaHQ6ICRkZXNrdG9wLW5hdmJhci1oZWlnaHQ7XG4gICAgICBjb2xvcjogJGM1O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcblxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkYzU7IH1cblxuICAgICAgLnNxdWlzaGVkICYge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRkZXNrdG9wLW5hdmJhci1oZWlnaHQtc3F1aXNoZWQ7IH0gfSB9XG5cbiAgJl9fbWVudS1saW5rIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDMycHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb250ZW50OiBcIl9fXCI7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgLnNxdWlzaGVkICYge1xuICAgICAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4zcztcbiAgICAgICAgYm90dG9tOiAxN3B4OyB9IH1cblxuICAgIC8vIHVuZGVybGluZSBhY3RpdmUgcGFnZS9wYXJlbnQgbGluaywgYW5kIG9uIGhvdmVyXG4gICAgJjpob3ZlcixcbiAgICAmLS1hY3RpdmUge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgICAgICAgb3BhY2l0eTogMTsgfSB9IH1cblxuICAmX19jYXJ0LWluZm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvLyBUT0RPOiByZWR1Y2Ugc3BlY2lmaWNpdHkgYWJvdmUgc28gZG9uJ3QgaGF2ZSB0byB1c2UgIWltcG9ydGFudFxuICAgIG1hcmdpbi1sZWZ0OiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHggIWltcG9ydGFudDtcblxuICAgIHN2ZyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDdweDtcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgaGVpZ2h0OiAzMHB4OyB9IH1cblxuICAmX19jYXJ0LWl0ZW0tY291bnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGhlaWdodDogMjVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuICAmX19zaWduLWluIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICBwYWRkaW5nOiAwIDQwcHg7XG4gICAgYmFja2dyb3VuZDogJGM1O1xuICAgIGNvbG9yOiAkYzg7XG5cbiAgICBhLCBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYzg7XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9IH1cblxuICAvL2Ryb3Bkb3duXG4gICZfX21lbnUtc3ViIHtcbiAgICAmOmhvdmVyIC5kZXNrdG9wLW5hdmJhcl9fbWVudS1zdWItd3JhcCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfSB9XG5cbiAgJl9fbWVudS1zdWItd3JhcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGM3O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMTQ1LDE0MywxNDAsMC4xNSk7XG4gICAgbGVmdDogLTQuNHJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogcmVtLWNhbGMoMTk0KSAhaW1wb3J0YW50O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgbGkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggJGM4IHNvbGlkO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuICAgICAgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0Ljk7IH0gfSB9IH1cblxuLm1vYmlsZS1uYXZiYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRtb2JpbGUtbmF2YmFyLWhlaWdodDtcbiAgYmFja2dyb3VuZDogJGM4O1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSgwLDAsMCwwLjA1KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4gICZfX3RvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6ICRtb2JpbGUtbmF2YmFyLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRtb2JpbGUtbmF2YmFyLWhlaWdodDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6ICRtb2JpbGUtbmF2YmFyLWhlaWdodDtcbiAgICBjb2xvcjogJGM1O1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogJG1vYmlsZS1uYXZiYXItaGVpZ2h0IC8gMjtcblxuICAgICYtLW9wZW4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGM3OyB9IH1cblxuICAmX19sb2dvIHtcbiAgICBoZWlnaHQ6ICRtb2JpbGUtbmF2YmFyLWhlaWdodDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDE3NXB4O1xuICAgICAgaGVpZ2h0OiAkbW9iaWxlLW5hdmJhci1oZWlnaHQ7IH0gfVxuXG4gICZfX2NhcnQtaW5mbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogODBweDtcbiAgICBsaW5lLWhlaWdodDogJG1vYmlsZS1uYXZiYXItaGVpZ2h0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDZweDtcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgaGVpZ2h0OiAzMHB4OyB9IH1cblxuICAmX19jYXJ0LWl0ZW0tY291bnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4gICZfX21lbnUge1xuICAgIC8vIHdpbGwgdG9nZ2xlIHdpdGggalF1ZXJ5XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBsaW5lYXI7XG5cbiAgICB1bCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzc7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkbW9iaWxlLW5hdmJhci1oZWlnaHQ7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuXG4gICAgbGkge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjODtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4gICAgICAmLnNocmluayB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKCgxMDB2aCAtICN7JG1vYmlsZS1uYXZiYXItaGVpZ2h0fSAtICgoMTAwdmggLSAjeyRtb2JpbGUtbmF2YmFyLWhlaWdodH0pIC8gNCkpIC8gNik7XG5cbiAgICAgICAgLm1vYmlsZS1uYXZiYXJfX2NoaWxkLWl0ZW0ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogY2FsYygoMTAwdmggLSAjeyRtb2JpbGUtbmF2YmFyLWhlaWdodH0gLSAoKDEwMHZoIC0gI3skbW9iaWxlLW5hdmJhci1oZWlnaHR9KSAvIDQpKSAvIDYpOyB9IH1cblxuICAgICAgLy8gJjpudGgtY2hpbGQoLW4rMilcbiB9ICAgICAgLy8gICBib3gtc2hhZG93OiAwIC0ycHggMCAwICRjOCBpbnNldFxuXG4gICAgYSB7XG4gICAgICBjb2xvcjogJGM1O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogJGxpLW5ldXRyYWwtaGVpZ2h0O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgaDIge1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfSB9XG5cbiAgICAvLyBuZXN0ZWQgY2hpbGQgbGlzdCBpdGVtc1xuICAgIGxpLm1vYmlsZS1uYXZiYXJfX2NoaWxkLWl0ZW0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJi5vcGVuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGM2O1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGM4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH0gfSB9IH1cblxuICAmX19zaWduLWluIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzU7XG4gICAgY29sb3I6ICRjODtcbiAgICBsaW5lLWhlaWdodDogJGxpLW5ldXRyYWwtaGVpZ2h0ICFpbXBvcnRhbnQ7XG5cbiAgICBhIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGktbmV1dHJhbC1oZWlnaHQgIWltcG9ydGFudDsgfVxuXG4gICAgYSwgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgICBjb2xvcjogJGM4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50OyB9IH0gfVxuIiwiLnByb2R1Y3Qtc3VtbWFyeSB7XG5cdHBhZGRpbmctdG9wOiAzMHB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMXB4O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRwYWRkaW5nLXRvcDogNTBweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogNDVweDsgfVxuXG5cdCZfX2NvbnRhaW5lciB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1yb3coMTYpOyB9IH1cblxuXHQmLS1taXgtbm8tMSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGM3OyB9XG5cblx0Ji0tbWl4LW5vLTIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjODsgfVxuXG5cdCYtLW1peC1uby0zIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYzc7IH1cblxuXHQmLS1hbWVuZG1lbnQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjNzsgfVxuXG5cdCZfX2ltYWdlcyB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2woMzklKTtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sLW9mZig4JSk7IH0gfVxuXG5cdCZfX2ltYWdlLXdyYXBwZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHR3aWR0aDogMjEwcHg7XG5cdFx0aGVpZ2h0OiAyNTVweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdHdpZHRoOiA0NTBweDtcblx0XHRcdGhlaWdodDogNTUwcHg7IH1cblxuXHRcdGltZyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAxLjVzO1xuXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRvcGFjaXR5OiAwOyB9XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwOyB9XG5cblx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAxOyB9IH0gfVxuXG5cdFx0Ji0tYW1lbmRtZW50IHtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMzVweDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogLTI1cHg7XG5cdFx0XHRcdHdpZHRoOiAzOTBweDsgfSB9IH1cblxuXHQmX19kZXRhaWxzIHtcblx0XHRwYWRkaW5nLXRvcDogMjBweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbCg0NyUpO1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2wtb2ZmKC0yJSk7XG5cdFx0XHRwYWRkaW5nLXRvcDogMTc4cHg7IH1cblxuXHRcdGgzIHtcblx0XHRcdGNvbG9yOiAkYzU7XG5cdFx0XHRmb250LWZhbWlseTogXCJoYWxhbnRcIjtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7IH1cblxuXHRcdGgxIHtcblx0XHRcdGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7IH0gfSB9XG5cblx0Jl9fdGl0bGUge1xuXG5cdFx0Ji0tbWl4LW5vLTEge1xuXHRcdFx0Y29sb3I6ICRjMzsgfVxuXG5cdFx0Ji0tbWl4LW5vLTIge1xuXHRcdFx0Y29sb3I6ICRjMjsgfVxuXG5cdFx0Ji0tbWl4LW5vLTMge1xuXHRcdFx0Y29sb3I6ICRjNDsgfVxuXG5cdFx0Ji0tYW1lbmRtZW50IHtcblx0XHRcdGNvbG9yOiAkYzE7IH0gfVxuXG5cdCZfX2Rlc2NyaXB0aW9uIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRkaXNwbGF5OiBub25lOyB9XG5cblx0XHQmLS1taXgtbm8tMSB7XG5cdFx0XHRtYXgtd2lkdGg6IDQ5MHB4OyB9XG5cblx0XHQmLS1taXgtbm8tMiB7XG5cdFx0XHRtYXgtd2lkdGg6IDQ5MHB4OyB9XG5cblx0XHQmLS1taXgtbm8tMyB7XG5cdFx0XHRtYXgtd2lkdGg6IDUxMHB4OyB9XG5cblx0XHQmLS1hbWVuZG1lbnQge1xuXHRcdFx0bWF4LXdpZHRoOiA1MzVweDsgfVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRsaW5lLWhlaWdodDogMS40OyB9IH1cblxuXHQmX19saW5rLWJ1dHRvbiB7XG5cdFx0QGV4dGVuZCAlYnV0dG9uO1xuXHRcdG1hcmdpbjogNDBweCAwIDYwcHg7XG5cdFx0d2lkdGg6IDIwMHB4O1xuXHRcdGZvbnQtc2l6ZTogJHAyO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0bWFyZ2luOiAzMHB4IDAgMDsgfVxuXG5cdFx0Ji0tYW1lbmRtZW50IHtcblx0XHRcdHdpZHRoOiAyMjBweDsgfSB9IH1cbiIsIi5wcm9kdWN0LWV4dGVuZGVkIHtcbiAgLy8gTk9URTogbm90IHVzaW5nIGEgZ3JpZCByb3cgaGVyZSwgc2luY2UgdXBkYXRlZCBzZWN0aW9uIGhlYWRlcnMgd2lsbCBjYXVzZSB3cmFwcGluZyBpZiBtYXRjaCBpbml0aWFsIGRlc2lnbiBAMzc1cHhcbiAgYmFja2dyb3VuZC1jb2xvcjogJGM3O1xuXG4gIHVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7IH0gfVxuXG4gICZfX2JveCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYzg7XG4gICAgbGluZS1oZWlnaHQ6IDc1cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogJGM1O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAkcDE7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzY7XG4gICAgICB3aWR0aDogMzMuMzMlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICRjODtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjNzsgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjNzsgfVxuXG4gICAgICAmLS1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzc7XG4gICAgICAgIGNvbG9yOiAkYzU7IH0gfSB9XG5cbiAgJl9fYm94LWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIHBhZGRpbmctcmlnaHQ6IDMlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDFzO1xuICAgIG1heC1oZWlnaHQ6IDBweDsgLy8gdXNlIGluc3RlYWQgb2YgaGVpZ2h0IGZvciBzbW9vdGggdHJhbnNpdGlvblxuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiAkYzU7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXNpemU6ICRwMjtcblxuICAgIC8vIGxheW91dCBjbGFzc2VzIHNldCBpbiBtZXRhZmllbGQgY29udGVudCBvZiBwcm9kdWN0XG4gICAgLnJpZ2h0IHtcbiAgICAgIG1hcmdpbi10b3A6IDFlbTsgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gICAgICBkaXNwbGF5OiBub25lOyAvLyB3aWxsIHVzZSBqUXVlcnkgdG8gZGlzcGxheSBiZWxvdyB1bFxuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDc1cHggMTAuNXB4IDc1cHg7XG5cblxuICAgICAgLy8gbGF5b3V0IGNsYXNzZXMgc2V0IGluIG1ldGFmaWVsZCBjb250ZW50IG9mIHByb2R1Y3RcbiAgICAgIC5sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2woNTAlKTtcbiAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuICAgICAgLnJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2woNTAlKTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9IH1cblxuICAmX19sb2dvcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiAxNTBweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICB3aWR0aDogMjAwcHg7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfSB9IH1cblxuICAvLyBlbXB0eSBjb250YWluZXIgdXNlZCBieSBqUXVlcnkgdG8gaW5qZWN0IGJveC1jb250ZW50IChkZXNrdG9wIG9ubHkpXG4gICZfX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH0gfVxuXG4vLyBzdmdzIGZvciBzaG93aW5nL2hpZGluZyBjb250ZW50XG4ubW9yZS1pbmZvcm1hdGlvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiA0JTtcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogNzVweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4gIC8vIGhpZGUgYW5kIHRvZ2dsZSB3aXRoIGpRdWVyeVxuICAmLS1jb250cmFjdCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4gICYtLWNsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMjVweDtcbiAgICAgIGhlaWdodDogNzVweDsgfSB9IH1cbiIsIi5wcm9kdWN0LWxvb3Age1xuXHRAaW5jbHVkZSBjbGVhcmZpeDtcblx0cGFkZGluZy10b3A6IDEwcHg7XG5cdGhlaWdodDogMTY1cHg7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0YSB7XG5cdFx0Y29sb3I6ICRjNTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRjNTsgfSB9XG5cblx0Jl9fdGh1bWIge1xuXHRcdG1hcmdpbi1yaWdodDogMTVweDtcblx0XHRmbG9hdDogbGVmdDtcblxuXHRcdGltZyB7XG5cdFx0XHR3aWR0aDogMTAwcHg7IH0gfVxuXG5cdCZfX3N1YnRpdGxlIHtcblx0XHRtYXJnaW46IDM1cHggMCAwO1xuXHRcdGZvbnQtc2l6ZTogJHAyO1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuXHQmX190aXRsZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRmb250LXdlaWdodDogYm9sZDsgfVxuXG5cdCZfX3ByaWNlIHtcblx0XHRmb250LXNpemU6ICRwMjtcblx0XHRmb250LXdlaWdodDogYm9sZDsgfSB9XG4iLCIucHJvZHVjdC11c2FnZSB7XG5cdC8vIGZpeCBmb3IgY2xhc2ggYmV0d2VlbiBhbmltYXRlZCBoZWFkZXIgYW5kIHRoZSBwcm9kdWN0IHF1YW50aXR5IGRyb3Bkb3duXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMjtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdCZfX2hlYWRlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGM3O1xuXHRcdGhlaWdodDogMTI3cHg7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIHNldCBiZWNhdXNlIG9wYWNpdHkgc2V0dGluZyByZXF1aXJlZCBmb3IgYW5pbWF0aW9uIGNhdXNlcyBjb25mbGljdCB3aXRoIGN1c3RvbSBxdWFudGl0eSBkcm9wZG93biBmcm9tIHNlY3Rpb24gYWJvdmVcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGhlaWdodDogMTgwcHg7IH1cblxuXHRcdGgxIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGxpbmUtaGVpZ2h0OiAxMjdweDtcblx0XHRcdGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxNzFweDsgfSB9XG5cblx0XHRoMyB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRjb2xvcjogJGM1O1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwiaGFsYW50XCI7IH0gfVxuXG5cdCZfX2Jsb2NrcyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGM4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0QGluY2x1ZGUgY2xlYXJmaXg7IH0gfVxuXG5cdCZfX3NpbmdsZS1ibG9jayB7XG5cblx0XHQmLS0yIHtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlOyB9IH0gfVxuXG5cdCZfX2Jsb2NrLWltYWdlIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAzMzZweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRoZWlnaHQ6IDYxM3B4OyB9XG5cblx0XHQmLS0xIHtcblx0XHRcdEBpbmNsdWRlIGJhY2tncm91bmQtZmlsZShcIm9wdXMtZ3Jvd3MtcHJvZHVjdC1wZXJmZWN0LWZvci1pbWFnZTEuanBlZ1wiKTtcblxuXHRcdFx0Lm1peC1uby0xICYge1xuXHRcdFx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWZpbGUoXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItbWl4MS1pbWFnZTEuanBlZ1wiKTsgfVxuXG5cdFx0XHQubWl4LW5vLTIgJiB7XG5cdFx0XHRcdEBpbmNsdWRlIGJhY2tncm91bmQtZmlsZShcIm9wdXMtZ3Jvd3MtcHJvZHVjdC1wZXJmZWN0LWZvci1taXgyLWltYWdlMS5qcGVnXCIpOyB9XG5cblx0XHRcdC5taXgtbm8tMyAmIHtcblx0XHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1wcm9kdWN0LXBlcmZlY3QtZm9yLW1peDMtaW1hZ2UxLmpwZWdcIik7IH1cblxuXHRcdFx0LmFtZW5kbWVudCAmIHtcblx0XHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1wcm9kdWN0LXBlcmZlY3QtZm9yLWFtZW5kbWVudC1pbWFnZTEuanBlZ1wiKTsgfSB9XG5cblx0XHQmLS0yIHtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiA2MTNweDsgfVxuXG5cdFx0XHQubWl4LW5vLTEgJiB7XG5cdFx0XHRcdEBpbmNsdWRlIGJhY2tncm91bmQtZmlsZShcIm9wdXMtZ3Jvd3MtcHJvZHVjdC1wZXJmZWN0LWZvci1taXgxLWltYWdlMi5qcGVnXCIpOyB9XG5cblx0XHRcdC5taXgtbm8tMiAmIHtcblx0XHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1wcm9kdWN0LXBlcmZlY3QtZm9yLW1peDItaW1hZ2UyLmpwZWdcIik7IH1cblxuXHRcdFx0Lm1peC1uby0zICYge1xuXHRcdFx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWZpbGUoXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItbWl4My1pbWFnZTIuanBlZ1wiKTsgfVxuXG5cdFx0XHQuYW1lbmRtZW50ICYge1xuXHRcdFx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWZpbGUoXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItYW1lbmRtZW50LWltYWdlMi5qcGVnXCIpOyB9IH1cblxuXHRcdCYtLTMge1xuXHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1wcm9kdWN0LXBlcmZlY3QtZm9yLWltYWdlMS5qcGVnXCIpO1xuXG5cdFx0XHQubWl4LW5vLTEgJiB7XG5cdFx0XHRcdEBpbmNsdWRlIGJhY2tncm91bmQtZmlsZShcIm9wdXMtZ3Jvd3MtcHJvZHVjdC1wZXJmZWN0LWZvci1taXgxLWltYWdlMy5qcGVnXCIpOyB9XG5cblx0XHRcdC5taXgtbm8tMiAmIHtcblx0XHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1wcm9kdWN0LXBlcmZlY3QtZm9yLW1peDItaW1hZ2UzLmpwZWdcIik7IH1cblxuXHRcdFx0Lm1peC1uby0zICYge1xuXHRcdFx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWZpbGUoXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItbWl4My1pbWFnZTMuanBlZ1wiKTsgfVxuXG5cdFx0XHQuYW1lbmRtZW50ICYge1xuXHRcdFx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWZpbGUoXCJvcHVzLWdyb3dzLXByb2R1Y3QtcGVyZmVjdC1mb3ItYW1lbmRtZW50LWltYWdlMy5qcGVnXCIpOyB9IH0gfVxuXG5cblx0Jl9fYmxvY2stY29udGVudCB7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0aGVpZ2h0OiAzNjVweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRoZWlnaHQ6IDYxM3B4OyB9XG5cblx0XHRzdmcge1xuXHRcdFx0aGVpZ2h0OiA1MHB4O1xuXG5cdFx0XHQuYW1lbmRtZW50ICYge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lOyB9IH1cblxuXHRcdGgzIHtcblx0XHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0Qm9vay1CYXNlXCI7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMjVweDsgfSB9XG5cblx0XHRwIHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sLXJvdztcblx0XHRcdG1hcmdpbi10b3A6IDI1cHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDIxcHg7XG5cdFx0XHRmb250LXNpemU6ICRwMjtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcblx0XHRcdFx0d2lkdGg6IDQ3M3B4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMjdweDtcblx0XHRcdFx0Zm9udC1zaXplOiAkcDE7IH0gfVxuXG5cdFx0Ji0tMSB7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdHN2ZyB7XG5cdFx0XHRcdFx0aGVpZ2h0OiA2MnB4OyB9IH0gfVxuXG5cdFx0Ji0tMiB7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdFx0aGVpZ2h0OiA2MTNweDtcblxuXHRcdFx0XHRzdmcge1xuXHRcdFx0XHRcdGhlaWdodDogNjVweDsgfVxuXG5cdFx0XHRcdGgzIHtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiAzOXB4OyB9IH0gfVxuXG5cdFx0Ji0tMyB7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdHN2ZyB7XG5cdFx0XHRcdFx0aGVpZ2h0OiA2NXB4OyB9XG5cblx0XHRcdFx0aDMge1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDIwcHg7IH1cblxuXHRcdFx0XHRwIHtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiAzMHB4OyB9IH0gfSB9XG5cblx0Jl9fYmxvY2stY2VudGVyZWQge1xuXHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgfSB9XG4iLCIucmVsYXRlZC1wcm9kdWN0cyB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGJhY2tncm91bmQtY29sb3I6ICRjODtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYzc7IH1cblxuXHRwIHtcblx0XHRwYWRkaW5nLXRvcDogNTBweDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGZvbnQtc2l6ZTogJHAxO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0Ly8gbWFyZ2luOiA1MHB4IDAgLTUwcHhcblx0XHRcdC8vIHBhZGRpbmctdG9wOiAwXG5cdFx0XHRkaXNwbGF5OiBub25lOyB9IH1cblxuXHQmX19jb250YWluZXIge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtcm93KDMpOyB9IH0gfVxuXG4ucmVsYXRlZC1wcm9kdWN0IHtcblx0aGVpZ2h0OiAzNTFweDtcblx0cGFkZGluZy10b3A6IDQwcHg7XG5cdC8vIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYzdcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0QGluY2x1ZGUgZ3JpZC1jb2woMSk7XG5cdFx0dHJhbnNpdGlvbjogYWxsIDAuN3M7XG5cdFx0aGVpZ2h0OiA0NzBweDtcblx0XHRwYWRkaW5nLXRvcDogMjQwcHg7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHBhZGRpbmctdG9wOiAxMjBweDsgfSB9XG5cblx0Jl9fc3VidGl0bGUge1xuXHRcdGNvbG9yOiAkYzU7XG5cdFx0Zm9udC1mYW1pbHk6IFwiaGFsYW50XCI7IH1cblxuXHQmX190aXRsZSB7XG5cdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7XG5cblx0XHQmLS1taXgtbm8tMSB7XG5cdFx0XHRjb2xvcjogJGMzOyB9XG5cblx0XHQmLS1taXgtbm8tMiB7XG5cdFx0XHRjb2xvcjogJGMyOyB9XG5cblx0XHQmLS1taXgtbm8tMyB7XG5cdFx0XHRjb2xvcjogJGM0OyB9XG5cblx0XHQmLS1hbWVuZG1lbnQge1xuXHRcdFx0Y29sb3I6ICRjMTsgfSB9XG5cblx0Jl9faW1hZ2Uge1xuXG5cdFx0Ji0tbW9iaWxlIHtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTsgfVxuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAxNXB4O1xuXHRcdFx0XHR3aWR0aDogMTI1cHg7IH0gfVxuXG5cdFx0Ji0tZGVza3RvcCB7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7IH1cblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMTVweDtcblx0XHRcdFx0d2lkdGg6IDI2MHB4OyB9IH0gfSB9XG4iLCIuc2hvcCB7XG5cblx0Jl9faGVybyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTcwcHg7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRoZWlnaHQ6IDM5NXB4OyB9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjMjtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0XHRjb2xvcjogJGM4O1xuXHRcdFx0Zm9udC1zaXplOiAkcDE7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGNvbnRlbnQ6IFwiRlJFRSBTSElQUElORyBPTiBBTEwgUFJPRFVDVFNcIjsgfSB9XG5cblx0Jl9fY29sbGVjdGlvbi1oZWFkZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjODtcblx0XHRoZWlnaHQ6IDEyNXB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdGgzIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRwYWRkaW5nLXRvcDogMzBweDtcblx0XHRcdGNvbG9yOiAkYzU7XG5cdFx0XHRmb250LWZhbWlseTogXCJoYWxhbnRcIjtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogNDBweDsgfSB9XG5cblx0XHRoMSB7XG5cdFx0XHRjb2xvcjogJGM1O1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7IH1cblxuXHRcdCYtLWdyb3dpbmctbWl4IHtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0aGVpZ2h0OiAxODBweDsgfSB9XG5cblx0XHQmLS1hbWVuZG1lbnQge1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRoZWlnaHQ6IDE0NXB4OyB9IH0gfVxuXG5cdCZfX2Rvd24tYXJyb3cge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHQmLS1ncm93aW5nLW1peCB7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luLXRvcDogMjVweDtcblx0XHRcdFx0d2lkdGg6IDMwcHg7XG5cdFx0XHRcdGhlaWdodDogMjBweDsgfSB9IH0gfVxuXG4iLCIud2h5LW9wdXMge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYzg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0cGFkZGluZy1ib3R0b206IDEyNXB4OyB9XG5cblx0Jl9faW50cm8ge1xuXHRcdGJhY2tncm91bmQ6ICRjMjtcblx0XHRwYWRkaW5nOiA0MHB4IDAgMzVweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGhlaWdodDogNDcwcHg7XG5cdFx0XHRwYWRkaW5nOiA3MHB4IDA7IH1cblxuXHRcdGgxIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0XHRjb2xvcjogJGM4O1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMzRweDsgfSB9XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdFx0bWF4LXdpZHRoOiAyNjVweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjQ7XG5cdFx0XHRjb2xvcjogJGM4O1xuXHRcdFx0Zm9udC1zaXplOiAkcDI7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0XHRcdFx0bWF4LXdpZHRoOiA3MTJweDsgfVxuXG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7IH0gfSB9IH1cblxuXHQmX19yZWFkLW1vcmUge1xuXHRcdEBleHRlbmQgJWhvdmVyLTMwO1xuXHRcdGNvbG9yOiAkYzg7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRmb250LXNpemU6ICRwMjtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRjODsgfVxuXG5cdFx0c3ZnIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiA1cHg7XG5cdFx0XHR3aWR0aDogMTBweDtcblx0XHRcdGhlaWdodDogMTVweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRmaWxsOiAkYzg7IH0gfVxuXG5cdCZfX2JveGVzIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLXJvdygxNik7XG5cdFx0XHRtYXJnaW4tdG9wOiAtMTQ1cHg7IH0gfVxuXG5cdCZfX2ltYWdlYm94IHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDIyOHB4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2woNyk7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbC1vZmYoMSk7XG5cdFx0XHRoZWlnaHQ6IDMwNXB4OyB9XG5cblx0XHQmLS1pbWFnZTEge1xuXHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1ob21lLXdoeS1vcHVzLTEuanBnXCIpOyB9XG5cblx0XHQmLS1pbWFnZTIge1xuXHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1ob21lLXdoeS1vcHVzLTIuanBnXCIpO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWQtY29sLXBvcyg3KTsgfSB9XG5cblx0XHQmLS1pbWFnZTMge1xuXHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1maWxlKFwib3B1cy1ncm93cy1ob21lLXdoeS1vcHVzLTMuanBnXCIpOyB9IH1cblxuXHQmX190ZXh0Ym94IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYzg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAyMjNweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sKDcpO1xuXHRcdFx0aGVpZ2h0OiAzMDVweDsgfVxuXG5cdFx0c3ZnIHtcblx0XHRcdHdpZHRoOiA0M3B4O1xuXHRcdFx0aGVpZ2h0OiA0M3B4O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdGhlaWdodDogNTNweDsgfSB9XG5cblx0XHRoMyB7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMzU7XG5cdFx0XHRjb2xvcjogJGMyO1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0Qm9vay1CYXNlXCI7IH1cblxuXHRcdHAsIHNwYW4ge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdFx0Y29sb3I6ICRjNTtcblx0XHRcdGZvbnQtZmFtaWx5OiBcImhhbGFudFwiO1xuXHRcdFx0Zm9udC1zaXplOiAyNHB4OyB9XG5cblx0XHQmLS1ib3gxIHtcblx0XHRcdHBhZGRpbmctdG9wOiAzOXB4O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA4MHB4OyB9IH1cblxuXHRcdCYtLWJveDIge1xuXHRcdFx0cGFkZGluZy10b3A6IDUycHg7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2wtcG9zKC03KTtcblx0XHRcdFx0cGFkZGluZy10b3A6IDgwcHg7IH0gfVxuXG5cdFx0Ji0tYm94MyB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMzJweDtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogNzVweDsgfSB9IH0gfVxuXG4iLCIucGFnZS00MDQge1xuXHRwYWRkaW5nOiAxMzBweCAwIDExMHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYzc7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0cGFkZGluZzogMTk1cHggMCAxODBweDsgfVxuXG5cdGgxIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdGNvbG9yOiAkYzE7XG5cdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0LUJhc2VMaW5lXCI7XG5cdFx0Zm9udC1zaXplOiA2MHB4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDsgfSB9XG5cblx0aDMge1xuXHRcdGxpbmUtaGVpZ2h0OiAyO1xuXHRcdGNvbG9yOiAkYzU7XG5cdFx0Zm9udC1mYW1pbHk6IFwiaGFsYW50XCI7IH1cblxuXHQmX19iYWNrLXRvLWhvbWUge1xuXHRcdEBleHRlbmQgJWJ1dHRvbjtcblx0XHRtYXJnaW4tdG9wOiA3NXB4O1xuXHRcdHdpZHRoOiAyNzVweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdG1hcmdpbi10b3A6IDg1cHg7IH1cblxuXHRcdHN2ZyB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdFx0d2lkdGg6IDE1cHg7XG5cdFx0XHRoZWlnaHQ6IDEzcHg7XG5cdFx0XHRmaWxsOiAkYzg7IH0gfSB9XG5cbiIsIi5hcnRpY2xlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGM4O1xuXG5cdCZfX3JvdyB7XG5cdFx0QGluY2x1ZGUgZ3JpZC1yb3coMTYpOyB9XG5cblx0Jl9faGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJvcHVzLWdyb3dzLWluc2lkZS1qb3VybmFsLWJhbm5lci1pbWFnZS5qcGdcIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMjhweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGhlaWdodDogMzk2cHg7IH0gfVxuXG5cdCZfX2NvbnRhaW5lciB7fVxuXG5cdCZfX21haW4ge1xuXHRcdHBhZGRpbmc6IDAgMjBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0d2lkdGg6IDYwJTsgfSB9XG5cblx0Jl9fZGF0YSB7XG5cdFx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRjNztcblx0XHRwYWRkaW5nLXRvcDogNTBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGJvcmRlci10b3A6IG5vbmU7XG5cdFx0XHRwYWRkaW5nLXRvcDogMDsgfVxuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46IDA7IH0gfVxuXG5cdCZfX2NhdGVnb3J5IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRsaW5lLWhlaWdodDogMTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGZvbnQtc2l6ZTogJHAyO1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuXHQmX19kYXRlIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRmb250LXNpemU6ICRwMjtcblx0XHRmb250LXdlaWdodDogMzAwOyB9XG5cblx0Jl9fdGl0bGUge1xuXHRcdG1hcmdpbjogMjBweCAwIDEwcHg7XG5cdFx0Y29sb3I6ICRjMTtcblx0XHRmb250LWZhbWlseTogXCJJbnRyb1J1c3QtQmFzZUxpbmVcIjsgfVxuXG5cdCZfX2F1dGhvciB7XG5cdFx0bWFyZ2luOiAwIDAgMzVweDtcblx0XHRjb2xvcjogJGM1O1xuXHRcdGZvbnQtc2l6ZTogJHAyOyB9XG5cblx0Jl9fZmVhdHVyZWQtaW1hZ2Uge1xuXHRcdC8vIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlclxuXHRcdC8vIGJhY2tncm91bmQtc2l6ZTogY292ZXJcblx0XHQvLyBoZWlnaHQ6IDMwMHB4XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gfSB9XHRcdFx0Ly8gaGVpZ2h0OiA0MDBweFxuXG5cdCZfX2NvbnRlbnQge1xuXHRcdHBhZGRpbmc6IDMwcHggMDtcblxuXHRcdGg0IHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0XHRmb250LWZhbWlseTogXCJJbnRyb1J1c3RCb29rLUJhc2VcIjsgfVxuXG5cdFx0cCB7XG5cdFx0XHRsaW5lLWhlaWdodDogMjFweDtcblx0XHRcdGZvbnQtc2l6ZTogJHAyOyB9IH1cblxuXHQmX19zaGFyZSB7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRjNztcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGM3O1xuXHRcdGhlaWdodDogOTBweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiAzMHB4IDAgMDtcblx0XHRcdGZvbnQtc2l6ZTogJHAxO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuXHRcdHN2ZyB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMjBweDtcblx0XHRcdHdpZHRoOiAyNXB4O1xuXHRcdFx0aGVpZ2h0OiAyMHB4O1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDAuNzsgfSB9IH1cblxuXHQmX19mb290ZXIge1xuXHRcdHBhZGRpbmctdG9wOiAzM3B4O1xuXHRcdGhlaWdodDogOTBweDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG5cdFx0YSB7XG5cdFx0XHRmb250LXNpemU6ICRwMjtcblx0XHRcdGNvbG9yOiAkYzU7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogJGM1OyB9IH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7IH1cblxuXHRcdHN2ZyB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR0b3A6IDFweDtcblx0XHRcdHdpZHRoOiAxM3B4O1xuXHRcdFx0aGVpZ2h0OiAxM3B4O1xuXHRcdFx0ZmlsbDogJGM1OyB9IH1cblxuXHQmX19iYWNrLWxpbmsge1xuXG5cdFx0c3ZnIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDdweDsgfSB9XG5cblx0Jl9fbmV4dC1saW5rIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cblx0XHRzdmcge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDVweDsgfSB9IH1cblxuIiwiLmJsb2cge31cblxuXG4uYmxvZy1hcnRpY2xlcyB7XG5cbiAgJi0tbW9iaWxlIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuICAmLS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi0tc21hbGwge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbiAgICAmLS1sYXJnZSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuICAgICAgcGFkZGluZzogMCAwLjdyZW07IH0gfVxuXG4gICZfX3JvdyB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3coMTYpO1xuICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoMTApO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgcGFkZGluZzogMCAxLjI1cmVtOyB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDYwcHg7IH0gfVxuXG4gICZfX3BhZ2luYXRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDY1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkYzU7XG4gICAgZm9udC1zaXplOiAkcDI7XG5cbiAgICBhIHtcbiAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICBjb2xvcjogJGM1O1xuICAgICAgZmlsbDogJGM1O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRjMTtcbiAgICAgICAgZmlsbDogJGMxO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfSB9XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7IH1cblxuICAgIHNwYW4ge1xuICAgICAgbWFyZ2luOiAwIDIwcHg7IH1cblxuICAgIC5jdXJyZW50IHtcbiAgICAgIGNvbG9yOiAkYzE7XG4gICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4gICAgLmJsb2ctYXJ0aWNsZXMtLWRlc2t0b3AgJiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA3MHB4OyB9IH1cblxuICAmX19hcnJvdy1sZWZ0IHtcblxuICAgIHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9IH0gfVxuXG4uYmxvZy1hcnRpY2xlIHtcblxuICAuYmxvZy1hcnRpY2xlcy0tZGVza3RvcCAmIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzLjVyZW07XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBvbmx5KSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIC8vIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoODEpXG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjA1cmVtKTtcblxuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGNsZWFyOiBsZWZ0OyB9XG5cbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg4MSk7XG4gICAgICB3aWR0aDogY2FsYygzMy4zMyUgLSAje3JlbS1jYWxjKDU0KX0pO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiBjYWxjKDMzLjM0JSAtICN7cmVtLWNhbGMoNTQpfSk7IH1cblxuICAgICAgJjpudGgtY2hpbGQoM24gKyAxKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBjbGVhcjogbGVmdDsgfSB9IH1cblxuICAmX19mZWF0dXJlZC1pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGhlaWdodDogcmVtLWNhbGMoMzE3KTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogOTUlO1xuICAgICAgaGVpZ2h0OiB7fSB9XG5cbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHotaW5kZXg6IDM7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuXG5cbiAgICAuYmxvZy1hcnRpY2xlcy0tZGVza3RvcCAmIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMjgzcHg7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGMxLCAwLjUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zM3M7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7IH1cblxuICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICY6OmFmdGVyLFxuICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxOyB9IH0gfSB9IH1cblxuICBzdmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgei1pbmRleDogMztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICB3aWR0aDogcmVtLWNhbGMoNTApO1xuICAgIGhlaWdodDogcmVtLWNhbGMoNTApO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbiAgJl9fZGF0YSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6ICRwMjtcbiAgICBmb250LXdlaWdodDogMzAwO1xuXG4gICAgLmJsb2ctYXJ0aWNsZXMtLW1vYmlsZSAmIHtcbiAgICAgIHBhZGRpbmc6IDI1cHggMjBweCAxMHB4OyB9XG5cbiAgICAuYmxvZy1hcnRpY2xlcy0tZGVza3RvcCAmIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNnJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH0gfVxuXG4gICZfX2NhdGVnb3J5IHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4gICZfX2RhdGUge1xuICAgIGZsb2F0OiByaWdodDsgfVxuXG4gICZfX3RpdGxlIHtcblxuICAgIGgzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgY29sb3I6ICRjNTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRjNTsgfVxuXG4gICAgICAuYmxvZy1hcnRpY2xlcy0tbW9iaWxlICYge1xuICAgICAgICBtYXJnaW46IDAgMjBweCAzMHB4OyB9IH0gfSB9XG4iLCIuY2FydCB7XG5cblx0Jl9fcm93IHtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtcm93O1xuXHRcdFx0Ly8gK2dyaWQtcm93LXBhZGRpbmdcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwLjVweDtcblx0XHRcdHBhZGRpbmctbGVmdDogMTAuNXB4OyB9IH1cblxuXHQmX19oZWFkZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjNztcblx0XHRwYWRkaW5nOiAyMHB4IDAgMjdweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdHBhZGRpbmc6IDEwMHB4IDAgMzdweDsgfVxuXG5cdFx0aDEge1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Y29sb3I6ICRjNTtcblx0XHRcdGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWQtY29sKDEwKTtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2wtb2ZmKDEpO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0OyB9IH0gfVxuXG5cdCZfX2NvbnRpbnVlLXNob3BwaW5nIHtcblx0XHRmb250LXNpemU6ICRwMTtcblx0XHRjb2xvcjogJGM1O1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRkaXNwbGF5OiBub25lOyB9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbCg0KTtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sLW9mZigxKTtcblx0XHRcdG1hcmdpbi1sZWZ0OiA0JTtcblx0XHRcdG1hcmdpbi10b3A6IDE2cHg7IH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRjNTsgfVxuXG5cdFx0c3ZnIHtcblx0XHRcdHdpZHRoOiAxM3B4O1xuXHRcdFx0aGVpZ2h0OiAxM3B4O1xuXHRcdFx0ZmlsbDogJGM1OyB9XG5cblx0XHQvLyBhcHBlYXJzIGF0IGVuZCBvZiBwYWdlIGZvciBtb2JpbGUgaW5zdGVhZCBvZiBpbiBoZWFkZXJcblx0XHQmLS1tb2JpbGUge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMjVweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lOyB9IH0gfVxuXG5cdCZfX2NvbnRhaW5lciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGM3OyB9XG5cblx0Jl9fY29udGVudCB7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbCgxNCk7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbC1vZmYoMSk7IH0gfVxuXG5cdCZfX2NvbnRlbnQtaGVhZGVyIHtcblx0XHRAaW5jbHVkZSBncmlkLXJvdygxNCk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGM3O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7IH1cblxuXHRcdHAge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0Y29sb3I6ICRjNTtcblx0XHRcdGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdEJvb2stQmFzZVwiO1xuXHRcdFx0Zm9udC1zaXplOiAkcDE7IH1cblxuXHRcdCYtaXRlbSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbCgzKTsgfVxuXG5cdFx0Ji1wcmljZSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbCgzKTtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sLW9mZigyKTtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sLXBvcygxKTsgfVxuXG5cdFx0Ji1xdWFudGl0eSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbCgzKTsgfVxuXG5cdFx0Ji10b3RhbCB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbCgzKTsgfSB9XG5cblx0Jl9faXRlbS1jb250YWluZXIge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdEBpbmNsdWRlIGNsZWFyZml4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGM4O1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDI1cHg7IH0gfVxuXG5cdCZfX2l0ZW0ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjODtcblx0XHRwYWRkaW5nLWJvdHRvbTogMzBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdEBpbmNsdWRlIGNsZWFyZml4OyB9IH1cblxuXHQvLyBkaXZpZGVyIGlmIGNhcnQgaGFzIG11bHRpcGxlIGxpbmUgaXRlbXNcblx0Jl9faXRlbSArICZfX2l0ZW0ge1xuXHRcdGJvcmRlci10b3A6IDJweCBzb2xpZCAkYzY7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRib3JkZXItdG9wOiAycHggc29saWQgJGM3OyB9IH1cblxuXHQvLyBwcm9kdWN0IHBob3RvXG5cdCZfX2l0ZW0tdGh1bWIge1xuXHRcdHBhZGRpbmctdG9wOiAyMHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0d2lkdGg6IDIxLjQyODU3JTtcblx0XHRcdHBhZGRpbmctdG9wOiAyMHB4OyB9XG5cblx0XHRpbWcge1xuXHRcdFx0Ly8gaGVpZ2h0OiAxNzVweFxuXHRcdFx0aGVpZ2h0OiAxOTBweDtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRoZWlnaHQ6IDE5MHB4OyB9IH0gfVxuXG5cdCZfX2l0ZW0tdGl0bGUge1xuXHRcdG1hcmdpbjogMjVweCAwIDI1cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHR3aWR0aDogMjEuNDI4NTclO1xuXHRcdFx0bWFyZ2luOiA5NXB4IDAgMDsgfVxuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogJGM1O1xuXHRcdFx0Zm9udC1zaXplOiAkcDE7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0Zm9udC1zaXplOiAkcDI7IH1cblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiAkYzU7IH0gfVxuXG5cdFx0Ji0tcHJvZHVjdCB7XG5cdFx0XHRmb250LXdlaWdodDogNzAwOyB9XG5cblx0XHQmLS12YXJpYW50IHtcblx0XHRcdG1hcmdpbi10b3A6IC01cHg7XG5cdFx0XHRmb250LXdlaWdodDogMzAwO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDA7IH0gfSB9XG5cblx0Ly8gcm93cyBmb3IgbW9iaWxlLCBjb2x1bW5zIGZvciBkZXNrdG9wXG5cdCZfX2l0ZW0tYm94IHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLXJvdygxNik7XG5cdFx0XHRtYXJnaW4tbGVmdDogMC42MjM1cmVtO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwLjYyMzVyZW07XG5cdFx0XHRib3JkZXItdG9wOiAycHggc29saWQgJGM3O1xuXHRcdFx0aGVpZ2h0OiA1MHB4OyB9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiAyMS40Mjg1NyU7XG5cdFx0XHRtYXJnaW4tdG9wOiA5NXB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHQmLS1xdWFudGl0eSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAtNy4xNDI4NSU7IH0gfVxuXG5cdFx0cCB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbCg5KTtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sLW9mZigxKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRsaW5lLWhlaWdodDogNTBweDtcblx0XHRcdGNvbG9yOiAkYzU7XG5cdFx0XHRmb250LWZhbWlseTogXCJJbnRyb1J1c3RCb29rLUJhc2VcIjtcblx0XHRcdGZvbnQtc2l6ZTogJHAxO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7IH0gfSB9XG5cblx0Jl9faXRlbS1wcmljZSB7XG5cdFx0Y29sb3I6ICRjNTtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGZvbnQtc2l6ZTogJHAxO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2woNSk7XG5cdFx0XHRsaW5lLWhlaWdodDogNTBweDtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRmb250LXNpemU6ICRwMjsgfSB9XG5cblx0Jl9faXRlbS1xdWFudGl0eSB7XG5cdFx0Y29sb3I6ICRjNTtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGZvbnQtc2l6ZTogJHAxO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2woNik7XG5cdFx0XHRoZWlnaHQ6IDUwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDogNTBweDtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRmb250LXNpemU6ICRwMjsgfVxuXG5cdFx0c3ZnIHtcblx0XHRcdHdpZHRoOiAxMnB4O1xuXHRcdFx0aGVpZ2h0OiAxMnB4OyB9XG5cblx0XHRzcGFuIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkICRjNTtcblx0XHRcdHdpZHRoOiA1NXB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdFx0XHRtYXJnaW46IDAgNXB4IDAgOHB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7IH0gfVxuXG5cblx0Jl9faXRlbS10b3RhbCB7XG5cdFx0Y29sb3I6ICRjNTtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGZvbnQtc2l6ZTogJHAxO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2woNSk7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdGxpbmUtaGVpZ2h0OiA1MHB4OyB9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRmb250LXNpemU6ICRwMjsgfSB9XG5cblx0Jl9faXRlbS1yZW1vdmUge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRtYXJnaW4tdG9wOiAtNXB4O1xuXHRcdG1hcmdpbi1yaWdodDogMTAlO1xuXHRcdGNvbG9yOiAkYzU7XG5cdFx0Zm9udC1zaXplOiAkcDI7XG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuXHQmX19hZGQtb24ge1xuXHRcdGRpc3BsYXk6IG5vbmU7IC8vIGhpZGUgYW5kIHNob3cgd2l0aCBqUXVlcnkgaWYgdGhlcmUgYXJlIG1peGVzIGluIGNhcnQgYnV0IG5vIGFtZW5kbWVudFxuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjMTtcblx0XHRoZWlnaHQ6IDEwMHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRjb2xvcjogJGM4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0QGV4dGVuZCAlaG92ZXItMzA7XG5cdFx0XHRAaW5jbHVkZSBncmlkLXJvdygxNCk7XG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdGhlaWdodDogNTdweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiA1N3B4OyB9XG5cblx0XHRzdmcge1xuXHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHRoZWlnaHQ6IDIwcHg7IH1cblxuXHRcdHAge1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRmb250LXNpemU6ICRwMjtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbCg3NSUpO1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbC1wb3MoLTIpO1xuXHRcdFx0XHRtYXJnaW46IDEzcHggMCAwO1xuXHRcdFx0XHRmb250LXNpemU6ICRwMTsgfVxuXG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMTBweDsgfSB9IH1cblxuXHRcdCYtbGluayB7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWQtY29sKDMpO1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbC1wb3MoMTEpO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAxN3B4OyB9XG5cblx0XHRcdGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lOyB9IH0gfVxuXG5cdCZfX2Rpc2NsYWltZXIge1xuXHRcdG1hcmdpbjogMTBweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Y29sb3I6ICRjNTtcblx0XHRmb250LXNpemU6ICRwMjtcblxuXHRcdCYtLW1vYmlsZSB7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5cdFx0Ji0tZGVza3RvcCB7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7IH0gfSB9XG5cblx0Jl9fc3VidG90YWwtY29udGFpbmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjNjtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYzc7XG5cdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cblxuXHQmX19zdWJ0b3RhbC1ib3gge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtcm93KDE2KTtcblx0XHRcdC8vICtncmlkLXJvdy1tYXJnaW5cblx0XHRcdG1hcmdpbi1sZWZ0OiAwLjYyMzVyZW07XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDAuNjIzNXJlbTtcblx0XHRcdGhlaWdodDogNTBweDsgfVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA3LjUlO1xuXHRcdFx0aGVpZ2h0OiAxMDVweDtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRjb2xvcjogJGM1O1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwiSW50cm9SdXN0Qm9vay1CYXNlXCI7XG5cdFx0XHRmb250LXNpemU6ICRwMTtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbCg5KTtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2wtb2ZmKDEpO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogNTBweDsgfVxuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMTA1cHg7IH0gfSB9XG5cblx0Jl9fc3VidG90YWwge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdGNvbG9yOiAkYzU7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRmb250LXNpemU6ICRwMTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sKDUpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDUwcHg7IH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGxpbmUtaGVpZ2h0OiAxMDVweDsgfSB9XG5cblx0Jl9fY2hlY2tvdXQge1xuXHRcdHBhZGRpbmc6IDQ1cHggMCAzNXB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdHBhZGRpbmc6IDAgMCAxNjBweDsgfVxuXG5cdFx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdFx0XHRAZXh0ZW5kICVidXR0b247XG5cdFx0XHR3aWR0aDogMjAwcHg7XG5cdFx0XHRoZWlnaHQ6IDUwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMjtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogNy41JTsgfSB9IH1cblxuXHQmX19lbXB0eSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGM3O1xuXHRcdHBhZGRpbmc6IDEyNXB4IDAgMTc1cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0cGFkZGluZzogMTQwcHggMCAxOTBweDsgfVxuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA1NXB4O1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGZvbnQtc2l6ZTogJHAxOyB9IH1cblxuXHQmX19zaG9wLWxpbmstYnV0dG9uIHtcblx0XHRAZXh0ZW5kICVidXR0b247XG5cdFx0d2lkdGg6IDIwMHB4OyB9IH1cbiIsIi5ob21lcGFnZSB7XG5cblx0Jl9faGVyby1jb250YWluZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpOyB9XG5cblx0Jl9faGVybyB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAyNTdweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGhlaWdodDogY2FsYygxMDB2aCAtICN7JGRlc2t0b3AtbmF2YmFyLWhlaWdodH0pOyB9IH1cblxuXHQmX19hcnJvd3Mge1xuXHRcdGN1cnNvcjogcG9pbnRlcjsgfVxuXG5cdCZfX2Rvd24tYXJyb3cge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3R0b206IDE1cHg7XG5cdFx0bGVmdDogNTAlO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuXHRcdGhlaWdodDogMTVweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGJvdHRvbTogMjVweDtcblx0XHRcdGhlaWdodDogMjVweDsgfVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZVgoLTIzJSk7XG5cdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsgfVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZVgoMjMlKTtcblx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDsgfVxuXG5cdFx0Ji0tMSB7XG5cdFx0XHRhbmltYXRpb246IGFycm93LW1vdmVtZW50IDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9XG5cblx0XHQmLS0yIHtcblx0XHRcdGFuaW1hdGlvbjogYXJyb3ctbW92ZW1lbnQgMnMgMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH0gfSB9XG4iLCIuaG93LXRvLWdyb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzc7XG4gIHBhZGRpbmctYm90dG9tOiAyLjhyZW07XG4gIHBhZGRpbmctdG9wOiAxLjVyZW07XG5cbiAgc3ZnIHtcbiAgICBmaWxsOiAkYzM7IH1cblxuICAmX19oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjNyAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgaGVpZ2h0OiAzNS41cmVtICFpbXBvcnRhbnQ7IH1cblxuICAgIGgzIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9XG5cbiAgICBoMSB7XG4gICAgICBjb2xvcjogJGMzO1xuXG4gICAgICAmLmhvdy10by1ncm93X190aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfSB9IH1cblxuICAmX190ZXh0IHtcbiAgICBwYWRkaW5nOiAxLjdyZW0gMS4zNzVyZW07XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4gICAgaDEuY3VzdG9tIHtcbiAgICAgIGNvbG9yOiAkYzMgIWltcG9ydGFudDtcbiAgICAgIGZvbnQtZmFtaWx5OiBJbnRyb1J1c3QtQmFzZUxpbmU7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDQ1KTtcbiAgICAgIHBhZGRpbmctbGVmdDogMS4xcmVtO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNTUpO1xuICAgICAgICBsaW5lLWhlaWdodDogMi4xcmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNnJlbTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfSB9XG5cbiAgICBwIHtcbiAgICAgIGNvbG9yOiAkYzU7XG4gICAgICBmb250LXNpemU6ICRwMjtcbiAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuIH0gfSAgICAgICAgLy8gd2lkdGg6IGNhbGMoMTAwJSAtIDVyZW0pXG5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH0gfVxuXG4gICZfX2ltZy1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfSB9XG5cbiAgJl9fc2VjdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGhlaWdodDogMjguMnJlbTsgfVxuXG4gICAgJi5zdGVwLW9uZSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzc7IH1cblxuICAgICAgLmhvdy10by1ncm93X19pbWctZGVza3RvcCB7XG4gICAgICAgIGhlaWdodDogMTRyZW07XG4gICAgICAgIHdpZHRoOiAxMC44cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTFyZW07IH1cblxuICAgICAgLmhvdy10by1ncm93X190ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMi44MTI1cmVtKTtcblxuICAgICAgICAgIHAge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDVyZW0pOyB9IH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgIGhlaWdodDogMTcuNHJlbTtcbiAgICAgICAgICBtYXJnaW46IDEuMXJlbSBhdXRvIDIuN3JlbSBhdXRvO1xuICAgICAgICAgIHdpZHRoOiAxMy40cmVtOyB9IH0gfVxuXG4gICAgJi5zdGVwLXR3byB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzg7IH1cblxuICAgICAgLmhvdy10by1ncm93X19pbWctZGVza3RvcCB7XG4gICAgICAgIGhlaWdodDogMTdyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0LjJyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogOS43cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICAgIHdpZHRoOiAxOC4xcmVtOyB9XG5cbiAgICAgIC5ob3ctdG8tZ3Jvd19fdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzNC44MTI1cmVtKTtcblxuICAgICAgICAgIHAge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQuOXJlbSk7IH0gfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgaGVpZ2h0OiAxN3JlbTtcbiAgICAgICAgICBtYXJnaW46IDEuMXJlbSBhdXRvIDIuNnJlbSBhdXRvO1xuICAgICAgICAgIHdpZHRoOiAxOC4xcmVtOyB9IH0gfVxuXG4gICAgJi5zdGVwLXRocmVlIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDQuM3JlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGM3OyB9XG5cbiAgICAgIC5ob3ctdG8tZ3Jvd19faW1nLWRlc2t0b3Age1xuICAgICAgICBoZWlnaHQ6IDIwLjJyZW07XG4gICAgICAgIHdpZHRoOiAxNS45cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogOXJlbTsgfVxuXG4gICAgICAuaG93LXRvLWdyb3dfX3RleHQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiA3LjNyZW07XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDM0LjgxMjVyZW0pO1xuXG4gICAgICAgICAgcCB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNC45cmVtKTsgfSB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICBoZWlnaHQ6IDIwLjJyZW07XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gMS42cmVtIGF1dG87XG4gICAgICAgICAgd2lkdGg6IDE1LjhyZW07IH0gfSB9XG5cbiAgICAmLnN0ZXAtZm91ciB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzg7IH1cblxuICAgICAgLmhvdy10by1ncm93X19pbWctZGVza3RvcCB7XG4gICAgICAgIGhlaWdodDogMTkuNXJlbTtcbiAgICAgICAgd2lkdGg6IDE5LjZyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzLjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogOC45cmVtOyB9XG5cbiAgICAgIC5ob3ctdG8tZ3Jvd19fdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwLjRyZW07XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMzLjMxMjVyZW0pO1xuXG4gICAgICAgICAgcCB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNXJlbSk7IH0gfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgaGVpZ2h0OiAxOS41cmVtO1xuICAgICAgICAgIG1hcmdpbjogMi4xcmVtIGF1dG8gMS43cmVtIGF1dG87XG4gICAgICAgICAgd2lkdGg6IDE5LjZyZW07IH0gfSB9XG5cbiAgICAmLnN0ZXAtZml2ZSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzc7IH1cblxuICAgICAgLmhvdy10by1ncm93X19pbWctZGVza3RvcCB7XG4gICAgICAgIGhlaWdodDogMTguOXJlbTtcbiAgICAgICAgd2lkdGg6IDE3cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTFyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNHJlbTsgfVxuXG4gICAgICAuaG93LXRvLWdyb3dfX3RleHQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMi41cmVtO1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMy40MTI1cmVtKTtcblxuICAgICAgICAgIHAge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDVyZW0pOyB9IH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgIGhlaWdodDogMTguOXJlbTtcbiAgICAgICAgICBtYXJnaW46IDAuOXJlbSBhdXRvIDEuOXJlbSBhdXRvO1xuICAgICAgICAgIHdpZHRoOiAxN3JlbTsgfSB9IH0gfVxuXG4gICZfX3NlY3Rpb24td3JhcCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDY2cmVtO1xuICAgICAgcGFkZGluZzogMCAxcmVtOyB9IH0gfVxuIiwiLmpvaW4tb3VyLXRlYW0ge1xuICAmX19oZXJvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEzMHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgaGVpZ2h0OiAzOTVweDsgfSB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzcgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG87IH1cblxuICAmX19oZWFkZXItb3V0dGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAzLjhyZW0gMDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBoZWlnaHQ6IHJlbS1jYWxjKDM3MikgIWltcG9ydGFudDsgfSB9XG5cbiAgJl9faGVhZGVyLWlubmVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICBoMyB7XG4gICAgICBwYWRkaW5nOiAxLjJyZW0gMCAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMXJlbTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgcGFkZGluZzogMDsgfSB9XG5cbiAgICBoMSB7XG4gICAgICBjb2xvcjogJGMzICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMi4xcmVtO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi42cmVtOyB9IH1cblxuICAgIHAge1xuICAgICAgZm9udC1zaXplOiAkcDI7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMSk7XG4gICAgICAgIG1heC13aWR0aDogNzByZW07IH0gfSB9XG5cbiAgLy8gYmxvY2sgaW1hZ2VzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgJl9fYmxvY2staW1ncyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdygkd2lkdGg6IDEwMCUpOyB9IH1cblxuICAmX19ibG9jay1pbWcge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDI5NCk7XG4gICAgaGVpZ2h0OiAyNy42NzVyZW07XG4gICAgY29udGVudDogJyc7XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2woMS8zKTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiByZW0tY2FsYygzNTYpOyB9IH1cblxuICAvLyBlbmQgYmxvY2sgaW1hZ2VzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgJl9fY2xvc2luZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGM3ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoMzYzKSAhaW1wb3J0YW50OyB9IH1cblxuICAmX19jbG9zaW5nLW91dHRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMy44cmVtIDA7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgaGVpZ2h0OiByZW0tY2FsYygzNjMpICFpbXBvcnRhbnQ7IH0gfVxuXG4gICZfX2Nsb3NpbmctaW5uZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZTogJHAyO1xuICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjEpO1xuICAgICAgICAvLyBtYXJnaW46IDBcbiAgICAgICAgbWF4LXdpZHRoOiA3MHJlbTsgfVxuXG4gICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH0gfSB9IH1cblxuICAmX19idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjMztcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkYzM7XG4gICAgY29sb3I6ICRjODtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAkcDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBwYWRkaW5nOiAwLjA1cmVtIDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICB3aWR0aDogcmVtLWNhbGMoMjc1KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zczsgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgcGFkZGluZzogMC4yNXJlbSAwOyB9IH0gfVxuIiwiLnBhZ2Uge1xuXG4gICZfX3JvdyB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctcGFkZGluZygpOyB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzI7XG4gICAgcGFkZGluZzogMzBweCAwIDI3cHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwYWRkaW5nOiA4MHB4IDAgNzJweDsgfVxuXG4gICAgaDEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICRjODtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkludHJvUnVzdC1CYXNlTGluZVwiO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfSB9XG5cbiAgJl9fY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYzg7XG4gICAgcGFkZGluZzogMzVweCAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgcGFkZGluZzogNzBweCAwOyB9IH1cblxuICAmX19jb250ZW50IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgY29sdW1uczogNTAwcHggMjtcbiAgICAgIGNvbHVtbi1nYXA6IHJlbS1jYWxjKDQwKTsgfVxuXG4gICAgaDQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIGNvbG9yOiAkYzI7XG4gICAgICBmb250LWZhbWlseTogXCJJbnRyb1J1c3RCb29rLUJhc2VcIjtcbiAgICAgIGZvbnQtc2l6ZTogJHAxOyB9XG5cbiAgICBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICAgICAgY29sb3I6ICRjNTtcbiAgICAgIGZvbnQtc2l6ZTogJHAyOyB9XG5cbiAgICBwICsgaDQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiA0MHB4OyB9IH0gfSB9XG4iLCJAaW1wb3J0ICcuL2NvcmUvc2Fzcy9jb3JlLmNsaWVudC5tb2R1bGUnO1xuXG4vLy0gQ29udGVudCB3cmFwcGVyIC0gYmVsb3cgdG9wIG5hdmJhciAvLy8vLy8vLy8vXG4uY29udGVudCB7XG5cdC8vIGFjY291bnQgZm9yIGZpeGVkIG5hdmJhclxuXHRwYWRkaW5nLXRvcDogJG1vYmlsZS1uYXZiYXItaGVpZ2h0O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRwYWRkaW5nLXRvcDogJGRlc2t0b3AtbmF2YmFyLWhlaWdodDsgfSB9XG4vLy0gRW5kIENvbnRlbnQgd3JhcHBlciAuLi4uLi5cblxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */



    #owl-cat .item {
        background: #42bdc2;
        padding: 30px 0px;
        margin: 10px;
        color: #FFF;
        -webkit-border-radius: 3px;
        -moz-border-radius: 3px;
        border-radius: 3px;
        text-align: center;
        z-index: 2;
    }

    .carousel-category.owl-carousel .owl-dots .owl-dot.active {
        opacity: 1;
    }

    .carousel-category.owl-carousel.centernonloop .owl-dots {
        margin-top: 50px;
    }

        .carousel-category.owl-carousel.centernonloop .owl-dots.disabled {
            display: block !important;
        }

        .carousel-category.owl-carousel.centernonloop .owl-dots .owl-dot {
            background: #ccc;
        }

            .carousel-category.owl-carousel.centernonloop .owl-dots .owl-dot.active {
                background: #cf1d16;
            }

            .carousel-category.owl-carousel.centernonloop .owl-dots .owl-dot:active, .owl-carousel.centernonloop .owl-dots .owl-dot:focus {
                outline: none;
            }

    .carousel-category .owl-dots {
        text-align: center;
    }

        .carousel-category .owl-dots .owl-dot {
            width: 10px;
            height: 10px;
            margin: 5px;
            border-radius: 50%;
            background: rgba(0, 0, 0, 0.2);
        }

            .carousel-category .owl-dots .owl-dot.active {
                background: #82ae46;
            }

    .parallax-window {
        min-height: 300px;
        background: transparent;
    }



    #dealcont {
        background-repeat: no-repeat;
        background-position: right top;
    }

    .card {
        width: 100%;
    }

        .card img {
            height: 250px;
            width: 100%;
            object-fit: contain;
            padding: 20px;
        }

.cards {
    display: grid;
    grid-gap: 1rem;
    margin-bottom: 100px
}

    @media (min-width: 500px) {
        .cards {
            grid-template-columns: repeat(3, 1fr);
        }
    }
@media (min-width: 800px) {
    .cards {
        grid-template-columns: repeat(4, 1fr);
    }
}
    @media (min-width: 1100px) {
        .cards {
            grid-template-columns: repeat(5, 1fr);
   
            padding: 20px;
        }
    }

    .heading-wrap .back-text, .heading-wrap .back-text-dark {
        z-index: 0;
        line-height: 1;

        left: 50%;
   
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        transform: translateX(-50%);
        font-weight: 500;
        font-size: 120px;
        position: absolute;
        width: 100%;
        color: #54b8e1;
        text-transform: uppercase;
        font-family: "IntroRust-BaseLine";
    }

    .back-header {
        font-family: "IntroRust-BaseLine";
    }

  


    @media (max-width: 600px) {
        .heading-wrap .back-text, .heading-wrap .back-text-dark {
            z-index: 0;
            line-height: 1;
            left: 50%;
            -webkit-transform: translateX(-50%);
            -ms-transform: translateX(-50%);
            transform: translateX(-50%);
            font-weight: 500;
            font-size: 50px;
            position: absolute;
            width: 100%;
            color: #54b8e1;
            text-transform: uppercase;
            font-family: "IntroRust-BaseLine";
        }

        #dealstext{
            margin-top: 40px;
        }
       
            .cart__item {
            padding-left: 10px;
            padding-right: 10px;
        }
    }



    .heading-wrap .back-text-dark {
        color: #e3e3e3 !important;
    }


    #dealstext {
        color: #ff2020;
    }

    .catitem {
        transition-duration: 0.3s;
        transition-property: transform;
    }

        .catitem:hover,
        .catitem:focus,
        .catitem:active {
            transform: scale(1.1);
        }

    .terms {
        padding-left: 3em;
        padding-right: 3em;
    }

        .terms h2 {
            padding-top: 2em;

        }
        .terms h3 {
            padding-top: 1em;
            padding-bottom: 1em;
        }


    #shopdrop {
        -webkit-tap-highlight-color: rgba(0,0,0,0);
        line-height: 1.6;
        color: #282220;
        -webkit-font-smoothing: antialiased;
        font-weight: normal;
        font-size: 1.07692em;
        cursor: default;
        list-style: none;
        box-sizing: border-box;
        margin-bottom: 0.25em;
        display: flex;
        flex-wrap: wrap;
    }

    @media (min-width: 992px) {
        #shopdrop {
            width: 500px;
        }
    }

    @media (min-width: 1400px) {
        #shopdrop {
            width: 800px;
        }
    }


    .mini-cart {
        position: absolute;
        right: 10%;
        opacity: 0;
        border-width: 0 2px 2px;
        border-style: solid;
        border-color: #000000;
        border-color: rgba(0, 0, 0, 0.05);
        background-color: #ffffff;
        width: 400px;
       height:400px;
  
      
    }



.mini-cart__content {
    height: 330px;
    overflow: scroll;
    -ms-overflow-style: none; /* IE and Edge */
    scrollbar-width: none; /* Firefox */
}
    .mini-cart__content::-webkit-scrollbar {
        display: none;
    }
.mini-cart2 {
    opacity: 1;
    right: 0;
    width: 100%;
    height: 493px;
}
    .mini-cart__header {
        margin-bottom: 0;
        margin-left: 55px;
        padding: 23px 0;
        color: #555555;
        font-family: "IntroRust-BaseLine";
        font-size: 1.25rem;
    }

    .mini-cart__content {
        background-color: #ffffff;
    }

        .mini-cart__content:before, .mini-cart__content:after {
            content: '';
            display: table;
            -webkit-flex-basis: 0;
            -ms-flex-preferred-size: 0;
            flex-basis: 0;
            -webkit-box-ordinal-group: 2;
            -webkit-order: 1;
            -ms-flex-order: 1;
            order: 1;
        }

        .mini-cart__content:after {
            clear: both;
        }

        .mini-cart__content hr {
            margin: 10px 45px 0 55px;
            height: 2px;
            color: #f6f5f5;
        }

    .mini-cart__item {
        padding-top: 10px;
        font-weight: 700;
        font-size: 0.9375rem;
        margin-left: 10px;
        text-align: center;
    }

    .cart_remove {
        float: right;
        transform: translateY(-50px);
        padding-right: 10px;
    }

.mini-cart__item-thumb {
    margin-top: 30px;
    width: 100px;
    float: left;
}
.mini-cart2 .mini-cart__item-thumb {

    width: 100%;

}
.mini-cart__item-thumb img {
    height: 100px;
    width: 100%;
    object-fit: contain;
}

    .mini-cart__item-title {
        margin-bottom: 0;
        padding-top: 10px;
        font-weight: 700;
    }

    .mini-cart__item-quantity-price {
        font-size: 0.9375rem;
    }

    .mini-cart__footer {
        background-color: #ffffff;
        padding-top: 20px;
        height: 80px;
    }

        .mini-cart__footer p {
            margin-left: 55px;
            float: left;
            text-transform: uppercase;
            line-height: 37px;
            font-weight: 700;
            font-size: 0.9375rem;
        }

    .mini-cart__subtotal {
        margin-left: 5px;
    }

    .mini-cart__link-button {
        margin-right: 45px;
        float: right;
        width: 125px;
        font-size: 0.9375rem;
    }

#shopli {
    opacity: 0;
    display: none;
    transition: all 0.3s ease-out 0s;
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0s;
    position: fixed;
    left: 20%;
    top: 100px;
    z-index: 500;
    width: 75%;
    list-style: none;
    background: white;
    box-shadow: 0 6px 12px rgba(0,0,0,0.176);
    -ms-animation: 0.5s ease 0s normal forwards 1 running animationmenus;
    -webkit-animation: 0.5s ease 0s normal forwards 1 running animationmenus;
    animation: 0.5s ease 0s normal forwards 1 running animationmenus;
    -o-animation: 0.5s ease 0s normal forwards 1 running animationmenus;
    margin-left: 0;
}

        #shopli li {
            float: none;
            margin-left: 0;
        }

        #shopli ul {
            margin: 0;
        }


    #firstli {
        display: flex;
        flex-flow: column wrap;
        align-content: space-between;
        /* Your container needs a fixed height, and it 
   * needs to be taller than your tallest column. */
        height: 500px;
        /* Optional */
        background-color: #f7f7f7;
        border-radius: 3px;
        width: 100%;
        counter-reset: items;
    }

        #firstli a {
            line-height: 22px;
            height: auto;
        }


    .grid__item {
        width: 15%;
        /* Optional */
        box-shadow: 0 2px 2px rgba(0,90,250,0.05), 0 4px 4px rgba(0,90,250,0.05), 0 8px 8px rgba(0,90,250,0.05), 0 16px 16px rgba(0,90,250,0.05);
        padding: 15px;
    }
@media screen and (max-width:1363px) {
    .second-tolast {
        width: 12%;
    }
}

    #dropdown-toggle {
    }

    .super h3 {
        font-size: 16px;
        background-image: url(/images/product-1.jpg);
    }

  
/* Icons (made with Icomoon.io) */

@font-face {
    font-family: 'feather';
    font-weight: normal;
    font-style: normal;
    src: url('../fonts/feather/feather.eot?1gafuo');
    src: url('../fonts/feather/feather.eot?1gafuo#iefix') format('embedded-opentype'), url('../fonts/feather/feather.woff2?1gafuo') format('woff2'), url('../fonts/feather/feather.ttf?1gafuo') format('truetype'), url('../fonts/feather/feather.woff?1gafuo') format('woff'), url('../fonts/feather/feather.svg?1gafuo#feather') format('svg');
}

.icon {
    font-family: 'feather';
    font-weight: normal;
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    text-transform: none;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    speak: none;
}

.icon--arrow-left:before {
    content: '\e5c4';
}

.icon--menu:before {
    content: '\e903';
}

.icon--cross:before {
    content: '\e117';
}


/* Menu styles */

.menu {
    position: fixed;
    left: -300px;
    top: 0;
    width: 300px;
    height: calc(100vh - 120px);
    background: whitesmoke;
    transition: left 0.5s ease 0s;
}

.menu__wrap {
    position: absolute;
    top: 3.5em;
    bottom: 0;
    overflow: hidden;
    width: 100%;
}

.menu__level {
    position: absolute;
    top: 0;
    left: 0;
    visibility: hidden;
    overflow: hidden;
    overflow-y: scroll;
    width: calc(100% + 50px);
    height: 100%;
    margin: 0;
    padding: 0;
    list-style-type: none;
}

    .menu__level:focus {
        outline: none;
    }

.menu__level--current {
    visibility: visible;
}

.menu__item {
    display: block;
    width: calc(100% - 50px);
}

.menu__link {
    font-weight: 600;
    position: relative;
    display: block;
    padding: 1em 2.5em 1em 1.5em;
    color: #bdbdbd;
    -webkit-transition: color 0.1s;
    transition: color 0.1s;
}

  

    .menu__link:hover,
    .menu__link:focus,
    .menu__link[data-submenu]:hover::after,
    .menu__link[data-submenu]:focus::after {
        color: #5c5edc;
    }

.menu__link--current::before {
    content: '\00B7';
    font-size: 1.5em;
    line-height: 0;
    position: absolute;
    top: 50%;
    left: 0.5em;
    height: 4px;
    color: #5c5edc;
}

[class^='animate-'],
[class*=' animate-'] {
    visibility: visible;
}

.animate-outToRight .menu__item {
    -webkit-animation: outToRight 0.6s both cubic-bezier(0.7, 0, 0.3, 1);
    animation: outToRight 0.6s both cubic-bezier(0.7, 0, 0.3, 1);
}

@-webkit-keyframes outToRight {
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
}

@keyframes outToRight {
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
}

.animate-outToLeft .menu__item {
    -webkit-animation: outToLeft 0.6s both cubic-bezier(0.7, 0, 0.3, 1);
    animation: outToLeft 0.6s both cubic-bezier(0.7, 0, 0.3, 1);
}

@-webkit-keyframes outToLeft {
    to {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
}

@keyframes outToLeft {
    to {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
}

.animate-inFromLeft .menu__item {
    -webkit-animation: inFromLeft 0.6s both cubic-bezier(0.7, 0, 0.3, 1);
    animation: inFromLeft 0.6s both cubic-bezier(0.7, 0, 0.3, 1);
}

@-webkit-keyframes inFromLeft {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }

    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes inFromLeft {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }

    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

.animate-inFromRight .menu__item {
    -webkit-animation: inFromRight 0.6s both cubic-bezier(0.7, 0, 0.3, 1);
    animation: inFromRight 0.6s both cubic-bezier(0.7, 0, 0.3, 1);
}

@-webkit-keyframes inFromRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }

    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes inFromRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }

    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

.menu__breadcrumbs {
    font-size: 0.65em;
    line-height: 1;
    padding: 2.5em 3.75em 1.5em 2.5em;
    position:absolute;
  
    top: 10px;

}

    .menu__breadcrumbs a {
        font-weight: bold;
        display: inline-block;
        cursor: pointer;
        vertical-align: middle;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: #5c5edc;
    }

        .menu__breadcrumbs a:last-child {
            pointer-events: none;
        }

        .menu__breadcrumbs a:hover,
        .menu__breadcrumbs a:focus {
            color: #8182e0;
        }

        .menu__breadcrumbs a:not(:last-child)::after {
            content: '\e902';
            font-family: 'feather';
            display: inline-block;
            padding: 0 0.5em;
            color: #33353e;
        }

        .menu__breadcrumbs a:not(:last-child):hover::after,
        .menu__breadcrumbs a:not(:last-child):focus::after {
            color: #33353e;
        }

.menu__back {
    font-size: 1.05em;
    position: absolute;
    z-index: 100;
    top: 0;
    right: 2.25em;
    margin: 0;
    padding: 1.365em 0.65em 0 0;
    cursor: pointer;
    color: #2a2b30;
    border: none;
    background: none;
}

.menu__back--hidden {
    pointer-events: none;
    opacity: 0;
}

.menu__back:hover,
.menu__back:focus {
    color: #fff;
    outline: none;
}


.action2 {
    position: absolute;
    display: block;
    margin: 10px;
    top:0;
    padding: 0;
    cursor: pointer;
    border: none;
    background: none;
}

.action2:focus {
    outline: none;
}

.action2--open {
    font-size: 1.5em;
    top: 1em;
    left: 1em;
    display: none;
    color: #fff;
    position: fixed;
    z-index: 1000;
}

.action2--close {
    font-size: 1.1em;
    top: 1.25em;
    right: 1em;
    display: none;
    color: #45464e;
}



@media screen and (max-width: 40em) {
    .action2--open,
    .action2--close {
        display: block;
    }

    .menu {
        z-index: 1000;
        top: 0;
        left: 0;
  
        height: 100vh;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
        -webkit-transition: -webkit-transform 0.3s;
        transition: transform 0.3s;
    }

    .menu--open {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}



#times-list {
    width: 200px;
}
.times{
    width:100%;
    text-align:center;
}
button[disabled] {
    color: #DCDAD1;
    background-color: grey;

    background-image: none;
    
}

    button[disabled]:hover {
        background-color: grey;
        color: #DCDAD1;
    }

main {
    display: block;
}
#maincontent{
    padding-bottom:50px;
}
#maincontent p {
    margin-top: 0;
    margin-bottom: 1rem;
}

#maincontent strong {
    font-weight: 700;
}

#maincontent a {
    color: #1979c3;
    text-decoration: none;
}

    #maincontent a:visited {
        color: #1979c3;
        text-decoration: none;
    }

    #maincontent a:hover {
        color: #006bb4;
        text-decoration: underline;
    }

    #maincontent a:active {
        color: #ff5501;
        text-decoration: underline;
    }

#maincontent ul, #maincontent ol {
    margin-top: 0;
    margin-bottom: 2.5rem;
}

    #maincontent ul > li, #maincontent ol > li {
        margin-top: 0;
        margin-bottom: 1rem;
    }

#maincontent table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    max-width: 100%;
}
  
    #maincontent table > tbody > tr > td {
        vertical-align: top;
    }

    #maincontent table > thead > tr > th {
        vertical-align: bottom;
    }

    #maincontent table > thead > tr > th, #maincontent table > tbody > tr > td {
        padding: 8px 10px;
    }

#maincontent button {
    background-image: none;
    background: #f2f2f2;
    border: 1px solid #cdcdcd;
    color: #333;
    cursor: pointer;
    display: inline-block;
    font-family: 'Open Sans','Helvetica Neue','Helvetica','Arial','sans-serif';
    font-weight: 700;
    margin: 0;
    padding: 7px 15px;
    font-size: 1.4rem;
    line-height: 1.6rem;
    box-sizing: border-box;
    vertical-align: middle;
}

    #maincontent button:focus, #maincontent button:active {
        background: #e2e2e2;
        border: 1px solid #cdcdcd;
        color: #333;
    }

    #maincontent button:hover {
        background: #e2e2e2;
        border: 1px solid #cdcdcd;
        color: #555;
    }

    #maincontent button::-moz-focus-inner {
        border: 0;
        padding: 0;
    }

#maincontent input[type=checkbox] {
    margin: 2px 5px 0 0;
    position: relative;
    top: 2px;
}

    #maincontent input[type=checkbox]:disabled {
        opacity: .5;
    }

#maincontent input::-moz-focus-inner {
    border: 0;
    padding: 0;
}

#maincontent form {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

#maincontent address {
    font-style: normal;
}

*:focus {
    box-shadow: none;
    outline: 0;
}

#maincontent input:not([disabled]):focus {
    box-shadow: 0 0 3px 1px #68a8e0;
}

#maincontent .product-items, #maincontent .items {
    margin: 0;
    padding: 0;
    list-style: none none;
}

    #maincontent .product-items > li, #maincontent .items > li {
        margin: 0;
    }

#maincontent .actions-toolbar > .primary .action, #maincontent .actions-toolbar > .secondary .action {
    width: 100%;
}

#maincontent .block-reorder .block-title {
    margin-top: 15px;
    margin-bottom: 15px;
}

    #maincontent .block-reorder .block-title > strong {
        font-weight: 300;
        line-height: 1.1;
        font-size: 1.8rem;
        margin-top: 1.5rem;
        margin-bottom: 1rem;
    }

#maincontent .block {
    margin-bottom: 40px;
    padding-top:150px;
}


#maincontent .product-item-name {
    font-weight: 400;
}

    #maincontent .product-item-name > a {
        color: #333;
        text-decoration: none;
    }

        #maincontent .product-item-name > a:visited {
            color: #333;
            text-decoration: underline;
        }

        #maincontent .product-item-name > a:hover {
            color: #333;
            text-decoration: underline;
        }

        #maincontent .product-item-name > a:active {
            color: #333;
            text-decoration: underline;
        }

#maincontent .account-nav .title, #maincontent .block-reorder .product-item .label {
    border: 0;
    clip: rect(0,0,0,0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}



#maincontent .sidebar .subtitle {
    display: none;
}



#maincontent button {
    border-radius: 3px;
}

    #maincontent button:active {
        box-shadow: inset 0 2px 1px rgba(0,0,0,.12);
    }

#maincontent .action.primary {
    background-image: none;
    background: #1979c3;
    border: 1px solid #1979c3;
    color: #fff;
    cursor: pointer;
    display: inline-block;
    font-family: 'Open Sans','Helvetica Neue', 'Helvetica, Arial', 'sans-serif';
    font-weight: 700;
    padding: 7px 15px;
    font-size: 1.4rem;
    box-sizing: border-box;
    vertical-align: middle;
}

    #maincontent .action.primary:focus, #maincontent .action.primary:active {
        background: #006bb4;
        border: 1px solid #006bb4;
        color: #fff;
    }

    #maincontent .action.primary:hover {
        background: #006bb4;
        border: 1px solid #006bb4;
        color: #fff;
    }

#maincontent .actions-toolbar > .primary, #maincontent .actions-toolbar > .secondary {
    text-align: center;
    margin-bottom: 10px;
}

    #maincontent .actions-toolbar > .primary .action, #maincontent .actions-toolbar > .secondary .action {
        margin-bottom: 10px;
    }

        #maincontent .actions-toolbar > .primary .action:last-child, #maincontent .actions-toolbar > .secondary .action:last-child {
            margin-bottom: 0;
        }

    #maincontent .actions-toolbar > .secondary:last-child {
        margin-bottom: 0;
    }

#maincontent .product-items {
    font-size: 0;
}

#maincontent .product-item {
    font-size: 1.4rem;
    vertical-align: top;
}

    #maincontent .product-item:nth-child(2n+1) {
        margin-left: 0;
    }

#maincontent .product-item-name {
    -moz-hyphens: auto;
    -ms-hyphens: auto;
    -webkit-hyphens: auto;
    display: block;
    hyphens: auto;
    margin: 5px 0;
    word-wrap: break-word;
}

#maincontent .sidebar .product-items .product-item {
    margin-bottom: 20px;
    position: relative;
}

#maincontent .sidebar .product-items .product-item-name {
    margin-top: 0;
}

#maincontent .sidebar .product-items-names .product-item {
    display: flex;
    margin-bottom: 10px;
}

#maincontent .sidebar .product-items-names .product-item-name {
    margin: 0;
}

#maincontent .box-billing-address .box-content, #maincontent .box-shipping-address .box-content, #maincontent .box-information .box-content, #maincontent .box-newsletter .box-content {
    overflow-wrap: break-word;
    word-wrap: break-word;
    -ms-word-break: break-all;
    word-break: break-word;
    -webkit-hyphens: auto;
    -moz-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
    line-height: 26px;
}

#maincontent .account .table-wrapper:last-child {
    margin-bottom: 0;
}

#maincontent .account .table-wrapper .action {
    margin-right: 15px;
}

    #maincontent .account .table-wrapper .action:last-child {
        margin-right: 0;
    }

#maincontent .account-nav .content {
    background: #f5f5f5;
    padding: 15px 0;
}

#maincontent .account-nav .item {
    margin: 3px 0 0;
}

    #maincontent .account-nav .item:first-child {
        margin-top: 0;
    }

    #maincontent .account-nav .item a, #maincontent .account-nav .item > strong {
        border-left: 3px solid transparent;
        display: block;
        padding: 5px 18px 5px 15px;
    }

    #maincontent .account-nav .item a {
        text-decoration: none;
    }

        #maincontent .account-nav .item a:hover {
            background: #e8e8e8;
        }

    #maincontent .account-nav .item.current strong {
        border-color: #ff5501;
        font-weight: 600;
    }

    #maincontent .account-nav .item .delimiter {
        border-top: 1px solid #d1d1d1;
        display: block;
        margin: 10px 1.8rem;
    }

#maincontent .block .title {
    margin-bottom: 10px;
}

    #maincontent .block .title strong {
        font-weight: 700;
        line-height: 1.1;
        font-size: 1.4rem;
        margin-top: 2rem;
        margin-bottom: 2rem;
    }

#maincontent .block p:last-child {
    margin: 0;
}

#maincontent .block .box-actions {
    margin-top: 5px;
}

#maincontent .block-reorder .product-item .checkbox {
    position: relative;
    top: 2px;
    vertical-align: baseline;
}

#maincontent .block-reorder .product-item .field.item {
    display: inline-block;
}

#maincontent .block-reorder .product-item-name {
    display: inline-block;
}

#maincontent .block-reorder .actions-toolbar {
    margin: 17px 0;
    max-width: 178px;
}

#maincontent .page-main {
    -webkit-flex-grow: 1;
    flex-grow: 1;
}

@media only screen and (max-width:767px) {
    .page-main {
        padding-left: 15px;
        padding-right: 15px;
    }

    #maincontent .account .page-main {
        padding-top: 41px;
        position: relative;
    }
}



@media only screen and (max-width:639px) {
    #maincontent .table-wrapper {
        overflow-x: auto;
        overflow-y: hidden;
        width: 100%;
        -ms-overflow-style: -ms-autohiding-scrollbar;
        -webkit-overflow-scrolling: touch;
        position: relative;
    }
    #maincontent .block {
        margin-bottom: 40px;
        padding-top: 0;
    }

    #maincontent .table-wrapper .table:not(.cart):not(.totals):not(.table-comparison) {
        border: none;
        display: block;
    }

        #maincontent .table-wrapper .table:not(.cart):not(.totals):not(.table-comparison) > thead > tr > th {
            display: none;
        }

        #maincontent .table-wrapper .table:not(.cart):not(.totals):not(.table-comparison) > tbody {
            display: block;
        }

            #maincontent .table-wrapper .table:not(.cart):not(.totals):not(.table-comparison) > tbody > tr {
                display: block;
            }

                #maincontent .table-wrapper .table:not(.cart):not(.totals):not(.table-comparison) > tbody > tr td {
                    border-bottom: none;
                    display: block;
                    padding: 5px 0;
                }

                    #maincontent .table-wrapper .table:not(.cart):not(.totals):not(.table-comparison) > tbody > tr td[data-th]:before {
                        padding-right: 10px;
                        content: attr(data-th) ': ';
                        display: inline-block;
                        color: #111;
                        font-weight: 700;
                    }

        #maincontent .table-wrapper .table:not(.cart):not(.totals):not(.table-comparison) tbody > tr > td:first-child {
            padding-top: 20px;
        }

        #maincontent .table-wrapper .table:not(.cart):not(.totals):not(.table-comparison) tbody > tr > td:last-child {
            padding-bottom: 20px;
        }
}

@media all and (min-width:768px),#maincontent print {


    .page-main {
        width: 100%;
    }

    #maincontent .columns {
        display: block;
    }

    #maincontent .actions-toolbar:before, #maincontent .actions-toolbar:after {
        content: '';
        display: table;
    }

    #maincontent .actions-toolbar:after {
        clear: both;
    }

    #maincontent .actions-toolbar .primary {
        float: left;
    }

    #maincontent .actions-toolbar .secondary {
        float: right;
    }

    #maincontent .actions-toolbar .primary, #maincontent .actions-toolbar .secondary {
        display: inline-block;
    }

        #maincontent .actions-toolbar .secondary a.action {
            display: inline-block;
        }

        #maincontent .actions-toolbar .primary .action {
            margin: 0 5px 0 0;
        }

        #maincontent .actions-toolbar .secondary a.action {
            margin-top: 6px;
        }

    #maincontent .actions-toolbar > .primary, #maincontent .actions-toolbar > .secondary {
        margin-bottom: 0;
    }

        #maincontent .actions-toolbar > .primary .action, #maincontent .actions-toolbar > .secondary .action {
            margin-bottom: 0;
            width: auto;
        }
}

#maincontent main {
    display: block;
}

#maincontent a {
    background-color: transparent;
}

    #maincontent a:active, #maincontent a:hover {
        outline: 0;
    }

#maincontent strong {
    font-weight: 700;
}

#maincontent button, #maincontent input {
    margin: 0;
    font: inherit;
    color: inherit;
}

#maincontent button {
    overflow: visible;
}

#maincontent button {
    text-transform: none;
}

#maincontent button {
    -webkit-appearance: button;
    cursor: pointer;
}

    #maincontent button::-moz-focus-inner, #maincontent input::-moz-focus-inner {
        padding: 0;
        border: 0;
    }

#maincontent input {
    line-height: normal;
}

    #maincontent input[type=checkbox] {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        padding: 0;
    }

#maincontent table {
    border-spacing: 0;
    border-collapse: collapse;
}

#maincontent td, #maincontent th {
    padding: 0;
}

@media print {
    *, *:before, *:after {
        color: #000 !important;
        text-shadow: none !important;
        background: 0 0 !important;
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
    }

    #maincontent a, #maincontent a:visited {
        text-decoration: underline;
    }

        #maincontent a[href]:after {
            content: " (" attr(href) ")";
        }

        #maincontent a[href^="#"]:after {
            content: "";
        }

    #maincontent thead {
        display: table-header-group;
    }

    #maincontent tr {
        page-break-inside: avoid;
    }

    #maincontent p {
        orphans: 3;
        widows: 3;
    }

    #maincontent .label {
        border: 1px solid #000;
    }

    #maincontent .table {
        border-collapse: collapse !important;
    }

        #maincontent .table td, #maincontent .table th {
            background-color: #fff !important;
        }
}

* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

    *:before, *:after {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }

#maincontent input, #maincontent button {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

#maincontent a {
    color: #337ab7;
    text-decoration: none;
}

    #maincontent a:hover, #maincontent a:focus {
        color: #23527c;
        text-decoration: underline;
    }

    #maincontent a:focus {
        outline: thin dotted;
        outline: 5px auto -webkit-focus-ring-color;
        outline-offset: -2px;
    }



#maincontent address {
    margin-bottom: 20px;
    font-style: normal;
    line-height: 1.42857143;
}



#maincontent table {
    background-color: transparent;
}








#maincontent button, #maincontent input {
    margin: 0;
    max-width: 100%;
    font-size: 13px;
}



#maincontent caption {
    padding: 10px;
}

#maincontent ul, #maincontent ol {
    margin: 0;
    padding: 0;
}

#maincontent a:focus, #maincontent button:focus {
    outline: none !important;
}

::-webkit-input-placeholder {
    color: inherit;
    opacity: 1;
    filter: alpha(opacity=100);
}

:-moz-placeholder {
    color: inherit;
    opacity: 1;
    filter: alpha(opacity=100);
}

::-moz-placeholder {
    color: inherit;
    opacity: 1;
    filter: alpha(opacity=100);
}

:-ms-input-placeholder {
    color: inherit;
    opacity: 1;
    filter: alpha(opacity=100);
}

#maincontent button {
    color: #444;
    display: inline-block;
    padding: 8px 35px;
    text-align: center;
    text-transform: uppercase;
    font-size: 10px;
    font-family: 'Poppins','sans-serif';
    position: relative;
    background-color: #fff;
    border: 1px solid #e5e5e5;
}

    #maincontent button:before {
        -webkit-transition: all .5 ease;
        -moz-transition: all .5 ease;
        -ms-transition: all .5 ease;
        -o-transition: all .5 ease;
    }

    #maincontent button:hover:before {
        width: 100%;
    }

#maincontent button {
    color: #fff;
}

#maincontent .label {
    font-size: 13px;
    padding: 0;
    text-align: left;
    font-weight: 400;
}

#maincontent input:not([disabled]):focus {
    box-shadow: none;
}

#maincontent a:hover, #maincontent a:focus {
    color: #6c3;
}

#maincontent button, #maincontent .action.primary {
    background: #6c3 none repeat scroll 0 0;
    color: #fff;
    padding: 13px 20px;
    box-shadow: none;
    display: inline-block;
    font-family: 'Poppins',#maincontent sans-serif;
    border-radius: 0;
    text-transform: none;
    line-height: 100%;
    font-size: 14px;
    font-weight: 400;
    position: relative;
    border: 0;
    border-radius: 4px;
    text-shadow: none;
    white-space: nowrap;
    -webkit-transition: all .3 ease;
    -moz-transition: all .3 ease;
    -ms-transition: all .3 ease;
    -o-transition: all .3 ease;
}

    #maincontent button:hover, #maincontent .action.primary:hover {
        background: #6c3;
        color: #fff;
        border: none;
    }


#maincontent .block-reorder .block-title > strong {
    font-size: 18px;
    text-transform: uppercase;
    font-family: 'Poppins',#maincontent sans-serif;
}

#maincontent .block-reorder .product-item {
    padding-left: 0;
}

#maincontent .account .data.table .col.actions .action:after, #maincontent .block .box-actions .action:after {
    content: "";
    display: inline-block;
    height: 12px;
    margin: 0 10px;
    border-left: 1px solid #a6a6a6;
    vertical-align: -1px;
}

#maincontent .account .data.table .col.actions .action:last-child:after, #maincontent .block .box-actions .action:last-child:after {
    display: none;
}

#maincontent .block-dashboard-info {
    padding: 20px;
    border: 1px solid #eee;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    overflow: hidden;
}

    #maincontent .block-dashboard-info .block-title {
        border-bottom: 1px solid #ddd;
        padding-bottom: 10px;
        margin-top: 15px;
        margin-bottom: 15px;
    }

        #maincontent .block-dashboard-info .block-title strong {
            color: #222;
            font-family: 'Poppins','sans-serif';
            font-size: 18px;
        }

    #maincontent .block-dashboard-info .box-information {
        float: left;
        clear: left;
        width: 48%;
    }

        #maincontent .block-dashboard-info .box-information .box-title {
            font-size: 16px;
            font-family: 'Poppins','sans-serif';
            padding-bottom: 10px;
            display: block;
        }

        #maincontent .block-dashboard-info .box-information a {
            color: #aaa;
        }

            #maincontent .block-dashboard-info .box-information a:hover {
                color: #333;
            }

    #maincontent .block-dashboard-info .box-newsletter {
        float: right;
        clear: right;
        width: 48%;
    }

        #maincontent .block-dashboard-info .box-newsletter .box-title {
            font-size: 16px;
            font-family: 'Poppins','sans-serif';
            padding-bottom: 10px;
            display: block;
        }

        #maincontent .block-dashboard-info .box-newsletter a {
            color: #aaa;
        }

            #maincontent .block-dashboard-info .box-newsletter a:hover {
                color: #333;
            }

#maincontent .block-dashboard-addresses {
    padding: 20px;
    border: 1px solid #eee;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    overflow: hidden;
}

    #maincontent .block-dashboard-addresses .block-title {
        border-bottom: 1px solid #ddd;
        padding-bottom: 10px;
        margin-bottom: 15px;
    }

        #maincontent .block-dashboard-addresses .block-title strong {
            color: #222;
            font-family: 'Poppins','sans-serif';
            font-size: 18px;
        }

        #maincontent .block-dashboard-addresses .block-title a {
            font-family: 'Poppins','sans-serif';
            color: #aaa;
            float: right;
        }

    #maincontent .block-dashboard-addresses .box-billing-address {
        float: left;
        clear: left;
        width: 48%;
    }

        #maincontent .block-dashboard-addresses .box-billing-address .box-title {
            font-size: 16px;
            font-family: 'Poppins',#maincontent sans-serif;
            padding-bottom: 10px;
            display: block;
        }

        #maincontent .block-dashboard-addresses .box-billing-address a {
            color: #aaa;
        }

            #maincontent .block-dashboard-addresses .box-billing-address a:hover {
                color: #333;
            }

    #maincontent .block-dashboard-addresses .box-shipping-address {
        float: right;
        clear: right;
        width: 48%;
    }

        #maincontent .block-dashboard-addresses .box-shipping-address .box-title {
            font-size: 16px;
            font-family: 'Poppins',#maincontent sans-serif;
            padding-bottom: 10px;
            display: block;
        }

        #maincontent .block-dashboard-addresses .box-shipping-address a {
            color: #aaa;
        }

            #maincontent .block-dashboard-addresses .box-shipping-address a:hover {
                color: #333;
            }

#maincontent .account-nav {
    margin-bottom: 0;
}

    #maincontent .account-nav .title {
        margin: 0;
    }

        #maincontent .account-nav .title strong {
            padding: 12px 15px;
            display: block;
            background: #eee;
            font-family: 'Poppins','sans-serif';
            margin: 0;
            font-size: 18px;
        }

    #maincontent .account-nav .nav {
        padding: 15px;
    }

        #maincontent .account-nav .nav li {
            line-height: 30px;
            padding: 0;
            border-top: 1px solid #eee;
            margin-top: 5px;
            padding-top: 5px;
        }

            #maincontent .account-nav .nav li:first-child {
                border: 0;
                padding: 0;
                margin: 0;
            }

            #maincontent .account-nav .nav li a {
                display: block;
                color: #999;
                background: 0 0;
                padding: 0;
                padding-left: 10px;
            }

                #maincontent .account-nav .nav li a:hover {
                    color: #333;
                }



#maincontent .sidebar .product-items .product-item {
    padding: 0;
    margin-bottom: 30px;
}




#maincontent input, #maincontent input:focus, #maincontent input:hover {
    outline: none;
}

#maincontent p {
    line-height: 24px;
}

#maincontent .title {
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 10px;
    text-transform: uppercase;
}

#maincontent .product-item {
    font-size: 14px;
}

#maincontent .block-reorder .product-item .field.item {
    margin-bottom: 25px;
}

#maincontent .block-reorder .product-item .checkbox {
    top: 0;
    margin: 0;
    box-shadow: none;
}

#maincontent .sidebar .block-reorder .actions-toolbar {
    max-width: 100%;
}

* {
    box-sizing: border-box;
}

#maincontent body input[type=checkbox] {
    display: inline-block;
}

#maincontent .choice.field label {
    color: #333;
    font-size: 14px;
}

@media (min-width:768px) {
    .actions-toolbar .primary {
        float: none;
    }
}

}
/*! CSS Used from: http://blueskytechmage.com/fruitshop/pub/static/version1606529077/frontend/bs_fruitshop/bs_default/en_US/css/print.min.css ; media=print */
@media print {
    @media print {
        * {
            -webkit-filter: none !important;
            background: 0 0 !important;
            color: #000 !important;
            filter: none !important;
            text-shadow: none !important;
        }



        #maincontent .box, #maincontent tr {
            page-break-inside: avoid;
        }

        #maincontent .block-content, #maincontent p {
            orphans: 3;
            widows: 3;
        }

        #maincontent .block-content {
            page-break-before: avoid;
        }

        #maincontent .block-title {
            page-break-after: avoid;
        }

        #maincontent .sidebar {
            display: none;
        }
    }
}
/*! CSS Used from: Embedded */
@media print {


    .box, #maincontent tr {
        page-break-inside: avoid;
    }

    #maincontent .block-content, #maincontent p {
        orphans: 3;
        widows: 3;
    }

    #maincontent .block-content {
        page-break-before: avoid;
    }

    #maincontent .block-title {
        page-break-after: avoid;
    }

    #maincontent .sidebar {
        display: none;
    }
}

#maincontent .account .block {
    margin-bottom: 40px;
}

#maincontent .account .block-reorder .block-title {
    margin-top: 15px;
    margin-bottom: 15px;
}

#maincontent .account .block .block-title > strong {
    font-size: 18px;
    color: #222;
    font-weight: 600;
    display: block;
    border-bottom: 1px solid #ebebeb;
    padding-bottom: 10px;
    margin-bottom: 15px;
}

#maincontent .account .block-content .box {
    margin-bottom: 20px;
}

    #maincontent .account .block-content .box .box-title > span {
        font-weight: 600;
        line-height: 1.1;
        margin-bottom: 2rem;
    }

#maincontent .account .block .box-actions {
    margin-top: 5px;
}

#maincontent .account .box-content > address {
    line-height: 30px;
}

#maincontent .account-nav .content {
    padding: 0;
}

#maincontent .account-nav .nav li a {
    color: #666;
}

#maincontent .action.primary {
    color: white;
}

#maincontent .account-nav .item.current strong {
    border: none;
}
.info-box {
    display: block;
    min-height: 90px;
    background: #fff;
    width: 100%;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
    border-radius: 2px;
    margin-bottom: 15px;
}

    .info-box small {
        font-size: 14px;
    }

    .info-box .progress {
        background: rgba(0, 0, 0, 0.2);
        margin: 5px -10px 5px -10px;
        height: 2px;
    }

        .info-box .progress,
        .info-box .progress .progress-bar {
            border-radius: 0;
        }

            .info-box .progress .progress-bar {
                background: #fff;
            }

.info-box-icon {
    border-top-left-radius: 2px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 2px;
    display: block;
    float: left;
    height: 90px;
    width: 90px;
    text-align: center;
    font-size: 45px;
    line-height: 90px;
    background: rgba(0, 0, 0, 0.2);
}

    .info-box-icon > img {
        max-width: 100%;
    }

.info-box-content {
    padding: 5px 10px;
    margin-left: 90px;
}

.info-box-number {
    display: block;
    font-weight: bold;
    font-size: 18px;
}

.progress-description,
.info-box-text {
    display: block;
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.info-box-text {
    text-transform: uppercase;
}

.info-box-more {
    display: block;
}




#maincontent a:visited {
    color: #1979c3;
    text-decoration: none;
}

#maincontent a:hover {
    color: #006bb4;
    text-decoration: underline;
}

#maincontent a:active {
    color: #ff5501;
    text-decoration: underline;
}

#maincontent button {
    background-image: none;
    background: #f2f2f2;
    border: 1px solid #cdcdcd;
    color: #333;
    cursor: pointer;
    display: inline-block;
    font-family: 'Open Sans','Helvetica Neue',#maincontent Helvetica,#maincontent Arial,#maincontent sans-serif;
    font-weight: 700;
    margin: 0;
    padding: 7px 15px;
    font-size: 1.4rem;
    line-height: 1.6rem;
    box-sizing: border-box;
    vertical-align: middle;
}

    #maincontent button:focus, #maincontent button:active {
        background: #e2e2e2;
        border: 1px solid #cdcdcd;
        color: #333;
    }

    #maincontent button:hover {
        background: #e2e2e2;
        border: 1px solid #cdcdcd;
        color: #555;
    }

    #maincontent button::-moz-focus-inner {
        border: 0;
        padding: 0;
    }

#maincontent input[type=text], #maincontent input[type=tel] {
    background: #fff;
    background-clip: padding-box;
    border: 1px solid #c2c2c2;
    border-radius: 1px;
    font-family: 'Open Sans','Helvetica Neue',#maincontent Helvetica,#maincontent Arial,#maincontent sans-serif;
    font-size: 14px;
    height: 32px;
    line-height: 1.42857143;
    padding: 0 9px;
    vertical-align: baseline;
    width: 100%;
    box-sizing: border-box;
}

    #maincontent input[type=text]:disabled, #maincontent input[type=tel]:disabled {
        opacity: .5;
    }

    #maincontent input[type=text]::-moz-placeholder, #maincontent input[type=tel]::-moz-placeholder {
        color: #c2c2c2;
    }

    #maincontent input[type=text]::-webkit-input-placeholder, #maincontent input[type=tel]::-webkit-input-placeholder {
        color: #c2c2c2;
    }

    #maincontent input[type=text]:-ms-input-placeholder, #maincontent input[type=tel]:-ms-input-placeholder {
        color: #c2c2c2;
    }



    #maincontent select:disabled {
        opacity: .5;
    }

#maincontent input[type=checkbox] {
    margin: 2px 5px 0 0;
    position: relative;
    top: 2px;
}

    #maincontent input[type=checkbox]:disabled {
        opacity: .5;
    }

#maincontent input::-moz-focus-inner {
    border: 0;
    padding: 0;
}

#maincontent form {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

*:focus {
    box-shadow: none;
    outline: 0;
}

#maincontent input:not([disabled]):focus, #maincontent select:not([disabled]):focus {
    box-shadow: 0 0 3px 1px #68a8e0;
}

#maincontent .actions-toolbar > .primary .action, #maincontent .actions-toolbar > .secondary .action {
    width: 100%;
}

#maincontent .field.street .field .label2 {
    border: 0;
    clip: rect(0,0,0,0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}



#maincontent .message.warning {
    margin: 0 0 10px;
    padding: 10px 20px;
    display: block;
    line-height: 1.2em;
    font-size: 1.3rem;
    background: #fdf0d5;
    color: #6f4400;
    padding-left: 40px;
    position: relative;
}

    #maincontent .message.warning > *:first-child:before {
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        font-size: 28px;
        line-height: 28px;
        color: #c07600;
        content: '\e602';
        font-family: 'icons-blank-theme';
        margin: -14px 0 0;
        vertical-align: middle;
        display: inline-block;
        font-weight: 400;
        overflow: hidden;
        speak: none;
        left: 0;
        top: 18px;
        width: 40px;
        position: absolute;
        text-align: center;
    }

#maincontent .fieldset {
    border: 0;
    margin: 0 0 40px;
    padding: 0;
    letter-spacing: -.31em;
}

    #maincontent .fieldset > * {
        letter-spacing: normal;
    }

    #maincontent .fieldset > .field {
        margin: 0 0 20px;
    }

        #maincontent .fieldset > .field > .label2 {
            margin: 0 0 5px;
            display: inline-block;
        }

        #maincontent .fieldset > .field:last-child {
            margin-bottom: 0;
        }

        #maincontent .fieldset > .field > .label2 {
            font-weight: 700;
        }

        #maincontent .fieldset > .field .additional {
            margin-top: 10px;
        }

        #maincontent .fieldset > .field.required > .label2:after {
            content: '*';
            color: #e02b27;
            font-size: 1.2rem;
            margin: 0 0 0 5px;
        }

        #maincontent .fieldset > .field.choice .label2 {
            display: inline;
            font-weight: 400;
        }

#maincontent .field .message.warning {
    margin-top: 10px;
}

#maincontent .fieldset > .field:not(.choice) > .label2 {
    text-align: left;
}



#maincontent .fieldset > .field > .label2 {
    font-weight: 400;
}

#maincontent .fieldset .field .checkbox {
    float: left;
    margin: 0 10px 0 0;
}

#maincontent .fieldset > .field .additional .label2 {
    padding: 5px 0;
}

#maincontent .choice.field label2 {
    color: #333;
    font-size: 14px;
}

#maincontent .account .page-main input[type=tel], #maincontent .account .page-main input[type=text] {
    height: 45px;
    line-height: 45px;
}

#maincontent .account .page-main .fieldset > .field {
    display: flex;
    align-items: center;
}

    #maincontent .account .page-main .fieldset > .field input[type=checkbox] {
        top: 0;
        margin-top: 0;
        margin-right: 10px;
    }







#maincontent button:active {
    box-shadow: none;
    border: 0;
}







#maincontent .account .page-main input[type=tel], #maincontent .account .page-main input[type=text] {
    height: 45px;
    line-height: 45px;
}

#maincontent .account .page-main .fieldset > .field {
    display: flex;
    align-items: center;
}

    #maincontent .account .page-main .fieldset > .field input[type=checkbox] {
        top: 0;
        margin-top: 0;
        margin-right: 10px;
    }



#category-sect img {
    max-height: 100%;
    max-width: 100%;
}

#category-sect h3 {
    font-weight: 600;
    line-height: 1.1;
    font-size: 1.83076968rem;
    margin-top: 2.36923135rem;
    margin-bottom: 1.18461568rem;
}

#category-sect a {
    color: #707070;
    text-decoration: none;
}

    #category-sect a:visited {
        color: #707070;
        text-decoration: none;
    }

    #category-sect a:hover {
        color: #5b8c16;
        text-decoration: none;
    }

    #category-sect a:active {
        color: #5b8c16;
        text-decoration: underline;
    }

#category-sect ul, #category-sect ol {
    margin-top: 0rem;
    margin-bottom: 2.96153919rem;
}

    #category-sect ul > li {
        margin-top: 0rem;
        margin-bottom: 1.18461568rem;
    }



*:focus {
    box-shadow: none;
    outline: 0;
}

#category-sect .product-items {
    margin: 0;
    padding: 0;
    list-style: none none;
}



#category-sect .product-item-name {
    font-weight: 400;
}

#category-sect .product-item-actions .actions-secondary > .action span {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

#category-sect .product-item {
    box-sizing: border-box;
}

    #category-sect .product-item-actions .actions-secondary > .action, #category-sect .product-item .action.towishlist {
        color: #999999;
        font-weight: 600;
        letter-spacing: .05em;
        text-transform: uppercase;
        display: inline-block;
        text-decoration: none;
    }

        #category-sect .product-item-actions .actions-secondary > .action:before, #category-sect .product-item .action.towishlist:before {
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            font-size: 16px;
            line-height: 16px;
            color: inherit;
            font-family: 'Luma-Icons';
            margin: -2px 5px 0 0;
            vertical-align: middle;
            display: inline-block;
            font-weight: normal;
            overflow: hidden;
            speak: none;
            text-align: center;
        }

        #category-sect .product-item-actions .actions-secondary > .action:hover, #category-sect .product-item .action.towishlist:hover {
            color: #707070;
            text-decoration: none;
        }

        #category-sect .product-item-actions .actions-secondary > .action:before, #category-sect .product-item .action.towishlist:before {
            width: 18px;
        }

#category-sect .items {
    margin: 0;
    padding: 0;
    list-style: none none;
}

#category-sect button {
    border-radius: 5px;
}

#category-sect body:not(._keyfocus) button:focus {
    box-shadow: none;
}

#category-sect .action.primary {
    background-image: none;
    background: #5b8c16;
    border: none;
    color: #ffffff;
    cursor: pointer;
    display: inline-block;
    font-family: 'Poppins', #category-sect sans-serif, 'Helvetica Neue', #category-sect Helvetica, #category-sect Arial, #category-sect sans-serif;
    font-weight: 500;
    padding: 10px 15px;
    font-size: 1.29230801rem;
    box-sizing: border-box;
    vertical-align: middle;
}

    #category-sect .action.primary:focus, #category-sect .action.primary:active {
        background: #ffd200;
        border: none;
        color: #000000;
    }

    #category-sect .action.primary:hover {
        background: #ffd200;
        border: none;
        color: #000000;
    }

#category-sect .price-container.weee:before {
    display: none;
}

#category-sect .product-item .action.towishlist {
    color: #707070;
}

#category-sect .product-item-actions .actions-secondary > .action {
    color: #707070;
}

#category-sect .product-item .action.towishlist:hover {
    color: #5b8c16;
}

#category-sect .product-item-actions .actions-secondary > .action:hover {
    color: #5b8c16;
}



#category-sect .product-items {
    font-size: 0;
    letter-spacing: -1px;
    line-height: 0;
}

#category-sect .product-item {
    font-size: 1.4rem;
    line-height: normal;
    letter-spacing: normal;
    vertical-align: top;
}

#category-sect .products-grid .product-item {
    display: inline-block;
}

#category-sect .product-item-name {
    display: block;
    word-wrap: break-word;
    text-transform: capitalize;
    letter-spacing: 0.7px;
    font-size: 12px;
    line-height: 20px;
    margin: 0;
    color: #707070;
}

#category-sect .product-item-actions {
    font-size: 0;
}

    #category-sect .product-item-actions .actions-secondary > .action:before {
        margin: 0;
    }

    #category-sect .product-item-actions .actions-primary {
        display: inline-block;
        vertical-align: middle;
    }

#category-sect .product-item .product-reviews-summary .reviews-actions {
    font-size: 12px;
    margin-top: 5px;
}

#category-sect .product-item .price-box .price {
    white-space: nowrap;
    font-size: 16px;
    color: #5b8c16;
    font-weight: 600;
    letter-spacing: 0.6px;
}

#category-sect .product-item .tocompare:before {
    content: '\e61e';
}

#category-sect .product-item .tocart {
    white-space: nowrap;
}

#category-sect .product-item-details a:hover > .product-item-name {
    color: #5b8c16;
}

#category-sect .column.main .product-items {
    margin-left: 0;
}

#category-sect .column.main .product-item {
    padding-left: 0;
}

#category-sect .product-image-container {
    display: inline-block;
    max-width: 100%;
}

#category-sect .product-image-wrapper {
    display: block;
    height: 0;
    overflow: hidden;
    position: relative;
    z-index: 1;
}

.product-image-wrapper img {
    width:100%;
    height:250px;
    padding:5px;
    object-fit:contain;
}

#category-sect .product-image-photo {
    bottom: 0;
    display: block;
    height: auto;
    left: 0;
    margin: auto;
    max-width: 100%;
    position: absolute;
    right: 0;
    top: 0;
}

#category-sect .column.main .block:last-child {
    margin-bottom: 0;
}

#category-sect .product-reviews-summary .reviews-actions {
    display: inline-block;
    font-size: 10px;
    vertical-align: middle;
}

    #category-sect .product-reviews-summary .reviews-actions .action.add {
        white-space: nowrap;
    }

#category-sect .widget {
    clear: both;
}

#category-sect .product-item .action.towishlist:before {
    content: '\e600';
}

#category-sect .block.widget .product-item-info {
    width: auto;
}

#category-sect #maincontent.page-main .block {
    margin-bottom: 0;
}

@media all and (min-width: 640px) {
    .products-grid .product-item-info:hover {
        position: relative;
        z-index: 2;
    }

    #category-sect .product-item-actions .actions-primary + .actions-secondary > .action:last-child {
        margin-right: 0;
    }
}

#category-sect .owl-carousel {
    display: block;
    position: relative;
    width: 100%;
    -ms-touch-action: pan-y;
}

    #category-sect .owl-carousel .owl-item {
        float: left;
    }





#category-sect .tm_Category_Slider_CMS {
    float: left;
    width: 100%;
    position: relative;
    margin: 60px 0 0;
}

    #category-sect .tm_Category_Slider_CMS .owl-stage-outer .owl-stage .owl-item::after {
        right: 0;
    }

#category-sect .product-item-info .product-item-image {
    position: relative;
    text-align: center;
}

    #category-sect .product-item-info .product-item-image .product-image-container {
        vertical-align: middle;
    }

#category-sect .product-item-details {
    margin: 10px 0 0;
    text-align: left;
    position: relative;
    overflow: hidden;
    float: left;
    width: 100%;
}

    #category-sect .product-item-details .product-price {
        position: relative;
        float: left;
        width: 100%;
        overflow: hidden;
        line-height: 18px;
        min-height: 44px;
    }

#category-sect .grid .product-item .price-box {
    position: relative;
    margin: 10px 0 0;
    -moz-transition: all 0.5s ease;
    -webkit-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
    -webkit-opacity: 1;
    -moz-opacity: 1;
    -o-opacity: 1;
    -ms-opacity: 1;
    opacity: 1;
}

#category-sect .grid .product-item-info:hover .price-box {
    -o-opacity: 0;
    -ms-opacity: 0;
    -webkit-opacity: 0;
    -moz-opacity: 0;
    opacity: 0;
}

#category-sect .products-grid .product-item-info .pro-hover {
    position: absolute;
    text-align: left;
    bottom: 0;
    left: 0;
    right: 0;
    -webkit-opacity: 0;
    -moz-opacity: 0;
    -o-opacity: 0;
    -ms-opacity: 0;
    opacity: 0;
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
    -webkit-transform: translateX(-100%);
    -moz-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    -o-transform: translateX(-100%);
    transform: translateX(-100%);
    height: 36px;
    width: auto;
    padding: 0;
    visibility: hidden;
}

#category-sect .products-grid .product-item-info:hover .pro-hover {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0);
    transform: translateX(0);
    -o-opacity: 1;
    -ms-opacity: 1;
    -webkit-opacity: 1;
    -moz-opacity: 1;
    opacity: 1;
    visibility: visible;
}

#category-sect .product-item-actions {
    display: inline;
}

#category-sect div.product-reviews-summary {
    position: relative;
    text-align: left;
    margin: 0 0 5px;
    display: block;
}

#category-sect .product-item-info div.product-reviews-summary {
    position: absolute;
    bottom: -12px;
}

#category-sect .product-item-link {
    display: block;
    position: relative;
}

#category-sect .tm_Category_Slider_CMS .owl-stage-outer .owl-stage .owl-item::after {
    content: '';
    position: absolute;
    width: 1px;
    background: #f0f0f0;
    left: 0;
    top: 25px;
    bottom: 26%;
}

#category-sect .tm_Category_Slider_CMS .owl-stage-outer .owl-stage .owl-item.firstActiveItem::after {
    content: none;
}

#category-sect .products-grid .product-item-actions {
    margin: 0;
    position: static;
}

#category-sect .products-grid .product-item-info {
    margin: 15px;
    width: auto;
    overflow: hidden;
}

* {
    margin: 0px;
    padding: 0px;
}

#category-sect li {
    list-style: none;
}

#category-sect .cms-home .column.main #authenticationPopup ~ div {
    display: none;
}

#category-sect .tm_Category_Slider_CMS .left-banner-cms {
    float: left;
    position: relative;
    overflow: hidden;
    height:250px;
    display: inline-block;
}

#category-sect .banner-content ul li a {
    font-size: 16px;
    font-weight: 500;
    color: #fff;
    padding: 9px 110px 9px 26px;
    display: block;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent;
    border-left: 4px solid transparent;
}

#category-sect .tm_Category_Slider_CMS .banner-content li {
    margin: 0;
}

#category-sect .banner-content ul.cat_tabbernav_product li a.selected, #category-sect .banner-content ul.cat-tabbernav-product li a.selected {
    color: navajowhite;
    border-top-color: rgba(255,255,255,.5);
    border-bottom-color: rgba(255,255,255,.5);
    border-left-color: navajowhite;
    position: relative;
}

    #category-sect .banner-content ul.cat_tabbernav_product li a.selected::after, #category-sect .banner-content ul.cat-tabbernav-product li a.selected::after {
        content: "";
        position: absolute;
        left: 99%;
        text-align: center;
        bottom: 0;
        z-index: 9;
        top: 6px;
        width: 14px;
        height: 30px;
    }

    #category-sect .banner-content ul.cat_tabbernav_product li a.selected::after {
        background: url(/images/sprite-1.png) no-repeat 0 -159px;
    }

    #category-sect .banner-content ul.cat-tabbernav-product li a.selected::after {
        background: url(/images/sprite-1.png) no-repeat -25px -159px;
    }

#category-sect .banner-content ul.cat_tabbernav_product li a:hover, #category-sect .banner-content ul.cat-tabbernav-product li a:hover {
    color: navajowhite;
}

#category-sect .tm_Category_Slider_CMS .Block1 .cat_product_tabs, #category-sect .tm_Category_Slider_CMS .Block2 .cat_product_tabs {
    float: left;
    width: 100%;
    position: relative;
    margin: 0;
    clear: none;
}

#category-sect .tm_Category_Slider_CMS .banner-content {
    position: absolute;
    top: 0%;
    background: linear-gradient(to right, rgba(255,0,0,0), rgba(127,217,84,1));
    width: 100%;
    height: 100%;

}

    #category-sect .tm_Category_Slider_CMS .banner-content ul {
        float: right;
        height: 100%;
        overflow-y: auto;
        -ms-overflow-style: none; /* IE and Edge */
        scrollbar-width: none; /* Firefox */
    }
.banner-content ul::-webkit-scrollbar {
    display: none;
}
   
    .banner-content::-webkit-scrollbar {
        display: none;
    }


#category-sect .tm_Category_Slider_CMS .Block1, #category-sect .tm_Category_Slider_CMS .Block2 {
    float: left;
    width: 100%;
    overflow: hidden;
    margin: 0 0 70px 0;
}

#category-sect .tm_Category_Slider_CMS .products.wrapper.products-grid.grid {
    margin: 0;
}

#category-sect .tm_Category_Slider_CMS .owl-stage-outer {
    padding: 0;
}

#category-sect .product-item .product-reviews-summary .reviews-actions a:hover {
    color: #5B8C16;
}

#category-sect .product-item .action.towishlist span, #category-sect .product-item .tocompare span {
    font-size: 0;
    display: none;
}

#category-sect .product-item-actions .actions-secondary > .action::before, #category-sect .product-item .action.towishlist::before, #category-sect .product-item .tocompare:before, #category-sect .product-item .action.towishlist:before {
    color: inherit;
    font-family: "FontAwesome";
    font-size: 16px;
    font-weight: normal;
    line-height: 24px;
    margin: 0;
    overflow: hidden;
}

#category-sect .product-item .action.towishlist::before {
    content: "\f08a";
}

#category-sect .product-item-actions .actions-secondary > .action:before, #category-sect .product-item .action.towishlist:before {
    font-family: "FontAwesome";
}

#category-sect .product-item .tocompare:before {
    content: "\f24d";
}

#category-sect .product-item .tocompare, #category-sect .product-item .action.towishlist, #category-sect .product-item-actions .actions-secondary > .action {
    color: #808080;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

#category-sect .product-item-details .product-item-inner .actions-primary, #category-sect .product-item-details .product-item-inner .actions-secondary {
    display: inline-block;
    padding: 0;
    vertical-align: top;
    border: 0;
    background: none;
    margin: 0 5px 0 0;
}

    #category-sect .product-item-details .product-item-inner .actions-secondary a {
        padding: 0;
        cursor: pointer;
        color: #000;
        border-radius: 5px;
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        -o-border-radius: 5px;
        -khtml-border-radius: 5px;
        line-height: 20px;
        height: 35px;
        width: 35px;
        transition: all 500ms ease 0s;
        -webkit-transition: all 500ms ease 0s;
        -moz-transition: all 500ms ease 0s;
        -ms-transition: all 500ms ease 0s;
        -o-transition: all 500ms ease 0s;
    }

    #category-sect .product-item-details .product-item-inner .actions-secondary .action.towishlist {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -201px;
    }

    #category-sect .product-item-details .product-item-inner .actions-secondary .action.tocompare {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -308px;
    }

    #category-sect .product-item-details .product-item-inner .actions-secondary .action.towishlist:hover {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -201px;
        border-radius: 50%;
    }

    #category-sect .product-item-details .product-item-inner .actions-secondary .action.towishlist:focus, #category-sect .product-item-details .product-item-inner .actions-secondary .action.towishlist:active {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -201px;
    }

    #category-sect .product-item-details .product-item-inner .actions-secondary .action.tocompare:hover {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -308px;
        border-radius: 50%;
    }

    #category-sect .product-item-details .product-item-inner .actions-secondary .action.tocompare:active, #category-sect .product-item-details .product-item-inner .actions-secondary .action.tocompare:focus {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -308px;
    }

#category-sect .product-item .action.towishlist::before, #category-sect .product-item-actions .actions-secondary > .action::before, #category-sect .product-item .action.tocompare::before {
    content: none;
}

#category-sect a:active {
    text-decoration: none;
}



#category-sect .page-layout-1column .block.widget .products-grid li.product-item {
    position: relative;
    float: left;
    margin: 0;
    width: 20%;
    box-sizing: border-box;
}

#category-sect .page-layout-1column .tm_Category_Slider_CMS .block.widget .products-grid li.product-item {
    width: 25%;
}




#category-sect .owl-stage-outer {
    padding: 0;
}

#category-sect .products.wrapper {
    margin: 0;
}

#category-sect img {
    vertical-align: top;
}

#category-sect .products.wrapper.products-grid.grid {
    margin: 0 -15px;
}

#category-sect  .product-item {
    width: 100%;
    margin-left: 0;
    padding-left: 0;
}

#category-sect .grid .product-item-info:hover .actions-primary {
    -khtml-opacity: 1;
    -o-opacity: 1;
    -ms-opacity: 1;
    -webkit-opacity: 1;
    -moz-opacity: 1;
    opacity: 1;
    filter: Alpha(Opacity=100);
}

#category-sect .grid .product-item-info .action.tocart:hover {
    margin: 0px;
    background: #5b8c16 url(/images/sprite-1.png) no-repeat center 12px;
    border-radius: 50%;
}

#category-sect .grid .product-item-info .action.tocart:active, #category-sect .grid .product-item-info .action.tocart:focus {
    margin: 0;
    background: #5b8c16 url(/images/sprite-1.png) no-repeat center 12px;
}

#category-sect .items {
    border-right: none;
}

#category-sect .product-item-actions .actions-primary + .actions-secondary {
    padding: 0;
    width: auto;
}

#category-sect .product-reviews-summary div.reviews-actions {
    font-size: 12px;
    margin: 0;
    vertical-align: text-top;
}

#category-sect .product-item-info {
    position: relative;
    width: auto;
}

#category-sect .pro-hover .action.primary {
    height: 35px;
    width: 35px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    -ms-border-radius: 5px;
    -o-border-radius: 5px;
    border-radius: 5px;
}

#category-sect .product-item-info .action.primary {
    background: #5b8c16 url(/images/sprite-1.png) no-repeat center 12px;
    font-size: 0;
    padding: 0;
    -webkit-transition: all 500ms ease 0s;
    -moz-transition: all 500ms ease 0s;
    -ms-transition: all 500ms ease 0s;
    -o-transition: all 500ms ease 0s;
    transition: all 500ms ease 0s;
}

#category-sect .product-item div.product-reviews-summary .reviews-actions {
    font-size: 12px;
    margin-top: 0;
    display: none;
}

#category-sect .cms-home .product-item div.product-reviews-summary .reviews-actions {
    display: none;
}

#category-sect .product-item-actions .actions-primary + .actions-secondary {
    display: inline-block;
    width: auto;
}

#category-sect .action.primary {
    font-weight: 500;
    font-size: 12px;
    padding: 10px 15px;
    line-height: 20px;
    text-transform: uppercase;
}





#category-sect .tm_Category_Slider_CMS .products-grid .product-item-info {
    margin: 0 15px 15px;
}

@media (min-width: 1201px) and (max-width: 1460px) {
    .tm_Category_Slider_CMS .owl-stage-outer .owl-stage .owl-item::after {
        height: 222px;
    }

 

  
  

  


    
}

@media (min-width: 1024px) and (max-width: 1200px) {
  

  

    #category-sect .tm_Category_Slider_CMS .Block1, #category-sect .tm_Category_Slider_CMS .Block2 {
        margin: 0 0 50px 0;
    }

    #category-sect .tm_Category_Slider_CMS .owl-stage-outer .owl-stage .owl-item::after {
        height: 245px;
    }

  

  

    

   


}

@media (min-width: 980px) and (max-width: 1023px) {
    .column.main .product-items {
        margin: 0;
    }

  

    #category-sect .tm_Category_Slider_CMS .banner-img-cms {
      
    }

  

    #category-sect .tm_Category_Slider_CMS .Block1, #category-sect .tm_Category_Slider_CMS .Block2 {
        margin: 0 0 30px 0;
    }


    #category-sect .tm_Category_Slider_CMS .owl-stage-outer .owl-stage .owl-item::after {
        height: 230px;
    }


}

@media (max-width: 979px) {
    .column.main .product-item {
        padding-left: 0;
    }

    #category-sect .column.main .product-items {
        margin: 0;
    }

 

   

    #category-sect .tm_Category_Slider_CMS .Block1, #category-sect .tm_Category_Slider_CMS .Block2 {
        margin: 0 0 20px 0;
    }

    #category-sect .tm_Category_Slider_CMS .Block1, #category-sect .tm_Category_Slider_CMS .Block2 {
        margin: 0 0 50px 0;
    }

   

    #category-sect .tm_Category_Slider_CMS .owl-stage-outer .owl-stage .owl-item::after {
        height: 245px;
    }

    #category-sect .banner-content ul li a {
        font-size: 14px;
    }

  

    

    #category-sect .banner-content ul.cat_tabbernav_product li a.selected::after, #category-sect .banner-content ul.cat-tabbernav-product li a.selected::after {
        top: 3px;
    }

    #category-sect .tm_Category_Slider_CMS .Block1 .cat_product_tabs, #category-sect .tm_Category_Slider_CMS .Block2 .cat_product_tabs {
        width: 100%;
    }
    #category-sect .product-item-details {
        text-align:center;
    }
    }
.tm_Category_Slider_CMS .Block1, .tm_Category_Slider_CMS .Block2, .tm_Category_Slider_CMS .Block3 {
    float: left;
    width: 100%;
    overflow: hidden;
    margin: 0 0 70px 0;
}
@media (max-width: 767px) {
    .product-item .tocart {
        padding: 8px 8px;
    }
    #dealsub {
        color: black;
        padding-top: 100px;
    }
    #category-sect .products.wrapper.products-grid.grid {
        margin: 0 -8px;
    }

    #category-sect .products-grid .product-item-info, #category-sect .products-grid .product-item-info:hover {
        margin: 15px 8px;
    }



    #category-sect .tm_Category_Slider_CMS .left-banner-cms {
        width: 100%;
        height: 100px;
  
    }

        #category-sect .tm_Category_Slider_CMS .left-banner-cms .banner-img-cms, .tm_Category_Slider_CMS .left-banner-cms .sub-heading, .tm_Category_Slider_CMS .left-banner-cms .bnr-btn {
            display: none;
        }
        #category-sect .tm_Category_Slider_CMS .left-banner-cms img {
            height: 290px;
        }

    #category-sect .tm_Category_Slider_CMS .banner-content {
        top: auto;
        left: auto;
        right:0%;
        height:100px;
        width: 100%;
        position: relative;
        overflow-y: hidden;
        background: none;
    }

    #category-sect .cat_tabbernav_product, .cat-tabbernav-product, .cattabbernavproduct {
        text-align: left;
    }

    #category-sect .tm_Category_Slider_CMS .banner-content li {
        margin: 0 3px 10px;
        display: inline-block;
    }

    #category-sect .banner-content ul li a {
        font-size: 14px;
        padding: 0;
        font-weight: 400;
        border: 0;
        color: #000;
        border-bottom: 2px solid transparent;
    }

    #category-sect .tm_Category_Slider_CMS .banner-content li {
        margin: 0 3px 10px;
        display: inline-block;
    }
    .banner-content ul.cat_tabbernav_product li a.selected, .banner-content ul.cat_tabbernav_product li a.selected, .banner-content ul.cat-tabbernav-product li a.selected, .banner-content ul.cat-tabbernav-product li a.selected, .banner-content ul.cattabbernavproduct li a.selected, .banner-content ul.cattabbernavproduct li a.selected {
        border-bottom-color: #ffd200 !important;
        background: none;
    }
}
#dealcont img {
    border: 0;
}
#dealcont img {
    max-height: 100%;
    max-width: 100%;
    object-fit:contain;
}

#dealcont p {
    margin-top: 0rem;
    margin-bottom: 1.18461568rem;
}



#dealcont a {
    color: #707070;
    text-decoration: none;
}

    #dealcont a:visited {
        color: #707070;
        text-decoration: none;
    }

    #dealcont a:hover {
        color: #5b8c16;
        text-decoration: none;
    }

    #dealcont a:active {
        color: #5b8c16;
        text-decoration: underline;
    }

#dealcont ol {
    margin-top: 0rem;
    margin-bottom: 2.96153919rem;
}



  

*:focus {
    box-shadow: none;
    outline: 0;
}

#dealcont .product-items {
    margin: 0;
    padding: 0;
    list-style: none none;
}

#dealcont .block {
    margin-bottom: 44px;
}

#dealcont .product-item-name {
    font-weight: 400;
}

#dealcont .product-item-actions .actions-secondary > .action span, #dealcont .special-price .price-label {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

#dealcont .product-item {
    box-sizing: border-box;
}

    #dealcont .product-item-actions .actions-secondary > .action, #dealcont .product-item .action.towishlist {
        color: #999999;
        font-weight: 600;
        letter-spacing: .05em;
        text-transform: uppercase;
        display: inline-block;
        text-decoration: none;
    }

        #dealcont .product-item-actions .actions-secondary > .action:before, #dealcont .product-item .action.towishlist:before {
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            font-size: 16px;
            line-height: 16px;
            color: inherit;
            font-family: 'Luma-Icons';
            margin: -2px 5px 0 0;
            vertical-align: middle;
            display: inline-block;
            font-weight: normal;
            overflow: hidden;
            speak: none;
            text-align: center;
        }

        #dealcont .product-item-actions .actions-secondary > .action:hover, #dealcont .product-item .action.towishlist:hover {
            color: #707070;
            text-decoration: none;
        }

        #dealcont .product-item-actions .actions-secondary > .action:before, #dealcont .product-item .action.towishlist:before {
            width: 18px;
        }

#dealcont .items {
    margin: 0;
    padding: 0;
    list-style: none none;
}

#dealcont button {
    border-radius: 5px;
}

#dealcont body:not(._keyfocus) button:focus {
    box-shadow: none;
}

#dealcont .action.primary {
    background-image: none;
    background: #5b8c16;
    border: none;
    color: #ffffff;
    cursor: pointer;
    display: inline-block;
    font-family: 'Poppins', #dealcont sans-serif, 'Helvetica Neue', #dealcont Helvetica, #dealcont Arial, #dealcont sans-serif;
    font-weight: 500;
    padding: 10px 15px;
    font-size: 1.29230801rem;
    box-sizing: border-box;
    vertical-align: middle;
}

    #dealcont .action.primary:focus, #dealcont .action.primary:active {
        background: #ffd200;
        border: none;
        color: #000000;
    }

    #dealcont .action.primary:hover {
        background: #ffd200;
        border: none;
        color: #000000;
    }

#dealcont .price-container.weee:before {
    display: none;
}

#dealcont .product-item .action.towishlist {
    color: #707070;
}

#dealcont .product-item-actions .actions-secondary > .action {
    color: #707070;
}

#dealcont .product-item .action.towishlist:hover {
    color: #5b8c16;
}

#dealcont .product-item-actions .actions-secondary > .action:hover {
    color: #5b8c16;
}

#dealcont .products {
    margin: 33px 0;
}

#dealcont .product-items {
    font-size: 0;
    letter-spacing: -1px;
    line-height: 0;
}

#dealcont .product-item {
    font-size: 1.4rem;
    line-height: normal;
    letter-spacing: normal;
    vertical-align: top;
}

#dealcont .products-grid .product-item {
    display: inline-block;
}

#dealcont .product-item-name {
    display: block;
    word-wrap: break-word;
    text-transform: capitalize;
    letter-spacing: 0.7px;
    font-size: 12px;
    line-height: 20px;
    margin: 0;
    color: #707070;
}

#dealcont .product-item-actions {
    font-size: 0;
}

    #dealcont .product-item-actions .actions-secondary > .action:before {
        margin: 0;
    }

    #dealcont .product-item-actions .actions-primary {
        display: inline-block;
        vertical-align: middle;
    }

#dealcont .product-item-description {
    font-size: 13px;
    line-height: 24px;
    padding: 15px 0 0;
    clear: both;
}

#dealcont .product-item .product-reviews-summary .reviews-actions {
    font-size: 12px;
    margin-top: 5px;
}

#dealcont .product-item .price-box .price {
    white-space: nowrap;
    font-size: 16px;
    color: #5b8c16;
    font-weight: 600;
    letter-spacing: 0.6px;
}

#dealcont .product-item .price-box .price-label {
    color: #666666;
}

#dealcont .product-item .old-price .price {
    color: #c8c8c8;
    text-decoration: line-through;
    font-weight: 500;
    font-size: 13px;
}

#dealcont .product-item .tocompare:before {
    content: '\e61e';
}

#dealcont .product-item .tocart {
    white-space: nowrap;
}

#dealcont .product-item-details a:hover > .product-item-name {
    color: #5b8c16;
}

#dealcont .column.main .product-items {
    margin-left: 0;
}

#dealcont .column.main .product-item {
    padding-left: 0;
}

#dealcont .old-price {
    color: #666666;
}

#dealcont .product-image-container {
    display: inline-block;
    max-width: 100%;
}

#dealcont .product-image-wrapper {
    display: block;
    height: 0;
    overflow: hidden;
    position: relative;
    z-index: 1;
}

#dealcont .product-image-photo {
    bottom: 0;
    display: block;
    height: auto;
    left: 0;
    margin: auto;
    max-width: 100%;
    position: absolute;
    right: 0;
    top: 0;
}

#dealcont .column.main .block:last-child {
    margin-bottom: 0;
}

#dealcont .block p:last-child {
    margin: 0;
}

#dealcont .product-reviews-summary .reviews-actions {
    display: inline-block;
    font-size: 10px;
    vertical-align: middle;
}

    #dealcont .product-reviews-summary .reviews-actions .action.add {
        white-space: nowrap;
    }

#dealcont .widget {
    clear: both;
}

#dealcont .product-item .action.towishlist:before {
    content: '\e600';
}

#dealcont .block.widget .product-item-info {
    width: auto;
}

#dealcont #maincontent.page-main .block {
    margin-bottom: 0;
}

@media (max-width: 978){
    .tm_Category_Slider_CMS .banner-img-cms {
        width: 90%;
    }
}


@media all and (min-width: 640px) {
    .products-grid .product-item-info:hover {
        position: relative;
        z-index: 2;
    }

    #dealcont .product-item-actions .actions-primary + .actions-secondary > .action:last-child {
        margin-right: 0;
    }
}

#dealcont .owl-carousel {
    display: block;
    position: relative;
    width: 100%;
    -ms-touch-action: pan-y;
}

    #dealcont .owl-carousel .owl-item {
        float: left;
    }



#dealcont .product-item-info .product-item-image {
    position: relative;
    text-align: center;
}

    #dealcont .product-item-info .product-item-image .product-image-container {
        vertical-align: middle;
    }

#dealcont .sale-label {
    position: absolute;
    text-align: center;
    text-transform: uppercase;
    color: #fff;
    font-size: 11px;
    z-index: 1;
    padding: 4px 0px;
    top: 6px;
    line-height: 15px;
    width: 48px;
    font-weight: 500;
    border-radius: 5px;
}

#dealcont .sale-label {
    left: 10px;
    background: #ffd200;
    color: #000;
}

#dealcont .products-grid .product-item-info:hover .sale-label {
    display: none;
}

#dealcont .product-item-details {
    margin: 10px 0 0;
    text-align: left;
    position: relative;
    overflow: hidden;
    float: left;
    width: 100%;
}

#dealcont .grid .product-item .price-box {
    position: relative;
    margin: 10px 0 0;
    -moz-transition: all 0.5s ease;
    -webkit-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
    -webkit-opacity: 1;
    -moz-opacity: 1;
    -o-opacity: 1;
    -ms-opacity: 1;
    opacity: 1;
}

#dealcont .grid .product-item-info:hover .price-box {
    -o-opacity: 0;
    -ms-opacity: 0;
    -webkit-opacity: 0;
    -moz-opacity: 0;
    opacity: 0;
}

#dealcont .products-grid .product-item-info .pro-hover {
    position: absolute;
    text-align: left;
    bottom: 0;
    left: 0;
    right: 0;
    -webkit-opacity: 0;
    -moz-opacity: 0;
    -o-opacity: 0;
    -ms-opacity: 0;
    opacity: 0;
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
    -webkit-transform: translateX(-100%);
    -moz-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    -o-transform: translateX(-100%);
    transform: translateX(-100%);
    height: 36px;
    width: auto;
    padding: 0;
    visibility: hidden;
}

#dealcont .products-grid .product-item-info:hover .pro-hover {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0);
    transform: translateX(0);
    -o-opacity: 1;
    -ms-opacity: 1;
    -webkit-opacity: 1;
    -moz-opacity: 1;
    opacity: 1;
    visibility: visible;
}

#dealcont .product-item .price-box .price-label {
    font-size: 0;
    display: none;
}

#dealcont .product-item-actions {
    display: inline;
}

#dealcont div.product-reviews-summary {
    position: relative;
    text-align: left;
    margin: 0 0 5px;
    display: block;
}

#dealcont .product-item-info div.product-reviews-summary {
    position: absolute;
    bottom: -12px;
}

#dealcont .product-item-link {
    display: block;
    position: relative;
}

#dealcont .products-grid .product-item-actions {
    margin: 0;
    position: static;
}

#dealcont .products-grid .product-item-info {
    margin: 15px;
    width: auto;
    overflow: hidden;
}

* {
    margin: 0px;
    padding: 0px;
}

#dealcont li {
    list-style: none;
}

#dealcont .cms-home .column.main #authenticationPopup ~ div {
    display: none;
}

#dealcont .tm_special .old-price .price-container .price {
    font-size: 14px;
}

#dealcont .tm_special .special-price .price-container .price {
    font-size: 18px;
}

#dealcont .product-item .product-reviews-summary .reviews-actions a:hover {
    color: #5B8C16;
}

#dealcont .product-item-details .price-box .old-price {
    line-height: 1;
    margin: 0 0 0 5px;
}

#dealcont .product-item .action.towishlist span, #dealcont .product-item .tocompare span {
    font-size: 0;
    display: none;
}

#dealcont .product-item-actions .actions-secondary > .action::before, #dealcont .product-item .action.towishlist::before, #dealcont .product-item .tocompare:before, #dealcont .product-item .action.towishlist:before {
    color: inherit;
    font-family: "FontAwesome";
    font-size: 16px;
    font-weight: normal;
    line-height: 24px;
    margin: 0;
    overflow: hidden;
}

#dealcont .product-item .action.towishlist::before {
    content: "\f08a";
}

#dealcont .product-item-actions .actions-secondary > .action:before, #dealcont .product-item .action.towishlist:before {
    font-family: "FontAwesome";
}

#dealcont .product-item .tocompare:before {
    content: "\f24d";
}

#dealcont .product-item .tocompare, #dealcont .product-item .action.towishlist, #dealcont .product-item-actions .actions-secondary > .action {
    color: #808080;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

#dealcont .product-item-details .product-item-inner .actions-primary, #dealcont .product-item-details .product-item-inner .actions-secondary {
    display: inline-block;
    padding: 0;
    vertical-align: top;
    border: 0;
    background: none;
    margin: 0 5px 0 0;
}

    #dealcont .product-item-details .product-item-inner .actions-secondary a {
        padding: 0;
        cursor: pointer;
        color: #000;
        border-radius: 5px;
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        -o-border-radius: 5px;
        -khtml-border-radius: 5px;
        line-height: 20px;
        height: 35px;
        width: 35px;
        transition: all 500ms ease 0s;
        -webkit-transition: all 500ms ease 0s;
        -moz-transition: all 500ms ease 0s;
        -ms-transition: all 500ms ease 0s;
        -o-transition: all 500ms ease 0s;
    }

    #dealcont .product-item-details .product-item-inner .actions-secondary .action.towishlist {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -201px;
    }

    #dealcont .product-item-details .product-item-inner .actions-secondary .action.tocompare {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -308px;
    }

    #dealcont .product-item-details .product-item-inner .actions-secondary .action.towishlist:hover {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -201px;
        border-radius: 50%;
    }

    #dealcont .product-item-details .product-item-inner .actions-secondary .action.towishlist:focus, #dealcont .product-item-details .product-item-inner .actions-secondary .action.towishlist:active {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -201px;
    }

    #dealcont .product-item-details .product-item-inner .actions-secondary .action.tocompare:hover {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -308px;
        border-radius: 50%;
    }

    #dealcont .product-item-details .product-item-inner .actions-secondary .action.tocompare:active, #dealcont .product-item-details .product-item-inner .actions-secondary .action.tocompare:focus {
        background: #5b8c16 url(/images/sprite-1.png) no-repeat center -308px;
    }

#dealcont .product-item .action.towishlist::before, #dealcont .product-item-actions .actions-secondary > .action::before, #dealcont .product-item .action.tocompare::before {
    content: none;
}

#dealcont .special-widget-block {
    float: left;
    width: 100%;
    position: relative;
    margin-top: 30px;
}

    #dealcont .special-widget-block a > .product-item-name, #dealcont .special-widget-block a:visited > .product-item-name {
        text-transform: capitalize;
        letter-spacing: 0.7px;
        font-weight: 500;
        font-size: 16px;
        line-height: 25px;
    }

    #dealcont .special-widget-block div.product-reviews-summary {
        margin: 10px 0 0;
    }

    #dealcont .special-widget-block .products-grid .product-item-inner {
        top: auto;
        bottom: 0;
    }

    #dealcont .special-widget-block .grid .product-item .product-item-info:hover .price-box {
        -khtml-opacity: 1;
        -o-opacity: 1;
        -ms-opacity: 1;
        -webkit-opacity: 1;
        -moz-opacity: 1;
        opacity: 1;
        filter: Alpha(Opacity=100);
    }

    #dealcont .special-widget-block .specialdates {
        display: none;
    }

    #dealcont .special-widget-block .special-count {
        float: left;
        width: auto;
        position: relative;
        margin: 20px -10px 60px;
        border: 1px solid #e5e5e5;
        padding: 0 5px;
        border-radius: 5px;
    }

        #dealcont .special-widget-block .special-count .time::after {
            border-right: 1px solid #e5e5e5;
            width: 1px;
            height: 30px;
            content: '';
            position: absolute;
            top: 12px;
            right: -6px;
        }

        #dealcont .special-widget-block .special-count .no-secs.time::after {
            content: none;
        }

        #dealcont .special-widget-block .special-count .time {
            font-size: 20px;
            padding: 10px 0 6px;
            border-radius: 5px;
            color: #202020;
            font-weight: 600;
            text-align: center;
            line-height: 20px;
            display: inline-block;
            margin: 0 10px 0 0;
            width: 65px;
            position: relative;
            box-sizing: border-box;
        }

        #dealcont .special-widget-block .special-count .no-secs.time {
            margin: 0;
        }

        #dealcont .special-widget-block .special-count .time span {
            color: #9d9d9d;
            font-size: 11px;
            display: block;
            line-height: 20px;
            font-weight: 400;
            text-transform: capitalize;
        }

    #dealcont .special-widget-block .product-item-info:hover div.product-reviews-summary {
        margin: 10px 0 0;
    }

    #dealcont .special-widget-block .grid .product-item-info:hover .price-box {
        -khtml-opacity: 1;
        -o-opacity: 1;
        -ms-opacity: 1;
        -webkit-opacity: 1;
        -moz-opacity: 1;
        opacity: 1;
        filter: Alpha(Opacity=100);
    }

#dealcont .tm_special .product-item-info .pro-hover {
    position: absolute;
    text-align: left;
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    -o-opacity: 0;
    -ms-opacity: 0;
    -webkit-opacity: 0;
    -moz-opacity: 0;
    opacity: 0;
    -moz-transition: all .5s ease;
    -webkit-transition: all .5s ease;
    -ms-transition: all .5s ease;
    -o-transition: all .5s ease;
    transition: all .5s ease;
    transform: translateX(-100%);
    overflow: hidden;
    height: 36px;
    padding: 0;
    visibility: hidden;
}

#dealcont .tm_special .product-item-info:hover .pro-hover {
    transform: translateX(0);
    -o-opacity: 1;
    -ms-opacity: 1;
    -webkit-opacity: 1;
    -moz-opacity: 1;
    opacity: 1;
    visibility: visible;
    width: 100%;
}

#dealcont .tm_special {
    width: 100%;
    float: left;
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;

    overflow: hidden;
}

#dealcont .tab-main-title {
    color: #000;
    font-size: 20px;
    font-weight: 500;
    text-transform: capitalize;
    position: relative;
    line-height: 20px;
    margin-bottom: 30px;
    letter-spacing: 0.5px;
    float: left;
}

#dealcont a:active {
    text-decoration: none;
}



#dealcont .tm_special .tab-title {
    border-bottom: 2px solid #f0f0f0;
    float: left;
    width: 100%;
}

#dealcont .page-layout-1column .block.widget .products-grid li.product-item {
    position: relative;
    float: left;
    margin: 0;
    width: 20%;
    box-sizing: border-box;
}

#dealcont .page-layout-1column .special-widget-block .block.widget .products-grid li.product-item {
    width: 50%;
}

#dealcont .special-widget-block .product-item-info .product-item-image {
    position: relative;
    text-align: center;
    width: 50%;
    display: inline-block;
    float: left;
}

#dealcont .special-widget-block .product-item-details {
    text-align: left;
    position: relative;
    float: right;
    width: 50%;
    margin: 0;
}

#dealcont .special-widget-block .product-item .product-item-details .price-box {
    margin-top: 20px;
}

#dealcont .special-widget-block .product-item .product-item-details .product-item-description {
    padding-top: 15px;
}






#dealcont .owl-stage-outer {
    padding: 0;
}

#dealcont .tm_special .block.widget.block-products-list.grid {
    margin-bottom: 0;
}

#dealcont .tm_special .owl-stage-outer .owl-stage .owl-item::after {
    position: absolute;
    content: "";
    background: #f0f0f0;
    top: 20px;
    left: 0;
    width: 1px;
    height: auto;
    bottom: 20%;
}

#dealcont .tm_special .owl-stage-outer .owl-stage .owl-item.firstActiveItem::after {
    content: none;
}

#dealcont img {
    vertical-align: top;
}

#dealcont .cms-index-index.page-layout-1column .block.widget .products-grid .widget-product-carousel.owl-carousel .product-item {
    width: 100%;
    margin-left: 0;
    padding-left: 0;
}

#dealcont .grid .product-item-info:hover .actions-primary {
    -khtml-opacity: 1;
    -o-opacity: 1;
    -ms-opacity: 1;
    -webkit-opacity: 1;
    -moz-opacity: 1;
    opacity: 1;
    filter: Alpha(Opacity=100);
}

#dealcont .grid .product-item-info .action.tocart:hover {
    margin: 0px;
    background: #5b8c16 url(/images/sprite-1.png) no-repeat center 12px;
    border-radius: 50%;
}

#dealcont .grid .product-item-info .action.tocart:active, #dealcont .grid .product-item-info .action.tocart:focus {
    margin: 0;
    background: #5b8c16 url(/images/sprite-1.png) no-repeat center 12px;
}

#dealcont .grid .product-item-info:hover .sale-label {
    -khtml-opacity: 1;
    -o-opacity: 1;
    -ms-opacity: 1;
    -webkit-opacity: 1;
    -moz-opacity: 1;
    opacity: 1;
    filter: Alpha(Opacity=100);
}

#dealcont .items {
    border-right: none;
}

#dealcont .product-item-actions .actions-primary + .actions-secondary {
    padding: 0;
    width: auto;
}

#dealcont .product-reviews-summary div.reviews-actions {
    font-size: 12px;
    margin: 0;
    vertical-align: text-top;
}

#dealcont .product-item-info {
    position: relative;
    width: auto;
}

#dealcont .pro-hover .action.primary {
    height: 35px;
    width: 35px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    -ms-border-radius: 5px;
    -o-border-radius: 5px;
    border-radius: 5px;
}

#dealcont .product-item-info .action.primary {
    background: #5b8c16 url(/images/sprite-1.png) no-repeat center 12px;
    font-size: 0;
    padding: 0;
    -webkit-transition: all 500ms ease 0s;
    -moz-transition: all 500ms ease 0s;
    -ms-transition: all 500ms ease 0s;
    -o-transition: all 500ms ease 0s;
    transition: all 500ms ease 0s;
}

#dealcont .product-item div.product-reviews-summary .reviews-actions {
    font-size: 12px;
    margin-top: 0;
    display: none;
}

#dealcont .cms-home .product-item div.product-reviews-summary .reviews-actions {
    display: none;
}

#dealcont .product-item-actions .actions-primary + .actions-secondary {
    display: inline-block;
    width: auto;
}

#dealcont .action.primary {
    font-weight: 500;
    font-size: 12px;
    padding: 10px 15px;
    line-height: 20px;
    text-transform: uppercase;
}
#dealcont .special-widget-block .special-count .time {
    margin: 0 5px 0 0;
    width: 38px;
}
@media (min-width: 1201px) and (max-width: 1460px) {


    #dealcont .special-widget-block .special-count .time {
        margin: 0 5px 0 0;
        width: 55px;
    }
}

@media (min-width: 1024px) and (max-width: 1200px) {
    #dealcont .special-widget-block .special-count .time {
        margin: 0 3px 0 0;
        width: 50px;
    }

    #dealcont .special-widget-block .product-item-info .product-item-image {
        width: 48%;
    }

    #dealcont .special-widget-block .product-item-details {
        width: 52%;
    }


    #dealcont .special-widget-block .product-item .product-item-details .product-item-description {
        padding-top: 10px;
    }

    #dealcont .special-widget-block .product-item .product-item-details .price-box {
        margin-top: 10px;
    }

    #dealcont .special-widget-block a > .product-item-name, #dealcont .special-widget-block a:visited > .product-item-name {
        font-size: 14px;
        line-height: 22px;
    }
}

@media (min-width: 980px) and (max-width: 1023px) {
    #dealcont .special-widget-block .special-count .time {
        margin: 0 3px 0 0;
        width: 49px;
    }

    #dealcont .column.main .product-items {
        margin: 0;
    }

    #dealcont .special-widget-block .product-item-details {
        width: 52%;
    }

    #dealcont .special-widget-block .product-item-info .product-item-image {
        width: 48%;
    }



    #dealcont .special-widget-block .product-item .product-item-details .product-item-description {
        padding-top: 10px;
    }

    #dealcont .special-widget-block .product-item .product-item-details .price-box {
        margin-top: 10px;
    }

    #dealcont .special-widget-block a > .product-item-name, #dealcont .special-widget-block a:visited > .product-item-name {
        font-size: 14px;
        line-height: 22px;
    }
}

@media (max-width: 979px) {
    .column.main .product-item {
        padding-left: 0;
    }

    #dealcont .column.main .product-items {
        margin: 0;
    }

    #dealcont .tm_special .owl-stage-outer .owl-stage .owl-item::after {
        content: none;
    }


}
#loadingDiv {
    position: absolute;
    left: 40%;
    margin: auto;
    width: 100px;
    z-index: 2;
}
@media (max-width: 767px) {
    #dealcont .special-widget-block .special-count .time {
        width: 60px;
    }
  
    #dealcont .product-item .tocart {
        padding: 8px 8px;
    }

    #dealcont .products-grid .product-item-info, #dealcont .products-grid .product-item-info:hover {
        margin: 15px 8px;
    }

 

    #category-sect .special-widget-block .product-item-info .product-item-image {
        width: 100%;
    }
    #dealcont .special-widget-block .product-item-info .product-item-image {
        width: 100%;
    }
    #dealcont .special-widget-block .product-item-details {
        width: 100%;
    }

  #loadingDiv{
        left:33%;
        top: 60%;
    }
    #category-sect #loadingDiv {
        left: 35%;
        top: 20%;
    }
}



.message.success {
    color: #82ae46;
    background: #f1f1f1;
}

.message-fail {
    color: #dc3545;
    background: #f1f1f1;
}







 .block-search .label {
    text-decoration: none;
    display: inline-block;
    float: right;
}
  
  .block-search .label > span {
        border: 0;
        clip: rect(0,0,0,0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
    }

    .block-search .label:before {
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        font-size: 35px;
        line-height: 33px;
        color: #8f8f8f;
        content: '\e615';
        font-family: 'icons-blank-theme';
        vertical-align: middle;
        display: inline-block;
        font-weight: 400;
        overflow: hidden;
        speak: none;
        text-align: center; 
    }

   .block-search .label:hover:before {
        color: #333;
    }

    #searchsuite-autocomplete .block-search .label:active:before {
        color: #333;
    }

 .block .title {
    margin-bottom: 10px;
}

.rating-summary {
    overflow: hidden;
    white-space: nowrap;
}

     .rating-summary .rating-result {
        width: 100px;
        display: inline-block;
        position: relative;
        vertical-align: middle;
    }

        .rating-summary .rating-result:before {
            left: 0;
            position: absolute;
            top: 0;
            width: 100%;
            z-index: 1;
            -webkit-font-smoothing: antialiased;
            color: #c7c7c7;
            font-family: 'icons-blank-theme';
            font-size: 28px;
            height: 28px;
            letter-spacing: -10px;
            line-height: 28px;
            content: '\e605' '\e605' '\e605' '\e605' '\e605';
            display: block;
            font-style: normal;
            font-weight: 400;
            speak: none;
        }

         .rating-summary .rating-result > span {
            display: block;
            overflow: hidden;
        }

           .rating-summary .rating-result > span:before {
                position: relative;
                z-index: 2;
                -webkit-font-smoothing: antialiased;
                color: #ff5501;
                font-family: 'icons-blank-theme';
                font-size: 28px;
                height: 28px;
                letter-spacing: -10px;
                line-height: 28px;
                content: '\e605' '\e605' '\e605' '\e605' '\e605';
                display: block;
                font-style: normal;
                font-weight: 400;
                speak: none;
            }

      .rating-summary .rating-result > span span {
                border: 0;
                clip: rect(0,0,0,0);
                height: 1px;
                margin: -1px;
                overflow: hidden;
                padding: 0;
                position: absolute;
                width: 1px;
            }

    .rating-summary .rating-result {
        margin-left: -5px;
    }

.product-reviews-summary .rating-summary .label {
    border: 0;
    clip: rect(0,0,0,0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

.product-reviews-summary {
    display: table;
    margin: 10px 0 12px;
}

   .product-reviews-summary .rating-summary {
        display: table-cell;
        left: -5px;
        position: relative;
        text-align: left;
        vertical-align: middle;
    }

   .product-reviews-summary .reviews-actions {
        display: table-cell;
        line-height: 28px;
        vertical-align: middle;
    }

      .product-reviews-summary .reviews-actions a {
            margin-right: 5px;
        }

 .price-container.weee:before {
    display: none;
}







#searchsuite-autocomplete .label {
    display: inline;
    padding: .2em .6em .3em;
    font-size: 75%;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: .25em;
}

    #searchsuite-autocomplete .label:empty {
        display: none;
    }



#searchsuite-autocomplete img {
    max-width: 100%;
}

#searchsuite-autocomplete a {
    color: #555;
    transition: all .5s ease-out 0s;
    -webkit-transition: all .5s ease-out 0s;
    -webkit-transition: all .3s ease;
    -moz-transition: all .3s ease;
    -ms-transition: all .3s ease;
    -o-transition: all .3s ease;
}

    #searchsuite-autocomplete a:hover, #searchsuite-autocomplete a:focus {
        text-decoration: none;
        outline: none;
    }

#searchsuite-autocomplete div, #searchsuite-autocomplete span, #searchsuite-autocomplete a, #searchsuite-autocomplete img, #searchsuite-autocomplete ul, #searchsuite-autocomplete li {
    margin: 0;
   
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: top;
}

#searchsuite-autocomplete ul, #searchsuite-autocomplete li {
    list-style: none;
    margin: 0;
}

    #searchsuite-autocomplete ul > li {
        margin: 0;
    }

#searchsuite-autocomplete img {
    max-width: 100%;
    height: auto;
    border: 0;
    vertical-align: middle;
}

#searchsuite-autocomplete a {
    color: #333;
    cursor: pointer;
    -webkit-transition: all .3s ease 0s;
    -o-transition: all .3s ease 0s;
    transition: all .3s ease 0s;
    text-decoration: none;
}

    #searchsuite-autocomplete a:visited {
        color: #333;
        text-decoration: none;
    }

    #searchsuite-autocomplete a:hover {
        color: #6c3;
        text-decoration: none;
    }

    #searchsuite-autocomplete a:focus {
        outline: none;
    }

:focus {
    outline: none;
}

#searchsuite-autocomplete ul {
    margin: 0;
    padding: 0;
}

#searchsuite-autocomplete a:focus {
    outline: none !important;
}

::-webkit-input-placeholder {
    color: inherit;
    opacity: 1;
    filter: alpha(opacity=100);
}

:-moz-placeholder {
    color: inherit;
    opacity: 1;
    filter: alpha(opacity=100);
}

::-moz-placeholder {
    color: inherit;
    opacity: 1;
    filter: alpha(opacity=100);
}

:-ms-input-placeholder {
    color: inherit;
    opacity: 1;
    filter: alpha(opacity=100);
}

#searchsuite-autocomplete .label {
    font-size: 13px;
    padding: 0;
    text-align: left;
    font-weight: 400;
}

#searchsuite-autocomplete a:hover, #searchsuite-autocomplete a:focus {
    color: #6c3;
}

#searchsuite-autocomplete .label {
    color: #555;
}

#searchsuite-autocomplete .rating-summary .rating-result {
    margin-left: 5px;
    width: 80px;
}

    #searchsuite-autocomplete .rating-summary .rating-result:before {
        font-family: FontAwesome;
        content: '\f006' '\f006' '\f006' '\f006' '\f006';
        font-size: 13px;
        height: 13px;
        letter-spacing: 5px;
        line-height: 1;
        top: 0;
        color: #333;
    }

    #searchsuite-autocomplete .rating-summary .rating-result span:before {
        color: #333;
        font-family: FontAwesome;
        content: '\f005' '\f005' '\f005' '\f005' '\f005';
        font-size: 13px;
        height: 13px;
        line-height: 13px;
        letter-spacing: 5px;
    }

    #searchsuite-autocomplete .rating-summary .rating-result span span {
        display: none;
    }

#searchsuite-autocomplete .product-reviews-summary {
    margin: 0;
}

    #searchsuite-autocomplete .product-reviews-summary .reviews-actions {
        font-size: 13px;
        margin-left: 10px;
        padding-left: 10px;
    }

#searchsuite-autocomplete a {
    color: #333;
    -webkit-transition: all .3s ease-out 0s;
    transition: all .3s ease-out 0s;
}

    #searchsuite-autocomplete a:hover {
        color: #6c3;
    }

* {
    box-sizing: border-box;
    outline: none;
}

#searchsuite-autocomplete img {
    max-width: 100%;
}

#searchsuite-autocomplete ul {
    padding: 0;
    list-style: none;
}

#searchsuite-autocomplete a:hover, #searchsuite-autocomplete a:focus {
    text-decoration: none;
    outline: none;
}


.searchsuite-autocomplete .title {
    padding: 10px;
    margin-bottom: 5px;
    background: #9F2228;
    color: #fff;
}
#searchsuite-autocomplete .rating-summary .rating-result span:before, #searchsuite-autocomplete .rating-summary .rating-result:before {
    color: #f4d632;
}

.price-box .price-container .price {
    font-size: 18px;
    color: #999;
}

 .searchsuite-autocomplete .no-result {
    font-size: 14px;
}

* {
    box-sizing: border-box;
}

.searchsuite-autocomplete {
    background-color: #fff;
    border: 1px solid #c2c2c2;
    box-shadow: 0 3px 3px rgba(0,0,0,.15);
    left: 15px;
    width: 100%;
    height: 300px;
    overflow-y: auto;
    -ms-overflow-style: none; /* IE and Edge */
    scrollbar-width: none; /* Firefox */
    position: absolute;
    z-index: 9999999;
    border: 0;
    border-radius: 0 0 3px 3px;
}
    .searchsuite-autocomplete::-webkit-scrollbar {
        display: none;
    }
 .searchsuite-autocomplete .suggest, .searchsuite-autocomplete .product {
        margin: 0;
    }

    .searchsuite-autocomplete .suggest {
        color: #3c3c3c;
        display: none;
    }

    .searchsuite-autocomplete .title {
        padding: 10px;
        margin-bottom: 5px;
        background: #9F2228;
        color: #fff;
    }

      .searchsuite-autocomplete .title span {
            font-size: 14px;
            font-weight: 400;
        }

         .searchsuite-autocomplete .title .see-all {
            display: inline-block;
            float: right;
            color: #fff;
            cursor: pointer;
            text-transform: capitalize;
        }

  .searchsuite-autocomplete .no-result {
        padding: 10px;
        background: #fff;
        color: #222;
        text-align: center;
    }

   .searchsuite-autocomplete ul {
        padding: 0 10px;
        margin-bottom: 0;
        list-style-type: none;
    }

       .searchsuite-autocomplete ul li {
            color: #000;
            cursor: unset;
            padding: 0;
        }

   .searchsuite-autocomplete .product ul li {
        border-bottom: 1px solid #d4d2d2;
    }

      .searchsuite-autocomplete .product ul li:last-child {
            border-bottom: none;
        }

   .searchsuite-autocomplete ul li:hover {
        background-color: #fff;
    }

  .searchsuite-autocomplete ul li:after {
        clear: both;
        content: '';
        display: block;
    }

   .searchsuite-autocomplete ul li a {
        cursor: pointer;
    }

    .searchsuite-autocomplete ul li .qs-option-image {
        float: left;
        max-width: 82px;
        width: 25%;
    }

    .searchsuite-autocomplete ul li .qs-option-info {
        color: #000;
        display: inline-block;
        float: left;
        padding-left: 5%;
        text-align: left;
        width: 70%;
        margin-bottom: 10px;
    }

 .searchsuite-autocomplete ul li:last-child .qs-option-info {
        margin-bottom: 0;
    }

 .searchsuite-autocomplete ul li .qs-option-info .qs-option-title {
        display: inline-block;
        margin: 0;
        width: 100%;
    }

   .searchsuite-autocomplete ul li .qs-option-info .qs-option-reviews {
        display: inline-block;
        text-transform: lowercase;
        width: 100%;
        line-height: 1;
        margin-top: 3px;
    }

         .searchsuite-autocomplete ul li .qs-option-info .qs-option-reviews .product-reviews-summary {
            margin-bottom: 4px;
        }

 .searchsuite-autocomplete ul li .qs-option-info .qs-option-reviews .reviews-actions {
            font-size: 12px;
        }

 .searchsuite-autocomplete ul li .qs-option-info .qs-option-sku {
        display: block;
        width: 100%;
        color: #004875;
        font-size: 12px;
    }

  .searchsuite-autocomplete ul li .qs-option-info .qs-option-shortdescription,  .searchsuite-autocomplete ul li .qs-option-info .qs-option-description {
        color: #3c3c3c;
        font-size: 13px;
    }

   .searchsuite-autocomplete ul li .qs-option-info .qs-option-price {
        display: inline-block;
        font-weight: 400;
        margin-top: 5px;
    }

   .searchsuite-autocomplete ul li .qs-option-info .qs-option-addtocart {
        display: inline-block;
        float: right;
        margin-top: 10px;
    }

.block-search .block-content .label {
    display: none;
}

 .block-search .block-content .reviews-actions {
    display: none;
}

 .block-search .block-content .price-container .price {
    font-size: 14px;
}
.subprice {
    font-size: 13px !important;
    color: #999;
}
 .searchsuite-autocomplete .rating-summary .rating-result {
    margin-left: 5px;
}

 .searchsuite-autocomplete .product ul {
    padding: 0 10px;
    margin-bottom: 0;
    list-style-type: none;
}

.searchsuite-autocomplete .product ul li {
        border-bottom: 1px solid #ebebeb;
        padding: 10px 0;
    }

 .searchsuite-autocomplete .qs-option-title {
    width: 100%;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

 .searchsuite-autocomplete .qs-option-reviews .product-reviews-summary {
    margin: 0;
}

 .searchsuite-autocomplete .reviews-actions {
    display: none;
}

@media only screen and (max-width:767px) {
    .searchsuite-autocomplete {
        border-top: 0;
        left: 15px;
        margin-top: 0;
        right: 15px;
        width: auto;
    }
}


.block-search .block-content button.action {
    position: absolute;
    top: 0;
    right: 0;
    background-color: transparent;
    border: none;
    height: 55px;
    color: #9F2228;
    display: block;
    line-height: 50px;
    padding: 0 20px;
    font-size: 19px;
    font-weight: 400;
    opacity: 1 !important;
    pointer-events: all !important;
    cursor: pointer;
    text-transform: capitalize;
}



.ics-btn {
    align-items: center;
    justify-content: center;
}

.ics-btn {
    border: none;
    border-radius: 4px;
    display: inline-flex;
    height: 40px;
    padding: 0 16px;
    text-align: center;
    text-decoration: none;
    user-select: none;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    font-size: 19px;
    font-weight: 700;
}

    .ics-btn:focus, .ics-btn:hover {
        box-shadow: 0 2px 10px 0 rgba(61,61,61,.1);
    }

   

.ics-btn--fluid {
    width: 100%;
}

.ics-btn--secondary-outline {
    background: #fff;
    color: #9F2228;
    border: 1px solid #9F2228;
}

    .ics-btn--secondary-outline:focus, .ics-btn--secondary-outline:hover {
        background: #fff;
        border-width: 2px;
        padding: 0 15px;
    }

    .ics-btn--secondary-outline:disabled {
        border-color: #7fb9d8;
        color: #7fb9d8;
    }

.ics-icon {
    display: inline-block;
}

.ics-icon--charcoal .ics-icon__draw {
    fill: #3d3d3d;
}

.ics-icon--dark-gray .ics-icon__draw {
    fill: #767676;
}

.ics-icon--small, .ics-icon--small svg {
    width: 20px;
    height: 20px;
}

.ics-icon--regular, .ics-icon--regular svg {
    width: 30px;
    height: 30px;
}

.ics-icon--rotate0 {
    transform: rotate(0deg);
}

.ics-icon--rotate270 {
    transform: rotate(270deg);
}




.ics-slide-nav__content-container {
    position:fixed;
    left:0;
    top:0;
    bottom:0;
    box-sizing: border-box;
    width: 272px;
    height: 100%;
    padding: 14px 0;
    overflow-y: scroll;
    background: whitesmoke;
    -ms-overflow-style: none; /* IE and Edge */
    scrollbar-width: none; /* Firefox */

}
    .ics-slide-nav__content-container::-webkit-scrollbar {
        display: none;
    }
.ics-slide-nav__item-container {
    font-size: 18px;
    letter-spacing: .2px;
    line-height: 24px;
    font-weight: 400;
    margin-bottom: 8px;
    padding: 0 16px;
    display: flex;
}
.slide-navigation-menu__user-login {
    display: flex;
}
.slide-navigation-menu__button {
    margin-right: 6px;
}

.ics-slide-nav__item-container {
    font-size: 18px;
    letter-spacing: .2px;
    line-height: 24px;
    font-weight: 400;
    margin-bottom: 8px;
    padding: 0 16px;
    display: flex;
}
.ics-slide-nav__item-action {
    font-size: 18px;
    letter-spacing: .2px;
    line-height: 24px;
    font-weight: 400;
    background: rgba(0,0,0,0);
    border: none;
    cursor: pointer;
    height: 40px;
    line-height: 40px;
    margin: 0;
    padding: 0;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.ics-slide-nav__item-action-icon {
    padding-top: 10px;
    height: 20px;
}

    .ics-slide-nav__item-action-icon svg {
        transform: translateY(-5px);
    }

    .ics-slide-nav__item-action-icon[data-position=right] {
        float: right;
        margin-left: 10px;
    }

.ics-slide-nav__content-divider {
    background: #ccc;
    height: 1px;
    margin: 0 16px;
}

    .ics-slide-nav__content-divider[data-margin=bottom] {
        margin-bottom: 8px;
    }

@media (min-width:480px) {
    .ics-slide-nav__content-container {
        width: 295px;
    }
}

@media (min-width:768px) and (max-width:1023px) {
    .ics-slide-nav__content-container:after {
        content: "";
        display: block;
        padding-bottom: 80px;
    }
}

.slide-navigation-menu__icon-left {
    float: left;
    margin: 5px 14px 0 0;
}

.slide-navigation-menu__icon-feedback {
    float: left;
    margin: 8px 14px 0 0;
}

.slide-navigation-menu__messages-number-container {
    position: relative;
}

@media (min-width:768px) and (max-width:1023px) {
    .tablet-bottom-sign-out__item-container {
        margin-bottom: 0;
        position: fixed;
        bottom: 30px;
        width: 100%;
        max-width: 295px;
    }
}



.reg-container h1 {
	font-weight: bold;
	margin: 0;
}

.reg-container h2 {
	text-align: center;
}

.reg-container p {
	font-size: 14px;
	font-weight: 100;
	line-height: 20px;
	letter-spacing: 0.5px;
	margin: 20px 0 30px;
}

.reg-container span {
	font-size: 12px;
}

.reg-container a {
	color: #333;
	font-size: 14px;
	text-decoration: none;
	margin: 15px 0;
}

.reg-container button {
	border-radius: 20px;
	border: 1px solid #FF4B2B;
	background-color: #FF4B2B;
	color: #FFFFFF;
	font-size: 12px;
	font-weight: bold;
	padding: 12px 45px;
	letter-spacing: 1px;
	text-transform: uppercase;
	transition: transform 80ms ease-in;
}

.reg-container button:hover {
	transform: scale(0.95);
}

.reg-container .social:hover {
    transform: scale(0.95);
}

.reg-container button:focus {
	outline: none;
}

.reg-container button.ghost {
	background-color: transparent;
	border-color: #FFFFFF;
}

.reg-container form {
	background-color: #FFFFFF;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	padding: 25px 50px;
	/*height: 100%;*/
	text-align: center;
}

.reg-container input {
	background-color: #eee;
	padding: 12px 15px;
	margin: 8px 0;
	width: 100%;
}

.reg-container {
    margin: auto;
    background-color: #fff;
    border-radius: 10px;
  
    position: relative;
    overflow: scroll;
    -ms-overflow-style: none; /* IE and Edge */
    scrollbar-width: none; /* Firefox */
    width: 40%;
    min-height: 170%;
 
}
#RememberMeSign{
    position:relative;
    margin-left: 0;
}
.modal-close-x {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 40px;
    color: black;
    z-index: 999;
    border-radius: 50%;
    -webkit-transition: -webkit-transform .8s ease-in-out;
    transition: transform .8s ease-in-out;
}
    .modal-close-x:hover {
       
        -webkit-transform: rotate(180deg);
        transform: rotate(180deg);
    }
.reg-container::-webkit-scrollbar {
    display: none;
}

@media (max-width:1200px){
    .reg-container{
        width: 50%;
    }
}

@media (max-width: 810px) {
    #reg-modal{
        padding-top:0px;
    }
    .reg-container {
        width: 100%;
        min-height: 150%;
    }
}
.form-container {
	position: absolute;
	top: 0;
	height: 50%;
	transition: all 0.6s ease-in-out;
}

.sign-in-container {
	left: 0;
	width: 100%;
	z-index: 2;
}

.reg-container.right-panel-active .sign-in-container {
	transform: translateY(100%);
}

.sign-up-container {
	left: 0;
	width: 100%;
	opacity: 0;
	z-index: 1;
}

.reg-container.right-panel-active .sign-up-container {
	transform: translateY(100%);
	opacity: 1;
	z-index: 5;
	animation: show 0.6s;
}
.scrollable-container {
    overflow: scroll;
    -ms-overflow-style: none; /* IE and Edge */
    scrollbar-width: none; /* Firefox */
}

@keyframes show {
	0%, 49.99% {
		opacity: 0;
		z-index: 1;
	}
	
	50%, 100% {
		opacity: 1;
		z-index: 5;
	}
}

.overlay-container {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 50%;
	overflow: hidden;
	transition: transform 0.6s ease-in-out;
	z-index: 100;
}

.reg-container.right-panel-active .overlay-container{
	transform: translateY(-100%);
}

.reg-container .overlay {
    background: #A8DEAF;
    background: -webkit-linear-gradient(to right, #A1BF37, #A8DEAF);
    background: linear-gradient(to right, #A8DEAF, #A1BF37);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 0 0;
    color: #FFFFFF;
    position: relative;
    left: -100%;
    height: 100%;
    width: 200%;
    transform: translateY(0);
    transition: transform 0.6s ease-in-out;
}

.reg-container.right-panel-active .overlay {
  	transform: translateX(50%);
}

.overlay-panel {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	padding: 0 40px;
	text-align: center;
	top: 0;
	height: 100%;
	width: 50%;
	transform: translateX(0);
	transition: transform 0.6s ease-in-out;
}

.overlay-left {
	transform: translateY(-20%);
}

.reg-container.right-panel-active .overlay-left {
	transform: translateY(0);
}

.overlay-right {
	right: 0;
	transform: translateY(0);
}

.reg-container.right-panel-active .overlay-right {
	transform: translateY(20%);
}

.social-container {
	margin: 20px 0;
}

.social-container a {
	border: 1px solid #DDDDDD;
	border-radius: 50%;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	margin: 0 5px;
	height: 40px;
	width: 40px;
}




/*! CSS Used from: https://platinumdirect.co.uk/css/owl.carousel.min.css */
.owl-carousel .owl-nav .owl-next, .owl-carousel .owl-nav .owl-prev {
    cursor: pointer;
    cursor: hand;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.owl-carousel.home-slider .owl-nav button.owl-next, .owl-carousel .owl-nav button.owl-prev {
    background: 0 0;
    color: inherit;
    border: none;
    margin: 0;
    font: inherit;
}

#testing2.owl-carousel .owl-nav {
    position: absolute;
    top: 20%;
    width: 100%;
}


.owl-carousel.home-slider .owl-nav {
    position: absolute;
    top: 50%;
    width: 100%;
}

    .owl-carousel .owl-nav .owl-prev, .owl-carousel .owl-nav .owl-next {
        position: absolute;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
        margin-top: -10px;
        color: #c8a97e !important;
        -moz-transition: all 0.7s ease;
        -o-transition: all 0.7s ease;
        -webkit-transition: all 0.7s ease;
        -ms-transition: all 0.7s ease;
        transition: all 0.7s ease;
        opacity: 1;
    }

        .owl-carousel .owl-nav .owl-prev span:before, .owl-carousel .owl-nav .owl-next span:before {
            font-size: 40px;
        }

    .owl-carousel .owl-nav .owl-prev {
        left: 0;
    }

    .owl-carousel .owl-nav .owl-next {
        right: 0;
    }

.owl-carousel:hover .owl-nav .owl-prev, .owl-carousel:hover .owl-nav .owl-next {
    opacity: 1;
}

.owl-carousel:hover .owl-nav .owl-prev {
    left: -25px;
}

.owl-carousel:hover .owl-nav .owl-next {
    right: -25px;
}

.owl-carousel .owl-nav .owl-prev span, .owl-carousel .owl-nav .owl-next span {
    color: #9F2228;
}

.owl-carousel:hover .owl-nav .owl-prev, .owl-carousel:hover .owl-nav .owl-next {
    opacity: 1;
}

.owl-carousel:hover .owl-nav .owl-prev {
    left: 20px;
}

.owl-carousel:hover .owl-nav .owl-next {
    right: 20px;
}
.home-slider .owl-dots {
    margin-top: -150px;
}
@media(hover: hover) and (pointer: fine) {
    .owl-carousel:hover .owl-nav .owl-prev, .owl-carousel:hover .owl-nav .owl-next {
        opacity: 1;
    }

    .owl-carousel:hover .owl-nav .owl-prev {
        left: -25px;
    }

    .owl-carousel:hover .owl-nav .owl-next {
        right: -25px;
    }

    .owl-carousel .owl-nav .owl-prev span, .owl-carousel .owl-nav .owl-next span {
        color: #9F2228;
    }

    .owl-carousel:hover .owl-nav .owl-prev, .owl-carousel:hover .owl-nav .owl-next {
        opacity: 1;
    }

    .owl-carousel:hover .owl-nav .owl-prev {
        left: 20px;
    }

    .owl-carousel:hover .owl-nav .owl-next {
        right: 20px;
    }
}
@media (min-width: 576px) {
    .pt-xl-150 {
        padding-top: 150px;
    }
}


@media (min-width: 1000px) {
    .blob {
        padding-top: 200px !important;
    }
}

.special-offer {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: red;
    color: white;
    padding: 5px;
    font-weight: bold;
    width: 101%;
    text-align: center;
    z-index: 1;
}
