/*!*****************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_homepage.css ***!
  \*****************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
HOMEPAGE
###############################################################################################################################################################
*/

html, body {
    overscroll-behavior-y: contain; /* Disable the pull-to-refresh everywhere in the page */
    touch-action: unset; /* ReEnable the pull-to-refresh everywhere on iOS+Safari, else the scroll is disabled */
    overflow: unset; /* ReEnable the pull-to-refresh everywhere on iOS+Safari, else the scroll is disabled */
    scroll-behavior: smooth;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background-color: var(--COLOR_SURFACE_20);
}

/*
###############################################################################################################################################################
HERO SECTION
###############################################################################################################################################################
*/

#hero-section {
	position: relative;
	width: 100%;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: center;
    background: url('/images/banner/xploo-banner.jpg') no-repeat;
    background-size: cover;
    background-position: right;
	justify-content: flex-start;
	padding: 75px 20px;
    margin-top: calc(-1 * var(--HEADER_HEIGHT));
	gap: 1.5rem;
    font-family: var(--FONT-FAMILY);
    overflow: visible;
    z-index: 9;
}

/* Overlay semi-transparent */
/* #hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4); 
    z-index: 1;
} */


#hero-section::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 200px;
    /* background: var(--COLOR_SURFACE_20); */
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, var(--COLOR_SURFACE_20) 100%);
    pointer-events: none;
}


#hero-section > * {
    position: relative;
    z-index: 2;
}


#slogan {
	text-align: center;
    font-size: calc(2rem + 1.25 * var(--RESPONSIVE-RATIO)); /* font-size: calc(1.5rem + 1.5vw); */
    line-height: calc(2.5rem + 1.5 * var(--RESPONSIVE-RATIO));  /* line-height: calc(2rem + 1.5vw); */
    /* font-size: 3rem;
    line-height: 3.56rem; */
	font-weight: bold;
	color: var(--COLOR_SURFACE_90);
	opacity: 0;
	transform: translateY(20px);
	animation: fadeInUp 0.8s ease forwards;
}

.slogan-text {
    text-align: center;
    font-size: calc(0.8rem + 0.4 * var(--RESPONSIVE-RATIO)); /* font-size: calc((1.5rem + 1.5vw) / 3); */
}

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

/*
###############################################################################################################################################################
BUTTONS
###############################################################################################################################################################
*/

.hero-buttons {
    display: flex;
    gap: 2rem;
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 0.8s ease forwards 0.3s;
}

.btn-demo, .btn-more, .btn-why-choose-xploo, .btn-contact-us {
    font-family: var(--FONT-FAMILY);
    padding: 0.6rem 1.5rem;
    text-align: center;
    border-radius: var(--BUTTON_BORDER_RADIUS);
    border: none;
    text-decoration: none;
    color: var(--COLOR_SURFACE_90) !important;
    transition: all 0.3s ease;
    box-shadow: 
    inset 4px 4px 8px rgba(255, 255, 255, 0.2),
    inset -4px -4px 8px rgba(0, 0, 0, 0.2);
}

.btn-demo, .btn-why-choose-xploo, .btn-contact-us {
    background: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
}

.btn-demo:hover, .btn-why-choose-xploo:hover, .btn-contact-us:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(255, 102, 0, 0.3);
    text-decoration: none;
}

.btn-more {
    background: transparent;
    border: 2px solid var(--COLOR_SURFACE_90);
}

.btn-more:hover {
    background: rgba(255, 255, 255, 0.1);
    text-decoration: none;
}

.btn-contact-us {
    margin-top: 2rem;
}

/*
###############################################################################################################################################################
RESPONSIVE BUTTONS
###############################################################################################################################################################
*/

@media screen and (max-width: 896px) {
    .hero-buttons {
        flex-direction: column;
        gap: 1.5rem;
        align-items: center;
        width: 100%;
    }

    .btn-demo, .btn-more, .btn-why-choose-xploo, .btn-contact-us {
        padding: 0.5rem 1.2rem;
        font-size: 0.9rem;
        width: 100%;
        max-width: 280px;
    }

    .btn-contact-us {
        margin-top: 1.5rem;
    }
}

@media screen and (max-width: 626px) {
    .hero-buttons {
        gap: 1rem;
    }

    .btn-demo, .btn-more, .btn-why-choose-xploo, .btn-contact-us {
        padding: 0.4rem 1rem;
        font-size: 0.8rem;
        max-width: 250px;
    }

    .btn-contact-us {
        margin-top: 1rem;
    }
}

@media screen and (max-width: 480px) {
    .btn-demo, .btn-more, .btn-why-choose-xploo, .btn-contact-us {
        padding: 0.4rem 0.8rem;
        font-size: 0.75rem;
        max-width: 180px;
    }
}

/*
###############################################################################################################################################################
PARTNERS SECTION
###############################################################################################################################################################
*/

.partners-section {
    text-align: center;
    width: 100%;
}

.partners-text {
    margin-bottom: 1.5rem;
    margin-top: 3rem;
    font-size: 1.2rem;
    color: var(--COLOR_SURFACE_90);
    font-weight: 600;
}

.partners-logos {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    padding: 0 2rem;
    max-width: 1200px;
    margin: 0 auto;
    transform: scale(1.2);
}

.partner-logo {
    height: 70px;
    width: auto;
    -o-object-fit: contain;
       object-fit: contain;
    transition: transform 0.3s ease;
    margin-right: 2rem;
}

.partner-logo:hover {
    transform: scale(1.4);
}

/*
###############################################################################################################################################################
LANDING PAGE
###############################################################################################################################################################
*/

#landing-page {
	position: relative;
    width: 100%;
    background-color: var(--COLOR_SURFACE_20);
    padding: 0;
}

#landing-page h2 {
    font-size: calc(1.6rem + 1.1 * var(--RESPONSIVE-RATIO)); /* font-size: calc(1.2rem + 1.2vw); */
    overflow: unset;
    text-overflow: unset;
    white-space: unset;
}

.landing-content {
    max-width: 90%;
    margin: 0 auto;
}

.landing-features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-bottom: 6rem;
}

#xploo-explanation-title, #why-choose-xploo-title {
    font-size: 2.4rem;
    font-weight: 600;
    text-align: center;
    color: var(--COLOR_SURFACE_90);
    overflow: visible;
    text-overflow: clip;
    white-space: normal;

}

#xploo-explanation-title {
    margin-top: 6rem;
    margin-bottom: 6rem;
}

.features-title-container {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

.feature {
    width: 100%;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 2rem;
    border-radius: var(--BUTTON_BORDER_RADIUS);
    transition: transform 0.3s ease;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.feature:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}

.feature h3 {
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--COLOR_SURFACE_90);
    margin: 1rem 0;
    text-align: center;
}

.feature p {
    color: var(--COLOR_SURFACE_70);
    line-height: 1.6;
}

.feature-icon {
    font-size: 2.5rem;
    display: block;
    margin-bottom: 1rem;
}

.eco-care-icon, .target-icon, .gold-coin-icon, .chart-data-icon, .sparkles-glitter-colors-icon {
    height: 4.7rem;
}

.landing-section {
    display: flex;
    align-items: center;
    gap: 4rem;
    margin-bottom: 6rem;
}

.landing-section:nth-child(even) {
    flex-direction: row-reverse;
}

.landing-section .landing-image {
    width: 40%;
    height: auto;
    -o-object-fit: contain;
       object-fit: contain;
    border-radius: var(--BUTTON_BORDER_RADIUS);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.landing-section .content-wrapper {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    flex: 1;
    align-items: center;
    text-align: center;
}

.landing-section .content-wrapper h3 {
    font-size: calc(1.2rem + 0.7 * var(--RESPONSIVE-RATIO)); /* calc(0.9rem + 0.9vw); */
    font-weight: 600;
    color: var(--COLOR_SURFACE_90);
    line-height: 1.3;
}

.landing-section .content-wrapper ul {
    list-style: none;
    padding-left: 1.5rem;
    margin: 0 auto;
}

.landing-section .content-wrapper ul li {
    position: relative;
    margin-bottom: 1rem;
    color: var(--COLOR_SURFACE_80);
    line-height: 1.5;
    text-align: left;
}

.landing-section .content-wrapper ul li::before {
    content: "•";
    position: absolute;
    left: -1.5rem;
    color: var(--COLOR_ACTION_40);
    font-size: 1.5rem;
    line-height: 1;
}

.trophy-image {
    height: 140px;
    width: auto;
    margin: 0 10px 0 10px;
}

/*
###############################################################################################################################################################
NEWSLETTER SECTION
###############################################################################################################################################################
*/

.newsletter-section {
    background: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
    padding: 4rem 2rem;
    text-align: center;
    border-radius: var(--BUTTON_BORDER_RADIUS);
}

.newsletter-section h2 {
    color: var(--COLOR_SURFACE_90);
    font-size: 2rem;
    font-weight: 600;
    /* margin-bottom: 2rem; */
}

.newsletter-section ul {
    list-style-type: disc;
    display: inline-block;
    text-align: left;
    padding-left: 20px;
}

.newsletter-section li {
    margin: 10px 0;
}

.newsletter-form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    max-width: 500px;
    margin: 0 auto;
}

.newsletter-form label {
    color: var(--COLOR_SURFACE_90);
    font-size: 1.2rem;
    font-weight: 500;
}

.newsletter-form input {
    width: 100%;
    padding: 1rem;
    border: 2px solid var(--COLOR_SURFACE_90);
    border-radius: var(--BUTTON_BORDER_RADIUS);
    background: transparent;
    color: var(--COLOR_SURFACE_90);
    font-size: 1rem;
}

.newsletter-form input::-moz-placeholder {
    color: rgba(255, 255, 255, 0.8);
}

.newsletter-form input::placeholder {
    color: rgba(255, 255, 255, 0.8);
}

.btn-prototype {
    font-family: var(--FONT-FAMILY);
    padding: 0.8rem 2rem;
    border-radius: var(--BUTTON_BORDER_RADIUS);
    font-size: 1.1rem;
    text-decoration: none;
    color: var(--COLOR_ACTION_40) !important;
    background: var(--COLOR_SURFACE_90);
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-top: 1rem;
    box-shadow: 
    inset 4px 4px 8px rgba(255, 255, 255, 0.2),
    inset -4px -4px 8px rgba(0, 0, 0, 0.2);

}

.btn-prototype:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

/*
###############################################################################################################################################################
RESPONSIVE
###############################################################################################################################################################
*/

@media screen and (max-width: 896px) {
    #hero-section {
        padding-bottom: 0;
        /* min-height: unset; */
    }

    #slogan {
        /* font-size: 2rem;
        line-height: 2.56rem; */
        margin: 0;
    }

    .slogan-text {
        /* font-size: 0.8rem; */
        white-space: normal;
        overflow: unset;
    }

    #xploo-explanation-title {
        margin-top: 3rem;
        margin-bottom: 3rem;
    }

    .landing-features {
        grid-template-columns: 1fr;
    }

    .feature {
        padding: 1.5rem;
    }

    .landing-features > h2 {
        font-size: 2rem;
    }

    .landing-section {
        flex-direction: column !important;
        text-align: center;
        gap: 2rem;
    }

    .landing-section .landing-image {
        width: 100%;
    }
    .partner-logo {
        height: 50px;
    }
    .trophy-image {
        height: 100px;
    }
}

@media (max-width: 768px) {
    .partners-text {
        font-size: 1.4rem;
    }
}

@media screen and (max-width: 480px) {
    #hero-section {
        background-position: center center;
    }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Q0FJQzs7QUFFRDtJQUNJLDhCQUE4QixFQUFFLHVEQUF1RDtJQUN2RixtQkFBbUIsRUFBRSx1RkFBdUY7SUFDNUcsZUFBZSxFQUFFLHVGQUF1RjtJQUN4Ryx1QkFBdUI7SUFDdkIsaUJBQWlCO0lBQ2pCLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIseUNBQXlDO0FBQzdDOztBQUVBOzs7O0NBSUM7O0FBRUQ7Q0FDQyxrQkFBa0I7Q0FDbEIsV0FBVztDQUNYLGlCQUFpQjtDQUNqQixhQUFhO0NBQ2Isc0JBQXNCO0NBQ3RCLG1CQUFtQjtJQUNoQiw0REFBNEQ7SUFDNUQsc0JBQXNCO0lBQ3RCLDBCQUEwQjtDQUM3QiwyQkFBMkI7Q0FDM0Isa0JBQWtCO0lBQ2YsMkNBQTJDO0NBQzlDLFdBQVc7SUFDUiwrQkFBK0I7SUFDL0IsaUJBQWlCO0lBQ2pCLFVBQVU7QUFDZDs7QUFFQSw2QkFBNkI7QUFDN0I7Ozs7Ozs7OztHQVNHOzs7QUFHSDtJQUNJLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsU0FBUztJQUNULE9BQU87SUFDUCxXQUFXO0lBQ1gsYUFBYTtJQUNiLHlDQUF5QztJQUN6QywrRkFBK0Y7SUFDL0Ysb0JBQW9CO0FBQ3hCOzs7QUFHQTtJQUNJLGtCQUFrQjtJQUNsQixVQUFVO0FBQ2Q7OztBQUdBO0NBQ0Msa0JBQWtCO0lBQ2Ysc0RBQXNELEVBQUUscUNBQXFDO0lBQzdGLHlEQUF5RCxHQUFHLHFDQUFxQztJQUNqRzsyQkFDdUI7Q0FDMUIsaUJBQWlCO0NBQ2pCLDhCQUE4QjtDQUM5QixVQUFVO0NBQ1YsMkJBQTJCO0NBQzNCLHNDQUFzQztBQUN2Qzs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQix1REFBdUQsRUFBRSwyQ0FBMkM7QUFDeEc7O0FBRUE7Q0FDQztFQUNDLFVBQVU7RUFDViwyQkFBMkI7Q0FDNUI7Q0FDQTtFQUNDLFVBQVU7RUFDVix3QkFBd0I7Q0FDekI7QUFDRDs7QUFFQTs7OztDQUlDOztBQUVEO0lBQ0ksYUFBYTtJQUNiLFNBQVM7SUFDVCxVQUFVO0lBQ1YsMkJBQTJCO0lBQzNCLDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLCtCQUErQjtJQUMvQixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLDBDQUEwQztJQUMxQyxZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLHlDQUF5QztJQUN6Qyx5QkFBeUI7SUFDekI7OzBDQUVzQztBQUMxQzs7QUFFQTtJQUNJLHFGQUFxRjtBQUN6Rjs7QUFFQTtJQUNJLDJCQUEyQjtJQUMzQiw2Q0FBNkM7SUFDN0MscUJBQXFCO0FBQ3pCOztBQUVBO0lBQ0ksdUJBQXVCO0lBQ3ZCLHlDQUF5QztBQUM3Qzs7QUFFQTtJQUNJLG9DQUFvQztJQUNwQyxxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7Ozs7Q0FJQzs7QUFFRDtJQUNJO1FBQ0ksc0JBQXNCO1FBQ3RCLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsV0FBVztJQUNmOztJQUVBO1FBQ0ksc0JBQXNCO1FBQ3RCLGlCQUFpQjtRQUNqQixXQUFXO1FBQ1gsZ0JBQWdCO0lBQ3BCOztJQUVBO1FBQ0ksa0JBQWtCO0lBQ3RCO0FBQ0o7O0FBRUE7SUFDSTtRQUNJLFNBQVM7SUFDYjs7SUFFQTtRQUNJLG9CQUFvQjtRQUNwQixpQkFBaUI7UUFDakIsZ0JBQWdCO0lBQ3BCOztJQUVBO1FBQ0ksZ0JBQWdCO0lBQ3BCO0FBQ0o7O0FBRUE7SUFDSTtRQUNJLHNCQUFzQjtRQUN0QixrQkFBa0I7UUFDbEIsZ0JBQWdCO0lBQ3BCO0FBQ0o7O0FBRUE7Ozs7Q0FJQzs7QUFFRDtJQUNJLGtCQUFrQjtJQUNsQixXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQiw4QkFBOEI7SUFDOUIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFDbkIsZUFBZTtJQUNmLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsY0FBYztJQUNkLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLFlBQVk7SUFDWixXQUFXO0lBQ1gsc0JBQW1CO09BQW5CLG1CQUFtQjtJQUNuQiwrQkFBK0I7SUFDL0Isa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0kscUJBQXFCO0FBQ3pCOztBQUVBOzs7O0NBSUM7O0FBRUQ7Q0FDQyxrQkFBa0I7SUFDZixXQUFXO0lBQ1gseUNBQXlDO0lBQ3pDLFVBQVU7QUFDZDs7QUFFQTtJQUNJLHVEQUF1RCxFQUFFLHFDQUFxQztJQUM5RixlQUFlO0lBQ2Ysb0JBQW9CO0lBQ3BCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHFDQUFxQztJQUNyQyxTQUFTO0lBQ1QsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixrQkFBa0I7SUFDbEIsOEJBQThCO0lBQzlCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsbUJBQW1COztBQUV2Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsb0NBQW9DO0lBQ3BDLDJCQUEyQjtJQUMzQixtQ0FBbUM7SUFDbkMsYUFBYTtJQUNiLDBDQUEwQztJQUMxQywrQkFBK0I7SUFDL0Isa0JBQWtCO0lBQ2xCLHdDQUF3QztBQUM1Qzs7QUFFQTtJQUNJLDJCQUEyQjtJQUMzQix1Q0FBdUM7QUFDM0M7O0FBRUE7SUFDSSxpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLDhCQUE4QjtJQUM5QixjQUFjO0lBQ2Qsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsU0FBUztJQUNULG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLDJCQUEyQjtBQUMvQjs7QUFFQTtJQUNJLFVBQVU7SUFDVixZQUFZO0lBQ1osc0JBQW1CO09BQW5CLG1CQUFtQjtJQUNuQiwwQ0FBMEM7SUFDMUMsd0NBQXdDO0FBQzVDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixXQUFXO0lBQ1gsT0FBTztJQUNQLG1CQUFtQjtJQUNuQixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSx1REFBdUQsRUFBRSwwQkFBMEI7SUFDbkYsZ0JBQWdCO0lBQ2hCLDhCQUE4QjtJQUM5QixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLDhCQUE4QjtJQUM5QixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksWUFBWTtJQUNaLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsNkJBQTZCO0lBQzdCLGlCQUFpQjtJQUNqQixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFdBQVc7SUFDWCxxQkFBcUI7QUFDekI7O0FBRUE7Ozs7Q0FJQzs7QUFFRDtJQUNJLHFGQUFxRjtJQUNyRixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLDBDQUEwQztBQUM5Qzs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHFCQUFxQjtJQUNyQixxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQixTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsaUJBQWlCO0lBQ2pCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxhQUFhO0lBQ2IseUNBQXlDO0lBQ3pDLDBDQUEwQztJQUMxQyx1QkFBdUI7SUFDdkIsOEJBQThCO0lBQzlCLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSwrQkFBK0I7QUFDbkM7O0FBRkE7SUFDSSwrQkFBK0I7QUFDbkM7O0FBRUE7SUFDSSwrQkFBK0I7SUFDL0Isb0JBQW9CO0lBQ3BCLDBDQUEwQztJQUMxQyxpQkFBaUI7SUFDakIscUJBQXFCO0lBQ3JCLHdDQUF3QztJQUN4QyxtQ0FBbUM7SUFDbkMsWUFBWTtJQUNaLGVBQWU7SUFDZix5QkFBeUI7SUFDekIsZ0JBQWdCO0lBQ2hCOzswQ0FFc0M7O0FBRTFDOztBQUVBO0lBQ0ksMkJBQTJCO0lBQzNCLHlDQUF5QztBQUM3Qzs7QUFFQTs7OztDQUlDOztBQUVEO0lBQ0k7UUFDSSxpQkFBaUI7UUFDakIsdUJBQXVCO0lBQzNCOztJQUVBO1FBQ0k7K0JBQ3VCO1FBQ3ZCLFNBQVM7SUFDYjs7SUFFQTtRQUNJLHVCQUF1QjtRQUN2QixtQkFBbUI7UUFDbkIsZUFBZTtJQUNuQjs7SUFFQTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7SUFDdkI7O0lBRUE7UUFDSSwwQkFBMEI7SUFDOUI7O0lBRUE7UUFDSSxlQUFlO0lBQ25COztJQUVBO1FBQ0ksZUFBZTtJQUNuQjs7SUFFQTtRQUNJLGlDQUFpQztRQUNqQyxrQkFBa0I7UUFDbEIsU0FBUztJQUNiOztJQUVBO1FBQ0ksV0FBVztJQUNmO0lBQ0E7UUFDSSxZQUFZO0lBQ2hCO0lBQ0E7UUFDSSxhQUFhO0lBQ2pCO0FBQ0o7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0lBQ0k7UUFDSSxrQ0FBa0M7SUFDdEM7QUFDSixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcHVibGljL2Nzcy94cGxvb19ob21lcGFnZS5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuSE9NRVBBR0VcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuaHRtbCwgYm9keSB7XG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBjb250YWluOyAvKiBEaXNhYmxlIHRoZSBwdWxsLXRvLXJlZnJlc2ggZXZlcnl3aGVyZSBpbiB0aGUgcGFnZSAqL1xuICAgIHRvdWNoLWFjdGlvbjogdW5zZXQ7IC8qIFJlRW5hYmxlIHRoZSBwdWxsLXRvLXJlZnJlc2ggZXZlcnl3aGVyZSBvbiBpT1MrU2FmYXJpLCBlbHNlIHRoZSBzY3JvbGwgaXMgZGlzYWJsZWQgKi9cbiAgICBvdmVyZmxvdzogdW5zZXQ7IC8qIFJlRW5hYmxlIHRoZSBwdWxsLXRvLXJlZnJlc2ggZXZlcnl3aGVyZSBvbiBpT1MrU2FmYXJpLCBlbHNlIHRoZSBzY3JvbGwgaXMgZGlzYWJsZWQgKi9cbiAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tQ09MT1JfU1VSRkFDRV8yMCk7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkhFUk8gU0VDVElPTlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4jaGVyby1zZWN0aW9uIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0bWluLWhlaWdodDogMTAwdmg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogdXJsKCcvaW1hZ2VzL2Jhbm5lci94cGxvby1iYW5uZXIuanBnJykgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQ7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0cGFkZGluZzogNzVweCAyMHB4O1xuICAgIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1IRUFERVJfSEVJR0hUKSk7XG5cdGdhcDogMS41cmVtO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1GT05ULUZBTUlMWSk7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgei1pbmRleDogOTtcbn1cblxuLyogT3ZlcmxheSBzZW1pLXRyYW5zcGFyZW50ICovXG4vKiAjaGVyby1zZWN0aW9uOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQpOyBcbiAgICB6LWluZGV4OiAxO1xufSAqL1xuXG5cbiNoZXJvLXNlY3Rpb246OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIC8qIGJhY2tncm91bmQ6IHZhcigtLUNPTE9SX1NVUkZBQ0VfMjApOyAqL1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsIHZhcigtLUNPTE9SX1NVUkZBQ0VfMjApIDEwMCUpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5cbiNoZXJvLXNlY3Rpb24gPiAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbn1cblxuXG4jc2xvZ2FuIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogY2FsYygycmVtICsgMS4yNSAqIHZhcigtLVJFU1BPTlNJVkUtUkFUSU8pKTsgLyogZm9udC1zaXplOiBjYWxjKDEuNXJlbSArIDEuNXZ3KTsgKi9cbiAgICBsaW5lLWhlaWdodDogY2FsYygyLjVyZW0gKyAxLjUgKiB2YXIoLS1SRVNQT05TSVZFLVJBVElPKSk7ICAvKiBsaW5lLWhlaWdodDogY2FsYygycmVtICsgMS41dncpOyAqL1xuICAgIC8qIGZvbnQtc2l6ZTogM3JlbTtcbiAgICBsaW5lLWhlaWdodDogMy41NnJlbTsgKi9cblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzkwKTtcblx0b3BhY2l0eTogMDtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuXHRhbmltYXRpb246IGZhZGVJblVwIDAuOHMgZWFzZSBmb3J3YXJkcztcbn1cblxuLnNsb2dhbi10ZXh0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiBjYWxjKDAuOHJlbSArIDAuNCAqIHZhcigtLVJFU1BPTlNJVkUtUkFUSU8pKTsgLyogZm9udC1zaXplOiBjYWxjKCgxLjVyZW0gKyAxLjV2dykgLyAzKTsgKi9cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5VcCB7XG5cdGZyb20ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuXHR9XG5cdHRvIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0fVxufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5CVVRUT05TXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi5oZXJvLWJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAycmVtO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMC44cyBlYXNlIGZvcndhcmRzIDAuM3M7XG59XG5cbi5idG4tZGVtbywgLmJ0bi1tb3JlLCAuYnRuLXdoeS1jaG9vc2UteHBsb28sIC5idG4tY29udGFjdC11cyB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLUZPTlQtRkFNSUxZKTtcbiAgICBwYWRkaW5nOiAwLjZyZW0gMS41cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1CVVRUT05fQk9SREVSX1JBRElVUyk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfU1VSRkFDRV85MCkgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIGJveC1zaGFkb3c6IFxuICAgIGluc2V0IDRweCA0cHggOHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSxcbiAgICBpbnNldCAtNHB4IC00cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuLmJ0bi1kZW1vLCAuYnRuLXdoeS1jaG9vc2UteHBsb28sIC5idG4tY29udGFjdC11cyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1DT0xPUl9BQ1RJT05fNDApLCB2YXIoLS1DT0xPUl9BQ1RJT05fNjApKTtcbn1cblxuLmJ0bi1kZW1vOmhvdmVyLCAuYnRuLXdoeS1jaG9vc2UteHBsb286aG92ZXIsIC5idG4tY29udGFjdC11czpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgyNTUsIDEwMiwgMCwgMC4zKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5idG4tbW9yZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tQ09MT1JfU1VSRkFDRV85MCk7XG59XG5cbi5idG4tbW9yZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmJ0bi1jb250YWN0LXVzIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5SRVNQT05TSVZFIEJVVFRPTlNcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk2cHgpIHtcbiAgICAuaGVyby1idXR0b25zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxLjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5idG4tZGVtbywgLmJ0bi1tb3JlLCAuYnRuLXdoeS1jaG9vc2UteHBsb28sIC5idG4tY29udGFjdC11cyB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxLjJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICB9XG5cbiAgICAuYnRuLWNvbnRhY3QtdXMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MjZweCkge1xuICAgIC5oZXJvLWJ1dHRvbnMge1xuICAgICAgICBnYXA6IDFyZW07XG4gICAgfVxuXG4gICAgLmJ0bi1kZW1vLCAuYnRuLW1vcmUsIC5idG4td2h5LWNob29zZS14cGxvbywgLmJ0bi1jb250YWN0LXVzIHtcbiAgICAgICAgcGFkZGluZzogMC40cmVtIDFyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgIH1cblxuICAgIC5idG4tY29udGFjdC11cyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgIC5idG4tZGVtbywgLmJ0bi1tb3JlLCAuYnRuLXdoeS1jaG9vc2UteHBsb28sIC5idG4tY29udGFjdC11cyB7XG4gICAgICAgIHBhZGRpbmc6IDAuNHJlbSAwLjhyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAxODBweDtcbiAgICB9XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblBBUlRORVJTIFNFQ1RJT05cbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnBhcnRuZXJzLXNlY3Rpb24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnBhcnRuZXJzLXRleHQge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzkwKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ucGFydG5lcnMtbG9nb3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZzogMCAycmVtO1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbn1cblxuLnBhcnRuZXItbG9nbyB7XG4gICAgaGVpZ2h0OiA3MHB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG59XG5cbi5wYXJ0bmVyLWxvZ286aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS40KTtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuTEFORElORyBQQUdFXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbiNsYW5kaW5nLXBhZ2Uge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tQ09MT1JfU1VSRkFDRV8yMCk7XG4gICAgcGFkZGluZzogMDtcbn1cblxuI2xhbmRpbmctcGFnZSBoMiB7XG4gICAgZm9udC1zaXplOiBjYWxjKDEuNnJlbSArIDEuMSAqIHZhcigtLVJFU1BPTlNJVkUtUkFUSU8pKTsgLyogZm9udC1zaXplOiBjYWxjKDEuMnJlbSArIDEuMnZ3KTsgKi9cbiAgICBvdmVyZmxvdzogdW5zZXQ7XG4gICAgdGV4dC1vdmVyZmxvdzogdW5zZXQ7XG4gICAgd2hpdGUtc3BhY2U6IHVuc2V0O1xufVxuXG4ubGFuZGluZy1jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmxhbmRpbmctZmVhdHVyZXMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogNnJlbTtcbn1cblxuI3hwbG9vLWV4cGxhbmF0aW9uLXRpdGxlLCAjd2h5LWNob29zZS14cGxvby10aXRsZSB7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfOTApO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcblxufVxuXG4jeHBsb28tZXhwbGFuYXRpb24tdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDZyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogNnJlbTtcbn1cblxuLmZlYXR1cmVzLXRpdGxlLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5mZWF0dXJlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tQlVUVE9OX0JPUkRFUl9SQURJVVMpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5mZWF0dXJlOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgwLDAsMCwwLjEpO1xufVxuXG4uZmVhdHVyZSBoMyB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfU1VSRkFDRV85MCk7XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZmVhdHVyZSBwIHtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfU1VSRkFDRV83MCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLmZlYXR1cmUtaWNvbiB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmVjby1jYXJlLWljb24sIC50YXJnZXQtaWNvbiwgLmdvbGQtY29pbi1pY29uLCAuY2hhcnQtZGF0YS1pY29uLCAuc3BhcmtsZXMtZ2xpdHRlci1jb2xvcnMtaWNvbiB7XG4gICAgaGVpZ2h0OiA0LjdyZW07XG59XG5cbi5sYW5kaW5nLXNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogNnJlbTtcbn1cblxuLmxhbmRpbmctc2VjdGlvbjpudGgtY2hpbGQoZXZlbikge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuLmxhbmRpbmctc2VjdGlvbiAubGFuZGluZy1pbWFnZSB7XG4gICAgd2lkdGg6IDQwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1CVVRUT05fQk9SREVSX1JBRElVUyk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLmxhbmRpbmctc2VjdGlvbiAuY29udGVudC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxLjVyZW07XG4gICAgZmxleDogMTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxhbmRpbmctc2VjdGlvbiAuY29udGVudC13cmFwcGVyIGgzIHtcbiAgICBmb250LXNpemU6IGNhbGMoMS4ycmVtICsgMC43ICogdmFyKC0tUkVTUE9OU0lWRS1SQVRJTykpOyAvKiBjYWxjKDAuOXJlbSArIDAuOXZ3KTsgKi9cbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzkwKTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4ubGFuZGluZy1zZWN0aW9uIC5jb250ZW50LXdyYXBwZXIgdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5sYW5kaW5nLXNlY3Rpb24gLmNvbnRlbnQtd3JhcHBlciB1bCBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgY29sb3I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfODApO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmxhbmRpbmctc2VjdGlvbiAuY29udGVudC13cmFwcGVyIHVsIGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC0xLjVyZW07XG4gICAgY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl80MCk7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi50cm9waHktaW1hZ2Uge1xuICAgIGhlaWdodDogMTQwcHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAwIDEwcHggMCAxMHB4O1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5ORVdTTEVUVEVSIFNFQ1RJT05cbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLm5ld3NsZXR0ZXItc2VjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1DT0xPUl9BQ1RJT05fNDApLCB2YXIoLS1DT0xPUl9BQ1RJT05fNjApKTtcbiAgICBwYWRkaW5nOiA0cmVtIDJyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLUJVVFRPTl9CT1JERVJfUkFESVVTKTtcbn1cblxuLm5ld3NsZXR0ZXItc2VjdGlvbiBoMiB7XG4gICAgY29sb3I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfOTApO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIC8qIG1hcmdpbi1ib3R0b206IDJyZW07ICovXG59XG5cbi5uZXdzbGV0dGVyLXNlY3Rpb24gdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi5uZXdzbGV0dGVyLXNlY3Rpb24gbGkge1xuICAgIG1hcmdpbjogMTBweCAwO1xufVxuXG4ubmV3c2xldHRlci1mb3JtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDFyZW07XG4gICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLm5ld3NsZXR0ZXItZm9ybSBsYWJlbCB7XG4gICAgY29sb3I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfOTApO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5uZXdzbGV0dGVyLWZvcm0gaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tQ09MT1JfU1VSRkFDRV85MCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tQlVUVE9OX0JPUkRFUl9SQURJVVMpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzkwKTtcbiAgICBmb250LXNpemU6IDFyZW07XG59XG5cbi5uZXdzbGV0dGVyLWZvcm0gaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xufVxuXG4uYnRuLXByb3RvdHlwZSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLUZPTlQtRkFNSUxZKTtcbiAgICBwYWRkaW5nOiAwLjhyZW0gMnJlbTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1CVVRUT05fQk9SREVSX1JBRElVUyk7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNDApICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tQ09MT1JfU1VSRkFDRV85MCk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgYm94LXNoYWRvdzogXG4gICAgaW5zZXQgNHB4IDRweCA4cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLFxuICAgIGluc2V0IC00cHggLTRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuXG59XG5cbi5idG4tcHJvdG90eXBlOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblJFU1BPTlNJVkVcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk2cHgpIHtcbiAgICAjaGVyby1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIC8qIG1pbi1oZWlnaHQ6IHVuc2V0OyAqL1xuICAgIH1cblxuICAgICNzbG9nYW4ge1xuICAgICAgICAvKiBmb250LXNpemU6IDJyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjU2cmVtOyAqL1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnNsb2dhbi10ZXh0IHtcbiAgICAgICAgLyogZm9udC1zaXplOiAwLjhyZW07ICovXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIG92ZXJmbG93OiB1bnNldDtcbiAgICB9XG5cbiAgICAjeHBsb28tZXhwbGFuYXRpb24tdGl0bGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICAgIH1cblxuICAgIC5sYW5kaW5nLWZlYXR1cmVzIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuXG4gICAgLmZlYXR1cmUge1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgfVxuXG4gICAgLmxhbmRpbmctZmVhdHVyZXMgPiBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG5cbiAgICAubGFuZGluZy1zZWN0aW9uIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMnJlbTtcbiAgICB9XG5cbiAgICAubGFuZGluZy1zZWN0aW9uIC5sYW5kaW5nLWltYWdlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5wYXJ0bmVyLWxvZ28ge1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgfVxuICAgIC50cm9waHktaW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLnBhcnRuZXJzLXRleHQge1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgI2hlcm8tc2VjdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgfVxufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=*/