/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
/* =========================
   Base + variables
   ========================= */
:root{
    --kk-grad-start:#2ecc71;
    --kk-grad-end:#27ae60;
    --bb-grad-start:#d9534f;
    --bb-grad-end:#8e2a2a;
}

body{ background: skyblue; }

/* Statut Mercure (écrase .border-0 de Bootstrap) */
.event-header.status-online  { border: 3px solid #28a745 !important; }
.event-header.status-offline { border: 3px solid #dc3545 !important; }

/* =========================
   Boutons "busy" (anti double-clic)
   ========================= */
.btn.is-busy{
    position: relative;
    pointer-events: none;
    opacity: .75;
}
.btn.is-busy::after{
    content:"";
    position:absolute;
    right:.75rem; top:50%;
    width:1rem; height:1rem; margin-top:-.5rem;
    border:.15rem solid currentColor; border-right-color:transparent;
    border-radius:50%;
    animation: voteSpin .6s linear infinite;
}
@keyframes voteSpin { to{ transform: rotate(360deg); } }

/* =========================
   TOAST perso — ancré entre Mercure et BB
   ========================= */
/* Conteneur-ANCRE placé dans le HTML entre #mercureStatus et #bb-module */
#zone-toast-anchor{
    position: relative;   /* base pour sticky/overlay local */
    z-index: 1;
}

/* Pile des toasts : collée en haut de la zone (scroll local) */
#zone-toast-anchor .toast-stack{
    position: sticky;
    top: 0;               /* reste en haut de la zone ancrée */
    display: grid;
    gap: .5rem;
    padding: .5rem;
    /* largeur fluide par défaut, les cartes contrôlent leur max-width */
}

/* Carte de toast (visuel + anim) */
.toast-card{
    background: #1f2937;          /* fallback neutre */
    color:#fff;
    border-radius: 12px;
    box-shadow: 0 16px 36px rgba(0,0,0,.35);
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .35rem .75rem;
    padding: .9rem 1rem;
    font-weight: 600;
    line-height: 1.28;

    opacity: 0;
    transform: translateY(-6px);
    transition: opacity .18s ease, transform .18s ease;
    width: min(92vw, 500px);       /* taille par défaut */
}

.toast-card.show{
    opacity: 1;
    transform: translateY(0);
}

/* Variantes sémantiques */
.toast--success{ border-left-color:#28a745; }
.toast--error  { border-left-color:#dc3545; }
.toast--info   { border-left-color:#0d6efd; }

/* Variantes "thématiques" KK/BB (dégradés) */
.toast--kk{
    background: linear-gradient(135deg, var(--kk-grad-start), var(--kk-grad-end));
    border-left-color: rgba(255,255,255,.8);
}
.toast--bb{
    background: linear-gradient(135deg, var(--bb-grad-start), var(--bb-grad-end));
    border-left-color: rgba(255,255,255,.8);
}

/* Slots internes (compatibles avec le JS fourni) */
.toast-title{ font-weight:700; }
.toast-msg{ grid-column: 1 / -1; opacity:.95; }
.toast-close{
    background: transparent; border: 0; color: inherit; cursor: pointer; font-size: 1.1rem;
    line-height: 1; align-self: start;
}

/* Icône optionnelle (si tu injectes une image) */
.toast-icon {
    width: 64px;
    height: 64px;
    flex: 0 0 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.toast-icon-img {
    max-width: 80%;    /* garde de l’air autour */
    max-height: 80%;
    object-fit: contain;
    display: block;
}

/* ===== Compteur compact header Grand Orateur ===== */
.reads-compact{
    display:flex; align-items:center; gap:.6rem;
    background: rgba(255,255,255,.7);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(0,0,0,.06);
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    padding: .35rem .6rem;
    border-radius: 9999px;
    font-size: .875rem;
    color: #0f172a; /* slate-900 */
}
.reads-compact-label{ white-space: nowrap; line-height: 1; }
.reads-compact-bar{
    width: 90px; height: 4px; border-radius: 9999px;
    background: rgba(15,23,42,.12); /* slate-900 @12% */
    overflow: hidden;
}
.reads-compact-bar > span{
    display:block; height:100%; border-radius: inherit;
    background: linear-gradient(90deg, #22c55e, #16a34a); /* vert doux */
    transition: width .25s ease;
}

/* Option: harmonise les headers de cartes KK/BB */
.card .card-header img{ height:36px; width:auto; margin-right:.5rem; vertical-align:middle; }
.card .card-header{ display:flex; align-items:center; gap:.5rem; }

/* Header sticky propre pour le tableau desktop */
.stats-table thead.sticky-top th {
    position: sticky;     /* assure le sticky sur chaque th */
    top: 0;               /* 0 si pas de navbar sticky au-dessus */
    z-index: 5;           /* au-dessus des rows */
    background-color: var(--bs-body-bg, #fff); /* fond opaque (ou #fff) */
    /* pour Safari/iOS, évite des artefacts de composition : */
    transform: translateZ(0);
    /* optionnel : petite ombre + séparation visuelle */
    box-shadow: 0 1px 0 rgba(0,0,0,.08);
    border-bottom: 1px solid rgba(0,0,0,.06);
}

/* Empêche le texte de casser sur plusieurs lignes et d’élargir le header */
.stats-table th, .stats-table td {
    white-space: nowrap;
}


/* Option: fond header carte orateur plus doux */
#mercureStatus.badge{ transform: translateY(1px); }

/* =========================
   MOBILE < 576px — confort tactile
   ========================= */
@media (max-width:576px){
    html, body{ font-size:18px; }

    .stats-table { font-size: .9rem; }
    /* bord à bord soft */
    .container, .container-fluid{ padding-left:.5rem !important; padding-right:.5rem !important; }

    .card{ border-radius:12px; }
    .card-header{ font-size:1.05rem; padding:.85rem .9rem; }
    .card .form-control{ font-size:1.05rem; padding:.9rem 1rem; }
    #bbTextBox, #kkTextBox{ min-height:7rem; }

    /* gros boutons confort */
    #bbChooseBtn, #kkChooseBtn{
        padding:1rem 1.1rem; font-size:1.08rem; border-width:2px; width:100%;
    }

    /* dropdown quasi plein écran */
    .dropdown-menu{
        width:96vw !important; max-width:96vw !important;
        left:50% !important; transform:translateX(-50%) !important;
        max-height:65vh !important; overflow:auto !important; padding:.5rem !important;
    }
    .dropdown-menu .dropdown-item{ padding:1rem 1.1rem !important; font-size:1.05rem !important; }
    .dropdown-menu .form-control.form-control-sm{ font-size:1rem; padding:.6rem .75rem; height:auto; }

    /* avatars tactile */
    .avatar{ width:34px !important; height:34px !important; min-width:34px !important; font-size:.95rem !important; }

    /* 👉 Toasts : largeur quasi pleine et présence visuelle accrue */
    #zone-toast-anchor .toast-stack{ padding: .5rem .25rem; }
    .toast-card{
        width: 94vw;
        padding: .95rem 1rem;
        min-height: 72px;
        margin-top: -25px;
    }
    .toast-icon{ width:64px; height:64px; }


}

/* =========================
   ≥ 577px (tablette/desktop léger)
   ========================= */
@media (min-width:577px){
    .toast-card{ width: min(92vw, 520px); }
    .toast-icon{ width:40px; height:40px; }

    #voteDetailModal .modal-dialog{ width:92vw; max-width:92vw; margin:.75rem auto; }
    #voteDetailModal .modal-content{ border-radius:14px; }
    #voteDetailModal .modal-body{ font-size:1.05rem; line-height:1.35; }

    #bbChooseBtn, #kkChooseBtn{ padding:1.1rem 1rem; font-size:1.05rem; border-width:2px; }
    .dropdown-menu{
        width:92vw !important; max-width:92vw !important;
        left:50% !important; transform:translateX(-50%) !important;
        max-height:60vh !important; overflow:auto !important;
    }
    .dropdown-menu .dropdown-item{ padding:.85rem 1rem !important; font-size:1.05rem; }
    .dropdown-menu .form-control{ font-size:1rem; padding:.6rem .75rem; }
}

/* =========================
   ≥ 768px (desktop confortable)
   ========================= */
@media (min-width:768px){
    .toast-card{ width: min(92vw, 480px); }
    .toast-icon {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }

    #voteDetailModal .modal-dialog{ width:92vw; max-width:92vw; margin:.75rem auto; }
    #voteDetailModal .modal-content{ border-radius:14px; }
    #voteDetailModal .modal-body{ font-size:1.05rem; line-height:1.35; }

}

/* Très petits écrans */
@media (max-width:360px){
    .container-fluid{ padding-left:.4rem !important; padding-right:.4rem !important; }
    .dropdown-menu{ width:98vw !important; max-width:98vw !important; }
}

/* =========================
   (Option) Variante OVERLAY LOCAL
   — si tu préfères un toast flottant en haut-droite de la zone
   — décommente ce bloc et laisse #zone-toast-anchor en position:relative
   ========================= */
/*
#zone-toast-anchor .toast-stack{
    position: absolute;
    top: .5rem; right: .5rem;
    display: grid; gap: .5rem;
    max-width: min(420px, 90%);
    z-index: 10;
}
*/


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