/*!**************************************************************************************************************!*\
  !*** 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=Space+Grotesk:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap);
/*!******************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css (1) ***!
  \******************************************************************************************************************/
/* ==================================================
   RUNDATAVAULT – Kinetic Precision Design System
   ================================================== */

/* — Google Fonts — */

/* — Design Tokens — */
:root {
    /* Surface Hierarchy */
    --surface: #131313;
    --surface-dim: #131313;
    --surface-container-lowest: #0e0e0e;
    --surface-container-low: #1b1b1b;
    --surface-container: #1f1f1f;
    --surface-container-high: #2a2a2a;
    --surface-container-highest: #353535;
    --surface-bright: #393939;
    --surface-variant: #353535;

    /* Primary & On-Surface */
    --primary: #ffffff;
    --primary-container: #d4d4d4;
    --on-primary: #1a1c1c;
    --on-surface: #e2e2e2;
    --on-surface-variant: #c6c6c6;
    --on-background: #e2e2e2;

    /* Secondary */
    --secondary: #c6c6cb;
    --secondary-container: #46464b;
    --outline: #919191;
    --outline-variant: #474747;

    /* Error */
    --error: #ffb4ab;
    --error-container: #93000a;

    /* Success */
    --success: #4caf50;

    /* Typography */
    --font-headline: 'Space Grotesk', sans-serif;
    --font-body: 'Inter', sans-serif;

    /* Spacing */
    --spacing-1: 0.25rem;
    --spacing-2: 0.5rem;
    --spacing-3: 0.75rem;
    --spacing-4: 1rem;
    --spacing-6: 1.5rem;
    --spacing-8: 1.75rem;
    --spacing-12: 3rem;
    --spacing-16: 4rem;
    --spacing-24: 6rem;

    /* Transitions */
    --transition: 150ms cubic-bezier(0.4, 0, 0.2, 1);

    /* Sidebar */
    --sidebar-width: 200px;
}

/* — Global Reset — */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
    background-color: var(--surface);
    color: var(--on-surface);
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    line-height: 1.5;
    min-height: 100vh;
}

a { color: var(--primary); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--primary-container); }

img { max-width: 100%; height: auto; display: block; }

/* — Typography — */
.font-headline { font-family: var(--font-headline); }
.font-body { font-family: var(--font-body); }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-headline);
    font-weight: 700;
    letter-spacing: -0.05em;
    text-transform: uppercase;
    line-height: 0.9;
}

.display-lg { font-size: 3.5rem; }
.display-md { font-size: 2.5rem; }
.display-sm { font-size: 1.75rem; }
.headline-lg { font-size: 2rem; }
.headline-md { font-size: 1.5rem; }
.label-sm {
    font-family: var(--font-body);
    font-size: 0.625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--on-surface-variant);
}
.label-md {
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--on-surface-variant);
}
.text-glow { text-shadow: 0 0 30px rgba(255, 255, 255, 0.1); }
.text-muted { color: var(--on-surface-variant); }

/* — Buttons — */
.btn {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-6);
    font-family: var(--font-headline);
    font-weight: 700;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    border: none;
    border-radius: 0;
    cursor: pointer;
    transition: all var(--transition);
    text-decoration: none;
}

.btn-primary {
    background: var(--primary);
    color: var(--on-primary);
}
.btn-primary:hover { background: var(--primary-container); color: var(--on-primary); }

.btn-secondary {
    background: transparent;
    color: var(--primary);
    border: 1px solid rgba(255,255,255,0.15);
}
.btn-secondary:hover { background: rgba(255,255,255,0.05); }

.btn-danger {
    background: var(--error-container);
    color: var(--error);
}

.btn-sm { padding: var(--spacing-2) var(--spacing-4); font-size: 0.75rem; }
.btn-lg { padding: var(--spacing-4) var(--spacing-8); font-size: 1rem; }
.btn-xl { padding: var(--spacing-6) var(--spacing-12); font-size: 1.25rem; }

/* — Inputs — */
.form-group { margin-bottom: var(--spacing-6); }

.form-group label,
.form-label {
    display: block;
    font-family: var(--font-body);
    font-size: 0.625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--on-surface-variant);
    margin-bottom: var(--spacing-2);
}

.form-control,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="date"],
textarea,
select {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--outline-variant);
    color: var(--on-surface);
    padding: var(--spacing-3) 0;
    font-family: var(--font-body);
    font-size: 1rem;
    transition: border-color var(--transition);
    outline: none;
    border-radius: 0;
    -webkit-appearance: none;
}

.form-control:focus,
input:focus,
textarea:focus,
select:focus {
    border-bottom-color: var(--primary);
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
    color: var(--outline);
}

select {
    background-color: var(--surface-container);
    padding: var(--spacing-3);
}

select option {
    background: var(--surface-container);
    color: var(--on-surface);
}

.form-error {
    color: var(--error);
    font-size: 0.75rem;
    margin-top: var(--spacing-1);
}

/* — Cards — */
.card {
    background: var(--surface-container-low);
    padding: var(--spacing-6);
}

.card-elevated { background: var(--surface-container); }
.card-highest { background: var(--surface-container-highest); }
.card-accent { border-left: 4px solid var(--primary); }

/* — KPI Cards — */
.kpi-card {
    background: var(--surface-container-low);
    padding: var(--spacing-6);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}
.kpi-label {
    font-family: var(--font-headline);
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--on-surface-variant);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.kpi-value {
    font-family: var(--font-headline);
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: -0.05em;
    line-height: 1;
}
.kpi-unit {
    font-size: 1rem;
    color: var(--on-surface-variant);
    margin-left: var(--spacing-2);
}
.kpi-change {
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--on-surface-variant);
}

/* — Navigation — */
.topnav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-4) var(--spacing-6);
    background: rgba(0,0,0,0.8);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: 100;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.topnav-brand {
    font-family: var(--font-headline);
    font-size: 1.5rem;
    font-weight: 900;
    letter-spacing: -0.05em;
    color: var(--primary);
    text-decoration: none;
}

.topnav-links { display: flex; gap: var(--spacing-8); align-items: center; }
.topnav-links a {
    color: var(--outline);
    font-family: var(--font-headline);
    font-weight: 700;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    transition: color var(--transition);
}
.topnav-links a:hover { color: var(--primary); }

.topnav-actions { display: flex; gap: var(--spacing-6); align-items: center; }

/* — Sidebar — */
.sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: var(--sidebar-width);
    background: var(--surface-container-lowest);
    padding: var(--spacing-6) var(--spacing-4);
    display: flex;
    flex-direction: column;
    z-index: 50;
    overflow-y: auto;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.sidebar-top-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-8);
}

.sidebar-close {
    display: none;
    background: none;
    border: none;
    color: var(--on-surface-variant);
    cursor: pointer;
    padding: var(--spacing-2);
    transition: color var(--transition);
}
.sidebar-close:hover { color: var(--primary); }

.sidebar-brand {
    font-family: var(--font-headline);
    font-size: 1.1rem;
    font-weight: 900;
    letter-spacing: -0.05em;
    color: var(--primary);
    text-decoration: none;
}

.sidebar-toggle {
    display: none;
    position: fixed;
    top: var(--spacing-4);
    left: var(--spacing-4);
    z-index: 60;
    background: var(--surface-container);
    border: 1px solid rgba(255,255,255,0.1);
    color: var(--primary);
    cursor: pointer;
    padding: var(--spacing-2);
    transition: all var(--transition);
}
.sidebar-toggle:hover { background: var(--surface-container-high); }

.sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 45;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.sidebar-overlay.visible {
    display: block;
    opacity: 1;
}

.sidebar-user {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-8);
    padding: var(--spacing-3);
}
.sidebar-user-avatar {
    width: 32px;
    height: 32px;
    background: var(--surface-container-high);
    display: flex;
    align-items: center;
    justify-content: center;
}
.sidebar-user-info {
    min-width: 0;
    flex: 1;
}
.sidebar-user-name {
    font-family: var(--font-headline);
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sidebar-user-level {
    font-size: 0.625rem;
    color: var(--on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.sidebar-nav { display: flex; flex-direction: column; gap: var(--spacing-1); flex: 1; }
.sidebar-link {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    color: var(--secondary);
    font-family: var(--font-headline);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: all var(--transition);
}
.sidebar-link:hover { color: var(--primary); background: rgba(255,255,255,0.03); }
.sidebar-link.active {
    color: var(--primary);
    background: var(--surface-container-high);
    border-left: 3px solid var(--primary);
}
.sidebar-link .material-symbols-outlined { font-size: 20px; }

.sidebar-cta {
    margin-top: auto;
    padding-top: var(--spacing-6);
}

/* — Main Content — */
.main-content {
    margin-left: var(--sidebar-width);
    padding: var(--spacing-6);
    min-height: 100vh;
}

.main-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-8);
}

/* — Grid — */
.grid { display: grid; gap: var(--spacing-6); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-5 { grid-template-columns: repeat(5, 1fr); }

@media (max-width: 1024px) {
    .grid-4, .grid-5 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .grid-2, .grid-3, .grid-4, .grid-5 { grid-template-columns: 1fr; }
}


/* — Tables (Ghost Border) — */
.data-table { width: 100%; border-collapse: collapse; table-layout: auto; }
.table-container { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

.data-table th {
    text-align: left;
    font-family: var(--font-body);
    font-size: 0.625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--on-surface-variant);
    padding: var(--spacing-3) var(--spacing-4);
    border-bottom: 1px solid rgba(71, 71, 71, 0.15);
}
.data-table td {
    padding: var(--spacing-3) var(--spacing-4);
    font-size: 0.875rem;
    border-bottom: 1px solid rgba(71, 71, 71, 0.08);
}
.data-table tr:hover td { background: rgba(255,255,255,0.02); }

/* Responsive Table -> Cards */
@media (max-width: 768px) {
    .data-table,
    .data-table thead,
    .data-table tbody,
    .data-table th,
    .data-table td,
    .data-table tr {
        display: block;
    }

    .data-table { border: 0; table-layout: auto !important; }
    .data-table thead { display: none; }
    .data-table tr {
        display: block;
        background: var(--surface-container);
        margin-bottom: var(--spacing-4);
        padding: var(--spacing-2);
        border: 1px solid rgba(255,255,255,0.05);
    }
    .data-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        text-align: right;
        padding: var(--spacing-3) var(--spacing-4);
        border-bottom: 1px solid rgba(255,255,255,0.05);
        white-space: normal !important;
        word-break: break-word;
    }
    .data-table td:last-child { border-bottom: 0; }
    .data-table td::before {
        content: attr(data-label);
        font-family: var(--font-headline);
        font-size: 0.625rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        color: var(--on-surface-variant);
        text-align: left;
        margin-right: 1.5rem;
        flex-shrink: 0;
    }

    .data-table td[style*="text-align: right"],
    .data-table td .flex {
        justify-content: flex-end;
    }
}



/* — Badges — */
.badge {
    display: inline-block;
    padding: var(--spacing-1) var(--spacing-3);
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-family: var(--font-body);
}
.badge-active { background: rgba(76, 175, 80, 0.15); color: var(--success); }
.badge-inactive { background: rgba(255, 180, 171, 0.15); color: var(--error); }
.badge-pending { background: rgba(198, 198, 203, 0.15); color: var(--secondary); }

/* — Flash Messages — */
.flash-messages {
    position: fixed;
    top: var(--spacing-4);
    right: var(--spacing-4);
    z-index: 200;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}
.flash {
    padding: var(--spacing-3) var(--spacing-6);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    max-width: 400px;
    animation: flashIn 0.3s ease;
}
.flash-success { background: rgba(76, 175, 80, 0.9); color: #000; }
.flash-error { background: rgba(147, 0, 10, 0.9); color: var(--error); }
.flash-warning { background: rgba(255, 152, 0, 0.9); color: #000; }
.flash-info { background: var(--surface-container-highest); color: var(--on-surface); }

@keyframes flashIn {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

/* — Pagination — */
.pagination {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-6) 0 0 0;
    margin-top: var(--spacing-6);
    border-top: 1px solid rgba(255,255,255,0.05);
}
.pagination-info {
    font-size: 0.75rem;
    color: var(--on-surface-variant);
    font-weight: 500;
}
.pagination-controls {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
}
.pagination-numbers {
    display: flex;
    gap: var(--spacing-2);
}
.pagination-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--on-surface-variant);
    text-decoration: none;
    border: 1px solid rgba(255,255,255,0.1);
    transition: all 0.2s ease;
}
.pagination-number:hover {
    border-color: var(--primary);
    color: var(--primary);
}
.pagination-number.active {
    background: var(--primary);
    color: var(--on-primary);
    border-color: var(--primary);
}
.btn.disabled {
    opacity: 0.3;
    pointer-events: none;
}

@media (max-width: 768px) {
    .pagination {
        flex-direction: column;
        gap: var(--spacing-4);
        text-align: center;
    }
    .pagination-numbers {
        display: none; /* Hide page numbers on mobile for simplicity */
    }
}


/* — Hero Section — */
.hero {
    position: relative;
    width: 100%;
    min-height: 90vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: #000;
}
.hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: 0.4;
}
.hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.hero-gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #000 0%, rgba(0,0,0,0.6) 50%, transparent 100%);
}
.hero-content {
    position: relative;
    z-index: 10;
    max-width: 56rem;
    padding: var(--spacing-16) var(--spacing-6);
}
.hero-title {
    font-size: clamp(3rem, 12vw, 8rem);
    font-weight: 900;
    font-style: italic;
    line-height: 0.85;
    letter-spacing: -0.05em;
}


/* — Bento Grid — */
.bento-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--spacing-6);
}
.bento-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: var(--spacing-8);
    min-height: 350px;
}
.bento-3 { grid-column: span 3; min-height: 400px; padding: var(--spacing-12); }
.bento-2 { grid-column: span 2; }

/* — Footer — */
.footer {
    background: #000;
    padding: var(--spacing-24) var(--spacing-6) var(--spacing-12);
    border-top: 1px solid rgba(255,255,255,0.05);
}
.footer-content {
    max-width: 1280px;
    margin: 0 auto;
}
.footer-top {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: var(--spacing-12);
    margin-bottom: var(--spacing-12);
}
.footer-links { display: flex; flex-wrap: wrap; gap: var(--spacing-8); }
.footer-links a {
    color: rgba(255,255,255,0.25);
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    transition: color var(--transition);
}
.footer-links a:hover { color: var(--primary); }
.footer-bottom {
    padding-top: var(--spacing-8);
    border-top: 1px solid rgba(255,255,255,0.05);
    text-align: center;
    color: rgba(255,255,255,0.15);
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
}

/* — Achievement Cards — */
.achievement-card {
    background: var(--surface-container);
    padding: var(--spacing-6);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}
.achievement-card.locked { opacity: 0.4; }
.achievement-icon {
    width: 48px;
    height: 48px;
    background: var(--surface-container-high);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* — Progress Bar — */
.progress-bar {
    width: 100%;
    height: 6px;
    background: var(--surface-container-high);
    overflow: hidden;
}
.progress-fill {
    height: 100%;
    background: var(--primary);
    transition: width 0.5s ease;
}

/* — Personal Records — */
.pr-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
}

@media (max-width: 1024px) {
    .pr-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
    .pr-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .pr-grid { grid-template-columns: 1fr; }
}

.pr-item {
    padding: var(--spacing-4) var(--spacing-6);
    border-right: 1px solid rgba(71, 71, 71, 0.15);
}
.pr-item:last-child { border-right: none; }
.pr-distance {
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--on-surface-variant);
    margin-bottom: var(--spacing-2);
}
.pr-time {
    font-family: var(--font-headline);
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.05em;
}
.pr-date {
    font-size: 0.625rem;
    color: var(--on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: var(--spacing-1);
}
.pr-new { color: var(--primary); font-weight: 700; }

/* — Race Calendar — */
.race-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    padding: var(--spacing-4) 0;
}
.race-date-badge {
    width: 50px;
    text-align: center;
    padding: var(--spacing-2);
    border: 1px solid rgba(255,255,255,0.1);
}
.race-date-month {
    font-size: 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--on-surface-variant);
}
.race-date-day {
    font-family: var(--font-headline);
    font-size: 1.25rem;
    font-weight: 700;
}

/* — Utilities — */
.container { max-width: 1280px; margin: 0 auto; padding: 0 var(--spacing-6); }
.flex { display: flex; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.gap-2 { gap: var(--spacing-2); }
.gap-4 { gap: var(--spacing-4); }
.gap-6 { gap: var(--spacing-6); }
.gap-8 { gap: var(--spacing-8); }
.mt-4 { margin-top: var(--spacing-4); }
.mt-6 { margin-top: var(--spacing-6); }
.mt-8 { margin-top: var(--spacing-8); }
.mb-4 { margin-bottom: var(--spacing-4); }
.mb-6 { margin-bottom: var(--spacing-6); }
.mb-8 { margin-bottom: var(--spacing-8); }
.pt-16 { padding-top: var(--spacing-16); }
.py-8 { padding-top: var(--spacing-8); padding-bottom: var(--spacing-8); }
.py-12 { padding-top: var(--spacing-12); padding-bottom: var(--spacing-12); }
.py-24 { padding-top: var(--spacing-24); padding-bottom: var(--spacing-24); }
.text-right { text-align: right; }
.text-center { text-align: center; }
.uppercase { text-transform: uppercase; }
.hidden { display: none; }

/* — Import Progress + Result components — */
.import-progress {
    padding: var(--spacing-12);
    text-align: center;
    animation: fadeIn 0.3s ease;
}
.import-progress-inner {
    max-width: 400px;
    margin: 0 auto;
}
.import-progress-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-6);
}
.import-spin {
    animation: spin 1.5s linear infinite;
}
@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.import-result {
    padding: var(--spacing-12);
    text-align: center;
    animation: fadeIn 0.3s ease;
}
.import-result-inner {
    max-width: 400px;
    margin: 0 auto;
}
.import-result-details {
    margin-top: var(--spacing-6);
    text-align: left;
}
.import-result-stat {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    margin-bottom: var(--spacing-2);
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.import-result-stat .material-symbols-outlined { font-size: 20px; }
.import-result-success {
    background: rgba(76, 175, 80, 0.1);
    color: var(--success);
}
.import-result-warning {
    background: rgba(255, 152, 0, 0.1);
    color: #ff9800;
}
.import-result-error {
    background: rgba(147, 0, 10, 0.1);
    color: var(--error);
}

.integration-sync-panel {
    padding: var(--spacing-5);
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.02);
}

.integration-sync-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--spacing-3);
}

.integration-sync-stat {
    padding: var(--spacing-3);
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.05);
    text-align: center;
}

.integration-sync-stat-value {
    display: block;
    font-family: var(--font-headline);
    font-weight: 900;
    font-size: 1rem;
    color: var(--on-surface);
}

.integration-sync-stat-label {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.625rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--on-surface-variant);
}

/* — Responsive — */
@media (max-width: 1024px) {
    .grid-4 { grid-template-columns: repeat(2, 1fr); }
    .grid-5 { grid-template-columns: repeat(3, 1fr); }
    .bento-grid { grid-template-columns: 1fr 1fr; }
    .bento-3, .bento-2 { grid-column: span 1; }
    .pr-grid { grid-template-columns: repeat(3, 1fr); }
    .integration-sync-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
    /* Sidebar: hidden off-screen, slides in on .open */
    .sidebar {
        transform: translateX(-100%);
    }
    .sidebar.open {
        transform: translateX(0);
    }

    /* Show the hamburger toggle */
    .sidebar-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* Show the close button inside the sidebar */
    .sidebar-close {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .main-content {
        margin-left: 0;
        padding-top: calc(var(--spacing-16) + var(--spacing-4)); /* space for hamburger */
    }

    .topnav-links { display: none; }
    .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
    .bento-grid { grid-template-columns: 1fr; }
    .pr-grid { grid-template-columns: repeat(2, 1fr); }
    .hero-title { font-size: 3rem; }
    .kpi-value { font-size: 2rem; }
    .footer-top { flex-direction: column; }
    .main-header { 
        flex-direction: column; 
        align-items: stretch; 
        gap: var(--spacing-4); 
        text-align: center;
    }
    .main-header .flex {
        justify-content: center;
    }
    .main-header .btn {
        width: 100%;
        justify-content: center;
    }
    .integration-sync-stats { grid-template-columns: 1fr 1fr; }
}


/* — Material Symbols config — */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.material-filled {
    font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* — Connected Services Bar — */
.services-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-12) var(--spacing-6);
    opacity: 0.4;
    filter: grayscale(100%);
    transition: all 0.5s ease;
    border-top: 1px solid rgba(255,255,255,0.05);
    border-bottom: 1px solid rgba(255,255,255,0.05);
}
.services-bar:hover { opacity: 1; filter: grayscale(0%); }
.service-name {
    font-family: var(--font-headline);
    font-size: 1.5rem;
    font-weight: 900;
    letter-spacing: -0.05em;
    cursor: crosshair;
    transition: color var(--transition);
}
.service-name:hover { color: var(--primary); }

/* — Section titles — */
.section-title {
    font-family: var(--font-headline);
    font-size: 1.75rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: -0.03em;
    margin-bottom: var(--spacing-6);
}

/* — Charts container — */
.chart-container { position: relative; height: 300px; }

/* — Page header bar with sync and actions — */
.page-header-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-4) var(--spacing-6);
    background: var(--surface-container-low);
    margin-bottom: var(--spacing-6);
}

/* — Upload zone — */
.upload-zone {
    border: 2px dashed var(--outline-variant);
    padding: var(--spacing-12);
    text-align: center;
    cursor: pointer;
    transition: all var(--transition);
}
.upload-zone:hover {
    border-color: var(--primary);
    background: rgba(255,255,255,0.02);
}
.upload-zone.dragover {
    border-color: var(--primary);
    background: rgba(255,255,255,0.05);
}

/* — Grain overlay (subtle texture) — */
.grain-overlay {
    position: fixed;
    inset: 0;
    opacity: 0.03;
    pointer-events: none;
    z-index: 100;
    background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 256 256%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cfilter id=%27noise%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.9%27 numOctaves=%274%27 stitchTiles=%27stitch%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url%28%23noise%29%27 opacity=%270.5%27/%3E%3C/svg%3E");
}

/* — Auth pages — */
.auth-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-6);
}
.auth-card {
    width: 100%;
    max-width: 500px;
    background: var(--surface-container);
    padding: var(--spacing-12);
}
.auth-title {
    font-size: 3rem;
    font-weight: 900;
    text-align: center;
    margin-bottom: var(--spacing-2);
}
.auth-subtitle {
    text-align: center;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--on-surface-variant);
    margin-bottom: var(--spacing-8);
}

/* — Selection — */
::selection { background: var(--primary); color: var(--on-primary); }

/* — Scrollbar — */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--surface); }
::-webkit-scrollbar-thumb { background: var(--surface-container-highest); }
::-webkit-scrollbar-thumb:hover { background: var(--outline); }

/* — Activity Detail — */
.activity-detail-inline-link {
    color: var(--primary);
    font-weight: 700;
}

.activity-detail-page {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-8);
}

.activity-detail-toolbar {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing-4);
    padding: var(--spacing-4) var(--spacing-6);
    margin: calc(var(--spacing-6) * -1) calc(var(--spacing-6) * -1) 0;
    background: rgba(0, 0, 0, 0.82);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.activity-detail-toolbar-link {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    font-family: var(--font-headline);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--primary);
}

.activity-detail-toolbar-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
}

.activity-detail-toolbar-button[disabled] {
    opacity: 0.6;
    cursor: not-allowed;
}

.activity-detail-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-8);
    padding-top: var(--spacing-6);
}

.activity-detail-header-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-3);
}

.activity-detail-type-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.35rem 0.75rem;
    background: var(--primary);
    color: var(--on-primary);
    font-family: var(--font-headline);
    font-size: 0.625rem;
    font-weight: 900;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.activity-detail-date-location {
    color: var(--on-surface-variant);
    font-family: var(--font-headline);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.activity-detail-title {
    max-width: 900px;
    font-size: clamp(3.5rem, 7vw, 5.75rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 0.88;
    margin-bottom: var(--spacing-4);
}

.activity-detail-source {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    color: var(--on-surface-variant);
    font-size: 0.875rem;
}

.activity-detail-source .material-symbols-outlined {
    font-size: 1rem;
}

.activity-detail-hero-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1px;
    background: rgba(71,71,71,0.2);
}

.activity-detail-metric-card {
    background: var(--surface-container-low);
    min-height: 126px;
    padding: var(--spacing-6);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: var(--spacing-3);
}

.activity-detail-metric-card--secondary {
    min-height: 0;
    padding: var(--spacing-4);
    border: 1px solid rgba(255,255,255,0.05);
}

.activity-detail-metric-label {
    font-family: var(--font-headline);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--on-surface-variant);
}

.activity-detail-metric-value-row {
    display: flex;
    align-items: baseline;
    gap: var(--spacing-2);
    flex-wrap: wrap;
}

.activity-detail-metric-value {
    font-family: var(--font-headline);
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 1;
    color: var(--primary);
}

.activity-detail-metric-card--secondary .activity-detail-metric-value {
    font-size: 1.4rem;
}

.activity-detail-metric-unit {
    color: var(--on-surface-variant);
    font-family: var(--font-headline);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.activity-detail-metric-meta {
    color: var(--on-surface-variant);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.activity-detail-metric-card.is-empty .activity-detail-metric-value {
    color: var(--outline);
}

.activity-detail-map-section {
    margin-top: var(--spacing-2);
}

.activity-detail-map-shell {
    position: relative;
    min-height: 510px;
    overflow: hidden;
    background:
        radial-gradient(circle at 85% 12%, rgba(255,255,255,0.08), transparent 30%),
        linear-gradient(135deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01)),
        linear-gradient(180deg, var(--surface-container-lowest), var(--surface));
}

.activity-detail-map-shell--empty {
    display: grid;
    place-items: center;
}

.activity-detail-map-canvas {
    position: absolute;
    inset: 0;
    isolation: isolate;
}

.activity-detail-map-leaflet {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.activity-detail-map-leaflet:focus-visible {
    outline: 2px solid rgba(255,255,255,0.78);
    outline-offset: -2px;
}

.activity-detail-map-grid,
.activity-detail-map-radial {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.activity-detail-map-grid {
    background:
        linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: 28px 28px;
    mix-blend-mode: screen;
    opacity: 0.55;
}

.activity-detail-map-radial {
    background:
        radial-gradient(circle at 72% 30%, rgba(255,255,255,0.08), transparent 20%),
        radial-gradient(circle at 22% 70%, rgba(255,255,255,0.06), transparent 24%);
}

.activity-detail-map-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    opacity: 0;
    transition: opacity 160ms linear;
    pointer-events: none;
}

.activity-detail-map-canvas.is-fallback .activity-detail-map-svg {
    opacity: 1;
}

.activity-detail-map-canvas.is-fallback .activity-detail-map-leaflet {
    opacity: 0;
    pointer-events: none;
}

.activity-detail-map-shell .leaflet-container {
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle at 85% 12%, rgba(255,255,255,0.08), transparent 30%),
        linear-gradient(135deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01)),
        linear-gradient(180deg, var(--surface-container-lowest), var(--surface));
    font-family: var(--font-body);
}

.activity-detail-map-shell .leaflet-pane,
.activity-detail-map-shell .leaflet-control {
    filter: saturate(0.96) contrast(1.04);
}

.activity-detail-map-shell .leaflet-tile {
    filter: brightness(0.9) contrast(1.06) saturate(0.8);
}

.activity-detail-map-shell .leaflet-control-container,
.activity-detail-map-shell .leaflet-top,
.activity-detail-map-shell .leaflet-bottom {
    z-index: 3;
}

.activity-detail-map-shell .leaflet-top.leaflet-right {
    top: var(--spacing-6);
    right: var(--spacing-6);
}

.activity-detail-map-shell .leaflet-control-zoom,
.activity-detail-map-shell .leaflet-control-attribution {
    margin: 0;
    border: 0;
    box-shadow: none;
}

.activity-detail-map-shell .leaflet-control-zoom {
    display: grid;
    gap: 1px;
    overflow: hidden;
    background: rgba(255,255,255,0.08);
}

.activity-detail-map-shell .leaflet-control-zoom a {
    width: 44px;
    height: 44px;
    line-height: 42px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 0;
    background: rgba(19,19,19,0.82);
    color: var(--primary);
    font-family: var(--font-headline);
    font-size: 1.45rem;
    font-weight: 700;
    transition: background-color 150ms linear, color 150ms linear;
}

.activity-detail-map-shell .leaflet-control-zoom a:hover,
.activity-detail-map-shell .leaflet-control-zoom a:focus-visible {
    background: rgba(42,42,42,0.94);
    color: var(--primary);
}

.activity-detail-map-shell .leaflet-control-zoom a:focus-visible {
    outline: 2px solid rgba(255,255,255,0.78);
    outline-offset: -2px;
}

.activity-detail-map-shell .leaflet-control-attribution {
    background: rgba(19,19,19,0.72);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    padding: 0.35rem 0.5rem;
    color: var(--on-surface-variant);
    font-family: var(--font-headline);
    font-size: 0.48rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.activity-detail-map-shell .leaflet-control-attribution a {
    color: var(--primary);
}

.activity-detail-map-shell .leaflet-control-attribution a:hover {
    color: var(--primary-container);
}

.activity-detail-route-shadow {
    fill: none;
    stroke: rgba(255,255,255,0.16);
    stroke-width: 3.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.activity-detail-route-line {
    fill: none;
    stroke: #ffffff;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.activity-detail-route-marker {
    fill: #ffffff;
}

.activity-detail-route-marker--start {
    fill: rgba(255,255,255,0.75);
}

.activity-detail-route-marker--end {
    fill: #ffffff;
}

.activity-detail-map-overlay {
    position: absolute;
    z-index: 4;
    padding: var(--spacing-4);
    background: rgba(19,19,19,0.82);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255,255,255,0.08);
}

.activity-detail-map-overlay--top {
    top: var(--spacing-6);
    left: var(--spacing-6);
    max-width: 340px;
}

.activity-detail-map-overlay--bottom {
    right: var(--spacing-6);
    bottom: var(--spacing-6);
    width: min(290px, calc(100% - 3rem));
}

.activity-detail-map-overlay-label {
    margin-bottom: var(--spacing-2);
    font-family: var(--font-headline);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--on-surface-variant);
}

.activity-detail-map-overlay-value {
    font-family: var(--font-headline);
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--primary);
}

.activity-detail-elevation-bars {
    height: 72px;
    display: flex;
    align-items: flex-end;
    gap: 2px;
}

.activity-detail-elevation-bar {
    flex: 1;
    background: rgba(255,255,255,0.22);
}

.activity-detail-elevation-bar.is-accent {
    background: var(--primary);
}

.activity-detail-elevation-scale {
    margin-top: var(--spacing-2);
    display: flex;
    justify-content: space-between;
    color: var(--on-surface-variant);
    font-family: var(--font-headline);
    font-size: 0.5rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.activity-detail-elevation-empty {
    color: var(--outline);
    font-size: 0.75rem;
}

.activity-detail-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 0.9fr);
    gap: var(--spacing-8);
    align-items: start;
}

.activity-detail-content-main {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-8);
}

.activity-detail-content-side {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6);
}

.activity-detail-section-title,
.activity-detail-insights-header {
    font-family: var(--font-headline);
    font-size: 1.9rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    text-transform: uppercase;
    color: var(--primary);
}

.activity-detail-chart-card {
    padding: var(--spacing-6);
    background: var(--surface-container-low);
    border-left: 3px solid transparent;
}

.activity-detail-chart-card--primary {
    border-left-color: var(--primary);
}

.activity-detail-chart-card--muted {
    border-left-color: rgba(255,255,255,0.35);
}

.activity-detail-chart-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-6);
}

.activity-detail-chart-title {
    font-family: var(--font-headline);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--on-surface-variant);
}

.activity-detail-chart-summary {
    font-family: var(--font-headline);
    font-weight: 700;
    font-size: 0.875rem;
    color: var(--primary);
}

.activity-detail-chart-surface {
    position: relative;
    height: 240px;
    padding: var(--spacing-3) var(--spacing-4) var(--spacing-2);
    border-left: 1px solid rgba(71,71,71,0.15);
    border-bottom: 1px solid rgba(71,71,71,0.15);
}

.activity-detail-insights-panel {
    position: relative;
    overflow: hidden;
    padding: var(--spacing-8);
    background: var(--primary);
    color: var(--on-primary);
}

.activity-detail-insights-panel::after {
    content: '';
    position: absolute;
    top: -24px;
    right: -12px;
    width: 120px;
    height: 120px;
    background: linear-gradient(135deg, rgba(26,28,28,0.08), rgba(26,28,28,0));
    transform: rotate(25deg);
}

.activity-detail-insights-header {
    margin-bottom: var(--spacing-6);
    color: var(--on-primary);
}

.activity-detail-insights-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.activity-detail-insight-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-3);
}

.activity-detail-insight-item .material-symbols-outlined {
    font-size: 1.05rem;
    margin-top: 1px;
}

.activity-detail-insight-item p {
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.4;
}

.activity-detail-secondary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: rgba(71,71,71,0.2);
}

.activity-detail-equipment-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-4);
    padding: var(--spacing-6);
    background: var(--surface-container-high);
    border: 1px solid rgba(255,255,255,0.06);
}

.activity-detail-equipment-label {
    margin-bottom: var(--spacing-2);
    font-family: var(--font-headline);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--on-surface-variant);
}

.activity-detail-equipment-name {
    font-family: var(--font-headline);
    font-size: 1.15rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    text-transform: uppercase;
    color: var(--primary);
}

.activity-detail-equipment-card .material-symbols-outlined {
    color: var(--on-surface-variant);
    font-size: 2rem;
}

.activity-detail-splits-section {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-8);
}

.activity-detail-splits-header {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: var(--spacing-4);
}

.activity-detail-splits-meta {
    color: var(--on-surface-variant);
    font-family: var(--font-headline);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.activity-detail-splits-table-wrap {
    overflow-x: auto;
}

.activity-detail-splits-table {
    width: 100%;
    border-collapse: collapse;
}

.activity-detail-splits-table th,
.activity-detail-splits-table td {
    padding: var(--spacing-3) var(--spacing-4);
    text-align: right;
}

.activity-detail-splits-table th:first-child,
.activity-detail-splits-table td:first-child {
    text-align: left;
}

.activity-detail-splits-table th {
    color: var(--on-surface-variant);
    font-family: var(--font-headline);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(71,71,71,0.15);
}

.activity-detail-splits-table td {
    border-bottom: 1px solid rgba(71,71,71,0.08);
    color: var(--on-surface-variant);
    font-variant-numeric: tabular-nums;
}

.activity-detail-splits-table td:first-child {
    font-family: var(--font-headline);
    font-weight: 700;
    color: var(--primary);
}

.activity-detail-splits-table tbody tr:hover td {
    background: rgba(255,255,255,0.02);
}

.activity-detail-splits-table tbody tr.is-fastest td {
    background: rgba(255,255,255,0.08);
}

.activity-detail-splits-table tbody tr.is-slowest td {
    background: rgba(147, 0, 10, 0.15);
    color: #ffb4ab;
}

.activity-detail-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-3);
    min-height: 180px;
    padding: var(--spacing-8);
    text-align: center;
}

.activity-detail-state .material-symbols-outlined {
    font-size: 2rem;
    color: var(--outline);
}

.activity-detail-state h3,
.activity-detail-state h4 {
    font-size: 1.1rem;
    line-height: 1;
}

.activity-detail-state p {
    max-width: 420px;
    color: var(--on-surface-variant);
    font-size: 0.9rem;
}

.activity-detail-state-empty {
    background: rgba(255,255,255,0.015);
}

.activity-detail-state-error {
    min-height: 300px;
    background: rgba(147, 0, 10, 0.12);
    border: 1px solid rgba(255, 180, 171, 0.18);
}

.activity-detail-state-error .material-symbols-outlined {
    color: var(--error);
}

.activity-detail-state-loading {
    align-items: stretch;
    min-height: 180px;
}

.activity-detail-loading-line {
    height: 12px;
    border-radius: 0;
    background: linear-gradient(90deg, rgba(255,255,255,0.04), rgba(255,255,255,0.1), rgba(255,255,255,0.04));
    background-size: 220% 100%;
    animation: activityDetailShimmer 1.5s linear infinite;
}

.activity-detail-loading-line--short {
    width: 34%;
}

.activity-detail-loading-line--long {
    width: 82%;
}

@keyframes activityDetailShimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -20% 0; }
}

@media (max-width: 1024px) {
    .activity-detail-hero-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .activity-detail-content-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    .activity-detail-toolbar {
        flex-direction: column;
        align-items: stretch;
        margin-left: calc(var(--spacing-6) * -1);
        margin-right: calc(var(--spacing-6) * -1);
    }

    .activity-detail-toolbar-actions {
        width: 100%;
        justify-content: stretch;
    }

    .activity-detail-toolbar-actions .btn,
    .activity-detail-toolbar-actions .badge {
        flex: 1;
        justify-content: center;
    }

    .activity-detail-header {
        flex-direction: column;
        gap: var(--spacing-4);
    }

    .activity-detail-title {
        font-size: clamp(2.7rem, 14vw, 4rem);
    }

    .activity-detail-hero-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .activity-detail-map-shell {
        min-height: 380px;
    }

    .activity-detail-map-overlay--top,
    .activity-detail-map-overlay--bottom {
        width: calc(100% - 2rem);
        left: 1rem;
        right: 1rem;
    }

    .activity-detail-map-overlay--bottom {
        top: auto;
        bottom: 1rem;
    }

    .activity-detail-map-shell .leaflet-top.leaflet-right {
        top: 1rem;
        right: 1rem;
    }

    .activity-detail-map-shell .leaflet-control-zoom a {
        width: 40px;
        height: 40px;
        line-height: 38px;
    }

    .activity-detail-secondary-grid {
        grid-template-columns: 1fr;
    }

    .activity-detail-splits-header {
        flex-direction: column;
        align-items: flex-start;
    }
}


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