/* vars */
:root {
    --c-dark:     #292f2f;
    --c-bg-dark:  #3a4346;
    --c-bg-light: #4c5456;
    --c-light:    #ecf7fa;
    --c-hl-dark:  #008499;
    --c-hl-light: #3baec4;
    --c-shadow:   #dae5e2;

    /* backgrounds */
    --navbar-bg:    var(--c-dark);
    --jumbotron-bg: var(--c-bg-dark);
    --copyright-bg: var(--c-dark);

    /* link colors */
    --link-color:         var(--c-hl-dark);
    --link-hover-color:   var(--c-hl-light);
    --footer-link-color:  var(--c-light);
    --footer-hover-color: #fff;

    /* text colors */
    --text-color:           var(--c-dark);
    --footer-text-color:    var(--c-light);
    --copyright-text-color: var(--c-light);
    --jumbotron-text-color: var(--c-light);
    --art-date-color:       color(var(--c-dark) tint(50%));

    /* box colors */
    --border-color:    var(--c-dark);
    --box-color:       var(--c-bg-light);
    --box-hover-color: var(--c-dark);;
    --box-round:       10px;

    /* other */
    --max-width:     600px;
    --max-width-box: 800px;
    --margin-box-fa: 5px;
}
@custom-media --max-sm all and (max-width: 600px);
@custom-media --max-md all and (max-width: 800px);
@custom-media --max-rem all and (max-width: 60rem);

/* reset css for browser compat */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* global */
body {
    font-family: 'Open Sans', sans-serif;
    font-feature-settings: "lnum";
    font-variant-numeric: lining-nums;
    color: var(--text-color);
    font-size: 14px;
    min-height: 100vh;
    height: auto;
}

.invisible {
    display: none;
}

a {
    color: var(--link-color);
    text-decoration: none;
}

a:hover {
    color: var(--link-hover-color);
}
img {
    max-width: 100%;
}

/* navbar */
.navbar {
    color: var(--c-light);
    width: 100%;
    height: 50px;
    background-color: var(--navbar-bg);
    box-shadow: 0 3px 4px rgba(0, 0, 0, 0.5);
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-color);
    z-index: 100;
    padding-right: 5px;
}

@media (--max-sm) {
    .navbar {
        position: absolute;
    }
}

.navbar a {
    margin-top: 2px;
    height: 40px;
}

/* nav = navbar
 * pia = Private Internet access
 */
#nav-logo { order: 10; }
#nav-pia  { order: 30; }

#nav-jump { order: 1000; }

#nav-search {
    order: 20;
    margin-left: auto;
    line-height: 35px;
}

#nav-search input {
    background-color: var(--c-bg-dark);
    border-style: none;
    border-radius: 2px;
    color: var(--c-light);
    padding: .5em;
    padding-right: 2em;
    margin-right: -2em;
}

#nav-label {
    display: inline-block;
    width: 2em;
    margin-right: .7em;
}

@media (--max-sm) {
    #nav-search {
        order: 100;
        margin: 0 .5em;
    }

    #nav-pia {
        margin-left: auto;
    }

    #nav-label {
        width: auto;
        margin: 0 .5em;
    }

    #nav-searchbox:not(:focus) {
        display: inline-block;
        position: absolute;
        height: 0;
        width: 0;
        padding: 0;
        margin: 0;
        background: transparent;
        overflow: hidden;
    }

    #nav-searchbox:focus {
        position: absolute;
        visibility: visible;
        outline: none;
        top: 0;
        left: 0;
        right: 0;
        height: 50px;
        line-height: 50px;
        font-size: 1.5em;
        padding-right: 2.5em;
        width: 100%;
    }

    #nav-searchbox:focus + #nav-label {
        display: block;
        position: absolute;
        pointer-events: none;
        top: 0;
        right: 0;
        width: 1.5em;
        font-size: 2em;
        line-height: 50px;
        padding-top: -.1em;
        margin: 0;
    }
}

/* n = nav */
.nlogo { height: 40px; }

/* t = text (used in jumbotron for small logo as text) */
.tlogo {
    height: 2.4ex;
    margin-bottom: -.47ex;
    margin-left: -10px;
    margin-right: -10px;
}

/* main */
.container {
    width: 100%;
    min-height: 100vh;
    padding-top: 50px;
    padding-bottom: 17.5rem;
}

.main {
    margin: 2em auto;
    padding: 0 .75em;
    max-width: var(--max-width);
    line-height: 1.8;
}

.main h1,
.main h2,
.main h3,
.main h4,
.main h5,
.main h6,
.main li,
.main pre,
.main p,
.main blockquote {
    margin-top: .7em;
}

.artlist li {
    margin-top: 0;
}

.main h1 + p,
.main h2 + p,
.main h3 + p,
.main h4 + p,
.main h5 + p,
.main h6 + p,
.main blockquote > p:first-child {
    margin-top: 0;
}

.toclink,
.toclink:hover {
    color: var(--text-color);
}

.toclink::after {
    content: ' \f13d';
    font-family: FontAwesome;
    color: var(--link-color);
    font-weight: normal;
    opacity: 0;
    transition: opacity .08s;
}

.toclink:hover::after {
    opacity: 1;
    color: var(--link-hover-color);
}

@media (--max-sm) {
    .toclink::after {
        opacity: 1;
    }
}

ul {
    padding-left: 2em;
    list-style-type: disc;
}

ol {
    padding-left: 2em;
    list-style-type: decimal;
}

hr {
    margin-top: .8em;
    margin-bottom: .8em;
}

table {
    border: 1px solid var(--c-dark);
    border-collapse: collapse;
}

th, td {
    margin: .2em;
}

th {
    background-color: var(--c-bg-dark);
    color: var(--c-light);
}

td {
    padding: .2em .5em;
}

td:not(:first-child), th:not(:first-child) {
    border-left: 1px solid var(--c-dark);
}

tr:nth-child(odd) {
    background-color: var(--c-shadow);
}

/* jumbotron */
.jumbotron {
    position: relative;
    width: 100%;
    margin-top: -50px;
    background: var(--jumbotron-bg);
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
    color: var(--jumbotron-text-color);
    padding: 4em 0 4em 0;
}

/* j = jumbotron */
.jindex {
    z-index: 99;
}

.jlogo {
    display: block;
    margin: 25px auto;
}

.jpia {
    position: absolute;
    height: 40px;
    right: 0;
    top: 0;
    margin: 25px;
}

@media (--max-sm) {
    .jlogo {
        margin: 2em auto -2em auto;
    }
    .jumbotron {
        padding-bottom: 2em;
    }
}

.child {
    text-align: center;
    margin: .5em auto;
    font-size: 32px;
    line-height: 48px;
    max-width: 75%;
}

.box-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: stretch;
    max-width: var(--max-width-box);
    margin: 0 auto;
}

.box {
    text-align: center;
    text-decoration: none;
    color: var(--jumbotron-text-color);
    margin-bottom: 5px;
    flex-basis: 30%;
    min-width: 26%;
    background-color: var(--box-color);
    border-radius: var(--box-round);
    padding: 1em;
}

.box:hover,.box:active {
    color: var(--jumbotron-text-color);
    background-color: var(--box-hover-color);
}

.box span {
    position: relative;
    top: initial;
    font-size: 20px;
    font-weight: 600;
    line-height: 16px;
    display: block;
    margin-top: .75em;
}

/* fa = font awesome */
.fa-users {
    margin-top: var(--margin-box-fa);
}

.fa-comments,.fa-question {
    margin-bottom: var(--margin-box-fa);
}

.title {
    text-align: center;
}

@media (--max-md) {
    .box {
        text-align: center;
    }

    .child {
        font-size: 20px;
        line-height: 30px;
        padding: 10px 0 5px;
    }

    .fa-4x {
        padding: 0;
        margin: 0;
        width: 60px;
        text-align: center;
        font-size: 28px;
    }

    .box-container {
        flex-direction: column;
        margin: 0 .5em;
    }

    .box span {
        font-size: 22px;
        line-height: 22px;
        padding-left: 8px;
        font-weight: bold;
        position: relative;
        display: inline-block;
        text-align: center;
        margin-top: 0;
    }

    .box {
        text-align: left;
        border-radius: calc(var(--box-round) / 2);
        margin: 5px 0;
    }
}

/* articles */
h1 {
    margin: 0;
}
/* art = article */
.artlist ul {
    padding: 0;
    list-style-type: none;
}

.art-info {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
}

.art-info h1 {
    margin-top: 0;
    display: inline;
    margin-right: 2em;
}

.art-warning {
    margin-bottom: 2em;
    padding: .5em;
    border: 1px solid var(--border-color);
    color: red;
}

.art-body {
    margin-bottom: 1em;
}

@media(--max-sm) {
    .artlist .heading {
        padding: 0 0.75em;
    }
}

.artlist ul {
    max-width: var(--max-width);
    margin: 2em auto;
    margin-top: .5em;
}

.artlist li:not(:first-child) {
    border-top: 1px solid var(--border-color);
}

.artlist .art {
    font-weight: bold;
    font-size: 120%;
}

.art-date {
    display: inline-block;
    vertical-align: baseline;
    line-height: 1;
    white-space: nowrap;
    color: var(--art-date-color);
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
}

.artlist .art-date {
    margin-bottom: .5em;
}

.art-nav {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    width: 100%;
}

.art-nav * {
    flex-basis: 30%;
}

.art-nav *:nth-child(1) { text-align: left; }
.art-nav *:nth-child(2) { text-align: center; }
.art-nav *:nth-child(3) { text-align: right; }

blockquote {
    padding-left: 1em;
    display: inline-block;
    border-left: .5em solid var(--c-shadow);
    font-style: italic;
}

@media (--max-md) {
    .main.artlist {
        padding-left: 0;
        padding-right: 0;
    }

    .artlist .art-info {
        padding: 0 .75em;
    }
}

/* faq */
/* kb = knowledge base */
.kb-index {
    list-style-type: none;
    padding-left: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: stretch;
}

.kb-index li {
    display: block;
    flex: 1 1 15em;
    height: 3em;
    margin: 1em;
}

.kb-index li h2 {
    margin-top: 0;
}

.kb-index a {
    display: block;
    color: var(--text-color);
    width: 100%;
    height: 100%;
}
.kb-index a h2 {
    color: var(--link-color);
}
.kb-index a:hover h2 {
    color: var(--link-hover-color);
}

/* footer */
.footers {
    /*min-height: 30vh;*/
    margin-top: -17rem;
    min-height: 17rem;
}

.footer {
    background: var(--jumbotron-bg);
    color: var(--footer-text-color);
    width: 100%;
    box-shadow: 0 -3px 5px rgba(150,150,150,.36);
    min-height: 15.4rem;
    padding: 3em 0;
}

.footer .fa-fw {
    height: 14px;
}

.footer-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    margin: 0 auto;
}

.footerchild {
    margin: 0 2em;
    margin-top: .5em;
    flex-grow: 1;
    flex-shrink: 0;
}

.footerchild:last-child {
    margin-bottom: .5em;
}

.footer-push {
    margin-left: auto;
    width: max-content;
}

footer a {
    color: var(--footer-link-color);
}

footer a:hover {
    color: var(--footer-hover-color);
}

.footer h2 {
    margin-bottom: .1em;
    display: inline-block;
}

.footerchild ul, .footerchild ul ul {
    padding-left: 0;
    margin-left: 10px;
    margin-right: 10px;
    list-style-type: none;
}

.footerchild ul ul {
    padding-left: 30px;
}

@media (--max-sm) {
    .footer-container {
        flex-direction: column;
    }

    .footer-push {
        margin-left: 0;
        width: 100%;
    }

    .footerchild ul li:last-child {
        margin-bottom: .5em;
    }

    .footer-push ul li:last-child {
        margin-bottom: .1em;
    }

    /* hdn = hidden */
    .hdn {
        display: none;
    }
    .footer {
        padding: .5em 0;
    }
    .footer li a {
        line-height: 1.8;
    }
    .footer-push ul {
        display: flex;
        flex-wrap: wrap;
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        text-align: center;
    }
    .footer-push ul li {
        display: inline-block;
        font-size: 2.5rem;
    }
    .footerchild ul li img,
    .footerchild ul li .fa-fw {
        height: 3.5rem;
    }
}

.footer h2, .footer h3 {
    margin-left: 10px;
    margin-right: 10px;
}

footer.copyright {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    background: var(--copyright-bg);
    min-height: 1.5rem;
    color: var(--copyright-text-color);
    padding-left: .5em;
    padding-right: .5em;
    overflow: hidden;
}

footer.copyright div {
    display: flex;
    align-items: center;
    height: 1.6rem;
    line-height: 1.6rem;
    vertical-align: top;
}

.copyright * {
    margin: 0;
    height: 1.6rem;
    line-height: 1.6rem;
}

.copyright .fa {
    height: 100%;
    vertical-align: top;
    font-size: 1.4em;
}

.copyright .footer-link {
    height: 28px;
    margin-right: .5em;
}

.copyright img {
    width: auto;
}

/*# sourceMappingURL=data:application/json;base64,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LG1CQUFtQjtJQUN2Qjs7SUFFQSxpQkFBaUI7SUFDakI7UUFDSSxhQUFhO0lBQ2pCO0lBQ0E7UUFDSSxlQUFlO0lBQ25CO0lBQ0E7UUFDSSxnQkFBZ0I7SUFDcEI7SUFDQTtRQUNJLGFBQWE7UUFDYixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLDhCQUE4QjtRQUM5Qix1QkFBdUI7UUFDdkIsa0JBQWtCO0lBQ3RCO0lBQ0E7UUFDSSxxQkFBcUI7UUFDckIsaUJBQWlCO0lBQ3JCO0lBQ0E7O1FBRUksY0FBYztJQUNsQjtBQUNKOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGFBQWE7SUFDYixlQUFlO0lBQ2YsOEJBQThCO0lBQzlCLCtCQUErQjtJQUMvQixrQkFBa0I7SUFDbEIsa0NBQWtDO0lBQ2xDLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsbUJBQW1CO0lBQ25CLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLFNBQVM7SUFDVCxjQUFjO0lBQ2QsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxZQUFZO0lBQ1osa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksV0FBVztBQUNmIiwiZmlsZSI6InN0ZGluIiwic291cmNlc0NvbnRlbnQiOlsiLyogdmFycyAqL1xuOnJvb3Qge1xuICAgIC0tYy1kYXJrOiAgICAgIzI5MmYyZjtcbiAgICAtLWMtYmctZGFyazogICMzYTQzNDY7XG4gICAgLS1jLWJnLWxpZ2h0OiAjNGM1NDU2O1xuICAgIC0tYy1saWdodDogICAgI2VjZjdmYTtcbiAgICAtLWMtaGwtZGFyazogICMwMDg0OTk7XG4gICAgLS1jLWhsLWxpZ2h0OiAjM2JhZWM0O1xuICAgIC0tYy1zaGFkb3c6ICAgI2RhZTVlMjtcblxuICAgIC8qIGJhY2tncm91bmRzICovXG4gICAgLS1uYXZiYXItYmc6ICAgIHZhcigtLWMtZGFyayk7XG4gICAgLS1qdW1ib3Ryb24tYmc6IHZhcigtLWMtYmctZGFyayk7XG4gICAgLS1jb3B5cmlnaHQtYmc6IHZhcigtLWMtZGFyayk7XG5cbiAgICAvKiBsaW5rIGNvbG9ycyAqL1xuICAgIC0tbGluay1jb2xvcjogICAgICAgICB2YXIoLS1jLWhsLWRhcmspO1xuICAgIC0tbGluay1ob3Zlci1jb2xvcjogICB2YXIoLS1jLWhsLWxpZ2h0KTtcbiAgICAtLWZvb3Rlci1saW5rLWNvbG9yOiAgdmFyKC0tYy1saWdodCk7XG4gICAgLS1mb290ZXItaG92ZXItY29sb3I6ICNmZmY7XG5cbiAgICAvKiB0ZXh0IGNvbG9ycyAqL1xuICAgIC0tdGV4dC1jb2xvcjogICAgICAgICAgIHZhcigtLWMtZGFyayk7XG4gICAgLS1mb290ZXItdGV4dC1jb2xvcjogICAgdmFyKC0tYy1saWdodCk7XG4gICAgLS1jb3B5cmlnaHQtdGV4dC1jb2xvcjogdmFyKC0tYy1saWdodCk7XG4gICAgLS1qdW1ib3Ryb24tdGV4dC1jb2xvcjogdmFyKC0tYy1saWdodCk7XG4gICAgLS1hcnQtZGF0ZS1jb2xvcjogICAgICAgY29sb3IodmFyKC0tYy1kYXJrKSB0aW50KDUwJSkpO1xuXG4gICAgLyogYm94IGNvbG9ycyAqL1xuICAgIC0tYm9yZGVyLWNvbG9yOiAgICB2YXIoLS1jLWRhcmspO1xuICAgIC0tYm94LWNvbG9yOiAgICAgICB2YXIoLS1jLWJnLWxpZ2h0KTtcbiAgICAtLWJveC1ob3Zlci1jb2xvcjogdmFyKC0tYy1kYXJrKTs7XG4gICAgLS1ib3gtcm91bmQ6ICAgICAgIDEwcHg7XG5cbiAgICAvKiBvdGhlciAqL1xuICAgIC0tbWF4LXdpZHRoOiAgICAgNjAwcHg7XG4gICAgLS1tYXgtd2lkdGgtYm94OiA4MDBweDtcbiAgICAtLW1hcmdpbi1ib3gtZmE6IDVweDtcbn1cbkBjdXN0b20tbWVkaWEgLS1tYXgtc20gYWxsIGFuZCAobWF4LXdpZHRoOiA2MDBweCk7XG5AY3VzdG9tLW1lZGlhIC0tbWF4LW1kIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpO1xuQGN1c3RvbS1tZWRpYSAtLW1heC1yZW0gYWxsIGFuZCAobWF4LXdpZHRoOiA2MHJlbSk7XG5cbi8qIHJlc2V0IGNzcyBmb3IgYnJvd3NlciBjb21wYXQgKi9cbioge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qIGdsb2JhbCAqL1xuYm9keSB7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJsbnVtXCI7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IGxpbmluZy1udW1zO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uaW52aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5hIHtcbiAgICBjb2xvcjogdmFyKC0tbGluay1jb2xvcik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tbGluay1ob3Zlci1jb2xvcik7XG59XG5pbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuLyogbmF2YmFyICovXG4ubmF2YmFyIHtcbiAgICBjb2xvcjogdmFyKC0tYy1saWdodCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5hdmJhci1iZyk7XG4gICAgYm94LXNoYWRvdzogMCAzcHggNHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuXG5AbWVkaWEgKC0tbWF4LXNtKSB7XG4gICAgLm5hdmJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG59XG5cbi5uYXZiYXIgYSB7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIGhlaWdodDogNDBweDtcbn1cblxuLyogbmF2ID0gbmF2YmFyXG4gKiBwaWEgPSBQcml2YXRlIEludGVybmV0IGFjY2Vzc1xuICovXG4jbmF2LWxvZ28geyBvcmRlcjogMTA7IH1cbiNuYXYtcGlhICB7IG9yZGVyOiAzMDsgfVxuXG4jbmF2LWp1bXAgeyBvcmRlcjogMTAwMDsgfVxuXG4jbmF2LXNlYXJjaCB7XG4gICAgb3JkZXI6IDIwO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xufVxuXG4jbmF2LXNlYXJjaCBpbnB1dCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1iZy1kYXJrKTtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWxpZ2h0KTtcbiAgICBwYWRkaW5nOiAuNWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0yZW07XG59XG5cbiNuYXYtbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMmVtO1xuICAgIG1hcmdpbi1yaWdodDogLjdlbTtcbn1cblxuQG1lZGlhICgtLW1heC1zbSkge1xuICAgICNuYXYtc2VhcmNoIHtcbiAgICAgICAgb3JkZXI6IDEwMDtcbiAgICAgICAgbWFyZ2luOiAwIC41ZW07XG4gICAgfVxuXG4gICAgI25hdi1waWEge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAjbmF2LWxhYmVsIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1hcmdpbjogMCAuNWVtO1xuICAgIH1cblxuICAgICNuYXYtc2VhcmNoYm94Om5vdCg6Zm9jdXMpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgI25hdi1zZWFyY2hib3g6Zm9jdXMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNWVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAjbmF2LXNlYXJjaGJveDpmb2N1cyArICNuYXYtbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDEuNWVtO1xuICAgICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAtLjFlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLyogbiA9IG5hdiAqL1xuLm5sb2dvIHsgaGVpZ2h0OiA0MHB4OyB9XG5cbi8qIHQgPSB0ZXh0ICh1c2VkIGluIGp1bWJvdHJvbiBmb3Igc21hbGwgbG9nbyBhcyB0ZXh0KSAqL1xuLnRsb2dvIHtcbiAgICBoZWlnaHQ6IDIuNGV4O1xuICAgIG1hcmdpbi1ib3R0b206IC0uNDdleDtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbn1cblxuLyogbWFpbiAqL1xuLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE3LjVyZW07XG59XG5cbi5tYWluIHtcbiAgICBtYXJnaW46IDJlbSBhdXRvO1xuICAgIHBhZGRpbmc6IDAgLjc1ZW07XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG59XG5cbi5tYWluIGgxLFxuLm1haW4gaDIsXG4ubWFpbiBoMyxcbi5tYWluIGg0LFxuLm1haW4gaDUsXG4ubWFpbiBoNixcbi5tYWluIGxpLFxuLm1haW4gcHJlLFxuLm1haW4gcCxcbi5tYWluIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbi10b3A6IC43ZW07XG59XG5cbi5hcnRsaXN0IGxpIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ubWFpbiBoMSArIHAsXG4ubWFpbiBoMiArIHAsXG4ubWFpbiBoMyArIHAsXG4ubWFpbiBoNCArIHAsXG4ubWFpbiBoNSArIHAsXG4ubWFpbiBoNiArIHAsXG4ubWFpbiBibG9ja3F1b3RlID4gcDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuLnRvY2xpbmssXG4udG9jbGluazpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xufVxuXG4udG9jbGluazo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgXFxmMTNkJztcbiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gICAgY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4wOHM7XG59XG5cbi50b2NsaW5rOmhvdmVyOjphZnRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBjb2xvcjogdmFyKC0tbGluay1ob3Zlci1jb2xvcik7XG59XG5cbkBtZWRpYSAoLS1tYXgtc20pIHtcbiAgICAudG9jbGluazo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxudWwge1xuICAgIHBhZGRpbmctbGVmdDogMmVtO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbn1cblxub2wge1xuICAgIHBhZGRpbmctbGVmdDogMmVtO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbn1cblxuaHIge1xuICAgIG1hcmdpbi10b3A6IC44ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogLjhlbTtcbn1cblxudGFibGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZGFyayk7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxudGgsIHRkIHtcbiAgICBtYXJnaW46IC4yZW07XG59XG5cbnRoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJnLWRhcmspO1xuICAgIGNvbG9yOiB2YXIoLS1jLWxpZ2h0KTtcbn1cblxudGQge1xuICAgIHBhZGRpbmc6IC4yZW0gLjVlbTtcbn1cblxudGQ6bm90KDpmaXJzdC1jaGlsZCksIHRoOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWMtZGFyayk7XG59XG5cbnRyOm50aC1jaGlsZChvZGQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNoYWRvdyk7XG59XG5cbi8qIGp1bWJvdHJvbiAqL1xuLmp1bWJvdHJvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IC01MHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWp1bWJvdHJvbi1iZyk7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBjb2xvcjogdmFyKC0tanVtYm90cm9uLXRleHQtY29sb3IpO1xuICAgIHBhZGRpbmc6IDRlbSAwIDRlbSAwO1xufVxuXG4vKiBqID0ganVtYm90cm9uICovXG4uamluZGV4IHtcbiAgICB6LWluZGV4OiA5OTtcbn1cblxuLmpsb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDI1cHggYXV0bztcbn1cblxuLmpwaWEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbjogMjVweDtcbn1cblxuQG1lZGlhICgtLW1heC1zbSkge1xuICAgIC5qbG9nbyB7XG4gICAgICAgIG1hcmdpbjogMmVtIGF1dG8gLTJlbSBhdXRvO1xuICAgIH1cbiAgICAuanVtYm90cm9uIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJlbTtcbiAgICB9XG59XG5cbi5jaGlsZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogLjVlbSBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBsaW5lLWhlaWdodDogNDhweDtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbn1cblxuLmJveC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoLWJveCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5ib3gge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWp1bWJvdHJvbi10ZXh0LWNvbG9yKTtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgZmxleC1iYXNpczogMzAlO1xuICAgIG1pbi13aWR0aDogMjYlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJveC1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94LXJvdW5kKTtcbiAgICBwYWRkaW5nOiAxZW07XG59XG5cbi5ib3g6aG92ZXIsLmJveDphY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1qdW1ib3Ryb24tdGV4dC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm94LWhvdmVyLWNvbG9yKTtcbn1cblxuLmJveCBzcGFuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiBpbml0aWFsO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IC43NWVtO1xufVxuXG4vKiBmYSA9IGZvbnQgYXdlc29tZSAqL1xuLmZhLXVzZXJzIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1tYXJnaW4tYm94LWZhKTtcbn1cblxuLmZhLWNvbW1lbnRzLC5mYS1xdWVzdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tbWFyZ2luLWJveC1mYSk7XG59XG5cbi50aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWVkaWEgKC0tbWF4LW1kKSB7XG4gICAgLmJveCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuY2hpbGQge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDAgNXB4O1xuICAgIH1cblxuICAgIC5mYS00eCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgIH1cblxuICAgIC5ib3gtY29udGFpbmVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luOiAwIC41ZW07XG4gICAgfVxuXG4gICAgLmJveCBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5ib3gge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJveC1yb3VuZCkgLyAyKTtcbiAgICAgICAgbWFyZ2luOiA1cHggMDtcbiAgICB9XG59XG5cbi8qIGFydGljbGVzICovXG5oMSB7XG4gICAgbWFyZ2luOiAwO1xufVxuLyogYXJ0ID0gYXJ0aWNsZSAqL1xuLmFydGxpc3QgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4uYXJ0LWluZm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbn1cblxuLmFydC1pbmZvIGgxIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDJlbTtcbn1cblxuLmFydC13YXJuaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICAgcGFkZGluZzogLjVlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO1xuICAgIGNvbG9yOiByZWQ7XG59XG5cbi5hcnQtYm9keSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG5AbWVkaWEoLS1tYXgtc20pIHtcbiAgICAuYXJ0bGlzdCAuaGVhZGluZyB7XG4gICAgICAgIHBhZGRpbmc6IDAgMC43NWVtO1xuICAgIH1cbn1cblxuLmFydGxpc3QgdWwge1xuICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgICBtYXJnaW46IDJlbSBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC41ZW07XG59XG5cbi5hcnRsaXN0IGxpOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtcbn1cblxuLmFydGxpc3QgLmFydCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxMjAlO1xufVxuXG4uYXJ0LWRhdGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogdmFyKC0tYXJ0LWRhdGUtY29sb3IpO1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCI7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cblxuLmFydGxpc3QgLmFydC1kYXRlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xufVxuXG4uYXJ0LW5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmFydC1uYXYgKiB7XG4gICAgZmxleC1iYXNpczogMzAlO1xufVxuXG4uYXJ0LW5hdiAqOm50aC1jaGlsZCgxKSB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbi5hcnQtbmF2ICo6bnRoLWNoaWxkKDIpIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4uYXJ0LW5hdiAqOm50aC1jaGlsZCgzKSB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbmJsb2NrcXVvdGUge1xuICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItbGVmdDogLjVlbSBzb2xpZCB2YXIoLS1jLXNoYWRvdyk7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5AbWVkaWEgKC0tbWF4LW1kKSB7XG4gICAgLm1haW4uYXJ0bGlzdCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICAuYXJ0bGlzdCAuYXJ0LWluZm8ge1xuICAgICAgICBwYWRkaW5nOiAwIC43NWVtO1xuICAgIH1cbn1cblxuLyogZmFxICovXG4vKiBrYiA9IGtub3dsZWRnZSBiYXNlICovXG4ua2ItaW5kZXgge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG59XG5cbi5rYi1pbmRleCBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMSAxIDE1ZW07XG4gICAgaGVpZ2h0OiAzZW07XG4gICAgbWFyZ2luOiAxZW07XG59XG5cbi5rYi1pbmRleCBsaSBoMiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmtiLWluZGV4IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ua2ItaW5kZXggYSBoMiB7XG4gICAgY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xufVxuLmtiLWluZGV4IGE6aG92ZXIgaDIge1xuICAgIGNvbG9yOiB2YXIoLS1saW5rLWhvdmVyLWNvbG9yKTtcbn1cblxuLyogZm9vdGVyICovXG4uZm9vdGVycyB7XG4gICAgLyptaW4taGVpZ2h0OiAzMHZoOyovXG4gICAgbWFyZ2luLXRvcDogLTE3cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDE3cmVtO1xufVxuXG4uZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1qdW1ib3Ryb24tYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1mb290ZXItdGV4dC1jb2xvcik7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogMCAtM3B4IDVweCByZ2JhKDE1MCwxNTAsMTUwLC4zNik7XG4gICAgbWluLWhlaWdodDogMTUuNHJlbTtcbiAgICBwYWRkaW5nOiAzZW0gMDtcbn1cblxuLmZvb3RlciAuZmEtZncge1xuICAgIGhlaWdodDogMTRweDtcbn1cblxuLmZvb3Rlci1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uZm9vdGVyY2hpbGQge1xuICAgIG1hcmdpbjogMCAyZW07XG4gICAgbWFyZ2luLXRvcDogLjVlbTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5mb290ZXJjaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xufVxuXG4uZm9vdGVyLXB1c2gge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbn1cblxuZm9vdGVyIGEge1xuICAgIGNvbG9yOiB2YXIoLS1mb290ZXItbGluay1jb2xvcik7XG59XG5cbmZvb3RlciBhOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tZm9vdGVyLWhvdmVyLWNvbG9yKTtcbn1cblxuLmZvb3RlciBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjFlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5mb290ZXJjaGlsZCB1bCwgLmZvb3RlcmNoaWxkIHVsIHVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLmZvb3RlcmNoaWxkIHVsIHVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG59XG5cbkBtZWRpYSAoLS1tYXgtc20pIHtcbiAgICAuZm9vdGVyLWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLmZvb3Rlci1wdXNoIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5mb290ZXJjaGlsZCB1bCBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICB9XG5cbiAgICAuZm9vdGVyLXB1c2ggdWwgbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC4xZW07XG4gICAgfVxuXG4gICAgLyogaGRuID0gaGlkZGVuICovXG4gICAgLmhkbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5mb290ZXIge1xuICAgICAgICBwYWRkaW5nOiAuNWVtIDA7XG4gICAgfVxuICAgIC5mb290ZXIgbGkgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgfVxuICAgIC5mb290ZXItcHVzaCB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAuZm9vdGVyLXB1c2ggdWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIH1cbiAgICAuZm9vdGVyY2hpbGQgdWwgbGkgaW1nLFxuICAgIC5mb290ZXJjaGlsZCB1bCBsaSAuZmEtZncge1xuICAgICAgICBoZWlnaHQ6IDMuNXJlbTtcbiAgICB9XG59XG5cbi5mb290ZXIgaDIsIC5mb290ZXIgaDMge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuZm9vdGVyLmNvcHlyaWdodCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvcHlyaWdodC1iZyk7XG4gICAgbWluLWhlaWdodDogMS41cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1jb3B5cmlnaHQtdGV4dC1jb2xvcik7XG4gICAgcGFkZGluZy1sZWZ0OiAuNWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IC41ZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuZm9vdGVyLmNvcHlyaWdodCBkaXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42cmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5jb3B5cmlnaHQgKiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGhlaWdodDogMS42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjZyZW07XG59XG5cbi5jb3B5cmlnaHQgLmZhIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBmb250LXNpemU6IDEuNGVtO1xufVxuXG4uY29weXJpZ2h0IC5mb290ZXItbGluayB7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIG1hcmdpbi1yaWdodDogLjVlbTtcbn1cblxuLmNvcHlyaWdodCBpbWcge1xuICAgIHdpZHRoOiBhdXRvO1xufVxuIl19 */