/*!**********************************************************************************************************************************************************************************************************!*\
  !*** 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_forms_unified.css ***!
  \**********************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
UNIFIED FORMS STYLES - XPLOO
Styles cohérents pour tous les formulaires (login, demo, contact)
Compatible avec tous les navigateurs et modes (sombre/clair)
100% responsive
Utilise des sélecteurs spécifiques pour éviter les conflits
###############################################################################################################################################################
*/

/*
###############################################################################################################################################################
BASE FORM STYLES
###############################################################################################################################################################
*/

/* Spécifique aux pages de formulaires */
.login-page.xploo-form-page,
.demo-page.xploo-form-page,
.contact-page.xploo-form-page,
.edit-password-page.xploo-form-page {
    display: flex;
    min-height: 80vh;
    padding: 2rem 0;
    font-family: var(--FONT-FAMILY);
}

.login-container.xploo-form-container,
.demo-container.xploo-form-container,
.contact-container.xploo-form-container,
.edit-password-container.xploo-form-container {
    display: flex;
    flex-direction: column;
    width: var(--FORM_CONTAINER_WIDTH);
    max-width: 800px;
    margin: 0 auto;
    box-shadow: var(--FORM_CONTAINER_SHADOW);
    border-radius: var(--FORM_CONTAINER_BORDER_RADIUS);
    overflow: hidden;
    background: var(--FORM_CONTAINER_BACKGROUND);
}

/*
###############################################################################################################################################################
FORM HEADERS
###############################################################################################################################################################
*/

.login-header.xploo-form-header,
.demo-header.xploo-form-header,
.contact-image.xploo-form-header,
.edit-password-header.xploo-form-header {
    background: var(--COLOR_SURFACE_30);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--FORM_HEADER_PADDING);
    color: var(--FORM_HEADER_TEXT_COLOR);
    text-align: center;
    overflow: hidden;
}

.xploo-form-header-content {
    position: relative;
    z-index: 2;
    animation: fadeIn var(--FORM_ANIMATION_DURATION) ease-out var(--FORM_ANIMATION_DELAY) both;
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
}

.xploo-form-header h1,
.xploo-form-header h2 {
    font-size: var(--FORM_HEADER_TITLE_SIZE);
    margin-bottom: 1rem;
    font-weight: 700;
    color: var(--FORM_HEADER_TEXT_COLOR);
    text-align: center;
}

.xploo-form-header p {
    font-size: var(--FORM_HEADER_SUBTITLE_SIZE);
    /* max-width: 80%; */
    margin: 10px;
    text-align: center;
}

/*
###############################################################################################################################################################
FORM CONTENT AREA
###############################################################################################################################################################
*/

.login-form-container.xploo-form-content,
.demo-form-container.xploo-form-content,
.contact-form-container.xploo-form-content,
.edit-password-form-container.xploo-form-content {
    /* padding: var(--FORM_CONTAINER_PADDING); */
    display: flex;
    flex-direction: column;
    justify-content: center;
    animation: fadeIn var(--FORM_ANIMATION_DURATION) ease-out forwards;
}

.login-form.xploo-form,
.demo-form.xploo-form,
.contact-form.xploo-form,
.edit-password-form.xploo-form {
    width: 100%;
    max-width: 450px;
    margin: 0 auto;
}

/*
###############################################################################################################################################################
FORM FIELDS
###############################################################################################################################################################
*/

.xploo-form-page .xploo-form-field,
.xploo-form-page .form-outline {
    margin-bottom: var(--FORM_FIELD_MARGIN_BOTTOM);
    position: relative;
}

.xploo-form-page .xploo-form-label,
.xploo-form-page .form-outline label {
    display: block;
    margin-bottom: var(--FORM_LABEL_MARGIN_BOTTOM);
    color: var(--FORM_LABEL_COLOR);
    font-weight: var(--FORM_LABEL_FONT_WEIGHT);
    font-size: var(--FORM_LABEL_FONT_SIZE);
}

/*
###############################################################################################################################################################
FORM INPUTS
###############################################################################################################################################################
*/

.xploo-form-page .xploo-form-input,
.xploo-form-page .form-control {
    width: 100%;
    padding: var(--FORM_INPUT_PADDING);
    border: 2px solid var(--FORM_INPUT_BORDER_COLOR) !important;
    border-radius: var(--FORM_INPUT_BORDER_RADIUS) !important;
    font-size: var(--FORM_INPUT_FONT_SIZE);
    transition: all var(--FORM_TRANSITION_DURATION) ease;
    background-color: var(--FORM_INPUT_BACKGROUND) !important;
    color: var(--FORM_INPUT_TEXT_COLOR);
    font-family: inherit;
    outline: none;
    box-sizing: border-box;
}

.xploo-form-page .xploo-form-input:focus,
.xploo-form-page .form-control:focus {
    border-color: var(--FORM_INPUT_BORDER_COLOR_FOCUS) !important;
    box-shadow: var(--FORM_INPUT_SHADOW_FOCUS) !important;
    background-color: var(--FORM_INPUT_BACKGROUND) !important;
}

.xploo-form-page .xploo-form-input:hover,
.xploo-form-page .form-control:hover {
    background-color: rgba(255, 255, 255, 0.95);
}

/*
###############################################################################################################################################################
INPUT WITH ICON
###############################################################################################################################################################
*/

.xploo-form-page .xploo-form-input-container,
.xploo-form-page .input-with-icon {
    position: relative;
    width: 100%;
}

.xploo-form-page .xploo-form-input-container .xploo-form-input,
.xploo-form-page .input-with-icon .form-control {
    padding-left: 45px;
}

.xploo-form-page .xploo-form-icon,
.xploo-form-page .input-with-icon i {
    position: absolute;
    left: var(--FORM_ICON_POSITION_LEFT);
    top: 50%;
    transform: translateY(-50%);
    color: var(--FORM_ICON_COLOR);
    opacity: 0.8;
    transition: all var(--FORM_TRANSITION_DURATION) ease;
    z-index: 2;
    width: var(--FORM_ICON_SIZE);
    height: var(--FORM_ICON_SIZE);
}

.xploo-form-page .xploo-form-input:focus ~ .xploo-form-icon,
.xploo-form-page .xploo-form-input-container:hover .xploo-form-icon,
.xploo-form-page .form-control:focus ~ i,
.xploo-form-page .input-with-icon:hover i {
    color: var(--FORM_ICON_COLOR_FOCUS);
    opacity: 1;
}

/*
###############################################################################################################################################################
TEXTAREA
###############################################################################################################################################################
*/

.xploo-form-page textarea.xploo-form-input,
.xploo-form-page textarea.form-control {
    min-height: 150px;
    resize: vertical;
    padding-top: 1rem;
}

.xploo-form-page textarea.xploo-form-input ~ .xploo-form-icon,
.xploo-form-page textarea.form-control ~ i {
    top: 20px;
    transform: none;
}

/*
###############################################################################################################################################################
PASSWORD FIELD WITH EYE ICON
###############################################################################################################################################################
*/

.xploo-form-page .xploo-form-password-container,
.xploo-form-page .password-field-container {
    position: relative;
    width: 100%;
}

.xploo-form-page .xploo-form-password-container .xploo-form-input,
.xploo-form-page .password-field-container .form-control {
    padding-right: 3rem;
    padding-left: 45px;
}

.xploo-form-page .password-field-container .xploo-form-icon {
    left: var(--FORM_ICON_POSITION_LEFT);
}

.xploo-form-page .xploo-form-eye-icon,
.xploo-form-page .eye-icon {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    color: var(--COLOR_SURFACE_40);
    transition: all var(--FORM_TRANSITION_DURATION) ease;
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    padding: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    width: 30px;
    height: 30px;
}

.xploo-form-page .xploo-form-eye-icon:hover,
.xploo-form-page .eye-icon:hover {
    color: var(--COLOR_ACTION_50);
    background-color: rgba(255, 255, 255, 0.8);
    box-shadow: 0 0 8px rgba(255, 94, 0, 0.3);
}

.xploo-form-page .xploo-form-eye-icon svg,
.xploo-form-page .eye-icon svg {
    display: block;
    width: 20px;
    height: 20px;
}

/*
###############################################################################################################################################################
FORM VALIDATION
###############################################################################################################################################################
*/

.xploo-form-page .xploo-form-input.is-invalid,
.xploo-form-page .form-control.is-invalid {
    border-color: var(--FORM_ERROR_BORDER_COLOR) !important;
    box-shadow: var(--FORM_ERROR_SHADOW) !important;
}

.xploo-form-page .xploo-form-error,
.xploo-form-page .form-error {
    color: var(--FORM_ERROR_COLOR);
    font-size: var(--FORM_ERROR_FONT_SIZE);
    margin-top: var(--FORM_ERROR_MARGIN_TOP);
    display: block;
}

/*
###############################################################################################################################################################
FORM CHECKBOXES
###############################################################################################################################################################
*/

.xploo-form-page .xploo-form-checkbox-container,
.xploo-form-page .checkbox-outline {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    flex-direction: row-reverse;
    justify-content: flex-end;
    margin-bottom: var(--FORM_FIELD_MARGIN_BOTTOM);
}

.xploo-form-page .xploo-form-checkbox-container .xploo-form-label,
.xploo-form-page .checkbox-outline label {
    margin-bottom: 0;
    flex: 1;
    cursor: pointer;
    font-size: var(--FORM_LABEL_FONT_SIZE);
    color: var(--FORM_LABEL_COLOR);
    font-weight: var(--FORM_LABEL_FONT_WEIGHT);
}

.xploo-form-page .xploo-form-checkbox,
.xploo-form-page .checkbox-outline input[type="checkbox"] {
    width: var(--FORM_CHECKBOX_SIZE);
    height: var(--FORM_CHECKBOX_SIZE);
    min-width: var(--FORM_CHECKBOX_SIZE);
    min-height: var(--FORM_CHECKBOX_SIZE);
    padding: 0;
    margin: 0;
    margin-top: 2px;
    cursor: pointer;
    accent-color: var(--COLOR_ACTION_50);
    border: 2px solid var(--COLOR_ACTION_50) !important;
    border-radius: var(--FORM_CHECKBOX_BORDER_RADIUS);
    transition: all var(--FORM_TRANSITION_DURATION) ease;
    outline: none;
}

.xploo-form-page .xploo-form-checkbox:hover,
.xploo-form-page .checkbox-outline input[type="checkbox"]:hover {
    border-color: var(--COLOR_ACTION_60) !important;
}

.xploo-form-page .xploo-form-checkbox:focus,
.xploo-form-page .checkbox-outline input[type="checkbox"]:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 94, 0, 0.2);
}

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

.xploo-form-page .xploo-form-button,
.xploo-form-page .login-button,
.xploo-form-page .demo-button,
.xploo-form-page .contact-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 70%;
    max-width: 300px;
    margin: 0 auto 1rem;
    height: var(--FORM_BUTTON_HEIGHT);
    background: var(--COLOR_ACTION_50) !important;
    color: var(--FORM_BUTTON_COLOR) !important;
    border: none;
    font-size: var(--FORM_BUTTON_FONT_SIZE);
    font-weight: var(--FORM_BUTTON_FONT_WEIGHT);
    cursor: pointer;
    transition: all var(--FORM_TRANSITION_DURATION) ease;
    text-align: center;
    position: relative;
    overflow: hidden;
    padding: var(--FORM_INPUT_PADDING);
    border-radius: var(--FORM_BUTTON_BORDER_RADIUS) !important;
    box-shadow: var(--FORM_BUTTON_SHADOW);
    font-family: inherit;
    text-decoration: none;
}

.xploo-form-page .login-button {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

.xploo-form-page .xploo-form-button:before,
.xploo-form-page .login-button:before,
.xploo-form-page .demo-button:before,
.xploo-form-page .contact-button:before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: all 0.6s ease;
}

.xploo-form-page .xploo-form-button:hover:before,
.xploo-form-page .login-button:hover:before,
.xploo-form-page .demo-button:hover:before,
.xploo-form-page .contact-button:hover:before {
    left: 100%;
}

.xploo-form-page .xploo-form-button:hover,
.xploo-form-page .login-button:hover,
.xploo-form-page .demo-button:hover,
.xploo-form-page .contact-button:hover {
    transform: translateY(-2px);
    box-shadow: var(--FORM_BUTTON_SHADOW_HOVER);
}

.xploo-form-page .xploo-form-button:active,
.xploo-form-page .login-button:active,
.xploo-form-page .demo-button:active,
.xploo-form-page .contact-button:active {
    transform: translateY(1px);
    box-shadow: var(--FORM_BUTTON_SHADOW_ACTIVE);
}

.xploo-form-page .xploo-form-button i,
.xploo-form-page .demo-button i {
    transition: transform var(--FORM_TRANSITION_DURATION) ease;
}

.xploo-form-page .xploo-form-button:hover i,
.xploo-form-page .demo-button:hover i {
    transform: translateX(5px);
}

/*
###############################################################################################################################################################
FORM ALERTS
###############################################################################################################################################################
*/

.xploo-form-page .xploo-form-alert,
.xploo-form-page .alert {
    padding: var(--FORM_ALERT_PADDING);
    border-radius: var(--FORM_ALERT_BORDER_RADIUS);
    margin-bottom: var(--FORM_ALERT_MARGIN_BOTTOM);
    font-weight: var(--FORM_ALERT_FONT_WEIGHT);
    font-size: var(--FORM_ALERT_FONT_SIZE);
    line-height: 1.5;
    position: relative;
    display: flex;
    align-items: center;
    box-shadow: var(--FORM_ALERT_SHADOW);
    border: none;
    animation: slideInDown 0.5s ease-out;
}

.xploo-form-page .xploo-form-alert strong,
.xploo-form-page .alert strong {
    margin-right: 0.5rem;
    font-weight: 600;
}

.xploo-form-page .xploo-form-alert.success,
.xploo-form-page .alert-success {
    background: var(--FORM_ALERT_SUCCESS_BACKGROUND);
    color: var(--FORM_ALERT_SUCCESS_COLOR);
    border-left: var(--FORM_ALERT_SUCCESS_BORDER);
    position: relative;
    overflow: hidden;
}

.xploo-form-page .xploo-form-alert.success::before,
.xploo-form-page .alert-success::before {
    content: '✓';
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2rem;
    font-weight: bold;
    color: #28a745;
    margin-right: 0.5rem;
}

.xploo-form-page .xploo-form-alert.success strong,
.xploo-form-page .alert-success strong {
    margin-left: 2rem;
}

.xploo-form-page .xploo-form-alert.error,
.xploo-form-page .alert-danger,
.xploo-form-page .notification-error {
    background: var(--FORM_ALERT_ERROR_BACKGROUND);
    color: var(--FORM_ALERT_ERROR_COLOR);
    border-left: var(--FORM_ALERT_ERROR_BORDER);
    position: relative;
    overflow: hidden;
}

.xploo-form-page .xploo-form-alert.error::before,
.xploo-form-page .alert-danger::before {
    content: '⚠';
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.6rem;
    font-weight: bold;
    color: #dc3545;
}

.xploo-form-page .xploo-form-alert.error strong,
.xploo-form-page .alert-danger strong {
    margin-left: 2rem;
}

/* Shine effect for alerts */
.xploo-form-page .xploo-form-alert::after,
.xploo-form-page .alert::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: all 0.6s ease;
}

.xploo-form-page .xploo-form-alert:hover::after,
.xploo-form-page .alert:hover::after {
    left: 100%;
}

/*
###############################################################################################################################################################
ADDITIONAL FORM ELEMENTS
###############################################################################################################################################################
*/

.xploo-form-page .xploo-form-forgot-password,
.xploo-form-page .forgot-password {
    text-align: center;
    margin-top: 1rem;
}

.xploo-form-page .xploo-form-forgot-password a,
.xploo-form-page .forgot-password a {
    color: var(--COLOR_ACTION_50);
    text-decoration: none;
    font-weight: 500;
    transition: all var(--FORM_TRANSITION_DURATION) ease;
}

.xploo-form-page .xploo-form-forgot-password a:hover,
.xploo-form-page .forgot-password a:hover {
    color: var(--COLOR_ACTION_60);
    text-decoration: underline;
}

/*
###############################################################################################################################################################
CONTACT INFO SECTION
###############################################################################################################################################################
*/

.xploo-contact-info-section {
    background: linear-gradient(to right, var(--COLOR_ACTION_50), var(--COLOR_ACTION_70));
    padding: 2rem;
    display: flex;
    gap: 2rem;
}

.contact-page .xploo-contact-info-item {
    flex-basis: calc(33.333% - 1rem);
    min-width: 200px;
    text-align: center;
    background-color: rgba(255, 255, 255, 0.05);
    padding: 1.3rem 0.5rem;
    border-radius: var(--FORM_INPUT_BORDER_RADIUS);
    transition: transform var(--FORM_TRANSITION_DURATION) ease, box-shadow var(--FORM_TRANSITION_DURATION) ease;
    display: flex; /* Pour aligner l'icône et le h4 à l'intérieur */
    flex-direction: column; /* Icône au-dessus du h4 */
    align-items: center; /* Centrer l'icône et le h4 horizontalement */
    justify-content: center; /* CHANGED: Aligner le contenu (icône + h4) au centre de la carte */
}

.contact-page .xploo-contact-info-item:hover {
    transform: translateY(-2px);
    box-shadow: var(--FORM_INPUT_SHADOW_HOVER);
} 

.xploo-contact-info-icon {
    width: 24px;
    height: 24px;
    filter: invert(100%);
    margin-bottom: 6px;
}

.xploo-contact-info-item h4 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 600;
}

.xploo-contact-info-item h4 span, 
.xploo-contact-info-item h4 a {
    font-weight: 400;
    font-size: 0.95rem;
    color: var(--COLOR_SURFACE_90);
    display: block;
    margin-top: 0.3rem;
}

.xploo-contact-info-item h4 a:hover {
    color: var(--WHITE);
    text-decoration: none;
}

/*
###############################################################################################################################################################
ANIMATIONS
###############################################################################################################################################################
*/

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

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

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

@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.02);
    }
    100% {
        transform: scale(1);
    }
}

.xploo-form-page .fade-in {
    opacity: 0;
    animation: fadeIn var(--FORM_ANIMATION_DURATION) ease-out forwards;
}

.xploo-form-page .fade-in-up {
    opacity: 0;
    animation: fadeInUp var(--FORM_ANIMATION_DURATION) ease-out forwards;
    animation-delay: 0.2s;
}

/* Progressive animation delays for form fields */
.xploo-form-page .xploo-form-field:nth-child(1),
.xploo-form-page .form-outline:nth-child(1) {
    animation: fadeInUp 0.5s ease-out forwards;
    animation-delay: 0.3s;
    opacity: 0;
}

.xploo-form-page .xploo-form-field:nth-child(2),
.xploo-form-page .form-outline:nth-child(2) {
    animation: fadeInUp 0.5s ease-out forwards;
    animation-delay: 0.4s;
    opacity: 0;
}

.xploo-form-page .xploo-form-field:nth-child(3),
.xploo-form-page .form-outline:nth-child(3) {
    animation: fadeInUp 0.5s ease-out forwards;
    animation-delay: 0.5s;
    opacity: 0;
}

.xploo-form-page .xploo-form-field:nth-child(4),
.xploo-form-page .checkbox-outline {
    animation: fadeInUp 0.5s ease-out forwards;
    animation-delay: 0.6s;
    opacity: 0;
}

.xploo-form-page .xploo-form-field:nth-child(5) {
    animation: fadeInUp 0.5s ease-out forwards;
    animation-delay: 0.7s;
    opacity: 0;
}

/*
###############################################################################################################################################################
DARK MODE SUPPORT
###############################################################################################################################################################
*/

/* @media (prefers-color-scheme: dark) {
    .xploo-form-page .xploo-form-input,
    .xploo-form-page .form-control {
        background-color: var(--FORM_INPUT_BACKGROUND_DARK) !important;
        color: var(--FORM_INPUT_TEXT_COLOR_DARK);
        border-color: var(--COLOR_SURFACE_60);
    }
    
    .xploo-form-page .xploo-form-input:focus,
    .xploo-form-page .form-control:focus {
        background-color: #5a6578 !important;
        border-color: var(--COLOR_ACTION_50) !important;
    }
    
    .xploo-form-page .xploo-form-input:hover,
    .xploo-form-page .form-control:hover {
        background-color: rgba(255, 255, 255, 0.07);
        border-color: rgba(255, 255, 255, 0.2);
    }
} */

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

@media screen and (max-width: 896px) {
    .xploo-form-content {
        padding: 0.5rem 2rem;
    }
    
    .xploo-contact-info-section {
        flex-direction: column;
        align-items: center;
    }
    
    .xploo-contact-info-item {
        max-width: 100%;
    }
}

/*
###############################################################################################################################################################
MOBILE
###############################################################################################################################################################
*/

@media screen and (max-width: 480px) {
    .xploo-form-page {
        padding: 1rem 0;
    }
    
    .xploo-form-content {
        padding: var(--FORM_CONTAINER_PADDING_MOBILE);
    }
    
    .xploo-form-header h1,
    .xploo-form-header h2 {
        font-size: 1.8rem;
    }
    
    .xploo-form-header p {
        font-size: 1rem;
    }
    
    .xploo-form-content h1 {
        font-size: 1.5rem;
    }
    
    /* Boutons en pleine largeur sur mobile */
    .xploo-form-page .xploo-form-button,
    .xploo-form-page .login-button,
    .xploo-form-page .demo-button,
    .xploo-form-page .contact-button {
        width: 90%; /* Un peu plus large sur mobile mais pas 100% */
        max-width: none;
    }
    
    .xploo-form-page .xploo-form-alert,
    .xploo-form-page .alert {
        padding: 1rem;
        font-size: 0.9rem;
    }
    
    .xploo-form-page .xploo-form-alert.success::before,
    .xploo-form-page .xploo-form-alert.error::before,
    .xploo-form-page .alert-success::before,
    .xploo-form-page .alert-danger::before {
        font-size: 1rem;
    }
    
    .xploo-form-page .xploo-form-alert.success strong,
    .xploo-form-page .xploo-form-alert.error strong,
    .xploo-form-page .alert-success strong,
    .xploo-form-page .alert-danger strong {
        margin-left: 1.5rem;
    }
}

/*
###############################################################################################################################################################
SMALL MOBILE
###############################################################################################################################################################
*/

@media screen and (max-width: 320px) {
    .xploo-form-container {
        width: 95%;
    }
    
    .xploo-form-content {
        padding: 0.5rem 2rem;
    }
    
    .xploo-form-header {
        padding: 2rem 1rem;
    }
}

/*
###############################################################################################################################################################
HIGH CONTRAST MODE SUPPORT
###############################################################################################################################################################
*/

@media (prefers-contrast: high) {
    .xploo-form-page .xploo-form-input,
    .xploo-form-page .form-control {
        border: 2px solid var(--COLOR_SURFACE_40) !important;
    }
    
    .xploo-form-page .xploo-form-input:focus,
    .xploo-form-page .form-control:focus {
        border: 3px solid var(--COLOR_ACTION_50) !important;
    }
    
    .xploo-form-page .xploo-form-button,
    .xploo-form-page .login-button,
    .xploo-form-page .demo-button,
    .xploo-form-page .contact-button {
        border: 2px solid var(--COLOR_ACTION_60);
    }
}

/*
###############################################################################################################################################################
REDUCED MOTION SUPPORT
###############################################################################################################################################################
*/

@media (prefers-reduced-motion: reduce) {
    .xploo-form-page .xploo-form-field,
    .xploo-form-page .xploo-form-button,
    .xploo-form-page .fade-in,
    .xploo-form-page .fade-in-up,
    .xploo-form-page .form-outline,
    .xploo-form-page .login-button,
    .xploo-form-page .demo-button,
    .xploo-form-page .contact-button {
        animation: none;
        opacity: 1;
    }
    
    .xploo-form-page .xploo-form-input,
    .xploo-form-page .xploo-form-button,
    .xploo-form-page .xploo-form-icon,
    .xploo-form-page .xploo-form-eye-icon,
    .xploo-form-page .form-control,
    .xploo-form-page .login-button,
    .xploo-form-page .demo-button,
    .xploo-form-page .contact-button,
    .xploo-form-page .eye-icon {
        transition: none;
    }
}

/*
###############################################################################################################################################################
PRINT STYLES
###############################################################################################################################################################
*/

@media print {
    .xploo-form-page {
        background: white;
        color: black;
    }
    
    .xploo-form-container {
        box-shadow: none;
        background: white;
    }
    
    .xploo-form-header {
        background: white;
        color: black;
    }
    
    .xploo-form-page .xploo-form-button,
    .xploo-form-page .login-button,
    .xploo-form-page .demo-button,
    .xploo-form-page .contact-button {
        background: white !important;
        color: black !important;
        border: 2px solid black;
    }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2Nzc194cGxvb19mb3Jtc191bmlmaWVkX2Nzcy5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7O0NBUUM7O0FBRUQ7Ozs7Q0FJQzs7QUFFRCx3Q0FBd0M7QUFDeEM7Ozs7SUFJSSxhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZiwrQkFBK0I7QUFDbkM7O0FBRUE7Ozs7SUFJSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLGtDQUFrQztJQUNsQyxnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLHdDQUF3QztJQUN4QyxrREFBa0Q7SUFDbEQsZ0JBQWdCO0lBQ2hCLDRDQUE0QztBQUNoRDs7QUFFQTs7OztDQUlDOztBQUVEOzs7O0lBSUksbUNBQW1DO0lBQ25DLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixtQ0FBbUM7SUFDbkMsb0NBQW9DO0lBQ3BDLGtCQUFrQjtJQUNsQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsVUFBVTtJQUNWLDBGQUEwRjtJQUMxRixXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGNBQWM7QUFDbEI7O0FBRUE7O0lBRUksd0NBQXdDO0lBQ3hDLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsb0NBQW9DO0lBQ3BDLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLDJDQUEyQztJQUMzQyxvQkFBb0I7SUFDcEIsWUFBWTtJQUNaLGtCQUFrQjtBQUN0Qjs7QUFFQTs7OztDQUlDOztBQUVEOzs7O0lBSUksNENBQTRDO0lBQzVDLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLGtFQUFrRTtBQUN0RTs7QUFFQTs7OztJQUlJLFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsY0FBYztBQUNsQjs7QUFFQTs7OztDQUlDOztBQUVEOztJQUVJLDhDQUE4QztJQUM5QyxrQkFBa0I7QUFDdEI7O0FBRUE7O0lBRUksY0FBYztJQUNkLDhDQUE4QztJQUM5Qyw4QkFBOEI7SUFD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SSxlQUFlO0lBQ25COztJQUVBO1FBQ0ksaUJBQWlCO0lBQ3JCOztJQUVBLHlDQUF5QztJQUN6Qzs7OztRQUlJLFVBQVUsRUFBRSwrQ0FBK0M7UUFDM0QsZUFBZTtJQUNuQjs7SUFFQTs7UUFFSSxhQUFhO1FBQ2IsaUJBQWlCO0lBQ3JCOztJQUVBOzs7O1FBSUksZUFBZTtJQUNuQjs7SUFFQTs7OztRQUlJLG1CQUFtQjtJQUN2QjtBQUNKOztBQUVBOzs7O0NBSUM7O0FBRUQ7SUFDSTtRQUNJLFVBQVU7SUFDZDs7SUFFQTtRQUNJLG9CQUFvQjtJQUN4Qjs7SUFFQTtRQUNJLGtCQUFrQjtJQUN0QjtBQUNKOztBQUVBOzs7O0NBSUM7O0FBRUQ7SUFDSTs7UUFFSSxvREFBb0Q7SUFDeEQ7O0lBRUE7O1FBRUksbURBQW1EO0lBQ3ZEOztJQUVBOzs7O1FBSUksd0NBQXdDO0lBQzVDO0FBQ0o7O0FBRUE7Ozs7Q0FJQzs7QUFFRDtJQUNJOzs7Ozs7OztRQVFJLGVBQWU7UUFDZixVQUFVO0lBQ2Q7O0lBRUE7Ozs7Ozs7OztRQVNJLGdCQUFnQjtJQUNwQjtBQUNKOztBQUVBOzs7O0NBSUM7O0FBRUQ7SUFDSTtRQUNJLGlCQUFpQjtRQUNqQixZQUFZO0lBQ2hCOztJQUVBO1FBQ0ksZ0JBQWdCO1FBQ2hCLGlCQUFpQjtJQUNyQjs7SUFFQTtRQUNJLGlCQUFpQjtRQUNqQixZQUFZO0lBQ2hCOztJQUVBOzs7O1FBSUksNEJBQTRCO1FBQzVCLHVCQUF1QjtRQUN2Qix1QkFBdUI7SUFDM0I7QUFDSixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcHVibGljL2Nzcy94cGxvb19mb3Jtc191bmlmaWVkLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5VTklGSUVEIEZPUk1TIFNUWUxFUyAtIFhQTE9PXG5TdHlsZXMgY29ow6lyZW50cyBwb3VyIHRvdXMgbGVzIGZvcm11bGFpcmVzIChsb2dpbiwgZGVtbywgY29udGFjdClcbkNvbXBhdGlibGUgYXZlYyB0b3VzIGxlcyBuYXZpZ2F0ZXVycyBldCBtb2RlcyAoc29tYnJlL2NsYWlyKVxuMTAwJSByZXNwb25zaXZlXG5VdGlsaXNlIGRlcyBzw6lsZWN0ZXVycyBzcMOpY2lmaXF1ZXMgcG91ciDDqXZpdGVyIGxlcyBjb25mbGl0c1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5CQVNFIEZPUk0gU1RZTEVTXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi8qIFNww6ljaWZpcXVlIGF1eCBwYWdlcyBkZSBmb3JtdWxhaXJlcyAqL1xuLmxvZ2luLXBhZ2UueHBsb28tZm9ybS1wYWdlLFxuLmRlbW8tcGFnZS54cGxvby1mb3JtLXBhZ2UsXG4uY29udGFjdC1wYWdlLnhwbG9vLWZvcm0tcGFnZSxcbi5lZGl0LXBhc3N3b3JkLXBhZ2UueHBsb28tZm9ybS1wYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1pbi1oZWlnaHQ6IDgwdmg7XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1GT05ULUZBTUlMWSk7XG59XG5cbi5sb2dpbi1jb250YWluZXIueHBsb28tZm9ybS1jb250YWluZXIsXG4uZGVtby1jb250YWluZXIueHBsb28tZm9ybS1jb250YWluZXIsXG4uY29udGFjdC1jb250YWluZXIueHBsb28tZm9ybS1jb250YWluZXIsXG4uZWRpdC1wYXNzd29yZC1jb250YWluZXIueHBsb28tZm9ybS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogdmFyKC0tRk9STV9DT05UQUlORVJfV0lEVEgpO1xuICAgIG1heC13aWR0aDogODAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYm94LXNoYWRvdzogdmFyKC0tRk9STV9DT05UQUlORVJfU0hBRE9XKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1GT1JNX0NPTlRBSU5FUl9CT1JERVJfUkFESVVTKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLUZPUk1fQ09OVEFJTkVSX0JBQ0tHUk9VTkQpO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5GT1JNIEhFQURFUlNcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLmxvZ2luLWhlYWRlci54cGxvby1mb3JtLWhlYWRlcixcbi5kZW1vLWhlYWRlci54cGxvby1mb3JtLWhlYWRlcixcbi5jb250YWN0LWltYWdlLnhwbG9vLWZvcm0taGVhZGVyLFxuLmVkaXQtcGFzc3dvcmQtaGVhZGVyLnhwbG9vLWZvcm0taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzMwKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IHZhcigtLUZPUk1fSEVBREVSX1BBRERJTkcpO1xuICAgIGNvbG9yOiB2YXIoLS1GT1JNX0hFQURFUl9URVhUX0NPTE9SKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnhwbG9vLWZvcm0taGVhZGVyLWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGFuaW1hdGlvbjogZmFkZUluIHZhcigtLUZPUk1fQU5JTUFUSU9OX0RVUkFUSU9OKSBlYXNlLW91dCB2YXIoLS1GT1JNX0FOSU1BVElPTl9ERUxBWSkgYm90aDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ueHBsb28tZm9ybS1oZWFkZXIgaDEsXG4ueHBsb28tZm9ybS1oZWFkZXIgaDIge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tRk9STV9IRUFERVJfVElUTEVfU0laRSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiB2YXIoLS1GT1JNX0hFQURFUl9URVhUX0NPTE9SKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi54cGxvby1mb3JtLWhlYWRlciBwIHtcbiAgICBmb250LXNpemU6IHZhcigtLUZPUk1fSEVBREVSX1NVQlRJVExFX1NJWkUpO1xuICAgIC8qIG1heC13aWR0aDogODAlOyAqL1xuICAgIG1hcmdpbjogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkZPUk0gQ09OVEVOVCBBUkVBXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi5sb2dpbi1mb3JtLWNvbnRhaW5lci54cGxvby1mb3JtLWNvbnRlbnQsXG4uZGVtby1mb3JtLWNvbnRhaW5lci54cGxvby1mb3JtLWNvbnRlbnQsXG4uY29udGFjdC1mb3JtLWNvbnRhaW5lci54cGxvby1mb3JtLWNvbnRlbnQsXG4uZWRpdC1wYXNzd29yZC1mb3JtLWNvbnRhaW5lci54cGxvby1mb3JtLWNvbnRlbnQge1xuICAgIC8qIHBhZGRpbmc6IHZhcigtLUZPUk1fQ09OVEFJTkVSX1BBRERJTkcpOyAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbmltYXRpb246IGZhZGVJbiB2YXIoLS1GT1JNX0FOSU1BVElPTl9EVVJBVElPTikgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbi5sb2dpbi1mb3JtLnhwbG9vLWZvcm0sXG4uZGVtby1mb3JtLnhwbG9vLWZvcm0sXG4uY29udGFjdC1mb3JtLnhwbG9vLWZvcm0sXG4uZWRpdC1wYXNzd29yZC1mb3JtLnhwbG9vLWZvcm0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNDUwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkZPUk0gRklFTERTXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tZmllbGQsXG4ueHBsb28tZm9ybS1wYWdlIC5mb3JtLW91dGxpbmUge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLUZPUk1fRklFTERfTUFSR0lOX0JPVFRPTSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWxhYmVsLFxuLnhwbG9vLWZvcm0tcGFnZSAuZm9ybS1vdXRsaW5lIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1GT1JNX0xBQkVMX01BUkdJTl9CT1RUT00pO1xuICAgIGNvbG9yOiB2YXIoLS1GT1JNX0xBQkVMX0NPTE9SKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tRk9STV9MQUJFTF9GT05UX1dFSUdIVCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1GT1JNX0xBQkVMX0ZPTlRfU0laRSk7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkZPUk0gSU5QVVRTXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0taW5wdXQsXG4ueHBsb28tZm9ybS1wYWdlIC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IHZhcigtLUZPUk1fSU5QVVRfUEFERElORyk7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tRk9STV9JTlBVVF9CT1JERVJfQ09MT1IpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tRk9STV9JTlBVVF9CT1JERVJfUkFESVVTKSAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tRk9STV9JTlBVVF9GT05UX1NJWkUpO1xuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS1GT1JNX1RSQU5TSVRJT05fRFVSQVRJT04pIGVhc2U7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tRk9STV9JTlBVVF9CQUNLR1JPVU5EKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1GT1JNX0lOUFVUX1RFWFRfQ09MT1IpO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1pbnB1dDpmb2N1cyxcbi54cGxvby1mb3JtLXBhZ2UgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1GT1JNX0lOUFVUX0JPUkRFUl9DT0xPUl9GT0NVUykgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1GT1JNX0lOUFVUX1NIQURPV19GT0NVUykgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1GT1JNX0lOUFVUX0JBQ0tHUk9VTkQpICFpbXBvcnRhbnQ7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0taW5wdXQ6aG92ZXIsXG4ueHBsb28tZm9ybS1wYWdlIC5mb3JtLWNvbnRyb2w6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbklOUFVUIFdJVEggSUNPTlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWlucHV0LWNvbnRhaW5lcixcbi54cGxvby1mb3JtLXBhZ2UgLmlucHV0LXdpdGgtaWNvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWlucHV0LWNvbnRhaW5lciAueHBsb28tZm9ybS1pbnB1dCxcbi54cGxvby1mb3JtLXBhZ2UgLmlucHV0LXdpdGgtaWNvbiAuZm9ybS1jb250cm9sIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0taWNvbixcbi54cGxvby1mb3JtLXBhZ2UgLmlucHV0LXdpdGgtaWNvbiBpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogdmFyKC0tRk9STV9JQ09OX1BPU0lUSU9OX0xFRlQpO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBjb2xvcjogdmFyKC0tRk9STV9JQ09OX0NPTE9SKTtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLUZPUk1fVFJBTlNJVElPTl9EVVJBVElPTikgZWFzZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiB2YXIoLS1GT1JNX0lDT05fU0laRSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1GT1JNX0lDT05fU0laRSk7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0taW5wdXQ6Zm9jdXMgfiAueHBsb28tZm9ybS1pY29uLFxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1pbnB1dC1jb250YWluZXI6aG92ZXIgLnhwbG9vLWZvcm0taWNvbixcbi54cGxvby1mb3JtLXBhZ2UgLmZvcm0tY29udHJvbDpmb2N1cyB+IGksXG4ueHBsb28tZm9ybS1wYWdlIC5pbnB1dC13aXRoLWljb246aG92ZXIgaSB7XG4gICAgY29sb3I6IHZhcigtLUZPUk1fSUNPTl9DT0xPUl9GT0NVUyk7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuVEVYVEFSRUFcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnhwbG9vLWZvcm0tcGFnZSB0ZXh0YXJlYS54cGxvby1mb3JtLWlucHV0LFxuLnhwbG9vLWZvcm0tcGFnZSB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgdGV4dGFyZWEueHBsb28tZm9ybS1pbnB1dCB+IC54cGxvby1mb3JtLWljb24sXG4ueHBsb28tZm9ybS1wYWdlIHRleHRhcmVhLmZvcm0tY29udHJvbCB+IGkge1xuICAgIHRvcDogMjBweDtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblBBU1NXT1JEIEZJRUxEIFdJVEggRVlFIElDT05cbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1wYXNzd29yZC1jb250YWluZXIsXG4ueHBsb28tZm9ybS1wYWdlIC5wYXNzd29yZC1maWVsZC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1wYXNzd29yZC1jb250YWluZXIgLnhwbG9vLWZvcm0taW5wdXQsXG4ueHBsb28tZm9ybS1wYWdlIC5wYXNzd29yZC1maWVsZC1jb250YWluZXIgLmZvcm0tY29udHJvbCB7XG4gICAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnBhc3N3b3JkLWZpZWxkLWNvbnRhaW5lciAueHBsb28tZm9ybS1pY29uIHtcbiAgICBsZWZ0OiB2YXIoLS1GT1JNX0lDT05fUE9TSVRJT05fTEVGVCk7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tZXllLWljb24sXG4ueHBsb28tZm9ybS1wYWdlIC5leWUtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfNDApO1xuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS1GT1JNX1RSQU5TSVRJT05fRFVSQVRJT04pIGVhc2U7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHotaW5kZXg6IDI7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xufVxuXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWV5ZS1pY29uOmhvdmVyLFxuLnhwbG9vLWZvcm0tcGFnZSAuZXllLWljb246aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMjU1LCA5NCwgMCwgMC4zKTtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1leWUtaWNvbiBzdmcsXG4ueHBsb28tZm9ybS1wYWdlIC5leWUtaWNvbiBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuRk9STSBWQUxJREFUSU9OXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0taW5wdXQuaXMtaW52YWxpZCxcbi54cGxvby1mb3JtLXBhZ2UgLmZvcm0tY29udHJvbC5pcy1pbnZhbGlkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLUZPUk1fRVJST1JfQk9SREVSX0NPTE9SKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IHZhcigtLUZPUk1fRVJST1JfU0hBRE9XKSAhaW1wb3J0YW50O1xufVxuXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWVycm9yLFxuLnhwbG9vLWZvcm0tcGFnZSAuZm9ybS1lcnJvciB7XG4gICAgY29sb3I6IHZhcigtLUZPUk1fRVJST1JfQ09MT1IpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tRk9STV9FUlJPUl9GT05UX1NJWkUpO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLUZPUk1fRVJST1JfTUFSR0lOX1RPUCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkZPUk0gQ0hFQ0tCT1hFU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWNoZWNrYm94LWNvbnRhaW5lcixcbi54cGxvby1mb3JtLXBhZ2UgLmNoZWNrYm94LW91dGxpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLUZPUk1fRklFTERfTUFSR0lOX0JPVFRPTSk7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tY2hlY2tib3gtY29udGFpbmVyIC54cGxvby1mb3JtLWxhYmVsLFxuLnhwbG9vLWZvcm0tcGFnZSAuY2hlY2tib3gtb3V0bGluZSBsYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmbGV4OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IHZhcigtLUZPUk1fTEFCRUxfRk9OVF9TSVpFKTtcbiAgICBjb2xvcjogdmFyKC0tRk9STV9MQUJFTF9DT0xPUik7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLUZPUk1fTEFCRUxfRk9OVF9XRUlHSFQpO1xufVxuXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWNoZWNrYm94LFxuLnhwbG9vLWZvcm0tcGFnZSAuY2hlY2tib3gtb3V0bGluZSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIHdpZHRoOiB2YXIoLS1GT1JNX0NIRUNLQk9YX1NJWkUpO1xuICAgIGhlaWdodDogdmFyKC0tRk9STV9DSEVDS0JPWF9TSVpFKTtcbiAgICBtaW4td2lkdGg6IHZhcigtLUZPUk1fQ0hFQ0tCT1hfU0laRSk7XG4gICAgbWluLWhlaWdodDogdmFyKC0tRk9STV9DSEVDS0JPWF9TSVpFKTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGFjY2VudC1jb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1DT0xPUl9BQ1RJT05fNTApICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tRk9STV9DSEVDS0JPWF9CT1JERVJfUkFESVVTKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tRk9STV9UUkFOU0lUSU9OX0RVUkFUSU9OKSBlYXNlO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tY2hlY2tib3g6aG92ZXIsXG4ueHBsb28tZm9ybS1wYWdlIC5jaGVja2JveC1vdXRsaW5lIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNjApICFpbXBvcnRhbnQ7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tY2hlY2tib3g6Zm9jdXMsXG4ueHBsb28tZm9ybS1wYWdlIC5jaGVja2JveC1vdXRsaW5lIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNTUsIDk0LCAwLCAwLjIpO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5GT1JNIEJVVFRPTlNcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1idXR0b24sXG4ueHBsb28tZm9ybS1wYWdlIC5sb2dpbi1idXR0b24sXG4ueHBsb28tZm9ybS1wYWdlIC5kZW1vLWJ1dHRvbixcbi54cGxvby1mb3JtLXBhZ2UgLmNvbnRhY3QtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHdpZHRoOiA3MCU7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICBtYXJnaW46IDAgYXV0byAxcmVtO1xuICAgIGhlaWdodDogdmFyKC0tRk9STV9CVVRUT05fSEVJR0hUKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLUZPUk1fQlVUVE9OX0NPTE9SKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IHZhcigtLUZPUk1fQlVUVE9OX0ZPTlRfU0laRSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLUZPUk1fQlVUVE9OX0ZPTlRfV0VJR0hUKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLUZPUk1fVFJBTlNJVElPTl9EVVJBVElPTikgZWFzZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogdmFyKC0tRk9STV9JTlBVVF9QQURESU5HKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1GT1JNX0JVVFRPTl9CT1JERVJfUkFESVVTKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IHZhcigtLUZPUk1fQlVUVE9OX1NIQURPVyk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ueHBsb28tZm9ybS1wYWdlIC5sb2dpbi1idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1idXR0b246YmVmb3JlLFxuLnhwbG9vLWZvcm0tcGFnZSAubG9naW4tYnV0dG9uOmJlZm9yZSxcbi54cGxvby1mb3JtLXBhZ2UgLmRlbW8tYnV0dG9uOmJlZm9yZSxcbi54cGxvby1mb3JtLXBhZ2UgLmNvbnRhY3QtYnV0dG9uOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLCB0cmFuc3BhcmVudCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNnMgZWFzZTtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1idXR0b246aG92ZXI6YmVmb3JlLFxuLnhwbG9vLWZvcm0tcGFnZSAubG9naW4tYnV0dG9uOmhvdmVyOmJlZm9yZSxcbi54cGxvby1mb3JtLXBhZ2UgLmRlbW8tYnV0dG9uOmhvdmVyOmJlZm9yZSxcbi54cGxvby1mb3JtLXBhZ2UgLmNvbnRhY3QtYnV0dG9uOmhvdmVyOmJlZm9yZSB7XG4gICAgbGVmdDogMTAwJTtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1idXR0b246aG92ZXIsXG4ueHBsb28tZm9ybS1wYWdlIC5sb2dpbi1idXR0b246aG92ZXIsXG4ueHBsb28tZm9ybS1wYWdlIC5kZW1vLWJ1dHRvbjpob3Zlcixcbi54cGxvby1mb3JtLXBhZ2UgLmNvbnRhY3QtYnV0dG9uOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tRk9STV9CVVRUT05fU0hBRE9XX0hPVkVSKTtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1idXR0b246YWN0aXZlLFxuLnhwbG9vLWZvcm0tcGFnZSAubG9naW4tYnV0dG9uOmFjdGl2ZSxcbi54cGxvby1mb3JtLXBhZ2UgLmRlbW8tYnV0dG9uOmFjdGl2ZSxcbi54cGxvby1mb3JtLXBhZ2UgLmNvbnRhY3QtYnV0dG9uOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tRk9STV9CVVRUT05fU0hBRE9XX0FDVElWRSk7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYnV0dG9uIGksXG4ueHBsb28tZm9ybS1wYWdlIC5kZW1vLWJ1dHRvbiBpIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tRk9STV9UUkFOU0lUSU9OX0RVUkFUSU9OKSBlYXNlO1xufVxuXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWJ1dHRvbjpob3ZlciBpLFxuLnhwbG9vLWZvcm0tcGFnZSAuZGVtby1idXR0b246aG92ZXIgaSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkZPUk0gQUxFUlRTXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYWxlcnQsXG4ueHBsb28tZm9ybS1wYWdlIC5hbGVydCB7XG4gICAgcGFkZGluZzogdmFyKC0tRk9STV9BTEVSVF9QQURESU5HKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1GT1JNX0FMRVJUX0JPUkRFUl9SQURJVVMpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLUZPUk1fQUxFUlRfTUFSR0lOX0JPVFRPTSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLUZPUk1fQUxFUlRfRk9OVF9XRUlHSFQpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tRk9STV9BTEVSVF9GT05UX1NJWkUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1GT1JNX0FMRVJUX1NIQURPVyk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGFuaW1hdGlvbjogc2xpZGVJbkRvd24gMC41cyBlYXNlLW91dDtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1hbGVydCBzdHJvbmcsXG4ueHBsb28tZm9ybS1wYWdlIC5hbGVydCBzdHJvbmcge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYWxlcnQuc3VjY2Vzcyxcbi54cGxvby1mb3JtLXBhZ2UgLmFsZXJ0LXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLUZPUk1fQUxFUlRfU1VDQ0VTU19CQUNLR1JPVU5EKTtcbiAgICBjb2xvcjogdmFyKC0tRk9STV9BTEVSVF9TVUNDRVNTX0NPTE9SKTtcbiAgICBib3JkZXItbGVmdDogdmFyKC0tRk9STV9BTEVSVF9TVUNDRVNTX0JPUkRFUik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYWxlcnQuc3VjY2Vzczo6YmVmb3JlLFxuLnhwbG9vLWZvcm0tcGFnZSAuYWxlcnQtc3VjY2Vzczo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAn4pyTJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMXJlbTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICMyOGE3NDU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYWxlcnQuc3VjY2VzcyBzdHJvbmcsXG4ueHBsb28tZm9ybS1wYWdlIC5hbGVydC1zdWNjZXNzIHN0cm9uZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDJyZW07XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYWxlcnQuZXJyb3IsXG4ueHBsb28tZm9ybS1wYWdlIC5hbGVydC1kYW5nZXIsXG4ueHBsb28tZm9ybS1wYWdlIC5ub3RpZmljYXRpb24tZXJyb3Ige1xuICAgIGJhY2tncm91bmQ6IHZhcigtLUZPUk1fQUxFUlRfRVJST1JfQkFDS0dST1VORCk7XG4gICAgY29sb3I6IHZhcigtLUZPUk1fQUxFUlRfRVJST1JfQ09MT1IpO1xuICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1GT1JNX0FMRVJUX0VSUk9SX0JPUkRFUik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYWxlcnQuZXJyb3I6OmJlZm9yZSxcbi54cGxvby1mb3JtLXBhZ2UgLmFsZXJ0LWRhbmdlcjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAn4pqgJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMXJlbTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICNkYzM1NDU7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYWxlcnQuZXJyb3Igc3Ryb25nLFxuLnhwbG9vLWZvcm0tcGFnZSAuYWxlcnQtZGFuZ2VyIHN0cm9uZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDJyZW07XG59XG5cbi8qIFNoaW5lIGVmZmVjdCBmb3IgYWxlcnRzICovXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWFsZXJ0OjphZnRlcixcbi54cGxvby1mb3JtLXBhZ2UgLmFsZXJ0OjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpLCB0cmFuc3BhcmVudCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNnMgZWFzZTtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1hbGVydDpob3Zlcjo6YWZ0ZXIsXG4ueHBsb28tZm9ybS1wYWdlIC5hbGVydDpob3Zlcjo6YWZ0ZXIge1xuICAgIGxlZnQ6IDEwMCU7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkFERElUSU9OQUwgRk9STSBFTEVNRU5UU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWZvcmdvdC1wYXNzd29yZCxcbi54cGxvby1mb3JtLXBhZ2UgLmZvcmdvdC1wYXNzd29yZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tZm9yZ290LXBhc3N3b3JkIGEsXG4ueHBsb28tZm9ybS1wYWdlIC5mb3Jnb3QtcGFzc3dvcmQgYSB7XG4gICAgY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLUZPUk1fVFJBTlNJVElPTl9EVVJBVElPTikgZWFzZTtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1mb3Jnb3QtcGFzc3dvcmQgYTpob3Zlcixcbi54cGxvby1mb3JtLXBhZ2UgLmZvcmdvdC1wYXNzd29yZCBhOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzYwKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuQ09OVEFDVCBJTkZPIFNFQ1RJT05cbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnhwbG9vLWNvbnRhY3QtaW5mby1zZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLUNPTE9SX0FDVElPTl81MCksIHZhcigtLUNPTE9SX0FDVElPTl83MCkpO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDJyZW07XG59XG5cbi5jb250YWN0LXBhZ2UgLnhwbG9vLWNvbnRhY3QtaW5mby1pdGVtIHtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzMyUgLSAxcmVtKTtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAgIHBhZGRpbmc6IDEuM3JlbSAwLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tRk9STV9JTlBVVF9CT1JERVJfUkFESVVTKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tRk9STV9UUkFOU0lUSU9OX0RVUkFUSU9OKSBlYXNlLCBib3gtc2hhZG93IHZhcigtLUZPUk1fVFJBTlNJVElPTl9EVVJBVElPTikgZWFzZTtcbiAgICBkaXNwbGF5OiBmbGV4OyAvKiBQb3VyIGFsaWduZXIgbCdpY8O0bmUgZXQgbGUgaDQgw6AgbCdpbnTDqXJpZXVyICovXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogSWPDtG5lIGF1LWRlc3N1cyBkdSBoNCAqL1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIENlbnRyZXIgbCdpY8O0bmUgZXQgbGUgaDQgaG9yaXpvbnRhbGVtZW50ICovXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIENIQU5HRUQ6IEFsaWduZXIgbGUgY29udGVudSAoaWPDtG5lICsgaDQpIGF1IGNlbnRyZSBkZSBsYSBjYXJ0ZSAqL1xufVxuXG4uY29udGFjdC1wYWdlIC54cGxvby1jb250YWN0LWluZm8taXRlbTpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLUZPUk1fSU5QVVRfU0hBRE9XX0hPVkVSKTtcbn0gXG5cbi54cGxvby1jb250YWN0LWluZm8taWNvbiB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGZpbHRlcjogaW52ZXJ0KDEwMCUpO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbn1cblxuLnhwbG9vLWNvbnRhY3QtaW5mby1pdGVtIGg0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnhwbG9vLWNvbnRhY3QtaW5mby1pdGVtIGg0IHNwYW4sIFxuLnhwbG9vLWNvbnRhY3QtaW5mby1pdGVtIGg0IGEge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzkwKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwLjNyZW07XG59XG5cbi54cGxvby1jb250YWN0LWluZm8taXRlbSBoNCBhOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tV0hJVEUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuQU5JTUFUSU9OU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJbkRvd24ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxufVxuXG4ueHBsb28tZm9ybS1wYWdlIC5mYWRlLWluIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGFuaW1hdGlvbjogZmFkZUluIHZhcigtLUZPUk1fQU5JTUFUSU9OX0RVUkFUSU9OKSBlYXNlLW91dCBmb3J3YXJkcztcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAuZmFkZS1pbi11cCB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBhbmltYXRpb246IGZhZGVJblVwIHZhcigtLUZPUk1fQU5JTUFUSU9OX0RVUkFUSU9OKSBlYXNlLW91dCBmb3J3YXJkcztcbiAgICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XG59XG5cbi8qIFByb2dyZXNzaXZlIGFuaW1hdGlvbiBkZWxheXMgZm9yIGZvcm0gZmllbGRzICovXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWZpZWxkOm50aC1jaGlsZCgxKSxcbi54cGxvby1mb3JtLXBhZ2UgLmZvcm0tb3V0bGluZTpudGgtY2hpbGQoMSkge1xuICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMC41cyBlYXNlLW91dCBmb3J3YXJkcztcbiAgICBhbmltYXRpb24tZGVsYXk6IDAuM3M7XG4gICAgb3BhY2l0eTogMDtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1maWVsZDpudGgtY2hpbGQoMiksXG4ueHBsb28tZm9ybS1wYWdlIC5mb3JtLW91dGxpbmU6bnRoLWNoaWxkKDIpIHtcbiAgICBhbmltYXRpb246IGZhZGVJblVwIDAuNXMgZWFzZS1vdXQgZm9yd2FyZHM7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAwLjRzO1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tZmllbGQ6bnRoLWNoaWxkKDMpLFxuLnhwbG9vLWZvcm0tcGFnZSAuZm9ybS1vdXRsaW5lOm50aC1jaGlsZCgzKSB7XG4gICAgYW5pbWF0aW9uOiBmYWRlSW5VcCAwLjVzIGVhc2Utb3V0IGZvcndhcmRzO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMC41cztcbiAgICBvcGFjaXR5OiAwO1xufVxuXG4ueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWZpZWxkOm50aC1jaGlsZCg0KSxcbi54cGxvby1mb3JtLXBhZ2UgLmNoZWNrYm94LW91dGxpbmUge1xuICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMC41cyBlYXNlLW91dCBmb3J3YXJkcztcbiAgICBhbmltYXRpb24tZGVsYXk6IDAuNnM7XG4gICAgb3BhY2l0eTogMDtcbn1cblxuLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1maWVsZDpudGgtY2hpbGQoNSkge1xuICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMC41cyBlYXNlLW91dCBmb3J3YXJkcztcbiAgICBhbmltYXRpb24tZGVsYXk6IDAuN3M7XG4gICAgb3BhY2l0eTogMDtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuREFSSyBNT0RFIFNVUFBPUlRcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLyogQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgIC54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0taW5wdXQsXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tRk9STV9JTlBVVF9CQUNLR1JPVU5EX0RBUkspICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1GT1JNX0lOUFVUX1RFWFRfQ09MT1JfREFSSyk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tQ09MT1JfU1VSRkFDRV82MCk7XG4gICAgfVxuICAgIFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0taW5wdXQ6Zm9jdXMsXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVhNjU3OCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCkgIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1pbnB1dDpob3ZlcixcbiAgICAueHBsb28tZm9ybS1wYWdlIC5mb3JtLWNvbnRyb2w6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDcpO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICB9XG59ICovXG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblJFU1BPTlNJVkUgREVTSUdOXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5NnB4KSB7XG4gICAgLnhwbG9vLWZvcm0tY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtO1xuICAgIH1cbiAgICBcbiAgICAueHBsb28tY29udGFjdC1pbmZvLXNlY3Rpb24ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBcbiAgICAueHBsb28tY29udGFjdC1pbmZvLWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5NT0JJTEVcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAueHBsb28tZm9ybS1wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgIH1cbiAgICBcbiAgICAueHBsb28tZm9ybS1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tRk9STV9DT05UQUlORVJfUEFERElOR19NT0JJTEUpO1xuICAgIH1cbiAgICBcbiAgICAueHBsb28tZm9ybS1oZWFkZXIgaDEsXG4gICAgLnhwbG9vLWZvcm0taGVhZGVyIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgfVxuICAgIFxuICAgIC54cGxvby1mb3JtLWhlYWRlciBwIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cbiAgICBcbiAgICAueHBsb28tZm9ybS1jb250ZW50IGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgfVxuICAgIFxuICAgIC8qIEJvdXRvbnMgZW4gcGxlaW5lIGxhcmdldXIgc3VyIG1vYmlsZSAqL1xuICAgIC54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYnV0dG9uLFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLmxvZ2luLWJ1dHRvbixcbiAgICAueHBsb28tZm9ybS1wYWdlIC5kZW1vLWJ1dHRvbixcbiAgICAueHBsb28tZm9ybS1wYWdlIC5jb250YWN0LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiA5MCU7IC8qIFVuIHBldSBwbHVzIGxhcmdlIHN1ciBtb2JpbGUgbWFpcyBwYXMgMTAwJSAqL1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICAgIFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYWxlcnQsXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAuYWxlcnQge1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICB9XG4gICAgXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1hbGVydC5zdWNjZXNzOjpiZWZvcmUsXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1hbGVydC5lcnJvcjo6YmVmb3JlLFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLmFsZXJ0LXN1Y2Nlc3M6OmJlZm9yZSxcbiAgICAueHBsb28tZm9ybS1wYWdlIC5hbGVydC1kYW5nZXI6OmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG4gICAgXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1hbGVydC5zdWNjZXNzIHN0cm9uZyxcbiAgICAueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWFsZXJ0LmVycm9yIHN0cm9uZyxcbiAgICAueHBsb28tZm9ybS1wYWdlIC5hbGVydC1zdWNjZXNzIHN0cm9uZyxcbiAgICAueHBsb28tZm9ybS1wYWdlIC5hbGVydC1kYW5nZXIgc3Ryb25nIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgICB9XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblNNQUxMIE1PQklMRVxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMjBweCkge1xuICAgIC54cGxvby1mb3JtLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiA5NSU7XG4gICAgfVxuICAgIFxuICAgIC54cGxvby1mb3JtLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMnJlbTtcbiAgICB9XG4gICAgXG4gICAgLnhwbG9vLWZvcm0taGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgIH1cbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuSElHSCBDT05UUkFTVCBNT0RFIFNVUFBPUlRcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuQG1lZGlhIChwcmVmZXJzLWNvbnRyYXN0OiBoaWdoKSB7XG4gICAgLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1pbnB1dCxcbiAgICAueHBsb28tZm9ybS1wYWdlIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1DT0xPUl9TVVJGQUNFXzQwKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWlucHV0OmZvY3VzLFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLUNPTE9SX0FDVElPTl81MCkgIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAueHBsb28tZm9ybS1idXR0b24sXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAubG9naW4tYnV0dG9uLFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLmRlbW8tYnV0dG9uLFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLmNvbnRhY3QtYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tQ09MT1JfQUNUSU9OXzYwKTtcbiAgICB9XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblJFRFVDRUQgTU9USU9OIFNVUFBPUlRcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWZpZWxkLFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYnV0dG9uLFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLmZhZGUtaW4sXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAuZmFkZS1pbi11cCxcbiAgICAueHBsb28tZm9ybS1wYWdlIC5mb3JtLW91dGxpbmUsXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAubG9naW4tYnV0dG9uLFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLmRlbW8tYnV0dG9uLFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLmNvbnRhY3QtYnV0dG9uIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICBcbiAgICAueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWlucHV0LFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0tYnV0dG9uLFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLnhwbG9vLWZvcm0taWNvbixcbiAgICAueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWV5ZS1pY29uLFxuICAgIC54cGxvby1mb3JtLXBhZ2UgLmZvcm0tY29udHJvbCxcbiAgICAueHBsb28tZm9ybS1wYWdlIC5sb2dpbi1idXR0b24sXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAuZGVtby1idXR0b24sXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAuY29udGFjdC1idXR0b24sXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAuZXllLWljb24ge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuUFJJTlQgU1RZTEVTXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbkBtZWRpYSBwcmludCB7XG4gICAgLnhwbG9vLWZvcm0tcGFnZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuICAgIFxuICAgIC54cGxvby1mb3JtLWNvbnRhaW5lciB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIH1cbiAgICBcbiAgICAueHBsb28tZm9ybS1oZWFkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cbiAgICBcbiAgICAueHBsb28tZm9ybS1wYWdlIC54cGxvby1mb3JtLWJ1dHRvbixcbiAgICAueHBsb28tZm9ybS1wYWdlIC5sb2dpbi1idXR0b24sXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAuZGVtby1idXR0b24sXG4gICAgLnhwbG9vLWZvcm0tcGFnZSAuY29udGFjdC1idXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7XG4gICAgfVxufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=*/