/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
/* ================================
========== Variables ==============
================================= */
:root {
    --main-color:    #D4C5A9;
    --main-dark:     #B8A88A;
    --main-light:    #EAE0CC;

    --glass-bg:      rgba(255, 255, 255, 0.04);
    --glass-border:  rgba(255, 255, 255, 0.08);
    --glass-hover:   rgba(255, 255, 255, 0.08);

    --bg-dark:       #0A0A0F;
    --bg-mid:        #0F0F18;
    --bg-card:       #13131E;

    --text-color:    #F0EEF5;
    --text-soft:     #9D9AAA;
    --text-muted:    #5A5870;

    --border-color:  rgba(255, 255, 255, 0.08);

    --font-display:  'Gracia', sans-serif;
    --font-body:     'Gravity', sans-serif;

    --nav-height:    60px;
    /* --projectHeight et --sectionHeight étaient identiques → une seule variable */
    --section-height: calc(92.4vh - var(--nav-height));
}

/* ================================
=========== Fonts perso ===========
================================= */
@font-face {
    font-family: 'Gravity';
    src: url(/build/fonts/Gravity-Regular.4c97ae40.woff) format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Gracia';
    src: url(/build/fonts/GRACIA.03d6f8b5.ttf) format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* ================================
=========== Base / Reset ==========
================================= */
html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-body);
    font-size: large;
    overflow-x: hidden;
    background-color: var(--bg-dark);
    color: var(--text-color);
    margin: 0;
}

body::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    background:
            radial-gradient(ellipse 80% 60% at 20% 10%, rgba(212, 197, 169, 0.10) 0%, transparent 60%),
            radial-gradient(ellipse 60% 50% at 80% 80%, rgba(184, 168, 138, 0.08) 0%, transparent 60%),
            var(--bg-dark);
    pointer-events: none;
}

h1 {
    font-family: var(--font-display);
    font-size: 3rem;
    font-weight: bold;
    color: var(--text-color);
}

h2 {
    font-family: var(--font-display);
    color: var(--text-color);
}

/* ================================
=========== Animations ============
================================= */
.animate__animated {
    opacity: 0;
    transition: opacity 0.3s ease;
}

.animate__animated.animate__fadeIn,
.animate__animated.animate__slideInUp,
.animate__animated.animate__zoomIn,
.animate__animated.animate__bounceIn,
.animate__animated.animate__flipInX {
    opacity: 1 !important;
}

/* ================================
============= Globals =============
================================= */
#mainContainer {
    min-height: var(--section-height);
    background-color: transparent;
}

/* ================================
============== Navbar ==============
================================= */
nav {
    background-color: rgba(10, 10, 15, 0.6);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border-bottom: 1px solid var(--glass-border);
    height: var(--nav-height);
    position: sticky;
    top: 0;
    z-index: 100;
}

.nav-container {
    max-width: 1360px;
    margin-inline: auto;
    padding-inline: 1.5rem;
    height: 100%;
}

.nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}

.nav-logo img {
    height: 42px;
    width: auto;
}

.nav-links {
    display: none;
    align-items: center;
    gap: 2rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-burger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    width: 50px;
    color: var(--main-color);
}

.nav-burger span {
    display: block;
    width: 24px;
    height: 2px;
    background-color: var(--text-color);
    border-radius: 2px;
    transition: background-color 0.2s ease;
}

.nav-burger:hover span {
    background-color: var(--main-color);
}

@media (min-width: 640px) {
    .nav-links  { display: flex; }
    .nav-burger { display: none; }
    #mobile-menu { display: none !important; }
}

.nav-link {
    position: relative;
    font-family: var(--font-body);
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-soft);
    padding: 4px 2px;
    text-decoration: none;
    transition: color 0.3s ease;
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1.5px;
    background: linear-gradient(90deg, var(--main-color), var(--main-light));
    transition: width 0.3s ease-in-out;
}

.nav-link:hover,
.nav-link.active {
    color: var(--text-color);
}

.nav-link:hover::after,
.nav-link.active::after {
    width: 100%;
}

#mobile-menu {
    border-top: 1px solid var(--glass-border);
    background-color: rgba(10, 10, 15, 0.85);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

.nav-mobile-inner {
    display: flex;
    flex-direction: column;
    padding: 1rem 1.5rem;
    gap: 1rem;
}

#mobile-menu .nav-link {
    font-size: 0.95rem;
    padding: 8px 0;
    display: block;
}

/* ================================
======= Bouton de remontée ========
================================= */
#TopBtn {
    opacity: 0;
    width: 44px;
    height: 44px;
    position: fixed;
    bottom: 50px;
    right: 20px;
    z-index: 99;
    border: 1px solid var(--glass-border);
    background-color: rgba(212, 197, 169, 0.15);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: var(--main-light);
    cursor: pointer;
    border-radius: 50%;
    font-size: 1.1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 0.5s ease, background-color 0.3s ease, transform 0.2s ease;
}

#TopBtn:hover {
    background-color: var(--main-color);
    color: #ffffff;
    transform: scale(1.1) translateY(-2px);
    box-shadow: 0 8px 24px rgba(212, 197, 169, 0.25);
}

/* ================================
============== Footer ==============
================================= */
footer {
    background-color: rgba(10, 10, 15, 0.8);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-top: 1px solid var(--glass-border);
    padding-block: 1.5rem;
    font-size: 0.875rem;
    color: var(--text-soft);
}

.footer-container {
    max-width: 1360px;
    margin-inline: auto;
    padding-inline: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

@media (min-width: 1024px) {
    .footer-container {
        flex-direction: row;
        justify-content: space-between;
    }
}

.footer-link {
    color: var(--text-soft);
    text-decoration: none;
    transition: color 0.2s ease;
}

.footer-link:hover {
    color: var(--main-light);
}

footer .separator {
    color: var(--text-muted);
    margin-inline: 0.5rem;
}

.footer-copy {
    text-align: center;
}

.footer-socials {
    display: flex;
    gap: 1.5rem;
}

.footer-dev {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.footer-dev a {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-left: 0.25rem;
}

.footer-dev img {
    height: 1.25rem;
    display: inline;
}

/* ================================
=========== Home page =============
================================= */
#mainPicture {
    height: var(--section-height);
    background-image: url(/build/images/fannysite.27eaa2ce.jpg);
    background-size: cover;
    background-position: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-bottom: 5rem;
    padding-inline: 2rem;
    color: #ffffff;
    position: relative;
}

#mainPicture::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 65%;
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, transparent 100%);
    pointer-events: none;
}

#mainPicture h1 {
    position: relative;
    z-index: 1;
    font-size: 3rem;
    letter-spacing: 0.04em;
    text-shadow: 0 2px 20px rgba(0,0,0,0.6);
}

#mainPicture p {
    position: relative;
    z-index: 1;
    font-size: 1rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    opacity: 0.75;
    margin-top: 0.5rem;
}

/* ================================
============ 404 Page =============
================================= */
#error {
    min-height: var(--section-height);
    padding-block: 4rem;
    background-color: transparent;
    text-align: center;
}

#error h1 {
    font-size: 6rem;
    color: var(--main-color);
    opacity: 0.15;
    line-height: 1;
}

/* ================================
============== Legals =============
================================= */
#legals {
    min-height: var(--section-height);
    padding-block: 4rem;
    background-color: transparent;
}

#legals h2 {
    font-size: 1.4rem;
    color: var(--text-color);
    margin-top: 2rem;
    margin-bottom: 0.5rem;
}

#legals p {
    color: var(--text-soft);
    line-height: 1.8;
}

/* ================================
========== Hero Section ===========
================================= */
#hero {
    position: relative; /* nécessaire pour ::before et .hero-scroll-indicator */
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 4rem;
    min-height: 100vh;
    padding: 2rem 6rem;
}

#hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 70% 60% at 50% 40%, rgba(212, 197, 169, 0.12) 0%, transparent 65%);
    animation: heroPulse 6s ease-in-out infinite alternate;
    pointer-events: none;
}

@keyframes heroPulse {
    from { opacity: 0.6; transform: scale(1); }
    to   { opacity: 1;   transform: scale(1.05); }
}

@media (max-width: 768px) {
    #hero {
        flex-direction: column;
        padding: 2rem;
        text-align: center;
    }

    .hero-content { text-align: center; }
    .hero-image img { height: 40vh; }
}

.hero-content {
    flex: 1;
    text-align: left;
}

.hero-image {
    flex: 1;
    display: flex;
    justify-content: center;
}

.hero-image img {
    height: 70vh;
    width: 100%;
    max-width: 450px;
    object-fit: cover;
    object-position: top;
    border-radius: 1rem;
    box-shadow: 0 20px 60px rgba(0,0,0,0.4);
    border: 1px solid var(--glass-border);
}

.hero-tag {
    display: inline-block;
    font-size: 0.75rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--main-light);
    background: rgba(212, 197, 169, 0.08);
    border: 1px solid rgba(212, 197, 169, 0.2);
    padding: 0.35rem 1rem;
    border-radius: 999px;
    margin-bottom: 1rem;
}

.hero-title {
    font-size: clamp(3rem, 8vw, 6rem);
    line-height: 1.05;
    background: linear-gradient(135deg, #ffffff 30%, var(--main-light) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0;
}

.hero-subtitle {
    font-family: var(--font-body);
    font-size: clamp(1.1rem, 3vw, 1.5rem);
    color: var(--text-soft);
    font-weight: 400;
    min-height: 2rem;
    margin: 0;
}

.wrap {
    border-right: 2px solid var(--main-light);
    animation: blink 0.75s step-end infinite;
}

@keyframes blink {
    from, to { border-color: transparent; }
    50%       { border-color: var(--main-light); }
}

.hero-actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 2rem;
}

.hero-scroll-indicator {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
}

.hero-scroll-indicator span {
    display: block;
    width: 1.5px;
    height: 50px;
    background: linear-gradient(to bottom, var(--main-light), transparent);
    animation: scrollLine 2s ease-in-out infinite;
}

@keyframes scrollLine {
    0%   { transform: scaleY(0); transform-origin: top; }
    50%  { transform: scaleY(1); transform-origin: top; }
    51%  { transform: scaleY(1); transform-origin: bottom; }
    100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ================================
============= Buttons =============
================================= */
.btn-primary,
.btn-outline {
    display: inline-flex;
    align-items: center;
    padding: 0.75rem 2rem;
    border-radius: 999px;
    font-family: var(--font-body);
    font-size: 0.9rem;
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: background 0.3s ease, border-color 0.3s ease,
    color 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
}

.btn-primary {
    background: var(--main-dark);
    color: #fff;
    border: 1px solid transparent;
    box-shadow: 0 4px 20px rgba(212, 197, 169, 0.2);
}

.btn-primary:hover {
    background: var(--main-light);
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(212, 197, 169, 0.35);
}

.btn-outline {
    background: transparent;
    color: var(--text-color);
    border: 1px solid var(--glass-border);
}

.btn-outline:hover {
    border-color: var(--main-color);
    color: var(--main-light);
    background: rgba(212, 197, 169, 0.06);
    transform: translateY(-2px);
}

/* ================================
========== Section Header =========
================================= */
.section-header {
    text-align: center;
    margin-bottom: 3rem;
}

.section-header h2 {
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    margin-bottom: 0.5rem;
}

.section-subtitle {
    color: var(--text-soft);
    font-size: 0.95rem;
    letter-spacing: 0.05em;
}

/* ================================
========== Video Section ==========
================================= */
#mainVideo {
    padding-block: 6rem;
    position: relative;
}

#mainVideo .container {
    display: flex;
    flex-direction: column;
    margin-inline: auto;
    min-height: var(--section-height);
}

#mainVideo .section-header {
    text-align: center;
    margin-bottom: 3rem;
    width: 100%;
}

.video-wrapper {
    position: relative;
    width: 100%;
    max-width: 900px;
    margin-inline: auto;
    aspect-ratio: 16 / 9;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
    border: 1px solid var(--glass-border);
}

.video-wrapper iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* ================================
========== News / Cards ===========
================================= */
#mainNews {
    min-height: var(--section-height);
    max-width: 1360px;
    margin-inline: auto;
    padding: 6rem 2rem;
}

#mainNews > h2 {
    font-size: 2rem;
    margin-bottom: 2rem;
    position: relative;
    display: inline-block;
}

#mainNews > h2::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    width: 48px;
    height: 2px;
    background: linear-gradient(90deg, var(--main-color), transparent);
}

.news-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.5rem;
}

/* ── INSTAGRAM SECTION ───────────────────────────────────── */
.instagram-section {
    max-width: 600px;
    margin: 3rem auto;
    padding: 0 1rem;
}

.instagram-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.instagram-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.instagram-title svg {
    color: #E1306C;
}

.instagram-title h2 {
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0;
    color: var(--main-color);
}

.instagram-follow-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1.25rem;
    background: linear-gradient(135deg, #E1306C, #833AB4);
    color: #fff;
    border-radius: 8px;
    font-size: 0.88rem;
    font-weight: 600;
    text-decoration: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.instagram-follow-btn:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

.instagram-embed-wrapper {
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid #E5DDD8;
    box-shadow: 0 4px 20px rgba(18, 39, 85, 0.08);
}

.instagram-embed-wrapper .instagram-media {
    border-radius: 16px !important;
    box-shadow: none !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* ================================
============== Cards ===============
================================= */
.card {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: 1rem;
    overflow: hidden;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.card:hover {
    transform: translateY(-6px);
    border-color: rgba(212, 197, 169, 0.25);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(212, 197, 169, 0.08);
}

.card-image {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
}

.card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.card:hover .card-image img {
    transform: scale(1.05);
}

.card-image-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10, 10, 15, 0.85) 0%, transparent 50%);
}

.card-content {
    padding: 1.25rem 1.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.card-tag {
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--main-light);
    font-family: var(--font-body);
}

.card-content h2 {
    font-size: 1rem;
    color: var(--text-color);
    line-height: 1.4;
    margin: 0;
}

.card-content p {
    font-size: 0.875rem;
    color: var(--text-soft);
    line-height: 1.7;
    margin: 0;
}

/* ================================
=========== Pages du CV ===========
================================= */
#musical a,
#doublage a,
#concert a,
#compositions a {
    color: var(--main-color);
    text-decoration: none;
}

#musical .card h2,
#doublage .card h2,
#concert .card h2,
#compositions .card h2 {
    font-size: 1.3rem;
}

#musical .card span,
#doublage .card span,
#concert .card span,
#compositions .card span {
    color: var(--main-dark);
    font-size: .9rem;
}

#musical .news-grid,
#doublage .news-grid,
#concert .news-grid,
#compositions .news-grid {
    grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 1024px) {
    #musical .news-grid,
    #doublage .news-grid,
    #concert .news-grid,
    #compositions .news-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    #musical .news-grid,
    #doublage .news-grid,
    #concert .news-grid,
    #compositions .news-grid {
        grid-template-columns: 1fr;
    }
}

/* ================================
============== CV Page =============
================================= */
#cv-page {
    padding-top: 2.6rem;
    background-color: transparent; /* corrigé : --bg-primary n'existe pas */
}

.cv-header {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 4rem;
    max-width: 1000px;
    margin: 0 auto;
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: 1.5rem;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}

.cv-photo {
    flex: 1;
}

.cv-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
}

.cv-identity {
    flex: 1;
    padding: 3rem 2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2rem;
}

.cv-name {
    font-family: var(--font-display); /* variable ajoutée dans :root */
    font-size: 2.5rem;
    color: var(--text-color);
    margin: 0.5rem 0;
}

@media (max-width: 768px) {
    #cv-page {
        padding: 2rem 1.5rem;
    }

    .cv-header {
        flex-direction: column;
        gap: 0;
    }

    .cv-photo img {
        height: 350px;
    }

    .cv-name {
        font-size: 1.8rem;
    }
}

/* ================================
========== CV Attr Link ===========
================================= */
.cv-attr-link {
    text-decoration: none;
    color: inherit;
    display: block;
    margin-bottom: 15px;
}

.cv-attr-link .cv-attribute {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1rem;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 0.5rem;
    border: 1px solid var(--glass-border);
    transition: background 0.3s ease, border-color 0.3s ease,
    transform 0.2s ease, box-shadow 0.3s ease;
}

.cv-attr-link:hover .cv-attribute {
    background: rgba(212, 197, 169, 0.08);
    border-color: rgba(212, 197, 169, 0.3);
    transform: translateX(6px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.cv-attr-arrow {
    color: var(--text-muted);
    font-size: 1rem;
    transition: transform 0.3s ease, color 0.3s ease;
}

.cv-attr-link:hover .cv-attr-arrow {
    transform: translateX(4px);
    color: var(--main-light);
}

.cv-attr-link:hover .cv-attr-label {
    color: var(--main-light);
    transition: color 0.3s ease;
}

/* ================================
============ Contact Page ==========
================================= */
.contact-page {
    max-width: 860px;
    margin: 0 auto;
    padding: 4rem 1.5rem 6rem;
    display: flex;
    flex-direction: column;
}

.page-hero {
    padding-left: 7rem;
    padding-top: 1rem;
}

.page-hero h1 {
    margin-top: 0;
}

/* ── SOCIAL GRID ── */
.social-grid,
.contact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}

/* Carte partagée social + contact */
.social-card,
.contact-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.2rem 1.5rem;
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: 12px;
    text-decoration: none;
    color: var(--text-color);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.social-card:hover,
.contact-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
    background: var(--glass-hover);
}

/* Hover couleurs réseau */
.social-card.instagram:hover { border-color: #E1306C; }
.social-card.facebook:hover  { border-color: #1877F2; }
.social-card.tiktok:hover    { border-color: rgba(255,255,255,0.3); }
.social-card.youtube:hover   { border-color: #FF0000; }
.contact-card:hover          { border-color: var(--main-color); }

/* Icônes */
.social-icon,
.contact-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(255, 255, 255, 0.06);
}

.contact-icon {
    width: 48px;
    height: 48px;
    color: var(--main-color);
}

.social-icon svg,
.contact-icon svg {
    width: 22px;
    height: 22px;
}

/* Couleurs icônes socials */
.instagram .social-icon { background: rgba(225, 48, 108, 0.15); color: #E1306C; }
.facebook  .social-icon { background: rgba(24, 119, 242, 0.15); color: #1877F2; }
.tiktok    .social-icon { background: rgba(255, 255, 255, 0.08); color: var(--text-color); }
.youtube   .social-icon { background: rgba(255, 0, 0, 0.15);     color: #FF0000; }

.social-info,
.contact-info {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.social-name {
    font-weight: 600;
    font-size: 0.95rem;
}

.social-handle {
    font-size: 0.82rem;
    color: var(--text-soft);
    margin-top: 2px;
}

.contact-label {
    font-size: 0.8rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.contact-value {
    font-weight: 600;
    font-size: 0.95rem;
    margin-top: 2px;
    color: var(--text-color);
}

/* Flèches */
.social-arrow,
.contact-arrow {
    color: var(--text-muted);
    font-size: 1rem;
    transition: transform 0.2s ease, color 0.2s ease;
}

.social-card:hover .social-arrow,
.contact-card:hover .contact-arrow {
    transform: translateX(4px);
    color: var(--main-light);
}


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