/* Overall animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 20px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translate3d(-20px, 0, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translate3d(20px, 0, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* Optimized animation classes */
.animate-fade-in-up {
    animation: fadeInUp 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.animate-fade-in {
    animation: fadeIn 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.animate-fade-in-left {
    animation: fadeInLeft 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.animate-fade-in-right {
    animation: fadeInRight 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Optimization of animated elements */
[data-animate] {
    opacity: 0;
    will-change: opacity, transform;
    backface-visibility: hidden;
    transform-style: preserve-3d;
}

[data-animate="fade-up"] {
    transform: translate3d(0, 20px, 0);
}

[data-animate="fade-in"] {
    transform: translate3d(0, 0, 0);
}

[data-animate="fade-left"] {
    transform: translate3d(-20px, 0, 0);
}

[data-animate="fade-right"] {
    transform: translate3d(20px, 0, 0);
}

/* Specific animation for the homepage */
.index-page .hero-content > * {
    opacity: 0;
    transform: translate3d(0, 20px, 0);
    transition: all 0.7s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}

/* Responsive */
@media (max-width: 768px) {
    [data-animate] {
        animation-duration: 0.6s !important;
    }

    .index-page .hero-content > * {
        transition-duration: 0.6s;
    }
}.tech-feature-card {
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    transition: all 0.3s ease;
}

.tech-feature-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(230, 57, 70, 0.2);
    border-color: #E63946;
}

.tech-icon {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.software-feature-card {
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    transition: all 0.3s ease;
}

.software-feature-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(230, 57, 70, 0.2);
    border-color: #E63946;
}

.software-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: linear-gradient(135deg, #E63946, #C1121F);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin: 0 auto;
}

/* Products Page */
.product-category-card {
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    transition: all 0.3s ease;
    text-align: center;
}

.product-category-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(230, 57, 70, 0.2);
}

.product-category-icon {
    font-size: 2.5rem;
    color: #E63946;
    margin: 0 auto;
}

/* Modes Page */
.training-mode-card {
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    border-radius: 0.75rem;
    overflow: hidden;
    transition: all 0.3s ease;
}

.training-mode-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(230, 57, 70, 0.2);
}

.mode-header {
    padding: 1.5rem;
    border-bottom: 1px solid #2E2E2E;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.mode-difficulty {
    background-color: rgba(255,255,255,0.1);
    padding: 0.25rem 0.75rem;
    border-radius: 1rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.mode-content {
    padding: 1.5rem;
}

.mode-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: linear-gradient(135deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: #E63946;
    margin: 0 auto 1rem;
}

.mode-description {
    text-align: center;
    margin-bottom: 1.5rem;
    color: #F5F5F5;
}

.mode-features {
    list-style: none;
    padding-left: 0;
    margin-bottom: 1.5rem;
}

.mode-features li {
    padding: 0.5rem 0;
    border-bottom: 1px solid #2E2E2E;
    display: flex;
    align-items: center;
}

.mode-features li:before {
    content: "•";
    color: #E63946;
    margin-right: 0.5rem;
}

.mode-link {
    display: inline-flex;
    align-items: center;
    color: #E63946;
    font-weight: 600;
    transition: all 0.3s ease;
}

.mode-link:hover {
    color: #F5F5F5;
}

.mode-link i {
    margin-left: 0.5rem;
    transition: all 0.3s ease;
}

.mode-link:hover i {
    transform: translateX(3px);
}

.mode-comparison-table {
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    border-radius: 0.75rem;
    overflow: hidden;
}

.mode-comparison-table th,
.mode-comparison-table td {
    padding: 1rem;
    text-align: center;
    border: 1px solid #2E2E2E;
}

.mode-comparison-table th {
    background-color: rgba(230, 57, 70, 0.1);
    color: #F5F5F5;
    font-weight: 600;
}

.mode-comparison-table tr:nth-child(even) {
    background-color: rgba(255,255,255,0.02);
}

.carousel-item .mode-header {
    justify-content: flex-start !important;
    text-align: left;
}

.training-mode-card .mode-header {
    justify-content: space-between;
    align-items: center;
}

/* Audience Page */
.audience-profile-card {
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    border-radius: 0.75rem;
    overflow: hidden;
    transition: all 0.3s ease;
}

.audience-profile-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(230, 57, 70, 0.2);
}

.profile-header {
    padding: 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #2E2E2E;
}

.profile-type {
    background-color: rgba(255,255,255,0.1);
    padding: 0.25rem 0.75rem;
    border-radius: 1rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.profile-content {
    padding: 1.5rem;
}

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

.profile-details h4 {
    margin-bottom: 1rem;
    position: relative;
    padding-bottom: 0.5rem;
}

.profile-details h4:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 50px;
    height: 2px;
    background-color: #E63946;
}

.profile-details ul {
    list-style: none;
    padding-left: 0;
    margin-bottom: 1.5rem;
}

.profile-details ul li {
    padding: 0.5rem 0;
    border-bottom: 1px solid #2E2E2E;
    display: flex;
    align-items: center;
}

.profile-details ul li:before {
    content: "•";
    color: #E63946;
    margin-right: 0.5rem;
}

.profile-testimonial {
    background-color: rgba(230, 57, 70, 0.1);
    padding: 1rem;
    border-radius: 0.5rem;
    border-left: 3px solid #E63946;
    font-style: italic;
}

.profile-testimonial span {
    display: block;
    margin-top: 0.5rem;
    font-size: 0.875rem;
    color: #A1A1AA;
    font-style: normal;
}

.institution-package {
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    border-radius: 0.75rem;
    padding: 1.5rem;
    transition: all 0.3s ease;
}

.institution-package:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(230, 57, 70, 0.2);
}

.package-link {
    display: inline-flex;
    align-items: center;
    color: #E63946;
    font-weight: 600;
    transition: all 0.3s ease;
}

.package-link:hover {
    color: #F5F5F5;
}

.package-link i {
    margin-left: 0.5rem;
    transition: all 0.3s ease;
}

.package-link:hover i {
    transform: translateX(3px);
}

/* Video Modal Styles */
.video-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.9);
    z-index: 1000;
    align-items: center;
    justify-content: center;
}

.video-modal-content {
    width: 80%;
    max-width: 800px;
    position: relative;
}

.video-modal-content video {
    width: 100%;
    border-radius: 8px;
}

.close-modal {
    position: absolute;
    top: -40px;
    right: 0;
    color: white;
    font-size: 30px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.close-modal:hover {
    color: #E63946;
}


/* Responsive adjustments */
@media (max-width: 768px) {
    .video-modal-content {
        width: 95%;
    }

    .mode-comparison-table {
        display: block;
        width: 100%;
        overflow-x: auto;
    }

    .profile-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .profile-type {
        margin-top: 0.5rem;
    }
}/* Services Page */
.clip-diagonal {
    clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%);
}

/* Service Tabs */
.service-tabs {
    display: flex;
    border-bottom: 1px solid #2E2E2E;
    margin-bottom: 1.5rem;
}

.service-tab {
    padding: 0.75rem 1.5rem;
    font-weight: 600;
    color: #9CA3AF;
    border: none;
    background: none;
    cursor: pointer;
    position: relative;
    transition: all 0.3s ease;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    display: flex;
    align-items: center;
}

.service-tab i {
    margin-right: 0.5rem;
}

.service-tab:hover:not(.active) {
    color: #E5E7EB;
}

.service-tab.active {
    color: #F1FAEE;
    border-bottom-color: #E63946;
}

.service-tab-content {
    display: none;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.service-tab-content.active {
    display: block;
    opacity: 1;
    transform: translateY(0);
}

/* Animation for tab change */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Timeline */
.event-timeline::before {
    content: '';
    position: absolute;
    top: 0;
    left: 11px;
    height: 100%;
    width: 2px;
    background: linear-gradient(to bottom, #E63946, transparent);
}

.event-step {
    padding-left: 2rem;
}

.event-dot {
    transform: translateX(-50%);
    left: 12px;
}

.event-content {
    transition: all 0.3s ease;
}

.event-content:hover {
    transform: translateX(5px);
    box-shadow: 5px 5px 15px rgba(230, 57, 70, 0.2);
}

/* Steps Grid */
.steps-grid {
    position: relative;
}

.step-item {
    text-align: center;
    position: relative;
    z-index: 1;
}

.step-number {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: bold;
    margin: 0 auto;
    color: white !important;
}

.step-item:nth-child(1) .step-number {
    background: linear-gradient(135deg, #FF4D4D, #E63946);
    box-shadow: 0 4px 15px rgba(230, 57, 70, 0.4);
}

.step-item:nth-child(2) .step-number {
    background: linear-gradient(135deg, #E63946, #C1121F);
    box-shadow: 0 4px 15px rgba(230, 57, 70, 0.3);
}

.step-item:nth-child(3) .step-number {
    background: linear-gradient(135deg, #C1121F, #A4161A);
    box-shadow: 0 4px 15px rgba(230, 57, 70, 0.2);
}

/* Tab Contents */
.tab-content-grid {
    display: grid;
    gap: 1.5rem;
}

.tab-feature {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.tab-feature-icon {
    color: #E63946;
    margin-right: 1rem;
    font-size: 1.25rem;
    margin-top: 0.2rem;
}

.tab-feature-content h4 {
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: #F1FAEE;
}

.tab-feature-content p {
    color: #9CA3AF;
    font-size: 0.9rem;
}

/* Responsive */
@media (max-width: 768px) {
    .clip-diagonal {
        clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%);
    }

    .service-tabs {
        flex-direction: column;
        border-bottom: 0;
    }

    .service-tab {
        border-bottom: 1px solid #2E2E2E;
        text-align: left;
        justify-content: flex-start;
        padding: 1rem;
        margin-bottom: 0;
    }

    .service-tab.active {
        border-bottom: 2px solid #E63946;
    }

    .steps-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}body {
    background-color: #0F0F0F;
    color: #F5F5F5;
}

.hero-bg {
    background: linear-gradient(rgba(15, 15, 15, 0.95), rgba(15, 15, 15, 0.95)),
    url('../../assets/img/optimized/ai-laser-gun.png');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

.mode-card {
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.mode-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 30px rgba(230, 57, 70, 0.2);
    border-color: #E63946;
}

.product-highlight {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #2E2E2E;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.product-tooltip {
    display: none;
    position: absolute;
    background-color: #1A1A1A;
    border: 2px solid #E63946;
    border-radius: 0.5rem;
    padding: 1rem;
    width: 240px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.6);
    z-index: 10;
    animation: fadeIn 0.3s ease-out;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.product-btn {
    position: absolute;
    width: 30px;
    height: 30px;
    background-color: #E63946;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid white;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

.product-btn:hover {
    transform: scale(1.3);
    background-color: #C1121F;
}

.nav-link {
    position: relative;
    padding: 0.5rem 0;
}

.nav-link::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: 0;
    left: 50%;
    background: linear-gradient(90deg, #E63946, #C1121F);
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    transform: translateX(-50%);
    border-radius: 1px;
}

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

.nav-link:hover {
    transform: translateY(-1px);
}

.dropdown {
    position: relative;
}

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    margin-top: 0.5rem;
    pointer-events: none;
}

.dropdown::before {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 0.5rem;
    background: transparent;
}

.dropdown:hover::before {
    z-index: 40;
}

.dropdown-menu a {
    position: relative;
    overflow: hidden;
}

.dropdown-menu a::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(230, 57, 70, 0.1), transparent);
    transition: left 0.5s ease;
}

.dropdown-menu a:hover::before {
    left: 100%;
}

.section-title {
    position: relative;
    display: inline-block;
}

.section-title::after {
    content: '';
    position: absolute;
    width: 50%;
    height: 3px;
    bottom: -10px;
    left: 25%;
    background: linear-gradient(90deg, transparent, #E63946, transparent);
}

.btn-primary {
    background: linear-gradient(135deg, #E63946, #C1121F);
    box-shadow: 0 4px 15px rgba(230, 57, 70, 0.4);
    transition: all 0.3s ease;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(230, 57, 70, 0.6);
}

.btn-secondary {
    border: 2px solid #E63946;
    transition: all 0.3s ease;
}

.btn-secondary:hover {
    background-color: #E63946;
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(230, 57, 70, 0.4);
}

.feature-icon {
    background: linear-gradient(135deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}

.contact-card {
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.input-field {
    background-color: #1A1A1A;
    border: 1px solid #2E2E2E;
    color: #F5F5F5;
    transition: all 0.3s ease;
}

.input-field:focus {
    border-color: #E63946;
    box-shadow: 0 0 0 3px rgba(230, 57, 70, 0.3);
}

.social-icon {
    transition: all 0.3s ease;
    border: 1px solid #2E2E2E;
}

.social-icon:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 12px rgba(230, 57, 70, 0.3);
    border-color: #E63946;
}

.footer-link {
    position: relative;
    transition: all 0.3s ease;
}

.footer-link:hover {
    color: #E63946;
    padding-left: 8px;
}

.footer-link::before {
    content: '>';
    position: absolute;
    left: -12px;
    opacity: 0;
    transition: all 0.3s ease;
    color: #E63946;
}

.footer-link:hover::before {
    opacity: 1;
    left: -8px;
}

.header-glass {
    backdrop-filter: blur(10px);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}

.hero-content {
    position: relative;
    z-index: 2;
}

.hero-title {
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
    letter-spacing: 1px;
}

.hero-subtitle {
    position: relative;
    display: inline-block;
}

.hero-subtitle::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 2px;
    bottom: -5px;
    left: 0;
    background: linear-gradient(90deg, #E63946, transparent);
}

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

.tech-card {
    position: relative;
    overflow: hidden;
    border-radius: 0.5rem;
    transition: all 0.3s ease;
}

.tech-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(230, 57, 70, 0.1), rgba(15, 15, 15, 0.8));
    z-index: 1;
}

.tech-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(230, 57, 70, 0.3);
}

.tech-card-content {
    position: relative;
    z-index: 2;
    padding: 1.5rem;
}

.glow-text {
    text-shadow: 0 0 8px rgba(230, 57, 70, 0.6);
}

.benefit-card {
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    position: relative;
    overflow: hidden;
}

.benefit-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(230, 57, 70, 0.2);
    border-color: #E63946;
}

.benefit-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(230, 57, 70, 0.05), transparent);
    z-index: 1;
}

.benefit-icon {
    background: linear-gradient(135deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
}

.benefit-card:hover .benefit-icon {
    transform: scale(1.1);
    box-shadow: 0 6px 20px rgba(230, 57, 70, 0.3);
}

.audience-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
    justify-items: center;
}

.audience-card {
    position: relative;
    overflow: hidden;
    border-radius: 0.75rem;
    transition: all 0.3s ease;
    border: 1px solid #2E2E2E;
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
}

.audience-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px rgba(230, 57, 70, 0.2);
}

.audience-icon {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, var(--icon-color), rgba(15, 15, 15, 0.8));
    color: white;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

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

.mode-header {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.mode-indicator {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    margin-top: 0.25rem;
    margin-right: 0.75rem;
    flex-shrink: 0;
}

.mode-tag {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 1rem;
    font-size: 0.7rem;
    font-weight: 600;
    margin-top: 0.5rem;
    background-color: rgba(230, 57, 70, 0.2);
    color: #E63946;
}

.carousel-3d-container {
    perspective: 2000px;
}

.carousel-3d {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transition: transform 1s ease;
}

.carousel-item {
    position: absolute;
    width: 70%;
    max-width: 500px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: all 0.5s ease;
    opacity: 0;
    z-index: 1;
}

.carousel-item.active {
    opacity: 1;
    z-index: 10;
    transform: translate(-50%, -50%) translateZ(0);
}

.carousel-item.prev {
    opacity: 0.8;
    transform: translate(-50%, -50%) translateX(-75%) translateZ(-100px) rotateY(15deg);
    z-index: 2;
}

.carousel-item.next {
    opacity: 0.8;
    transform: translate(-50%, -50%) translateX(75%) translateZ(-100px) rotateY(-15deg);
    z-index: 2;
}

.carousel-item.far-prev {
    transform: translate(-50%, -50%) translateX(-120%) translateZ(-200px) rotateY(30deg);
    z-index: 1;
}

.carousel-item.far-next {
    transform: translate(-50%, -50%) translateX(120%) translateZ(-200px) rotateY(-30deg);
    z-index: 1;
}

.carousel-nav {
    opacity: 0;
    transition: opacity 0.3s ease;
}

.carousel-3d-container:hover .carousel-nav {
    opacity: 1;
}

.indicator.active {
    background-color: #E63946;
    transform: scale(1.2);
}

.carousel-item .mode-card {
    height: 100%;
    background: linear-gradient(145deg, #1A1A1A, #0F0F0F);
    border: 1px solid #2E2E2E;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
    transition: all 0.3s ease;
}

.carousel-item.active .mode-card {
    box-shadow: 0 25px 60px rgba(230, 57, 70, 0.3);
    border-color: #E63946;
}

#mobile-menu {
    animation: slideDown 0.3s ease-out;
}

#mobile-menu.hidden {
    animation: slideUp 0.3s ease-out;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideUp {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-10px);
    }
}

@media (max-width: 768px) {
    .carousel-item {
        width: 90%;
    }

    .carousel-item.prev,
    .carousel-item.next {
        opacity: 0;
    }

    .carousel-nav {
        opacity: 1;
    }

    .hero-bg {
        background-position: 70% center;
        background-attachment: scroll;
    }

    .header-glass {
        backdrop-filter: none;
        background: white;
    }

    .audience-grid,
    .mode-grid {
        grid-template-columns: 1fr;
    }

    .product-tooltip {
        width: 200px;
        padding: 0.75rem;
    }

    .product-btn {
        width: 26px;
        height: 26px;
        font-size: 0.8rem;
    }

    .dropdown-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        box-shadow: none;
        border: none;
        margin-top: 0;
        transform: none;
    }
}

@media (max-width: 640px) {
    footer > div > div {
        text-align: center;
    }

    .footer-link {
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .hero-title {
        font-size: 2.5rem;
    }

    .hero-subtitle {
        font-size: 1.25rem;
    }

    .section-title {
        font-size: 1.75rem;
    }

    .product-tooltip {
        width: 160px;
        padding: 0.5rem;
        font-size: 0.8rem;
    }

    .audience-icon {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
}

/* Back to top button */
.back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: linear-gradient(135deg, #E63946, #C1121F);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 999;
    box-shadow: 0 4px 15px rgba(230, 57, 70, 0.4);
    border: none;
}

.back-to-top.visible {
    opacity: 1;
    visibility: visible;
}

.back-to-top:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(230, 57, 70, 0.6);
}

@media (max-width: 768px) {
    .back-to-top {
        width: 40px;
        height: 40px;
        font-size: 1rem;
        bottom: 20px;
        right: 20px;
    }
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3RlbXAtY29tYmluZWQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Im1haW4ubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIE92ZXJhbGwgYW5pbWF0aW9ucyAqL1xyXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcclxuICAgIGZyb20ge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTtcclxuICAgIH1cclxuICAgIHRvIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZmFkZUluIHtcclxuICAgIGZyb20geyBvcGFjaXR5OiAwOyB9XHJcbiAgICB0byB7IG9wYWNpdHk6IDE7IH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcclxuICAgIGZyb20ge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjBweCwgMCwgMCk7XHJcbiAgICB9XHJcbiAgICB0byB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHtcclxuICAgIGZyb20ge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTtcclxuICAgIH1cclxuICAgIHRvIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIE9wdGltaXplZCBhbmltYXRpb24gY2xhc3NlcyAqL1xyXG4uYW5pbWF0ZS1mYWRlLWluLXVwIHtcclxuICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMC43cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSBmb3J3YXJkcztcclxufVxyXG5cclxuLmFuaW1hdGUtZmFkZS1pbiB7XHJcbiAgICBhbmltYXRpb246IGZhZGVJbiAwLjdzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpIGZvcndhcmRzO1xyXG59XHJcblxyXG4uYW5pbWF0ZS1mYWRlLWluLWxlZnQge1xyXG4gICAgYW5pbWF0aW9uOiBmYWRlSW5MZWZ0IDAuN3MgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSkgZm9yd2FyZHM7XHJcbn1cclxuXHJcbi5hbmltYXRlLWZhZGUtaW4tcmlnaHQge1xyXG4gICAgYW5pbWF0aW9uOiBmYWRlSW5SaWdodCAwLjdzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpIGZvcndhcmRzO1xyXG59XHJcblxyXG4vKiBPcHRpbWl6YXRpb24gb2YgYW5pbWF0ZWQgZWxlbWVudHMgKi9cclxuW2RhdGEtYW5pbWF0ZV0ge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XHJcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xyXG59XHJcblxyXG5bZGF0YS1hbmltYXRlPVwiZmFkZS11cFwiXSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xyXG59XHJcblxyXG5bZGF0YS1hbmltYXRlPVwiZmFkZS1pblwiXSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG59XHJcblxyXG5bZGF0YS1hbmltYXRlPVwiZmFkZS1sZWZ0XCJdIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xyXG59XHJcblxyXG5bZGF0YS1hbmltYXRlPVwiZmFkZS1yaWdodFwiXSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApO1xyXG59XHJcblxyXG4vKiBTcGVjaWZpYyBhbmltYXRpb24gZm9yIHRoZSBob21lcGFnZSAqL1xyXG4uaW5kZXgtcGFnZSAuaGVyby1jb250ZW50ID4gKiB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjdzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xyXG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcclxufVxyXG5cclxuLyogUmVzcG9uc2l2ZSAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIFtkYXRhLWFuaW1hdGVdIHtcclxuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNnMgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuaW5kZXgtcGFnZSAuaGVyby1jb250ZW50ID4gKiB7XHJcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC42cztcclxuICAgIH1cclxufS50ZWNoLWZlYXR1cmUtY2FyZCB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCAjMUExQTFBLCAjMEYwRjBGKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyRTJFMkU7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4udGVjaC1mZWF0dXJlLWNhcmQ6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI1cHggcmdiYSgyMzAsIDU3LCA3MCwgMC4yKTtcclxuICAgIGJvcmRlci1jb2xvcjogI0U2Mzk0NjtcclxufVxyXG5cclxuLnRlY2gtaWNvbiB7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIGhlaWdodDogNTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBmbGV4LXNocmluazogMDtcclxufVxyXG5cclxuLnNvZnR3YXJlLWZlYXR1cmUtY2FyZCB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCAjMUExQTFBLCAjMEYwRjBGKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyRTJFMkU7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4uc29mdHdhcmUtZmVhdHVyZS1jYXJkOmhvdmVyIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMjMwLCA1NywgNzAsIDAuMik7XHJcbiAgICBib3JkZXItY29sb3I6ICNFNjM5NDY7XHJcbn1cclxuXHJcbi5zb2Z0d2FyZS1pY29uIHtcclxuICAgIHdpZHRoOiA2MHB4O1xyXG4gICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0U2Mzk0NiwgI0MxMTIxRik7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxufVxyXG5cclxuLyogUHJvZHVjdHMgUGFnZSAqL1xyXG4ucHJvZHVjdC1jYXRlZ29yeS1jYXJkIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICMxQTFBMUEsICMwRjBGMEYpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJFMkUyRTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWNhdGVnb3J5LWNhcmQ6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTVweCAzMHB4IHJnYmEoMjMwLCA1NywgNzAsIDAuMik7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWNhdGVnb3J5LWljb24ge1xyXG4gICAgZm9udC1zaXplOiAyLjVyZW07XHJcbiAgICBjb2xvcjogI0U2Mzk0NjtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4vKiBNb2RlcyBQYWdlICovXHJcbi50cmFpbmluZy1tb2RlLWNhcmQge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgIzFBMUExQSwgIzBGMEYwRik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMkUyRTJFO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4udHJhaW5pbmctbW9kZS1jYXJkOmhvdmVyIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMjMwLCA1NywgNzAsIDAuMik7XHJcbn1cclxuXHJcbi5tb2RlLWhlYWRlciB7XHJcbiAgICBwYWRkaW5nOiAxLjVyZW07XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzJFMkUyRTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4ubW9kZS1kaWZmaWN1bHR5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xKTtcclxuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC43NXJlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICBmb250LXNpemU6IDAuNzVyZW07XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4ubW9kZS1jb250ZW50IHtcclxuICAgIHBhZGRpbmc6IDEuNXJlbTtcclxufVxyXG5cclxuLm1vZGUtaWNvbiB7XHJcbiAgICB3aWR0aDogNjBweDtcclxuICAgIGhlaWdodDogNjBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxQTFBMUEsICMwRjBGMEYpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJFMkUyRTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgIGNvbG9yOiAjRTYzOTQ2O1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gMXJlbTtcclxufVxyXG5cclxuLm1vZGUtZGVzY3JpcHRpb24ge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG4gICAgY29sb3I6ICNGNUY1RjU7XHJcbn1cclxuXHJcbi5tb2RlLWZlYXR1cmVzIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbn1cclxuXHJcbi5tb2RlLWZlYXR1cmVzIGxpIHtcclxuICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyRTJFMkU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLm1vZGUtZmVhdHVyZXMgbGk6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwi4oCiXCI7XHJcbiAgICBjb2xvcjogI0U2Mzk0NjtcclxuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xyXG59XHJcblxyXG4ubW9kZS1saW5rIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGNvbG9yOiAjRTYzOTQ2O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5tb2RlLWxpbms6aG92ZXIge1xyXG4gICAgY29sb3I6ICNGNUY1RjU7XHJcbn1cclxuXHJcbi5tb2RlLWxpbmsgaSB7XHJcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLm1vZGUtbGluazpob3ZlciBpIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzcHgpO1xyXG59XHJcblxyXG4ubW9kZS1jb21wYXJpc29uLXRhYmxlIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICMxQTFBMUEsICMwRjBGMEYpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJFMkUyRTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4ubW9kZS1jb21wYXJpc29uLXRhYmxlIHRoLFxyXG4ubW9kZS1jb21wYXJpc29uLXRhYmxlIHRkIHtcclxuICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMkUyRTJFO1xyXG59XHJcblxyXG4ubW9kZS1jb21wYXJpc29uLXRhYmxlIHRoIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMwLCA1NywgNzAsIDAuMSk7XHJcbiAgICBjb2xvcjogI0Y1RjVGNTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5tb2RlLWNvbXBhcmlzb24tdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMik7XHJcbn1cclxuXHJcbi5jYXJvdXNlbC1pdGVtIC5tb2RlLWhlYWRlciB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbi50cmFpbmluZy1tb2RlLWNhcmQgLm1vZGUtaGVhZGVyIHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi8qIEF1ZGllbmNlIFBhZ2UgKi9cclxuLmF1ZGllbmNlLXByb2ZpbGUtY2FyZCB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCAjMUExQTFBLCAjMEYwRjBGKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyRTJFMkU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5hdWRpZW5jZS1wcm9maWxlLWNhcmQ6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI1cHggcmdiYSgyMzAsIDU3LCA3MCwgMC4yKTtcclxufVxyXG5cclxuLnByb2ZpbGUtaGVhZGVyIHtcclxuICAgIHBhZGRpbmc6IDEuNXJlbTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyRTJFMkU7XHJcbn1cclxuXHJcbi5wcm9maWxlLXR5cGUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xyXG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5wcm9maWxlLWNvbnRlbnQge1xyXG4gICAgcGFkZGluZzogMS41cmVtO1xyXG59XHJcblxyXG4uYXVkaWVuY2UtcHJvZmlsZS1jYXJkOmhvdmVyIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XHJcbn1cclxuXHJcbi5wcm9maWxlLWRldGFpbHMgaDQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XHJcbn1cclxuXHJcbi5wcm9maWxlLWRldGFpbHMgaDQ6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDUwcHg7XHJcbiAgICBoZWlnaHQ6IDJweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNFNjM5NDY7XHJcbn1cclxuXHJcbi5wcm9maWxlLWRldGFpbHMgdWwge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxufVxyXG5cclxuLnByb2ZpbGUtZGV0YWlscyB1bCBsaSB7XHJcbiAgICBwYWRkaW5nOiAwLjVyZW0gMDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMkUyRTJFO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5wcm9maWxlLWRldGFpbHMgdWwgbGk6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwi4oCiXCI7XHJcbiAgICBjb2xvcjogI0U2Mzk0NjtcclxuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xyXG59XHJcblxyXG4ucHJvZmlsZS10ZXN0aW1vbmlhbCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzMCwgNTcsIDcwLCAwLjEpO1xyXG4gICAgcGFkZGluZzogMXJlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI0U2Mzk0NjtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLnByb2ZpbGUtdGVzdGltb25pYWwgc3BhbiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcclxuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XHJcbiAgICBjb2xvcjogI0ExQTFBQTtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG5cclxuLmluc3RpdHV0aW9uLXBhY2thZ2Uge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgIzFBMUExQSwgIzBGMEYwRik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMkUyRTJFO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcclxuICAgIHBhZGRpbmc6IDEuNXJlbTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5pbnN0aXR1dGlvbi1wYWNrYWdlOmhvdmVyIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMjMwLCA1NywgNzAsIDAuMik7XHJcbn1cclxuXHJcbi5wYWNrYWdlLWxpbmsge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgY29sb3I6ICNFNjM5NDY7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLnBhY2thZ2UtbGluazpob3ZlciB7XHJcbiAgICBjb2xvcjogI0Y1RjVGNTtcclxufVxyXG5cclxuLnBhY2thZ2UtbGluayBpIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4ucGFja2FnZS1saW5rOmhvdmVyIGkge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDNweCk7XHJcbn1cclxuXHJcbi8qIFZpZGVvIE1vZGFsIFN0eWxlcyAqL1xyXG4udmlkZW8tbW9kYWwge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcclxuICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi52aWRlby1tb2RhbC1jb250ZW50IHtcclxuICAgIHdpZHRoOiA4MCU7XHJcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4udmlkZW8tbW9kYWwtY29udGVudCB2aWRlbyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxufVxyXG5cclxuLmNsb3NlLW1vZGFsIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTQwcHg7XHJcbiAgICByaWdodDogMDtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5jbG9zZS1tb2RhbDpob3ZlciB7XHJcbiAgICBjb2xvcjogI0U2Mzk0NjtcclxufVxyXG5cclxuXHJcbi8qIFJlc3BvbnNpdmUgYWRqdXN0bWVudHMgKi9cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAudmlkZW8tbW9kYWwtY29udGVudCB7XHJcbiAgICAgICAgd2lkdGg6IDk1JTtcclxuICAgIH1cclxuXHJcbiAgICAubW9kZS1jb21wYXJpc29uLXRhYmxlIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9maWxlLWhlYWRlciB7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIH1cclxuXHJcbiAgICAucHJvZmlsZS10eXBlIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XHJcbiAgICB9XHJcbn0vKiBTZXJ2aWNlcyBQYWdlICovXHJcbi5jbGlwLWRpYWdvbmFsIHtcclxuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDEwMCUgMCwgMTAwJSA4MCUsIDAgMTAwJSk7XHJcbn1cclxuXHJcbi8qIFNlcnZpY2UgVGFicyAqL1xyXG4uc2VydmljZS10YWJzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzJFMkUyRTtcclxuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxufVxyXG5cclxuLnNlcnZpY2UtdGFiIHtcclxuICAgIHBhZGRpbmc6IDAuNzVyZW0gMS41cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGNvbG9yOiAjOUNBM0FGO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5zZXJ2aWNlLXRhYiBpIHtcclxuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xyXG59XHJcblxyXG4uc2VydmljZS10YWI6aG92ZXI6bm90KC5hY3RpdmUpIHtcclxuICAgIGNvbG9yOiAjRTVFN0VCO1xyXG59XHJcblxyXG4uc2VydmljZS10YWIuYWN0aXZlIHtcclxuICAgIGNvbG9yOiAjRjFGQUVFO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI0U2Mzk0NjtcclxufVxyXG5cclxuLnNlcnZpY2UtdGFiLWNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLnNlcnZpY2UtdGFiLWNvbnRlbnQuYWN0aXZlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxufVxyXG5cclxuLyogQW5pbWF0aW9uIGZvciB0YWIgY2hhbmdlICovXHJcbkBrZXlmcmFtZXMgZmFkZUluIHtcclxuICAgIGZyb20ge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xyXG4gICAgfVxyXG4gICAgdG8ge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiBUaW1lbGluZSAqL1xyXG4uZXZlbnQtdGltZWxpbmU6OmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDExcHg7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogMnB4O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI0U2Mzk0NiwgdHJhbnNwYXJlbnQpO1xyXG59XHJcblxyXG4uZXZlbnQtc3RlcCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XHJcbn1cclxuXHJcbi5ldmVudC1kb3Qge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgbGVmdDogMTJweDtcclxufVxyXG5cclxuLmV2ZW50LWNvbnRlbnQge1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLmV2ZW50LWNvbnRlbnQ6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XHJcbiAgICBib3gtc2hhZG93OiA1cHggNXB4IDE1cHggcmdiYSgyMzAsIDU3LCA3MCwgMC4yKTtcclxufVxyXG5cclxuLyogU3RlcHMgR3JpZCAqL1xyXG4uc3RlcHMtZ3JpZCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5zdGVwLWl0ZW0ge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMTtcclxufVxyXG5cclxuLnN0ZXAtbnVtYmVyIHtcclxuICAgIHdpZHRoOiA1MHB4O1xyXG4gICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc3RlcC1pdGVtOm50aC1jaGlsZCgxKSAuc3RlcC1udW1iZXIge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0ZGNEQ0RCwgI0U2Mzk0Nik7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNXB4IHJnYmEoMjMwLCA1NywgNzAsIDAuNCk7XHJcbn1cclxuXHJcbi5zdGVwLWl0ZW06bnRoLWNoaWxkKDIpIC5zdGVwLW51bWJlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjRTYzOTQ2LCAjQzExMjFGKTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgyMzAsIDU3LCA3MCwgMC4zKTtcclxufVxyXG5cclxuLnN0ZXAtaXRlbTpudGgtY2hpbGQoMykgLnN0ZXAtbnVtYmVyIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNDMTEyMUYsICNBNDE2MUEpO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTVweCByZ2JhKDIzMCwgNTcsIDcwLCAwLjIpO1xyXG59XHJcblxyXG4vKiBUYWIgQ29udGVudHMgKi9cclxuLnRhYi1jb250ZW50LWdyaWQge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdhcDogMS41cmVtO1xyXG59XHJcblxyXG4udGFiLWZlYXR1cmUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufVxyXG5cclxuLnRhYi1mZWF0dXJlLWljb24ge1xyXG4gICAgY29sb3I6ICNFNjM5NDY7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgICBtYXJnaW4tdG9wOiAwLjJyZW07XHJcbn1cclxuXHJcbi50YWItZmVhdHVyZS1jb250ZW50IGg0IHtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xyXG4gICAgY29sb3I6ICNGMUZBRUU7XHJcbn1cclxuXHJcbi50YWItZmVhdHVyZS1jb250ZW50IHAge1xyXG4gICAgY29sb3I6ICM5Q0EzQUY7XHJcbiAgICBmb250LXNpemU6IDAuOXJlbTtcclxufVxyXG5cclxuLyogUmVzcG9uc2l2ZSAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5jbGlwLWRpYWdvbmFsIHtcclxuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAxMDAlIDAsIDEwMCUgOTAlLCAwIDEwMCUpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZXJ2aWNlLXRhYnMge1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VydmljZS10YWIge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMkUyRTJFO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VydmljZS10YWIuYWN0aXZlIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0U2Mzk0NjtcclxuICAgIH1cclxuXHJcbiAgICAuc3RlcHMtZ3JpZCB7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XHJcbiAgICAgICAgZ2FwOiAycmVtO1xyXG4gICAgfVxyXG59Ym9keSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMEYwRjBGO1xyXG4gICAgY29sb3I6ICNGNUY1RjU7XHJcbn1cclxuXHJcbi5oZXJvLWJnIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDE1LCAxNSwgMTUsIDAuOTUpLCByZ2JhKDE1LCAxNSwgMTUsIDAuOTUpKSxcclxuICAgIHVybCgnLi4vLi4vYXNzZXRzL2ltZy9vcHRpbWl6ZWQvYWktbGFzZXItZ3VuLnBuZycpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcbn1cclxuXHJcbi5tb2RlLWNhcmQge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgIzFBMUExQSwgIzBGMEYwRik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMkUyRTJFO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpO1xyXG59XHJcblxyXG4ubW9kZS1jYXJkOmhvdmVyIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTVweCAzMHB4IHJnYmEoMjMwLCA1NywgNzAsIDAuMik7XHJcbiAgICBib3JkZXItY29sb3I6ICNFNjM5NDY7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWhpZ2hsaWdodCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyRTJFMkU7XHJcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbn1cclxuXHJcbi5wcm9kdWN0LXRvb2x0aXAge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxQTFBMUE7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjRTYzOTQ2O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xyXG4gICAgcGFkZGluZzogMXJlbTtcclxuICAgIHdpZHRoOiAyNDBweDtcclxuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC42KTtcclxuICAgIHotaW5kZXg6IDEwO1xyXG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4zcyBlYXNlLW91dDtcclxufVxyXG5cclxuQGtleWZyYW1lcyBmYWRlSW4ge1xyXG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfVxyXG4gICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cclxufVxyXG5cclxuLnByb2R1Y3QtYnRuIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0U2Mzk0NjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWJ0bjpob3ZlciB7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzExMjFGO1xyXG59XHJcblxyXG4ubmF2LWxpbmsge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgcGFkZGluZzogMC41cmVtIDA7XHJcbn1cclxuXHJcbi5uYXYtbGluazo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMDtcclxuICAgIGhlaWdodDogMnB4O1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjRTYzOTQ2LCAjQzExMjFGKTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG5cclxuLm5hdi1saW5rOmhvdmVyOjphZnRlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLm5hdi1saW5rOmhvdmVyIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcclxufVxyXG5cclxuLmRyb3Bkb3duIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmRyb3Bkb3duLW1lbnUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAxMDAlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcclxuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG4uZHJvcGRvd246OmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMTAwJTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGhlaWdodDogMC41cmVtO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5kcm9wZG93bjpob3Zlcjo6YmVmb3JlIHtcclxuICAgIHotaW5kZXg6IDQwO1xyXG59XHJcblxyXG4uZHJvcGRvd24tbWVudSBhIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5kcm9wZG93bi1tZW51IGE6OmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IC0xMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDIzMCwgNTcsIDcwLCAwLjEpLCB0cmFuc3BhcmVudCk7XHJcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuNXMgZWFzZTtcclxufVxyXG5cclxuLmRyb3Bkb3duLW1lbnUgYTpob3Zlcjo6YmVmb3JlIHtcclxuICAgIGxlZnQ6IDEwMCU7XHJcbn1cclxuXHJcbi5zZWN0aW9uLXRpdGxlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLnNlY3Rpb24tdGl0bGU6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICAgIGhlaWdodDogM3B4O1xyXG4gICAgYm90dG9tOiAtMTBweDtcclxuICAgIGxlZnQ6IDI1JTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsICNFNjM5NDYsIHRyYW5zcGFyZW50KTtcclxufVxyXG5cclxuLmJ0bi1wcmltYXJ5IHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNFNjM5NDYsICNDMTEyMUYpO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTVweCByZ2JhKDIzMCwgNTcsIDcwLCAwLjQpO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLmJ0bi1wcmltYXJ5OmhvdmVyIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgyMzAsIDU3LCA3MCwgMC42KTtcclxufVxyXG5cclxuLmJ0bi1zZWNvbmRhcnkge1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgI0U2Mzk0NjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5idG4tc2Vjb25kYXJ5OmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNFNjM5NDY7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMjMwLCA1NywgNzAsIDAuNCk7XHJcbn1cclxuXHJcbi5mZWF0dXJlLWljb24ge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzFBMUExQSwgIzBGMEYwRik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMkUyRTJFO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbn1cclxuXHJcbi5jb250YWN0LWNhcmQge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgIzFBMUExQSwgIzBGMEYwRik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMkUyRTJFO1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG59XHJcblxyXG4uaW5wdXQtZmllbGQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFBMUExQTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyRTJFMkU7XHJcbiAgICBjb2xvcjogI0Y1RjVGNTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5pbnB1dC1maWVsZDpmb2N1cyB7XHJcbiAgICBib3JkZXItY29sb3I6ICNFNjM5NDY7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyMzAsIDU3LCA3MCwgMC4zKTtcclxufVxyXG5cclxuLnNvY2lhbC1pY29uIHtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMkUyRTJFO1xyXG59XHJcblxyXG4uc29jaWFsLWljb246aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCA2cHggMTJweCByZ2JhKDIzMCwgNTcsIDcwLCAwLjMpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjRTYzOTQ2O1xyXG59XHJcblxyXG4uZm9vdGVyLWxpbmsge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLmZvb3Rlci1saW5rOmhvdmVyIHtcclxuICAgIGNvbG9yOiAjRTYzOTQ2O1xyXG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XHJcbn1cclxuXHJcbi5mb290ZXItbGluazo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICc+JztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IC0xMnB4O1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICBjb2xvcjogI0U2Mzk0NjtcclxufVxyXG5cclxuLmZvb3Rlci1saW5rOmhvdmVyOjpiZWZvcmUge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIGxlZnQ6IC04cHg7XHJcbn1cclxuXHJcbi5oZWFkZXItZ2xhc3Mge1xyXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcclxufVxyXG5cclxuLmhlcm8tY29udGVudCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiAyO1xyXG59XHJcblxyXG4uaGVyby10aXRsZSB7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG59XHJcblxyXG4uaGVyby1zdWJ0aXRsZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi5oZXJvLXN1YnRpdGxlOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAycHg7XHJcbiAgICBib3R0b206IC01cHg7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjRTYzOTQ2LCB0cmFuc3BhcmVudCk7XHJcbn1cclxuXHJcbi50ZWNoLWdyaWQge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI1MHB4LCAxZnIpKTtcclxuICAgIGdhcDogMS41cmVtO1xyXG59XHJcblxyXG4udGVjaC1jYXJkIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4udGVjaC1jYXJkOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIzMCwgNTcsIDcwLCAwLjEpLCByZ2JhKDE1LCAxNSwgMTUsIDAuOCkpO1xyXG4gICAgei1pbmRleDogMTtcclxufVxyXG5cclxuLnRlY2gtY2FyZDpob3ZlciB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDIzMCwgNTcsIDcwLCAwLjMpO1xyXG59XHJcblxyXG4udGVjaC1jYXJkLWNvbnRlbnQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMjtcclxuICAgIHBhZGRpbmc6IDEuNXJlbTtcclxufVxyXG5cclxuLmdsb3ctdGV4dCB7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDhweCByZ2JhKDIzMCwgNTcsIDcwLCAwLjYpO1xyXG59XHJcblxyXG4uYmVuZWZpdC1jYXJkIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICMxQTFBMUEsICMwRjBGMEYpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJFMkUyRTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5iZW5lZml0LWNhcmQ6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI1cHggcmdiYSgyMzAsIDU3LCA3MCwgMC4yKTtcclxuICAgIGJvcmRlci1jb2xvcjogI0U2Mzk0NjtcclxufVxyXG5cclxuLmJlbmVmaXQtY2FyZDo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMzAsIDU3LCA3MCwgMC4wNSksIHRyYW5zcGFyZW50KTtcclxuICAgIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5iZW5lZml0LWljb24ge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzFBMUExQSwgIzBGMEYwRik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMkUyRTJFO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4uYmVuZWZpdC1jYXJkOmhvdmVyIC5iZW5lZml0LWljb24ge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG4gICAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDIzMCwgNTcsIDcwLCAwLjMpO1xyXG59XHJcblxyXG4uYXVkaWVuY2UtZ3JpZCB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyODBweCwgMWZyKSk7XHJcbiAgICBnYXA6IDFyZW07XHJcbiAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5hdWRpZW5jZS1jYXJkIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyRTJFMkU7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCAjMUExQTFBLCAjMEYwRjBGKTtcclxufVxyXG5cclxuLmF1ZGllbmNlLWNhcmQ6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxNXB4IDMwcHggcmdiYSgyMzAsIDU3LCA3MCwgMC4yKTtcclxufVxyXG5cclxuLmF1ZGllbmNlLWljb24ge1xyXG4gICAgd2lkdGg6IDUwcHg7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWljb24tY29sb3IpLCByZ2JhKDE1LCAxNSwgMTUsIDAuOCkpO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbn1cclxuXHJcbi5tb2RlLWdyaWQge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpO1xyXG4gICAgZ2FwOiAxcmVtO1xyXG59XHJcblxyXG4ubW9kZS1oZWFkZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufVxyXG5cclxuLm1vZGUtaW5kaWNhdG9yIHtcclxuICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcclxuICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4ubW9kZS10YWcge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogMC4ycmVtIDAuNnJlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICBmb250LXNpemU6IDAuN3JlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzMCwgNTcsIDcwLCAwLjIpO1xyXG4gICAgY29sb3I6ICNFNjM5NDY7XHJcbn1cclxuXHJcbi5jYXJvdXNlbC0zZC1jb250YWluZXIge1xyXG4gICAgcGVyc3BlY3RpdmU6IDIwMDBweDtcclxufVxyXG5cclxuLmNhcm91c2VsLTNkIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcyBlYXNlO1xyXG59XHJcblxyXG4uY2Fyb3VzZWwtaXRlbSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogNzAlO1xyXG4gICAgbWF4LXdpZHRoOiA1MDBweDtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5jYXJvdXNlbC1pdGVtLmFjdGl2ZSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgei1pbmRleDogMTA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSB0cmFuc2xhdGVaKDApO1xyXG59XHJcblxyXG4uY2Fyb3VzZWwtaXRlbS5wcmV2IHtcclxuICAgIG9wYWNpdHk6IDAuODtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHRyYW5zbGF0ZVgoLTc1JSkgdHJhbnNsYXRlWigtMTAwcHgpIHJvdGF0ZVkoMTVkZWcpO1xyXG4gICAgei1pbmRleDogMjtcclxufVxyXG5cclxuLmNhcm91c2VsLWl0ZW0ubmV4dCB7XHJcbiAgICBvcGFjaXR5OiAwLjg7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSB0cmFuc2xhdGVYKDc1JSkgdHJhbnNsYXRlWigtMTAwcHgpIHJvdGF0ZVkoLTE1ZGVnKTtcclxuICAgIHotaW5kZXg6IDI7XHJcbn1cclxuXHJcbi5jYXJvdXNlbC1pdGVtLmZhci1wcmV2IHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHRyYW5zbGF0ZVgoLTEyMCUpIHRyYW5zbGF0ZVooLTIwMHB4KSByb3RhdGVZKDMwZGVnKTtcclxuICAgIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5jYXJvdXNlbC1pdGVtLmZhci1uZXh0IHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHRyYW5zbGF0ZVgoMTIwJSkgdHJhbnNsYXRlWigtMjAwcHgpIHJvdGF0ZVkoLTMwZGVnKTtcclxuICAgIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5jYXJvdXNlbC1uYXYge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4uY2Fyb3VzZWwtM2QtY29udGFpbmVyOmhvdmVyIC5jYXJvdXNlbC1uYXYge1xyXG4gICAgb3BhY2l0eTogMTtcclxufVxyXG5cclxuLmluZGljYXRvci5hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0U2Mzk0NjtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcclxufVxyXG5cclxuLmNhcm91c2VsLWl0ZW0gLm1vZGUtY2FyZCB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCAjMUExQTFBLCAjMEYwRjBGKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyRTJFMkU7XHJcbiAgICBib3gtc2hhZG93OiAwIDIwcHggNTBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4uY2Fyb3VzZWwtaXRlbS5hY3RpdmUgLm1vZGUtY2FyZCB7XHJcbiAgICBib3gtc2hhZG93OiAwIDI1cHggNjBweCByZ2JhKDIzMCwgNTcsIDcwLCAwLjMpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjRTYzOTQ2O1xyXG59XHJcblxyXG4jbW9iaWxlLW1lbnUge1xyXG4gICAgYW5pbWF0aW9uOiBzbGlkZURvd24gMC4zcyBlYXNlLW91dDtcclxufVxyXG5cclxuI21vYmlsZS1tZW51LmhpZGRlbiB7XHJcbiAgICBhbmltYXRpb246IHNsaWRlVXAgMC4zcyBlYXNlLW91dDtcclxufVxyXG5cclxuQGtleWZyYW1lcyBzbGlkZURvd24ge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xyXG4gICAgfVxyXG4gICAgdG8ge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHNsaWRlVXAge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICB9XHJcbiAgICB0byB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5jYXJvdXNlbC1pdGVtIHtcclxuICAgICAgICB3aWR0aDogOTAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jYXJvdXNlbC1pdGVtLnByZXYsXHJcbiAgICAuY2Fyb3VzZWwtaXRlbS5uZXh0IHtcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5jYXJvdXNlbC1uYXYge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLmhlcm8tYmcge1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDcwJSBjZW50ZXI7XHJcbiAgICAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7XHJcbiAgICB9XHJcblxyXG4gICAgLmhlYWRlci1nbGFzcyB7XHJcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBub25lO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC5hdWRpZW5jZS1ncmlkLFxyXG4gICAgLm1vZGUtZ3JpZCB7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XHJcbiAgICB9XHJcblxyXG4gICAgLnByb2R1Y3QtdG9vbHRpcCB7XHJcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNzVyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnByb2R1Y3QtYnRuIHtcclxuICAgICAgICB3aWR0aDogMjZweDtcclxuICAgICAgICBoZWlnaHQ6IDI2cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmRyb3Bkb3duLW1lbnUge1xyXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcclxuICAgIGZvb3RlciA+IGRpdiA+IGRpdiB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXItbGluayB7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xyXG4gICAgLmhlcm8tdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5oZXJvLXN1YnRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnNlY3Rpb24tdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAucHJvZHVjdC10b29sdGlwIHtcclxuICAgICAgICB3aWR0aDogMTYwcHg7XHJcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5hdWRpZW5jZS1pY29uIHtcclxuICAgICAgICB3aWR0aDogNDBweDtcclxuICAgICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiBCYWNrIHRvIHRvcCBidXR0b24gKi9cclxuLmJhY2stdG8tdG9wIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGJvdHRvbTogMzBweDtcclxuICAgIHJpZ2h0OiAzMHB4O1xyXG4gICAgd2lkdGg6IDUwcHg7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjRTYzOTQ2LCAjQzExMjFGKTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgei1pbmRleDogOTk5O1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTVweCByZ2JhKDIzMCwgNTcsIDcwLCAwLjQpO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG59XHJcblxyXG4uYmFjay10by10b3AudmlzaWJsZSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxufVxyXG5cclxuLmJhY2stdG8tdG9wOmhvdmVyIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgyMzAsIDU3LCA3MCwgMC42KTtcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYmFjay10by10b3Age1xyXG4gICAgICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgYm90dG9tOiAyMHB4O1xyXG4gICAgICAgIHJpZ2h0OiAyMHB4O1xyXG4gICAgfVxyXG59Il19 */