/*!********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/normalize.css ***!
  \********************************************************************************************************************/
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
    line-height: 1.15; /* 1 */
    -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
     ========================================================================== */

/**
   * Remove the margin in all browsers.
   */

body {
    margin: 0;
}

/**
   * Render the `main` element consistently in IE.
   */

main {
    display: block;
}

/**
   * Correct the font size and margin on `h1` elements within `section` and
   * `article` contexts in Chrome, Firefox, and Safari.
   */

h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

/* Grouping content
     ========================================================================== */

/**
   * 1. Add the correct box sizing in Firefox.
   * 2. Show the overflow in Edge and IE.
   */

hr {
    box-sizing: content-box; /* 1 */
    height: 0; /* 1 */
    overflow: visible; /* 2 */
}

/**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */

pre {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
}

/* Text-level semantics
     ========================================================================== */

/**
   * Remove the gray background on active links in IE 10.
   */

a {
    background-color: transparent;
}

/**
   * 1. Remove the bottom border in Chrome 57-
   * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
   */

abbr[title] {
    border-bottom: none; /* 1 */
    text-decoration: underline; /* 2 */
    text-decoration: underline dotted; /* 2 */
}

/**
   * Add the correct font weight in Chrome, Edge, and Safari.
   */

b,
strong {
    font-weight: bolder;
}

/**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */

code,
kbd,
samp {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
}

/**
   * Add the correct font size in all browsers.
   */

small {
    font-size: 80%;
}

/**
   * Prevent `sub` and `sup` elements from affecting the line height in
   * all browsers.
   */

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

/* Embedded content
     ========================================================================== */

/**
   * Remove the border on images inside links in IE 10.
   */

img {
    border-style: none;
}

/* Forms
     ========================================================================== */

/**
   * 1. Change the font styles in all browsers.
   * 2. Remove the margin in Firefox and Safari.
   */

button,
input,
optgroup,
select,
textarea {
    font-family: inherit; /* 1 */
    font-size: 100%; /* 1 */
    line-height: 1.15; /* 1 */
    margin: 0; /* 2 */
}

/**
   * Show the overflow in IE.
   * 1. Show the overflow in Edge.
   */

button,
input {
    /* 1 */
    overflow: visible;
}

/**
   * Remove the inheritance of text transform in Edge, Firefox, and IE.
   * 1. Remove the inheritance of text transform in Firefox.
   */

button,
select {
    /* 1 */
    text-transform: none;
}

/**
   * Correct the inability to style clickable types in iOS and Safari.
   */

button,
[type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: button;
    appearance: button;
}

/**
   * Remove the inner border and padding in Firefox.
   */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0;
}

/**
   * Restore the focus styles unset by the previous rule.
   */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText;
}

/**
   * Correct the padding in Firefox.
   */

fieldset {
    padding: 0.35em 0.75em 0.625em;
}

/**
   * 1. Correct the text wrapping in Edge and IE.
   * 2. Correct the color inheritance from `fieldset` elements in IE.
   * 3. Remove the padding so developers are not caught out when they zero out
   *    `fieldset` elements in all browsers.
   */

legend {
    box-sizing: border-box; /* 1 */
    color: inherit; /* 2 */
    display: table; /* 1 */
    max-width: 100%; /* 1 */
    padding: 0; /* 3 */
    white-space: normal; /* 1 */
}

/**
   * Add the correct vertical alignment in Chrome, Firefox, and Opera.
   */

progress {
    vertical-align: baseline;
}

/**
   * Remove the default vertical scrollbar in IE 10+.
   */

textarea {
    overflow: auto;
}

/**
   * 1. Add the correct box sizing in IE 10.
   * 2. Remove the padding in IE 10.
   */

[type="checkbox"],
[type="radio"] {
    box-sizing: border-box; /* 1 */
    padding: 0; /* 2 */
}

/**
   * Correct the cursor style of increment and decrement buttons in Chrome.
   */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
    height: auto;
}

/**
   * 1. Correct the odd appearance in Chrome and Safari.
   * 2. Correct the outline style in Safari.
   */

[type="search"] {
    -webkit-appearance: textfield; /* 1 */
    appearance: textfield;
    outline-offset: -2px; /* 2 */
}

/**
   * Remove the inner padding in Chrome and Safari on macOS.
   */

[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/**
   * 1. Correct the inability to style clickable types in iOS and Safari.
   * 2. Change font properties to `inherit` in Safari.
   */

::-webkit-file-upload-button {
    -webkit-appearance: button; /* 1 */
    font: inherit; /* 2 */
}

/* Interactive
     ========================================================================== */

/*
   * Add the correct display in Edge, IE 10+, and Firefox.
   */

details {
    display: block;
}

/*
   * Add the correct display in all browsers.
   */

summary {
    display: list-item;
}

/* Misc
     ========================================================================== */

/**
   * Add the correct display in IE 10+.
   */

template {
    display: none;
}

/**
   * Add the correct display in IE 10.
   */

[hidden] {
    display: none;
}

/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
@font-face {
    font-family: "Quenda-Medium";
    src: url(/build/fonts/Quenda-Medium.f0f3e836.otf) format("opentype");
}

:root {
    --main-font: "Quenda-Medium", sans-serif;

    --extra-small: 0.7rem;
    --small: 0.9rem;
    --big: 1.5rem;
    --bigger: 2rem;

    --lighter-bg: rgb(242, 228, 255);
    --light-bg: rgb(225, 215, 253);
    --medium: rgb(192, 166, 236);
    --dark-bg: rgb(147, 121, 206);
    --highlight: rgb(118, 69, 255);
    --alert-bg: rgb(255, 179, 179);
    --alert-border: rgb(253, 107, 107);
    --valid-bg: rgb(203, 255, 214);
    --valid-bg-hover: rgb(173, 255, 191);
    --valid-border: rgb(108, 206, 141);
    --placeholder: rgb(169, 169, 169);
    --input: rgb(78, 78, 78);
}

html,
body {
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
}

input,
button,
select,
textarea,
input,
main {
    box-sizing: border-box !important;
}

input {
    &:-webkit-autofill,
    &:-webkit-autofill:focus {
        transition: background-color 0s 600000s, color 0s 600000s; /* css trick to stop autofil behavior */
    }
}

body {
    font-family: var(--main-font);
    background-color: white;

    max-width: 1065px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 0;
    margin-bottom: 0;
    padding: 0;

    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

th {
    background-color: white;
}

tr {
    border-bottom: 0.5rem solid white;
}

tr:nth-child(even) {
    background-color: var(--light-bg);
}

tr:nth-child(odd) {
    background-color: var(--lighter-bg);
}

td {
    padding-right: 15px;
}

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

    &:hover {
        color: var(--medium);
    }
}

li {
    margin: 5px 0;
}

h1,
h2 {
    text-align: center;
}

img {
    max-width: 100%;
    height: auto;
    margin: 0;
}

button {
    cursor: pointer;
}

header {
    background-color: var(--light-bg);
    height: 150px;
    border-bottom-left-radius: 32px;
    border-bottom-right-radius: 32px;
    padding-bottom: 15px;

    display: flex;
    gap: 15px;

    & .logo {
        min-width: 165px;
    }

    & .header-text-logo-navbar {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-content: space-between;
        justify-content: end;
        gap: 25px;

        & .website-name {
            color: var(--medium);
            font-size: 48px;
        }

        & .navbar {
            display: flex;

            & > :last-child {
                margin-left: auto;
                margin-right: 20px;
            }

            & .navbtn {
                color: black;
                padding: 5px 15px;
                border-radius: 32px;
                margin-top: auto;
                margin-bottom: auto;
                width: fit-content;

                display: flex;
                flex-wrap: wrap;
                justify-content: center;
                text-align: center;

                &:hover {
                    background-color: var(--highlight);
                    color: white;
                }
            }
        }
    }
}

main {
    border: 4px solid var(--dark-bg);
    border-radius: 32px;
    width: 100%;
    padding: 15px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 20px;
    margin-bottom: 20px;
    overflow-y: 100vh;
}

footer {
    background-color: var(--dark-bg);
    border-top-right-radius: 32px;
    border-top-left-radius: 32px;
    padding-top: 15px;
    padding-left: 20px;
    padding-right: 20px;
    margin-top: auto;

    display: flex;
    flex-direction: column;
    gap: 15px;

    & .legal-warning {
        display: flex;
        flex-direction: column;

        & .legal-title {
            color: white;
        }

        & .legal-txt {
            margin-left: 20px;
            font-size: var(--extra-small);
        }
    }

    & .footer-copyright-conditions {
        display: flex;
        justify-content: space-between;

        & .copyright {
            font-size: var(--extra-small);
        }

        .conditions-links {
            font-size: var(--small);

            & > a {
                color: white;
            }

            & > a:hover {
                color: black;
            }
        }
    }
}

.flex-container {
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
}

/* Usually surrounded by .flex-container,
contain 2 element:
- label
- input (of whatever type) */
.input-group {
    min-width: 250px;
    position: relative;
    margin: 15px;

    flex-basis: calc(100% / 2.2);
}

.input-group input,
.input-group textarea {
    width: 100%;
    color: var(--input);
    border: 2px solid var(--medium);
    border-radius: 4px;
    outline: none;
    padding: 15px;
    text-align: left;

    &:focus {
        border-color: var(--highlight);
    }
}

.input-group select {
    color: white;
    background-color: var(--dark-bg);
    border: 2px solid var(--medium);
    border-radius: 25px;
    outline: none;
    padding: 5px;
    text-align: left;
    transition: border-radius 1s ease;

    &:focus {
        border-color: var(--highlight);
    }

    &:focus {
        border-radius: 23px;
        border-bottom-right-radius: 0;
        border-bottom-left-radius: 0;
        transition: 0s ease 0s;
    }
}

.input-group label {
    background: white;
    padding-left: 5px;
    padding-right: 15px;
    position: absolute;
    top: -12px;
    left: 5px;
    white-space: nowrap;
}

.input-group:has(input[type="checkbox"]) label {
    position: static;
    background: transparent;
    padding: 0;
    margin-left: 5px;
}

.input-group:has(fieldset) label {
    position: static;
    background: transparent;
    padding: 0;
}

.checkbox-grid input[type="checkbox"],
.text-display-in-input-group input[type="checkbox"] {
    margin-right: 8px;
}

.input-group:has(select) label {
    all: unset;
}

.input-group.vertical {
    display: block;
    margin-bottom: 5em; /* Optional spacing between groups */
}

/*!****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/login.css ***!
  \****************************************************************************************************************/
.connection-img {
    margin-left: auto;
    margin-right: auto;
}

.login-form {
    text-align: center;
}

.login-alert {
    background-color: var(--alert-bg);
    border: 2px solid var(--alert-border);
    padding-left: 15px;
    padding-right: 15px;
    display: inline-block;
}

/*!**************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/invitenewclient.css ***!
  \**************************************************************************************************************************/
.group-small-buttons {
    text-align: center;
    margin-bottom: 15px;
}

.copy-icon {
    height: 0.9rem;
    pointer-events: none;
    vertical-align: middle;
}

.text-to-copy {
    display: inline-block;
    overflow-wrap: break-word;
    word-wrap: break-word;
    -ms-word-break: break-all;
    word-break: break-word;
}

.container-mail-sent-alert {
    margin-top: 15px;
    width: 100%;
    display: flex;
    justify-content: space-around;
}

.mail-sent-alert {
    background-color: var(--valid-bg);
    border: 2px solid var(--valid-border);
    padding-left: 15px;
    padding-right: 15px;
}

/*!*********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/clientinfo.css ***!
  \*********************************************************************************************************************/
.client-name {
    font-size: var(--bigger);
    display: block;
}

.client-picture {
    max-width: 150px;
    max-height: 250px;
    border: 2px solid var(--medium)
}

/*!******************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/buttons.css ***!
  \******************************************************************************************************************/
.big-button {
    font-family: var(--main-font);
    background-color: var(--valid-bg);
    border: 2px solid var(--valid-border);
    color: black;

    font-size: var(--big);
    letter-spacing: 0.3rem;
    text-wrap: balance;

    border-radius: 7px;
    padding: 10px 5px;
    margin: 20px;
    min-width: 40%;
    
    cursor: pointer;

    &:hover {
        background-color: var(--valid-bg-hover);
        box-shadow: 2px 1px 1px lightgrey;
        transition: 150ms ease-in-out;
    }

    &:active {
        background-color: var(--valid-bg-hover);
        color: black;
        box-shadow: none;
        transition: none;
        outline: inset;
        outline-width: 1px;
        outline-color: white;
        text-shadow: -1px -1px 0 var(--valid-border)
    }

    &::-moz-focus-inner {
        border: 0;
        padding: 0;
    }
}

.small-buttons-container-row {
    display: flex;
    gap: 15px;
    justify-content: center;

    &>.small-button {
        margin: 0;
    }
}

.small-button {
    background-color: var(--highlight);
    color: white;
    cursor: pointer;
    
    border: 0;
    padding: 5px 15px;
    border-radius: 32px;
    margin: auto;
    width: fit-content;
    
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    
    &:hover {
        background-color: transparent;
        color: var(--medium);
    }

    &.margin-top-15 {
        margin-top: 15px;
    }
}

.circular-button {
    pointer-events: all;
    padding: 0; 
    border-radius: 50%;
    width: 40px;
    height: 40px;
    margin: auto;

    display: flex;
    align-items: center;
    justify-content: center;

    &>img {
        max-height: 25px;
        max-width: 25px;
    }
}

/*!*****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/tables.css ***!
  \*****************************************************************************************************************/
table {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 15px;
    text-align: center;
    border-collapse: separate;
    border-spacing: 0;
}

.table-container {
    overflow-x: auto;
}

.two-col-table th {
    background-color: inherit;
    text-align: left;
    padding: 5px 15px;
}

.td-actions {
    background-color: white;
    pointer-events: none;
}

.td-text-info {
    background-color: white;
    padding-top: 15px;
    text-align: left;
}

tr[data-href] {
    cursor: pointer;
}

tr[data-href]:hover {
    background-color: white;
}

/*!********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/scrollbar.css ***!
  \********************************************************************************************************************/
::-webkit-scrollbar-track {
    background-color: var(--light-bg);
    border: none;
    height: calc(inherit - 120px);
    border-radius: 10px;
}

::-webkit-scrollbar-thumb {
    background: var(--medium);
    border-radius: 10px;
}

::-webkit-scrollbar {
    width: 15px;
}

::-webkit-scrollbar-button {
    width: 15px;
    height: 15px;
}

::-webkit-scrollbar-button:vertical:start:decrement,
::-webkit-scrollbar-button:vertical:end:increment,
::-webkit-scrollbar-button:horizontal:start:decrement,
::-webkit-scrollbar-button:horizontal:end:increment {
    width: 15px;
    height: 15px;
}

/*!******************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/session.css ***!
  \******************************************************************************************************************/
.pictogram_transform_text_to_image {
    display: flex;
    gap: 1px;
    flex-wrap: wrap;
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
}

.pictogram_transform_text_to_image label {
    padding: 0;
    position: static;
    top: auto;
    left: auto;
    color: transparent;
    font-size: 0;
}

.pictogram-img {
    height: 81px;
    margin-left: auto;
    margin-right: auto;
}

.selected-icon {
    width: 20px;
    margin-left: auto;
    margin-right: auto;
    display: block;
    visibility: hidden;
}

.radio-group {
    width: fit-content;
    text-align: center;
}

.subform-container {
    background-color: var(--light-bg);
    border-radius: 4px;
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    height: fit-content;
    margin: 5px 0;

    & label {
        background-color: var(--light-bg);
    }

    & input,
    textarea {
        background-color: var(--light-bg);
    }
}

.subform-header {
    width: 100%;
    display: flex;

    & .delete-subform {
        margin-left: auto;
        margin-right: 15px;
    }
}

.subform-summary {
    cursor: pointer;
    display: none;
    min-height: 100px;

    flex-grow: 1;
}

.subform-details {
    width: 100%;
    padding-bottom: 15px;
}

.collapse-icon {
    margin: 1px;
    width: 50px;
    height: 50px;
    cursor: pointer;
    transition: transform 0.3s ease;
    border-radius: 4px;
}

.toggle-collapse {
    width: 100%;
    display: flex;
    color: inherit;

    &:hover {
        color: inherit;
    }
}

.list-modules-buttons {
    margin: 15px 0;

    display: flex;
    gap: 15px;

    & > * {
        flex-grow: 0;
    }

    & > :first-child {
        flex-grow: 1;
    }
}

.dynamic-notes {
    display: inline-block;
}

.form-summary {
    display: flex;
    flex-direction: row;

    margin-left: 20px;
    margin-top: 20px;
    width: fit-content;
    height: fit-content;
}

.custom-tooltip {
    display: none;
    position: absolute;
    font-size: var(--extra-small);
    background-color: var(--light-bg);
    border: 1px solid var(--dark-bg);
    padding: 3px;
    z-index: 1000;
    text-align: center;
}

.range-pair-container {
    display: flex;
    gap: 15px;

    & > input[type="number"] {
        max-width: 100px;
    }
}

/*!*****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/inputs.css ***!
  \*****************************************************************************************************************/
textarea {
    overflow-y: hidden;
    resize: none;
}

fieldset {
    border: 2px solid var(--medium);
    border-radius: 4px;
    margin: 0;
    padding: 5px;

    &:has(input:focus, input:active) {
        border-color: var(--highlight);
    }
}

input[type="range"] {
    cursor: pointer;
    padding: 15px 0;
}

input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

input[type="radio"] + img + img {
    cursor: pointer;
}

input[type="radio"]:checked + img {
    visibility: visible;
}

.text-display-in-input-group {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px;
}

.text-display-in-input-group > div {
    display: flex;
    align-items: center;
    gap: 8px;
    position: relative;
}

.text-display-in-input-group label,
.text-display-in-input-group input[type="checkbox"] {
    margin: 0;
}

input[type="file"] {
    text-decoration: none;
    border: none;
    display: inline-block;
    padding: 6px 12px;
    cursor: pointer;
}

input[type="checkbox"] {
    width: 20px;
    height: 20px;
}

.checkbox-item {
    display: block;
    margin-bottom: 10px;
}

.checkbox-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px;
    width: 100%;
    padding: 10px;
    background-color: #f8f9fa;
    border-radius: 5px;
}

.checkbox-grid > div {
    display: flex;
    align-items: center;
    gap: 8px;
}

.checkbox-grid label, 
.checkbox-grid input[type="checkbox"] {
    margin: 0;
    display: inline-block;
}

fieldset {
    border: 1px solid var(--input);
    border-radius: 5px;
    padding: 15px;
    margin-bottom: 15px;
    width: 97%;
}

fieldset legend {
    width: auto;
    padding: 0 10px;
    margin-bottom: 0;
    font-size: 1.1rem;
    font-weight: bold;
}

/* Improve checkbox alignment */
.text-display-in-input-group label {
    margin-left: 4px;
    display: inline-flex;
    align-items: center;
}

.text-display-in-input-group input[type="checkbox"] {
    margin-right: 4px;
}

/* Fix for Symfony's default checkbox rendering */
.text-display-in-input-group .form-check {
    margin-bottom: 5px;
    display: flex;
    align-items: center;
    gap: 4px;
}

#namedetails-group {
    display: flex;
    flex-wrap: wrap;      /* wrap onto multiple lines if needed */
    gap: 1rem;            /* space between each checkbox‐label pair */
  }
  
  .checkbox-item {
    display: inline-flex; /* put box + label on one line */
    align-items: center;  /* vertically center box/text */
    gap: 0.5rem;          /* space between the box and its text */
  }
  
  .modal { display: none; }

  .modal.show { display: block; }



/*!**********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/mobile-spec.css ***!
  \**********************************************************************************************************************/
@media only screen and (max-width: 600px) {
    .header-text-logo-navbar {
        flex-direction: row !important;
    }

    .website-name {
        font-size: 0px !important;
    }
}

/*!**************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./vendor/symfony/ux-live-component/assets/dist/live.min.css ***!
  \**************************************************************************************************************************************************/
[data-loading=""],[data-loading=show],[data-loading=delay\|show]{display:none}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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OztBQUVBO0lBQ0ksV0FBVztJQUNYLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtBQUNyQjs7QUFFQSwrQkFBK0I7QUFDL0I7SUFDSSxnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQSxpREFBaUQ7QUFDakQ7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixRQUFRO0FBQ1o7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsZUFBZSxPQUFPLHVDQUF1QztJQUM3RCxTQUFTLGFBQWEsMkNBQTJDO0VBQ25FOztFQUVBO0lBQ0Usb0JBQW9CLEVBQUUsZ0NBQWdDO0lBQ3RELG1CQUFtQixHQUFHLCtCQUErQjtJQUNyRCxXQUFXLFdBQVcsdUNBQXVDO0VBQy9EOztFQUVBLFNBQVMsYUFBYSxFQUFFOztFQUV4QixjQUFjLGNBQWMsRUFBRTs7Ozs7OztBQy9JaEM7SUFDSTtRQUNJLDhCQUE4QjtJQUNsQzs7SUFFQTtRQUNJLHlCQUF5QjtJQUM3QjtBQUNKOzs7OztBQ1JBLGlFQUFpRSxZQUFZLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL25vcm1hbGl6ZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9hcHAuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvbG9naW4uY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvaW52aXRlbmV3Y2xpZW50LmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2NsaWVudGluZm8uY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvYnV0dG9ucy5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy90YWJsZXMuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvc2Nyb2xsYmFyLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Nlc3Npb24uY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvaW5wdXRzLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL21vYmlsZS1zcGVjLmNzcyIsIndlYnBhY2s6Ly8vLi92ZW5kb3Ivc3ltZm9ueS91eC1saXZlLWNvbXBvbmVudC9hc3NldHMvZGlzdC9saXZlLm1pbi5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuYm9keSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAgICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gICAqL1xuXG5tYWluIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICovXG5cbmgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAgICovXG5cbmhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG5wcmUge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICAgKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAqL1xuXG5hIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgKi9cblxuYixcbnN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgICogYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuc3ViLFxuc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAgICovXG5cbmltZyB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAqL1xuXG5idXR0b24sXG5pbnB1dCB7XG4gICAgLyogMSAqL1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gICAgLyogMSAqL1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAgICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgICBhcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gICAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICovXG5cbmZpZWxkc2V0IHtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG5sZWdlbmQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICAgIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gICAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAqL1xuXG5wcm9ncmVzcyB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gICAqL1xuXG50ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICAgKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICAgKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gICAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICBhcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAgICovXG5cbmRldGFpbHMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG5zdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAgICovXG5cbnRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gICAqL1xuXG5baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIlF1ZW5kYS1NZWRpdW1cIjtcbiAgICBzcmM6IHVybChcIi4uL2ZvbnRzL1F1ZW5kYS1NZWRpdW0ub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xufVxuXG46cm9vdCB7XG4gICAgLS1tYWluLWZvbnQ6IFwiUXVlbmRhLU1lZGl1bVwiLCBzYW5zLXNlcmlmO1xuXG4gICAgLS1leHRyYS1zbWFsbDogMC43cmVtO1xuICAgIC0tc21hbGw6IDAuOXJlbTtcbiAgICAtLWJpZzogMS41cmVtO1xuICAgIC0tYmlnZ2VyOiAycmVtO1xuXG4gICAgLS1saWdodGVyLWJnOiByZ2IoMjQyLCAyMjgsIDI1NSk7XG4gICAgLS1saWdodC1iZzogcmdiKDIyNSwgMjE1LCAyNTMpO1xuICAgIC0tbWVkaXVtOiByZ2IoMTkyLCAxNjYsIDIzNik7XG4gICAgLS1kYXJrLWJnOiByZ2IoMTQ3LCAxMjEsIDIwNik7XG4gICAgLS1oaWdobGlnaHQ6IHJnYigxMTgsIDY5LCAyNTUpO1xuICAgIC0tYWxlcnQtYmc6IHJnYigyNTUsIDE3OSwgMTc5KTtcbiAgICAtLWFsZXJ0LWJvcmRlcjogcmdiKDI1MywgMTA3LCAxMDcpO1xuICAgIC0tdmFsaWQtYmc6IHJnYigyMDMsIDI1NSwgMjE0KTtcbiAgICAtLXZhbGlkLWJnLWhvdmVyOiByZ2IoMTczLCAyNTUsIDE5MSk7XG4gICAgLS12YWxpZC1ib3JkZXI6IHJnYigxMDgsIDIwNiwgMTQxKTtcbiAgICAtLXBsYWNlaG9sZGVyOiByZ2IoMTY5LCAxNjksIDE2OSk7XG4gICAgLS1pbnB1dDogcmdiKDc4LCA3OCwgNzgpO1xufVxuXG5odG1sLFxuYm9keSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG5pbnB1dCxcbmJ1dHRvbixcbnNlbGVjdCxcbnRleHRhcmVhLFxuaW5wdXQsXG5tYWluIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbmlucHV0IHtcbiAgICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICAgJjotd2Via2l0LWF1dG9maWxsOmZvY3VzIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwcyA2MDAwMDBzLCBjb2xvciAwcyA2MDAwMDBzOyAvKiBjc3MgdHJpY2sgdG8gc3RvcCBhdXRvZmlsIGJlaGF2aW9yICovXG4gICAgfVxufVxuXG5ib2R5IHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbi1mb250KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblxuICAgIG1heC13aWR0aDogMTA2NXB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbnRoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxudHIge1xuICAgIGJvcmRlci1ib3R0b206IDAuNXJlbSBzb2xpZCB3aGl0ZTtcbn1cblxudHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1iZyk7XG59XG5cbnRyOm50aC1jaGlsZChvZGQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodGVyLWJnKTtcbn1cblxudGQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5cbmEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0taGlnaGxpZ2h0KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tbWVkaXVtKTtcbiAgICB9XG59XG5cbmxpIHtcbiAgICBtYXJnaW46IDVweCAwO1xufVxuXG5oMSxcbmgyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbmltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG59XG5cbmJ1dHRvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWJnKTtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDMycHg7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDMycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTVweDtcblxuICAgICYgLmxvZ28ge1xuICAgICAgICBtaW4td2lkdGg6IDE2NXB4O1xuICAgIH1cblxuICAgICYgLmhlYWRlci10ZXh0LWxvZ28tbmF2YmFyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZW5kO1xuICAgICAgICBnYXA6IDI1cHg7XG5cbiAgICAgICAgJiAud2Vic2l0ZS1uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1tZWRpdW0pO1xuICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJiAubmF2YmFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmIC5uYXZidG4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMTVweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGlnaGxpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxubWFpbiB7XG4gICAgYm9yZGVyOiA0cHggc29saWQgdmFyKC0tZGFyay1iZyk7XG4gICAgYm9yZGVyLXJhZGl1czogMzJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgb3ZlcmZsb3cteTogMTAwdmg7XG59XG5cbmZvb3RlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFyay1iZyk7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDMycHg7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMzJweDtcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTVweDtcblxuICAgICYgLmxlZ2FsLXdhcm5pbmcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICYgLmxlZ2FsLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYgLmxlZ2FsLXR4dCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZXh0cmEtc21hbGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiAuZm9vdGVyLWNvcHlyaWdodC1jb25kaXRpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgICYgLmNvcHlyaWdodCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWV4dHJhLXNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb25kaXRpb25zLWxpbmtzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc21hbGwpO1xuXG4gICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmID4gYTpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uZmxleC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4vKiBVc3VhbGx5IHN1cnJvdW5kZWQgYnkgLmZsZXgtY29udGFpbmVyLFxuY29udGFpbiAyIGVsZW1lbnQ6XG4tIGxhYmVsXG4tIGlucHV0IChvZiB3aGF0ZXZlciB0eXBlKSAqL1xuLmlucHV0LWdyb3VwIHtcbiAgICBtaW4td2lkdGg6IDI1MHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDE1cHg7XG5cbiAgICBmbGV4LWJhc2lzOiBjYWxjKDEwMCUgLyAyLjIpO1xufVxuXG4uaW5wdXQtZ3JvdXAgaW5wdXQsXG4uaW5wdXQtZ3JvdXAgdGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiB2YXIoLS1pbnB1dCk7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbWVkaXVtKTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1oaWdobGlnaHQpO1xuICAgIH1cbn1cblxuLmlucHV0LWdyb3VwIHNlbGVjdCB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcmstYmcpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLW1lZGl1bSk7XG4gICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1yYWRpdXMgMXMgZWFzZTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWhpZ2hsaWdodCk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIzcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiAwcyBlYXNlIDBzO1xuICAgIH1cbn1cblxuLmlucHV0LWdyb3VwIGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMnB4O1xuICAgIGxlZnQ6IDVweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uaW5wdXQtZ3JvdXA6aGFzKGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSkgbGFiZWwge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG4uaW5wdXQtZ3JvdXA6aGFzKGZpZWxkc2V0KSBsYWJlbCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4uY2hlY2tib3gtZ3JpZCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4udGV4dC1kaXNwbGF5LWluLWlucHV0LWdyb3VwIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbi5pbnB1dC1ncm91cDpoYXMoc2VsZWN0KSBsYWJlbCB7XG4gICAgYWxsOiB1bnNldDtcbn1cblxuLmlucHV0LWdyb3VwLnZlcnRpY2FsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiA1ZW07IC8qIE9wdGlvbmFsIHNwYWNpbmcgYmV0d2VlbiBncm91cHMgKi9cbn1cbiIsIi5jb25uZWN0aW9uLWltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubG9naW4tZm9ybSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubG9naW4tYWxlcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFsZXJ0LWJnKTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1hbGVydC1ib3JkZXIpO1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5ncm91cC1zbWFsbC1idXR0b25zIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLmNvcHktaWNvbiB7XG4gICAgaGVpZ2h0OiAwLjlyZW07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnRleHQtdG8tY29weSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIC1tcy13b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLmNvbnRhaW5lci1tYWlsLXNlbnQtYWxlcnQge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLm1haWwtc2VudC1hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmFsaWQtYmcpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXZhbGlkLWJvcmRlcik7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4iLCIuY2xpZW50LW5hbWUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tYmlnZ2VyKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNsaWVudC1waWN0dXJlIHtcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgIG1heC1oZWlnaHQ6IDI1MHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLW1lZGl1bSlcbn1cbiIsIi5iaWctYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbi1mb250KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12YWxpZC1iZyk7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tdmFsaWQtYm9yZGVyKTtcbiAgICBjb2xvcjogYmxhY2s7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWJpZyk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuM3JlbTtcbiAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG5cbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgcGFkZGluZzogMTBweCA1cHg7XG4gICAgbWFyZ2luOiAyMHB4O1xuICAgIG1pbi13aWR0aDogNDAlO1xuICAgIFxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12YWxpZC1iZy1ob3Zlcik7XG4gICAgICAgIGJveC1zaGFkb3c6IDJweCAxcHggMXB4IGxpZ2h0Z3JleTtcbiAgICAgICAgdHJhbnNpdGlvbjogMTUwbXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12YWxpZC1iZy1ob3Zlcik7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogaW5zZXQ7XG4gICAgICAgIG91dGxpbmUtd2lkdGg6IDFweDtcbiAgICAgICAgb3V0bGluZS1jb2xvcjogd2hpdGU7XG4gICAgICAgIHRleHQtc2hhZG93OiAtMXB4IC0xcHggMCB2YXIoLS12YWxpZC1ib3JkZXIpXG4gICAgfVxuXG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbi5zbWFsbC1idXR0b25zLWNvbnRhaW5lci1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxNXB4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJj4uc21hbGwtYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLnNtYWxsLWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGlnaGxpZ2h0KTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIFxuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiA1cHggMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIFxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLW1lZGl1bSk7XG4gICAgfVxuXG4gICAgJi5tYXJnaW4tdG9wLTE1IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICB9XG59XG5cbi5jaXJjdWxhci1idXR0b24ge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgcGFkZGluZzogMDsgXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtYXJnaW46IGF1dG87XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmPmltZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDI1cHg7XG4gICAgICAgIG1heC13aWR0aDogMjVweDtcbiAgICB9XG59XG4iLCJ0YWJsZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbi50YWJsZS1jb250YWluZXIge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi50d28tY29sLXRhYmxlIHRoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZzogNXB4IDE1cHg7XG59XG5cbi50ZC1hY3Rpb25zIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnRkLXRleHQtaW5mbyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxudHJbZGF0YS1ocmVmXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG50cltkYXRhLWhyZWZdOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWJnKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgaGVpZ2h0OiBjYWxjKGluaGVyaXQgLSAxMjBweCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWVkaXVtKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogMTVweDtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24ge1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci1idXR0b246dmVydGljYWw6c3RhcnQ6ZGVjcmVtZW50LFxuOjotd2Via2l0LXNjcm9sbGJhci1idXR0b246dmVydGljYWw6ZW5kOmluY3JlbWVudCxcbjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uOmhvcml6b250YWw6c3RhcnQ6ZGVjcmVtZW50LFxuOjotd2Via2l0LXNjcm9sbGJhci1idXR0b246aG9yaXpvbnRhbDplbmQ6aW5jcmVtZW50IHtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG59XG4iLCIucGljdG9ncmFtX3RyYW5zZm9ybV90ZXh0X3RvX2ltYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMXB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5waWN0b2dyYW1fdHJhbnNmb3JtX3RleHRfdG9faW1hZ2UgbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAwO1xufVxuXG4ucGljdG9ncmFtLWltZyB7XG4gICAgaGVpZ2h0OiA4MXB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLnNlbGVjdGVkLWljb24ge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5yYWRpby1ncm91cCB7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnN1YmZvcm0tY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1iZyk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgbWFyZ2luOiA1cHggMDtcblxuICAgICYgbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1iZyk7XG4gICAgfVxuXG4gICAgJiBpbnB1dCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWJnKTtcbiAgICB9XG59XG5cbi5zdWJmb3JtLWhlYWRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgICYgLmRlbGV0ZS1zdWJmb3JtIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICB9XG59XG5cbi5zdWJmb3JtLXN1bW1hcnkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuXG4gICAgZmxleC1ncm93OiAxO1xufVxuXG4uc3ViZm9ybS1kZXRhaWxzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbn1cblxuLmNvbGxhcHNlLWljb24ge1xuICAgIG1hcmdpbjogMTVweDtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDcwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi50b2dnbGUtY29sbGFwc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxufVxuXG4ubGlzdC1tb2R1bGVzLWJ1dHRvbnMge1xuICAgIG1hcmdpbjogMTVweCAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDE1cHg7XG5cbiAgICAmID4gKiB7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICB9XG5cbiAgICAmID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cbn1cblxuLmR5bmFtaWMtbm90ZXMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmZvcm0tc3VtbWFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbn1cblxuLmN1c3RvbS10b29sdGlwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBmb250LXNpemU6IHZhcigtLWV4dHJhLXNtYWxsKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1iZyk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1iZyk7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucmFuZ2UtcGFpci1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxNXB4O1xuXG4gICAgJiA+IGlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMHB4O1xuICAgIH1cbn1cbiIsInRleHRhcmVhIHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgcmVzaXplOiBub25lO1xufVxuXG5maWVsZHNldCB7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbWVkaXVtKTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDVweDtcblxuICAgICY6aGFzKGlucHV0OmZvY3VzLCBpbnB1dDphY3RpdmUpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1oaWdobGlnaHQpO1xuICAgIH1cbn1cblxuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogMTVweCAwO1xufVxuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbn1cblxuaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgaW1nICsgaW1nIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgaW1nIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4udGV4dC1kaXNwbGF5LWluLWlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi50ZXh0LWRpc3BsYXktaW4taW5wdXQtZ3JvdXAgPiBkaXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50ZXh0LWRpc3BsYXktaW4taW5wdXQtZ3JvdXAgbGFiZWwsXG4udGV4dC1kaXNwbGF5LWluLWlucHV0LWdyb3VwIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG5pbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLmNoZWNrYm94LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5jaGVja2JveC1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTtcbiAgICBnYXA6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmNoZWNrYm94LWdyaWQgPiBkaXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbn1cblxuLmNoZWNrYm94LWdyaWQgbGFiZWwsIFxuLmNoZWNrYm94LWdyaWQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5maWVsZHNldCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW5wdXQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgd2lkdGg6IDk3JTtcbn1cblxuZmllbGRzZXQgbGVnZW5kIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogSW1wcm92ZSBjaGVja2JveCBhbGlnbm1lbnQgKi9cbi50ZXh0LWRpc3BsYXktaW4taW5wdXQtZ3JvdXAgbGFiZWwge1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnRleHQtZGlzcGxheS1pbi1pbnB1dC1ncm91cCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xufVxuXG4vKiBGaXggZm9yIFN5bWZvbnkncyBkZWZhdWx0IGNoZWNrYm94IHJlbmRlcmluZyAqL1xuLnRleHQtZGlzcGxheS1pbi1pbnB1dC1ncm91cCAuZm9ybS1jaGVjayB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbn1cblxuI25hbWVkZXRhaWxzLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgICAgICAvKiB3cmFwIG9udG8gbXVsdGlwbGUgbGluZXMgaWYgbmVlZGVkICovXG4gICAgZ2FwOiAxcmVtOyAgICAgICAgICAgIC8qIHNwYWNlIGJldHdlZW4gZWFjaCBjaGVja2JveOKAkGxhYmVsIHBhaXIgKi9cbiAgfVxuICBcbiAgLmNoZWNrYm94LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBwdXQgYm94ICsgbGFiZWwgb24gb25lIGxpbmUgKi9cbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyAgLyogdmVydGljYWxseSBjZW50ZXIgYm94L3RleHQgKi9cbiAgICBnYXA6IDAuNXJlbTsgICAgICAgICAgLyogc3BhY2UgYmV0d2VlbiB0aGUgYm94IGFuZCBpdHMgdGV4dCAqL1xuICB9XG4gIFxuICAubW9kYWwgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgLm1vZGFsLnNob3cgeyBkaXNwbGF5OiBibG9jazsgfVxuXG5cbiIsIkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAuaGVhZGVyLXRleHQtbG9nby1uYXZiYXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLndlYnNpdGUtbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiW2RhdGEtbG9hZGluZz1cIlwiXSxbZGF0YS1sb2FkaW5nPXNob3ddLFtkYXRhLWxvYWRpbmc9ZGVsYXlcXHxzaG93XXtkaXNwbGF5Om5vbmV9Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/