/*!************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./src/css/loficode.css ***!
  \************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Orbitron:wght@400;700&family=JetBrains+Mono:wght@400;500&display=swap);
/*!****************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./src/css/loficode.css (1) ***!
  \****************************************************************************/
/* Import the full styles from our design */

:root {
    /* Deep vaporwave */
    --bg-primary: linear-gradient(
        135deg,
        #1a0b2e 0%,
        #16213e 25%,
        #0f3460 75%,
        #533a7b 100%
    );
    --bg-secondary: rgba(26, 11, 46, 0.95);
    --bg-card: rgba(42, 25, 75, 0.9);
    --accent-primary: #ff0080;
    --accent-secondary: #00ced1;
    --accent-tertiary: #ff6b35;
    --text-primary: #e0e0ff;
    --text-secondary: #b8b3d4;
    --text-muted: #8a7ca8;
    --border-color: rgba(255, 0, 128, 0.3);
    --shadow-color: rgba(255, 107, 53, 0.2);
    --glow-color: rgba(0, 255, 255, 0.4);
    --code-bg: rgba(0, 0, 0, 0.8);
    --code-border: rgba(0, 255, 255, 0.2);
    --code-text: #f8f8f2;

    /* Button gradients for dark */
    --btn-gradient: linear-gradient(135deg, #ff0080 0%, #ff6b35 100%);
    --btn-gradient-hover: linear-gradient(135deg, #e6006b 0%, #e65f2e 100%);

    /* Tag gradients for dark */
    --tag-gradient: linear-gradient(135deg, #2a1b4b 0%, #3d2b5f 100%);
    --tag-text: #b8b3d4;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: "Inter", sans-serif;
    background: var(--bg-primary);
    background-attachment: fixed;
    color: var(--text-primary);
    line-height: 1.7;
    min-height: 100vh;
    transition: all 0.3s ease;
    padding-bottom: 80px;
}

/* Ensure consistent background for all page types */
.post-overlay-content,
.post-layout,
.container {
    background: transparent;
}

@media (max-width: 768px) {
    body {
        padding-bottom: 70px;
    }
}

@media (max-width: 480px) {
    body {
        padding-bottom: 60px;
    }
}

/* Header */
.site-header {
    background: var(--bg-secondary);
    backdrop-filter: blur(20px);
    padding: 0.5rem 0;
    position: sticky;
    top: 0;
    z-index: 100;
    border-bottom: 1px solid var(--border-color);
    box-shadow: 0 4px 20px var(--shadow-color);
}

@media (max-width: 768px) {
    header {
        padding: 0.5rem 0;
    }
}

nav {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 1rem;
    align-items: center;
}

.nav-left {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    min-width: 0; /* Allow shrinking */
}

.back-link {
    color: var(--accent-primary);
    text-decoration: none;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: all 0.3s ease;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    border: 1px solid transparent;
}

.back-link:hover {
    background: var(--accent-primary);
    color: white;
    border-color: var(--accent-primary);
    box-shadow: 0 4px 15px var(--glow-color);
}

.logo {
    font-family: "Orbitron", monospace;
    font-size: 1.5rem;
    font-weight: 700;
    background: var(--btn-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    max-width: 100%;
    flex-shrink: 1;
    line-height: 1.2;
    word-break: break-word;
}

.logo::before {
    content: "🧚‍♀️";
    font-size: 1.2rem;
    -webkit-text-fill-color: var(--accent-tertiary) !important;
    color: var(--accent-tertiary);
    filter: drop-shadow(0 0 8px var(--accent-tertiary));
    background: none;
}

.nav-links {
    display: flex;
    gap: 2rem;
    list-style: none;
}

.nav-links a {
    text-decoration: none;
    color: var(--text-primary);
    font-weight: 400;
    transition: color 0.3s ease;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    transition: all 0.3s ease;
}

.nav-links a:hover {
    background: var(--accent-secondary);
    color: white;
    box-shadow: 0 4px 15px var(--glow-color);
}

@media (max-width: 768px) {
    nav {
        grid-template-columns: 1fr auto;
        gap: 0.5rem;
    }

    .nav-links {
        display: none;
    }

    .logo {
        font-size: 1.2rem;
        white-space: normal;
        line-height: 1.2;
        max-width: calc(100vw - 120px);
    }
}

@media (max-width: 480px) {
    .logo {
        font-size: 1rem;
        max-width: calc(100vw - 100px);
    }

    .header-controls {
        gap: 0.5rem;
    }
}

.header-controls {
    display: flex;
    gap: 1rem;
    align-items: center;
}

.search-toggle,
.theme-toggle {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    padding: 0.5rem 1rem;
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.3s ease;
    color: var(--text-secondary);
    font-size: 0.9rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    backdrop-filter: blur(10px);
    box-shadow: 0 2px 10px var(--shadow-color);
}

@media (max-width: 768px) {
    .search-toggle,
    .theme-toggle {
        padding: 0.4rem 0.8rem;
        font-size: 0.85rem;
    }

    .search-toggle::after,
    .theme-toggle::after {
        display: none;
    }
}

.search-toggle:hover,
.theme-toggle:hover {
    background: var(--accent-secondary);
    color: white;
    border-color: var(--accent-secondary);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px var(--glow-color);
}

.theme-toggle:hover {
    background: var(--accent-primary);
    border-color: var(--accent-primary);
}

/* Sliding Search Form */
.search-form-container {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--bg-secondary);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--border-color);
    box-shadow: 0 4px 20px var(--shadow-color);
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 99;
}

.search-form-container.active {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
}

.search-form {
    max-width: 1000px;
    margin: 0 auto;
    padding: 1.5rem 1rem;
}

.search-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    background: var(--bg-card);
    border: 2px solid var(--border-color);
    border-radius: 25px;
    overflow: hidden;
    box-shadow: 0 4px 15px var(--shadow-color);
    transition: all 0.3s ease;
}

.search-input-wrapper:focus-within {
    border-color: var(--accent-primary);
    box-shadow: 0 6px 25px var(--glow-color);
}

#searchInput {
    flex: 1;
    padding: 1rem 1.5rem;
    border: none;
    background: transparent;
    color: var(--text-primary);
    font-size: 1rem;
    outline: none;
    font-family: "Inter", sans-serif;
}

#searchInput::placeholder {
    color: var(--text-muted);
}

.search-submit,
.search-close {
    background: transparent;
    border: none;
    padding: 1rem;
    cursor: pointer;
    color: var(--text-secondary);
    font-size: 1.1rem;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.search-submit:hover {
    color: var(--accent-primary);
    background: rgba(255, 0, 107, 0.1);
}

.search-close:hover {
    color: var(--accent-secondary);
    background: rgba(0, 206, 209, 0.1);
}

.search-results {
    margin-top: 1rem;
    max-height: 400px;
    overflow-y: auto;
    background: var(--bg-card);
    border-radius: 16px;
    border: 1px solid var(--border-color);
    box-shadow: 0 8px 32px var(--shadow-color);
    display: none;
}

.search-results.has-results {
    display: block;
}

.search-result-item {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--border-color);
    transition: all 0.3s ease;
    cursor: pointer;
}

.search-result-item:last-child {
    border-bottom: none;
}

.search-result-item:hover {
    background: rgba(255, 0, 107, 0.05);
    transform: translateX(4px);
}

.search-result-title {
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 0.25rem;
    font-size: 0.95rem;
}

.search-result-excerpt {
    color: var(--text-secondary);
    font-size: 0.85rem;
    line-height: 1.4;
}

.search-result-meta {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 0.5rem;
    font-size: 0.75rem;
    color: var(--text-muted);
}

.search-no-results {
    padding: 2rem;
    text-align: center;
    color: var(--text-muted);
    font-style: italic;
}

@media (max-width: 768px) {
    .search-form {
        padding: 1rem;
    }

    #searchInput {
        padding: 0.75rem 1rem;
        font-size: 0.9rem;
    }

    .search-submit,
    .search-close {
        padding: 0.75rem;
        font-size: 1rem;
    }
}

/* Reading Progress */
.reading-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 3px;
    background: var(--btn-gradient);
    z-index: 1000;
    transition: width 0.1s ease;
    box-shadow: 0 0 10px var(--glow-color);
}

/* Main Content */
.container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 2rem 1rem;
}

/* Post Layout for Wide Screens */
.post-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 3rem;
    align-items: start;
    margin-top: 2rem;
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    padding: 1rem;
}

@media (min-width: 1200px) {
    .post-layout {
        grid-template-columns: 1fr 320px;
        gap: 4rem;
        max-width: 1600px;
    }
}

@media (max-width: 1024px) {
    .post-layout {
        grid-template-columns: 1fr 280px;
        gap: 2rem;
        max-width: 1200px;
    }
}

@media (max-width: 768px) {
    .post-layout {
        grid-template-columns: 1fr;
        gap: 1rem;
        margin-top: 1rem;
        max-width: 1000px;
    }

    .sidebar {
        order: -1;
    }
}

/* Author Profile Section */
.author-profile-section {
    padding: 2rem 1.5rem;
    margin-bottom: 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.profile-photo-container {
    position: relative;
    margin-bottom: 1.5rem;
}

.profile-photo-container::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 170px;
    height: 170px;
    transform: translate(-50%, -52%);
    background: var(--btn-gradient);
    border-radius: 50%;
    animation: pulse-glow 3s ease-in-out infinite;
    z-index: 1;
}

@keyframes pulse-glow {
    0%,
    100% {
        opacity: 0.6;
        box-shadow: 0 0 10px var(--glow-color);
    }
    50% {
        opacity: 1;
        box-shadow: 0 0 20px var(--glow-color);
    }
}

.profile-photo {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    object-fit: cover;
    position: relative;
    z-index: 2;
    transition: transform 0.3s ease;
}

.profile-photo:hover {
    transform: scale(1.05);
}

.profile-tagline {
    font-size: 1.2rem;
    color: var(--text-primary);
    font-weight: 500;
    margin-bottom: 1.5rem;
    font-style: italic;
    max-width: 400px;
}

.social-links {
    display: flex;
    gap: 1rem;
    align-items: center;
}

.social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    background: transparent;
    border: none;
    border-radius: 50%;
    text-decoration: none;
    transition: all 0.3s ease;
    position: relative;
    overflow: visible;
}

.social-link:hover {
    transform: translateY(-2px) scale(1.1);
}

.social-icon {
    font-size: 1.8rem;
    transition: all 0.3s ease;
    text-shadow: 0 0 5px currentColor;
    opacity: 0.9;
}

/* GitHub - Purple/Dark */
.social-link[title="GitHub"] .social-icon {
    color: #6f42c1;
}

/* Twitter/X - Blue */
.social-link[title="X (formerly Twitter)"] .social-icon {
    color: #1da1f2;
}

/* LinkedIn - Professional Blue */
.social-link[title="LinkedIn"] .social-icon {
    color: #0077b5;
}

/* Email - Orange/Red */
.social-link[title="Email"] .social-icon {
    color: #ea4335;
}

/* Mastodon - Purple */
.social-link[title="Mastodon"] .social-icon {
    color: #6364ff;
}

/* YouTube - Red */
.social-link[title="YouTube"] .social-icon {
    color: #ff0000;
}

/* Instagram - Gradient Pink/Orange */
.social-link[title="Instagram"] .social-icon {
    color: #e4405f;
}

/* Facebook - Blue */
.social-link[title="Facebook"] .social-icon {
    color: #1877f2;
}

.x-icon {
    font-family: "Inter", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.social-link:hover .social-icon {
    transform: scale(1.1);
    text-shadow: 0 0 8px currentColor;
    opacity: 1;
    filter: brightness(1.2);
}

@keyframes social-pulse {
    0% {
        text-shadow:
            0 0 5px currentColor,
            0 0 10px currentColor;
    }
    100% {
        text-shadow:
            0 0 10px currentColor,
            0 0 20px currentColor;
    }
}

@media (max-width: 768px) {
    .author-profile-section {
        padding: 1.5rem 1rem;
    }

    .profile-photo-container::before {
        width: 108px;
        height: 108px;
    }

    .profile-photo {
        width: 100px;
        height: 100px;
    }

    .profile-tagline {
        font-size: 1.1rem;
    }

    .social-link {
        width: 45px;
        height: 45px;
    }

    .social-icon {
        font-size: 1.3rem;
    }
}

/* Filter Tags */
.filter-section {
    margin-bottom: 2rem;
}

.filter-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.tag {
    background: var(--bg-card);
    color: var(--text-primary);
    padding: 0.5rem 1rem;
    border-radius: 20px;
    border: 2px solid var(--border-color);
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 0.9rem;
}

.tag:hover {
    background: var(--accent-secondary);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px var(--glow-color);
}

.tag.active {
    background: var(--accent-primary);
    color: white;
    border-color: var(--accent-primary);
}

/* Posts List */
.posts-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.post-item {
    background: var(--bg-card);
    border-radius: 16px;
    padding: 1.5rem;
    box-shadow: 0 8px 32px var(--shadow-color);
    transition: all 0.3s ease;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: start;
    position: relative;
    overflow: hidden;
    border: 1px solid var(--border-color);
}

.post-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--btn-gradient);
}

.post-item:hover {
    transform: translateX(8px) translateY(-2px);
}

.post-item.featured {
    background: linear-gradient(
        135deg,
        var(--bg-card) 0%,
        rgba(255, 0, 107, 0.05) 100%
    );
}

.post-item.featured::before {
    background: linear-gradient(
        135deg,
        var(--accent-primary) 0%,
        var(--accent-secondary) 100%
    );
    width: 6px;
}

.post-content {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    max-width: 1000px;
    margin: 0 auto;
}

.post-header-inline {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    border: none;
}

.post-title-vaporwave {
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
    flex: 1;
}

.post-title-vaporwave a {
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
}

.post-title-vaporwave a:hover {
    background: var(--btn-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-shadow: 0 0 20px var(--glow-color);
}

.post-date-with-badges {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
}

.post-date {
    font-size: 0.8rem;
    color: var(--text-muted);
    white-space: nowrap;
    font-family: "JetBrains Mono", monospace;
}

.post-subtitle {
    color: var(--text-secondary);
    font-size: 0.95rem;
    font-style: italic;
    margin-bottom: 0.5rem;
}

.post-excerpt-vaporwave {
    color: var(--text-secondary);
    font-size: 0.95rem;
    line-height: 1.6;
    line-clamp: 2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.post-excerpt-vaporwave p {
    margin: 0;
    display: inline;
}

.post-excerpt-vaporwave strong,
.post-excerpt-vaporwave em,
.post-excerpt-vaporwave code {
    /* Reset any markdown styling in excerpts */
    font-weight: inherit;
    font-style: inherit;
    background: none;
    padding: 0;
    border-radius: 0;
    color: inherit;
}

.post-tags-vaporwave {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.post-tag-vaporwave {
    background: var(--tag-gradient);
    color: var(--tag-text);
    padding: 0.3rem 0.8rem;
    border-radius: 15px;
    font-size: 0.75rem;
    font-weight: 500;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

.post-tag-vaporwave:hover {
    background: var(--btn-gradient);
    color: white;
    transform: scale(1.05);
    box-shadow: 0 4px 15px var(--glow-color);
}

.post-meta-sidebar {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.75rem;
    min-width: 120px;
    text-align: right;
}

.reading-time-vaporwave {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--accent-tertiary);
    font-weight: 500;
    padding: 0.4rem 0.8rem;
    background: var(--bg-secondary);
    border-radius: 20px;
    border: 1px solid var(--border-color);
}

.coffee-cups {
    filter: drop-shadow(0 0 6px var(--accent-tertiary));
}

.post-mood {
    background: var(--btn-gradient);
    color: white;
    padding: 0.4rem 1rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 15px var(--glow-color);
}

.continue-reading-vaporwave {
    color: var(--accent-primary);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.continue-reading-vaporwave:hover {
    gap: 1rem;
    text-shadow: 0 0 10px var(--accent-primary);
    transform: translateX(4px);
}

.featured-badge {
    background: var(--btn-gradient);
    color: white;
    padding: 0.3rem 0.8rem;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-left: 0.5rem;
    box-shadow: 0 4px 15px var(--glow-color);
    animation: glow-pulse 2s ease-in-out infinite;
}

@keyframes glow-pulse {
    0%,
    100% {
        box-shadow: 0 4px 15px var(--glow-color);
    }
    50% {
        box-shadow: 0 6px 25px var(--glow-color);
    }
}

@media (max-width: 768px) {
    .post-item {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .post-meta-sidebar {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        min-width: auto;
        text-align: left;
    }
    .logo {
        font-size: 1.3rem;
    }

    .logo::before {
        font-size: 1rem;
    }

    .post-item {
        padding: 1.25rem;
    }
}

/* Blog Post Pages */
.post-content {
    padding: 1rem;
    position: relative;
    overflow: hidden;
    border: none;
    outline: none;
}

@media (max-width: 768px) {
    .post-content {
        padding: 0.5rem;
    }
}

/* Post Header */
.post-header {
    margin-bottom: 2rem;
    text-align: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 2rem;
}

.post-meta {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.reading-time-post {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: var(--accent-tertiary);
    font-weight: 500;
    padding: 0.5rem 1rem;
    background: var(--bg-secondary);
    border-radius: 20px;
    border: 1px solid var(--border-color);
}

.post-title {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 1rem;
    line-height: 1.2;
}

@media (max-width: 768px) {
    .post-title {
        font-size: 2rem;
    }
}

.post-list-subtitle {
    font-style: italic;
}

.post-subtitle {
    font-size: 1.2rem;
    color: var(--text-secondary);
    font-weight: 400;
    max-width: 600px;
    margin: 0 auto;
}

.post-tags-header {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.post-tag {
    background: var(--btn-gradient);
    color: white;
    padding: 0.3rem 1rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

a.post-tag {
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
}

/* Typography */
.post-body h2 {
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--text-primary);
    margin: 2.5rem 0 1rem 0;
    position: relative;
}

.post-body h2::before {
    content: "";
    position: absolute;
    left: -2rem;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 1.5rem;
    background: var(--btn-gradient);
    border-radius: 2px;
}

.post-body h3 {
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--text-primary);
    margin: 2rem 0 1rem 0;
}

.post-body p {
    margin-bottom: 1.5rem;
    color: var(--text-secondary);
    font-size: 1.05rem;
}

.post-body ul,
.post-body ol {
    margin: 1.5rem 0;
    padding-left: 2rem;
}

.post-body li {
    margin-bottom: 0.5rem;
    color: var(--text-secondary);
}

.post-body strong {
    color: var(--text-primary);
    font-weight: 600;
}

.post-body em {
    color: var(--accent-primary);
    font-style: normal;
    font-weight: 500;
}

/* Code Blocks */
.code-block {
    position: relative;
    margin: 2rem 0;
    border-radius: 12px;
    overflow: hidden;
    background: var(--code-bg);
    border: 1px solid var(--code-border);
    box-shadow: 0 8px 32px var(--shadow-color);
}

.code-header {
    background: var(--btn-gradient);
    color: white;
    padding: 0.75rem 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.85rem;
    font-weight: 500;
}

.code-lang {
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.copy-btn {
    background: rgba(255, 255, 255, 0.2);
    border: none;
    color: white;
    padding: 0.4rem 0.8rem;
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 500;
    transition: all 0.3s ease;
}

.copy-btn:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: scale(1.05);
}

.code-content {
    font-family: "JetBrains Mono", monospace;
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--text-primary);
    overflow-x: auto;
}

@media (max-width: 768px) {
    .code-content {
        padding: 1rem;
    }
}

pre,
pre code {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: normal;
}

/* Coffee Break Callout */
.coffee-break {
    background: linear-gradient(
        135deg,
        var(--bg-card) 0%,
        rgba(255, 127, 80, 0.1) 100%
    );
    border: 2px solid var(--accent-tertiary);
    border-radius: 16px;
    padding: 1.5rem;
    margin: 2rem 0;
    text-align: center;
    position: relative;
}

/*.coffee-break::before {
    content: "☕";
    font-size: 2rem;
    position: absolute;
    top: -2rem;
    left: 50%;
    transform: translateX(-50%);
    padding: 0 0.5rem;
    filter: drop-shadow(0 0 10px var(--accent-tertiary));
}*/

.coffee-break h4 {
    color: var(--accent-tertiary);
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.coffee-break p {
    color: var(--text-secondary);
    font-style: italic;
    margin: 0;
}

/* Sidebar */
.sidebar {
    position: sticky;
    top: 120px;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    height: fit-content;
    max-height: calc(100vh - 140px);
    overflow-y: auto;
}

.toc {
    display: flex;
    flex-direction: column;
    background: var(--bg-card);
    border-radius: 16px;
    box-shadow: 0 8px 32px var(--shadow-color);
    border: 1px solid var(--border-color);
    backdrop-filter: blur(10px);
    position: relative;
    overflow: hidden;
}

.toc::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--btn-gradient);
    border-radius: 16px 16px 0 0;
    z-index: 2;
}

.toc h4 {
    color: var(--text-primary);
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
    padding: 1.5rem 1.5rem 1rem 1.5rem;
    text-align: center;
    background: var(--bg-card);
    position: relative;
    z-index: 1;
    flex-shrink: 0;
}

#toc-content {
    flex: 1;
    overflow-y: auto;
    padding: 0 1.5rem 1.5rem 1.5rem;
    max-height: calc(100vh - 300px);
}

@media (max-width: 1024px) {
    .sidebar {
        top: 100px;
        max-height: calc(100vh - 120px);
    }

    .toc {
        padding: 1.25rem;
    }
}

@media (max-width: 768px) {
    .sidebar {
        display: none;
    }
}

#toc-content ul {
    list-style: none;
    padding: 0;
}

#toc-content li {
    margin-bottom: 0.5rem;
}

#toc-content a {
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.85rem;
    transition: all 0.3s ease;
    padding: 0.25rem 0.5rem;
    border-radius: 8px;
    display: block;
}

#toc-content a:hover {
    color: var(--accent-primary);
    background: rgba(255, 0, 107, 0.1);
    transform: translateX(4px);
}

#toc-content .active {
    color: var(--accent-primary);
    background: rgba(255, 0, 107, 0.1);
    font-weight: 500;
}

/* Related Posts */
.related-posts {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--border-color);
}

.related-posts h3 {
    text-align: center;
    color: var(--text-primary);
    margin-bottom: 1.5rem;
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
}

.related-post {
    background: var(--bg-secondary);
    border-radius: 12px;
    padding: 1rem;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

.related-post:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px var(--shadow-color);
}

.related-post h4 {
    font-size: 0.95rem;
    color: var(--text-primary);
    margin-bottom: 0.5rem;
}

.related-post a {
    color: inherit;
    text-decoration: none;
    transition: all 0.3s ease;
}

.related-post a:hover {
    background: var(--btn-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.related-meta {
    font-size: 0.8rem;
    color: var(--text-muted);
}

/* Post Navigation (Prev/Next) */
.post-navigation {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--border-color);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

.nav-previous,
.nav-next {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.5rem;
    background: var(--bg-card);
    border-radius: 12px;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
    text-decoration: none;
}

.nav-previous:hover,
.nav-next:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px var(--shadow-color);
}

.nav-previous {
    text-align: left;
}

.nav-next {
    text-align: right;
}

.nav-label {
    font-size: 0.85rem;
    color: var(--text-muted);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.nav-title {
    font-size: 1rem;
    color: var(--text-primary);
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}

.nav-title:hover {
    background: var(--btn-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

@media (max-width: 768px) {
    .post-navigation {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .nav-previous,
    .nav-next {
        padding: 1rem;
        text-align: center;
    }
}

/* Pagination */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    margin-top: 3rem;
    padding: 2rem 0;
}

.pagination-btn {
    background: white;
    border: 2px solid var(--border-color);
    color: var(--text-primary);
    padding: 0.75rem 1.25rem;
    border-radius: 20px;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pagination-btn:hover {
    background: var(--accent-secondary);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px var(--glow-color);
}

.pagination-info {
    background: var(--accent-secondary);
    color: white;
    padding: 0.75rem 1.25rem;
    border-radius: 20px;
    font-size: 0.9rem;
    font-weight: 500;
}

/* Ambient Sound Bar - Sticky Bottom */
.ambient-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--bg-secondary);
    backdrop-filter: blur(20px);
    border-top: 1px solid var(--border-color);
    box-shadow: 0 -4px 20px var(--shadow-color);
    padding: 0.75rem;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

@media (max-width: 768px) {
    .ambient-bar {
        padding: 0.75rem;
        gap: 0.5rem;
    }
}

.ambient-controls {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

@media (max-width: 768px) {
    .ambient-controls {
        gap: 0.5rem;
    }
}

.ambient-icon {
    background: var(--bg-card);
    width: 36px;
    height: 36px;
    border: 3px solid var(--border-color);
    padding: 0.3rem;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    font-size: 0.8rem;
    color: var(--text-muted);
    position: relative;
    box-shadow:
        0 4px 0 var(--border-color),
        0 4px 8px rgba(0, 0, 0, 0.2);
    image-rendering: pixelated;
    image-rendering: -moz-crisp-edges;
    image-rendering: crisp-edges;
}

.ambient-icon i {
    filter: drop-shadow(1px 1px 0 rgba(0, 0, 0, 0.3));
    image-rendering: pixelated;
    image-rendering: -moz-crisp-edges;
    image-rendering: crisp-edges;
}

@media (max-width: 768px) {
    .ambient-icon {
        padding: 0.6rem;
        font-size: 0.8rem;
        border-width: 2px;
        box-shadow:
            0 3px 0 var(--border-color),
            0 3px 6px rgba(0, 0, 0, 0.2);
    }
}

.ambient-icon:hover {
    border-color: var(--accent-secondary);
    color: var(--accent-secondary);
    transform: translateY(-2px);
    box-shadow:
        0 6px 0 var(--accent-secondary),
        0 6px 12px rgba(0, 206, 209, 0.3);
}

.ambient-icon:active {
    transform: translateY(2px);
    box-shadow:
        0 2px 0 var(--border-color),
        0 2px 4px rgba(0, 0, 0, 0.2);
}

.ambient-icon.active {
    background: var(--btn-gradient);
    border-color: var(--accent-primary);
    color: white;
    transform: translateY(-1px);
    box-shadow:
        0 5px 0 var(--accent-primary),
        0 5px 15px var(--glow-color),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
    animation: pixel-glow 2s ease-in-out infinite alternate;
}

@keyframes pixel-glow {
    0% {
        box-shadow:
            0 5px 0 var(--accent-primary),
            0 5px 15px var(--glow-color),
            inset 0 1px 0 rgba(255, 255, 255, 0.2);
    }
    100% {
        box-shadow:
            0 5px 0 var(--accent-primary),
            0 5px 20px var(--glow-color),
            inset 0 1px 0 rgba(255, 255, 255, 0.3);
    }
}

.mute-toggle {
    background: var(--bg-card);
    border: 3px solid var(--accent-primary);
    width: 36px;
    height: 36px;
    padding: 0.3rem;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    font-size: 1rem;
    color: var(--accent-primary);
    margin-right: 0.75rem;
    box-shadow:
        0 4px 0 var(--accent-primary),
        0 4px 8px rgba(255, 0, 107, 0.2);
    image-rendering: pixelated;
    image-rendering: -moz-crisp-edges;
    image-rendering: crisp-edges;
}

.mute-toggle i {
    filter: drop-shadow(1px 1px 0 rgba(0, 0, 0, 0.3));
    image-rendering: pixelated;
    image-rendering: -moz-crisp-edges;
    image-rendering: crisp-edges;
}

@media (max-width: 768px) {
    .mute-toggle {
        padding: 0.6rem;
        font-size: 0.8rem;
        border-width: 2px;
        margin-right: 0.5rem;
        box-shadow:
            0 3px 0 var(--accent-primary),
            0 3px 6px rgba(255, 0, 107, 0.2);
    }
}

.mute-toggle.muted {
    background: var(--text-muted);
    border-color: var(--text-muted);
    color: white;
    box-shadow:
        0 4px 0 var(--text-muted),
        0 4px 8px rgba(0, 0, 0, 0.3);
}

.mute-toggle:hover {
    transform: translateY(-2px);
    box-shadow:
        0 6px 0 var(--accent-primary),
        0 6px 12px rgba(255, 0, 107, 0.4);
}

.mute-toggle:active {
    transform: translateY(2px);
    box-shadow:
        0 2px 0 var(--accent-primary),
        0 2px 4px rgba(255, 0, 107, 0.2);
}

.mute-toggle.muted:hover {
    box-shadow:
        0 6px 0 var(--text-muted),
        0 6px 12px rgba(0, 0, 0, 0.4);
}

.ambient-label {
    font-size: 0.85rem;
    color: var(--text-secondary);
    font-weight: 500;
    min-width: 120px;
}

@media (max-width: 768px) {
    .ambient-label {
        font-size: 0.75rem;
        min-width: 80px;
        flex-shrink: 1;
    }
}

@media (max-width: 480px) {
    .ambient-label {
        display: none;
    }
}

/* Equalizer Animation */
.equalizer {
    display: flex;
    align-items: flex-end;
    gap: 2px;
    height: 24px;
    margin-left: auto;
}

@media (max-width: 768px) {
    .equalizer {
        height: 18px;
        gap: 1px;
    }
}

.equalizer-bar {
    width: 3px;
    background: var(--btn-gradient);
    border-radius: 2px;
    animation: equalizer 1.5s ease-in-out infinite;
}

@media (max-width: 768px) {
    .equalizer-bar {
        width: 2px;
    }
}

.equalizer-bar:nth-child(1) {
    height: 8px;
    animation-delay: 0s;
    animation-duration: 1.2s;
}
.equalizer-bar:nth-child(2) {
    height: 12px;
    animation-delay: 0.1s;
    animation-duration: 1.4s;
}
.equalizer-bar:nth-child(3) {
    height: 16px;
    animation-delay: 0.2s;
    animation-duration: 1.1s;
}
.equalizer-bar:nth-child(4) {
    height: 6px;
    animation-delay: 0.3s;
    animation-duration: 1.6s;
}
.equalizer-bar:nth-child(5) {
    height: 14px;
    animation-delay: 0.4s;
    animation-duration: 1.3s;
}
.equalizer-bar:nth-child(6) {
    height: 10px;
    animation-delay: 0.5s;
    animation-duration: 1.5s;
}
.equalizer-bar:nth-child(7) {
    height: 18px;
    animation-delay: 0.6s;
    animation-duration: 1.2s;
}
.equalizer-bar:nth-child(8) {
    height: 8px;
    animation-delay: 0.7s;
    animation-duration: 1.4s;
}

@media (max-width: 768px) {
    .equalizer-bar:nth-child(1) {
        height: 6px;
    }
    .equalizer-bar:nth-child(2) {
        height: 9px;
    }
    .equalizer-bar:nth-child(3) {
        height: 12px;
    }
    .equalizer-bar:nth-child(4) {
        height: 4px;
    }
    .equalizer-bar:nth-child(5) {
        height: 10px;
    }
    .equalizer-bar:nth-child(6) {
        height: 7px;
    }
    .equalizer-bar:nth-child(7) {
        height: 14px;
    }
    .equalizer-bar:nth-child(8) {
        height: 6px;
    }
}

@keyframes equalizer {
    0%,
    100% {
        transform: scaleY(0.3);
        opacity: 0.6;
    }
    50% {
        transform: scaleY(1);
        opacity: 1;
    }
}

/* Muted equalizer just changes opacity, but keeps animating */
.equalizer.muted .equalizer-bar {
    opacity: 0.3;
}

/* Volume Slider */
.volume-container {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.volume-slider {
    width: 80px;
    height: 4px;
    background: var(--border-color);
    border-radius: 2px;
    outline: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

@media (max-width: 768px) {
    .volume-slider {
        width: 60px;
        height: 3px;
    }
}

@media (max-width: 480px) {
    .volume-slider {
        width: 40px;
    }
}

.volume-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    background: var(--btn-gradient);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 2px 8px var(--glow-color);
}

.volume-slider::-moz-range-thumb {
    width: 16px;
    height: 16px;
    background: var(--btn-gradient);
    border-radius: 50%;
    cursor: pointer;
    border: none;
    box-shadow: 0 2px 8px var(--glow-color);
}

/* Footer */
footer {
    background: var(--text-primary);
    color: var(--bg-card);
    text-align: center;
    padding: 2rem 1rem;
    margin-top: 4rem;
}

.footer-content {
    max-width: 1000px;
    margin: 0 auto;
}

.footer-links {
    margin-top: 1rem;
    display: flex;
    justify-content: center;
    gap: 2rem;
}

.footer-links a {
    color: var(--accent-tertiary);
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-links a:hover {
    color: var(--accent-secondary);
}

/* Markdown Code Fences - Auto-styled to match shortcode */
.highlight {
    position: relative;
    margin: 2rem 0;
    border-radius: 12px;
    overflow: hidden;
    background: var(--code-bg);
    border: 1px solid var(--code-border);
    box-shadow: 0 8px 32px var(--shadow-color);
}

.highlight::before {
    content: attr(data-lang);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    background: var(--btn-gradient);
    color: white;
    padding: 0.75rem 1rem;
    font-size: 0.85rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 2;
}

.highlight::after {
    content: "Copy";
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    background: rgba(255, 255, 255, 0.2);
    color: white;
    padding: 0.4rem 0.8rem;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 3;
    border: none;
    user-select: none;
}

.highlight:hover::after {
    background: rgba(255, 255, 255, 0.3);
}

.highlight[data-copied="true"]::after {
    content: "✓";
    background: rgba(255, 255, 255, 0.9);
    color: var(--accent-primary);
}

.highlight pre {
    margin: 0;
    padding: 3.5rem 1rem 1rem 1rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--code-text) !important;
    overflow-x: auto;
    background: var(--code-bg) !important;
}

/* Add proper spacing between line numbers and code */
.highlight .chroma .lnt,
.highlight .chroma .ln {
    margin-right: 1rem !important;
    padding-right: 1rem !important;
    border-right: 1px solid var(--border-color) !important;
    color: var(--text-muted) !important;
    user-select: none;
}

.highlight .chroma .lntd:first-child {
    padding-right: 0 !important;
}

.highlight .chroma .lntd:last-child {
    padding-left: 1rem !important;
}

/* Ensure line number table has proper spacing */
.highlight .chroma .lntable {
    border-spacing: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    width: 100% !important;
}

.highlight .chroma .lntable td {
    vertical-align: top !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}

.highlight code {
    font-family: "JetBrains Mono", monospace;
    background: transparent !important;
    padding: 0;
    border-radius: 0;
    color: var(--code-text) !important;
}

/* Override Hugo's Chroma syntax highlighting inline styles */
.highlight pre[style] {
    background: var(--code-bg) !important;
    color: var(--code-text) !important;
}

.highlight code[style] {
    background: transparent !important;
    color: var(--code-text) !important;
}

/* Force override any Chroma generated styles */
.highlight .chroma {
    background: var(--code-bg) !important;
    color: var(--code-text) !important;
}

.highlight .chroma pre {
    background: var(--code-bg) !important;
    color: var(--code-text) !important;
}

.highlight .chroma code {
    background: transparent !important;
    color: var(--code-text) !important;
}

/* Monokai-inspired Syntax Highlighting */
.highlight .chroma .k,
.highlight .chroma .kc,
.highlight .chroma .kd,
.highlight .chroma .kn,
.highlight .chroma .kp,
.highlight .chroma .kr,
.highlight .chroma .kt {
    color: #ff79c6 !important;
    font-weight: bold !important;
}

.highlight .chroma .s,
.highlight .chroma .sa,
.highlight .chroma .sb,
.highlight .chroma .sc,
.highlight .chroma .dl,
.highlight .chroma .sd,
.highlight .chroma .s2,
.highlight .chroma .se,
.highlight .chroma .sh,
.highlight .chroma .si,
.highlight .chroma .sx,
.highlight .chroma .sr,
.highlight .chroma .s1,
.highlight .chroma .ss {
    color: #50fa7b !important;
}

.highlight .chroma .m,
.highlight .chroma .mb,
.highlight .chroma .mf,
.highlight .chroma .mh,
.highlight .chroma .mi,
.highlight .chroma .il,
.highlight .chroma .mo {
    color: #bd93f9 !important;
}

.highlight .chroma .n,
.highlight .chroma .na,
.highlight .chroma .nb,
.highlight .chroma .bp,
.highlight .chroma .nc,
.highlight .chroma .no,
.highlight .chroma .nd,
.highlight .chroma .ni,
.highlight .chroma .ne,
.highlight .chroma .nf,
.highlight .chroma .fm,
.highlight .chroma .nl,
.highlight .chroma .nn,
.highlight .chroma .nx,
.highlight .chroma .py,
.highlight .chroma .nt,
.highlight .chroma .nv,
.highlight .chroma .vc,
.highlight .chroma .vg,
.highlight .chroma .vi,
.highlight .chroma .vm {
    color: #8be9fd !important;
}

.highlight .chroma .o,
.highlight .chroma .ow {
    color: #ff79c6 !important;
}

.highlight .chroma .c,
.highlight .chroma .ch,
.highlight .chroma .cm,
.highlight .chroma .c1,
.highlight .chroma .cs {
    color: #6272a4 !important;
    font-style: italic !important;
}

.highlight .chroma .p {
    color: #f8f8f2 !important;
}

.highlight .chroma .cp,
.highlight .chroma .cpf {
    color: #ff79c6 !important;
}

.highlight .chroma .gd {
    color: #ff5555 !important;
}

.highlight .chroma .gi {
    color: #50fa7b !important;
}

.highlight .chroma .gh {
    color: #bd93f9 !important;
    font-weight: bold !important;
}

.highlight .chroma .gu {
    color: #8be9fd !important;
    font-weight: bold !important;
}

/* Language-specific styling */
.highlight[data-lang="html"]::before {
    content: "HTML";
}
.highlight[data-lang="css"]::before {
    content: "CSS";
}
.highlight[data-lang="javascript"]::before {
    content: "JAVASCRIPT";
}
.highlight[data-lang="js"]::before {
    content: "JAVASCRIPT";
}
.highlight[data-lang="typescript"]::before {
    content: "TYPESCRIPT";
}
.highlight[data-lang="ts"]::before {
    content: "TYPESCRIPT";
}
.highlight[data-lang="python"]::before {
    content: "PYTHON";
}
.highlight[data-lang="go"]::before {
    content: "GO";
}
.highlight[data-lang="rust"]::before {
    content: "RUST";
}
.highlight[data-lang="php"]::before {
    content: "PHP";
}
.highlight[data-lang="ruby"]::before {
    content: "RUBY";
}
.highlight[data-lang="java"]::before {
    content: "JAVA";
}
.highlight[data-lang="c"]::before {
    content: "C";
}
.highlight[data-lang="cpp"]::before {
    content: "C++";
}
.highlight[data-lang="csharp"]::before {
    content: "C#";
}
.highlight[data-lang="bash"]::before {
    content: "BASH";
}
.highlight[data-lang="shell"]::before {
    content: "SHELL";
}
.highlight[data-lang="json"]::before {
    content: "JSON";
}
.highlight[data-lang="yaml"]::before {
    content: "YAML";
}
.highlight[data-lang="yml"]::before {
    content: "YAML";
}
.highlight[data-lang="xml"]::before {
    content: "XML";
}
.highlight[data-lang="markdown"]::before {
    content: "MARKDOWN";
}
.highlight[data-lang="md"]::before {
    content: "MARKDOWN";
}
.highlight[data-lang="sql"]::before {
    content: "SQL";
}
.highlight[data-lang="dockerfile"]::before {
    content: "DOCKERFILE";
}

/* Fallback for unknown languages */
.highlight:not([data-lang])::before {
    content: "CODE";
}

/* Mobile responsive adjustments for code blocks */
@media (max-width: 768px) {
    .highlight pre {
        padding: 3.5rem 0.75rem 0.75rem 0.75rem;
        font-size: 0.85rem;
    }

    .highlight::before {
        padding: 0.6rem 0.75rem;
        font-size: 0.8rem;
    }

    .highlight::after {
        top: 0.5rem;
        right: 0.75rem;
        padding: 0.3rem 0.6rem;
        font-size: 0.75rem;
    }
}

/* Transition enhancement */
* {
    transition:
        background-color 0.3s ease,
        color 0.3s ease,
        border-color 0.3s ease;
}

/* Taxonomy Header */
.taxonomy-header {
    text-align: center;
    margin-bottom: 3rem;
    padding: 2rem 0;
    border-bottom: 1px solid var(--border-color);
}

.taxonomy-title {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 1rem;
    background: var(--btn-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.taxonomy-subtitle {
    font-size: 1.1rem;
    color: var(--text-secondary);
    max-width: 600px;
    margin: 0 auto;
}

.tag-emoji {
    font-size: 2rem;
    margin-right: 0.5rem;
    filter: drop-shadow(0 0 8px var(--accent-primary));
}

/* Breadcrumb */
.breadcrumb {
    margin-bottom: 1.5rem;
    font-size: 0.9rem;
    color: var(--text-muted);
}

.breadcrumb a {
    color: var(--accent-primary);
    text-decoration: none;
    transition: color 0.3s ease;
}

.breadcrumb a:hover {
    color: var(--accent-secondary);
}

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

.current-page {
    color: var(--text-primary);
    font-weight: 500;
}

/* Tags Cloud */
.tags-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin-bottom: 4rem;
    padding: 2rem;
    background: var(--bg-card);
    border-radius: 20px;
    box-shadow: 0 8px 32px var(--shadow-color);
}

.tag-cloud-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background: var(--tag-gradient);
    color: var(--tag-text);
    text-decoration: none;
    border-radius: 25px;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
    font-weight: 500;
}

.tag-cloud-item[data-count="1"] {
    font-size: 0.85rem;
}
.tag-cloud-item[data-count="2"] {
    font-size: 0.9rem;
}
.tag-cloud-item[data-count="3"] {
    font-size: 0.95rem;
}
.tag-cloud-item[data-count="4"] {
    font-size: 1rem;
}
.tag-cloud-item[data-count="5"] {
    font-size: 1.05rem;
}
/* Scale up for more posts */
.tag-cloud-item {
    font-size: 1.1rem;
}

.tag-cloud-item:hover {
    background: var(--btn-gradient);
    color: white;
    transform: translateY(-2px) scale(1.05);
    box-shadow: 0 6px 20px var(--glow-color);
}

.tag-count {
    background: rgba(255, 255, 255, 0.2);
    padding: 0.25rem 0.5rem;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
}

/* Tags List */
.tags-list {
    margin-top: 3rem;
}

.section-title {
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 2rem;
    text-align: center;
}

.tags-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
}

.tag-card {
    background: var(--bg-card);
    border-radius: 16px;
    padding: 1.5rem;
    box-shadow: 0 8px 32px var(--shadow-color);
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

.tag-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px var(--shadow-color);
}

.tag-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border-color);
}

.tag-card h3 {
    margin: 0;
    font-size: 1.2rem;
}

.tag-card h3 a {
    color: var(--text-primary);
    text-decoration: none;
    transition: color 0.3s ease;
}

.tag-card h3 a:hover {
    background: var(--btn-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.post-count {
    background: var(--accent-secondary);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 15px;
    font-size: 0.8rem;
    font-weight: 500;
}

.tag-preview {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.preview-post {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.preview-post a {
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.9rem;
    flex: 1;
    transition: color 0.3s ease;
}

.preview-post a:hover {
    color: var(--accent-primary);
}

.preview-date {
    font-size: 0.8rem;
    color: var(--text-muted);
    font-family: "JetBrains Mono", monospace;
}

.more-posts a {
    color: var(--accent-primary);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 500;
}

/* Related Tags */
.related-tags-section {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: var(--bg-card);
    border-radius: 16px;
    border: 1px solid var(--border-color);
}

.related-tags-section h3 {
    color: var(--text-primary);
    margin-bottom: 1rem;
    font-size: 1.2rem;
}

.related-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.related-tag {
    background: var(--tag-gradient);
    color: var(--tag-text);
    padding: 0.4rem 1rem;
    border-radius: 20px;
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 500;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

.related-tag:hover {
    background: var(--btn-gradient);
    color: white;
    transform: scale(1.05);
}

/* Taxonomy Footer */
.taxonomy-footer {
    text-align: center;
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--border-color);
}

.back-to-tags {
    color: var(--accent-primary);
    text-decoration: none;
    font-weight: 500;
    padding: 0.75rem 1.5rem;
    border: 2px solid var(--accent-primary);
    border-radius: 25px;
    transition: all 0.3s ease;
}

.back-to-tags:hover {
    background: var(--accent-primary);
    color: white;
    box-shadow: 0 4px 15px var(--glow-color);
}

/* SPA Post Overlay */
.post-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Ambient bar in overlay should be fixed to viewport bottom */
.ambient-bar {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 10000 !important;
}

.post-overlay.active {
    opacity: 1;
    visibility: visible;
}

.post-overlay-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(10px);
}

/* For regular post pages, make backdrop transparent */
.post-overlay.active .post-overlay-backdrop {
    background: transparent;
    backdrop-filter: none;
    pointer-events: none;
}

.post-overlay-content {
    position: relative;
    width: 100%;
    height: 100%;
    background: var(--bg-primary);
    background-attachment: fixed;
    transform: translateY(50px);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    padding-bottom: 120px; /* Space for ambient bar + navigation */
}

/* Ensure SPA overlay header matches regular page header */
.post-overlay .site-header {
    background: var(--bg-secondary);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--border-color);
    box-shadow: 0 4px 20px var(--shadow-color);
}

.post-overlay.active .post-overlay-content {
    transform: translateY(0);
}

.post-overlay-header {
    position: sticky;
    top: 0;
    background: var(--bg-secondary);
    backdrop-filter: blur(20px);
    padding: 1rem;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 100;
}

.post-overlay-title {
    flex: 1;
}

.overlay-site-title {
    font-family: "Orbitron", monospace;
    font-size: 1.2rem;
    font-weight: 700;
    background: var(--btn-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: all 0.3s ease;
}

.overlay-site-title::before {
    content: "🧚‍♀️";
    font-size: 1rem;
    -webkit-text-fill-color: var(--accent-tertiary) !important;
    color: var(--accent-tertiary);
    filter: drop-shadow(0 0 8px var(--accent-tertiary));
    background: none;
}

.overlay-site-title:hover {
    filter: drop-shadow(0 0 10px var(--glow-color));
}

.post-overlay-close {
    background: var(--bg-card);
    border: 2px solid var(--border-color);
    color: var(--text-secondary);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.post-overlay-close:hover {
    background: var(--accent-primary);
    color: white;
    border-color: var(--accent-primary);
    transform: scale(1.1);
    box-shadow: 0 4px 15px var(--glow-color);
}

.post-overlay-article {
    padding: 2rem;
    max-width: 800px;
    margin: 0 auto;
}

/* Override reading progress for overlay */
.post-overlay .reading-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 3px;
    background: var(--btn-gradient);
    z-index: 10000;
    transition: width 0.1s ease;
    box-shadow: 0 0 10px var(--glow-color);
}

/* Ensure overlay content is properly styled */
.post-overlay .post-header {
    margin-bottom: 2rem;
    text-align: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 2rem;
}

.post-overlay .post-body {
    padding: 1rem 0;
}

.post-overlay .post-body h2 {
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--text-primary);
    margin: 2.5rem 0 1rem 0;
    position: relative;
}

.post-overlay .post-body h2::before {
    content: "";
    position: absolute;
    left: -2rem;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 1.5rem;
    background: var(--btn-gradient);
    border-radius: 2px;
}

.post-overlay .post-body h3 {
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--text-primary);
    margin: 2rem 0 1rem 0;
}

.post-overlay .post-body p {
    margin-bottom: 1.5rem;
    color: var(--text-secondary);
    font-size: 1.05rem;
}

/* Mobile responsiveness for overlay */
@media (max-width: 768px) {
    .post-overlay-content {
        margin: 0;
        border-radius: 0;
    }

    .post-overlay-article {
        padding: 1rem;
    }

    .post-overlay-header {
        padding: 0.75rem;
    }

    .post-overlay-close {
        width: 36px;
        height: 36px;
        font-size: 1rem;
    }

    .post-overlay .post-body h2::before {
        left: -1rem;
    }
}

/* Load More Button */
.load-more-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 3rem;
    padding: 2rem 0;
}

.load-more-btn {
    background: var(--btn-gradient);
    color: white;
    border: none;
    padding: 1rem 2rem;
    border-radius: 25px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    box-shadow: 0 8px 25px var(--glow-color);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    position: relative;
    overflow: hidden;
}

.load-more-btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.2),
        transparent
    );
    transition: left 0.5s ease;
}

.load-more-btn:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 0 12px 35px var(--glow-color);
}

.load-more-btn:hover::before {
    left: 100%;
}

.load-more-btn:active {
    transform: translateY(0) scale(1.02);
}

.load-more-text {
    font-family: "Inter", sans-serif;
}

.load-more-icon {
    font-size: 1.2rem;
    filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.5));
    animation: coffee-steam 2s ease-in-out infinite;
}

@keyframes coffee-steam {
    0%,
    100% {
        transform: translateY(0) rotate(0deg);
    }
    25% {
        transform: translateY(-2px) rotate(2deg);
    }
    50% {
        transform: translateY(-1px) rotate(-1deg);
    }
    75% {
        transform: translateY(-3px) rotate(1deg);
    }
}

/* Loading Animation */
.load-more-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
}

.loading-text {
    color: var(--text-secondary);
    font-size: 1rem;
    font-weight: 500;
    font-style: italic;
}

.loading-dots {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.loading-dots span {
    width: 8px;
    height: 8px;
    background: var(--btn-gradient);
    border-radius: 50%;
    animation: loading-bounce 1.4s ease-in-out infinite both;
}

.loading-dots span:nth-child(1) {
    animation-delay: -0.32s;
}

.loading-dots span:nth-child(2) {
    animation-delay: -0.16s;
}

.loading-dots span:nth-child(3) {
    animation-delay: 0s;
}

@keyframes loading-bounce {
    0%,
    80%,
    100% {
        transform: scale(0.8);
        opacity: 0.5;
    }
    40% {
        transform: scale(1.2);
        opacity: 1;
    }
}

/* Post Item Animation for Load More */
.post-item {
    transition:
        opacity 0.5s ease,
        transform 0.5s ease;
}

.post-item.loading {
    opacity: 0;
    transform: translateY(20px);
}

/* Mobile responsiveness for Load More */
@media (max-width: 768px) {
    .load-more-btn {
        padding: 0.875rem 1.75rem;
        font-size: 0.9rem;
        gap: 0.5rem;
    }

    .load-more-icon {
        font-size: 1.1rem;
    }

    .loading-text {
        font-size: 0.9rem;
    }

    .loading-dots span {
        width: 6px;
        height: 6px;
    }
}

@media (max-width: 480px) {
    .load-more-btn {
        padding: 0.75rem 1.5rem;
        font-size: 0.85rem;
    }

    .load-more-section {
        margin-top: 2rem;
        padding: 1.5rem 0;
    }
}

/* Mood Badge Styling */
.mood-badge {
    background: var(--accent-secondary);
    color: white;
    padding: 0.3rem 0.8rem;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-left: 0.5rem;
    box-shadow: 0 4px 15px rgba(0, 206, 209, 0.3);
    animation: mood-glow 3s ease-in-out infinite;
}

@keyframes mood-glow {
    0%,
    100% {
        box-shadow: 0 4px 15px rgba(0, 206, 209, 0.3);
    }
    50% {
        box-shadow: 0 6px 25px rgba(0, 206, 209, 0.5);
    }
}

/* Post Meta Styling Updates */
.post-meta-vaporwave {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.post-content-vaporwave {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.post-subtitle-vaporwave {
    color: var(--text-secondary);
    font-size: 0.95rem;
    font-style: italic;
    margin-bottom: 0.5rem;
}

.read-more-vaporwave {
    color: var(--accent-primary);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 0.5rem;
}

.read-more-vaporwave:hover {
    gap: 1rem;
    text-shadow: 0 0 10px var(--accent-primary);
    transform: translateX(4px);
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .taxonomy-title {
        font-size: 2rem;
    }

    .tags-cloud {
        padding: 1rem;
    }

    .tags-grid {
        grid-template-columns: 1fr;
    }

    .tag-card-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }

    .preview-post {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }
}

/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/scss/style.scss ***!
  \**************************************************************************************************************/


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