/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap);
/*!******************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css (1) ***!
  \******************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Ephesis&family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap);
/*!******************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css (2) ***!
  \******************************************************************************************************************/
/* Import des polices */

/************************************** Règles générales ******************************/
body {
    margin: 0;
    font-family: "Roboto", sans-serif;
    font-weight: 400;
    font-optical-sizing: auto;
    font-style: normal;
    color: #000 !important;
    background-color: #FFFFFF !important;
}

#page-wrapper>main {
    min-height: 62.95vh;
}

/*boutons*/

/* Base bouton - moderne et élégant */
.btn {
    display: inline-block;
    height: auto;
    padding: 12px 30px;
    border-radius: 40px;
    /* plus arrondi */
    font-weight: 600;
    font-size: 1rem;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    user-select: none;
    transition:
        background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
        color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow 0.3s ease,
        transform 0.2s ease;
    box-shadow: 0 6px 15px rgba(100, 139, 127, 0.3);
    border: none;
    outline-offset: 4px;
}

/* Effet clic (active) : léger "enfoncement" */
.btn:active {
    transform: translateY(2px);
    box-shadow: 0 3px 6px rgba(100, 139, 127, 0.2);
}

/* Focus accessible */
.btn:focus-visible {
    outline: 3px solid #3B574D;
    outline-offset: 6px;
}

/* === Bouton Primary === */
.btn-primary {
    background: linear-gradient(135deg, #648B7F 0%, #4B6A61 100%);
    color: #fff;
    box-shadow: 0 8px 20px rgba(100, 139, 127, 0.5);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.btn-primary:hover {
    background: linear-gradient(135deg, #4B6A61 0%, #3B574D 100%);
    box-shadow: 0 12px 30px rgba(59, 87, 77, 0.6);
    color: #E0F0E9;
    transform: translateY(-2px);
}

/* === Bouton Danger === */
.btn-danger {
    background: linear-gradient(135deg, #D9534F 0%, #B43732 100%);
    color: #fff;
    box-shadow: 0 8px 20px rgba(217, 83, 79, 0.5);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.btn-danger:hover {
    background: linear-gradient(135deg, #B43732 0%, #8F2A25 100%);
    box-shadow: 0 12px 30px rgba(143, 42, 37, 0.7);
    color: #FFD1D0;
    transform: translateY(-2px);
}

/* === Bouton Outline Primary === */
.btn-primary-outline {
    background: transparent;
    color: #648B7F;
    border: 2px solid #648B7F;
    box-shadow: none;
}

.btn-primary-outline:hover {
    background: #648B7F;
    color: #fff;
    box-shadow: 0 8px 25px rgba(100, 139, 127, 0.5);
    transform: translateY(-2px);
}

/* === Bouton Outline Danger === */
.btn-danger-outline {
    background: transparent;
    color: #D9534F;
    border: 2px solid #D9534F;
    box-shadow: none;
}

.btn-danger-outline:hover {
    background: #D9534F;
    color: #fff;
    box-shadow: 0 8px 25px rgba(217, 83, 79, 0.5);
    transform: translateY(-2px);
}

/* === Bouton Secondary === */
.btn-secondary {
    background-color: rgba(0, 0, 0, 0.1);
    color: #333;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    border: none;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.btn-secondary:hover {
    background-color: rgba(0, 0, 0, 0.2);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
    color: #fff;
    transform: translateY(-2px);
}

/* === Bouton Outline Secondary === */
.btn-secondary-outline {
    background: transparent;
    color: #fff;
    border: 2px solid #fff;
    box-shadow: none;
}

.btn-secondary-outline:hover {
    background: #fff;
    color: #648B7F;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.6);
    transform: translateY(-2px);
}

/* === Classe centrage bouton retour === */
.button-return {
    justify-self: center;
}

/*pagination*/


.pagination {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    padding: 0;
    margin: 30px 0;
    list-style: none;
}

/* Liens de pagination */
.pagination li>a,
.pagination li>span {
    display: inline-block;
    padding: 10px 22px;
    border-radius: 40px !important;
    font-weight: 600;
    font-size: 1rem;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    user-select: none;
    transition:
        background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
        color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow 0.3s ease,
        transform 0.2s ease;
    outline-offset: 4px;
    color: #648B7F;
    background: transparent;
    border: 2px solid #648B7F;
}

/* Lien actif (page en cours) */
.pagination li.active>span {
    background: linear-gradient(135deg, #648B7F 0%, #4B6A61 100%);
    color: #fff;
    box-shadow: 0 8px 20px rgba(100, 139, 127, 0.5);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

/* Lien survolé */
.pagination li>a:hover {
    background: #648B7F;
    color: #fff;
    box-shadow: 0 8px 25px rgba(100, 139, 127, 0.5);
    transform: translateY(-2px);
}

/* Lien désactivé */
.pagination li.disabled>span,
.pagination li.disabled>a {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}


.page-item:last-child .page-link {
    border-top-right-radius: 30px !important;
    border-bottom-right-radius: 30px !important;
}

.page-item:first-child .page-link {
    border-top-left-radius: 30px !important;
    border-bottom-left-radius: 30px !important;
}

/*blocks*/

.block {
    text-align: center;
    padding: 50px 0;
}

.block-primary {
    background-color: #648B7F33;
}

/*couverture page d'accueil*/

/* couverture page d'accueil */
.image-couverture {
    position: relative;
    width: 30%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.background-image {
    display: block;
    height: auto;
}

.overlay-logo {
    color: #FFFFFF;
    text-align: center;
    position: absolute;
    top: 33%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    width: 100%;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
    font-family: "Ephesis", sans-serif;
    font-size: 6vw;
}

/* Responsive tablette */
@media (max-width: 767px) {
    .overlay-logo {
        font-size: 12vw;
        top: 30%;
    }

    .image-couverture {
        width: 60%;
    }
}


/*Presentation - Accueil*/
.block-presentation {
    padding: 50px;

}

.separator {
    height: 70px;
    background-color: #648B7F;
}

.container-about>p {
    margin: 30px 0;
}

.block-presentation>div>iframe {
    border-radius: 30px;
    max-width: 90%;
}

/*Prestation - Accueil*/
.container-services {
    display: flex;
    flex-direction: row;
    max-width: 100%;
    align-self: center;
    justify-self: center;
}

.services {
    padding: 30px;
    min-height: 100%;
    width: 33%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
}

.image-services {
    height: 75px;
    margin: 20px 0;
}

/*Tarifs - Accueil*/

.block-tarifs {
    background-color: #e6edeb;
    padding: 60px 0;
    text-align: center;
}

.block-tarifs h3 {
    font-size: 2rem;
    margin-bottom: 40px;
    color: #222;
}

.container-tarifs {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
}

.tarifs {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    background-color: white;
    border-radius: 40px;
    padding: 20px;
    width: 30%;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.tarifs:hover {
    transform: translateY(-8px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12);
}

.image-tarifs {
    text-align: center;
    margin-bottom: auto;
}

.image-tarifs p {
    margin-bottom: 10px;
    font-size: 2rem;
    color: #35635e;
    font-weight: 500;
}

.image-chien {
    height: 170px;
    width: 200px;
    margin: 0;
}

.tarifs .btn {
    margin-top: auto;
    background-color: #5e887c;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 20px;
    text-decoration: none;
    font-size: 0.9rem;
    transition: background-color 0.3s ease;
}

.tarifs .btn:hover {
    background-color: #46675e;
}

/* Boutique - Accueil */

.container-boutique {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 30px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px;
    border-radius: 30px;
    box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.3);
}

/* L'image prend 40% de l'espace */
.photo-boutique {
    flex: 0 1 100%;
    max-width: 40%;
    height: auto;
    border-radius: 30px;
    object-fit: cover;
    box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.3);
}

/* Le bloc texte prend 60% */
.texte-boutique {
    flex: 0 1 58%;
}

/* Pour le texte */
.texte-boutique p {
    line-height: 1.6;
    text-align: justify;
    font-size: 1rem;
    color: #333;
}

@media (max-width: 768px) {
    .container-boutique {
        flex-direction: column;
        text-align: center;
    }

    .photo-boutique {
        margin-bottom: 1.5rem;
        height: 45vw;
        max-width: 100%;
    }

    .texte-boutique p {
        text-align: left;
    }
}

/*Avis - Accueil*/
.block-temoignages {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
}

.container-temoignages {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
    margin-top: 30px;
}

.temoignage {
    max-width: 1300px;
    background-color: #fff;
    padding: 20px;
    border-radius: 15px;
    flex: 1 1 300px;
    text-align: left;
    font-style: italic;
    position: relative;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.temoignage:hover {
    transform: translateY(-8px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12);
}

.temoignage span {
    display: block;
    margin-top: 10px;
    font-weight: bold;
    text-align: right;
    font-style: normal;
}

.cta-temoignages {
    text-align: center;
    margin-top: 20px;
}

/******************************************** Prestation&Services *********************************/

.page-prestation {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
}

.container-prestation {
    display: flex;
    justify-content: center;
    margin: 0;
}

.block-prestation {
    display: flex;
    flex-direction: row;
    justify-content: space-around;
}

.block-prestation img {
    width: 50%;
    margin: 30px;
    border-radius: 30px;
    box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.3);
    object-fit: cover;
}

.list-prestation {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    width: 50%;
}

.prestation {
    background-color: rgba(100, 139, 127, 0.3);
    color: #000;
    border-radius: 30px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    padding: 15px;
    margin-bottom: 20px;
}

.prestation:hover {
    transform: translateY(-8px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12);
}

.button-rendezvous {
    display: flex;
    margin: 30px;
    justify-content: center;
}


@media (max-width: 768px) {
    .block-prestation {
        flex-direction: column;
        align-items: center;
    }

    .block-prestation img {
        width: 100%;
        margin: 15px 0;
    }

    .list-prestation {
        width: 100%;
        padding: 0 15px;
    }

    .prestation {
        font-size: 0.95rem;
        padding: 12px;
    }

    .button-rendezvous {
        margin: 20px 10px;
    }

    .page-prestation .container-prestation:nth-of-type(2) .block-prestation {
        flex-direction: column-reverse;
    }

}


/******************************************** Galerie *********************************/

.image-header {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 300px;
    overflow: hidden;
    background-image: url(/build/images/chien.a8fbb323.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-color: #cccccc;
    margin: 0 0 50px 0;
    padding: 30px 0;
    text-align: center;
    font-size: 2.5rem;
}

.image-header h1 {
    color: white;
    font-size: 5rem;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
}

.popup{
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    width: 80%;
    max-width: 1600px;
    height: 80vh;
    max-height: 800px;
    border-radius: 30px;
    background-color: rgba(248, 249, 250, 0.82);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 5;
    overflow: hidden;
    transition: 1s;
    opacity: 0;
}

.popup.active {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
}

.popup.active .close-btn,
.popup.active .image-name,
.popup.active .index,
.popup.active .large-image,
.popup.active .arrow-btn {
    opacity: 1;
    transition: opacity .5s;
    transition-delay: 1s;
}

.top-bar{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 50px;
    background-color: rgb(100, 140, 129);
    color: white;
    text-align: center;
    line-height: 50px;
    font-weight: 300;
}

.image-name{
    opacity: 0;
}

.close-btn{
    opacity: 0;
    position: absolute;
    top: 15px;
    right: 30px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: #ba1b1b;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    font-size: 18px;
    font-weight: bold;
}

.arrow-btn img {
    width: 200px;
    height: 200px;
}

.arrow-btn{
    opacity: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    padding: 10px;
    border-radius: 50%;
    border: none;
    background-color: transparent;
    cursor: pointer;
}

.left-arrow {
    left: 10px;
}

.right-arrow {
    right: 10px;
    transform: translateY(-50%) rotate(180deg);
}

.index{
    position: absolute;
    bottom: 10px;
    right: 10px;
    font-size: 80px;
    font-weight: 100;
    color: rgba(255,255,255,0.4);
    opacity: 0;
}

.large-image{
    margin-top: 5%;
    width: 80%;
    height: 80%;
    object-fit: contain;
    opacity: 0;
}

@media (max-width: 768px) {
    .popup {
        width: 75vw;
        height: 75vh;
        max-height: 80vh;
        border-radius: 20px;
    }

    .popup.active {
        transform: translate(-50%, -50%) scale(1);
    }

    .top-bar {
        height: 45px;
        line-height: 45px;
        font-size: 14px;
    }

    .close-btn {
        top: 10px;
        right: 15px;
        width: 25px;
        height: 25px;
        font-size: 16px;
    }

    .large-image {
        width: 90%;
        height: 70%;
        margin-top: 8%;
        object-fit: contain;
    }

    .arrow-btn {
        position: absolute;
        top: auto;
        bottom: 20px;
        transform: none;
        width: 50px;
        height: 50px;
        background-color: rgba(0, 0, 0, 0.6);
        border-radius: 50%;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 0;
    }

    .arrow-btn:hover {
        background-color: rgba(0, 0, 0, 0.8);
    }

    .left-arrow {
        left: 20px;
        bottom: 20px;
    }

    .right-arrow {
        right: 20px;
        bottom: 20px;
        transform: rotate(180deg);
    }

    .arrow-btn img {
        width: 24px;
        height: 24px;
        filter: brightness(0) invert(1);
    }

    .index {
        font-size: 24px;
        bottom: 25px;
        right: 50%;
        left: auto;
        transform: translateX(50%);
        color: rgba(100, 139, 127, 0.87);
    }

    .gallery {
        max-width: 100%;
        margin: 30px auto;
        column-count: 3;
        column-gap: 15px;
    }

    .gallery img {
        display: block;
        width: 100%;
        height: auto;
        margin: 0 0 15px 0;
        border-radius: 30px;
        transition: 0.2s ease-in-out;
    }

    .gallery img:hover {
        transform: scale(0.9);
    }

    /**************************************** Reset Password ************************************/
    .instruction-reset-password {
        text-align: center;
    }

    .instruction-reset-password h1 {
        margin: 30px 0;
        color: rgba(100, 139, 127, 0.77);
    }

    .instruction-reset-password a {
        color: rgba(100, 139, 127, 0.77);
        font-weight: bolder;
    }

    .instruction-reset-password img {
        width: 400px;
        height: 400px;
        margin: 30px 0;
    }

    .instruction-reset-password p {
        text-align: start;
    }

    .reset-password {
        align-items: center;
        justify-content: center;
        padding: 30px;
    }

    .register h1 {
        margin: 30px;
    }

    /**************************************** Se souvenir de moi ************************************/
    .remember-me {
        margin-top: 1rem;
    }

    .remember-me .checkbox {
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .remember-me input[type="checkbox"] {
        width: 1rem;
        height: 1rem;
    }

    .remember-me label {
        margin: 0;
        font-size: 1rem;
    }

    /**************************************** Boutique ************************************/
    .favorite-icon {
        display: flex;
        border-radius: 50%;
        width: 50px;
        height: 50px;
        justify-content: center;

    }

    .favorite-icon i {
        color: rgba(100, 139, 127, 0.54);
        font-size: 30px;
    }

    .product-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 20px;
        padding: 30px;
        max-width: 1200px;
        margin: 30px auto;
    }

    .product-card {
        text-decoration: none;
        background-color: rgba(100, 139, 127, 0.38);
        border-radius: 15px;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        overflow: hidden;
        display: flex;
        flex-direction: column;
        text-align: center;
        position: relative;
        object-fit: cover;
    }

    .product-card img {
        width: 100%;
        height: 350px;
        object-fit: cover;
    }

    .card-content {
        padding: 15px;
        width: 100%;
        color: black;
    }

    .card-content h5 {
        margin: 10px 0 5px;
        font-size: 1.2rem;
        font-weight: bold;
    }

    .card-content p {
        font-size: 1rem;
        color: #ffffff;
    }

    .filter {
        display: block;
        position: sticky;
        top: 20px;
        margin: 30px;
    }

    .filter-container {
        border-radius: 8px;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
        background-color: #f8f9fa;
        padding: 30px;
        margin: 30px;
    }

    .block-filter {
        margin-top: 20px;
    }

    .pagination {
        justify-content: center;
    }

    /**************************************** Details articles ************************************/
    .fiche-product {
        display: flex;
        flex-direction: row;
        margin: 30px;
        padding: 30px;
        align-items: flex-start;


    }

    .body-product {
        display: flex;
        flex-direction: column;
        margin: 30px;
    }

    .fiche-product img {
        width: 30%;
        height: 50%;
        object-fit: cover;
        margin: 30px;

    }

    .block-info-principales {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        background-color: rgba(228, 221, 221, 0.55);
        width: 100%;
        height: 50%;
        border-radius: 30px;
        align-self: center;
    }

    .block-info-principales p,
    .bouton-favoris {
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 30px;
        padding: 30px;
        font-size: 16px;
        width: auto;
        height: 30px;
    }

    .block-info-principales p {
        font-size: 3rem;
    }

    .block-info-pratiques i,
    .bouton-favoris i {
        font-size: 20px;
        margin: 10px;
    }

    .block-info-pratiques {
        display: flex;
        flex-direction: column;
        color: rgb(100, 139, 127);
        margin: 30px 0;
    }

    /**************************************** navbar ************************************/
    /*navbar centrer*/
    .navbar-custom {
        background-color: rgb(100, 139, 127);
        padding: 20px 0;
    }

    .navbar-custom > li > a {
        color: #FFFFFF;
        background: rgba(100, 139, 127, 0.42);
    }

    .navbar-custom .nav-link {
        border: 1px solid rgb(255, 255, 255);
        border-radius: 30px;
        margin: 0 10px;
    }

    .navbar-custom .nav-link:hover {
        background: rgb(255, 255, 255);
        color: rgba(100, 139, 127, 0.77);
    }

    .navbar-custom > li > a:hover {
        color: rgb(255, 255, 255);
    }

    .navbar-custom .nav-link:active {
        background: rgb(255, 255, 255);
        color: rgba(100, 139, 127, 0.77);
    }

    .navbar-main .dropdown-toggle::after {
        display: none !important;
        content: none !important;
    }

    /*navbar header */
    .navbar-brand img {
        height: 60px;
        margin-left: 20px;
    }

    .navbar-principale {
        display: flex;
        flex-direction: row;
        align-items: center;
    }

    .link-main-custom > a {
        color: rgba(100, 139, 127, 0.87);
    }

    .navbar-toggler {
        border: none;
        line-height: 0;
    }

    .navbar-toggler img {
        width: 70px;
        height: 60px;
    }

    .offcanvas-end {
        background-color: #648B7F;
        color: #FFFFFF;
    }

    .offcanvas-body .nav-link,
    .offcanvas-body .dropdown-item {
        color: white;
    }

    /*********************************************** prestations/Details *****************************/
    .text-details-prestations {
        text-align: center;
        margin: 30px;
    }

    .block-details-prestations {
        display: flex;
        flex-direction: row;
        justify-self: center;
        align-items: center;
    }

    .table-list {
        width: 100%;
        height: auto;
        margin: 30px;
    }

    .information-prestations-details {
        background-color: rgba(100, 139, 127, 0.48);
        border-radius: 30px;
        width: 100%;
        padding: 30px;
    }


    /*********************************************** footer *****************************/
    .footer {
        background-color: #648B7F;
        color: #FFFFFF;
        padding: 20px;
        width: 100%;
        bottom: 0;
        left: 0;

    }

    .footer-title {
        font-size: 28px;
        font-weight: bold;
        margin-bottom: 10px;
    }

    .footer-container {
        display: flex;
        flex-wrap: wrap;
        flex-direction: column;
        justify-content: space-between;
        max-width: 1200px;
        margin: auto;
    }

    .footer-block {
        display: flex;
        flex-wrap: wrap;
        flex-direction: row;
    }

    .footer-logo,
    .footer-links,
    .footer-contact {
        flex: 1;
        min-width: 200px;
        margin: 20px 0;
        text-align: center;
    }

    .footer-logo > img {
        width: 50%;
        height: 70%;
        margin: 20px 0;
    }

    .social-icons {
        display: flex;
        flex-direction: row;
        justify-content: center;
        align-items: center;
        margin-top: 10px;
        gap: 15px;
    }

    .social-icons img {
        width: 32px;
        height: 32px;
        object-fit: contain;
        transition: transform 0.2s ease;
    }

    .social-icons a img:hover {
        transform: scale(1.1);
    }

    .social-icons a {
        margin-right: 10px;
    }

    .footer-links ul {
        list-style: none;
        padding: 0;
        line-height: 1.8;
    }

    .footer-links a,
    .footer-contact a {
        color: #FFFFFF;
        text-decoration: none;
    }


    .footer-bottom {
        text-align: center;
        margin-top: 40px;
        font-size: 12px;
    }

    .footer-copyright > p {
        width: 100%;
        text-align: center;
        font-size: 12px;
    }

    /*Page formulaire de contact*/
    .title-page-contact {
        text-align: center;
        padding: 30px 0;
        font-size: 2rem;
        margin-bottom: 20px;
        color: #000000;
    }

    .title-formulaire {
        text-align: center;
    }

    .block-page {
        display: flex;
        flex-direction: row;
        margin: 30px 0;
    }

    .container-form-users,
    .container-form-product,
    .container-form-profil,
    .container-form-inscription,
    .container-form-authentification,
    .container-formulaire {
        width: 100%;
        height: 100%;
        margin: 30px;
        padding: 30px;
        border-radius: 30px;
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
        background-color: rgba(100, 139, 127, 0.38);
    }

    .container-form-users,
    .container-form-product,
    .container-form-profil,
    .container-form-inscription,
    .container-form-authentification {
        width: 50%;
        height: auto;
        justify-self: center;
    }

    .container-profil {
        background-color: #648B7F;
    }

    .title-formulaire h1 {
        margin: 30px;
        text-align: center;
    }

    form label {
        display: block;
        font-weight: 600;
        margin-bottom: 5px;
        color: rgb(0, 0, 0);
    }

    .checkbox {
        display: flex;
        flex-direction: row;
    }

    form input[type="firstname"],
    form input[type="lastname"],
    form input[type="text"],
    form input[type="email"],
    form input[type="tel"],
    form input[type="phoneNumber"],
    form input[type="password"],
    form textarea,
    form select {
        width: 100%;
        padding: 12px;
        margin-bottom: 20px;
        border: 1px solid rgba(100, 139, 127, 0.42);
        border-radius: 10px;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
    }

    form input:focus,
    form textarea:focus,
    form select:focus {
        border-color: #648b7f;
        outline: none;
    }

    form textarea {
        resize: vertical;
        min-height: 120px;
    }

    form button,
    form input[type="submit"] {
        width: 100%;
        padding: 12px;
        background-color: rgba(100, 139, 127, 0.58);
        color: white;
        border: none;
        border-radius: 10px;
        cursor: pointer;
        font-size: 1rem;
        transition: background-color 0.3s ease;
    }

    form button:hover,
    form input[type="submit"]:hover {
        background-color: #f1eaea;
    }

    .container-informations {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 70%;
        margin: 30px;
        border-radius: 30px;
    }

    .block-informations {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
        border: 1px solid rgba(100, 139, 127, 0.42);
        border-radius: 30px;
        margin-bottom: 30px;
        width: 100%;
        height: 100%;
    }

    .title-informations {
        font-size: 1.8rem;
        color: #648b7f;
        margin-top: 15px;
        margin-bottom: 15px;

    }

    /*************************************** Details prestations tailles chien ***********************************************/
    .page-header {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        margin: 0 300px;
    }

    .page-header img {
        margin: 30px;
    }

    .title-paragraphe {
        display: flex;
        flex-direction: column;
        margin: 50px;
    }

    .tableau-tailles {
        width: 50%;
        border-collapse: collapse;
        margin: 2rem 0;
        background: rgba(100, 139, 127, 0.07);
    }

    .tableau-tailles th,
    .tableau-tailles td {
        border: 1px solid rgb(0, 0, 0);
        padding: 12px;
        text-align: left;
    }

    .tableau-tailles thead {
        background: rgba(100, 139, 127, 0.47);
    }

    .tableau-tailles th[scope="row"] {
        font-weight: bold;
        background: rgba(100, 139, 127, 0.71);
    }

    /*Tableau petit chien */
    .tableau-grands-chiens,
    .tableau-chiens-moyens,
    .tableau-petits-chiens {
        width: 100%;
        max-width: 700px;
        margin: 30px;
        border-collapse: collapse;
        background-color: #fffdf7;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
        justify-self: center;
    }

    .tableau-grands-chiens caption,
    .tableau-chiens-moyens caption,
    .tableau-petits-chiens caption {
        font-size: 1.4rem;
        font-weight: bold;
        padding: 1rem;
        background-color: rgba(100, 139, 127, 0.37);
        color: #000000;
    }

    .tableau-grands-chiens th,
    .tableau-grands-chiens td,
    .tableau-chiens-moyens th,
    .tableau-chiens-moyens td,
    .tableau-petits-chiens th,
    .tableau-petits-chiens td {
        padding: 1rem;
        text-align: left;
        border-bottom: 1px solid #f0e5d8;
    }

    .tableau-grands-chiens th,
    .tableau-chiens-moyens th,
    .tableau-petits-chiens th {
        background-color: rgba(100, 139, 127, 0.44);
        color: #000000;
        font-size: 1.1rem;
    }

    .tableau-grands-chiens td small,
    .tableau-chiens-moyens td small,
    .tableau-petits-chiens td small {
        color: #000000;
        display: block;
        margin-top: 0.2rem;
    }

    .block-tarifs-grandChien,
    .block-tarifs-chienMoyen,
    .block-tarifs-petitChien {
        width: 100%;
        align-items: center;
        display: flex;
        flex-direction: column;
    }

    .block-informations-prestations {
        justify-self: center;
    }

    /*************************************** Wishlist ***********************************************/
    .block-intro {
        margin: 30px;
    }

    .card-wishlist {
        display: flex;
        flex-direction: row;
        border-collapse: collapse;
        border: 1px solid #648B7F;
        align-self: center;
        justify-self: center;
        margin: 30px;
        border-radius: 30px;
        max-width: 1000px;
    }

    .card-wishlist img {
        width: 100px;
        height: 100px;
        margin: 30px;
    }

    .card-wishlist-body {
        align-self: center;
    }

    /*************************************** contact ***********************************************/
    .block-map {
        color: #FFFFFF;
        text-align: center;
        background-color: rgba(100, 139, 127, 0.54);
        border-radius: 30px;
    }

    .block-map > iframe {
        border-radius: 30px;
        width: 100%;
    }

    .block-map p {
        margin: 15px 0;
    }

    .container-communications {
        display: flex;
        justify-content: center;
        margin-bottom: 30px;

    }

    .container-contact {
        max-width: 1200px;
        margin: auto;
        padding: 40px 20px;
    }

    .block-communications {
        background-color: rgba(100, 139, 127, 0.87);
        border-radius: 30px;
        display: flex;
        flex-direction: row;
        justify-content: space-around;
        align-items: center;
        padding: 20px 30px;
        width: 100%;
        color: white;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    }

    .block-communications p {
        padding: 0;
        margin: 0;
    }

    /*************************************** Liste des utilisateurs ***********************************************/
    .table-utilisateurs {
        width: 50%;
        justify-self: center;
        margin: 30px;
        border: 1px solid #648B7F;

    }

    .table-utilisateurs th {
        background-color: rgba(100, 139, 127, 0.9);
    }

    .table-utilisateurs td {
        background-color: rgba(100, 139, 127, 0.25);
    }

    /* Responsive - Prestations & Services */
    /* Responsive - Contact */
    @media (max-width: 866px) {
        .block-page {
            flex-direction: column;
            align-items: center;
            margin-bottom: 30px;
            justify-content: center;
        }

        .container-formulaire,
        .container-map img,
        .container-informations {
            width: 100%;
        }

        .block-communications {
            flex-direction: column;
            gap: 10px;
        }

        .title-page-contact {
            font-size: 2rem;
        }

        /* Responsive - Boutique */
        @media (max-width: 866px) {
            .image-header H1 {
                font-size: 3rem;
            }

            .product-grid {
                display: grid;
                grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
                gap: 20px;
                padding: 30px;
                max-width: 1200px;
                margin: auto;
            }
        }

        /* Responsive - details products */
        @media (max-width: 768px) {
            .fiche-product {
                flex-direction: column;
                margin: 15px;
                padding: 15px;
            }

            .fiche-product h1 {
                text-align: center;
            }

            .fiche-product img {
                width: 100%;
                max-width: 100%;
                height: auto;
            }

            .block-info-principales {
                flex-direction: column;
                align-items: center;
                padding: 30px;
            }

            .block-info-principales p {
                font-size: 1.8rem;
            }

            .bouton-favoris {
                width: 100%;
                justify-content: center;
            }
        }

        /************************************responsive***********************************/
        /****Accueil****/
        /*Accueil Services*/
        @media (max-width: 768px) {
            .container-services {
                flex-direction: column;
                align-items: center;
                gap: 20px;
            }

            .services {
                width: 80%;
                margin: 0 auto;
            }
        }

        /* Accueil Tarifs*/
        @media (max-width: 768px) {
            .container-tarifs {
                flex-direction: column;
                align-items: center;
                gap: 20px;
            }

            .tarifs {
                width: 80%;
                margin: 0 auto;
            }
        }

        /* Accueil Boutique
        @media (max-width: 768px) {
            .container-boutique {
                flex-direction: column;
                align-items: center;
                gap: 20px;
            }
            .photo-boutique {
                width: 100%;
                height: auto;
                margin: 0 0 20px 0;
            }
        } */
        /****Gallery****/
        @media (max-width: 767px) {
            .gallery {
                column-count: 1;
            }

            .gallery img {
                object-fit: cover;
                height: 100%;
            }
        }

        /****footer****/
        @media (max-width: 768px) {
            .footer-block {
                flex-direction: column;
                text-align: center;
                gap: 80px;
            }

            .footer-logo,
            .footer-links,
            .footer-contact {
                min-width: auto;
                margin: 10px;
            }
        }

        /****NavBar****/
        @media (max-width: 768px) {
            .navbar-principale {
                flex-direction: column;
                align-items: flex-start;
            }

            .navbar-toggler img {
                width: 50px;
                height: 50px;
            }

            .link-main-custom > a {
                padding: 0.5rem 1rem;
                display: block;
                width: 100%;
            }

        }


    }

}
.container>form {
    padding: 30px;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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O1FBRUo7OztJQUdKOztBQUVKO0FBQ0E7SUFDSSxhQUFhO0FBQ2pCLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2FwcC5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyogSW1wb3J0IGRlcyBwb2xpY2VzICovXHJcbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVJvYm90bytDb25kZW5zZWQ6aXRhbCx3Z2h0QDAsMTAwLi45MDA7MSwxMDAuLjkwMCZmYW1pbHk9Um9ib3RvOml0YWwsd2dodEAwLDEwMC4uOTAwOzEsMTAwLi45MDAmZGlzcGxheT1zd2FwJyk7XHJcbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUVwaGVzaXMmZmFtaWx5PVJvYm90bytDb25kZW5zZWQ6aXRhbCx3Z2h0QDAsMTAwLi45MDA7MSwxMDAuLjkwMCZmYW1pbHk9Um9ib3RvOml0YWwsd2dodEAwLDEwMC4uOTAwOzEsMTAwLi45MDAmZGlzcGxheT1zd2FwJyk7XHJcblxyXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogUsOoZ2xlcyBnw6luw6lyYWxlcyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmJvZHkge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIHNhbnMtc2VyaWY7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZm9udC1vcHRpY2FsLXNpemluZzogYXV0bztcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbiNwYWdlLXdyYXBwZXI+bWFpbiB7XHJcbiAgICBtaW4taGVpZ2h0OiA2Mi45NXZoO1xyXG59XHJcblxyXG4vKmJvdXRvbnMqL1xyXG5cclxuLyogQmFzZSBib3V0b24gLSBtb2Rlcm5lIGV0IMOpbMOpZ2FudCAqL1xyXG4uYnRuIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIHBhZGRpbmc6IDEycHggMzBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XHJcbiAgICAvKiBwbHVzIGFycm9uZGkgKi9cclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIHRyYW5zaXRpb246XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwLjRzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksXHJcbiAgICAgICAgY29sb3IgMC40cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLFxyXG4gICAgICAgIGJveC1zaGFkb3cgMC4zcyBlYXNlLFxyXG4gICAgICAgIHRyYW5zZm9ybSAwLjJzIGVhc2U7XHJcbiAgICBib3gtc2hhZG93OiAwIDZweCAxNXB4IHJnYmEoMTAwLCAxMzksIDEyNywgMC4zKTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIG91dGxpbmUtb2Zmc2V0OiA0cHg7XHJcbn1cclxuXHJcbi8qIEVmZmV0IGNsaWMgKGFjdGl2ZSkgOiBsw6lnZXIgXCJlbmZvbmNlbWVudFwiICovXHJcbi5idG46YWN0aXZlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCAzcHggNnB4IHJnYmEoMTAwLCAxMzksIDEyNywgMC4yKTtcclxufVxyXG5cclxuLyogRm9jdXMgYWNjZXNzaWJsZSAqL1xyXG4uYnRuOmZvY3VzLXZpc2libGUge1xyXG4gICAgb3V0bGluZTogM3B4IHNvbGlkICMzQjU3NEQ7XHJcbiAgICBvdXRsaW5lLW9mZnNldDogNnB4O1xyXG59XHJcblxyXG4vKiA9PT0gQm91dG9uIFByaW1hcnkgPT09ICovXHJcbi5idG4tcHJpbWFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjQ4QjdGIDAlLCAjNEI2QTYxIDEwMCUpO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBib3gtc2hhZG93OiAwIDhweCAyMHB4IHJnYmEoMTAwLCAxMzksIDEyNywgMC41KTtcclxuICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG59XHJcblxyXG4uYnRuLXByaW1hcnk6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzRCNkE2MSAwJSwgIzNCNTc0RCAxMDAlKTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTJweCAzMHB4IHJnYmEoNTksIDg3LCA3NywgMC42KTtcclxuICAgIGNvbG9yOiAjRTBGMEU5O1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xyXG59XHJcblxyXG4vKiA9PT0gQm91dG9uIERhbmdlciA9PT0gKi9cclxuLmJ0bi1kYW5nZXIge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0Q5NTM0RiAwJSwgI0I0MzczMiAxMDAlKTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgYm94LXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDIxNywgODMsIDc5LCAwLjUpO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbn1cclxuXHJcbi5idG4tZGFuZ2VyOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNCNDM3MzIgMCUsICM4RjJBMjUgMTAwJSk7XHJcbiAgICBib3gtc2hhZG93OiAwIDEycHggMzBweCByZ2JhKDE0MywgNDIsIDM3LCAwLjcpO1xyXG4gICAgY29sb3I6ICNGRkQxRDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XHJcbn1cclxuXHJcbi8qID09PSBCb3V0b24gT3V0bGluZSBQcmltYXJ5ID09PSAqL1xyXG4uYnRuLXByaW1hcnktb3V0bGluZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiAjNjQ4QjdGO1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgIzY0OEI3RjtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeS1vdXRsaW5lOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICM2NDhCN0Y7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI1cHggcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjUpO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xyXG59XHJcblxyXG4vKiA9PT0gQm91dG9uIE91dGxpbmUgRGFuZ2VyID09PSAqL1xyXG4uYnRuLWRhbmdlci1vdXRsaW5lIHtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgY29sb3I6ICNEOTUzNEY7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjRDk1MzRGO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuLmJ0bi1kYW5nZXItb3V0bGluZTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRDk1MzRGO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHJnYmEoMjE3LCA4MywgNzksIDAuNSk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XHJcbn1cclxuXHJcbi8qID09PSBCb3V0b24gU2Vjb25kYXJ5ID09PSAqL1xyXG4uYnRuLXNlY29uZGFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICBjb2xvcjogIzMzMztcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG59XHJcblxyXG4uYnRuLXNlY29uZGFyeTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xyXG59XHJcblxyXG4vKiA9PT0gQm91dG9uIE91dGxpbmUgU2Vjb25kYXJ5ID09PSAqL1xyXG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIHtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuLmJ0bi1zZWNvbmRhcnktb3V0bGluZTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgY29sb3I6ICM2NDhCN0Y7XHJcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC42KTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcclxufVxyXG5cclxuLyogPT09IENsYXNzZSBjZW50cmFnZSBib3V0b24gcmV0b3VyID09PSAqL1xyXG4uYnV0dG9uLXJldHVybiB7XHJcbiAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcclxufVxyXG5cclxuLypwYWdpbmF0aW9uKi9cclxuXHJcblxyXG4ucGFnaW5hdGlvbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZ2FwOiAxMHB4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1hcmdpbjogMzBweCAwO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLyogTGllbnMgZGUgcGFnaW5hdGlvbiAqL1xyXG4ucGFnaW5hdGlvbiBsaT5hLFxyXG4ucGFnaW5hdGlvbiBsaT5zcGFuIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmc6IDEwcHggMjJweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDQwcHggIWltcG9ydGFudDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIHRyYW5zaXRpb246XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwLjRzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksXHJcbiAgICAgICAgY29sb3IgMC40cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLFxyXG4gICAgICAgIGJveC1zaGFkb3cgMC4zcyBlYXNlLFxyXG4gICAgICAgIHRyYW5zZm9ybSAwLjJzIGVhc2U7XHJcbiAgICBvdXRsaW5lLW9mZnNldDogNHB4O1xyXG4gICAgY29sb3I6ICM2NDhCN0Y7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICM2NDhCN0Y7XHJcbn1cclxuXHJcbi8qIExpZW4gYWN0aWYgKHBhZ2UgZW4gY291cnMpICovXHJcbi5wYWdpbmF0aW9uIGxpLmFjdGl2ZT5zcGFuIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2NDhCN0YgMCUsICM0QjZBNjEgMTAwJSk7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjUpO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbn1cclxuXHJcbi8qIExpZW4gc3Vydm9sw6kgKi9cclxuLnBhZ2luYXRpb24gbGk+YTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjNjQ4QjdGO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHJnYmEoMTAwLCAxMzksIDEyNywgMC41KTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcclxufVxyXG5cclxuLyogTGllbiBkw6lzYWN0aXbDqSAqL1xyXG4ucGFnaW5hdGlvbiBsaS5kaXNhYmxlZD5zcGFuLFxyXG4ucGFnaW5hdGlvbiBsaS5kaXNhYmxlZD5hIHtcclxuICAgIG9wYWNpdHk6IDAuNDtcclxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuXHJcbi5wYWdlLWl0ZW06bGFzdC1jaGlsZCAucGFnZS1saW5rIHtcclxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMzBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFnZS1pdGVtOmZpcnN0LWNoaWxkIC5wYWdlLWxpbmsge1xyXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMzBweCAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMzBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4vKmJsb2NrcyovXHJcblxyXG4uYmxvY2sge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogNTBweCAwO1xyXG59XHJcblxyXG4uYmxvY2stcHJpbWFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQ4QjdGMzM7XHJcbn1cclxuXHJcbi8qY291dmVydHVyZSBwYWdlIGQnYWNjdWVpbCovXHJcblxyXG4vKiBjb3V2ZXJ0dXJlIHBhZ2UgZCdhY2N1ZWlsICovXHJcbi5pbWFnZS1jb3V2ZXJ0dXJlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAzMCU7XHJcbiAgICBtYXgtd2lkdGg6IDEyMDBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4uYmFja2dyb3VuZC1pbWFnZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogYXV0bztcclxufVxyXG5cclxuLm92ZXJsYXktbG9nbyB7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMzMlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgei1pbmRleDogMjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdGV4dC1zaGFkb3c6IDJweCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC43KTtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkVwaGVzaXNcIiwgc2Fucy1zZXJpZjtcclxuICAgIGZvbnQtc2l6ZTogNnZ3O1xyXG59XHJcblxyXG4vKiBSZXNwb25zaXZlIHRhYmxldHRlICovXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gICAgLm92ZXJsYXktbG9nbyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnZ3O1xyXG4gICAgICAgIHRvcDogMzAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5pbWFnZS1jb3V2ZXJ0dXJlIHtcclxuICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLypQcmVzZW50YXRpb24gLSBBY2N1ZWlsKi9cclxuLmJsb2NrLXByZXNlbnRhdGlvbiB7XHJcbiAgICBwYWRkaW5nOiA1MHB4O1xyXG5cclxufVxyXG5cclxuLnNlcGFyYXRvciB7XHJcbiAgICBoZWlnaHQ6IDcwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQ4QjdGO1xyXG59XHJcblxyXG4uY29udGFpbmVyLWFib3V0PnAge1xyXG4gICAgbWFyZ2luOiAzMHB4IDA7XHJcbn1cclxuXHJcbi5ibG9jay1wcmVzZW50YXRpb24+ZGl2PmlmcmFtZSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgbWF4LXdpZHRoOiA5MCU7XHJcbn1cclxuXHJcbi8qUHJlc3RhdGlvbiAtIEFjY3VlaWwqL1xyXG4uY29udGFpbmVyLXNlcnZpY2VzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5zZXJ2aWNlcyB7XHJcbiAgICBwYWRkaW5nOiAzMHB4O1xyXG4gICAgbWluLWhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiAzMyU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5pbWFnZS1zZXJ2aWNlcyB7XHJcbiAgICBoZWlnaHQ6IDc1cHg7XHJcbiAgICBtYXJnaW46IDIwcHggMDtcclxufVxyXG5cclxuLypUYXJpZnMgLSBBY2N1ZWlsKi9cclxuXHJcbi5ibG9jay10YXJpZnMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZWRlYjtcclxuICAgIHBhZGRpbmc6IDYwcHggMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmJsb2NrLXRhcmlmcyBoMyB7XHJcbiAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gICAgY29sb3I6ICMyMjI7XHJcbn1cclxuXHJcbi5jb250YWluZXItdGFyaWZzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBnYXA6IDQwcHg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbi50YXJpZnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICAgIHdpZHRoOiAzMCU7XHJcbiAgICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLCBib3gtc2hhZG93IDAuM3MgZWFzZTtcclxufVxyXG5cclxuLnRhcmlmczpob3ZlciB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG59XHJcblxyXG4uaW1hZ2UtdGFyaWZzIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XHJcbn1cclxuXHJcbi5pbWFnZS10YXJpZnMgcCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgY29sb3I6ICMzNTYzNWU7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG59XHJcblxyXG4uaW1hZ2UtY2hpZW4ge1xyXG4gICAgaGVpZ2h0OiAxNzBweDtcclxuICAgIHdpZHRoOiAyMDBweDtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLnRhcmlmcyAuYnRuIHtcclxuICAgIG1hcmdpbi10b3A6IGF1dG87XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWU4ODdjO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi50YXJpZnMgLmJ0bjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY2NzVlO1xyXG59XHJcblxyXG4vKiBCb3V0aXF1ZSAtIEFjY3VlaWwgKi9cclxuXHJcbi5jb250YWluZXItYm91dGlxdWUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAzMHB4O1xyXG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIHBhZGRpbmc6IDMwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgYm94LXNoYWRvdzogNXB4IDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxufVxyXG5cclxuLyogTCdpbWFnZSBwcmVuZCA0MCUgZGUgbCdlc3BhY2UgKi9cclxuLnBob3RvLWJvdXRpcXVlIHtcclxuICAgIGZsZXg6IDAgMSAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiA0MCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICBib3gtc2hhZG93OiA1cHggNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG59XHJcblxyXG4vKiBMZSBibG9jIHRleHRlIHByZW5kIDYwJSAqL1xyXG4udGV4dGUtYm91dGlxdWUge1xyXG4gICAgZmxleDogMCAxIDU4JTtcclxufVxyXG5cclxuLyogUG91ciBsZSB0ZXh0ZSAqL1xyXG4udGV4dGUtYm91dGlxdWUgcCB7XHJcbiAgICBsaW5lLWhlaWdodDogMS42O1xyXG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIGNvbG9yOiAjMzMzO1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5jb250YWluZXItYm91dGlxdWUge1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5waG90by1ib3V0aXF1ZSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG4gICAgICAgIGhlaWdodDogNDV2dztcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHRlLWJvdXRpcXVlIHAge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qQXZpcyAtIEFjY3VlaWwqL1xyXG4uYmxvY2stdGVtb2lnbmFnZXMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGdhcDogNDBweDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxufVxyXG5cclxuLmNvbnRhaW5lci10ZW1vaWduYWdlcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZ2FwOiAyMHB4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG59XHJcblxyXG4udGVtb2lnbmFnZSB7XHJcbiAgICBtYXgtd2lkdGg6IDEzMDBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIGZsZXg6IDEgMSAzMDBweDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLCBib3gtc2hhZG93IDAuM3MgZWFzZTtcclxufVxyXG5cclxuLnRlbW9pZ25hZ2U6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxufVxyXG5cclxuLnRlbW9pZ25hZ2Ugc3BhbiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcblxyXG4uY3RhLXRlbW9pZ25hZ2VzIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBQcmVzdGF0aW9uJlNlcnZpY2VzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi5wYWdlLXByZXN0YXRpb24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5jb250YWluZXItcHJlc3RhdGlvbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5ibG9jay1wcmVzdGF0aW9uIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbn1cclxuXHJcbi5ibG9jay1wcmVzdGF0aW9uIGltZyB7XHJcbiAgICB3aWR0aDogNTAlO1xyXG4gICAgbWFyZ2luOiAzMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICAgIGJveC1zaGFkb3c6IDVweCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuLmxpc3QtcHJlc3RhdGlvbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gICAgd2lkdGg6IDUwJTtcclxufVxyXG5cclxuLnByZXN0YXRpb24ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjMpO1xyXG4gICAgY29sb3I6ICMwMDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgYm94LXNoYWRvdyAwLjNzIGVhc2U7XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnByZXN0YXRpb246aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxufVxyXG5cclxuLmJ1dHRvbi1yZW5kZXp2b3VzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBtYXJnaW46IDMwcHg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmJsb2NrLXByZXN0YXRpb24ge1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuYmxvY2stcHJlc3RhdGlvbiBpbWcge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1hcmdpbjogMTVweCAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5saXN0LXByZXN0YXRpb24ge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMTVweDtcclxuICAgIH1cclxuXHJcbiAgICAucHJlc3RhdGlvbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbi1yZW5kZXp2b3VzIHtcclxuICAgICAgICBtYXJnaW46IDIwcHggMTBweDtcclxuICAgIH1cclxuXHJcbiAgICAucGFnZS1wcmVzdGF0aW9uIC5jb250YWluZXItcHJlc3RhdGlvbjpudGgtb2YtdHlwZSgyKSAuYmxvY2stcHJlc3RhdGlvbiB7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBHYWxlcmllICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi5pbWFnZS1oZWFkZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGhlaWdodDogMzAwcHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2FuaW1hdXgvY2hpZW4ucG5nXCIpO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xyXG4gICAgbWFyZ2luOiAwIDAgNTBweCAwO1xyXG4gICAgcGFkZGluZzogMzBweCAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiAyLjVyZW07XHJcbn1cclxuXHJcbi5pbWFnZS1oZWFkZXIgaDEge1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgZm9udC1zaXplOiA1cmVtO1xyXG4gICAgdGV4dC1zaGFkb3c6IDFweCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC41KTtcclxufVxyXG5cclxuLnBvcHVwe1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwKTtcclxuICAgIHdpZHRoOiA4MCU7XHJcbiAgICBtYXgtd2lkdGg6IDE2MDBweDtcclxuICAgIGhlaWdodDogODB2aDtcclxuICAgIG1heC1oZWlnaHQ6IDgwMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ4LCAyNDksIDI1MCwgMC44Mik7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgei1pbmRleDogNTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0cmFuc2l0aW9uOiAxcztcclxuICAgIG9wYWNpdHk6IDA7XHJcbn1cclxuXHJcbi5wb3B1cC5hY3RpdmUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG59XHJcblxyXG4ucG9wdXAuYWN0aXZlIC5jbG9zZS1idG4sXHJcbi5wb3B1cC5hY3RpdmUgLmltYWdlLW5hbWUsXHJcbi5wb3B1cC5hY3RpdmUgLmluZGV4LFxyXG4ucG9wdXAuYWN0aXZlIC5sYXJnZS1pbWFnZSxcclxuLnBvcHVwLmFjdGl2ZSAuYXJyb3ctYnRuIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cztcclxuICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzO1xyXG59XHJcblxyXG4udG9wLWJhcntcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogNTBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDAsIDE0MCwgMTI5KTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxufVxyXG5cclxuLmltYWdlLW5hbWV7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG59XHJcblxyXG4uY2xvc2UtYnRue1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMTVweDtcclxuICAgIHJpZ2h0OiAzMHB4O1xyXG4gICAgd2lkdGg6IDMwcHg7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmExYjFiO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4uYXJyb3ctYnRuIGltZyB7XHJcbiAgICB3aWR0aDogMjAwcHg7XHJcbiAgICBoZWlnaHQ6IDIwMHB4O1xyXG59XHJcblxyXG4uYXJyb3ctYnRue1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4ubGVmdC1hcnJvdyB7XHJcbiAgICBsZWZ0OiAxMHB4O1xyXG59XHJcblxyXG4ucmlnaHQtYXJyb3cge1xyXG4gICAgcmlnaHQ6IDEwcHg7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7XHJcbn1cclxuXHJcbi5pbmRleHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMTBweDtcclxuICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgZm9udC1zaXplOiA4MHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcclxuICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNCk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG59XHJcblxyXG4ubGFyZ2UtaW1hZ2V7XHJcbiAgICBtYXJnaW4tdG9wOiA1JTtcclxuICAgIHdpZHRoOiA4MCU7XHJcbiAgICBoZWlnaHQ6IDgwJTtcclxuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgICBvcGFjaXR5OiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5wb3B1cCB7XHJcbiAgICAgICAgd2lkdGg6IDc1dnc7XHJcbiAgICAgICAgaGVpZ2h0OiA3NXZoO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDgwdmg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgIH1cclxuXHJcbiAgICAucG9wdXAuYWN0aXZlIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKTtcclxuICAgIH1cclxuXHJcbiAgICAudG9wLWJhciB7XHJcbiAgICAgICAgaGVpZ2h0OiA0NXB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0NXB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIH1cclxuXHJcbiAgICAuY2xvc2UtYnRuIHtcclxuICAgICAgICB0b3A6IDEwcHg7XHJcbiAgICAgICAgcmlnaHQ6IDE1cHg7XHJcbiAgICAgICAgd2lkdGg6IDI1cHg7XHJcbiAgICAgICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIH1cclxuXHJcbiAgICAubGFyZ2UtaW1hZ2Uge1xyXG4gICAgICAgIHdpZHRoOiA5MCU7XHJcbiAgICAgICAgaGVpZ2h0OiA3MCU7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogOCU7XHJcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcclxuICAgIH1cclxuXHJcbiAgICAuYXJyb3ctYnRuIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICAgIGJvdHRvbTogMjBweDtcclxuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgd2lkdGg6IDUwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmFycm93LWJ0bjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xyXG4gICAgfVxyXG5cclxuICAgIC5sZWZ0LWFycm93IHtcclxuICAgICAgICBsZWZ0OiAyMHB4O1xyXG4gICAgICAgIGJvdHRvbTogMjBweDtcclxuICAgIH1cclxuXHJcbiAgICAucmlnaHQtYXJyb3cge1xyXG4gICAgICAgIHJpZ2h0OiAyMHB4O1xyXG4gICAgICAgIGJvdHRvbTogMjBweDtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gICAgfVxyXG5cclxuICAgIC5hcnJvdy1idG4gaW1nIHtcclxuICAgICAgICB3aWR0aDogMjRweDtcclxuICAgICAgICBoZWlnaHQ6IDI0cHg7XHJcbiAgICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgxKTtcclxuICAgIH1cclxuXHJcbiAgICAuaW5kZXgge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICBib3R0b206IDI1cHg7XHJcbiAgICAgICAgcmlnaHQ6IDUwJTtcclxuICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDEwMCwgMTM5LCAxMjcsIDAuODcpO1xyXG4gICAgfVxyXG5cclxuICAgIC5nYWxsZXJ5IHtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWFyZ2luOiAzMHB4IGF1dG87XHJcbiAgICAgICAgY29sdW1uLWNvdW50OiAzO1xyXG4gICAgICAgIGNvbHVtbi1nYXA6IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmdhbGxlcnkgaW1nIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogMC4ycyBlYXNlLWluLW91dDtcclxuICAgIH1cclxuXHJcbiAgICAuZ2FsbGVyeSBpbWc6aG92ZXIge1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcclxuICAgIH1cclxuXHJcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBSZXNldCBQYXNzd29yZCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAgICAuaW5zdHJ1Y3Rpb24tcmVzZXQtcGFzc3dvcmQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuaW5zdHJ1Y3Rpb24tcmVzZXQtcGFzc3dvcmQgaDEge1xyXG4gICAgICAgIG1hcmdpbjogMzBweCAwO1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDEwMCwgMTM5LCAxMjcsIDAuNzcpO1xyXG4gICAgfVxyXG5cclxuICAgIC5pbnN0cnVjdGlvbi1yZXNldC1wYXNzd29yZCBhIHtcclxuICAgICAgICBjb2xvcjogcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjc3KTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5pbnN0cnVjdGlvbi1yZXNldC1wYXNzd29yZCBpbWcge1xyXG4gICAgICAgIHdpZHRoOiA0MDBweDtcclxuICAgICAgICBoZWlnaHQ6IDQwMHB4O1xyXG4gICAgICAgIG1hcmdpbjogMzBweCAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5pbnN0cnVjdGlvbi1yZXNldC1wYXNzd29yZCBwIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcclxuICAgIH1cclxuXHJcbiAgICAucmVzZXQtcGFzc3dvcmQge1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZzogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICAucmVnaXN0ZXIgaDEge1xyXG4gICAgICAgIG1hcmdpbjogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBTZSBzb3V2ZW5pciBkZSBtb2kgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgLnJlbWVtYmVyLW1lIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5yZW1lbWJlci1tZSAuY2hlY2tib3gge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDAuNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAucmVtZW1iZXItbWUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgICB3aWR0aDogMXJlbTtcclxuICAgICAgICBoZWlnaHQ6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnJlbWVtYmVyLW1lIGxhYmVsIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEJvdXRpcXVlICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuICAgIC5mYXZvcml0ZS1pY29uIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC5mYXZvcml0ZS1pY29uIGkge1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDEwMCwgMTM5LCAxMjcsIDAuNTQpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICAucHJvZHVjdC1ncmlkIHtcclxuICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XHJcbiAgICAgICAgZ2FwOiAyMHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDMwcHg7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAzMHB4IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLnByb2R1Y3QtY2FyZCB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAwLCAxMzksIDEyNywgMC4zOCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLnByb2R1Y3QtY2FyZCBpbWcge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMzUwcHg7XHJcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLmNhcmQtY29udGVudCB7XHJcbiAgICAgICAgcGFkZGluZzogMTVweDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB9XHJcblxyXG4gICAgLmNhcmQtY29udGVudCBoNSB7XHJcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgNXB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgfVxyXG5cclxuICAgIC5jYXJkLWNvbnRlbnQgcCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIC5maWx0ZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICAgICAgdG9wOiAyMHB4O1xyXG4gICAgICAgIG1hcmdpbjogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICAuZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcclxuICAgICAgICBwYWRkaW5nOiAzMHB4O1xyXG4gICAgICAgIG1hcmdpbjogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICAuYmxvY2stZmlsdGVyIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5wYWdpbmF0aW9uIHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBEZXRhaWxzIGFydGljbGVzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuICAgIC5maWNoZS1wcm9kdWN0IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgbWFyZ2luOiAzMHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDMwcHg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAuYm9keS1wcm9kdWN0IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgbWFyZ2luOiAzMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5maWNoZS1wcm9kdWN0IGltZyB7XHJcbiAgICAgICAgd2lkdGg6IDMwJTtcclxuICAgICAgICBoZWlnaHQ6IDUwJTtcclxuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICBtYXJnaW46IDMwcHg7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC5ibG9jay1pbmZvLXByaW5jaXBhbGVzIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI4LCAyMjEsIDIyMSwgMC41NSk7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiA1MCU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLmJsb2NrLWluZm8tcHJpbmNpcGFsZXMgcCxcclxuICAgIC5ib3V0b24tZmF2b3JpcyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogOHB4O1xyXG4gICAgICAgIG1hcmdpbjogMzBweDtcclxuICAgICAgICBwYWRkaW5nOiAzMHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJsb2NrLWluZm8tcHJpbmNpcGFsZXMgcCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5ibG9jay1pbmZvLXByYXRpcXVlcyBpLFxyXG4gICAgLmJvdXRvbi1mYXZvcmlzIGkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJsb2NrLWluZm8tcHJhdGlxdWVzIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgY29sb3I6IHJnYigxMDAsIDEzOSwgMTI3KTtcclxuICAgICAgICBtYXJnaW46IDMwcHggMDtcclxuICAgIH1cclxuXHJcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBuYXZiYXIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgLypuYXZiYXIgY2VudHJlciovXHJcbiAgICAubmF2YmFyLWN1c3RvbSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMCwgMTM5LCAxMjcpO1xyXG4gICAgICAgIHBhZGRpbmc6IDIwcHggMDtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLWN1c3RvbSA+IGxpID4gYSB7XHJcbiAgICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjQyKTtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLWN1c3RvbSAubmF2LWxpbmsge1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigyNTUsIDI1NSwgMjU1KTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXItY3VzdG9tIC5uYXYtbGluazpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiKDI1NSwgMjU1LCAyNTUpO1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDEwMCwgMTM5LCAxMjcsIDAuNzcpO1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXItY3VzdG9tID4gbGkgPiBhOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXItY3VzdG9tIC5uYXYtbGluazphY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYigyNTUsIDI1NSwgMjU1KTtcclxuICAgICAgICBjb2xvcjogcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjc3KTtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLW1haW4gLmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLypuYXZiYXIgaGVhZGVyICovXHJcbiAgICAubmF2YmFyLWJyYW5kIGltZyB7XHJcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXItcHJpbmNpcGFsZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLmxpbmstbWFpbi1jdXN0b20gPiBhIHtcclxuICAgICAgICBjb2xvcjogcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjg3KTtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLXRvZ2dsZXIge1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMDtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLXRvZ2dsZXIgaW1nIHtcclxuICAgICAgICB3aWR0aDogNzBweDtcclxuICAgICAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLm9mZmNhbnZhcy1lbmQge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NDhCN0Y7XHJcbiAgICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICB9XHJcblxyXG4gICAgLm9mZmNhbnZhcy1ib2R5IC5uYXYtbGluayxcclxuICAgIC5vZmZjYW52YXMtYm9keSAuZHJvcGRvd24taXRlbSB7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBwcmVzdGF0aW9ucy9EZXRhaWxzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgLnRleHQtZGV0YWlscy1wcmVzdGF0aW9ucyB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbjogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICAuYmxvY2stZGV0YWlscy1wcmVzdGF0aW9ucyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlLWxpc3Qge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBtYXJnaW46IDMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmluZm9ybWF0aW9uLXByZXN0YXRpb25zLWRldGFpbHMge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAwLCAxMzksIDEyNywgMC40OCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBwYWRkaW5nOiAzMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogZm9vdGVyICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgLmZvb3RlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY0OEI3RjtcclxuICAgICAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAuZm9vdGVyLXRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICAuZm9vdGVyLWNvbnRhaW5lciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XHJcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXItYmxvY2sge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvb3Rlci1sb2dvLFxyXG4gICAgLmZvb3Rlci1saW5rcyxcclxuICAgIC5mb290ZXItY29udGFjdCB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xyXG4gICAgICAgIG1hcmdpbjogMjBweCAwO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuZm9vdGVyLWxvZ28gPiBpbWcge1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgaGVpZ2h0OiA3MCU7XHJcbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnNvY2lhbC1pY29ucyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICBnYXA6IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnNvY2lhbC1pY29ucyBpbWcge1xyXG4gICAgICAgIHdpZHRoOiAzMnB4O1xyXG4gICAgICAgIGhlaWdodDogMzJweDtcclxuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLnNvY2lhbC1pY29ucyBhIGltZzpob3ZlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zb2NpYWwtaWNvbnMgYSB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXItbGlua3MgdWwge1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS44O1xyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXItbGlua3MgYSxcclxuICAgIC5mb290ZXItY29udGFjdCBhIHtcclxuICAgICAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC5mb290ZXItYm90dG9tIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcclxuICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvb3Rlci1jb3B5cmlnaHQgPiBwIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC8qUGFnZSBmb3JtdWxhaXJlIGRlIGNvbnRhY3QqL1xyXG4gICAgLnRpdGxlLXBhZ2UtY29udGFjdCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHBhZGRpbmc6IDMwcHggMDtcclxuICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICBjb2xvcjogIzAwMDAwMDtcclxuICAgIH1cclxuXHJcbiAgICAudGl0bGUtZm9ybXVsYWlyZSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5ibG9jay1wYWdlIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgbWFyZ2luOiAzMHB4IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbnRhaW5lci1mb3JtLXVzZXJzLFxyXG4gICAgLmNvbnRhaW5lci1mb3JtLXByb2R1Y3QsXHJcbiAgICAuY29udGFpbmVyLWZvcm0tcHJvZmlsLFxyXG4gICAgLmNvbnRhaW5lci1mb3JtLWluc2NyaXB0aW9uLFxyXG4gICAgLmNvbnRhaW5lci1mb3JtLWF1dGhlbnRpZmljYXRpb24sXHJcbiAgICAuY29udGFpbmVyLWZvcm11bGFpcmUge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBtYXJnaW46IDMwcHg7XHJcbiAgICAgICAgcGFkZGluZzogMzBweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAwLCAxMzksIDEyNywgMC4zOCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbnRhaW5lci1mb3JtLXVzZXJzLFxyXG4gICAgLmNvbnRhaW5lci1mb3JtLXByb2R1Y3QsXHJcbiAgICAuY29udGFpbmVyLWZvcm0tcHJvZmlsLFxyXG4gICAgLmNvbnRhaW5lci1mb3JtLWluc2NyaXB0aW9uLFxyXG4gICAgLmNvbnRhaW5lci1mb3JtLWF1dGhlbnRpZmljYXRpb24ge1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb250YWluZXItcHJvZmlsIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQ4QjdGO1xyXG4gICAgfVxyXG5cclxuICAgIC50aXRsZS1mb3JtdWxhaXJlIGgxIHtcclxuICAgICAgICBtYXJnaW46IDMwcHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm0gbGFiZWwge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIGNvbG9yOiByZ2IoMCwgMCwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmNoZWNrYm94IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybSBpbnB1dFt0eXBlPVwiZmlyc3RuYW1lXCJdLFxyXG4gICAgZm9ybSBpbnB1dFt0eXBlPVwibGFzdG5hbWVcIl0sXHJcbiAgICBmb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4gICAgZm9ybSBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXHJcbiAgICBmb3JtIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXHJcbiAgICBmb3JtIGlucHV0W3R5cGU9XCJwaG9uZU51bWJlclwiXSxcclxuICAgIGZvcm0gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxyXG4gICAgZm9ybSB0ZXh0YXJlYSxcclxuICAgIGZvcm0gc2VsZWN0IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjQyKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm0gaW5wdXQ6Zm9jdXMsXHJcbiAgICBmb3JtIHRleHRhcmVhOmZvY3VzLFxyXG4gICAgZm9ybSBzZWxlY3Q6Zm9jdXMge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogIzY0OGI3ZjtcclxuICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm0gdGV4dGFyZWEge1xyXG4gICAgICAgIHJlc2l6ZTogdmVydGljYWw7XHJcbiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybSBidXR0b24sXHJcbiAgICBmb3JtIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjU4KTtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JtIGJ1dHRvbjpob3ZlcixcclxuICAgIGZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZWFlYTtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGFpbmVyLWluZm9ybWF0aW9ucyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICB3aWR0aDogNzAlO1xyXG4gICAgICAgIG1hcmdpbjogMzBweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5ibG9jay1pbmZvcm1hdGlvbnMge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEwMCwgMTM5LCAxMjcsIDAuNDIpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLnRpdGxlLWluZm9ybWF0aW9ucyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICAgICAgY29sb3I6ICM2NDhiN2Y7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIERldGFpbHMgcHJlc3RhdGlvbnMgdGFpbGxlcyBjaGllbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuICAgIC5wYWdlLWhlYWRlciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbjogMCAzMDBweDtcclxuICAgIH1cclxuXHJcbiAgICAucGFnZS1oZWFkZXIgaW1nIHtcclxuICAgICAgICBtYXJnaW46IDMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnRpdGxlLXBhcmFncmFwaGUge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBtYXJnaW46IDUwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlYXUtdGFpbGxlcyB7XHJcbiAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgICAgIG1hcmdpbjogMnJlbSAwO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTAwLCAxMzksIDEyNywgMC4wNyk7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlYXUtdGFpbGxlcyB0aCxcclxuICAgIC50YWJsZWF1LXRhaWxsZXMgdGQge1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigwLCAwLCAwKTtcclxuICAgICAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlYXUtdGFpbGxlcyB0aGVhZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjQ3KTtcclxuICAgIH1cclxuXHJcbiAgICAudGFibGVhdS10YWlsbGVzIHRoW3Njb3BlPVwicm93XCJdIHtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwMCwgMTM5LCAxMjcsIDAuNzEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qVGFibGVhdSBwZXRpdCBjaGllbiAqL1xyXG4gICAgLnRhYmxlYXUtZ3JhbmRzLWNoaWVucyxcclxuICAgIC50YWJsZWF1LWNoaWVucy1tb3llbnMsXHJcbiAgICAudGFibGVhdS1wZXRpdHMtY2hpZW5zIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IDcwMHB4O1xyXG4gICAgICAgIG1hcmdpbjogMzBweDtcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZkZjc7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcclxuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAudGFibGVhdS1ncmFuZHMtY2hpZW5zIGNhcHRpb24sXHJcbiAgICAudGFibGVhdS1jaGllbnMtbW95ZW5zIGNhcHRpb24sXHJcbiAgICAudGFibGVhdS1wZXRpdHMtY2hpZW5zIGNhcHRpb24ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjM3KTtcclxuICAgICAgICBjb2xvcjogIzAwMDAwMDtcclxuICAgIH1cclxuXHJcbiAgICAudGFibGVhdS1ncmFuZHMtY2hpZW5zIHRoLFxyXG4gICAgLnRhYmxlYXUtZ3JhbmRzLWNoaWVucyB0ZCxcclxuICAgIC50YWJsZWF1LWNoaWVucy1tb3llbnMgdGgsXHJcbiAgICAudGFibGVhdS1jaGllbnMtbW95ZW5zIHRkLFxyXG4gICAgLnRhYmxlYXUtcGV0aXRzLWNoaWVucyB0aCxcclxuICAgIC50YWJsZWF1LXBldGl0cy1jaGllbnMgdGQge1xyXG4gICAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZTVkODtcclxuICAgIH1cclxuXHJcbiAgICAudGFibGVhdS1ncmFuZHMtY2hpZW5zIHRoLFxyXG4gICAgLnRhYmxlYXUtY2hpZW5zLW1veWVucyB0aCxcclxuICAgIC50YWJsZWF1LXBldGl0cy1jaGllbnMgdGgge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAwLCAxMzksIDEyNywgMC40NCk7XHJcbiAgICAgICAgY29sb3I6ICMwMDAwMDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlYXUtZ3JhbmRzLWNoaWVucyB0ZCBzbWFsbCxcclxuICAgIC50YWJsZWF1LWNoaWVucy1tb3llbnMgdGQgc21hbGwsXHJcbiAgICAudGFibGVhdS1wZXRpdHMtY2hpZW5zIHRkIHNtYWxsIHtcclxuICAgICAgICBjb2xvcjogIzAwMDAwMDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXJnaW4tdG9wOiAwLjJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmJsb2NrLXRhcmlmcy1ncmFuZENoaWVuLFxyXG4gICAgLmJsb2NrLXRhcmlmcy1jaGllbk1veWVuLFxyXG4gICAgLmJsb2NrLXRhcmlmcy1wZXRpdENoaWVuIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIH1cclxuXHJcbiAgICAuYmxvY2staW5mb3JtYXRpb25zLXByZXN0YXRpb25zIHtcclxuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFdpc2hsaXN0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgLmJsb2NrLWludHJvIHtcclxuICAgICAgICBtYXJnaW46IDMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmNhcmQtd2lzaGxpc3Qge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM2NDhCN0Y7XHJcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbjogMzBweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5jYXJkLXdpc2hsaXN0IGltZyB7XHJcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xyXG4gICAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAzMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5jYXJkLXdpc2hsaXN0LWJvZHkge1xyXG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIGNvbnRhY3QgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAgICAuYmxvY2stbWFwIHtcclxuICAgICAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjU0KTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5ibG9jay1tYXAgPiBpZnJhbWUge1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLmJsb2NrLW1hcCBwIHtcclxuICAgICAgICBtYXJnaW46IDE1cHggMDtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGFpbmVyLWNvbW11bmljYXRpb25zIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC5jb250YWluZXItY29udGFjdCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XHJcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDtcclxuICAgIH1cclxuXHJcbiAgICAuYmxvY2stY29tbXVuaWNhdGlvbnMge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAwLCAxMzksIDEyNywgMC44Nyk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4IDMwcHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgfVxyXG5cclxuICAgIC5ibG9jay1jb21tdW5pY2F0aW9ucyBwIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIExpc3RlIGRlcyB1dGlsaXNhdGV1cnMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAgICAudGFibGUtdXRpbGlzYXRldXJzIHtcclxuICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbjogMzBweDtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNjQ4QjdGO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAudGFibGUtdXRpbGlzYXRldXJzIHRoIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgMTM5LCAxMjcsIDAuOSk7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlLXV0aWxpc2F0ZXVycyB0ZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDEzOSwgMTI3LCAwLjI1KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBSZXNwb25zaXZlIC0gUHJlc3RhdGlvbnMgJiBTZXJ2aWNlcyAqL1xyXG4gICAgLyogUmVzcG9uc2l2ZSAtIENvbnRhY3QgKi9cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA4NjZweCkge1xyXG4gICAgICAgIC5ibG9jay1wYWdlIHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY29udGFpbmVyLWZvcm11bGFpcmUsXHJcbiAgICAgICAgLmNvbnRhaW5lci1tYXAgaW1nLFxyXG4gICAgICAgIC5jb250YWluZXItaW5mb3JtYXRpb25zIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYmxvY2stY29tbXVuaWNhdGlvbnMge1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBnYXA6IDEwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudGl0bGUtcGFnZS1jb250YWN0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogUmVzcG9uc2l2ZSAtIEJvdXRpcXVlICovXHJcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDg2NnB4KSB7XHJcbiAgICAgICAgICAgIC5pbWFnZS1oZWFkZXIgSDEge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAucHJvZHVjdC1ncmlkIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTtcclxuICAgICAgICAgICAgICAgIGdhcDogMjBweDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDMwcHg7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogUmVzcG9uc2l2ZSAtIGRldGFpbHMgcHJvZHVjdHMgKi9cclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICAgICAgLmZpY2hlLXByb2R1Y3Qge1xyXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMTVweDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5maWNoZS1wcm9kdWN0IGgxIHtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmZpY2hlLXByb2R1Y3QgaW1nIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuYmxvY2staW5mby1wcmluY2lwYWxlcyB7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5ibG9jay1pbmZvLXByaW5jaXBhbGVzIHAge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5ib3V0b24tZmF2b3JpcyB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqcmVzcG9uc2l2ZSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgICAgIC8qKioqQWNjdWVpbCoqKiovXHJcbiAgICAgICAgLypBY2N1ZWlsIFNlcnZpY2VzKi9cclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICAgICAgLmNvbnRhaW5lci1zZXJ2aWNlcyB7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGdhcDogMjBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnNlcnZpY2VzIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA4MCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogQWNjdWVpbCBUYXJpZnMqL1xyXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgICAgICAuY29udGFpbmVyLXRhcmlmcyB7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGdhcDogMjBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnRhcmlmcyB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIEFjY3VlaWwgQm91dGlxdWVcclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICAgICAgLmNvbnRhaW5lci1ib3V0aXF1ZSB7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGdhcDogMjBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAucGhvdG8tYm91dGlxdWUge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ICovXHJcbiAgICAgICAgLyoqKipHYWxsZXJ5KioqKi9cclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgICAgICAgICAgLmdhbGxlcnkge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uLWNvdW50OiAxO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuZ2FsbGVyeSBpbWcge1xyXG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKioqZm9vdGVyKioqKi9cclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICAgICAgLmZvb3Rlci1ibG9jayB7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgZ2FwOiA4MHB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuZm9vdGVyLWxvZ28sXHJcbiAgICAgICAgICAgIC5mb290ZXItbGlua3MsXHJcbiAgICAgICAgICAgIC5mb290ZXItY29udGFjdCB7XHJcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGF1dG87XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKioqTmF2QmFyKioqKi9cclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICAgICAgLm5hdmJhci1wcmluY2lwYWxlIHtcclxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLm5hdmJhci10b2dnbGVyIGltZyB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogNTBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmxpbmstbWFpbi1jdXN0b20gPiBhIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIH1cclxuXHJcbn1cclxuLmNvbnRhaW5lcj5mb3JtIHtcclxuICAgIHBhZGRpbmc6IDMwcHg7XHJcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/