/*!********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/principal.css ***!
  \********************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Manrope:wght@400;500;700;800&display=swap);
/*!************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/principal.css (1) ***!
  \************************************************************************************************************************/
body.principal-page {
    --principal-bg: #eef4fb;
    --principal-surface: rgba(255, 255, 255, 0.96);
    --principal-surface-strong: rgba(248, 251, 255, 0.98);
    --principal-line: rgba(15, 23, 42, 0.10);
    --principal-text: #10233b;
    --principal-muted: #4f647d;
    --principal-accent: #0f766e;
    --principal-accent-2: #2563eb;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    margin: 0;
    color: var(--principal-text);
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, 0.10), transparent 28%),
        radial-gradient(circle at 85% 12%, rgba(15, 118, 110, 0.10), transparent 24%),
        linear-gradient(180deg, #f8fbff 0%, #eef4fb 52%, #e6eef8 100%);
    font-family: "Inter", "Manrope", sans-serif;
    overflow-x: hidden;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body.principal-page,
body.principal-page *,
body.principal-page *::before,
body.principal-page *::after {
    box-sizing: border-box;
}

body.principal-page > main {
    flex: 1 1 auto;
}

body.principal-page a {
    text-decoration: none;
}

body.principal-page h1,
body.principal-page h2,
body.principal-page h3,
body.principal-page h4,
body.principal-page h5,
body.principal-page h6,
body.principal-page p,
body.principal-page small,
body.principal-page strong,
body.principal-page li {
    color: var(--principal-text);
}

body.principal-page .principal-navbar {
    position: sticky;
    top: 0;
    z-index: 1000;
    min-height: 130px;
    padding: 0 18px;
    border-bottom: 1px solid var(--principal-line);
    background: #9cc3f1 !important;
    backdrop-filter: blur(18px);
    box-shadow: 0 14px 40px rgba(15, 23, 42, 0.16);
}

body.principal-page .principal-navbar .container-fluid,
body.principal-page .principal-navbar .container {
    gap: 18px;
}

body.principal-page .principal-navbar .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.18);
    box-shadow: none;
}

body.principal-page .principal-navbar .navbar-toggler:focus {
    box-shadow: 0 0 0 0.18rem rgba(77, 212, 198, 0.20);
}

body.principal-page .principal-navbar .navbar-collapse {
    justify-content: flex-end;
    margin-bottom: -70px;
}

body.principal-page .principal-brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: #ffffff;
    white-space: nowrap;
}

body.principal-page .principal-brand__mark {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    font-weight: 800;
    letter-spacing: -0.04em;
    color: #04111b;
    background: linear-gradient(135deg, var(--principal-accent), var(--principal-accent-2));
    box-shadow: 0 16px 30px rgba(37, 99, 235, 0.20);
}

body.principal-page .principal-brand__copy {
    display: grid;
    line-height: 1.05;
}

body.principal-page .principal-brand__copy strong {
    font-size: 1.02rem;
    letter-spacing: 0.01em;
    color: #ffffff;
}

body.principal-page .principal-brand__copy span {
    margin-top: 4px;
    color: rgba(240, 246, 255, 0.90);
    font-size: 0.84rem;
}

body.principal-page .principal-public-nav,
body.principal-page .principal-navbar__auth {
    gap: 0.25rem;
    align-items: center;
}

body.principal-page .principal-public-nav .nav-link,
body.principal-page .principal-navbar__auth .nav-link,
body.principal-page .principal-navbar__logout {
    /*color: rgba(255, 255, 255, 0.96);
    font-weight: 600;*/
    padding: 0.7rem 0.9rem;
    color:#000 !important;
    /*border-radius: 999px;
    transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;*/
}

body.principal-page .principal-navbar__auth {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.35rem;
}

body.principal-page .principal-public-nav .nav-link:hover,
body.principal-page .principal-public-nav .nav-link:focus-visible,
body.principal-page .principal-public-nav .nav-link.active {
    color: #000 !important;
    background: rgba(172, 225, 250, 0.09);
}

/*body.principal-page .principal-navbar__login {
    margin-left: 0.25rem;
    border: 1px solid rgba(255, 255, 255, 0.24);
    background: rgba(255, 255, 255, 0.08);
}*/

body.principal-page .principal-navbar__login:hover,
body.principal-page .principal-navbar__login:focus-visible {
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff !important;
}

body.principal-page .principal-navbar__cart,
body.principal-page .principal-navbar__dashboard {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    border: 0;
    background: rgba(255, 255, 255, 0.10);
}

body.principal-page .principal-navbar__cart {
    position: relative;
}

body.principal-page .principal-navbar__cart:hover,
body.principal-page .principal-navbar__cart:focus-visible,
body.principal-page .principal-navbar__dashboard:hover,
body.principal-page .principal-navbar__dashboard:focus-visible {
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
}

body.principal-page .principal-navbar__cart-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 22px;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #7dd3fc 0%, #22c55e 100%);
    color: #04111b;
    font-size: 0.76rem;
    font-weight: 900;
}

body.principal-page .principal-navbar__logout {
    background: transparent;
    border: 0;
}

body.principal-page .principal-navbar__logout:hover {
    color: #7dd3fc;
}

body.principal-page .principal-navbar__user {
    opacity: 0.92;
}

body.principal-page .principal-shell {
    width: 100%;
    position: relative;
}

body.principal-page .principal-pago__continue {
    min-width: 220px;
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    visibility: visible;
    opacity: 1;
    text-decoration: none;
    border: 1px solid #244a73;
    background-color: #214f78 !important;
    background-image: linear-gradient(135deg, #214f78 0%, #163d61 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 12px 26px rgba(22, 61, 97, 0.22);
}

body.principal-page .principal-pago__continue:hover,
body.principal-page .principal-pago__continue:focus-visible {
    color: #ffffff !important;
    background-color: #214f78 !important;
    background-image: linear-gradient(135deg, #214f78 0%, #163d61 100%) !important;
    border-color: #244a73;
    box-shadow: 0 14px 30px rgba(22, 61, 97, 0.28);
    text-decoration: none;
}

body.principal-page .principal-pago__confirmed {
    min-width: 220px;
    border: 1px solid rgba(15, 118, 110, 0.18);
    background: rgba(15, 118, 110, 0.08);
    color: #0f766e;
}

body.principal-page .principal-pago__comprobante {
    max-width: 220px;
    max-height: 160px;
    object-fit: cover;
}

body.principal-page .principal-hero {
    position: relative;
    padding: 84px 0 72px;
    overflow: hidden;
}

body.principal-page .principal-hero::before,
body.principal-page .principal-hero::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
    filter: blur(10px);
}

body.principal-page .principal-hero::before {
    width: 240px;
    height: 240px;
    right: -40px;
    top: 26px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.14) 0%, rgba(37, 99, 235, 0) 70%);
}

body.principal-page .principal-hero::after {
    width: 180px;
    height: 180px;
    left: -48px;
    bottom: 0;
    background: radial-gradient(circle, rgba(15, 118, 110, 0.12) 0%, rgba(15, 118, 110, 0) 70%);
}

body.principal-page .principal-hero__panel {
    max-width: 1180px;
    margin: 0 auto;
    padding: 34px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 30px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 249, 255, 0.96));
    box-shadow: 0 28px 60px rgba(15, 23, 42, 0.12);
}

body.principal-page.principal-detail-active .principal-hero__panel {
    display: none;
}

body.principal-page.principal-detail-active .principal-hero {
    padding: 16px 0 20px;
}

body.principal-page.principal-detail-active .principal-hero::before,
body.principal-page.principal-detail-active .principal-hero::after {
    display: none;
}

body.principal-page .principal-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    color: var(--principal-accent);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.8rem;
    font-weight: 700;
}

body.principal-page .principal-kicker::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--principal-accent);
    box-shadow: 0 0 0 6px rgba(15, 118, 110, 0.10);
}

body.principal-page .principal-hero h1 {
    margin: 0;
    font-size: clamp(2.2rem, 5vw, 4.6rem);
    line-height: 0.98;
    letter-spacing: -0.06em;
    color: #10233b;
    max-width: 12ch;
}

body.principal-page .principal-hero p {
    margin: 16px 0 0;
    max-width: 72ch;
    color: var(--principal-muted);
    line-height: 1.8;
}

body.principal-page .principal-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

body.principal-page .principal-hero__actions .btn {
    border-radius: 14px;
    padding: 0.9rem 1.2rem;
    font-weight: 700;
}

body.principal-page .principal-hero__actions .btn-primary {
    background: linear-gradient(135deg, #0f766e 0%, #2563eb 100%);
    border: 0;
    color: #ffffff;
    box-shadow: 0 14px 28px rgba(37, 99, 235, 0.22);
}

body.principal-page .principal-hero__actions .btn-outline-light {
    color: #10233b;
    border: 1px solid rgba(15, 23, 42, 0.16);
    background: #ffffff;
}

body.principal-page .principal-hero__actions .btn-outline-light:hover,
body.principal-page .principal-hero__actions .btn-outline-light:focus-visible {
    color: #10233b;
    background: #eef4fb;
}

body.principal-page .principal-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

body.principal-page .principal-chips span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0.45rem 0.88rem;
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, 0.10);
    background: rgba(255, 255, 255, 0.88);
    color: #10233b;
    font-size: 0.9rem;
}

body.principal-page .principal-hero__card {
    padding: 24px;
    border-radius: 24px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
    box-shadow: 0 22px 40px rgba(15, 23, 42, 0.10);
}

body.principal-page .principal-hero__card-top {
    display: grid;
    gap: 0.25rem;
    margin-bottom: 20px;
}

body.principal-page .principal-hero__card-label {
    width: fit-content;
    padding: 0.32rem 0.68rem;
    border-radius: 999px;
    background: rgba(15, 118, 110, 0.12);
    color: var(--principal-accent);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

body.principal-page .principal-hero__card-top strong {
    font-size: 1.2rem;
    letter-spacing: -0.03em;
    color: #10233b;
}

body.principal-page .principal-hero__metrics {
    display: grid;
    gap: 12px;
}

body.principal-page .principal-metric {
    padding: 14px 16px;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: #ffffff;
}

body.principal-page .principal-metric span {
    display: block;
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.04em;
    color: #10233b;
}

body.principal-page .principal-metric small {
    display: block;
    margin-top: 6px;
    color: var(--principal-muted);
    line-height: 1.45;
}

body.principal-page .principal-hero__note {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

body.principal-page .principal-hero__note i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(15, 118, 110, 0.12);
    color: var(--principal-accent);
    font-size: 1.1rem;
}

body.principal-page .principal-hero__note strong {
    display: block;
    margin-bottom: 4px;
    color: #10233b;
}

body.principal-page .principal-hero__note p {
    margin: 0;
    color: var(--principal-muted);
    line-height: 1.6;
}

body.principal-page .principal-section {
    padding: 72px 0;
    position: relative;
}

body.principal-page.principal-detail-active #quienes-somos,
body.principal-page.principal-detail-active #vision,
body.principal-page.principal-detail-active #mision,
body.principal-page.principal-detail-active #soporte {
    display: none;
}

body.principal-page .principal-section--soft {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(248, 251, 255, 0.96));
    border-top: 1px solid rgba(15, 23, 42, 0.05);
    border-bottom: 1px solid rgba(15, 23, 42, 0.05);
}

body.principal-page .principal-section__heading {
    display: grid;
    gap: 0.4rem;
    margin-bottom: 24px;
}

body.principal-page .principal-section__heading span,
body.principal-page .principal-feature-card__icon,
body.principal-page .principal-cta__panel span {
    color: var(--principal-accent);
}

body.principal-page .principal-section__heading span {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.8rem;
    font-weight: 700;
}

body.principal-page .principal-section__heading h2,
body.principal-page .principal-cta__panel h2 {
    margin: 0;
    font-size: clamp(1.7rem, 3vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: -0.04em;
    color: #10233b;
}

body.principal-page .principal-section__heading p {
    margin: 0;
    max-width: 70ch;
    color: var(--principal-muted);
    line-height: 1.7;
}

body.principal-page .principal-feature-card,
body.principal-page .principal-product-card,
body.principal-page .principal-cta__panel {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 24px;
    background: linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.10);
}

body.principal-page .principal-feature-card {
    padding: 24px;
    transition: transform 160ms ease, border-color 160ms ease;
}

body.principal-page .principal-feature-card:hover {
    transform: translateY(-3px);
    border-color: rgba(37, 99, 235, 0.22);
}

body.principal-page .principal-feature-card--accent {
    background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
}

body.principal-page .principal-feature-card__foot {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

body.principal-page .principal-feature-card__foot span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 0.4rem 0.8rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.04);
    color: #10233b;
    font-size: 0.88rem;
}

body.principal-page .principal-feature-card__icon {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: rgba(15, 118, 110, 0.10);
    font-size: 1.25rem;
}

body.principal-page .principal-feature-card h3,
body.principal-page .principal-product-card__body h3 {
    margin: 14px 0 8px;
    font-size: 1.15rem;
    color: #10233b;
}

body.principal-page .principal-feature-card p,
body.principal-page .principal-product-card__body p,
body.principal-page .principal-cta__panel p {
    margin: 0;
    color: var(--principal-muted);
    line-height: 1.7;
}

body.principal-page .principal-product-card {
    overflow: hidden;
    transition: transform 160ms ease, border-color 160ms ease;
}

body.principal-page .principal-product-card:hover {
    transform: translateY(-3px);
    border-color: rgba(37, 99, 235, 0.22);
}

body.principal-page .principal-product-card__image {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

body.principal-page .principal-product-card__body {
    padding: 20px;
}

body.principal-page .principal-product-card__detail {
    display: inline-flex;
    margin-top: 12px;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: rgba(15, 118, 110, 0.12);
    color: var(--principal-accent);
    font-size: 0.82rem;
    font-weight: 700;
}

body.principal-page .principal-catalog {
    min-width: 0;
    max-width: 100%;
    overflow-x: hidden;
}

body.principal-page .principal-category-products {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

body.principal-page .principal-category-menu__list {
    max-width: 100%;
}

body.principal-page .principal-category-carousel {
    display: flex;
    align-items: center;
    gap: 8px;
}

body.principal-page .principal-category-carousel .principal-category-menu__list {
    flex: 1 1 0;
    width: 0;
    min-width: 0;
}

body.principal-page .principal-category-carousel__control {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(15, 23, 42, 0.14);
    border-radius: 50%;
    background: #ffffff;
    color: #10233b;
    cursor: pointer;
}

body.principal-page .principal-category-carousel__control:hover {
    background: #10233b;
    color: #ffffff;
}

body.principal-page {
    overflow-x: hidden;
}

body.principal-page .principal-catalog {
    display: grid;
    gap: 28px;
}

body.principal-page .principal-promo-banner {
    min-height: 250px;
    padding: 28px;
    border-radius: 24px;
    color: #fff;
    box-shadow: 0 18px 35px rgba(15, 23, 42, .14);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}
body.principal-page .principal-promo-banner span { text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; font-weight: 800; opacity: .85; }
body.principal-page .principal-promo-banner h3 { margin: 10px 0 8px; color: #fff; }
body.principal-page .principal-promo-banner p { margin-bottom: 18px; color: rgba(255,255,255,.86); }
body.principal-page .principal-promo-banner--blue { background: linear-gradient(135deg, #155eef, #0f2d66); }
body.principal-page .principal-promo-banner--violet { background: linear-gradient(135deg, #7c3aed, #3b176e); }
body.principal-page .principal-promo-banner--orange { background: linear-gradient(135deg, #ea580c, #7c2d12); }
body.principal-page .principal-promo-carousel .carousel-inner,
body.principal-page .principal-promo-carousel .carousel-item {
    border-radius: 24px;
    overflow: hidden;
}
body.principal-page .principal-promo-carousel .principal-promo-banner {
    min-height: 280px;
    padding: 42px 72px;
}
body.principal-page .principal-promo-carousel .carousel-indicators {
    z-index: 3;
    margin-bottom: 14px;
}
body.principal-page .principal-promo-carousel .carousel-control-prev,
body.principal-page .principal-promo-carousel .carousel-control-next {
    width: 8%;
}
body.principal-page .principal-navbar__search {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 220px;
    padding: 7px 12px;
    border: 1px solid rgba(15, 23, 42, .15);
    border-radius: 999px;
    background: rgba(255, 255, 255, .78);
    flex: 0 1 320px;
    margin: 0 auto;
}
body.principal-page .principal-navbar__search i {
    color: #52677f;
}
body.principal-page .principal-navbar__search input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #10233b;
}
body.principal-page .principal-navbar__search input::placeholder {
    color: #718096;
}
@media (max-width: 991.98px) {
    body.principal-page .principal-navbar__search {
        order: 2;
        flex-basis: min(320px, 48vw);
        margin-left: auto;
        margin-right: 12px;
    }
}

body.principal-page .principal-catalog-shell {
    display: grid;
    gap: 16px;
}

body.principal-page .principal-category-menu,
body.principal-page .principal-category-view {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

body.principal-page .principal-category-menu {
    padding: 14px 14px 10px;
}

body.principal-page .principal-category-menu--top {
    position: relative;
    top: auto;
}

body.principal-page .principal-category-menu__head {
    display: grid;
    gap: 0.25rem;
    margin-bottom: 10px;
}

body.principal-page .principal-category-menu__head span,
body.principal-page .principal-category-view__eyebrow {
    color: var(--principal-accent);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.75rem;
    font-weight: 800;
}

body.principal-page .principal-category-menu__head strong {
    color: #10233b;
    font-size: 1.1rem;
}

body.principal-page .principal-category-menu__list {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 2px;
    white-space: nowrap;
    scroll-snap-type: x proximity;
    border-bottom: 0;
}

body.principal-page .principal-category-menu::-webkit-scrollbar {
    width: 8px;
}

body.principal-page .principal-category-menu__list::-webkit-scrollbar {
    height: 8px;
}

body.principal-page .principal-category-menu::-webkit-scrollbar-thumb {
    background: rgba(37, 99, 235, 0.25);
    border-radius: 999px;
}

body.principal-page .principal-category-menu__list::-webkit-scrollbar-thumb {
    background: rgba(37, 99, 235, 0.25);
    border-radius: 999px;
}

body.principal-page .principal-category-menu__button {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
    flex: 0 0 156px;
    min-width: 156px;
    height: 145px;
    padding: 8px 10px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 14px;
    background: #fbfdff;
    color: #10233b;
    text-align: left;
    transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
    scroll-snap-align: start;
}

body.principal-page .principal-category-menu__image {
    display: block;
    width: 100%;
    height: 82px;
    margin-bottom: 6px;
    border-radius: 10px;
    object-fit: cover;
    background: #eef3f8;
}

body.principal-page .principal-category-menu__button:hover {
    transform: translateY(-1px);
    border-color: rgba(37, 99, 235, 0.20);
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.06);
}

body.principal-page .principal-category-menu__button.is-active {
    background: linear-gradient(135deg, #10233b 0%, #1f3b63 100%);
    color: #ffffff;
    border-color: transparent;
    box-shadow: 0 16px 28px rgba(15, 23, 42, 0.12);
}

body.principal-page .principal-category-menu__bullet {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid rgba(37, 99, 235, 0.40);
    background: #ffffff;
    box-shadow: inset 0 0 0 3px #ffffff;
}

body.principal-page .principal-category-menu__button.is-active .principal-category-menu__bullet {
    border-color: rgba(255, 255, 255, 0.95);
    background: var(--principal-accent);
    box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.18);
}

body.principal-page .principal-category-menu__button strong {
    font-size: 0.82rem;
    line-height: 1.12;
    display: block;
    min-height: 1.84em;
    max-height: 1.84em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.principal-page .principal-category-menu__button small {
    color: inherit;
    opacity: 0.72;
    font-size: 0.69rem;
    display: block;
}

body.principal-page .principal-category-view {
    padding: 18px;
}

body.principal-page .principal-category-products {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    justify-content: stretch;
    align-items: stretch;
}

body.principal-page .principal-product-card {
    display: flex;
    min-width: 0;
}

@media (min-width: 992px) {
    body.principal-page .principal-home-best-sellers .principal-category-products {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 10px;
    }

    body.principal-page .principal-home-best-sellers .principal-product-tile__body {
        padding: 12px;
    }

    body.principal-page .principal-home-best-sellers .principal-product-tile__image-wrap {
        height: 150px;
        aspect-ratio: auto;
        padding: 8px;
    }

    body.principal-page .principal-home-best-sellers .principal-product-tile__image {
        object-fit: contain;
    }

    body.principal-page .principal-home-best-sellers .principal-product-tile__title {
        font-size: .92rem;
    }
}

@media (max-width: 1199.98px) {
    body.principal-page .principal-category-products {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    body.principal-page .principal-category-products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    body.principal-page .principal-category-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    body.principal-page .principal-category-products {
        grid-template-columns: 1fr;
    }
}

body.principal-page .principal-category-products .principal-product-card {
    width: 100%;
    max-width: 220px;
}

body.principal-page .principal-category-view__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

body.principal-page .principal-category-view__head > div {
    display: grid;
    gap: 4px;
}

body.principal-page .principal-category-view__head h3 {
    margin: 0;
    color: #10233b;
    font-size: clamp(1.08rem, 1.9vw, 1.45rem);
}

body.principal-page .principal-category-view__count {
    color: var(--principal-muted);
    font-size: 0.8rem;
    font-weight: 600;
}

body.principal-page .principal-category-card {
    padding: 24px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.90);
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.08);
}

body.principal-page .principal-category-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}

body.principal-page .principal-category-card__eyebrow {
    display: inline-flex;
    margin-bottom: 8px;
    color: var(--principal-accent);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.76rem;
    font-weight: 800;
}

body.principal-page .principal-category-card h3 {
    margin: 0;
    font-size: clamp(1.2rem, 2.2vw, 1.65rem);
    color: #10233b;
}

body.principal-page .principal-category-card__count {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0.35rem 0.8rem;
    border-radius: 999px;
    background: rgba(15, 118, 110, 0.10);
    color: var(--principal-accent);
    font-weight: 700;
    white-space: nowrap;
}

body.principal-page .principal-product-tile {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    height: 100%;
    min-height: 212px;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.07);
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

body.principal-page .principal-product-tile:hover {
    transform: translateY(-4px);
    border-color: rgba(37, 99, 235, 0.20);
    box-shadow: 0 14px 24px rgba(15, 23, 42, 0.10);
}

body.principal-page .principal-product-tile__image-wrap {
    position: relative;
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, #eef4fb, #dce8f6);
    overflow: hidden;
}

body.principal-page .principal-product-tile__image-button {
    appearance: none;
    border: 0;
    padding: 0;
    width: 100%;
    cursor: pointer;
}

body.principal-page .principal-product-tile__image-button:focus-visible,
body.principal-page .principal-product-tile__open:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.28);
    outline-offset: 2px;
}

body.principal-page .principal-product-tile__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

body.principal-page .principal-product-tile__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 11px 10px;
    flex: 1 1 auto;
}

body.principal-page .principal-product-tile__signals {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 11px 0;
    align-items: center;
}

body.principal-page .principal-product-tile__badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: #ffe600;
    color: #10233b;
    font-size: 0.62rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    box-shadow: 0 10px 18px rgba(15, 23, 42, 0.12);
}

body.principal-page .principal-product-tile__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    color: var(--principal-muted);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

body.principal-page .principal-product-tile__meta span + span::before {
    content: "•";
    margin-right: 8px;
    color: rgba(79, 100, 125, 0.55);
}

body.principal-page .principal-product-tile__title {
    margin: 0;
}

body.principal-page .principal-product-tile__open {
    appearance: none;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    color: #10233b;
    font-size: 0.88rem;
    line-height: 1.22;
    font-weight: 800;
    cursor: pointer;
}

body.principal-page .principal-product-tile__open:hover {
    color: #2563eb;
}

body.principal-page .principal-product-tile__rating-wrap {
    display: grid;
    gap: 6px;
    padding: 2px 0 0;
}

body.principal-page .principal-product-tile__stars {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
}

body.principal-page .principal-product-tile__star {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    line-height: 1;
    color: rgba(245, 166, 35, 0.28);
    font-size: 0.78rem;
    transition: transform 160ms ease, color 160ms ease, opacity 160ms ease;
    cursor: pointer;
}

body.principal-page .principal-product-tile__star:hover {
    transform: translateY(-1px) scale(1.04);
    color: rgba(245, 166, 35, 0.75);
}

body.principal-page .principal-product-tile__star.is-active {
    color: #f5a623;
}

body.principal-page .principal-product-tile__star:disabled {
    opacity: 0.55;
    cursor: wait;
}

body.principal-page .principal-product-tile__stars-meta {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 0.06rem 0.45rem;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.08);
    color: #1d4ed8;
    font-size: 0.68rem;
    font-weight: 800;
}

body.principal-page .principal-product-tile__rating-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    color: #6b7f96;
    font-size: 0.66rem;
    font-weight: 600;
}

body.principal-page .principal-product-tile__rating-meta span:first-child {
    color: #10233b;
    font-weight: 800;
}

body.principal-page .principal-product-tile__description {
    /* Descripción completa del producto, sin recorte de líneas. */
    margin: 0;
    color: var(--principal-muted);
    line-height: 1.36;
    font-size: 0.76rem;
}

body.principal-page .principal-product-tile__attributes {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 1px;
}

body.principal-page .principal-product-tile__attributes span {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 0.12rem 0.34rem;
    border-radius: 999px;
    background: #eef4fb;
    color: #17436b;
    font-size: 0.62rem;
    font-weight: 700;
}

body.principal-page .principal-product-tile__pricing {
    display: grid;
    gap: 4px;
    margin-top: 1px;
    padding: 5px 0 2px;
}

body.principal-page .principal-product-tile__off {
    display: inline-flex;
    min-height: 20px;
    padding: 0.1rem 0.36rem;
    border-radius: 999px;
    background: rgba(255, 230, 0, 0.28);
    color: #7a5900;
    font-size: 0.60rem;
    font-weight: 900;
    letter-spacing: 0.04em;
}

/* Contenedor general de los precios de la tarjeta. */
body.principal-page .principal-product-tile__price-block {
    display: grid;
    gap: 4px;
}

/* Línea individual para cada precio o moneda. */
body.principal-page .principal-product-tile__price-line {
    display: grid;
    gap: 1px;
    padding: 4px 0;
}

/* Precio anterior tachado en la tarjeta del producto. */
body.principal-page .principal-product-tile__price-block del {
    color: #94a3b8;
    font-size: 0.70rem;
    font-weight: 600;
}

/* Texto destacado asociado al precio de la tarjeta. */
body.principal-page .principal-product-tile__price-block strong {
    color: #10233b;
}

/* Nombre o referencia del banco que ofrece el precio. */
body.principal-page .principal-product-tile__price-bank {
    display: block;
    color: #1f4f7a;
    font-size: clamp(0.82rem, 1.1vw, 0.98rem);
    line-height: 1.08;
    letter-spacing: 0.03em;
    font-weight: 800;
}

/* Valor principal visible del precio. */
body.principal-page .principal-product-tile__price-value {
    display: block;
    color: #202020;
    font-size: clamp(1.18rem, 1.8vw, 1.48rem);
    line-height: 1.05;
    font-weight: 600;
    letter-spacing: 0.01em;
}

/* Información secundaria del precio, como disponibilidad o promoción. */
body.principal-page .principal-product-tile__price-block small {
    color: #0f766e;
    font-size: 0.68rem;
    font-weight: 700;
}

/* Bloque común para mostrar características completas y respetar saltos de línea. */
body.principal-page .principal-product-tile__characteristics,
body.principal-page .principal-product-modal__characteristics {
    color: #475569;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* Características completas debajo de la descripción en la tarjeta. */
body.principal-page .principal-product-tile__characteristics {
    margin-top: 0.65rem;
    padding-top: 0.6rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    font-size: 0.78rem;
    line-height: 1.45;
}

/* Título del bloque de características en tarjeta y detalle. */
body.principal-page .principal-product-tile__characteristics strong,
body.principal-page .principal-product-modal__characteristics strong {
    display: block;
    margin-bottom: 0.25rem;
    color: #10233b;
    font-weight: 800;
}

/* Características completas debajo de la descripción en el detalle principal. */
body.principal-page .principal-product-modal__characteristics {
    margin-top: 0.9rem;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    background: #f8fbff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    font-size: 0.92rem;
    line-height: 1.55;
}

body.principal-page .principal-product-tile__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: auto;
}

body.principal-page .principal-product-tile__footer span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 22px;
    padding: 0.14rem 0.38rem;
    border-radius: 999px;
    background: #f3f7fc;
    color: #10233b;
    font-size: 0.64rem;
    font-weight: 700;
}

body.principal-page .principal-product-tile__footer i {
    color: #0f766e;
}

body.principal-page .principal-product-modal {
    position: fixed;
    inset: 0;
    z-index: 2200;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(7, 15, 29, 0.58);
    backdrop-filter: blur(12px);
}

body.principal-page .principal-product-modal.is-open {
    display: flex;
}

body.principal-page .principal-product-modal__backdrop {
    position: absolute;
    inset: 0;
}

body.principal-page .principal-product-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(1180px, 100%);
    max-height: calc(100vh - 48px);
    overflow: auto;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 30px;
    background: linear-gradient(180deg, #ffffff 0%, #f4f8fd 100%);
    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.28);
}

body.principal-page .principal-product-modal__close {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.08);
    color: #10233b;
}

body.principal-page .principal-product-detail {
    width: 100%;
    margin-bottom: 22px;
    padding: 20px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 30px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 253, 0.96));
    box-shadow: 0 26px 60px rgba(15, 23, 42, 0.10);
}

body.principal-page .principal-product-detail__content {
    display: grid;
    grid-template-columns: minmax(280px, 0.95fr) minmax(0, 1.35fr);
    gap: 18px;
}

body.principal-page .principal-product-detail__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 8px;
}

body.principal-page .principal-product-detail .principal-product-modal__close {
    position: static;
    flex: 0 0 auto;
}

body.principal-page .principal-product-detail .principal-product-modal__image-wrap {
    aspect-ratio: auto;
    height: 360px;
    width: min(100%, 360px);
    margin: 0 auto;
}

/* Agrupa la información ampliada que se muestra después de abrir un producto. */
body.principal-page .principal-product-detail__information {
    grid-column: 1 / -1;
    margin-top: 2px;
    padding: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 20px;
    background: #ffffff;
}

/* Título de la sección de información completa del producto. */
body.principal-page .principal-product-detail__information-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    color: #10233b;
    font-size: 1.05rem;
    font-weight: 800;
}

/* Icono del título de información completa. */
body.principal-page .principal-product-detail__information-title i {
    color: #2d78bc;
}

/* Distribución de descripción, características y datos adicionales. */
body.principal-page .principal-product-detail__information-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

/* Tarjeta individual para cada bloque de información ampliada. */
body.principal-page .principal-product-detail__information-block {
    min-width: 0;
    padding: 13px 15px;
    border: 1px solid #e3ebf3;
    border-radius: 14px;
    background: #f8fbff;
}

/* La descripción ocupa todo el ancho para mostrar el texto completo. */
body.principal-page .principal-product-detail__information-block--description,
body.principal-page .principal-product-detail__information-block--characteristics {
    grid-column: 1 / -1;
}

/* Etiqueta superior de cada bloque de información ampliada. */
body.principal-page .principal-product-detail__information-block > strong {
    display: block;
    margin-bottom: 7px;
    color: #10233b;
    font-size: 0.9rem;
    font-weight: 800;
}

/* Texto descriptivo completo, respetando saltos de línea y palabras extensas. */
body.principal-page .principal-product-detail__information-block p,
body.principal-page .principal-product-detail__information-block .principal-product-modal__characteristics {
    margin: 0;
    color: #475569;
    line-height: 1.65;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* Presenta los datos adicionales sin mostrar un encabezado separado. */
body.principal-page .principal-product-detail__additional-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

/* Cada dato adicional conserva su lectura completa dentro de la ficha. */
body.principal-page .principal-product-detail__additional-list span {
    display: block;
    padding: 8px 10px;
    border-radius: 9px;
    background: #ffffff;
    color: #475569;
    font-size: 0.88rem;
    overflow-wrap: anywhere;
}

/* Ubica los datos adicionales encima del precio dentro del resumen del producto. */
body.principal-page .principal-product-detail__additional-list--summary {
    grid-column: 1 / -1;
    display: block;
    margin: 14px 0 2px;
}

/* Título del bloque que reúne las características comerciales del producto. */
body.principal-page .principal-product-detail__additional-title {
    display: block;
    margin-bottom: 8px;
    color: #10233b;
    font-size: 0.92rem;
}

/* Distribuye cada característica sin perder la lectura completa del texto. */
body.principal-page .principal-product-detail__additional-items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

/* Resalta únicamente la etiqueta que aparece antes de los dos puntos. */
body.principal-page .principal-product-detail__additional-items span strong {
    color: #10233b;
    font-weight: 800;
}

body.principal-page .principal-product-detail[data-product-detail-state="empty"] {
    border-style: dashed;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(237, 244, 252, 0.92));
}

body.principal-page .principal-product-detail[data-product-detail-state="empty"] .principal-product-modal__summary {
    opacity: 0.92;
}

body.principal-page .principal-product-modal__content {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.35fr) minmax(280px, 0.75fr);
    gap: 18px;
    padding: 22px;
}

body.principal-page .principal-product-modal__gallery,
body.principal-page .principal-product-modal__summary,
body.principal-page .principal-product-modal__cart {
    min-width: 0;
}

body.principal-page .principal-product-modal__gallery,
body.principal-page .principal-product-modal__summary,
body.principal-page .principal-product-modal__cart {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

body.principal-page .principal-product-modal__gallery {
    padding: 16px;
}

body.principal-page .principal-product-modal__image-wrap {
    aspect-ratio: 1 / 1;
    border-radius: 20px;
    overflow: hidden;
    background: linear-gradient(135deg, #eef4fb, #dce8f6);
}

body.principal-page .principal-product-modal__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

body.principal-page .principal-product-modal__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

body.principal-page .principal-product-modal__chips span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0.32rem 0.7rem;
    border-radius: 999px;
    background: #eef4fb;
    color: #17436b;
    font-size: 0.82rem;
    font-weight: 700;
}

body.principal-page .principal-product-modal__summary {
    padding: 18px;
}

body.principal-page .principal-product-modal__eyebrow {
    display: inline-flex;
    margin-bottom: 6px;
    color: var(--principal-accent);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.76rem;
    font-weight: 800;
}

body.principal-page .principal-product-modal__summary h2 {
    margin: 0;
    color: #10233b;
    font-size: clamp(1.55rem, 2.8vw, 2.15rem);
    line-height: 1.05;
    letter-spacing: -0.05em;
}

body.principal-page .principal-product-modal__code {
    margin: 8px 0 0;
    color: #2563eb;
    font-size: 0.86rem;
    font-weight: 800;
}

body.principal-page .principal-product-modal__rating {
    display: grid;
    gap: 6px;
    margin-top: 14px;
}

body.principal-page .principal-product-modal__rating small {
    color: var(--principal-muted);
    font-size: 0.84rem;
}

body.principal-page .principal-product-modal__pricing {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px;
    margin-top: 14px;
}

/* Precio anterior tachado dentro del detalle del producto. */
body.principal-page .principal-product-modal__pricing del {
    color: #94a3b8;
    font-size: 0.96rem;
    font-weight: 600;
}

/* Precio principal dentro del detalle del producto. */
body.principal-page .principal-product-modal__pricing strong {
    color: #10233b;
    font-size: clamp(1.25rem, 1.6vw, 1.7rem);
    font-weight: 800;
    letter-spacing: -0.05em;
}

/* Lista de precios por banco dentro del detalle. */
body.principal-page .principal-product-modal__price-list {
    display: grid;
    gap: 10px;
    width: 100%;
    margin-top: 4px;
}

/* Fila visual de cada precio del banco. */
body.principal-page .principal-product-modal__price-line {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.65rem;
    padding: 8px 10px;
    border-radius: 16px;
    background: linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
    border: 1px solid rgba(15, 23, 42, 0.06);
}

/* Ícono del banco asociado al precio. */
body.principal-page .principal-product-modal__price-icon {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
}

body.principal-page .principal-product-modal__price-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0.16rem;
}

body.principal-page .principal-product-modal__price-icon--fallback i {
    font-size: 0.95rem;
}

/* Banco o moneda mostrada dentro del detalle. */
body.principal-page .principal-product-modal__price-bank {
    color: #1f4f7a;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.03em;
}

/* Valor asociado a cada banco dentro del detalle. */
body.principal-page .principal-product-modal__price-value {
    color: #475569;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.01em;
}

body.principal-page .principal-product-modal__price-copy {
    display: grid;
    gap: 0.1rem;
    align-items: start;
}

body.principal-page .principal-product-modal__pricing small {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(255, 230, 0, 0.24);
    color: #7a5900;
    font-size: 0.76rem;
    font-weight: 900;
}

body.principal-page .principal-product-modal__description {
    margin: 14px 0 0;
    color: var(--principal-muted);
    line-height: 1.7;
}

body.principal-page .principal-product-modal__specs {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}

body.principal-page .principal-product-modal__specs div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 44px;
    padding: 0.55rem 0.8rem;
    border-radius: 14px;
    background: #f5f8fc;
}

body.principal-page .principal-product-modal__specs strong {
    color: #10233b;
    font-size: 0.84rem;
}

body.principal-page .principal-product-modal__specs span {
    color: var(--principal-muted);
    font-size: 0.84rem;
    text-align: right;
}

body.principal-page .principal-product-modal__payments {
    margin-top: 16px;
    padding: 14px 16px;
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-radius: 18px;
    background: rgba(37, 99, 235, 0.04);
}

body.principal-page .principal-product-modal__payments-head {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 10px;
}

body.principal-page .principal-product-modal__payments-head strong {
    color: #10233b;
    font-size: 0.92rem;
}

body.principal-page .principal-product-modal__payments-head small {
    color: var(--principal-muted);
}

body.principal-page .principal-product-modal__payments-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body.principal-page .principal-payment-method {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 700;
    color: #17436b;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(37, 99, 235, 0.14);
}

body.principal-page .principal-payment-method--empty {
    color: var(--principal-muted);
    background: rgba(255, 255, 255, 0.68);
}

body.principal-page .principal-product-modal__buybox {
    margin-top: 18px;
    padding: 16px;
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(15, 118, 110, 0.06), rgba(37, 99, 235, 0.05));
}

body.principal-page .principal-product-modal__qty-label {
    display: block;
    margin-bottom: 8px;
    color: #10233b;
    font-size: 0.84rem;
    font-weight: 800;
}

body.principal-page .principal-product-modal__qty-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 8px;
}

body.principal-page .principal-product-modal__qty-btn,
body.principal-page .principal-product-modal__qty-input {
    height: 44px;
    border-radius: 14px;
    border: 1px solid rgba(15, 23, 42, 0.12);
    background: #ffffff;
    color: #10233b;
}

body.principal-page .principal-product-modal__qty-btn {
    width: 44px;
    font-size: 1.1rem;
    font-weight: 800;
}

body.principal-page .principal-product-modal__qty-input {
    width: 100%;
    padding: 0 12px;
    font-weight: 700;
    text-align: center;
}

body.principal-page .principal-product-modal__stock {
    display: inline-flex;
    margin-top: 10px;
    color: var(--principal-muted);
    font-size: 0.82rem;
}

body.principal-page .principal-product-modal__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

body.principal-page .principal-product-modal__actions .btn {
    flex: 1 1 160px;
    border-radius: 14px;
    min-height: 46px;
}

body.principal-page .principal-product-modal__cart {
    padding: 16px;
    display: grid;
    gap: 14px;
    align-content: start;
}

body.principal-page .principal-product-modal__cart-head,
body.principal-page .principal-product-modal__cart-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

body.principal-page .principal-product-modal__cart-head {
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

body.principal-page .principal-product-modal__cart-head span,
body.principal-page .principal-product-modal__cart-head strong,
body.principal-page .principal-product-modal__cart-total span,
body.principal-page .principal-product-modal__cart-total strong {
    color: #10233b;
}

body.principal-page .principal-product-modal__cart-items {
    display: grid;
    gap: 10px;
    max-height: 52vh;
    overflow: auto;
}

body.principal-page .principal-product-modal__cart-empty {
    display: grid;
    justify-items: center;
    gap: 8px;
    padding: 22px 16px;
    border-radius: 18px;
    background: #f5f8fc;
    text-align: center;
}

body.principal-page .principal-product-modal__cart-empty i {
    font-size: 1.1rem;
    color: var(--principal-accent);
}

body.principal-page .principal-product-modal__cart-empty p {
    margin: 0;
    color: var(--principal-muted);
}

body.principal-page .principal-product-modal__cart-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border-radius: 16px;
    background: #f5f8fc;
}

body.principal-page .principal-product-modal__cart-item-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

body.principal-page .principal-product-modal__cart-item strong {
    display: block;
    color: #10233b;
    font-size: 0.9rem;
}

body.principal-page .principal-product-modal__cart-item small {
    color: var(--principal-muted);
}

body.principal-page .principal-product-modal__cart-item span {
    color: #10233b;
    font-weight: 800;
    white-space: nowrap;
}

body.principal-page .principal-product-modal__cart-item-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
}

body.principal-page .principal-product-modal__cart-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.10);
    color: #17436b;
}

body.principal-page .principal-product-modal__cart-step i {
    font-size: 0.78rem;
    line-height: 1;
}

body.principal-page .principal-product-modal__cart-step--remove {
    background: rgba(239, 68, 68, 0.10);
    color: #b42318;
}

body.principal-page .principal-cart-drawer {
    width: min(100vw, 420px);
    border-left: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
    color: #10233b;
}

body.principal-page .principal-cart-drawer__header {
    padding: 18px 18px 14px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(135deg, rgba(16, 35, 59, 0.98), rgba(15, 118, 110, 0.98));
    color: #ffffff;
}

body.principal-page .principal-cart-drawer__eyebrow {
    display: inline-flex;
    margin-bottom: 4px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.principal-page .principal-cart-drawer__title {
    margin: 0;
    color: #ffffff;
    letter-spacing: -0.03em;
}

body.principal-page .principal-cart-drawer__body {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px;
    min-height: 0;
    overflow: hidden;
}

body.principal-page .principal-cart-drawer__summary {
    display: grid;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 18px;
    border: 1px solid rgba(37, 99, 235, 0.10);
    background: rgba(37, 99, 235, 0.04);
}

body.principal-page .principal-cart-drawer__summary strong {
    display: block;
    color: #10233b;
    font-size: 1rem;
}

body.principal-page .principal-cart-drawer__summary small {
    color: var(--principal-muted);
}

body.principal-page .principal-cart-drawer__subtotal {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

body.principal-page .principal-cart-drawer__subtotal span,
body.principal-page .principal-cart-drawer__subtotal strong {
    color: #10233b;
}

body.principal-page .principal-cart-drawer__items {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    gap: 10px;
    overflow: auto;
    padding-right: 2px;
    padding-bottom: 8px;
}

body.principal-page .principal-cart-drawer__footer {
    flex: 0 0 auto;
    position: sticky;
    bottom: 0;
    padding: 14px 0 2px;
    padding-top: 12px;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(180deg, rgba(246, 250, 255, 0.92), rgba(246, 250, 255, 1));
    backdrop-filter: blur(10px);
}

@media (max-width: 1199.98px) {
    body.principal-page .principal-product-detail__content {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    body.principal-page .principal-product-detail {
        padding: 14px;
        border-radius: 22px;
    }

    body.principal-page .principal-product-modal {
        padding: 12px;
    }

    body.principal-page .principal-product-detail .principal-product-modal__image-wrap {
        width: min(100%, 300px);
        height: min(280px, 80vw);
    }

    body.principal-page .principal-product-modal__dialog {
        max-height: calc(100vh - 24px);
        border-radius: 22px;
    }

    body.principal-page .principal-product-modal__content {
        padding: 14px;
    }

    /* En pantallas pequeñas, cada bloque de información ocupa todo el ancho. */
    body.principal-page .principal-product-detail__information-grid {
        grid-template-columns: 1fr;
    }

    /* En teléfonos, cada característica ocupa una línea completa. */
    body.principal-page .principal-product-detail__additional-items {
        grid-template-columns: 1fr;
    }

    /* Reduce el espacio interno del detalle ampliado en teléfonos. */
    body.principal-page .principal-product-detail__information {
        padding: 14px;
    }
}

body.principal-page .principal-product-tile__code {
    display: inline-flex;
    margin-bottom: 10px;
    padding: 0.28rem 0.62rem;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.10);
    color: #2563eb;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

body.principal-page .principal-category-view__pagination {
    margin-top: 22px;
}

@media (max-width: 991.98px) {
    body.principal-page .principal-category-menu {
        padding: 12px 12px 8px;
    }

body.principal-page .principal-category-menu__button {
        flex-basis: 150px;
        min-width: 150px;
        height: 145px;
    }
}

@media (max-width: 575.98px) {
    body.principal-page .principal-category-menu {
        padding: 12px 12px 8px;
    }

    body.principal-page .principal-category-menu__head {
        margin-bottom: 12px;
    }

    body.principal-page .principal-category-menu__button {
        flex-basis: 142px;
        min-width: 142px;
        height: 145px;
        padding: 8px 9px;
    }

    body.principal-page .principal-category-view {
        padding: 18px;
    }

    body.principal-page .principal-product-tile {
        min-height: auto;
    }

    body.principal-page .principal-product-tile__image-wrap {
        min-height: 210px;
    }

    body.principal-page .principal-product-tile__body {
        padding: 14px;
    }

    body.principal-page .principal-category-view__head {
        flex-direction: column;
        align-items: flex-start;
    }
}

body.principal-page .principal-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

body.principal-page .principal-pagination__pages {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

body.principal-page .principal-pagination__nav,
body.principal-page .principal-pagination__page {
    min-height: 40px;
    padding: 0.5rem 0.9rem;
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: 999px;
    background: #ffffff;
    color: #10233b;
    font-weight: 700;
    transition: transform 150ms ease, border-color 150ms ease, background-color 150ms ease, color 150ms ease;
}

body.principal-page .principal-pagination__nav:hover,
body.principal-page .principal-pagination__page:hover {
    transform: translateY(-1px);
    border-color: rgba(37, 99, 235, 0.25);
    background: #eef4fb;
}

body.principal-page .principal-pagination__page.is-active {
    border-color: transparent;
    background: linear-gradient(135deg, #10233b 0%, #2563eb 100%);
    color: #ffffff;
}

body.principal-page .principal-pagination__nav:disabled {
    cursor: not-allowed;
    opacity: 0.48;
    transform: none;
}

body.principal-page .principal-empty-catalog--compact {
    padding: 24px 18px;
}

body.principal-page .principal-product-tile__footer span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 0.35rem 0.72rem;
    border-radius: 999px;
    background: #f3f7fc;
    color: #10233b;
    font-size: 0.82rem;
    font-weight: 700;
}

body.principal-page .principal-empty-catalog {
    display: grid;
    justify-items: center;
    gap: 10px;
    padding: 36px 20px;
    border: 1px dashed rgba(15, 23, 42, 0.14);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.82);
    text-align: center;
}

body.principal-page .principal-empty-catalog i {
    font-size: 2rem;
    color: var(--principal-accent);
}

body.principal-page .principal-empty-catalog h3 {
    margin: 0;
    color: #10233b;
}

body.principal-page .principal-empty-catalog p {
    margin: 0;
    color: var(--principal-muted);
    max-width: 56ch;
}

body.principal-page .principal-bullet-list {
    display: grid;
    gap: 12px;
    margin-top: 24px;
}

body.principal-page .principal-bullet-list div {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #10233b;
}

body.principal-page .principal-bullet-list i {
    margin-top: 2px;
    color: var(--principal-accent);
}

body.principal-page .principal-mini-card {
    height: 100%;
    padding: 18px;
    border-radius: 20px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: #ffffff;
}

body.principal-page .principal-mini-card i {
    display: inline-flex;
    margin-bottom: 10px;
    color: var(--principal-accent);
    font-size: 1.2rem;
}

body.principal-page .principal-mini-card strong,
body.principal-page .principal-mini-card span {
    display: block;
}

body.principal-page .principal-mini-card strong {
    font-size: 1rem;
    margin-bottom: 6px;
    color: #10233b;
}

body.principal-page .principal-mini-card span {
    color: var(--principal-muted);
    line-height: 1.6;
}

body.principal-page .principal-cta {
    padding: 0 0 88px;
}

body.principal-page .principal-cta__panel {
    padding: 28px;
    background: linear-gradient(135deg, #10233b 0%, #1f3b63 100%);
}

body.principal-page .principal-cta__panel span,
body.principal-page .principal-cta__panel h2,
body.principal-page .principal-cta__panel p {
    color: #ffffff;
}

body.principal-page .principal-cta__panel .btn-light {
    color: #10233b;
}

body.principal-page .principal-cta__panel .btn-outline-light {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.28);
}

body.principal-page .principal-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 18px;
}

body.principal-page .principal-cta__actions--stacked {
    justify-content: flex-end;
}

body.principal-page .principal-footer {
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    background: #10233b;
}

body.principal-page .principal-footer__inner {
    /*display: flex;*/
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    padding: 18px 0;
    color: rgba(255, 255, 255, 0.92);
}

body.principal-page .principal-footer__copy,
body.principal-page .principal-footer__meta {
    display: grid;
    gap: 0.25rem;
    text-align: center;
}

body.principal-page .principal-footer__copy strong {
    color: #ffffff;
}

body.principal-page .auth-page,
body.principal-page .register-page {
    width: 100%;
    min-height: calc(100vh - 82px - 90px);
    display: grid;
    place-items: center;
    padding: 48px 18px;
}

body.principal-page .auth-shell,
body.principal-page .register-shell {
    width: min(100%, 560px);
}

body.principal-page .auth-card,
body.principal-page .register-card {
    padding: 28px;
    border-radius: 28px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 22px 50px rgba(15, 23, 42, 0.10);
}

body.principal-page .auth-card h1,
body.principal-page .register-card h1 {
    margin: 0;
    font-size: clamp(1.8rem, 4vw, 2.4rem);
    letter-spacing: -0.04em;
    color: #10233b;
}

body.principal-page .auth-form,
body.principal-page .register-form {
    display: grid;
    gap: 16px;
    margin-top: 22px;
}

body.principal-page .field {
    display: grid;
    gap: 8px;
}

body.principal-page .field span {
    color: var(--principal-muted);
    font-weight: 600;
}

body.principal-page .field input {
    width: 100%;
    min-height: 48px;
    padding: 0.8rem 1rem;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 14px;
    background: #ffffff;
    color: #10233b;
}

body.principal-page .field input::placeholder {
    color: #6b7f96;
}

body.principal-page .auth-feedback,
body.principal-page .register-feedback {
    min-height: 20px;
    margin: 0;
    color: var(--principal-muted);
}

body.principal-page .auth-feedback[data-state="error"],
body.principal-page .register-feedback[data-state="error"] {
    color: #b91c1c;
}

body.principal-page .auth-button,
body.principal-page .register-button {
    min-height: 48px;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--principal-accent), var(--principal-accent-2));
    color: #ffffff;
    font-weight: 800;
}

body.principal-page .auth-link,
body.principal-page .register-link {
    display: inline-flex;
    margin-top: 18px;
    color: #2563eb;
}

body.principal-page .principal-section__heading span,
body.principal-page .principal-kicker,
body.principal-page .principal-hero__card-label {
    text-shadow: none;
}

body.principal-page .principal-checkout-modal .modal-content {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 28px;
    overflow: hidden;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: 0 24px 80px rgba(15, 23, 42, 0.22);
}

body.principal-page .principal-checkout-modal .modal-header {
    padding: 1.1rem 1.35rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(135deg, #0f172a 0%, #10233b 100%);
    color: #ffffff;
}

body.principal-page .principal-checkout-modal .modal-title {
    color: #ffffff;
    font-weight: 800;
    letter-spacing: -0.03em;
}

body.principal-page .principal-checkout-modal .btn-close {
    filter: invert(1) grayscale(1);
    opacity: 0.9;
}

body.principal-page .principal-checkout-modal__body {
    padding: 1.25rem;
    background:
        radial-gradient(circle at top right, rgba(37, 99, 235, 0.06), transparent 24%),
        radial-gradient(circle at bottom left, rgba(15, 118, 110, 0.06), transparent 28%),
        #f8fbff;
}

body.principal-page .principal-checkout-modal__summary,
body.principal-page .principal-checkout-modal__payment-panel,
body.principal-page .principal-checkout-modal__photo-box {
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.96);
}

body.principal-page .principal-checkout-modal__summary,
body.principal-page .principal-checkout-modal__payment-panel {
    height: 100%;
}

body.principal-page .principal-checkout-modal__summary {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    margin-bottom: 0;
}

body.principal-page .principal-checkout-modal__summary .principal-checkout-modal__hero {
    width: 100%;
}

body.principal-page .principal-checkout-modal__payment-panel {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    margin-bottom: 0;
}

body.principal-page .principal-checkout-modal__hero {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

body.principal-page .principal-checkout-modal__hero-image {
    width: 92px;
    height: 92px;
    flex: 0 0 92px;
    object-fit: cover;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.10);
}

body.principal-page .principal-checkout-modal__hero-copy {
    display: grid;
    gap: 0.22rem;
}

body.principal-page .principal-checkout-modal__hero-copy strong {
    font-size: 1rem;
    letter-spacing: -0.02em;
}

body.principal-page .principal-checkout-modal__hero-copy p,
body.principal-page .principal-checkout-modal__hero-copy small {
    margin: 0;
    color: var(--principal-muted);
}

body.principal-page .principal-checkout-modal__cart-list {
    margin: 0.9rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.55rem;
}

body.principal-page .principal-checkout-modal__cart-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7rem 0.85rem;
    border-radius: 14px;
    background: #f8fbff;
    border: 1px solid rgba(15, 23, 42, 0.06);
}

body.principal-page .principal-checkout-modal__cart-line strong {
    font-size: 0.92rem;
}

body.principal-page .principal-checkout-modal__cart-line span {
    color: var(--principal-muted);
    font-size: 0.86rem;
    white-space: nowrap;
}

body.principal-page .principal-checkout-modal__payment-head {
    margin-bottom: 0.15rem;
    color: #10233b;
}

body.principal-page .principal-checkout-modal__methods {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 0.75rem;
}

/* Panel visible con los datos del método de pago seleccionado. */
body.principal-page .principal-checkout-modal__selected-data {
    display: grid;
    gap: 6px;
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid rgba(37, 99, 235, 0.14);
    border-radius: 14px;
    background: #f8fbff;
}

/* Cada dato bancario se presenta con la etiqueta separada del valor. */
body.principal-page .principal-checkout-modal__selected-data-line {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    color: #475569;
    font-size: 0.88rem;
}

/* Etiquetas como Cédula, Email, Teléfono e Identificador de pago en negrita. */
body.principal-page .principal-checkout-modal__selected-data-line strong {
    color: #10233b;
    font-weight: 800;
}

body.principal-page .principal-checkout-modal__method {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    width: 100%;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f6f9ff 100%);
    color: #10233b;
    text-align: left;
    transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

body.principal-page .principal-checkout-modal__method:hover,
body.principal-page .principal-checkout-modal__method:focus-visible,
body.principal-page .principal-checkout-modal__method.is-selected {
    border-color: rgba(37, 99, 235, 0.34);
    box-shadow: 0 12px 30px rgba(37, 99, 235, 0.12);
    transform: translateY(-1px);
}

body.principal-page .principal-checkout-modal__method.is-selected {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.08), rgba(15, 118, 110, 0.08));
}

body.principal-page .principal-checkout-modal__method-icon,
body.principal-page .principal-checkout-modal__selected-icon {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
}

body.principal-page .principal-checkout-modal__method-icon img,
body.principal-page .principal-checkout-modal__selected-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0.22rem;
}

body.principal-page .principal-checkout-modal__method-icon--fallback i {
    color: #2563eb;
    font-size: 1.2rem;
}

body.principal-page .principal-checkout-modal__method-copy,
body.principal-page .principal-checkout-modal__selected-copy {
    display: grid;
    gap: 0.15rem;
}

body.principal-page .principal-checkout-modal__method-copy strong {
    font-size: 0.92rem;
    letter-spacing: 0.03em;
}

body.principal-page .principal-checkout-modal__method-copy small {
    color: var(--principal-muted);
    font-weight: 700;
}

body.principal-page .principal-checkout-modal__selected {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-top: 0.9rem;
    padding: 0.9rem 1rem;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(15, 118, 110, 0.08), rgba(37, 99, 235, 0.08));
    color: #10233b;
    font-weight: 700;
}

body.principal-page .principal-checkout-modal__selected-copy {
    line-height: 1.2;
}

body.principal-page .btn-copy {
    min-height: 46px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #0f766e, #2563eb);
    color: #ffffff;
    font-weight: 800;
    box-shadow: 0 14px 30px rgba(37, 99, 235, 0.18);
}

body.principal-page .btn-copy:hover,
body.principal-page .btn-copy:focus-visible {
    color: #ffffff;
    filter: brightness(1.04);
}

body.principal-page .principal-checkout-modal__photo-preview {
    margin-top: 0.25rem;
    padding: 0.8rem;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: #f8fbff;
}

body.principal-page .principal-checkout-modal__photo-preview img {
    width: 100%;
    max-height: 180px;
    object-fit: contain;
    display: block;
    border-radius: 14px;
    background: #ffffff;
}

body.principal-page .principal-checkout-modal__photo-box label {
    color: #10233b;
}

body.principal-page .principal-checkout-modal__photo-box input[type="file"] {
    border-radius: 14px;
    border: 1px dashed rgba(37, 99, 235, 0.28);
    background: #f8fbff;
}

body.principal-page .principal-checkout-modal__photo-box small {
    display: inline-block;
    margin-top: 0.45rem;
    color: var(--principal-muted) !important;
}

body.principal-page .principal-checkout-modal .form-label {
    color: #10233b;
    font-weight: 700;
}

body.principal-page .principal-checkout-modal .form-control,
body.principal-page .principal-checkout-modal .form-select,
body.principal-page .principal-checkout-modal textarea {
    color: #10233b;
    background-color: #ffffff;
    border-color: rgba(15, 23, 42, 0.16);
    caret-color: #10233b;
    -webkit-text-fill-color: #10233b;
}

body.principal-page .principal-checkout-modal .form-control::placeholder,
body.principal-page .principal-checkout-modal textarea::placeholder {
    color: #6b7d93;
    opacity: 1;
}

body.principal-page .principal-checkout-modal .form-control:focus,
body.principal-page .principal-checkout-modal .form-select:focus,
body.principal-page .principal-checkout-modal textarea:focus {
    color: #10233b;
    background-color: #ffffff;
    border-color: rgba(37, 99, 235, 0.40);
    box-shadow: 0 0 0 0.18rem rgba(37, 99, 235, 0.14);
}

body.principal-page .principal-checkout-modal .form-control:disabled,
body.principal-page .principal-checkout-modal .form-select:disabled,
body.principal-page .principal-checkout-modal textarea:disabled {
    color: #6b7d93;
    background-color: #f3f7fb;
}

body.principal-page .principal-checkout-modal .modal-footer {
    padding: 1rem 1.25rem 1.2rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    background: #ffffff;
}

body.principal-page .principal-checkout-modal .modal-footer .btn {
    min-width: 160px;
    border-radius: 999px;
    font-weight: 800;
}

@media (max-width: 991.98px) {
    body.principal-page .principal-navbar {
        padding-inline: 12px;
    }

    body.principal-page .principal-navbar .navbar-collapse {
        width: 100%;
        margin-top: 12px;
        padding: 14px;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 20px;
        background: #000000;
        box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
    }

    body.principal-page .principal-hero__panel {
        padding: 24px;
    }

    body.principal-page .principal-cta__actions--stacked {
        justify-content: flex-start;
    }
}

@media (max-width: 767.98px) {
    body.principal-page .principal-brand__copy span {
        display: none;
    }

    body.principal-page .principal-footer__inner {
        flex-direction: column;
        align-items: flex-start;
    }

    body.principal-page .principal-hero,
    body.principal-page .principal-section,
    body.principal-page .principal-cta {
        padding-left: 0;
        padding-right: 0;
    }

    body.principal-page .auth-page,
    body.principal-page .register-page {
        padding: 28px 12px;
    }

    body.principal-page .principal-navbar .navbar-collapse {
        padding-top: 14px;
    }

    body.principal-page .principal-public-nav {
        align-items: stretch;
    }

    body.principal-page .principal-navbar__auth {
        justify-content: stretch;
    }

    body.principal-page .principal-public-nav .nav-link,
    body.principal-page .principal-navbar__auth .nav-link,
    body.principal-page .principal-navbar__logout,
    body.principal-page .principal-navbar__cart,
    body.principal-page .principal-navbar__dashboard {
        width: 100%;
        justify-content: flex-start;
        border: 1px solid rgba(255, 255, 255, 0.10);
    }

    body.principal-page .principal-hero h1 {
        max-width: none;
    }
}


/* =========================================================
   MERCADO LIBRE — ESTILO VISUAL PARA BANNER Y PRODUCTOS
   Solo CSS: no requiere cambios en index.html.twig
   ========================================================= */

/* Fondo y separación de la zona comercial */
body.principal-page .principal-home-banners,
body.principal-page .principal-home-best-sellers {
    border: 0;
}

body.principal-page .principal-home-banners {
    padding: 18px 0 8px;
}

body.principal-page .principal-home-best-sellers {
    padding: 34px 0 34px;
}

/* Ocultar el encabezado "Banner provisional" para que el banner
   quede visualmente como el bloque promocional de Mercado Libre. */
body.principal-page .principal-home-banners .principal-section__heading {
    display: none;
}

/* Contenedores comerciales */
body.principal-page .principal-home-banners > .container,
body.principal-page .principal-home-best-sellers > .container {
    max-width: 1700px;
}

/* =========================
   BANNER
   ========================= */

body.principal-page .principal-promo-carousel {
    position: relative;
    width: 100%;
    min-height: 500px !important;
    height: 500px !important;
    margin-top: -100px !important;
    margin-bottom: -20px ! important;
    margin: 0;
    overflow: visible;
}

body.principal-page .principal-promo-carousel .carousel-inner,
body.principal-page .principal-promo-carousel .carousel-item {
    border-radius: 0;
    overflow: hidden;
}

body.principal-page .principal-promo-carousel .principal-promo-banner {
    position: relative;
    min-height: 500px;
    height: 500px;
    width: 100%;
    padding: 38px 72px;
    border-radius: 0;
    border: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    color: #ffffff;
    background-color: #238b68;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

/* Capa suave para conservar legibilidad sin el aspecto de tarjeta */
body.principal-page .principal-promo-carousel .principal-promo-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(
        90deg,
        rgba(0, 118, 75, .72) 0%,
        rgba(0, 118, 75, .34) 48%,
        rgba(0, 118, 75, .06) 100%
    );
}

/* El contenido queda encima de la capa */
body.principal-page .principal-promo-carousel .principal-promo-banner > * {
    position: relative;
    z-index: 1;
}

body.principal-page .principal-promo-carousel .principal-promo-banner > span {
    margin: 0 0 7px;
    padding: 5px 11px;
    border-radius: 0;
    background: #f36c3d;
    color: #ffffff;
    font-size: 15px;
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
    opacity: 1;
}

body.principal-page .principal-promo-carousel .principal-promo-banner h2,
body.principal-page .principal-promo-carousel .principal-promo-banner h3 {
    margin: 0 0 7px;
    max-width: 620px;
    color: #ffffff;
    font-family: "Inter", Arial, sans-serif;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: .98;
    font-weight: 800;
    letter-spacing: -.035em;
    text-shadow: 0 1px 2px rgba(0,0,0,.12);
}

body.principal-page .principal-promo-carousel .principal-promo-banner p {
    margin: 0 0 16px;
    max-width: 560px;
    color: #ffffff;
    font-size: 1rem;
    line-height: 1.35;
    font-weight: 500;
}

body.principal-page .principal-promo-carousel .principal-promo-banner .btn {
    min-height: 42px;
    padding: 10px 24px;
    border: 0;
    border-radius: 22px;
    background: #ffffff;
    color: #222222;
    font-size: .95rem;
    font-weight: 700;
    box-shadow: none;
}

body.principal-page .principal-promo-carousel .principal-promo-banner .btn:hover {
    background: #f5f5f5;
    color: #222222;
}

/* Flechas como las del carrusel de la referencia */
body.principal-page .principal-promo-carousel .carousel-control-prev,
body.principal-page .principal-promo-carousel .carousel-control-next {
    top: 50%;
    bottom: auto;
    width: 52px;
    height: 52px;
    margin-top: -26px;
    border-radius: 50%;
    opacity: 1;
    background: #ffffff;
    box-shadow: 0 1px 4px rgba(0,0,0,.12);
}

body.principal-page .principal-promo-carousel .carousel-control-prev {
    left: -26px;
}

body.principal-page .principal-promo-carousel .carousel-control-next {
    right: -26px;
}

body.principal-page .principal-promo-carousel .carousel-control-prev-icon,
body.principal-page .principal-promo-carousel .carousel-control-next-icon {
    width: 18px;
    height: 18px;
    filter: none;
    background-size: 18px 18px;
}

/* Indicadores pequeños, abajo al centro */
body.principal-page .principal-promo-carousel .carousel-indicators {
    bottom: 15px;
    margin-bottom: 0;
    gap: 4px;
}

body.principal-page .principal-promo-carousel .carousel-indicators button {
    width: 6px;
    height: 6px;
    margin: 0;
    border: 0;
    border-radius: 50%;
    opacity: .8;
}

body.principal-page .principal-promo-carousel .carousel-indicators .active {
    opacity: 1;
}

/* =========================
   PRODUCTOS — ESTILO ML
   ========================= */

body.principal-page .principal-home-best-sellers .principal-catalog {
    display: block;
    width: 100%;
    margin: 0;
    /*background: #ebebeb;*/
}

body.principal-page .principal-home-best-sellers .principal-category-view {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body.principal-page .principal-home-best-sellers .principal-category-view__head {
    margin: 0 0 14px;
    padding: 0;
    align-items: center;
}

body.principal-page .principal-home-best-sellers .principal-category-view__head h3 {
    color: #333333;
    font-size: 1.55rem;
    line-height: 1.2;
    font-weight: 400;
    letter-spacing: 0;
}

body.principal-page .principal-home-best-sellers .principal-category-view__count {
    color: #666666;
}

/* Cinco productos por fila como en la referencia */
body.principal-page .principal-home-best-sellers .principal-category-products {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
    width: 100%;
    align-items: stretch;
}

/* El límite actual de 220px impediría que las tarjetas ocupen
   correctamente el ancho disponible. */
body.principal-page .principal-home-best-sellers .principal-category-products .principal-product-card {
    width: 100%;
    max-width: none;
    min-width: 0;
}

/* Tarjeta blanca, plana y compacta */
body.principal-page .principal-home-best-sellers .principal-product-tile {
    min-height: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border: 0;
    border-radius: 6px;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(0,0,0,.12);
    transition: box-shadow 160ms ease, transform 160ms ease;
}

body.principal-page .principal-home-best-sellers .principal-product-tile:hover {
    transform: translateY(-2px);
    border-color: transparent;
    box-shadow: 0 4px 12px rgba(0,0,0,.16);
}

/* Área de fotografía */
body.principal-page .principal-home-best-sellers .principal-product-tile__image-wrap {
    height: 185px;
    min-height: 185px;
    aspect-ratio: auto;
    padding: 14px;
    background: #ffffff;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

/* Cuerpo de producto */
body.principal-page .principal-home-best-sellers .principal-product-tile__body {
    min-width: 0;
    padding: 11px 13px 14px;
    gap: 5px;
    background: #ffffff;
}

/* Insignias */
body.principal-page .principal-home-best-sellers .principal-product-tile__signals {
    padding: 8px 13px 0;
    gap: 5px;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__badge {
    min-height: 20px;
    padding: 3px 7px;
    border-radius: 3px;
    background: #ffe600;
    color: #333333;
    font-size: .60rem;
    font-weight: 800;
    box-shadow: none;
}

/* Título */
body.principal-page .principal-home-best-sellers .principal-product-tile__open {
    color: #333333;
    font-size: .88rem;
    line-height: 1.28;
    font-weight: 400;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__open:hover {
    color: #3483fa;
}

/* Descripción */
body.principal-page .principal-home-best-sellers .principal-product-tile__description {
    /* Descripción completa también en los productos destacados del inicio. */
    color: #666666;
    font-size: .72rem;
    line-height: 1.35;
}

/* Atributos */
body.principal-page .principal-home-best-sellers .principal-product-tile__attributes {
    gap: 4px;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__attributes span {
    min-height: 18px;
    padding: 2px 5px;
    border-radius: 3px;
    background: #f5f5f5;
    color: #666666;
    font-size: .60rem;
    font-weight: 600;
}

/* Precio: jerarquía típica de marketplace */
body.principal-page .principal-home-best-sellers .principal-product-tile__pricing {
    gap: 2px;
    margin-top: 3px;
    padding: 4px 0 0;
}

/* Etiqueta de descuento de los productos destacados. */
body.principal-page .principal-home-best-sellers .principal-product-tile__off {
    min-height: 18px;
    padding: 2px 5px;
    border-radius: 3px;
    background: #e6f7ee;
    color: #00a650;
    font-size: .60rem;
    font-weight: 700;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__price-block {
    gap: 2px;
}

/* Precio anterior en los productos destacados. */
body.principal-page .principal-home-best-sellers .principal-product-tile__price-block del {
    color: #999999;
    font-size: .68rem;
}

/* Moneda o banco en los productos destacados. */
body.principal-page .principal-home-best-sellers .principal-product-tile__price-bank {
    color: #333333;
    font-size: 1.16rem;
    line-height: 1.15;
    letter-spacing: -.01em;
    font-weight: 400;
}

/* Precio visible en los productos destacados. */
body.principal-page .principal-home-best-sellers .principal-product-tile__price-value {
    color: #333333;
    font-size: clamp(1.18rem, 1.8vw, 1.48rem);
    line-height: 1.05;
    font-weight: 600;
}

/* Disponibilidad o detalle promocional de productos destacados. */
body.principal-page .principal-home-best-sellers .principal-product-tile__price-block small {
    color: #00a650;
    font-size: .70rem;
    font-weight: 500;
}

/* Calificación */
body.principal-page .principal-home-best-sellers .principal-product-tile__rating-wrap {
    gap: 4px;
    padding-top: 2px;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__stars {
    gap: 2px;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__star {
    color: #d9d9d9;
    font-size: .72rem;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__star.is-active {
    color: #3483fa;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__stars-meta {
    min-height: 18px;
    padding: 2px 5px;
    border-radius: 3px;
    background: #f5f5f5;
    color: #666666;
    font-size: .62rem;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__rating-meta {
    color: #999999;
    font-size: .62rem;
}

/* Pie */
body.principal-page .principal-home-best-sellers .principal-product-tile__footer {
    gap: 4px;
    margin-top: 3px;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__footer span {
    min-height: 20px;
    padding: 2px 5px;
    border-radius: 3px;
    background: #f5f5f5;
    color: #666666;
    font-size: .60rem;
    font-weight: 600;
}

body.principal-page .principal-home-best-sellers .principal-product-tile__footer i {
    color: #00a650;
}

/* =========================
   RESPONSIVE
   ========================= */

@media (max-width: 1199.98px) {
    body.principal-page .principal-home-best-sellers .principal-category-products {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    body.principal-page .principal-promo-carousel .principal-promo-banner {
        min-height: 250px;
        height: 250px;
        padding: 32px 48px;
    }

    body.principal-page .principal-home-best-sellers .principal-category-products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.principal-page .principal-home-best-sellers .principal-product-tile__image-wrap {
        height: 170px;
        min-height: 170px;
    }
}

@media (max-width: 767.98px) {
    body.principal-page .principal-promo-carousel .principal-promo-banner {
        min-height: 220px;
        height: 220px;
        padding: 28px 30px;
    }

    body.principal-page .principal-promo-carousel .principal-promo-banner h2,
    body.principal-page .principal-promo-carousel .principal-promo-banner h3 {
        font-size: 2rem;
    }

    body.principal-page .principal-promo-carousel .carousel-control-prev {
        left: 8px;
    }

    body.principal-page .principal-promo-carousel .carousel-control-next {
        right: 8px;
    }

    body.principal-page .principal-home-best-sellers .principal-category-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }
}

@media (max-width: 575.98px) {
    body.principal-page .principal-home-banners,
    body.principal-page .principal-home-best-sellers {
        padding-left: 0;
        padding-right: 0;
    }

    body.principal-page .principal-promo-carousel .principal-promo-banner {
        min-height: 200px;
        height: 200px;
        padding: 24px 22px;
    }

    body.principal-page .principal-promo-carousel .principal-promo-banner > span {
        font-size: .68rem;
    }

    body.principal-page .principal-promo-carousel .principal-promo-banner h2,
    body.principal-page .principal-promo-carousel .principal-promo-banner h3 {
        max-width: 75%;
        font-size: 1.65rem;
    }

    body.principal-page .principal-promo-carousel .principal-promo-banner p {
        max-width: 70%;
        font-size: .78rem;
    }

    body.principal-page .principal-home-best-sellers .principal-category-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.principal-page .principal-home-best-sellers .principal-product-tile__image-wrap {
        height: 145px;
        min-height: 145px;
        padding: 9px;
    }
}


/* =========================================================
   AJUSTES DEL BANNER PRINCIPAL
   - Ocupa prácticamente todo el ancho disponible.
   - Mantiene el banner pegado a los laterales de la ventana.
   - Flechas visibles dentro de círculos blancos.
   ========================================================= */

body.principal-page .principal-home-banners {
    width: 100%;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.principal-page .principal-home-banners > .container {
    width: 100%;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0;
    margin-right: 0;
}

body.principal-page .principal-home-banners .dc-home-container {
    width: 100%;
    max-width: none !important;
    margin: 0;
    padding: 0;
}

body.principal-page .principal-home-banners .principal-promo-carousel {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

body.principal-page .principal-promo-carousel .carousel-control-prev,
body.principal-page .principal-promo-carousel .carousel-control-next {
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-top: -24px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #ffffff;
    color: #333333;
    opacity: 1;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
    transition: transform .15s ease, box-shadow .15s ease;
}

body.principal-page .principal-promo-carousel .carousel-control-prev {
    left: 18px;
}

body.principal-page .principal-promo-carousel .carousel-control-next {
    right: 18px;
}

body.principal-page .principal-promo-carousel .carousel-control-prev:hover,
body.principal-page .principal-promo-carousel .carousel-control-next:hover {
    color: #333333;
    background: #ffffff;
    transform: scale(1.04);
    box-shadow: 0 3px 10px rgba(0, 0, 0, .22);
}

body.principal-page .principal-promo-carousel .carousel-control-prev i,
body.principal-page .principal-promo-carousel .carousel-control-next i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    line-height: 1;
    color: #333333;
}

body.principal-page .principal-promo-carousel .carousel-control-prev-icon,
body.principal-page .principal-promo-carousel .carousel-control-next-icon {
    display: none !important;
}

@media (max-width: 767.98px) {
    body.principal-page .principal-promo-carousel .carousel-control-prev,
    body.principal-page .principal-promo-carousel .carousel-control-next {
        width: 42px;
        height: 42px;
        margin-top: -21px;
    }

    body.principal-page .principal-promo-carousel .carousel-control-prev {
        left: 10px;
    }

    body.principal-page .principal-promo-carousel .carousel-control-next {
        right: 10px;
    }

    body.principal-page .principal-promo-carousel .carousel-control-prev i,
    body.principal-page .principal-promo-carousel .carousel-control-next i {
        font-size: 1.15rem;
    }
}

/*!****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/style.css ***!
  \****************************************************************************************************************/
/**
* Template Name: NiceAdmin - v2.5.0
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
* Author: BootstrapMade.com
* License: https://bootstrapmade.com/license/
*/

/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/
#ui-id-1 {
    position: absolute;
}


:root {
    scroll-behavior: smooth;
}

body {
    font-family: "Open Sans", sans-serif;
    background: #f6f9ff;
    color: #444444;
}

a {
    color: #4154f1;
    text-decoration: none;
}

a:hover {
    color: #717ff5;
    text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Nunito", sans-serif;
}

/*--------------------------------------------------------------
# Main
--------------------------------------------------------------*/
#main {
    background-color: #ffffff;
    margin-top: 60px;
    padding: 20px 30px;
    transition: all 0.3s;
}

@media (max-width: 1199px) {
    #main {
        padding: 20px;
    }
}

/*--------------------------------------------------------------
# Page Title
--------------------------------------------------------------*/
.pagetitle {
    margin-bottom: 10px;
}

.pagetitle h1 {
    font-size: 24px;
    margin-bottom: 0;
    font-weight: 600;
    color: #012970;
}

/*--------------------------------------------------------------
# Back to top button
--------------------------------------------------------------*/
.back-to-top {
    position: fixed;
    visibility: hidden;
    opacity: 0;
    right: 15px;
    bottom: 15px;
    z-index: 99999;
    background: #4154f1;
    width: 40px;
    height: 40px;
    border-radius: 4px;
    transition: all 0.4s;
}

.back-to-top i {
    font-size: 24px;
    color: #fff;
    line-height: 0;
}

.back-to-top:hover {
    background: #6776f4;
    color: #fff;
}

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

/*--------------------------------------------------------------
# Override some default Bootstrap stylings
--------------------------------------------------------------*/
/* Dropdown menus */
.dropdown-menu {
    border-radius: 4px;
    padding: 10px 0;
    -webkit-animation-name: dropdown-animate;
    animation-name: dropdown-animate;
    -webkit-animation-duration: 0.2s;
    animation-duration: 0.2s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    border: 0;
    box-shadow: 0 5px 30px 0 rgba(82, 63, 105, 0.2);
}

.dropdown-menu .dropdown-header,
.dropdown-menu .dropdown-footer {
    text-align: center;
    font-size: 15px;
    padding: 10px 25px;
}

.dropdown-menu .dropdown-footer a {
    color: #444444;
    text-decoration: underline;
}

.dropdown-menu .dropdown-footer a:hover {
    text-decoration: none;
}

.dropdown-menu .dropdown-divider {
    color: #a5c5fe;
    margin: 0;
}

.dropdown-menu .dropdown-item {
    font-size: 14px;
    padding: 10px 15px;
    transition: 0.3s;
}

.dropdown-menu .dropdown-item i {
    margin-right: 10px;
    font-size: 18px;
    line-height: 0;
}

.dropdown-menu .dropdown-item:hover {
    background-color: #f6f9ff;
}

@media (min-width: 768px) {
    .dropdown-menu-arrow::before {
        content: "";
        width: 13px;
        height: 13px;
        background: #fff;
        position: absolute;
        top: -7px;
        right: 20px;
        transform: rotate(45deg);
        border-top: 1px solid #eaedf1;
        border-left: 1px solid #eaedf1;
    }
}

@-webkit-keyframes dropdown-animate {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }

    0% {
        opacity: 0;
    }
}

@keyframes dropdown-animate {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }

    0% {
        opacity: 0;
    }
}

/* Light Backgrounds */
.bg-primary-light {
    background-color: #cfe2ff;
    border-color: #cfe2ff;
}

.bg-secondary-light {
    background-color: #e2e3e5;
    border-color: #e2e3e5;
}

.bg-success-light {
    background-color: #d1e7dd;
    border-color: #d1e7dd;
}

.bg-danger-light {
    background-color: #f8d7da;
    border-color: #f8d7da;
}

.bg-warning-light {
    background-color: #fff3cd;
    border-color: #fff3cd;
}

.bg-info-light {
    background-color: #cff4fc;
    border-color: #cff4fc;
}

.bg-dark-light {
    background-color: #d3d3d4;
    border-color: #d3d3d4;
}

/* Card */
.card {
    margin-bottom: 30px;
    /*border: none;*/
    /*border-radius: 5px;*/
    /*box-shadow: 0px 0 30px rgba(1, 41, 112, 0.1);*/
}

/*.card-header,*/
.card-footer {
    border-color: #ebeef4;
    background-color: #fff;
    color: #798eb3;
    padding: 15px;
}

.card-title {
    padding: 20px 0 15px 0;
    font-size: 18px;
    font-weight: 500;
    /*color: #012970;*/
    font-family: "Poppins", sans-serif;
}

.card-title span {
    color: #899bbd;
    font-size: 14px;
    font-weight: 400;
}

.card-body {
    padding: 0 20px 20px 20px;
}

.card-img-overlay {
    background-color: rgba(255, 255, 255, 0.6);
}

/* Alerts */
.alert-heading {
    font-weight: 500;
    font-family: "Poppins", sans-serif;
    font-size: 20px;
}

/* Close Button */
.btn-close {
    background-size: 25%;
}

.btn-close:focus {
    outline: 0;
    box-shadow: none;
}

/* Accordion */
.accordion-item {
    border: 1px solid #ebeef4;
}

.accordion-button:focus {
    outline: 0;
    box-shadow: none;
}

.accordion-button:not(.collapsed) {
    color: #012970;
    background-color: #f6f9ff;
}

.accordion-flush .accordion-button {
    padding: 15px 0;
    background: none;
    border: 0;
}

.accordion-flush .accordion-button:not(.collapsed) {
    box-shadow: none;
    color: #4154f1;
}

.accordion-flush .accordion-body {
    padding: 0 0 15px 0;
    color: #3e4f6f;
    font-size: 15px;
}

/* Breadcrumbs */
.breadcrumb {
    font-size: 14px;
    font-family: "Nunito", sans-serif;
    color: #899bbd;
    font-weight: 600;
}

.breadcrumb a {
    color: #899bbd;
    transition: 0.3s;
}

.breadcrumb a:hover {
    color: #51678f;
}

.breadcrumb .breadcrumb-item::before {
    color: #899bbd;
}

.breadcrumb .active {
    color: #51678f;
    font-weight: 600;
}

/* Bordered Tabs */
.nav-tabs-bordered {
    border-bottom: 2px solid #ebeef4;
}

.nav-tabs-bordered .nav-link {
    margin-bottom: -2px;
    border: none;
    color: #2c384e;
}

.nav-tabs-bordered .nav-link:hover,
.nav-tabs-bordered .nav-link:focus {
    color: #4154f1;
}

.nav-tabs-bordered .nav-link.active {
    background-color: #fff;
    color: #4154f1;
    border-bottom: 2px solid #4154f1;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
.logo {
    line-height: 1;
}

@media (min-width: 1200px) {
    .logo {
        width: 280px;
    }
}

.logo img {
    max-height: 50px;
    margin-right: 6px;
}

.logo span {
    font-size: 26px;
    font-weight: 700;
    color: #000; /* Texto negro para el logo */
    font-family: "Nunito", sans-serif;
}

.header {
    transition: all 0.5s;
    z-index: 997;
    height: 60px;
    box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.1);
    background-color: #4e8e37; /* Verde oscuro profesional */
    padding-left: 20px;
}

.header .toggle-sidebar-btn {
    font-size: 32px;
    padding-left: 10px;
    cursor: pointer;
    color: #000; /* Icono negro */
}

.header .search-bar {
    min-width: 360px;
    padding: 0 20px;
    background: #4e8e37; /* Verde muy claro para la barra de búsqueda */
}

@media (max-width: 1199px) {
    .header .search-bar {
        position: fixed;
        top: 50px;
        left: 0;
        right: 0;
        padding: 20px;
        box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1);
        background: #fff; /* Fondo blanco cuando está visible */
        z-index: 9999;
        transition: 0.3s;
        visibility: hidden;
        opacity: 0;
    }

    .header .search-bar-show {
        top: 60px;
        visibility: visible;
        opacity: 1;
    }
}

.header .search-form {
    width: 100%;
}

.header .search-form input {
    border: 1px solid rgba(0, 0, 0, 0.2); /* Borde negro claro */
    font-size: 14px;
    color: #040404; /* Texto gris oscuro en el input */
    padding: 7px 38px 7px 8px;
    border-radius: 3px;
    transition: 0.3s;
    width: 100%;
}

.header .search-form input:focus,
.header .search-form input:hover {
    outline: none;
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); /* Sombra negra clara */
    border: 1px solid rgba(0, 0, 0, 0.3); /* Borde negro claro */
}

.header .search-form button {
    border: 0;
    padding: 0;
    margin-left: -30px;
    background: none;
}

.header .search-form button i {
    color: #333; /* Icono gris oscuro */
}


/*--------------------------------------------------------------
# Header Nav
--------------------------------------------------------------*/
.header-nav ul {
    list-style: none;
}

.header-nav > ul {
    margin: 0;
    padding: 0;
}

.header-nav .nav-icon {
    font-size: 22px;
    color: #333; /* Gris oscuro */
    margin-right: 25px;
    position: relative;
}

.header-nav .nav-profile {
    color: #040404; /* Gris oscuro */
}

.header-nav .nav-profile img {
    max-height: 36px;
}

.header-nav .nav-profile span {
    font-size: 14px;
    font-weight: 600;
}

.header-nav .badge-number {
    position: absolute;
    inset: -2px -5px auto auto;
    font-weight: normal;
    font-size: 12px;
    padding: 3px 6px;
}

.header-nav .notifications {
    inset: 8px -15px auto auto !important;
}

.header-nav .notifications .notification-item {
    display: flex;
    align-items: center;
    padding: 15px 10px;
    background-color: #f9f9f9; /* Fondo gris muy claro */
    transition: 0.3s;
}

.header-nav .notifications .notification-item i {
    margin: 0 20px 0 10px;
    font-size: 24px;
    color: #333; /* Gris oscuro */
}

.header-nav .notifications .notification-item h4 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 5px;
    color: #333; /* Gris oscuro */
}

.header-nav .notifications .notification-item p {
    font-size: 13px;
    margin-bottom: 3px;
    color: #666; /* Gris medio */
}

.header-nav .notifications .notification-item:hover {
    background-color: #eaeaea; /* Gris claro */
}

.header-nav .messages {
    inset: 8px -15px auto auto !important;
}

.header-nav .messages .message-item {
    padding: 15px 10px;
    background-color: #f9f9f9; /* Fondo gris muy claro */
    transition: 0.3s;
}

.header-nav .messages .message-item a {
    display: flex;
}

.header-nav .messages .message-item img {
    margin: 0 20px 0 10px;
    max-height: 40px;
}

.header-nav .messages .message-item h4 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 5px;
    color: #333; /* Gris oscuro */
}

.header-nav .messages .message-item p {
    font-size: 13px;
    margin-bottom: 3px;
    color: #666; /* Gris medio */
}

.header-nav .messages .message-item:hover {
    background-color: #eaeaea; /* Gris claro */
}

.header-nav .profile {
    min-width: 240px;
    padding-bottom: 0;
    top: 8px !important;
}

.header-nav .profile .dropdown-header h6 {
    font-size: 18px;
    margin-bottom: 0;
    font-weight: 600;
    color: #333; /* Gris oscuro */
}

.header-nav .profile .dropdown-header span {
    font-size: 14px;
}

.header-nav .profile .dropdown-item {
    font-size: 14px;
    padding: 10px 15px;
    background-color: #f9f9f9; /* Fondo gris muy claro */
    transition: 0.3s;
}

.header-nav .profile .dropdown-item i {
    margin-right: 10px;
    font-size: 18px;
    line-height: 0;
    color: #333; /* Gris oscuro */
}

.header-nav .profile .dropdown-item:hover {
    background-color: #eaeaea; /* Gris claro */
}


/*--------------------------------------------------------------
# Sidebar
--------------------------------------------------------------*/
.sidebar {
    position: fixed;
    top: 60px;
    left: 0;
    bottom: 0;
    width: 300px;
    z-index: 996;
    transition: all 0.3s;
    padding: 20px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #4b8a2e transparent; /* Verde oscuro para el scrollbar */
    box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.4); /* Sombra negra más pronunciada */
    background-color: #e5f2e5; /* Verde muy claro */
}

@media (max-width: 1199px) {
    .sidebar {
        left: -300px; /* Oculta la barra lateral en pantallas pequeñas */
    }
}

.sidebar::-webkit-scrollbar {
    width: 5px;
    height: 8px;
    background-color: #e5f2e5; /* Verde muy claro para el fondo del scrollbar */
}

.sidebar::-webkit-scrollbar-thumb {
    background-color: #4b8a2e; /* Verde oscuro para el pulgar del scrollbar */
}

@media (min-width: 1200px) {
    #main,
    #footer {
        margin-left: 300px; /* Ajusta el margen del contenido principal para hacer espacio para la barra lateral */
    }
}

@media (max-width: 1199px) {
    .toggle-sidebar .sidebar {
        left: 0; /* Muestra la barra lateral en pantallas pequeñas cuando se activa el toggle */
    }
}

@media (min-width: 1200px) {
    .toggle-sidebar #main,
    .toggle-sidebar #footer {
        margin-left: 0; /* Restablece el margen cuando se oculta la barra lateral */
    }

    .toggle-sidebar .sidebar {
        left: -300px; /* Oculta la barra lateral cuando se activa el toggle en pantallas grandes */
    }
}

/* Sidebar Navigation */
.sidebar-nav {
    padding: 0;
    margin: 0;
    list-style: none;
}

.sidebar-nav li {
    padding: 0;
    margin: 0;
    list-style: none;
}

.sidebar-nav .nav-item {
    margin-bottom: 5px; /* Espacio entre los ítems de navegación */
}

.sidebar-nav .nav-heading {
    font-size: 12px;
    text-transform: uppercase;
    color: #333; /* Gris oscuro */
    padding: 10px;
    font-weight: 600;
}

.sidebar-nav .nav-link {
    display: flex;
    align-items: center;
    padding: 12px 20px;
    color: #2c6b2f; /* Verde oscuro para texto de enlaces */
    background: #d6f0d6; /* Verde muy claro para el fondo de enlaces */
    border-radius: 3px;
    transition: 0.3s;
    font-size: 16px;
    font-weight: bold;
}

.sidebar-nav .nav-link i {
    font-size: 18px;
    margin-right: 10px;
    color: #4b8a2e; /* Verde oscuro para los íconos */
}

.sidebar-nav .nav-link:hover {
    color: #1a1a1a; /* Gris oscuro para el texto de enlaces al pasar el mouse */
    background: #d6f0d6; /* Verde muy claro para el fondo de enlaces al pasar el mouse */
}

.sidebar-nav .nav-content a {
    display: block;
    padding: 10px 20px;
    color: #2c6b2f; /* Verde oscuro para texto de enlaces en contenido de navegación */
    background: #e5f2e5; /* Verde muy claro para el fondo de enlaces en contenido de navegación */
    border-radius: 3px;
    font-size: 14px;
    font-weight: bold;
}

.sidebar-nav .nav-content a i {
    font-size: 6px;
    margin-right: 8px;
    line-height: 0;
    border-radius: 50%;
}


.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    color: #1a1a1a; /* Gris oscuro para texto de enlaces activos y al pasar el mouse */
    background: #d6f0d6; /* Verde muy claro para el fondo de enlaces activos y al pasar el mouse */
}

.sidebar-nav .nav-content a.active i {
    background-color: #d6f0d6; /* Verde muy claro para el fondo de íconos activos */

}


/*--------------------------------------------------------------
# Dashboard
--------------------------------------------------------------*/

.dashboard .filter {
    position: absolute;
    right: 0px;
    top: 15px;
}

.dashboard .filter .icon {
    color: #000;
    padding-right: 20px;
    padding-bottom: 5px;
    transition: 0.3s;
    font-size: 16px;
}

.dashboard .filter .icon:hover,
.dashboard .filter .icon:focus {
    color: #4154f1;
}

.dashboard .filter .dropdown-header {
    padding: 8px 15px;
}

.dashboard .filter .dropdown-header h6 {
    text-transform: uppercase;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #aab7cf;
    margin-bottom: 0;
    padding: 0;
}

.dashboard .filter .dropdown-item {
    padding: 8px 15px;
}

/* Info Cards */
.dashboard .info-card {
    padding-bottom: 10px;
}

.dashboard .info-card h6 {
    font-size: 28px;
    color: #012970;
    font-weight: 700;
    margin: 0;
    padding: 0;
}

.dashboard .card-icon {
    font-size: 32px;
    line-height: 0;
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    flex-grow: 0;
}

.dashboard .sales-card .card-icon {
    color: #4154f1;
    background: #f6f6fe;
}

.dashboard .revenue-card .card-icon {
    color: #2eca6a;
    background: #e0f8e9;
}

.dashboard .customers-card .card-icon {
    color: #ff771d;
    background: #ffecdf;
}

/* Activity */
.dashboard .activity {
    font-size: 14px;
}

.dashboard .activity .activity-item .activite-label {
    color: #888;
    position: relative;
    flex-shrink: 0;
    flex-grow: 0;
    min-width: 64px;
}

.dashboard .activity .activity-item .activite-label::before {
    content: "";
    position: absolute;
    right: -11px;
    width: 4px;
    top: 0;
    bottom: 0;
    background-color: #eceefe;
}

.dashboard .activity .activity-item .activity-badge {
    margin-top: 3px;
    z-index: 1;
    font-size: 11px;
    line-height: 0;
    border-radius: 50%;
    flex-shrink: 0;
    border: 3px solid #fff;
    flex-grow: 0;
}

.dashboard .activity .activity-item .activity-content {
    padding-left: 10px;
    padding-bottom: 20px;
}

.dashboard .activity .activity-item:first-child .activite-label::before {
    top: 5px;
}

.dashboard .activity .activity-item:last-child .activity-content {
    padding-bottom: 0;
}

/* News & Updates */
.dashboard .news .post-item + .post-item {
    margin-top: 15px;
}

.dashboard .news img {
    width: 80px;
    float: left;
    border-radius: 5px;
}

.dashboard .news h4 {
    font-size: 15px;
    margin-left: 95px;
    font-weight: bold;
    margin-bottom: 5px;
}

.dashboard .news h4 a {
    color: #012970;
    transition: 0.3s;
}

.dashboard .news h4 a:hover {
    color: #4154f1;
}

.dashboard .news p {
    font-size: 14px;
    color: #777777;
    margin-left: 95px;
}

/* Recent Sales */
.dashboard .recent-sales {
    font-size: 14px;
}

.dashboard .recent-sales .table thead {
    background: #f6f6fe;
}

.dashboard .recent-sales .table thead th {
    border: 0;
}

.dashboard .recent-sales .dataTable-top {
    padding: 0 0 10px 0;
}

.dashboard .recent-sales .dataTable-bottom {
    padding: 10px 0 0 0;
}

/* Top Selling */
.dashboard .top-selling {
    font-size: 14px;
}

.dashboard .top-selling .table thead {
    background: #f6f6fe;
}

.dashboard .top-selling .table thead th {
    border: 0;
}

.dashboard .top-selling .table tbody td {
    vertical-align: middle;
}

.dashboard .top-selling img {
    border-radius: 5px;
    max-width: 60px;
}

/*--------------------------------------------------------------
# Icons list page
--------------------------------------------------------------*/
.iconslist {
    display: grid;
    max-width: 100%;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1.25rem;
    padding-top: 15px;
}

.iconslist .icon {
    background-color: #fff;
    border-radius: 0.25rem;
    text-align: center;
    color: #012970;
    padding: 15px 0;
}

.iconslist i {
    margin: 0.25rem;
    font-size: 2.5rem;
}

.iconslist .label {
    font-family: var(--bs-font-monospace);
    display: inline-block;
    width: 100%;
    overflow: hidden;
    padding: 0.25rem;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #666;
}

/*--------------------------------------------------------------
# Profie Page
--------------------------------------------------------------*/
.profile .profile-card img {
    max-width: 120px;
}

.profile .profile-card h2 {
    font-size: 24px;
    font-weight: 700;
    color: #2c384e;
    margin: 10px 0 0 0;
}

.profile .profile-card h3 {
    font-size: 18px;
}

.profile .profile-card .social-links a {
    font-size: 20px;
    display: inline-block;
    color: rgba(1, 41, 112, 0.5);
    line-height: 0;
    margin-right: 10px;
    transition: 0.3s;
}

.profile .profile-card .social-links a:hover {
    color: #012970;
}

.profile .profile-overview .row {
    margin-bottom: 20px;
    font-size: 15px;
}

.profile .profile-overview .card-title {
    color: #012970;
}

.profile .profile-overview .label {
    font-weight: 600;
    color: rgba(1, 41, 112, 0.6);
}

.profile .profile-edit label {
    font-weight: 600;
    color: rgba(1, 41, 112, 0.6);
}

.profile .profile-edit img {
    max-width: 120px;
}

/*--------------------------------------------------------------
# F.A.Q Page
--------------------------------------------------------------*/
.faq .basic h6 {
    font-size: 18px;
    font-weight: 600;
    color: #4154f1;
}

.faq .basic p {
    color: #6980aa;
}

/*--------------------------------------------------------------
# Contact
--------------------------------------------------------------*/
.contact .info-box {
    padding: 28px 30px;
}

.contact .info-box i {
    font-size: 38px;
    line-height: 0;
    color: #4154f1;
}

.contact .info-box h3 {
    font-size: 20px;
    color: #012970;
    font-weight: 700;
    margin: 20px 0 10px 0;
}

.contact .info-box p {
    padding: 0;
    line-height: 24px;
    font-size: 14px;
    margin-bottom: 0;
}

.contact .php-email-form .error-message {
    display: none;
    color: #fff;
    background: #ed3c0d;
    text-align: left;
    padding: 15px;
    margin-bottom: 24px;
    font-weight: 600;
}

.contact .php-email-form .sent-message {
    display: none;
    color: #fff;
    background: #18d26e;
    text-align: center;
    padding: 15px;
    margin-bottom: 24px;
    font-weight: 600;
}

.contact .php-email-form .loading {
    display: none;
    background: #fff;
    text-align: center;
    padding: 15px;
    margin-bottom: 24px;
}

.contact .php-email-form .loading:before {
    content: "";
    display: inline-block;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    margin: 0 10px -6px 0;
    border: 3px solid #18d26e;
    border-top-color: #eee;
    -webkit-animation: animate-loading 1s linear infinite;
    animation: animate-loading 1s linear infinite;
}

.contact .php-email-form input,
.contact .php-email-form textarea {
    border-radius: 0;
    box-shadow: none;
    font-size: 14px;
    border-radius: 0;
}

.contact .php-email-form input:focus,
.contact .php-email-form textarea:focus {
    border-color: #4154f1;
}

.contact .php-email-form input {
    padding: 10px 15px;
}

.contact .php-email-form textarea {
    padding: 12px 15px;
}

.contact .php-email-form button[type=submit] {
    background: #4154f1;
    border: 0;
    padding: 10px 30px;
    color: #fff;
    transition: 0.4s;
    border-radius: 4px;
}

.contact .php-email-form button[type=submit]:hover {
    background: #5969f3;
}

@-webkit-keyframes animate-loading {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes animate-loading {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/*--------------------------------------------------------------
# Error 404
--------------------------------------------------------------*/
.error-404 {
    padding: 30px;
}

.error-404 h1 {
    font-size: 180px;
    font-weight: 700;
    color: #4154f1;
    margin-bottom: 0;
    line-height: 150px;
}

.error-404 h2 {
    font-size: 24px;
    font-weight: 700;
    color: #012970;
    margin-bottom: 30px;
}

.error-404 .btn {
    background: #51678f;
    color: #fff;
    padding: 8px 30px;
}

.error-404 .btn:hover {
    background: #3e4f6f;
}

@media (min-width: 992px) {
    .error-404 img {
        max-width: 50%;
    }
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.footer {
    padding: 20px 0;
    font-size: 14px;
    transition: all 0.3s;
    border-top: 1px solid #cddfff;
}

.footer .copyright {
    text-align: center;
    color: #012970;
}

.footer .credits {
    padding-top: 5px;
    text-align: center;
    font-size: 13px;
    color: #012970;
}

/* --------------------------------------------------------------
# Navbar + Sidebar Refresh
-------------------------------------------------------------- */
:root {
    --header-height: 64px;
    --sidebar-width: 300px;
    --brand-900: #0f2f4a;
    --brand-800: #174264;
    --brand-700: #2f6b96;
    --brand-100: #ecf4fb;
    --surface-0: #ffffff;
    --surface-1: #f4f7fb;
    --text-900: #1f2d3d;
    --text-700: #4d5f73;
    --text-on-brand: #f4f9ff;
}

body {
    background: linear-gradient(180deg, #f6f9ff 0%, #f1f5fa 100%);
}

#main {
    margin-top: var(--header-height);
}

.header {
    height: var(--header-height);
    padding-left: 16px;
    padding-right: 16px;
    background: linear-gradient(120deg, var(--brand-900) 0%, var(--brand-700) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: 0 10px 26px rgba(10, 31, 52, 0.28);
}

.logo img {
    border-radius: 10px;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.24);
}

.logo span {
    color: var(--text-on-brand);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.header .toggle-sidebar-btn {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    font-size: 26px;
    margin-left: 8px;
    border-radius: 10px;
    color: var(--text-on-brand);
    background: rgba(255, 255, 255, 0.14);
    transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.header .toggle-sidebar-btn:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.22);
    box-shadow: 0 8px 14px rgba(0, 0, 0, 0.16);
}

.header .search-bar {
    min-width: 340px;
    max-width: 460px;
    background: transparent;
}

.header .search-form input {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.42);
    border-radius: 10px;
    color: #1b334a;
}

.header .search-form input::placeholder {
    color: #667a8f;
}

.header .search-form input:focus,
.header .search-form input:hover {
    background: #fff;
    border-color: rgba(56, 106, 148, 0.68);
    box-shadow: 0 0 0 3px rgba(109, 151, 186, 0.3);
}

.header .search-form button i {
    color: #274866;
}

.header-nav .nav-icon {
    width: 38px;
    height: 38px;
    margin-right: 0;
    display: inline-grid;
    place-items: center;
    border-radius: 10px;
    color: var(--text-on-brand);
    background: rgba(255, 255, 255, 0.12);
    transition: all 0.2s ease;
}

.header-nav .nav-link:hover .nav-icon,
.header-nav .nav-link:focus .nav-icon {
    background: rgba(255, 255, 255, 0.22);
    transform: translateY(-1px);
}

.header-nav .nav-profile {
    color: var(--text-on-brand);
    padding: 6px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.24);
    transition: all 0.2s ease;
}

.header-nav .nav-profile:hover {
    background: rgba(255, 255, 255, 0.2);
}

.header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.76);
}

.header-nav .profile {
    border-radius: 14px;
    border: 1px solid #d9e4f0;
    box-shadow: 0 14px 28px rgba(19, 39, 61, 0.16);
}

.header-nav .profile .dropdown-item {
    border-radius: 8px;
    margin: 2px 8px;
}

.header-nav .profile .dropdown-item i {
    color: #2d4f6f;
}

.header-nav .profile .dropdown-item:hover {
    background-color: #ebf3fb;
}

.sidebar {
    top: var(--header-height);
    width: var(--sidebar-width);
    padding: 16px 14px 24px;
    background: linear-gradient(180deg, #f2f6fb 0%, #e9f0f8 52%, #e1eaf5 100%);
    border-right: 1px solid #c8d6e6;
    box-shadow: 8px 0 24px rgba(21, 43, 67, 0.16);
    scrollbar-color: #7390ad transparent;
}

.sidebar::-webkit-scrollbar-thumb {
    background-color: #7390ad;
    border-radius: 999px;
}

@media (max-width: 1199px) {
    .sidebar {
        left: calc(var(--sidebar-width) * -1);
    }
}

@media (min-width: 1200px) {
    #main,
    #footer {
        margin-left: var(--sidebar-width);
    }
}

@media (min-width: 1200px) {
    .toggle-sidebar #main,
    .toggle-sidebar #footer {
        margin-left: 0;
    }

    .toggle-sidebar .sidebar {
        left: calc(var(--sidebar-width) * -1);
    }
}

.sidebar-nav .nav-item {
    margin-bottom: 8px;
}

.sidebar-nav .nav-heading {
    color: #4c6076;
    letter-spacing: 0.08em;
}

.sidebar-nav .nav-link {
    gap: 8px;
    padding: 11px 14px;
    border-radius: 12px;
    border: 1px solid rgba(128, 148, 172, 0.34);
    background: rgba(255, 255, 255, 0.56);
    color: var(--text-900);
    font-size: 15px;
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(21, 43, 68, 0.08);
    transition: all 0.2s ease;
}

.sidebar-nav .nav-link i {
    color: var(--brand-700);
}

.sidebar-nav .nav-link:hover {
    color: #10273d;
    background: #f8fbff;
    border-color: rgba(86, 123, 159, 0.44);
    transform: translateX(2px);
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #fff;
    background: linear-gradient(135deg, var(--brand-800), var(--brand-700));
    border-color: rgba(33, 79, 118, 0.92);
    box-shadow: 0 8px 16px rgba(18, 50, 77, 0.22);
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #fff;
}

.sidebar-nav .nav-link .bi-chevron-down {
    margin-left: auto;
    transition: transform 0.2s ease;
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) .bi-chevron-down {
    transform: rotate(180deg);
}

.sidebar-nav .nav-content {
    padding-top: 6px;
}

.sidebar-nav .nav-content a {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 2px 0;
    padding: 9px 12px 9px 16px;
    border-radius: 10px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-700);
    font-size: 14px;
    font-weight: 600;
    transition: all 0.2s ease;
}

.sidebar-nav .nav-content a i {
    margin-right: 0;
    font-size: 7px;
    color: var(--brand-700);
}

.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    color: #10273d;
    background: #f2f7fd;
    border-color: rgba(94, 128, 160, 0.32);
    transform: translateX(2px);
}

.sidebar-nav .nav-content a.active {
    color: #fff;
    background: linear-gradient(135deg, #25537b, #3f739f);
    border-color: rgba(32, 73, 110, 0.9);
    box-shadow: 0 8px 14px rgba(22, 56, 86, 0.2);
}

.sidebar-nav .nav-content a.active i {
    color: #fff;
}

/* --------------------------------------------------------------
# Professional UI Polish (Navbar, Sidebar, Buttons)
-------------------------------------------------------------- */
:root {
    --ui-brand-950: #2f1e16;
    --ui-brand-900: #4a2f22;
    --ui-brand-800: #6b412d;
    --ui-brand-700: #865338;
    --ui-accent-600: #b06d3b;
    --ui-accent-500: #c8844f;
    --ui-bg-app: #f6efe7;
    --ui-bg-surface: #ffffff;
    --ui-border-soft: #e3d4c5;
    --ui-text-900: #3b2b21;
    --ui-text-700: #6b5748;
    --ui-text-on-dark: #fff5eb;
}

body {
    background: linear-gradient(180deg, #fbf6ef 0%, var(--ui-bg-app) 100%);
    color: var(--ui-text-900);
}

#main {
    border-radius: 16px 0 0 0;
}

.header {
    background: linear-gradient(110deg, var(--ui-brand-950) 0%, var(--ui-brand-800) 100%);
    box-shadow: 0 10px 26px rgba(34, 20, 13, 0.36);
}

.logo span {
    color: var(--ui-text-on-dark);
    font-weight: 700;
    letter-spacing: 0.01em;
}

.header .toggle-sidebar-btn {
    color: var(--ui-text-on-dark);
    background: rgba(255, 250, 241, 0.14);
}

.header .toggle-sidebar-btn:hover {
    background: rgba(255, 250, 241, 0.24);
}

.header .search-form input {
    border-radius: 12px;
    background: #fffaf3;
    border-color: rgba(177, 132, 88, 0.52);
    color: #4b3628;
}

.header .search-form input::placeholder {
    color: #8e735d;
}

.header-nav .nav-icon {
    color: var(--ui-text-on-dark);
    background: rgba(255, 250, 241, 0.14);
}

.header-nav .nav-profile {
    color: var(--ui-text-on-dark);
    background: rgba(255, 250, 241, 0.14);
    border-color: rgba(255, 250, 241, 0.28);
}

.sidebar {
    background: linear-gradient(180deg, #3a251a 0%, #503223 58%, #65412d 100%);
    border-right: 1px solid rgba(255, 245, 232, 0.16);
    box-shadow: 10px 0 26px rgba(36, 22, 15, 0.34);
}

.sidebar-nav .nav-heading {
    color: rgba(255, 241, 224, 0.86);
}

.sidebar-nav .nav-link {
    border: 1px solid rgba(255, 245, 232, 0.22);
    background: rgba(255, 245, 232, 0.1);
    color: var(--ui-text-on-dark);
    box-shadow: none;
}

.sidebar-nav .nav-link i {
    color: rgba(255, 220, 182, 0.96);
}

.sidebar-nav .nav-link:hover {
    color: #ffffff;
    background: rgba(255, 245, 232, 0.2);
    border-color: rgba(255, 245, 232, 0.38);
    transform: translateX(2px);
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, var(--ui-accent-600), var(--ui-accent-500));
    border-color: rgba(145, 88, 47, 0.95);
    box-shadow: 0 10px 18px rgba(72, 43, 23, 0.3);
}

.sidebar-nav .nav-content a {
    color: rgba(255, 241, 224, 0.94);
    border: 1px solid transparent;
    background: transparent;
}

.sidebar-nav .nav-content a i {
    color: rgba(255, 216, 167, 0.96);
}

.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    color: #ffffff;
    background: rgba(255, 245, 232, 0.2);
    border-color: rgba(255, 245, 232, 0.38);
}

.sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, var(--ui-accent-600), var(--ui-accent-500));
    border-color: rgba(145, 88, 47, 0.95);
    box-shadow: 0 10px 18px rgba(72, 43, 23, 0.3);
}


/* --------------------------------------------------------------
   ENTERPRISE MINIMAL - FINAL (Professional, sober, low color)
-------------------------------------------------------------- */
body #header.header,
body .header {
    background: #edf5fb !important;
    border-bottom: 1px solid #cfe0ec !important;
    box-shadow: 0 2px 8px rgba(20, 49, 72, 0.1) !important;
}

body #header .logo span,
body .header .logo span,
body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .header-nav .nav-icon {
    color: #000000 !important;
}

body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .bi.bi-list.toggle-sidebar-btn,
body .header-nav .nav-icon {
    border-radius: 2px !important;
    border: 1px solid #c7d8e5 !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile {
    border-radius: 2px !important;
    background: #ffffff !important;
    border: 1px solid #c7d8e5 !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile img {
    border-radius: 2px !important;
}

body .header-nav .dropdown-menu.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile.show {
    border-radius: 2px !important;
    background: #ffffff !important;
    border: 1px solid #cdddea !important;
    box-shadow: 0 8px 18px rgba(20, 49, 72, 0.14) !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 2px !important;
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #eef5fb !important;
}

body .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #cdddea !important;
    border-left: 1px solid #cdddea !important;
}

body #sidebar.sidebar,
body .sidebar {
    background: #2c4d63 !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 4px 0 14px rgba(16, 40, 60, 0.2) !important;
}

body .sidebar-nav .nav-heading {
    color: rgba(226, 239, 248, 0.72) !important;
}

body .sidebar-nav .nav-link {
    border-radius: 2px !important;
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body .sidebar-nav .nav-link i {
    color: #ffffff !important;
}

body .sidebar-nav .nav-link:hover {
    background: #365f7b !important;
    border-color: rgba(255, 255, 255, 0.16) !important;
    transform: none !important;
}

body .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar-nav .nav-link.active {
    background: #4f87ad !important;
    border-color: #4f87ad !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body .sidebar-nav .nav-content a {
    border-radius: 2px !important;
    color: #ffffff !important;
}

body .sidebar-nav .nav-content a:hover {
    background: #3a6784 !important;
    border-color: transparent !important;
}

body .sidebar-nav .nav-content a.active {
    background: rgba(96, 154, 193, 0.28) !important;
    border-color: rgba(96, 154, 193, 0.5) !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   UI LOCK - Professional Final Layer (EOF)
-------------------------------------------------------------- */
#header.header,
body .header {
    background: linear-gradient(180deg, #f7f5f2 0%, #f1ece5 100%) !important;
    border-bottom: 1px solid #d7ccbf !important;
    box-shadow: 0 6px 16px rgba(60, 46, 32, 0.14) !important;
}

#header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .bi.bi-list.toggle-sidebar-btn {
    border-radius: 3px !important;
    background: #f8f4ee !important;
    border: 1px solid #cfc2b3 !important;
    color: #2f2a25 !important;
    box-shadow: none !important;
}

#header .toggle-sidebar-btn:hover,
body .header .toggle-sidebar-btn:hover,
body .bi.bi-list.toggle-sidebar-btn:hover {
    background: #efe7dd !important;
    border-color: #bea98f !important;
    color: #3a312a !important;
}

body .header-nav .nav-icon {
    border-radius: 3px !important;
    background: #f8f4ee !important;
    border: 1px solid #d5c9bc !important;
    color: #2f2a25 !important;
}

body .header-nav .nav-profile {
    border-radius: 3px !important;
    background: #f8f3ec !important;
    border: 1px solid #d8ccbf !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile img {
    border-radius: 3px !important;
}

body .header-nav .dropdown-menu.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile.show {
    border-radius: 3px !important;
    background: #fffdfb !important;
    border: 1px solid #d9ccbe !important;
    box-shadow: 0 12px 24px rgba(52, 39, 27, 0.16) !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 2px !important;
    color: #3a3129 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #7a5a3d !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #ede4d9 !important;
}

body .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #fffdfb !important;
    border-top: 1px solid #d9ccbe !important;
    border-left: 1px solid #d9ccbe !important;
}

#sidebar.sidebar,
body .sidebar {
    background: linear-gradient(180deg, #52473d 0%, #43392f 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 8px 0 20px rgba(28, 21, 15, 0.22) !important;
}

body .sidebar-nav .nav-heading {
    color: rgba(244, 239, 233, 0.72) !important;
}

body .sidebar-nav .nav-link {
    border-radius: 3px !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.13) !important;
    color: #f4efe9 !important;
    box-shadow: none !important;
}

body .sidebar-nav .nav-link i {
    color: rgba(244, 239, 233, 0.9) !important;
}

body .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    transform: none !important;
}

body .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar-nav .nav-link.active {
    background: linear-gradient(135deg, #8c6642, #7a5a3d) !important;
    border-color: rgba(170, 129, 93, 0.95) !important;
    color: #fff !important;
    box-shadow: 0 8px 14px rgba(44, 32, 22, 0.22) !important;
}

body .sidebar-nav .nav-content a {
    border-radius: 2px !important;
    color: rgba(247, 242, 236, 0.94) !important;
}

body .sidebar-nav .nav-content a:hover {
    background: rgba(255, 255, 255, 0.11) !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
}

body .sidebar-nav .nav-content a.active {
    background: rgba(206, 173, 140, 0.2) !important;
    border-color: rgba(206, 173, 140, 0.36) !important;
    color: #fff !important;
}

/* --------------------------------------------------------------
   FINAL PROFESSIONAL THEME - NAVBAR + SIDEBAR
   (suave, corporativo, sin redondeos excesivos)
-------------------------------------------------------------- */
:root {
    --ui-nav-bg-1: #f7f5f2;
    --ui-nav-bg-2: #f1ece5;
    --ui-nav-border: #d7ccbf;
    --ui-nav-text: #2f2a25;
    --ui-nav-muted: #6b6259;
    --ui-nav-accent: #7a5a3d;
    --ui-nav-accent-soft: #ede4d9;

    --ui-side-bg-1: #52473d;
    --ui-side-bg-2: #43392f;
    --ui-side-border: rgba(255, 255, 255, 0.12);
    --ui-side-text: #f4efe9;
    --ui-side-muted: rgba(244, 239, 233, 0.72);
    --ui-side-item: rgba(255, 255, 255, 0.06);
    --ui-side-item-hover: rgba(255, 255, 255, 0.12);
    --ui-side-active-1: #8c6642;
    --ui-side-active-2: #7a5a3d;
}

#header.header,
.header {
    background: linear-gradient(180deg, var(--ui-nav-bg-1) 0%, var(--ui-nav-bg-2) 100%) !important;
    border-bottom: 1px solid var(--ui-nav-border) !important;
    box-shadow: 0 6px 16px rgba(60, 46, 32, 0.14) !important;
}

#header .logo span,
.header .logo span {
    color: var(--ui-nav-text) !important;
    letter-spacing: 0.2px;
}

#header .toggle-sidebar-btn,
.header .toggle-sidebar-btn {
    color: var(--ui-nav-text) !important;
    border: 1px solid #cfc2b3 !important;
    background: #f8f4ee !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

#header .toggle-sidebar-btn:hover,
.header .toggle-sidebar-btn:hover {
    background: #efe7dd !important;
    border-color: #bea98f !important;
    color: #3a312a !important;
}

#header .search-form input,
.header .search-form input {
    background: #fbfaf8 !important;
    border: 1px solid #d8cec2 !important;
    color: var(--ui-nav-text) !important;
    border-radius: 3px !important;
}

#header .search-form button,
.header .search-form button {
    color: var(--ui-nav-muted) !important;
}

.header-nav .nav-icon {
    color: var(--ui-nav-text) !important;
    border: 1px solid #d5c9bc !important;
    background: #f8f4ee !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

.header-nav .nav-icon:hover,
.header-nav .nav-icon.show {
    background: #eee5da !important;
    border-color: #bea98f !important;
    color: #3a312a !important;
}

.header-nav .nav-profile {
    background: #f8f3ec !important;
    border: 1px solid #d8ccbf !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

.header-nav .nav-profile span {
    color: var(--ui-nav-text) !important;
}

.header-nav .nav-profile img {
    border-radius: 3px !important;
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show,
.header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile {
    background: #fffdfb !important;
    border: 1px solid #d9ccbe !important;
    border-radius: 3px !important;
    box-shadow: 0 12px 24px rgba(52, 39, 27, 0.16) !important;
    padding-top: 0.3rem !important;
    padding-bottom: 0.3rem !important;
}

.header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #2f2a25 !important;
}

.header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6f675f !important;
}

.header-nav .dropdown-menu.profile .dropdown-divider {
    border-top-color: #e8ddd2 !important;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    color: #3a3129 !important;
    border-radius: 2px !important;
    margin: 1px 4px !important;
    padding-top: 0.48rem !important;
    padding-bottom: 0.48rem !important;
}

.header-nav .dropdown-menu.profile .dropdown-item i {
    color: #7a5a3d !important;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: var(--ui-nav-accent-soft) !important;
    color: #2c241e !important;
}

.header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #fffdfb !important;
    border-top: 1px solid #d9ccbe !important;
    border-left: 1px solid #d9ccbe !important;
}

#sidebar.sidebar,
.sidebar {
    background: linear-gradient(180deg, var(--ui-side-bg-1) 0%, var(--ui-side-bg-2) 100%) !important;
    border-right: 1px solid var(--ui-side-border) !important;
    box-shadow: 8px 0 20px rgba(28, 21, 15, 0.22) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: var(--ui-side-muted) !important;
    letter-spacing: 0.35px;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    color: var(--ui-side-text) !important;
    background: var(--ui-side-item) !important;
    border: 1px solid rgba(255, 255, 255, 0.13) !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link i {
    color: rgba(244, 239, 233, 0.9) !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: var(--ui-side-item-hover) !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    color: #ffffff !important;
    transform: none !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
#sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link.active {
    background: linear-gradient(135deg, var(--ui-side-active-1), var(--ui-side-active-2)) !important;
    border-color: rgba(170, 129, 93, 0.95) !important;
    color: #fff !important;
    box-shadow: 0 8px 14px rgba(44, 32, 22, 0.22) !important;
}

#sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a {
    color: rgba(247, 242, 236, 0.94) !important;
    border-radius: 2px !important;
    border: 1px solid transparent !important;
}

#sidebar .sidebar-nav .nav-content a i,
.sidebar .sidebar-nav .nav-content a i {
    color: #d7bfa5 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a:hover {
    background: rgba(255, 255, 255, 0.11) !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
    color: #fff !important;
}

#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a.active {
    background: rgba(206, 173, 140, 0.2) !important;
    border-color: rgba(206, 173, 140, 0.36) !important;
    color: #fff !important;
}

/* --------------------------------------------------------------
   Ultimate Soft Professional Theme
   (highest-priority visual override)
-------------------------------------------------------------- */
body #header.header {
    background: linear-gradient(125deg, #4b5865 0%, #5d6d7d 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 0 8px 18px rgba(34, 45, 56, 0.22) !important;
}

body #header .logo span,
body #header .header-nav .nav-profile,
body #header .header-nav .nav-icon,
body #header .toggle-sidebar-btn {
    color: #eef3f8 !important;
}

body #header .toggle-sidebar-btn {
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.26) !important;
    border-radius: 4px !important;
}

body #header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.38) !important;
}

body #header .header-nav .nav-icon {
    background: rgba(255, 255, 255, 0.1) !important;
    border-radius: 4px !important;
}

body #header .header-nav .nav-profile {
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: 4px !important;
}

body #header .header-nav .nav-profile img {
    border-radius: 4px !important;
}

body #header .search-form input {
    background: #f9fbfd !important;
    border: 1px solid #b5c1cd !important;
    color: #2c3e50 !important;
    border-radius: 4px !important;
}

body #header .search-form input::placeholder {
    color: #728395 !important;
}

body #header .header-nav .dropdown-menu.profile,
body #header .header-nav .dropdown-menu.profile.show {
    background: #ffffff !important;
    border: 1px solid #d6dee7 !important;
    border-radius: 4px !important;
    box-shadow: 0 14px 30px rgba(30, 41, 53, 0.18) !important;
    padding: 8px !important;
    min-width: 275px !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #2d4258 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6f8296 !important;
    font-size: 12px !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-item {
    color: #304860 !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    font-weight: 600 !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #687f98 !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f2f6fa !important;
}

body #header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d6dee7 !important;
    border-left: 1px solid #d6dee7 !important;
}

body #sidebar.sidebar {
    background: linear-gradient(180deg, #566476 0%, #64758a 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.16) !important;
    box-shadow: 8px 0 16px rgba(36, 49, 63, 0.18) !important;
}

body #sidebar .sidebar-nav .nav-heading {
    color: rgba(238, 243, 248, 0.85) !important;
}

body #sidebar .sidebar-nav .nav-link {
    color: #eef3f8 !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 4px !important;
}

body #sidebar .sidebar-nav .nav-link i {
    color: #d8e3ee !important;
}

body #sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.32) !important;
}

body #sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, #7b8fa6, #8ea3ba) !important;
    border-color: rgba(152, 201, 232, 0.92) !important;
    box-shadow: 0 8px 14px rgba(52, 68, 85, 0.18) !important;
}

body #sidebar .sidebar-nav .nav-content a {
    color: rgba(235, 241, 248, 0.95) !important;
    border-radius: 3px !important;
}

body #sidebar .sidebar-nav .nav-content a i {
    color: #d2ddea !important;
}

body #sidebar .sidebar-nav .nav-content a:hover,
body #sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
    color: #ffffff !important;
}

body #sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, #7b8fa6, #8ea3ba) !important;
    border-color: rgba(152, 201, 232, 0.92) !important;
}

/* --------------------------------------------------------------
   Final Override - Soft Professional Navbar + Sidebar
   (No cambia estructura, solo apariencia)
-------------------------------------------------------------- */
:root {
    --final-nav-1: #3f4955;
    --final-nav-2: #4d5a68;
    --final-side-1: #465463;
    --final-side-2: #556577;
    --final-side-active-1: #6b7f95;
    --final-side-active-2: #7e92a8;
    --final-text-light: #eef3f8;
}

#header.header {
    background: linear-gradient(120deg, var(--final-nav-1) 0%, var(--final-nav-2) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 8px 20px rgba(33, 43, 54, 0.22) !important;
}

#header .logo span {
    color: var(--final-text-light) !important;
}

#header .toggle-sidebar-btn {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    border-radius: 4px !important;
}

#header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.38) !important;
}

#header .search-form input {
    border-radius: 4px !important;
    background: #f9fbfd !important;
    border: 1px solid #b8c4d0 !important;
    color: #2b3b4b !important;
}

#header .search-form input::placeholder {
    color: #708293 !important;
}

#header .header-nav .nav-icon {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile img {
    border-radius: 4px !important;
}

#header .header-nav .dropdown-menu.profile,
#header .header-nav .dropdown-menu.profile.show {
    background: #ffffff !important;
    border: 1px solid #d6dee7 !important;
    border-radius: 4px !important;
    box-shadow: 0 14px 30px rgba(30, 41, 53, 0.18) !important;
    min-width: 270px !important;
    padding: 8px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #2b3d4f !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6f8296 !important;
    font-size: 12px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item {
    color: #30465d !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    font-weight: 600 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #688099 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f1f5f9 !important;
}

#header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d6dee7 !important;
    border-left: 1px solid #d6dee7 !important;
}

#sidebar.sidebar {
    background: linear-gradient(180deg, var(--final-side-1) 0%, var(--final-side-2) 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 8px 0 18px rgba(33, 43, 54, 0.2) !important;
}

#sidebar .sidebar-nav .nav-heading {
    color: rgba(238, 243, 248, 0.82) !important;
}

#sidebar .sidebar-nav .nav-link {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 4px !important;
}

#sidebar .sidebar-nav .nav-link i {
    color: #d9e3ed !important;
}

#sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, var(--final-side-active-1), var(--final-side-active-2)) !important;
    border-color: rgba(132, 151, 172, 0.9) !important;
    box-shadow: 0 8px 14px rgba(46, 60, 75, 0.18) !important;
}

#sidebar .sidebar-nav .nav-content a {
    color: rgba(234, 240, 247, 0.94) !important;
    border-radius: 3px !important;
}

#sidebar .sidebar-nav .nav-content a i {
    color: #cdd9e6 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.26) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, var(--final-side-active-1), var(--final-side-active-2)) !important;
    border-color: rgba(132, 151, 172, 0.9) !important;
}

/* --------------------------------------------------------------
   Final Soft Professional Theme (Navbar + Sidebar only)
   Nota: override final, no toca tablas ni logica.
-------------------------------------------------------------- */
:root {
    --soft-nav-1: #2f3a46;
    --soft-nav-2: #3f4c5b;
    --soft-side-1: #364251;
    --soft-side-2: #425162;
    --soft-accent: #7a8fa6;
    --soft-accent-2: #8ea3ba;
    --soft-text: #eef3f8;
    --soft-border: rgba(238, 243, 248, 0.24);
}

#header.header {
    background: linear-gradient(120deg, var(--soft-nav-1) 0%, var(--soft-nav-2) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 8px 18px rgba(21, 29, 39, 0.24) !important;
}

#header .logo span {
    color: var(--soft-text) !important;
}

#header .toggle-sidebar-btn {
    color: var(--soft-text) !important;
    border: 1px solid var(--soft-border) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border-radius: 3px !important;
}

#header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.34) !important;
}

#header .search-form input {
    border-radius: 4px !important;
    background: #f8fafc !important;
    border: 1px solid #b6c1cd !important;
    color: #263443 !important;
}

#header .search-form input::placeholder {
    color: #708191 !important;
}

#header .header-nav .nav-icon {
    color: var(--soft-text) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile {
    color: var(--soft-text) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile img {
    border-radius: 4px !important;
}

#header .header-nav .dropdown-menu.profile,
#header .header-nav .dropdown-menu.profile.show {
    background: #ffffff !important;
    border: 1px solid #d8e0e8 !important;
    border-radius: 4px !important;
    box-shadow: 0 12px 28px rgba(25, 35, 48, 0.18) !important;
    padding: 8px !important;
    min-width: 270px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #253343 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header span {
    color: #687b8f !important;
    font-size: 12px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item {
    color: #2d3f52 !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    font-weight: 600 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #607488 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f1f5f9 !important;
}

#header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d8e0e8 !important;
    border-left: 1px solid #d8e0e8 !important;
}

#sidebar.sidebar {
    background: linear-gradient(180deg, var(--soft-side-1) 0%, var(--soft-side-2) 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 8px 0 18px rgba(25, 35, 48, 0.2) !important;
}

#sidebar .sidebar-nav .nav-heading {
    color: rgba(238, 243, 248, 0.8) !important;
}

#sidebar .sidebar-nav .nav-link {
    color: var(--soft-text) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 4px !important;
}

#sidebar .sidebar-nav .nav-link i {
    color: #d6e0ea !important;
}

#sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.13) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, var(--soft-accent), var(--soft-accent-2)) !important;
    border-color: rgba(128, 147, 168, 0.9) !important;
    box-shadow: 0 8px 16px rgba(44, 58, 75, 0.2) !important;
}

#sidebar .sidebar-nav .nav-content a {
    color: rgba(232, 239, 247, 0.94) !important;
    border-radius: 3px !important;
}

#sidebar .sidebar-nav .nav-content a i {
    color: #c9d7e5 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, var(--soft-accent), var(--soft-accent-2)) !important;
    border-color: rgba(128, 147, 168, 0.9) !important;
}

/* --------------------------------------------------------------
# Hard Override - Navbar/Sidebar Professional
-------------------------------------------------------------- */
:root {
    --hard-nav-bg-1: #12161c;
    --hard-nav-bg-2: #232b35;
    --hard-side-bg-1: #161b22;
    --hard-side-bg-2: #262f3a;
    --hard-accent: #c18a4a;
    --hard-text: #edf2f7;
    --hard-border: rgba(237, 242, 247, 0.2);
}

#header.header {
    background: linear-gradient(115deg, var(--hard-nav-bg-1) 0%, var(--hard-nav-bg-2) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 10px 24px rgba(9, 13, 19, 0.28) !important;
}

#header .logo span {
    color: var(--hard-text) !important;
}

#header .toggle-sidebar-btn {
    border-radius: 0 !important;
    width: 36px !important;
    height: 36px !important;
    border: 1px solid var(--hard-border) !important;
    background: rgba(255, 255, 255, 0.07) !important;
    color: var(--hard-text) !important;
}

#header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.34) !important;
}

#header .search-form input {
    border-radius: 3px !important;
    background: #f8fafc !important;
    border: 1px solid #adb8c4 !important;
    color: #1f2937 !important;
}

#header .search-form input::placeholder {
    color: #6b7280 !important;
}

#header .header-nav .nav-icon {
    border-radius: 3px !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: var(--hard-text) !important;
}

#header .header-nav .nav-profile {
    border-radius: 3px !important;
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: var(--hard-text) !important;
}

#header .header-nav .nav-profile img {
    border-radius: 2px !important;
}

#header .header-nav .dropdown-menu.profile,
#header .header-nav .dropdown-menu.profile.show {
    border-radius: 3px !important;
    border: 1px solid #d4dce5 !important;
    background: #ffffff !important;
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.22) !important;
    min-width: 270px !important;
    padding: 8px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
    margin-bottom: 2px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header span {
    font-size: 12px !important;
    color: #6b7280 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-divider {
    border-top: 1px solid #e6edf4 !important;
    margin: 6px 0 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    margin: 2px 0 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #243446 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #4b5563 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f3f6fa !important;
    color: #1d2a3a !important;
}

#header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d4dce5 !important;
    border-left: 1px solid #d4dce5 !important;
}

#sidebar.sidebar {
    background: linear-gradient(180deg, var(--hard-side-bg-1) 0%, var(--hard-side-bg-2) 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 8px 0 20px rgba(15, 23, 42, 0.24) !important;
}

#sidebar .sidebar-nav .nav-heading {
    color: rgba(237, 242, 247, 0.76) !important;
}

#sidebar .sidebar-nav .nav-link {
    border-radius: 3px !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    background: rgba(255, 255, 255, 0.05) !important;
    color: var(--hard-text) !important;
}

#sidebar .sidebar-nav .nav-link i {
    color: rgba(223, 232, 242, 0.94) !important;
}

#sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, #8f653d, var(--hard-accent)) !important;
    border-color: rgba(150, 108, 67, 0.95) !important;
}

#sidebar .sidebar-nav .nav-content a {
    border-radius: 2px !important;
    color: rgba(231, 239, 247, 0.92) !important;
}

#sidebar .sidebar-nav .nav-content a i {
    color: #d9ad79 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, #8f653d, var(--hard-accent)) !important;
    border-color: rgba(150, 108, 67, 0.95) !important;
}

/* --------------------------------------------------------------
# Navbar Final Tuning (No Rounded Toggle + Styled Profile Dropdown)
-------------------------------------------------------------- */
.header .toggle-sidebar-btn {
    border-radius: 0;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 245, 232, 0.28);
    background: rgba(255, 245, 232, 0.1);
}

.header .toggle-sidebar-btn:hover {
    background: rgba(255, 245, 232, 0.18);
    border-color: rgba(255, 245, 232, 0.4);
}

.header .toggle-sidebar-btn:focus-visible {
    outline: 2px solid rgba(255, 210, 155, 0.72);
    outline-offset: 1px;
}

.header-nav .nav-profile {
    border-radius: 4px;
}

.header-nav .nav-profile img {
    border-radius: 4px !important;
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show {
    border-radius: 4px;
    border: 1px solid #d8c4ad;
    background: #fffaf3;
    box-shadow: 0 12px 26px rgba(50, 32, 20, 0.2);
    padding: 8px;
    min-width: 260px;
}

.header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left;
    padding: 8px 10px 10px;
}

.header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #4a2f22;
    font-weight: 700;
    font-size: 15px;
}

.header-nav .dropdown-menu.profile .dropdown-header span {
    color: #7a634f;
    font-size: 12px;
}

.header-nav .dropdown-menu.profile .dropdown-divider {
    border-top-color: #eadccc;
    margin: 6px 0;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 4px;
    margin: 2px 0;
    padding: 9px 10px;
    font-weight: 600;
    color: #4a2f22;
    background: transparent;
}

.header-nav .dropdown-menu.profile .dropdown-item i {
    color: #9a5c35;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f4e7d8;
    color: #3d261b;
}

.header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #fffaf3;
    border-top: 1px solid #d8c4ad;
    border-left: 1px solid #d8c4ad;
}

/* --------------------------------------------------------------
# Theme Final (Professional - Navbar/Sidebar)
-------------------------------------------------------------- */
:root {
    --pro-nav-950: #14171c;
    --pro-nav-900: #1d232b;
    --pro-nav-800: #2b343f;
    --pro-side-950: #171c22;
    --pro-side-900: #202730;
    --pro-side-800: #2a333d;
    --pro-accent: #be8549;
    --pro-accent-soft: #d3a16d;
    --pro-text-on-dark: #eef2f6;
    --pro-border-soft: rgba(238, 242, 246, 0.2);
}

body {
    background: linear-gradient(180deg, #f7f9fc 0%, #eef2f7 100%);
}

#main {
    border-radius: 10px 0 0 0;
}

.header {
    background: linear-gradient(110deg, var(--pro-nav-950) 0%, var(--pro-nav-800) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 24px rgba(13, 17, 23, 0.28);
}

.logo img {
    border-radius: 4px;
}

.logo span {
    color: var(--pro-text-on-dark);
    font-weight: 700;
}

.header .toggle-sidebar-btn {
    color: var(--pro-text-on-dark);
    border-radius: 2px;
    border: 1px solid var(--pro-border-soft);
    background: rgba(255, 255, 255, 0.06);
}

.header .toggle-sidebar-btn:hover {
    border-color: rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.12);
}

.header .search-form input {
    border-radius: 4px;
    background: #f8fafc;
    border-color: #aab4c0;
    color: #1f2937;
}

.header .search-form input::placeholder {
    color: #6b7280;
}

.header-nav .nav-icon {
    color: var(--pro-text-on-dark);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.08);
}

.header-nav .nav-profile {
    color: var(--pro-text-on-dark);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.18);
}

.header-nav .nav-profile img {
    border-radius: 4px !important;
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show {
    border-radius: 4px;
    border: 1px solid #cfd7e0;
    background: #ffffff;
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.18);
}

.header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #1f2937;
}

.header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6b7280;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 3px;
    color: #243242;
}

.header-nav .dropdown-menu.profile .dropdown-item i {
    color: #4b5563;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f3f6fa;
}

.header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff;
    border-top: 1px solid #cfd7e0;
    border-left: 1px solid #cfd7e0;
}

.sidebar {
    background: linear-gradient(180deg, var(--pro-side-950) 0%, var(--pro-side-800) 100%);
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 8px 0 22px rgba(15, 23, 42, 0.22);
}

.sidebar-nav .nav-heading {
    color: rgba(238, 242, 246, 0.76);
}

.sidebar-nav .nav-link {
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.05);
    color: var(--pro-text-on-dark);
}

.sidebar-nav .nav-link i {
    color: rgba(218, 227, 240, 0.95);
}

.sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.24);
    transform: none;
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, #8a6238, var(--pro-accent));
    border-color: rgba(146, 106, 64, 0.96);
    box-shadow: 0 8px 16px rgba(58, 36, 21, 0.26);
}

.sidebar-nav .nav-content a {
    border-radius: 3px;
    color: rgba(232, 238, 246, 0.92);
}

.sidebar-nav .nav-content a i {
    color: var(--pro-accent-soft);
}

.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.26);
    color: #ffffff;
    transform: none;
}

.sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, #8a6238, var(--pro-accent));
    border-color: rgba(146, 106, 64, 0.96);
    box-shadow: 0 8px 16px rgba(58, 36, 21, 0.26);
}


/* --------------------------------------------------------------
   ENTERPRISE SKY FINAL END LAYER
-------------------------------------------------------------- */
body #header.header,
body .header {
    background: #0f82cd !important;
    border-bottom: 1px solid #0b6faa !important;
    box-shadow: 0 2px 10px rgba(9, 46, 78, 0.28) !important;
}

body #header .logo span,
body .header .logo span,
body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .header-nav .nav-icon {
    color: #ffffff !important;
}

body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .bi.bi-list.toggle-sidebar-btn,
body .header-nav .nav-icon {
    border-radius: 0 !important;
    border: 1px solid #58a8dd !important;
    background: rgba(255, 255, 255, 0.14) !important;
    box-shadow: none !important;
}

body #header .toggle-sidebar-btn:hover,
body .header .toggle-sidebar-btn:hover,
body .bi.bi-list.toggle-sidebar-btn:hover,
body .header-nav .nav-icon:hover {
    background: rgba(255, 255, 255, 0.24) !important;
    border-color: #84c0e7 !important;
    color: #ffffff !important;
}

body .header-nav .nav-profile {
    border-radius: 0 !important;
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid #63afe0 !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile img {
    border-radius: 0 !important;
}

body .header-nav .nav-profile span,
body .header-nav .nav-profile i {
    color: #ffffff !important;
}

body .header-nav .dropdown-menu.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile.show {
    border-radius: 0 !important;
    background: #ffffff !important;
    border: 1px solid #b8d7ec !important;
    box-shadow: 0 8px 18px rgba(24, 54, 79, 0.14) !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 0 !important;
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #eaf4fc !important;
}

body .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #b8d7ec !important;
    border-left: 1px solid #b8d7ec !important;
}

body #sidebar.sidebar,
body .sidebar {
    background: #1b6f9f !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 4px 0 14px rgba(10, 44, 71, 0.22) !important;
}

body #sidebar .sidebar-nav .nav-heading,
body .sidebar .sidebar-nav .nav-heading {
    color: rgba(255, 255, 255, 0.72) !important;
}

body #sidebar .sidebar-nav .nav-link,
body .sidebar .sidebar-nav .nav-link {
    border-radius: 0 !important;
    background: #257aae !important;
    border: 1px solid #4d97c4 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #sidebar .sidebar-nav .nav-link i,
body .sidebar .sidebar-nav .nav-link i {
    color: #ffffff !important;
}

body #sidebar .sidebar-nav .nav-link:hover,
body .sidebar .sidebar-nav .nav-link:hover {
    background: #2f89c1 !important;
    border-color: #78b5d8 !important;
    transform: none !important;
}

body #sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body #sidebar .sidebar-nav .nav-link.active,
body .sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar .sidebar-nav .nav-link.active {
    background: #3c9fdc !important;
    border-color: #98c9e8 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #sidebar .sidebar-nav .nav-content a,
body .sidebar .sidebar-nav .nav-content a {
    border-radius: 0 !important;
    color: #ffffff !important;
}

body #sidebar .sidebar-nav .nav-content a:hover,
body .sidebar .sidebar-nav .nav-content a:hover {
    background: #2f89c1 !important;
    border-color: transparent !important;
}

body #sidebar .sidebar-nav .nav-content a.active,
body .sidebar .sidebar-nav .nav-content a.active {
    background: #3c9fdc !important;
    border-color: #98c9e8 !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   CRUD FORM BUTTONS - FINAL (por ID, sin afectar todo el sistema)
-------------------------------------------------------------- */
body #btn_guardar_form.btn,
body #btn_guardar_form.btn-outline-success,
body #btn_guardar_form.btn-success {
    border-radius: 2px !important;
    font-weight: 600 !important;
    background: #0a9772 !important;
    border-color: #0a9772 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #btn_guardar_form.btn:hover,
body #btn_guardar_form.btn-outline-success:hover,
body #btn_guardar_form.btn-success:hover {
    background: #087f61 !important;
    border-color: #087f61 !important;
    color: #ffffff !important;
}

body #btn_reset_form.btn,
body #btn_reset_form.btn-outline-secondary,
body #btn_reset_form.btn-secondary {
    border-radius: 2px !important;
    font-weight: 600 !important;
    background: #1f7fb8 !important;
    border-color: #1f7fb8 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #btn_reset_form.btn:hover,
body #btn_reset_form.btn-outline-secondary:hover,
body #btn_reset_form.btn-secondary:hover {
    background: #1a6e9e !important;
    border-color: #1a6e9e !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   Navbar - Alerta Stock Minimo
-------------------------------------------------------------- */
body #header .header-nav .stock-alerts {
    min-width: 320px !important;
    max-width: 360px !important;
    max-height: 420px !important;
    overflow-y: auto !important;
}

body #header .header-nav .stock-alerts .dropdown-header {
    text-align: left !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}

body #header .header-nav .stock-alerts .stock-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 10px 12px !important;
}

body #header .header-nav .stock-alerts .stock-item i {
    margin-top: 2px !important;
    margin-right: 0 !important;
    font-size: 12px !important;
}

body #header .header-nav .stock-alerts .stock-item h4 {
    margin: 0 0 2px 0 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #111827 !important;
}

body #header .header-nav .stock-alerts .stock-item p {
    margin: 0 !important;
    font-size: 12px !important;
    color: #4b5563 !important;
    line-height: 1.3 !important;
}

body #header .header-nav .stock-alerts .stock-critico i {
    color: #dc2626 !important;
}

body #header .header-nav .stock-alerts .stock-bajo i {
    color: #d97706 !important;
}

body #header .header-nav .stock-alerts .stock-minimo i {
    color: #0284c7 !important;
}

body #header .header-nav .stock-alerts .stock-ok i {
    color: #16a34a !important;
}

/* --------------------------------------------------------------
   Navbar - Dropdown Notificaciones
-------------------------------------------------------------- */
body #header .search-bar {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

body #header .search-bar .search-form {
    flex: 1 1 auto !important;
    width: auto !important;
}

body #header .search-notify-trigger {
    margin-right: 0 !important;
    position: relative !important;
}

body #header .search-notify-dropdown .notify-summary {
    min-width: 360px !important;
    max-width: 380px !important;
    padding: 8px !important;
}

body #header .search-notify-dropdown .notify-summary .dropdown-header {
    text-align: left !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line {
    padding: 8px 10px !important;
    background: #f8fbff !important;
    border: 1px solid #e2e8f0 !important;
    margin: 4px 0 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line .notify-line-link {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
    color: inherit !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line .notify-line-link:hover {
    text-decoration: none !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line span {
    font-size: 12px !important;
    color: #334155 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line strong {
    font-size: 13px !important;
    font-weight: 700 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-optimo strong {
    color: #16a34a !important;
}

body #header .search-notify-dropdown .notify-summary .notify-medio strong {
    color: #d97706 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-minimo strong {
    color: #dc2626 !important;
}

body #header .mobile-notify-dropdown .notify-summary {
    min-width: 360px !important;
    max-width: 380px !important;
    padding: 8px !important;
}

body #header .mobile-notify-dropdown .notify-summary .dropdown-header {
    text-align: left !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-line {
    padding: 8px 10px !important;
    background: #f8fbff !important;
    border: 1px solid #e2e8f0 !important;
    margin: 4px 0 !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-line .notify-line-link {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
    color: inherit !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-line .notify-line-link:hover {
    text-decoration: none !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-line span {
    font-size: 12px !important;
    color: #334155 !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-line strong {
    font-size: 13px !important;
    font-weight: 700 !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-optimo strong {
    color: #16a34a !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-medio strong {
    color: #d97706 !important;
}

body #header .mobile-notify-dropdown .notify-summary .notify-minimo strong {
    color: #dc2626 !important;
}

@media (max-width: 1199px) {
    body #header .search-notify-dropdown {
        display: none !important;
    }

    body #header .mobile-notify-dropdown {
        display: block !important;
    }
}

/* ===== Inventory Theme Override (moved from inventory-theme.css) ===== */
/* Inventory Theme: visual refresh focused on clarity + hierarchy */
:root {
    --inv-bg: #f3efe7;
    --inv-surface: #fffdf9;
    --inv-surface-soft: #f8f4ec;
    --inv-border: #d8d0c2;
    --inv-text: #1f2a33;
    --inv-text-soft: #5c6d79;
    --inv-primary: #17475b;
    --inv-primary-strong: #103544;
    --inv-accent: #d97732;
    --inv-success: #2f8f6a;
    --inv-danger: #c4453c;
    --inv-shadow: 0 14px 30px rgba(16, 31, 41, 0.12);
}

body {
    font-family: "Ubuntu", "Segoe UI", sans-serif !important;
    color: var(--inv-text) !important;
    background:
        radial-gradient(1100px 420px at 8% -8%, rgba(217, 119, 50, 0.12), transparent 64%),
        radial-gradient(900px 400px at 96% -16%, rgba(23, 71, 91, 0.15), transparent 60%),
        var(--inv-bg) !important;
}

h1, h2, h3, h4, h5, h6,
.card-title,
.navbar-brand,
.sidebar-nav .nav-link {
    font-family: "Montserrat", "Segoe UI", sans-serif !important;
}

#main {
    margin-top: 74px !important;
    padding: 22px 26px !important;
    border-radius: 22px 22px 0 0;
    background: rgba(255, 253, 249, 0.96) !important;
}

#header.header,
.header {
    height: 64px !important;
    background: rgba(255, 252, 247, 0.93) !important;
    border-bottom: 1px solid var(--inv-border) !important;
    backdrop-filter: blur(8px);
    box-shadow: 0 10px 24px rgba(23, 71, 91, 0.1) !important;
}

.header .toggle-sidebar-btn,
.bi.bi-list.toggle-sidebar-btn,
.header-nav .nav-icon {
    color: var(--inv-primary) !important;
}

.header .toggle-sidebar-btn:hover,
.bi.bi-list.toggle-sidebar-btn:hover,
.header-nav .nav-icon:hover {
    color: var(--inv-accent) !important;
}

#sidebar.sidebar,
.sidebar {
    top: 64px !important;
    background:
        linear-gradient(175deg, #173f51 0%, #123646 62%, #102e3c 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 10px 0 28px rgba(8, 25, 34, 0.24) !important;
}

.sidebar .sidebar-nav .nav-heading {
    color: #c7d7df !important;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.sidebar .sidebar-nav .nav-link {
    color: #ebf3f7 !important;
    background: transparent !important;
    border-radius: 12px;
    margin: 4px 10px;
    transition: all 0.2s ease;
}

.sidebar .sidebar-nav .nav-link i {
    color: #d7e8ef !important;
}

.sidebar .sidebar-nav .nav-link:hover {
    color: #ffffff !important;
    background: rgba(217, 119, 50, 0.2) !important;
}

.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #fff !important;
    background: linear-gradient(90deg, rgba(217, 119, 50, 0.96), rgba(194, 95, 36, 0.96)) !important;
    box-shadow: 0 8px 16px rgba(176, 88, 31, 0.34);
}

.sidebar .sidebar-nav .nav-link.active i,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #fff !important;
}

.sidebar .sidebar-nav .nav-content a {
    color: #cde0e8 !important;
    border-radius: 10px;
}

.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.1) !important;
}

.card,
.modal-content {
    border: 1px solid var(--inv-border) !important;
    border-radius: 16px !important;
    background: var(--inv-surface) !important;
    box-shadow: var(--inv-shadow) !important;
}

.modal-header,
.modal-footer {
    border-color: #e2dbcf !important;
    background: #fcf8f1 !important;
}

.form-control,
.form-select {
    border: 1px solid #cfc6b8 !important;
    border-radius: 10px !important;
    background: #fffcf7 !important;
    color: var(--inv-text) !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--inv-accent) !important;
    box-shadow: 0 0 0 0.2rem rgba(217, 119, 50, 0.18) !important;
}

.btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--inv-primary) !important;
    --bs-btn-border-color: var(--inv-primary) !important;
    --bs-btn-hover-bg: var(--inv-primary-strong) !important;
    --bs-btn-hover-border-color: var(--inv-primary-strong) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--inv-success) !important;
    --bs-btn-border-color: var(--inv-success) !important;
    --bs-btn-hover-bg: #257254 !important;
    --bs-btn-hover-border-color: #257254 !important;
}

.btn-danger,
.btn-outline-danger {
    --bs-btn-bg: var(--inv-danger) !important;
    --bs-btn-border-color: var(--inv-danger) !important;
}

.btn-warning,
.btn-outline-warning {
    --bs-btn-bg: var(--inv-accent) !important;
    --bs-btn-border-color: var(--inv-accent) !important;
    --bs-btn-color: #fff !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid #d7cfbf !important;
    border-radius: 14px !important;
    box-shadow: 0 10px 22px rgba(16, 31, 41, 0.12) !important;
    background: #fffdf9 !important;
}

.bootstrap-table .table thead th {
    background: linear-gradient(180deg, #f0e8db 0%, #e9dece 100%) !important;
    color: #193443 !important;
    border-bottom: 1px solid #d4c7b2 !important;
}

.bootstrap-table .table tbody td {
    color: #243745 !important;
    border-bottom: 1px solid #ede5d7 !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td {
    background: #fdf9f1 !important;
}

.bootstrap-table .table tbody tr:hover td {
    background: #f4ede0 !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f8f2e7 !important;
    border-top: 1px solid #e0d5c3 !important;
}

.pagination .page-link {
    color: var(--inv-primary) !important;
    border-color: #d8cfbf !important;
    background: #fffdf8 !important;
}

.pagination .page-item.active .page-link {
    background: var(--inv-primary) !important;
    border-color: var(--inv-primary) !important;
    color: #fff !important;
}

#footer.footer,
.footer {
    background: #f7f1e6 !important;
    border-top: 1px solid #ddcfba !important;
    color: #4a5a66 !important;
}

@media (max-width: 1199px) {
    #main {
        padding: 18px 14px !important;
        border-radius: 14px 14px 0 0;
    }

    #header.header,
    .header {
        height: 60px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 60px !important;
    }
}

/* ===== Inventory Pro Navbar + Sidebar Refresh ===== */
:root {
    --inv-nav-bg: linear-gradient(120deg, #0f3443 0%, #14495d 55%, #19566f 100%);
    --inv-nav-surface: rgba(255, 255, 255, 0.08);
    --inv-nav-border: rgba(255, 255, 255, 0.14);
    --inv-nav-text: #e9f4fa;
    --inv-nav-text-soft: #c4dbe6;
    --inv-nav-accent: #e4883c;
    --inv-nav-accent-soft: rgba(228, 136, 60, 0.22);
    --inv-nav-shadow: 0 14px 30px rgba(7, 28, 38, 0.35);
}

#header.header,
.header {
    height: 66px !important;
    background: var(--inv-nav-bg) !important;
    border-bottom: 1px solid var(--inv-nav-border) !important;
    box-shadow: var(--inv-nav-shadow) !important;
    backdrop-filter: blur(6px);
}

.header .logo span,
.header-nav .nav-profile span,
.header-nav .nav-icon,
#header .toggle-sidebar-btn,
.header .toggle-sidebar-btn {
    color: var(--inv-nav-text) !important;
}

.header-nav .nav-profile {
    padding: 6px 10px !important;
    border: 1px solid var(--inv-nav-border) !important;
    background: var(--inv-nav-surface) !important;
    border-radius: 12px !important;
}

.header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.35) !important;
}

.header-nav .nav-icon:hover,
.header .toggle-sidebar-btn:hover,
#header .toggle-sidebar-btn:hover {
    color: #ffffff !important;
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.35);
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show,
.header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile {
    border: 1px solid #d4e3eb !important;
    border-radius: 14px !important;
    box-shadow: 0 16px 36px rgba(13, 37, 50, 0.2) !important;
    padding: 8px !important;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 8px !important;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #eef6fb !important;
    color: #123d50 !important;
}

#sidebar.sidebar,
.sidebar {
    top: 66px !important;
    background:
        radial-gradient(700px 320px at -10% 0%, rgba(228, 136, 60, 0.16), transparent 60%),
        linear-gradient(185deg, #102f3d 0%, #123a4b 62%, #143f52 100%) !important;
    border-right: 1px solid var(--inv-nav-border) !important;
    box-shadow: 10px 0 24px rgba(8, 25, 34, 0.34) !important;
}

.sidebar .sidebar-nav .nav-heading {
    color: var(--inv-nav-text-soft) !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    margin: 14px 12px 8px !important;
}

.sidebar .sidebar-nav .nav-link {
    margin: 5px 10px !important;
    border-radius: 12px !important;
    color: var(--inv-nav-text) !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    transition: all 0.2s ease !important;
}

.sidebar .sidebar-nav .nav-link i {
    color: #d8eaf2 !important;
}

.sidebar .sidebar-nav .nav-link:hover {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    transform: translateX(2px);
}

.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    background:
        linear-gradient(90deg, rgba(228, 136, 60, 0.96), rgba(198, 104, 38, 0.96)) !important;
    box-shadow: 0 10px 18px rgba(176, 88, 31, 0.35) !important;
}

.sidebar .sidebar-nav .nav-link.active i,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #ffffff !important;
}

.sidebar .sidebar-nav .nav-content {
    margin: 0 10px 8px !important;
    padding: 4px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.14) !important;
}

.sidebar .sidebar-nav .nav-content a {
    color: #cae2ec !important;
    border-radius: 8px !important;
}

.sidebar .sidebar-nav .nav-content a:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.12) !important;
}

.sidebar .sidebar-nav .nav-content a.active {
    color: #ffffff !important;
    background: var(--inv-nav-accent-soft) !important;
    border-left: 2px solid var(--inv-nav-accent) !important;
}

@media (max-width: 1199px) {
    #header.header,
    .header {
        height: 60px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 60px !important;
    }
}


/* ==============================================================
   INVENTORY THEME 2026 - DIGITAL PROFESSIONAL FINAL
============================================================== */
:root {
    --inv-font-body: "Inter", "Work Sans", "Segoe UI", sans-serif;
    --inv-font-title: "Montserrat", "Inter", sans-serif;

    --inv-bg: #eef3f9;
    --inv-bg-soft: #f7fafe;
    --inv-surface: #ffffff;
    --inv-border: #d9e3ee;
    --inv-text: #1a2f3f;
    --inv-text-soft: #61778b;

    --inv-primary: #1b84c6;
    --inv-primary-strong: #116294;
    --inv-accent: #27a2e6;

    --inv-shell-dark: #0d2738;
    --inv-shell-mid: #11415d;
    --inv-shell-light: #1a6d99;

    --inv-success: #10835f;
    --inv-danger: #c84a4a;
    --inv-warning: #cc8a1f;

    --inv-shadow-sm: 0 6px 14px rgba(12, 36, 52, 0.1);
    --inv-shadow-md: 0 14px 30px rgba(12, 36, 52, 0.14);
    --inv-radius: 14px;
}

html,
body {
    font-family: var(--inv-font-body) !important;
    color: var(--inv-text) !important;
    background:
        radial-gradient(900px 380px at -5% -10%, rgba(39, 162, 230, 0.16), transparent 62%),
        radial-gradient(850px 360px at 105% -10%, rgba(27, 132, 198, 0.14), transparent 62%),
        var(--inv-bg) !important;
}

h1, h2, h3, h4, h5, h6,
.card-title,
.pagetitle h1 {
    font-family: var(--inv-font-title) !important;
    color: #12364b !important;
}

/* Header */
.inventory-header {
    min-height: 68px !important;
    background: linear-gradient(115deg, var(--inv-shell-dark) 0%, var(--inv-shell-mid) 56%, var(--inv-shell-light) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 30px rgba(8, 27, 39, 0.3) !important;
    backdrop-filter: blur(8px);
}

.inventory-header .logo,
.inventory-header .logo span,
.inventory-header .toggle-sidebar-btn,
.inventory-header .header-nav .nav-icon,
.inventory-header .header-nav .nav-profile span,
.inventory-header .header-nav .nav-profile i,
.inventory-header .header-nav .nav-link,
.inventory-header .header-nav .bi {
    color: #f2f9ff !important;
}

.inventory-header .toggle-sidebar-btn,
.inventory-header .header-nav .nav-icon {
    width: 39px !important;
    height: 39px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    background: rgba(255, 255, 255, 0.12) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
}

.inventory-header .toggle-sidebar-btn:hover,
.inventory-header .header-nav .nav-icon:hover {
    transform: translateY(-1px) !important;
    background: rgba(255, 255, 255, 0.2) !important;
}

.inventory-header .inventory-search-bar .search-form input {
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.35) !important;
    background: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    font-weight: 500 !important;
}

.inventory-header .inventory-search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

.inventory-header .inventory-search-bar .search-form button i {
    color: #ffffff !important;
}

.inventory-header .inventory-header-nav .nav-profile {
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    background: rgba(255, 255, 255, 0.14) !important;
    padding: 6px 12px !important;
}

.inventory-header .inventory-header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.38) !important;
}

.inventory-header .dropdown-menu {
    border-radius: 12px !important;
    border: 1px solid var(--inv-border) !important;
    box-shadow: var(--inv-shadow-md) !important;
}

.inventory-header .dropdown-item {
    border-radius: 8px !important;
}

.inventory-header .dropdown-item:hover {
    background: #edf5fc !important;
}

/* Sidebar */
.inventory-sidebar {
    top: 68px !important;
    background:
        radial-gradient(560px 260px at -8% 0%, rgba(39, 162, 230, 0.18), transparent 66%),
        linear-gradient(185deg, #102d3f 0%, #12465f 62%, #155f82 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 10px 0 24px rgba(7, 23, 34, 0.34) !important;
}

.inventory-sidebar .nav-heading {
    color: rgba(219, 241, 255, 0.82) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    font-weight: 700 !important;
}

.inventory-sidebar .nav-link {
    margin: 5px 10px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    background: rgba(255, 255, 255, 0.07) !important;
    color: #f2f9ff !important;
    font-weight: 600 !important;
}

.inventory-sidebar .nav-link i {
    color: #d8ecf9 !important;
}

.inventory-sidebar .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    transform: translateX(2px) !important;
}

.inventory-sidebar .nav-link.active,
.inventory-sidebar .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--inv-primary) 0%, var(--inv-accent) 100%) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
    box-shadow: 0 9px 18px rgba(21, 110, 163, 0.34) !important;
}

.inventory-sidebar .nav-content {
    margin: 0 10px 8px !important;
    padding: 4px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.15) !important;
}

.inventory-sidebar .nav-content a {
    color: #d8edf8 !important;
    border-radius: 8px !important;
}

.inventory-sidebar .nav-content a:hover,
.inventory-sidebar .nav-content a.active {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.14) !important;
}

/* Main area */
#main.main {
    margin-top: 74px !important;
    background: rgba(255, 255, 255, 0.95) !important;
    border-radius: 16px 16px 0 0 !important;
}

#footer.footer,
.footer {
    background: #f0f5fa !important;
    border-top: 1px solid var(--inv-border) !important;
    color: #5c7488 !important;
}

.card,
.modal-content {
    border: 1px solid var(--inv-border) !important;
    border-radius: var(--inv-radius) !important;
    background: var(--inv-surface) !important;
    box-shadow: var(--inv-shadow-sm) !important;
}

.card-title {
    font-weight: 700 !important;
}

.form-control,
.form-select {
    border: 1px solid #c9d8e6 !important;
    border-radius: 10px !important;
    color: #15384e !important;
    background: #ffffff !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--inv-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(27, 132, 198, 0.18) !important;
}

.btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--inv-primary) !important;
    --bs-btn-border-color: var(--inv-primary) !important;
    --bs-btn-hover-bg: var(--inv-primary-strong) !important;
    --bs-btn-hover-border-color: var(--inv-primary-strong) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--inv-success) !important;
    --bs-btn-border-color: var(--inv-success) !important;
}

.btn-danger,
.btn-outline-danger {
    --bs-btn-bg: var(--inv-danger) !important;
    --bs-btn-border-color: var(--inv-danger) !important;
}

/* Login */
.inventory-auth {
    min-height: 100vh !important;
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(39, 162, 230, 0.18), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(27, 132, 198, 0.16), transparent 66%),
        linear-gradient(180deg, #edf4fc 0%, #e4edf8 100%) !important;
}

.inventory-auth .logo span {
    color: #114463 !important;
    font-weight: 800 !important;
}

.inventory-auth-card {
    border-radius: 16px !important;
    border: 1px solid #d1e1ee !important;
    box-shadow: 0 16px 30px rgba(12, 37, 53, 0.18) !important;
    background: rgba(255, 255, 255, 0.98) !important;
}

.inventory-auth .card-title {
    color: #114665 !important;
}

.inventory-auth a {
    color: var(--inv-primary) !important;
    font-weight: 600 !important;
}

.inventory-auth a:hover {
    color: var(--inv-primary-strong) !important;
}

/* Mobile */
@media (min-width: 1200px) {
    .inventory-header {
        min-height: 70px !important;
    }

    .inventory-sidebar {
        top: 70px !important;
        width: 292px !important;
    }

    #main.main,
    #footer.footer,
    .footer {
        margin-left: 292px !important;
    }

    body.toggle-sidebar #main.main,
    body.toggle-sidebar #footer.footer,
    body.toggle-sidebar .footer {
        margin-left: 0 !important;
    }

    body.toggle-sidebar .inventory-sidebar {
        left: -292px !important;
    }
}

@media (max-width: 1199px) {
    .inventory-header {
        min-height: 64px !important;
        padding: 0 12px !important;
    }

    .inventory-sidebar {
        top: 64px !important;
        left: -292px !important;
        width: 292px !important;
        max-width: calc(100vw - 24px) !important;
        border-radius: 0 14px 14px 0 !important;
        z-index: 1055 !important;
    }

    body.toggle-sidebar .inventory-sidebar {
        left: 0 !important;
    }

    body.toggle-sidebar {
        overflow: hidden !important;
    }

    body.toggle-sidebar::before {
        content: "" !important;
        position: fixed !important;
        inset: 64px 0 0 0 !important;
        background: rgba(9, 29, 43, 0.52) !important;
        z-index: 1050 !important;
    }

    #main.main {
        margin-top: 70px !important;
        margin-left: 0 !important;
        border-radius: 12px 12px 0 0 !important;
        padding: 14px !important;
    }

    #footer.footer,
    .footer {
        margin-left: 0 !important;
    }

    .inventory-header .inventory-search-bar {
        position: fixed !important;
        top: 66px !important;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        background: rgba(11, 43, 62, 0.96) !important;
        border: 1px solid rgba(255, 255, 255, 0.2) !important;
        border-radius: 12px !important;
        padding: 10px !important;
        z-index: 1060 !important;
    }
}

@media (max-width: 991px) {
    .inventory-header .logo span,
    .inventory-header .inventory-header-nav .nav-profile span {
        display: none !important;
    }

    .inventory-header .inventory-header-nav .nav-profile {
        padding: 5px 8px !important;
    }

    .inventory-auth {
        padding: 20px 12px !important;
    }

    .inventory-auth-card {
        margin-bottom: 12px !important;
    }

    .bootstrap-table .fixed-table-toolbar {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar .search,
    .bootstrap-table .fixed-table-toolbar .search input {
        width: 100% !important;
    }
}

@media (max-width: 575px) {
    #main.main {
        padding: 12px 10px !important;
    }

    .pagetitle h1 {
        font-size: 20px !important;
    }

    .inventory-auth {
        min-height: 100dvh !important;
        padding: 14px 8px !important;
    }

    .inventory-auth-card .card-body {
        padding: 16px !important;
    }

    .modal-dialog {
        margin: 0.5rem !important;
    }

    .bootstrap-table .fixed-table-container,
    .bootstrap-table .fixed-table-body {
        overflow-x: auto !important;
    }
}

/* ==============================================================
   INVENTORY THEME - DIGITAL PROFESSIONAL (CSS ONLY FINAL LAYER)
============================================================== */
:root {
    --invx-bg: #eef3f9;
    --invx-bg-soft: #f7fafe;
    --invx-surface: #ffffff;
    --invx-border: #d7e2ee;
    --invx-text: #1c3040;
    --invx-text-soft: #657b8f;

    --invx-primary: #1c86c8;
    --invx-primary-strong: #146493;
    --invx-accent: #2da8ea;

    --invx-shell-1: #0d2838;
    --invx-shell-2: #11425d;
    --invx-shell-3: #1a6d98;

    --invx-success: #128261;
    --invx-danger: #c84a4a;

    --invx-shadow-sm: 0 8px 18px rgba(12, 36, 52, 0.1);
    --invx-shadow-md: 0 14px 30px rgba(12, 36, 52, 0.15);
}

html,
body {
    font-family: "Inter", "Work Sans", "Poppins", "Segoe UI", sans-serif !important;
    color: var(--invx-text) !important;
    background:
        radial-gradient(920px 360px at -5% -10%, rgba(45, 168, 234, 0.16), transparent 62%),
        radial-gradient(820px 340px at 105% -10%, rgba(28, 134, 200, 0.14), transparent 62%),
        var(--invx-bg) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.card-title,
.pagetitle h1 {
    font-family: "Montserrat", "Inter", sans-serif !important;
    color: #12394f !important;
}

#header.header,
.header {
    min-height: 68px !important;
    background: linear-gradient(115deg, var(--invx-shell-1) 0%, var(--invx-shell-2) 58%, var(--invx-shell-3) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 30px rgba(8, 27, 39, 0.3) !important;
}

#header .logo,
#header .logo span,
#header .toggle-sidebar-btn,
#header .header-nav .nav-icon,
#header .header-nav .nav-profile span,
#header .header-nav .nav-link,
#header .bi {
    color: #f0f8ff !important;
}

#header .toggle-sidebar-btn,
#header .header-nav .nav-icon,
.header .toggle-sidebar-btn,
.header-nav .nav-icon {
    width: 39px !important;
    height: 39px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    background: rgba(255, 255, 255, 0.12) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
}

#header .toggle-sidebar-btn:hover,
#header .header-nav .nav-icon:hover,
.header .toggle-sidebar-btn:hover,
.header-nav .nav-icon:hover {
    transform: translateY(-1px) !important;
    background: rgba(255, 255, 255, 0.2) !important;
}

#header .search-bar .search-form input,
.header .search-bar .search-form input {
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.35) !important;
    background: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    font-weight: 500 !important;
}

#header .search-bar .search-form input::placeholder,
.header .search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

#header .search-bar .search-form button i,
.header .search-bar .search-form button i {
    color: #ffffff !important;
}

#header .header-nav .nav-profile,
.header-nav .nav-profile {
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    background: rgba(255, 255, 255, 0.14) !important;
    padding: 6px 12px !important;
}

#header .header-nav .nav-profile img,
.header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.38) !important;
}

#header .header-nav .dropdown-menu,
.header-nav .dropdown-menu {
    border-radius: 12px !important;
    border: 1px solid var(--invx-border) !important;
    box-shadow: var(--invx-shadow-md) !important;
}

#header .header-nav .dropdown-menu .dropdown-item,
.header-nav .dropdown-menu .dropdown-item {
    border-radius: 8px !important;
}

#header .header-nav .dropdown-menu .dropdown-item:hover,
.header-nav .dropdown-menu .dropdown-item:hover {
    background: #edf5fc !important;
}

#sidebar.sidebar,
.sidebar {
    top: 68px !important;
    background:
        radial-gradient(560px 270px at -8% 0%, rgba(45, 168, 234, 0.18), transparent 66%),
        linear-gradient(185deg, #102d3f 0%, #12455f 62%, #155f82 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 10px 0 24px rgba(8, 23, 34, 0.34) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: rgba(219, 241, 255, 0.84) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    font-weight: 700 !important;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    margin: 5px 10px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: #f2f9ff !important;
    font-weight: 600 !important;
}

#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link i {
    color: #d8ecf9 !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    transform: translateX(2px) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--invx-primary) 0%, var(--invx-accent) 100%) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
    box-shadow: 0 9px 18px rgba(21, 111, 164, 0.34) !important;
}

#sidebar .sidebar-nav .nav-content,
.sidebar .sidebar-nav .nav-content {
    margin: 0 10px 8px !important;
    padding: 4px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.15) !important;
}

#sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a {
    color: #d8edf8 !important;
    border-radius: 8px !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.14) !important;
}

#main.main,
#main {
    margin-top: 74px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border-radius: 16px 16px 0 0 !important;
}

#footer.footer,
.footer {
    background: #f0f5fa !important;
    border-top: 1px solid var(--invx-border) !important;
    color: #5d7488 !important;
}

.card,
.modal-content {
    border: 1px solid var(--invx-border) !important;
    border-radius: 14px !important;
    background: var(--invx-surface) !important;
    box-shadow: var(--invx-shadow-sm) !important;
}

.form-control,
.form-select {
    border: 1px solid #c8d8e7 !important;
    border-radius: 10px !important;
    color: #15384e !important;
    background: #ffffff !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--invx-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(28, 134, 200, 0.18) !important;
}

.btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--invx-primary) !important;
    --bs-btn-border-color: var(--invx-primary) !important;
    --bs-btn-hover-bg: var(--invx-primary-strong) !important;
    --bs-btn-hover-border-color: var(--invx-primary-strong) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--invx-success) !important;
    --bs-btn-border-color: var(--invx-success) !important;
}

.btn-danger,
.btn-outline-danger {
    --bs-btn-bg: var(--invx-danger) !important;
    --bs-btn-border-color: var(--invx-danger) !important;
}

.section.register {
    min-height: 100vh !important;
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(45, 168, 234, 0.18), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(28, 134, 200, 0.16), transparent 66%),
        linear-gradient(180deg, #edf4fc 0%, #e4edf8 100%) !important;
}

.section.register .card {
    border: 1px solid #d1e1ee !important;
    border-radius: 16px !important;
    box-shadow: 0 16px 30px rgba(12, 37, 53, 0.18) !important;
    background: rgba(255, 255, 255, 0.98) !important;
}

.section.register .card-title {
    color: #114665 !important;
}

.section.register a {
    color: var(--invx-primary) !important;
    font-weight: 600 !important;
}

.section.register a:hover {
    color: var(--invx-primary-strong) !important;
}

@media (min-width: 1200px) {
    #header.header,
    .header {
        min-height: 70px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 70px !important;
        width: 292px !important;
    }

    #main,
    #main.main,
    #footer,
    #footer.footer,
    .footer {
        margin-left: 292px !important;
    }

    body.toggle-sidebar #main,
    body.toggle-sidebar #main.main,
    body.toggle-sidebar #footer,
    body.toggle-sidebar #footer.footer,
    body.toggle-sidebar .footer {
        margin-left: 0 !important;
    }

    body.toggle-sidebar #sidebar.sidebar,
    body.toggle-sidebar .sidebar {
        left: -292px !important;
    }
}

@media (max-width: 1199px) {
    #header.header,
    .header {
        min-height: 64px !important;
        padding: 0 12px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 64px !important;
        left: -292px !important;
        width: 292px !important;
        max-width: calc(100vw - 24px) !important;
        border-radius: 0 14px 14px 0 !important;
        z-index: 1055 !important;
    }

    body.toggle-sidebar #sidebar.sidebar,
    body.toggle-sidebar .sidebar {
        left: 0 !important;
    }

    body.toggle-sidebar {
        overflow: hidden !important;
    }

    body.toggle-sidebar::before {
        content: "" !important;
        position: fixed !important;
        inset: 64px 0 0 0 !important;
        background: rgba(9, 29, 43, 0.52) !important;
        z-index: 1050 !important;
    }

    #main,
    #main.main {
        margin-top: 70px !important;
        margin-left: 0 !important;
        border-radius: 12px 12px 0 0 !important;
        padding: 14px !important;
    }

    #footer,
    #footer.footer,
    .footer {
        margin-left: 0 !important;
    }

    #header .search-bar,
    .header .search-bar {
        position: fixed !important;
        top: 66px !important;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        background: rgba(11, 43, 62, 0.96) !important;
        border: 1px solid rgba(255, 255, 255, 0.2) !important;
        border-radius: 12px !important;
        padding: 10px !important;
        z-index: 1060 !important;
    }
}

@media (max-width: 991px) {
    #header .logo span,
    .header-nav .nav-profile span {
        display: none !important;
    }

    .header-nav .nav-profile {
        padding: 5px 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar .search,
    .bootstrap-table .fixed-table-toolbar .search input {
        width: 100% !important;
    }
}

@media (max-width: 575px) {
    #main,
    #main.main {
        padding: 12px 10px !important;
    }

    .pagetitle h1 {
        font-size: 20px !important;
    }

    .section.register {
        min-height: 100dvh !important;
        padding: 14px 8px !important;
    }

    .section.register .card-body {
        padding: 16px !important;
    }

    .modal-dialog {
        margin: 0.5rem !important;
    }
}

/* ==============================================================
   INVENTORY THEME - PALETTE 1 "DEEP TECH"
============================================================== */
:root {
    --invx-bg: #e2e8f0 !important;
    --invx-bg-soft: #f1f5f9 !important;
    --invx-surface: #ffffff !important;
    --invx-border: #cbd5e1 !important;
    --invx-text: #0b1220 !important;
    --invx-text-soft: #334155 !important;

    --invx-primary: #2563eb !important;
    --invx-primary-strong: #1e3a8a !important;
    --invx-accent: #38bdf8 !important;

    --invx-shell-1: #0b1220 !important;
    --invx-shell-2: #1e3a8a !important;
    --invx-shell-3: #2563eb !important;
}

body {
    background:
        radial-gradient(920px 360px at -5% -10%, rgba(56, 189, 248, 0.16), transparent 62%),
        radial-gradient(820px 340px at 105% -10%, rgba(37, 99, 235, 0.14), transparent 62%),
        var(--invx-bg) !important;
}

#header.header,
.header {
    background: linear-gradient(115deg, var(--invx-shell-1) 0%, var(--invx-shell-2) 58%, var(--invx-shell-3) 100%) !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 270px at -8% 0%, rgba(56, 189, 248, 0.18), transparent 66%),
        linear-gradient(185deg, #0b1220 0%, #1e3a8a 62%, #2563eb 100%) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--invx-primary) 0%, var(--invx-accent) 100%) !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--invx-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.18) !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--invx-primary) !important;
    --bs-btn-border-color: var(--invx-primary) !important;
    --bs-btn-hover-bg: var(--invx-primary-strong) !important;
    --bs-btn-hover-border-color: var(--invx-primary-strong) !important;
}

.section.register {
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(56, 189, 248, 0.18), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(37, 99, 235, 0.16), transparent 66%),
        linear-gradient(180deg, #e2e8f0 0%, #f1f5f9 100%) !important;
}

/* ==============================================================
   DEEP TECH - HARD LOCK NAVBAR + SIDEBAR (VISIBILIDAD TOTAL)
============================================================== */
#header.header,
.header {
    background: linear-gradient(110deg, #0b1220 0%, #1e3a8a 58%, #2563eb 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 28px rgba(7, 17, 38, 0.34) !important;
}

#header .logo span,
#header .logo i,
#header .toggle-sidebar-btn,
#header .toggle-sidebar-btn i,
#header .header-nav .nav-link,
#header .header-nav .nav-icon,
#header .header-nav .nav-icon i,
#header .header-nav .nav-profile span,
#header .header-nav .nav-profile i,
#header .header-nav .nav-profile .dropdown-toggle {
    color: #f8fbff !important;
}

#header .toggle-sidebar-btn,
#header .header-nav .nav-icon {
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    border-radius: 12px !important;
}

#header .toggle-sidebar-btn:hover,
#header .header-nav .nav-icon:hover {
    background: rgba(255, 255, 255, 0.2) !important;
    color: #ffffff !important;
}

#header .search-bar .search-form input {
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid rgba(255, 255, 255, 0.35) !important;
    color: #ffffff !important;
}

#header .search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

#header .search-bar .search-form button,
#header .search-bar .search-form button i {
    color: #ffffff !important;
}

#header .header-nav .nav-profile {
    background: rgba(255, 255, 255, 0.14) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 14px !important;
}

#header .header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.42) !important;
}

#header .header-nav .dropdown-menu,
#header .search-notify-dropdown .dropdown-menu {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.2) !important;
}

#header .header-nav .dropdown-menu .dropdown-header,
#header .header-nav .dropdown-menu .dropdown-item,
#header .header-nav .dropdown-menu .dropdown-item i,
#header .search-notify-dropdown .dropdown-menu .dropdown-header,
#header .search-notify-dropdown .dropdown-menu .notification-item,
#header .search-notify-dropdown .dropdown-menu .notification-item a,
#header .search-notify-dropdown .dropdown-menu .notification-item span,
#header .search-notify-dropdown .dropdown-menu .notification-item strong {
    color: #0f172a !important;
}

#header .header-nav .dropdown-menu .dropdown-item:hover,
#header .search-notify-dropdown .dropdown-menu .notification-item:hover {
    background: #e0f2fe !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 280px at -8% 0%, rgba(56, 189, 248, 0.18), transparent 66%),
        linear-gradient(185deg, #0b1220 0%, #1e3a8a 62%, #2563eb 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 10px 0 24px rgba(5, 14, 32, 0.34) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: rgba(233, 245, 255, 0.88) !important;
}

#sidebar .sidebar-nav .nav-link,
#sidebar .sidebar-nav .nav-link span,
#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link span,
.sidebar .sidebar-nav .nav-link i {
    color: #eff8ff !important;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 12px !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, #2563eb 0%, #38bdf8 100%) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-link.active span,
#sidebar .sidebar-nav .nav-link.active i,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) span,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i,
.sidebar .sidebar-nav .nav-link.active span,
.sidebar .sidebar-nav .nav-link.active i,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) span,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content,
.sidebar .sidebar-nav .nav-content {
    background: rgba(0, 0, 0, 0.16) !important;
    border-radius: 10px !important;
}

#sidebar .sidebar-nav .nav-content a,
#sidebar .sidebar-nav .nav-content a span,
#sidebar .sidebar-nav .nav-content a i,
.sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a span,
.sidebar .sidebar-nav .nav-content a i {
    color: #def0ff !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    color: #ffffff !important;
}

@media (max-width: 1199px) {
    #header.header,
    .header {
        min-height: 64px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 64px !important;
    }
}

/* ==============================================================
   INVENTORY ELEGANT THEME - FINAL LAYER
============================================================== */
:root {
    --eleg-bg: #edf2f7 !important;
    --eleg-surface: #ffffff !important;
    --eleg-border: #d2dde8 !important;
    --eleg-text: #1f2f3f !important;
    --eleg-text-soft: #5f7387 !important;

    --eleg-primary: #2f5d8a !important;
    --eleg-primary-dark: #254a6d !important;
    --eleg-accent: #2fa58d !important;
    --eleg-accent-soft: #d8f1ea !important;

    --eleg-shell-1: #1a2433 !important;
    --eleg-shell-2: #24364b !important;
    --eleg-shell-3: #2f5d8a !important;
}

body {
    font-family: "Inter", "Work Sans", "Segoe UI", sans-serif !important;
    color: var(--eleg-text) !important;
    background:
        radial-gradient(900px 360px at -6% -14%, rgba(47, 165, 141, 0.13), transparent 62%),
        radial-gradient(860px 340px at 106% -14%, rgba(47, 93, 138, 0.15), transparent 62%),
        var(--eleg-bg) !important;
}

h1, h2, h3, h4, h5, h6, .card-title, .pagetitle h1 {
    color: #1a334a !important;
}

#header.header,
.header {
    background: linear-gradient(108deg, var(--eleg-shell-1) 0%, var(--eleg-shell-2) 56%, var(--eleg-shell-3) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 30px rgba(18, 30, 46, 0.34) !important;
}

#header .logo span,
#header .toggle-sidebar-btn,
#header .header-nav .nav-icon,
#header .header-nav .nav-profile span,
#header .header-nav .nav-profile i,
#header .header-nav .nav-link,
#header .bi {
    color: #f5f9fd !important;
}

#header .toggle-sidebar-btn,
#header .header-nav .nav-icon {
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    border-radius: 12px !important;
}

#header .toggle-sidebar-btn:hover,
#header .header-nav .nav-icon:hover {
    background: rgba(255, 255, 255, 0.2) !important;
}

#header .search-bar .search-form input {
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid rgba(255, 255, 255, 0.33) !important;
    color: #ffffff !important;
}

#header .search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

#header .header-nav .nav-profile {
    background: rgba(255, 255, 255, 0.14) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 14px !important;
}

#header .header-nav .dropdown-menu,
#header .search-notify-dropdown .dropdown-menu {
    background: #ffffff !important;
    border: 1px solid var(--eleg-border) !important;
    box-shadow: 0 14px 30px rgba(16, 30, 46, 0.2) !important;
}

#header .header-nav .dropdown-menu .dropdown-item:hover,
#header .search-notify-dropdown .dropdown-menu .notification-item:hover {
    background: #edf5fa !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 280px at -8% 0%, rgba(47, 165, 141, 0.18), transparent 66%),
        linear-gradient(184deg, #1a2433 0%, #24364b 60%, #2f5d8a 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 10px 0 24px rgba(11, 24, 38, 0.34) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: rgba(233, 244, 252, 0.86) !important;
}

#sidebar .sidebar-nav .nav-link,
#sidebar .sidebar-nav .nav-link span,
#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link span,
.sidebar .sidebar-nav .nav-link i {
    color: #edf6fd !important;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.11) !important;
    border-radius: 12px !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--eleg-primary) 0%, var(--eleg-accent) 100%) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content,
.sidebar .sidebar-nav .nav-content {
    background: rgba(0, 0, 0, 0.16) !important;
    border-radius: 10px !important;
}

#sidebar .sidebar-nav .nav-content a,
#sidebar .sidebar-nav .nav-content a span,
#sidebar .sidebar-nav .nav-content a i,
.sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a span,
.sidebar .sidebar-nav .nav-content a i {
    color: #dff0fb !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    color: #ffffff !important;
}

#main.main,
#main {
    background: rgba(255, 255, 255, 0.96) !important;
}

.card,
.modal-content {
    border: 1px solid var(--eleg-border) !important;
    border-radius: 14px !important;
    background: var(--eleg-surface) !important;
    box-shadow: 0 10px 22px rgba(18, 36, 54, 0.1) !important;
}

.form-control,
.form-select {
    border: 1px solid #c7d6e4 !important;
    border-radius: 10px !important;
    color: #1f3448 !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--eleg-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(47, 93, 138, 0.18) !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--eleg-primary) !important;
    --bs-btn-border-color: var(--eleg-primary) !important;
    --bs-btn-hover-bg: var(--eleg-primary-dark) !important;
    --bs-btn-hover-border-color: var(--eleg-primary-dark) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--eleg-accent) !important;
    --bs-btn-border-color: var(--eleg-accent) !important;
}

.section.register {
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(47, 165, 141, 0.15), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(47, 93, 138, 0.16), transparent 66%),
        linear-gradient(180deg, #eef3f8 0%, #e6edf5 100%) !important;
}

/* ==============================================================
   INVENTORY ELEGANT IMPACT - HARD LOCK FINAL
============================================================== */
:root {
    --elegx-shell-1: #141e2c !important;
    --elegx-shell-2: #23354b !important;
    --elegx-shell-3: #2f5d8a !important;
    --elegx-accent: #2fa58d !important;
    --elegx-accent-2: #38b2a0 !important;
    --elegx-border: #d2dde8 !important;
    --elegx-text: #1f3042 !important;
}

#header.header,
.header {
    background: linear-gradient(110deg, var(--elegx-shell-1) 0%, var(--elegx-shell-2) 55%, var(--elegx-shell-3) 100%) !important;
    box-shadow: 0 16px 32px rgba(11, 22, 35, 0.34) !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 280px at -8% 0%, rgba(56, 178, 160, 0.22), transparent 66%),
        linear-gradient(184deg, #172130 0%, #23354b 60%, #2f5d8a 100%) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, #2f5d8a 0%, #2fa58d 100%) !important;
    box-shadow: 0 10px 20px rgba(35, 84, 122, 0.35) !important;
}

#main.main,
#main {
    background: rgba(255, 255, 255, 0.97) !important;
}

.card,
.modal-content,
.dropdown-menu {
    border: 1px solid var(--elegx-border) !important;
    box-shadow: 0 12px 24px rgba(18, 36, 54, 0.12) !important;
}

.bg-primary {
    background: linear-gradient(110deg, #2f5d8a, #3b78ad) !important;
}

.bg-success {
    background: linear-gradient(110deg, #2fa58d, #3ab69f) !important;
}

.bg-danger {
    background: linear-gradient(110deg, #b85c6a, #d37684) !important;
}

.bg-warning {
    background: linear-gradient(110deg, #b28749, #caa05e) !important;
}

.card-footer.bg-primary,
.card-footer.bg-success,
.card-footer.bg-danger,
.card-footer.bg-warning {
    border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: #2f5d8a !important;
    --bs-btn-border-color: #2f5d8a !important;
    --bs-btn-hover-bg: #254a6d !important;
    --bs-btn-hover-border-color: #254a6d !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: #2fa58d !important;
    --bs-btn-border-color: #2fa58d !important;
    --bs-btn-hover-bg: #268875 !important;
    --bs-btn-hover-border-color: #268875 !important;
}

a,
.text-primary {
    color: #2f5d8a !important;
}

a:hover {
    color: #254a6d !important;
}

.badge.bg-danger {
    background: #b85c6a !important;
}

.badge.bg-success {
    background: #2fa58d !important;
}

/* ============================================================== 
   INVENTORY NEO - INNOVADOR HARD LOCK V2 (GLOBAL FINAL)
============================================================== */
:root {
    --neo-bg: #0f1722 !important;
    --neo-surface: #f8fbff !important;
    --neo-border: #c8d8e8 !important;
    --neo-text: #112235 !important;
    --neo-cyan: #00b8d9 !important;
    --neo-blue: #2563eb !important;
    --neo-indigo: #4f46e5 !important;
    --neo-lime: #14b8a6 !important;
}

body {
    background:
        radial-gradient(900px 360px at -8% -10%, rgba(0, 184, 217, 0.2), transparent 64%),
        radial-gradient(820px 340px at 108% -10%, rgba(79, 70, 229, 0.18), transparent 64%),
        #edf3fb !important;
    color: var(--neo-text) !important;
}

body #header.header,
body .header {
    min-height: 70px !important;
    background:
        radial-gradient(520px 220px at 0% 0%, rgba(0, 184, 217, 0.28), transparent 66%),
        linear-gradient(108deg, #0c1420 0%, #142136 42%, #1d2f4f 70%, #2b3f68 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.26) !important;
    box-shadow: 0 16px 34px rgba(6, 14, 28, 0.46) !important;
}

body #header .logo span,
body #header .toggle-sidebar-btn,
body #header .header-nav .nav-link,
body #header .header-nav .nav-icon,
body #header .header-nav .nav-profile span,
body #header .header-nav .nav-profile i,
body #header .bi {
    color: #f4fbff !important;
}

body #header .toggle-sidebar-btn,
body #header .header-nav .nav-icon {
    width: 40px !important;
    height: 40px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.38) !important;
    background: rgba(255, 255, 255, 0.14) !important;
}

body #header .toggle-sidebar-btn:hover,
body #header .header-nav .nav-icon:hover {
    background: rgba(0, 184, 217, 0.32) !important;
    border-color: rgba(0, 184, 217, 0.75) !important;
}

body #sidebar.sidebar,
body .sidebar {
    background:
        radial-gradient(540px 260px at -10% 0%, rgba(0, 184, 217, 0.24), transparent 66%),
        linear-gradient(186deg, #0d1624 0%, #15253b 58%, #22385a 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.18) !important;
    box-shadow: 12px 0 28px rgba(6, 14, 26, 0.42) !important;
}

body #sidebar .sidebar-nav .nav-heading,
body .sidebar .sidebar-nav .nav-heading {
    color: rgba(221, 242, 253, 0.92) !important;
    letter-spacing: 0.08em !important;
    font-size: 11px !important;
    font-weight: 800 !important;
}

body #sidebar .sidebar-nav .nav-link,
body #sidebar .sidebar-nav .nav-link span,
body #sidebar .sidebar-nav .nav-link i,
body .sidebar .sidebar-nav .nav-link,
body .sidebar .sidebar-nav .nav-link span,
body .sidebar .sidebar-nav .nav-link i {
    color: #eff9ff !important;
}

body #sidebar .sidebar-nav .nav-link,
body .sidebar .sidebar-nav .nav-link {
    margin: 6px 10px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.06)) !important;
}

body #sidebar .sidebar-nav .nav-link:hover,
body .sidebar .sidebar-nav .nav-link:hover {
    border-color: rgba(0, 184, 217, 0.55) !important;
    background: linear-gradient(90deg, rgba(0, 184, 217, 0.24), rgba(79, 70, 229, 0.2)) !important;
}

body #sidebar .sidebar-nav .nav-link.active,
body #sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar .sidebar-nav .nav-link.active,
body .sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #ffffff !important;
    border-color: rgba(0, 184, 217, 0.7) !important;
    background: linear-gradient(90deg, #00b8d9 0%, #2563eb 52%, #4f46e5 100%) !important;
    box-shadow: 0 10px 20px rgba(14, 63, 116, 0.42) !important;
}

body #sidebar .sidebar-nav .nav-content,
body .sidebar .sidebar-nav .nav-content {
    margin: 0 10px 10px !important;
    border-radius: 12px !important;
    background: rgba(0, 0, 0, 0.2) !important;
}

body #sidebar .sidebar-nav .nav-content a,
body #sidebar .sidebar-nav .nav-content a i,
body .sidebar .sidebar-nav .nav-content a,
body .sidebar .sidebar-nav .nav-content a i {
    color: #d9f0ff !important;
}

body #sidebar .sidebar-nav .nav-content a:hover,
body #sidebar .sidebar-nav .nav-content a.active,
body .sidebar .sidebar-nav .nav-content a:hover,
body .sidebar .sidebar-nav .nav-content a.active {
    color: #ffffff !important;
    background: rgba(0, 184, 217, 0.24) !important;
}

body #main.main,
body #main {
    margin-top: 76px !important;
    background: rgba(255, 255, 255, 0.97) !important;
    border-radius: 18px 18px 0 0 !important;
}

body .card,
body .modal-content,
body .dropdown-menu {
    border: 1px solid #d1dfec !important;
    border-radius: 16px !important;
    box-shadow: 0 12px 24px rgba(16, 35, 52, 0.12) !important;
}

body .bg-primary {
    background: linear-gradient(112deg, #2563eb, #4f46e5) !important;
}

body .bg-success {
    background: linear-gradient(112deg, #14b8a6, #2fa58d) !important;
}

body .bg-danger {
    background: linear-gradient(112deg, #e35d7b, #c33d64) !important;
}

body .bg-warning {
    background: linear-gradient(112deg, #f5b642, #d89a2e) !important;
}

/* ==============================================================
   HEADER/SIDEBAR MOBILE - HARD FIX
============================================================== */
@media (max-width: 1199px) {
    body #header.header,
    body .header {
        min-height: 64px !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    body #header .logo img,
    body .header .logo img {
        max-height: 38px !important;
    }

    body #header .toggle-sidebar-btn,
    body #header .header-nav .nav-icon,
    body .header .toggle-sidebar-btn,
    body .header-nav .nav-icon {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        border-radius: 10px !important;
        font-size: 20px !important;
        margin-right: 8px !important;
    }

    body #header .header-nav .nav-profile img,
    body .header-nav .nav-profile img {
        width: 34px !important;
        height: 34px !important;
        max-height: 34px !important;
    }

    body #header .search-bar,
    body .header .search-bar {
        top: 64px !important;
        padding: 10px 12px !important;
        background:
            radial-gradient(520px 220px at 0% 0%, rgba(0, 184, 217, 0.28), transparent 66%),
            linear-gradient(108deg, #0c1420 0%, #142136 42%, #1d2f4f 70%, #2b3f68 100%) !important;
        border-top: 1px solid rgba(255, 255, 255, 0.16) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.16) !important;
    }

    body #header .search-bar .search-form input,
    body .header .search-bar .search-form input {
        height: 40px !important;
        font-size: 13px !important;
        color: #f5fbff !important;
        background: rgba(255, 255, 255, 0.12) !important;
        border-color: rgba(255, 255, 255, 0.3) !important;
    }

    body #header .search-bar .search-form input::placeholder,
    body .header .search-bar .search-form input::placeholder {
        color: rgba(235, 246, 255, 0.85) !important;
    }

    body #header .search-notify-dropdown .dropdown-menu,
    body #header .header-nav .dropdown-menu,
    body .header .search-notify-dropdown .dropdown-menu,
    body .header-nav .dropdown-menu {
        min-width: min(360px, calc(100vw - 14px)) !important;
        max-width: calc(100vw - 14px) !important;
    }
}

@media (max-width: 767px) {
    body #header .header-nav .nav-icon,
    body #header .toggle-sidebar-btn,
    body .header .header-nav .nav-icon,
    body .header .toggle-sidebar-btn {
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        margin-right: 6px !important;
        font-size: 18px !important;
    }

    body #header .header-nav .badge-number,
    body .header .header-nav .badge-number {
        top: -4px !important;
        right: -4px !important;
        font-size: 10px !important;
        padding: 2px 5px !important;
    }

    body #header .search-notify-dropdown .dropdown-menu,
    body #header .header-nav .dropdown-menu,
    body .header .search-notify-dropdown .dropdown-menu,
    body .header-nav .dropdown-menu {
        min-width: calc(100vw - 10px) !important;
        max-width: calc(100vw - 10px) !important;
        right: -6px !important;
    }
}

/*!******************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/sidebar.css ***!
  \******************************************************************************************************************/
/* Estado contraido del sidebar para mostrar solamente los iconos. */
@media (min-width: 1200px) {
    body.toggle-sidebar #sidebar.sidebar {
        left: 0 !important;
        width: 76px !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    /* Ajustar el contenido principal al ancho del sidebar contraido. */
    body.toggle-sidebar #main.main,
    body.toggle-sidebar #footer {
        margin-left: 76px !important;
        width: calc(100% - 76px) !important;
    }

    /* Centrar cada opcion principal cuando el texto esta oculto. */
    body.toggle-sidebar #sidebar .sidebar-nav .nav-link {
        justify-content: center;
        min-height: 46px;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    /* Ocultar los nombres de los modulos en el modo de solo iconos. */
    body.toggle-sidebar #sidebar .sidebar-nav .nav-link > span,
    body.toggle-sidebar #sidebar .sidebar-nav .nav-link .bi-chevron-down {
        display: none !important;
    }

    /* Ocultar los submenus para evitar textos visibles en el modo contraido. */
    body.toggle-sidebar #sidebar .sidebar-nav .nav-content {
        display: none !important;
    }

    /* Dar un tamaño uniforme a los iconos principales. */
    body.toggle-sidebar #sidebar .sidebar-nav .nav-link > i:first-child {
        font-size: 20px;
        margin: 0 !important;
    }
}

/*!*****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/tables.css ***!
  \*****************************************************************************************************************/
/* Estilos generales para la tabla */
.estilos_generales {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    display: block;
    margin: auto;
    border-collapse: collapse;
    font-family: 'Roboto', Arial, sans-serif;
    background: #f9fbfc;
    color: #003E51;
    border: 1px solid #c9e7f0;
    border-radius: 8px;
}

.estilos_generales th {
    font-size: 15px;
    font-weight: bold;
    padding: 12px 13px;
    background: #e2f4f9;
    color: #004b60;
    border-bottom: 1px solid #c0e0ea;
    text-align: left;
    white-space: nowrap;
}

.estilos_generales td {
    padding: 8px;
    font-size: 13px;
    background: #ffffff;
    color: #003E51;
    border-bottom: 1px solid #f0f0f0;
    white-space: nowrap;
}

.estilos_generales tbody tr:hover {
    background-color: #f0fbff;
}


/* Scroll para el toolbar */
[id^="toolbar_"] {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 8px;
    padding: 6px 0;
    max-width: 100%;
    scrollbar-width: thin;
    scrollbar-color: #ccc transparent;
    white-space: nowrap;
}

[id^="toolbar_"] > * {
    flex: 0 0 auto; /* evita que se expandan */
}

[id^="toolbar_"]::-webkit-scrollbar {
    height: 6px;
}

[id^="toolbar_"]::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 4px;
}


/* Para pantallas pequeÃ±as */
@media (max-width: 767px) {
    [id^="toolbar_"] {
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        width: 100%;
    }

    [id^="toolbar_"] button {
        flex: 0 0 auto;
        font-size: 14px;
    }

    .estilos_generales {
        overflow-x: auto;
        display: block;
        width: 100%;
    }

    .estilos_generales th,
    .estilos_generales td {
        white-space: nowrap;
    }
}


/* Botones generales personalizados */

/* Estilo comÃºn para todos los botones */

/* Hover de botones */

/* Botones deshabilitados */

/* BotÃ³n peligro */

/* BotÃ³n Ã©xito */

/* BotÃ³n advertencia */

/* BotÃ³n secundario */

/* --------------------------------------------------------------
   Ajuste visual profesional (sin cambiar clases)
-------------------------------------------------------------- */
.estilos_generales {
    background: #f8fafc;
    color: #2b3f55;
    border-color: #d4dee9;
    border-radius: 6px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.estilos_generales th {
    background: #edf3f9;
    color: #31495f;
    border-bottom-color: #d4dee9;
}

.estilos_generales td {
    color: #2b3f55;
    border-bottom-color: #e8eef5;
}

.estilos_generales tbody tr:nth-child(even) td {
    background: #f9fcff;
}

.estilos_generales tbody tr:hover td {
    background-color: #edf4fb;
}

[id^="toolbar_"] {
    scrollbar-color: #b9c7d6 transparent;
}

[id^="toolbar_"]::-webkit-scrollbar-thumb {
    background: #b9c7d6;
}


/* --------------------------------------------------------------
   Final Override - Full Width + Pleasant Table Layout
   (Mantiene clases existentes)
-------------------------------------------------------------- */
table.estilos_generales {
    width: 100% !important;
    max-width: 100% !important;
    display: table !important;
    margin: 0 !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    border-radius: 6px !important;
    border-color: #d4deea !important;
    box-shadow: 0 8px 18px rgba(30, 41, 59, 0.08) !important;
}

.bootstrap-table .table thead th {
    background: #edf3f9 !important;
    color: #334c64 !important;
    border-bottom: 1px solid #d4deea !important;
    text-align: center !important;
}

.bootstrap-table .table tbody td {
    color: #2f455d !important;
    text-align: center !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td {
    background: #f8fbff !important;
}

.bootstrap-table .table tbody tr:hover td {
    background: #edf4fb !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f6f9fd !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: #3f5f80 !important;
    border-color: #3f5f80 !important;
}

/* --------------------------------------------------------------
   Final Professional Tables (sin cambiar clases existentes)
-------------------------------------------------------------- */
:root {
    --tbl-surface: #f6fafd;
    --tbl-head-bg: #e5eef6;
    --tbl-head-text: #000000;
    --tbl-cell-text: #000000;
    --tbl-line: #cfe0ec;
    --tbl-row-alt: #fafdff;
    --tbl-row-hover: #edf5fb;
    --tbl-page-active: #4f87ad;
}

table.estilos_generales,
.bootstrap-table .table.estilos_generales,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    table-layout: auto !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    background: #ffffff !important;
    border: 1px solid var(--tbl-line) !important;
    border-radius: 3px !important;
    box-shadow: 0 8px 16px rgba(29, 63, 90, 0.1) !important;
}

.estilos_generales {
    background: var(--tbl-surface) !important;
    border-color: var(--tbl-line) !important;
    border-radius: 3px !important;
}

.estilos_generales th,
.bootstrap-table .table thead th {
    background: var(--tbl-head-bg) !important;
    color: var(--tbl-head-text) !important;
    border-bottom: 1px solid var(--tbl-line) !important;
    font-weight: 700 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales td,
.bootstrap-table .table tbody td {
    color: var(--tbl-cell-text) !important;
    border-bottom: 1px solid #e5ebf3 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales tbody tr:nth-child(even) td,
.bootstrap-table .table tbody tr:nth-child(even) td {
    background: var(--tbl-row-alt) !important;
}

.estilos_generales tbody tr:hover td,
.bootstrap-table .table tbody tr:hover td {
    background: var(--tbl-row-hover) !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f2f8fd !important;
    border-top: 1px solid #d5e5f1 !important;
}

.bootstrap-table .fixed-table-pagination .page-link {
    color: #000000 !important;
    border-color: #ccdeeb !important;
    border-radius: 2px !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tbl-page-active) !important;
    border-color: var(--tbl-page-active) !important;
    color: #fff !important;
}

.bootstrap-table .fixed-table-pagination .page-link:hover {
    background: #e7f1f9 !important;
    color: #000000 !important;
}

/* --------------------------------------------------------------
   ENTERPRISE SKY TABLES FINAL END LAYER
-------------------------------------------------------------- */
:root {
    --tbl-surface: #f5fafe;
    --tbl-head-bg: #dcecf8;
    --tbl-head-text: #000000;
    --tbl-cell-text: #000000;
    --tbl-line: #c8dced;
    --tbl-row-alt: #fbfdff;
    --tbl-row-hover: #eaf4fc;
    --tbl-page-active: #3380b6;
}

table.estilos_generales,
.bootstrap-table .table.estilos_generales,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    table-layout: auto !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    background: #ffffff !important;
    border: 1px solid var(--tbl-line) !important;
    border-radius: 3px !important;
    box-shadow: 0 6px 14px rgba(21, 59, 89, 0.1) !important;
}

.estilos_generales {
    background: var(--tbl-surface) !important;
    border-color: var(--tbl-line) !important;
    border-radius: 3px !important;
}

.estilos_generales th,
.bootstrap-table .table thead th {
    background: var(--tbl-head-bg) !important;
    color: var(--tbl-head-text) !important;
    border-bottom: 1px solid var(--tbl-line) !important;
    font-weight: 700 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales td,
.bootstrap-table .table tbody td {
    color: var(--tbl-cell-text) !important;
    border-bottom: 1px solid #deebf5 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales tbody tr:nth-child(even) td,
.bootstrap-table .table tbody tr:nth-child(even) td {
    background: var(--tbl-row-alt) !important;
}

.estilos_generales tbody tr:hover td,
.bootstrap-table .table tbody tr:hover td {
    background: var(--tbl-row-hover) !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f1f8fe !important;
    border-top: 1px solid #d2e4f2 !important;
}

.bootstrap-table .fixed-table-pagination .page-link {
    color: #000000 !important;
    border-color: #c8dced !important;
    border-radius: 2px !important;
}

.bootstrap-table .fixed-table-pagination .page-link:hover {
    background: #e6f2fb !important;
    color: #000000 !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tbl-page-active) !important;
    border-color: var(--tbl-page-active) !important;
    color: #ffffff !important;
}

/* Botones de tablas y toolbar en línea profesional */
[id^="toolbar_"] .btn,
[id^="toolbar_"] .btn-custom,
[id^="toolbar_"] .btn-custom-text,
.bootstrap-table .fixed-table-toolbar .btn,
table.estilos_generales .btn {
    border-radius: 3px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    border-width: 1px !important;
}

[id^="toolbar_"] .btn.btn-primary,
[id^="toolbar_"] .btn-custom,
[id^="toolbar_"] .btn-custom-text,
.bootstrap-table .fixed-table-toolbar .btn.btn-primary,
table.estilos_generales .btn.btn-primary {
    background: #0f82cd !important;
    border-color: #0f82cd !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-primary:hover,
[id^="toolbar_"] .btn-custom:hover,
[id^="toolbar_"] .btn-custom-text:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-primary:hover,
table.estilos_generales .btn.btn-primary:hover {
    background: #0d70b0 !important;
    border-color: #0d70b0 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-secondary,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary,
table.estilos_generales .btn.btn-secondary {
    background: #2f78ab !important;
    border-color: #2f78ab !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-secondary:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary:hover,
table.estilos_generales .btn.btn-secondary:hover {
    background: #286a97 !important;
    border-color: #286a97 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-success,
.bootstrap-table .fixed-table-toolbar .btn.btn-success,
table.estilos_generales .btn.btn-success {
    background: #0a9772 !important;
    border-color: #0a9772 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-success:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-success:hover,
table.estilos_generales .btn.btn-success:hover {
    background: #087f61 !important;
    border-color: #087f61 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-warning,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning,
table.estilos_generales .btn.btn-warning {
    background: #ab7624 !important;
    border-color: #ab7624 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-warning:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning:hover,
table.estilos_generales .btn.btn-warning:hover {
    background: #92651f !important;
    border-color: #92651f !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-danger,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger,
table.estilos_generales .btn.btn-danger {
    background: #b54545 !important;
    border-color: #b54545 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-danger:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger:hover,
table.estilos_generales .btn.btn-danger:hover {
    background: #9b3b3b !important;
    border-color: #9b3b3b !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   TOOLBAR BUTTONS (utilMax) - FINAL por ID
-------------------------------------------------------------- */
#btn_nuevo,
#btn_remove_all,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel {
    border-radius: 2px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    border-width: 1px !important;
    color: #ffffff !important;
}

#btn_nuevo {
    background: #0f82cd !important;
    border-color: #0f82cd !important;
}

#btn_nuevo:hover {
    background: #0d70b0 !important;
    border-color: #0d70b0 !important;
}

#btn_remove_all {
    background: #c54545 !important;
    border-color: #c54545 !important;
}

#btn_remove_all:hover {
    background: #a93a3a !important;
    border-color: #a93a3a !important;
}

#btn_estado_all {
    background: #1e9ad8 !important;
    border-color: #1e9ad8 !important;
}

#btn_estado_all:hover {
    background: #1a86bc !important;
    border-color: #1a86bc !important;
}

#btn_carga_masiva {
    background: #0a9772 !important;
    border-color: #0a9772 !important;
}

#btn_carga_masiva:hover {
    background: #087f61 !important;
    border-color: #087f61 !important;
}

#btn_descargar_excel {
    background: #148a53 !important;
    border-color: #148a53 !important;
}

#btn_descargar_excel:hover {
    background: #117647 !important;
    border-color: #117647 !important;
}

/* --------------------------------------------------------------
   TABLE TOOLBAR PRO CONTROLS (refresh / columns / search)
   Capa final enfocada en controles de Bootstrap Table
-------------------------------------------------------------- */
.bootstrap-table .fixed-table-toolbar {
    padding: 10px 0 8px !important;
}

.bootstrap-table .fixed-table-toolbar .btn-group,
.bootstrap-table .fixed-table-toolbar .columns,
.bootstrap-table .fixed-table-toolbar .search {
    margin-bottom: 6px !important;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn {
    border-radius: 8px !important;
    border: 1px solid #c7d8e7 !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef5fb 100%) !important;
    color: #1d425c !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    padding: 6px 12px !important;
    box-shadow: 0 2px 6px rgba(18, 47, 68, 0.1) !important;
}

.bootstrap-table .fixed-table-toolbar .btn.btn-primary,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary,
.bootstrap-table .fixed-table-toolbar .btn.btn-success,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger {
    border: 1px solid #c7d8e7 !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef5fb 100%) !important;
    color: #1d425c !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover {
    background: linear-gradient(180deg, #f8fcff 0%, #e3eef8 100%) !important;
    border-color: #9fc1dc !important;
    color: #16364c !important;
}

.bootstrap-table .fixed-table-toolbar .btn.btn-primary:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-success:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger:hover {
    background: linear-gradient(180deg, #f8fcff 0%, #e3eef8 100%) !important;
    border-color: #9fc1dc !important;
    color: #16364c !important;
}

.bootstrap-table .fixed-table-toolbar .btn:focus,
.bootstrap-table .fixed-table-toolbar .columns .btn:focus {
    box-shadow: 0 0 0 0.2rem rgba(22, 111, 168, 0.2) !important;
}

.bootstrap-table .fixed-table-toolbar .search input.form-control,
.bootstrap-table .fixed-table-toolbar .search input[type="search"] {
    height: 36px !important;
    border-radius: 8px !important;
    border: 1px solid #c7d8e7 !important;
    background: #ffffff !important;
    color: #1d425c !important;
    font-size: 13px !important;
    padding: 6px 10px !important;
}

.bootstrap-table .fixed-table-toolbar .search input::placeholder {
    color: #6f8799 !important;
}

.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu {
    border-radius: 10px !important;
    border: 1px solid #c8dced !important;
    box-shadow: 0 12px 22px rgba(14, 44, 64, 0.14) !important;
    padding: 8px !important;
    min-width: 240px !important;
}

.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu label,
.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu .dropdown-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 13px !important;
    color: #1f3f57 !important;
    border-radius: 6px !important;
    padding: 6px 8px !important;
}

.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu label:hover,
.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu .dropdown-item:hover {
    background: #edf5fb !important;
}

.bootstrap-table .fixed-table-toolbar .columns input[type="checkbox"] {
    width: 15px !important;
    height: 15px !important;
    accent-color: #1f87c7 !important;
}

.bootstrap-table .fixed-table-pagination .pagination-info,
.bootstrap-table .fixed-table-pagination .page-list {
    font-size: 13px !important;
    color: #2a4a63 !important;
    font-weight: 600 !important;
}

/* --------------------------------------------------------------
   UNIFORM COLOR + UNDERSTANDABLE CONTROLS (LAST LAYER)
-------------------------------------------------------------- */
:root {
    --tb-brand: #1f87c7;
    --tb-brand-hover: #166fa5;
    --tb-surface: #f3f9ff;
    --tb-border: #bcd4e6;
    --tb-text: #16384e;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    border-radius: 10px !important;
    border: 1px solid var(--tb-border) !important;
    background: var(--tb-surface) !important;
    color: var(--tb-text) !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    padding: 7px 12px !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover,
[id^="toolbar_"] .btn:hover {
    border-color: var(--tb-brand) !important;
    background: #e8f3fb !important;
    color: #0f2e40 !important;
}

.bootstrap-table .fixed-table-toolbar .btn:focus,
[id^="toolbar_"] .btn:focus {
    box-shadow: 0 0 0 0.2rem rgba(31, 135, 199, 0.2) !important;
}

/* Mantener botones de acciones internas (CRUD) con color claro y uniforme */
#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro,
#btn_pdf_completo,
#btn_pdf_filtro {
    color: #ffffff !important;
}

/* Botones de bootstrap-table (refresh/columns/export) con color uniforme */
.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="paginationSwitch"],
.bootstrap-table .fixed-table-toolbar button[name="toggle"],
.bootstrap-table .fixed-table-toolbar button[name="fullscreen"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tb-brand) !important;
    border-color: var(--tb-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="paginationSwitch"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="toggle"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="fullscreen"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tb-brand-hover) !important;
    border-color: var(--tb-brand-hover) !important;
    color: #ffffff !important;
}

/* Hacer controles más entendibles: texto visible en botones de icono */
.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]::after {
    content: "Refrescar";
}

.bootstrap-table .fixed-table-toolbar button[name="columns"]::after {
    content: "Columnas";
}

.bootstrap-table .fixed-table-toolbar button[name="export"]::after {
    content: "Exportar";
}

/* Barra de búsqueda más legible y pareja */
.bootstrap-table .fixed-table-toolbar .search input.form-control,
.bootstrap-table .fixed-table-toolbar .search input[type="search"] {
    border-radius: 10px !important;
    border: 1px solid var(--tb-border) !important;
    background: #ffffff !important;
    color: #1b3d53 !important;
    height: 38px !important;
}

.bootstrap-table .fixed-table-toolbar .search input::placeholder {
    color: #6c8496 !important;
    font-weight: 600 !important;
}

/* Paginación con color uniforme */
.bootstrap-table .fixed-table-pagination .page-link {
    border-radius: 8px !important;
    border-color: var(--tb-border) !important;
    color: #204963 !important;
    background: #ffffff !important;
}

.bootstrap-table .fixed-table-pagination .page-link:hover {
    border-color: var(--tb-brand) !important;
    color: #0f2e40 !important;
    background: #ecf6fd !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tb-brand) !important;
    border-color: var(--tb-brand) !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   BUTTON SIZE NORMALIZER (all same size)
-------------------------------------------------------------- */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 12px !important;
    font-size: 13px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    vertical-align: middle !important;
}

/* Botones de controles de bootstrap-table con ancho consistente */
.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    min-width: 118px !important;
}

/* Botones CRUD del toolbar con mismo alto/ancho visual */
#btn_nuevo,
#btn_remove_all,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_pdf_completo,
#btn_excel_completo,
#btn_pdf_filtro,
#btn_excel_filtro {
    min-width: 120px !important;
}

/* Íconos con tamaño uniforme */
.bootstrap-table .fixed-table-toolbar .btn i,
[id^="toolbar_"] .btn i,
[id^="toolbar_"] .btn .fas,
[id^="toolbar_"] .btn .fa,
[id^="toolbar_"] .btn .ri {
    font-size: 13px !important;
    line-height: 1 !important;
}

@media (max-width: 767px) {
    .bootstrap-table .fixed-table-toolbar button[name="refresh"],
    .bootstrap-table .fixed-table-toolbar button[name="columns"],
    .bootstrap-table .fixed-table-toolbar button[name="export"],
    #btn_nuevo,
    #btn_remove_all,
    #btn_estado_all,
    #btn_carga_masiva,
    #btn_descargar_excel,
    #btn_pdf_completo,
    #btn_excel_completo,
    #btn_pdf_filtro,
    #btn_excel_filtro {
        min-width: auto !important;
    }
}

/* ==============================================================
   INVENTORY TABLES - DIGITAL PROFESSIONAL FINAL LAYER
============================================================== */
:root {
    --tblx-bg: #f7fbff;
    --tblx-surface: #ffffff;
    --tblx-border: #cfdeec;
    --tblx-head-bg: #e9f2fb;
    --tblx-head-text: #133c54;
    --tblx-text: #213d51;
    --tblx-row-alt: #fbfdff;
    --tblx-row-hover: #edf5fc;
    --tblx-brand: #1c86c8;
    --tblx-brand-hover: #146493;
    --tblx-success: #128261;
    --tblx-danger: #c84a4a;
}

table.estilos_generales,
.bootstrap-table .table.estilos_generales,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    table-layout: auto !important;
    color: var(--tblx-text) !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    border-radius: 10px !important;
    background: var(--tblx-surface) !important;
    box-shadow: 0 8px 20px rgba(13, 38, 56, 0.11) !important;
}

.estilos_generales,
.bootstrap-table .table {
    background: var(--tblx-bg) !important;
}

.estilos_generales th,
.bootstrap-table .table thead th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
    border-bottom: 1px solid var(--tblx-border) !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
}

.estilos_generales td,
.bootstrap-table .table tbody td {
    color: var(--tblx-text) !important;
    border-bottom: 1px solid #e4edf6 !important;
    font-size: 13px !important;
    vertical-align: middle !important;
}

.estilos_generales tbody tr:nth-child(even) td,
.bootstrap-table .table tbody tr:nth-child(even) td {
    background: var(--tblx-row-alt) !important;
}

.estilos_generales tbody tr:hover td,
.bootstrap-table .table tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

[id^="toolbar_"] {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    padding: 8px 0;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: thin;
    scrollbar-color: #b7ccdd transparent;
}

[id^="toolbar_"] > * {
    flex: 0 0 auto;
}

[id^="toolbar_"]::-webkit-scrollbar {
    height: 7px;
}

[id^="toolbar_"]::-webkit-scrollbar-thumb {
    background: #b7ccdd;
    border-radius: 8px;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    height: 38px !important;
    min-height: 38px !important;
    border-radius: 10px !important;
    border: 1px solid var(--tblx-border) !important;
    background: #ffffff !important;
    color: var(--tblx-text) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    box-shadow: 0 3px 10px rgba(12, 36, 52, 0.08) !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover,
[id^="toolbar_"] .btn:hover {
    background: #eef6fd !important;
    border-color: #aac4d8 !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

/* ==============================================================
   INVENTORY TABLES - ELEGANT FINAL LAYER
============================================================== */
:root {
    --tblx-bg: #f6f9fc !important;
    --tblx-surface: #ffffff !important;
    --tblx-border: #d2dde8 !important;
    --tblx-head-bg: #e8eef5 !important;
    --tblx-head-text: #1a334a !important;
    --tblx-text: #273d52 !important;
    --tblx-row-alt: #fbfdff !important;
    --tblx-row-hover: #edf5fa !important;
    --tblx-brand: #2f5d8a !important;
    --tblx-brand-hover: #254a6d !important;
    --tblx-success: #2fa58d !important;
    --tblx-danger: #bd5b5b !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    border-radius: 10px !important;
    background: var(--tblx-surface) !important;
    box-shadow: 0 8px 18px rgba(17, 35, 52, 0.1) !important;
}

.bootstrap-table .table thead th,
.estilos_generales th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
    border-bottom: 1px solid var(--tblx-border) !important;
}

.bootstrap-table .table tbody td,
.estilos_generales td {
    color: var(--tblx-text) !important;
    border-bottom: 1px solid #e4ecf4 !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td,
.estilos_generales tbody tr:nth-child(even) td {
    background: var(--tblx-row-alt) !important;
}

.bootstrap-table .table tbody tr:hover td,
.estilos_generales tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

/* ==============================================================
   TABLE BUTTONS - HARD LOCK FINAL END
============================================================== */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    min-height: 38px !important;
    padding: 0 12px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    color: #143a53 !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: #128261 !important;
    border-color: #128261 !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c84a4a !important;
    border-color: #c84a4a !important;
    color: #ffffff !important;
}

.bootstrap-table .table .btn,
.estilos_generales .btn {
    min-height: 31px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.bootstrap-table .table .btn-primary,
.estilos_generales .btn-primary,
.bootstrap-table .table .btn-danger,
.estilos_generales .btn-danger,
.bootstrap-table .table .btn-warning,
.estilos_generales .btn-warning {
    color: #ffffff !important;
}

/* ==============================================================
   MOBILE ICON-ONLY HARD LOCK (absolute final)
============================================================== */
@media (max-width: 767px) {
    .bootstrap-table .fixed-table-toolbar .btn,
    .bootstrap-table .fixed-table-toolbar .columns .btn,
    [id^="toolbar_"] .btn,
    .bootstrap-table .table tbody td .btn,
    .bootstrap-table .table tbody td .accion-informe,
    .estilos_generales tbody td .btn,
    .estilos_generales tbody td .accion-informe {
        width: 34px !important;
        min-width: 34px !important;
        max-width: 34px !important;
        height: 34px !important;
        min-height: 34px !important;
        max-height: 34px !important;
        padding: 0 !important;
        border-radius: 9px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0 !important;
        font-size: 0 !important;
        line-height: 0 !important;
        overflow: hidden !important;
        white-space: nowrap !important;
    }

    .bootstrap-table .fixed-table-toolbar .btn i,
    .bootstrap-table .fixed-table-toolbar .columns .btn i,
    [id^="toolbar_"] .btn i,
    [id^="toolbar_"] .btn .fa,
    [id^="toolbar_"] .btn .fas,
    [id^="toolbar_"] .btn .far,
    [id^="toolbar_"] .btn .fab,
    [id^="toolbar_"] .btn .ri,
    .bootstrap-table .table tbody td .btn i,
    .bootstrap-table .table tbody td .btn .fa,
    .bootstrap-table .table tbody td .btn .fas,
    .bootstrap-table .table tbody td .btn .far,
    .bootstrap-table .table tbody td .btn .fab,
    .bootstrap-table .table tbody td .btn .ri,
    .bootstrap-table .table tbody td .accion-informe i,
    .bootstrap-table .table tbody td .accion-informe .fa,
    .bootstrap-table .table tbody td .accion-informe .fas,
    .bootstrap-table .table tbody td .accion-informe .far,
    .bootstrap-table .table tbody td .accion-informe .fab,
    .bootstrap-table .table tbody td .accion-informe .ri,
    .estilos_generales tbody td .btn i,
    .estilos_generales tbody td .accion-informe i {
        font-size: 15px !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .bootstrap-table .fixed-table-toolbar .btn small,
    .bootstrap-table .fixed-table-toolbar .btn span,
    [id^="toolbar_"] .btn small,
    [id^="toolbar_"] .btn span,
    .bootstrap-table .table tbody td .btn small,
    .bootstrap-table .table tbody td .btn span,
    .bootstrap-table .table tbody td .accion-informe small,
    .bootstrap-table .table tbody td .accion-informe span,
    .estilos_generales tbody td .btn small,
    .estilos_generales tbody td .btn span,
    .estilos_generales tbody td .accion-informe small,
    .estilos_generales tbody td .accion-informe span {
        display: none !important;
    }
}

/* ==============================================================
   MOBILE ICON-ONLY HARD LOCK (final override)
   - En celular, botones de tablas muestran solo iconos
============================================================== */
@media (max-width: 767px) {
    .bootstrap-table .fixed-table-toolbar .btn,
    .bootstrap-table .fixed-table-toolbar .columns .btn,
    [id^="toolbar_"] .btn,
    .bootstrap-table .table tbody td .btn,
    .bootstrap-table .table tbody td .accion-informe,
    .estilos_generales tbody td .btn,
    .estilos_generales tbody td .accion-informe {
        width: 34px !important;
        min-width: 34px !important;
        max-width: 34px !important;
        height: 34px !important;
        min-height: 34px !important;
        max-height: 34px !important;
        padding: 0 !important;
        border-radius: 9px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0 !important;
        font-size: 0 !important;
        line-height: 0 !important;
        overflow: hidden !important;
        white-space: nowrap !important;
    }

    .bootstrap-table .fixed-table-toolbar .btn i,
    .bootstrap-table .fixed-table-toolbar .columns .btn i,
    [id^="toolbar_"] .btn i,
    [id^="toolbar_"] .btn .fa,
    [id^="toolbar_"] .btn .fas,
    [id^="toolbar_"] .btn .far,
    [id^="toolbar_"] .btn .fab,
    [id^="toolbar_"] .btn .ri,
    .bootstrap-table .table tbody td .btn i,
    .bootstrap-table .table tbody td .btn .fa,
    .bootstrap-table .table tbody td .btn .fas,
    .bootstrap-table .table tbody td .btn .far,
    .bootstrap-table .table tbody td .btn .fab,
    .bootstrap-table .table tbody td .btn .ri,
    .bootstrap-table .table tbody td .accion-informe i,
    .bootstrap-table .table tbody td .accion-informe .fa,
    .bootstrap-table .table tbody td .accion-informe .fas,
    .bootstrap-table .table tbody td .accion-informe .far,
    .bootstrap-table .table tbody td .accion-informe .fab,
    .bootstrap-table .table tbody td .accion-informe .ri,
    .estilos_generales tbody td .btn i,
    .estilos_generales tbody td .accion-informe i {
        font-size: 15px !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .bootstrap-table .fixed-table-toolbar .btn small,
    .bootstrap-table .fixed-table-toolbar .btn span,
    [id^="toolbar_"] .btn small,
    [id^="toolbar_"] .btn span,
    .bootstrap-table .table tbody td .btn small,
    .bootstrap-table .table tbody td .btn span,
    .bootstrap-table .table tbody td .accion-informe small,
    .bootstrap-table .table tbody td .accion-informe span,
    .estilos_generales tbody td .btn small,
    .estilos_generales tbody td .btn span,
    .estilos_generales tbody td .accion-informe small,
    .estilos_generales tbody td .accion-informe span {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .bootstrap-table .fixed-table-toolbar .btn,
    .bootstrap-table .fixed-table-toolbar .columns .btn,
    [id^="toolbar_"] .btn,
    .bootstrap-table .table tbody td .btn,
    .bootstrap-table .table tbody td .accion-informe,
    .estilos_generales tbody td .btn,
    .estilos_generales tbody td .accion-informe {
        width: 34px !important;
        min-width: 34px !important;
        height: 34px !important;
        min-height: 34px !important;
        padding: 0 !important;
        border-radius: 9px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0 !important;
        font-size: 0 !important;
        line-height: 0 !important;
    }

    .bootstrap-table .fixed-table-toolbar .btn i,
    .bootstrap-table .fixed-table-toolbar .columns .btn i,
    [id^="toolbar_"] .btn i,
    .bootstrap-table .table tbody td .btn i,
    .bootstrap-table .table tbody td .accion-informe i,
    .estilos_generales tbody td .btn i,
    .estilos_generales tbody td .accion-informe i,
    .bootstrap-table .table tbody td .btn .fa,
    .bootstrap-table .table tbody td .btn .fas,
    .bootstrap-table .table tbody td .btn .ri,
    .bootstrap-table .table tbody td .accion-informe .fa,
    .bootstrap-table .table tbody td .accion-informe .fas,
    .bootstrap-table .table tbody td .accion-informe .ri {
        font-size: 15px !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .bootstrap-table .table tbody td .btn small,
    .bootstrap-table .table tbody td .btn span,
    .bootstrap-table .table tbody td .accion-informe small,
    .bootstrap-table .table tbody td .accion-informe span,
    .estilos_generales tbody td .btn small,
    .estilos_generales tbody td .btn span,
    .estilos_generales tbody td .accion-informe small,
    .estilos_generales tbody td .accion-informe span {
        font-size: 0 !important;
    }
}

/* ==============================================================
   TABLE BUTTONS - LEGIBILIDAD Y UNIFORMIDAD FINAL
============================================================== */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    min-height: 38px !important;
    padding: 0 12px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    color: #16384e !important;
}

.bootstrap-table .fixed-table-toolbar .btn i,
.bootstrap-table .fixed-table-toolbar .columns .btn i,
[id^="toolbar_"] .btn i,
[id^="toolbar_"] .btn .fa,
[id^="toolbar_"] .btn .fas,
[id^="toolbar_"] .btn .ri {
    font-size: 13px !important;
    line-height: 1 !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: #128261 !important;
    border-color: #128261 !important;
    color: #ffffff !important;
}

#btn_nuevo:hover,
#btn_estado_all:hover,
#btn_carga_masiva:hover,
#btn_descargar_excel:hover,
#btn_excel_completo:hover,
#btn_excel_filtro:hover {
    background: #0f6d52 !important;
    border-color: #0f6d52 !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c84a4a !important;
    border-color: #c84a4a !important;
    color: #ffffff !important;
}

#btn_remove_all:hover,
#btn_pdf_completo:hover,
#btn_pdf_filtro:hover {
    background: #ab3f3f !important;
    border-color: #ab3f3f !important;
    color: #ffffff !important;
}

.bootstrap-table .table .btn,
.estilos_generales .btn {
    min-height: 31px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.bootstrap-table .table .btn-primary,
.estilos_generales .btn-primary {
    color: #ffffff !important;
    background: #2563eb !important;
    border-color: #2563eb !important;
}

.bootstrap-table .table .btn-danger,
.estilos_generales .btn-danger {
    color: #ffffff !important;
    background: #c84a4a !important;
    border-color: #c84a4a !important;
}

.bootstrap-table .table .btn-warning,
.estilos_generales .btn-warning {
    color: #ffffff !important;
    background: #c58b2d !important;
    border-color: #c58b2d !important;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    border-color: var(--tblx-border) !important;
    color: #274158 !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover,
[id^="toolbar_"] .btn:hover {
    background: #eef4f9 !important;
    border-color: #b9ccde !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: var(--tblx-success) !important;
    border-color: var(--tblx-success) !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: var(--tblx-danger) !important;
    border-color: var(--tblx-danger) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f4f9fe !important;
    border-top: 1px solid var(--tblx-border) !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
}

@media (max-width: 991px) {
    .bootstrap-table .fixed-table-toolbar {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar .search,
    .bootstrap-table .fixed-table-toolbar .search input {
        width: 100% !important;
    }
}

/* ==============================================================
   TABLES - PALETTE 1 "DEEP TECH"
============================================================== */
:root {
    --tblx-bg: #f8fbff !important;
    --tblx-surface: #ffffff !important;
    --tblx-border: #cbd5e1 !important;
    --tblx-head-bg: #e2e8f0 !important;
    --tblx-head-text: #0b1220 !important;
    --tblx-text: #0f172a !important;
    --tblx-row-alt: #f8fafc !important;
    --tblx-row-hover: #e0f2fe !important;
    --tblx-brand: #2563eb !important;
    --tblx-brand-hover: #1e3a8a !important;
    --tblx-success: #2563eb !important;
    --tblx-danger: #1e3a8a !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

/* ==============================================================
   INVENTORY TABLES - ELEGANT IMPACT HARD LOCK FINAL
============================================================== */
:root {
    --tblx-bg: #f4f8fc !important;
    --tblx-surface: #ffffff !important;
    --tblx-border: #d2dde8 !important;
    --tblx-head-bg: #e6edf5 !important;
    --tblx-head-text: #1a334a !important;
    --tblx-text: #273d52 !important;
    --tblx-row-alt: #fbfcfe !important;
    --tblx-row-hover: #eaf3f8 !important;
    --tblx-brand: #2f5d8a !important;
    --tblx-brand-hover: #254a6d !important;
    --tblx-success: #2fa58d !important;
    --tblx-danger: #b85c6a !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    box-shadow: 0 10px 22px rgba(16, 33, 49, 0.12) !important;
}

.bootstrap-table .table thead th,
.estilos_generales th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
}

.bootstrap-table .table tbody td,
.estilos_generales td {
    color: var(--tblx-text) !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td,
.estilos_generales tbody tr:nth-child(even) td {
    background: var(--tblx-row-alt) !important;
}

.bootstrap-table .table tbody tr:hover td,
.estilos_generales tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: var(--tblx-success) !important;
    border-color: var(--tblx-success) !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: var(--tblx-danger) !important;
    border-color: var(--tblx-danger) !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
}

/* ==============================================================
   INVENTORY TABLES - NEO IMPACT V2 FINAL
============================================================== */
:root {
    --tblx-border: #c8d8e8 !important;
    --tblx-head-bg: #dde8f5 !important;
    --tblx-head-text: #10253a !important;
    --tblx-text: #243a50 !important;
    --tblx-row-hover: #e3f5fb !important;
    --tblx-brand: #2563eb !important;
    --tblx-brand-hover: #1f4eb5 !important;
    --tblx-success: #14b8a6 !important;
    --tblx-danger: #c33d64 !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    box-shadow: 0 10px 22px rgba(16, 33, 49, 0.14) !important;
}

.bootstrap-table .table thead th,
.estilos_generales th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
}

.bootstrap-table .table tbody tr:hover td,
.estilos_generales tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

/* ==============================================================
   TABLE BUTTONS - HARD LOCK FINAL END V2
============================================================== */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    min-height: 38px !important;
    padding: 0 12px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    color: #143a53 !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: #128261 !important;
    border-color: #128261 !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c84a4a !important;
    border-color: #c84a4a !important;
    color: #ffffff !important;
}

.bootstrap-table .table .btn,
.estilos_generales .btn {
    min-height: 31px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.bootstrap-table .table .btn-primary,
.estilos_generales .btn-primary,
.bootstrap-table .table .btn-danger,
.estilos_generales .btn-danger,
.bootstrap-table .table .btn-warning,
.estilos_generales .btn-warning {
    color: #ffffff !important;
}

/* ==============================================================
   MOBILE ICON-ONLY HARD LOCK (EOF winner)
============================================================== */
@media (max-width: 767px) {
    body .bootstrap-table .fixed-table-toolbar .btn,
    body .bootstrap-table .fixed-table-toolbar .columns .btn,
    body [id^="toolbar_"] .btn,
    body .bootstrap-table .table tbody td .btn,
    body .bootstrap-table .table tbody td .accion-informe,
    body .estilos_generales tbody td .btn,
    body .estilos_generales tbody td .accion-informe {
        width: 34px !important;
        min-width: 34px !important;
        max-width: 34px !important;
        height: 34px !important;
        min-height: 34px !important;
        max-height: 34px !important;
        padding: 0 !important;
        border-radius: 9px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0 !important;
        font-size: 0 !important;
        line-height: 0 !important;
        overflow: hidden !important;
        white-space: nowrap !important;
    }

    body .bootstrap-table .fixed-table-toolbar .btn i,
    body .bootstrap-table .fixed-table-toolbar .columns .btn i,
    body [id^="toolbar_"] .btn i,
    body [id^="toolbar_"] .btn .fa,
    body [id^="toolbar_"] .btn .fas,
    body [id^="toolbar_"] .btn .far,
    body [id^="toolbar_"] .btn .fab,
    body [id^="toolbar_"] .btn .ri,
    body .bootstrap-table .table tbody td .btn i,
    body .bootstrap-table .table tbody td .btn .fa,
    body .bootstrap-table .table tbody td .btn .fas,
    body .bootstrap-table .table tbody td .btn .far,
    body .bootstrap-table .table tbody td .btn .fab,
    body .bootstrap-table .table tbody td .btn .ri,
    body .bootstrap-table .table tbody td .accion-informe i,
    body .bootstrap-table .table tbody td .accion-informe .fa,
    body .bootstrap-table .table tbody td .accion-informe .fas,
    body .bootstrap-table .table tbody td .accion-informe .far,
    body .bootstrap-table .table tbody td .accion-informe .fab,
    body .bootstrap-table .table tbody td .accion-informe .ri,
    body .estilos_generales tbody td .btn i,
    body .estilos_generales tbody td .accion-informe i {
        font-size: 15px !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    body .bootstrap-table .fixed-table-toolbar .btn small,
    body .bootstrap-table .fixed-table-toolbar .btn span,
    body [id^="toolbar_"] .btn small,
    body [id^="toolbar_"] .btn span,
    body .bootstrap-table .table tbody td .btn small,
    body .bootstrap-table .table tbody td .btn span,
    body .bootstrap-table .table tbody td .accion-informe small,
    body .bootstrap-table .table tbody td .accion-informe span,
    body .estilos_generales tbody td .btn small,
    body .estilos_generales tbody td .btn span,
    body .estilos_generales tbody td .accion-informe small,
    body .estilos_generales tbody td .accion-informe span {
        display: none !important;
    }
}

/* Estado en filas: mantener formato normal en movil */
@media (max-width: 767px) {
    body .bootstrap-table .table tbody td .btn.estado,
    body .estilos_generales tbody td .btn.estado {
        width: auto !important;
        min-width: 78px !important;
        max-width: none !important;
        height: 30px !important;
        min-height: 30px !important;
        max-height: none !important;
        padding: 0 10px !important;
        font-size: 11px !important;
        line-height: 1 !important;
        gap: 4px !important;
        overflow: visible !important;
        white-space: nowrap !important;
    }

    body .bootstrap-table .table tbody td .btn.estado small,
    body .bootstrap-table .table tbody td .btn.estado span,
    body .estilos_generales tbody td .btn.estado small,
    body .estilos_generales tbody td .btn.estado span {
        display: inline !important;
        font-size: 11px !important;
        line-height: 1 !important;
    }
}

/*!*****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/vistas.css ***!
  \*****************************************************************************************************************/
/* Estilos para el contenedor de WhatsApp */
.whatsapp-container {
    position: fixed;
    bottom: 20px;
    right: 15px;
    background-color: #25D366; /* Color de fondo de WhatsApp */
    padding: 10px;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    z-index: 2; /* Asegura que WhatsApp esté encima de Telegram */
}

/* Estilos para el contenedor de Telegram */
.telegram-container {
    position: fixed;
    bottom: 65px; /* Ajusta la posición para que esté debajo de WhatsApp */
    right: 16px;
    background-color: #0088cc; /* Color de fondo de Telegram */
    padding: 12px;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    z-index: 1; /* Asegura que Telegram esté debajo de WhatsApp */
}

/* Estilos para el enlace de WhatsApp y Telegram */
.whatsapp-link, .telegram-link {
    text-decoration: none;
    color: #fff; /* Color del texto */
    display: flex;
    align-items: center;
}

/* Estilos para el ícono de WhatsApp y Telegram */
.whatsapp-icon, .telegram-icon {
    font-size: 24px; /* Tamaño del ícono */
    margin-right: 10px;
}

/* Estilos para el texto de WhatsApp y Telegram */
.whatsapp-text, .telegram-text {
    font-size: 14px;
}

/* Ocultar los controles de número en Chrome, Safari, Edge y Opera */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Ocultar los controles de número en Firefox */
input[type="number"] {
    -moz-appearance: textfield;
}

/* ==============================================================
   INFORMES - FILTROS DE FECHA (GUIA VISUAL)
============================================================== */
.informes-filtro .card {
    border: 1px solid #cadef3 !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 38px rgba(11, 44, 72, 0.14) !important;
    overflow: hidden;
    background: linear-gradient(180deg, #ffffff 0%, #f5faff 100%) !important;
}

.informes-filtro .card-body {
    position: relative;
    padding: 1.15rem 1.2rem 1.05rem 1.2rem !important;
}

.informes-filtro .card-body::before {
    content: "";
    position: absolute;
    top: -48px;
    right: -44px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(48, 141, 222, 0.19) 0%, rgba(48, 141, 222, 0) 68%);
    pointer-events: none;
}

.informes-filtro .card-title {
    color: #0f3557 !important;
    font-weight: 800 !important;
    letter-spacing: 0.02em;
    margin-bottom: 10px !important;
}

.informes-filtro .informe-filtro-guia {
    background: linear-gradient(90deg, #eaf4ff 0%, #f5fbff 100%);
    border: 1px solid #c2dcf4;
    color: #1e4f77;
    border-radius: 12px;
    padding: 9px 11px;
    font-size: 0.89rem;
    font-weight: 700;
}

.informes-filtro .form-label {
    color: #123f62 !important;
    font-weight: 700 !important;
    margin-bottom: 4px !important;
}

.informes-filtro .form-control[type="date"] {
    border: 1px solid #b4d2ed !important;
    border-radius: 11px !important;
    color: #133b5c !important;
    font-weight: 600 !important;
    background: #fdfefe !important;
    min-height: 42px;
}

.informes-filtro .form-control[type="date"]:focus {
    border-color: #2f87d1 !important;
    box-shadow: 0 0 0 0.22rem rgba(47, 135, 209, 0.19) !important;
}

.informes-filtro .text-muted {
    color: #4b6a86 !important;
    font-size: 0.8rem;
    font-weight: 600;
}

#cuerpo .informe-acciones {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

#cuerpo .informe-acciones .page-header {
    margin-right: auto;
    margin-bottom: 0;
    color: #123f62;
    font-weight: 800;
}

#cuerpo .informe-acciones .btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
    box-shadow: 0 7px 16px rgba(15, 56, 90, 0.12);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

#cuerpo .informe-acciones .btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(15, 56, 90, 0.18);
}

#cuerpo .informe-acciones .btn-outline-danger {
    color: #bb1f36 !important;
    border-color: #d77a87 !important;
    background: #fff6f7 !important;
}

#cuerpo .informe-acciones .btn-outline-primary {
    color: #135c96 !important;
    border-color: #72a8d4 !important;
    background: #f2f9ff !important;
}

#cuerpo .informe-acciones .btn-danger {
    background: linear-gradient(90deg, #d1475e 0%, #b83b50 100%) !important;
    border-color: #b83b50 !important;
}

#cuerpo .accion-informe {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    border: 1px solid transparent;
    text-decoration: none !important;
    font-weight: 700;
    font-size: 0.76rem;
    transition: all 0.18s ease;
}

#cuerpo .accion-informe small {
    font-size: inherit;
}

#cuerpo .accion-informe--pdf {
    color: #a7162c !important;
    background: #fff3f5;
    border-color: #f0bdc5;
}

#cuerpo .accion-informe--pdf:hover {
    background: #ffe9ed;
}

#cuerpo .accion-informe--danger {
    color: #8f1629 !important;
    background: #fff1f3;
    border-color: #ebb0ba;
}

#cuerpo .accion-informe--danger:hover {
    background: #ffe4e8;
}

@media (max-width: 991.98px) {
    .informes-filtro .card {
        border-radius: 12px !important;
    }

    #cuerpo .informe-acciones {
        align-items: stretch;
    }

    #cuerpo .informe-acciones .page-header {
        width: 100%;
        margin-bottom: 8px;
    }

    #cuerpo .informe-acciones .btn {
        width: 100%;
    }
}

/*!********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/productos.css ***!
  \********************************************************************************************************************/
/* Contenedor principal del formulario de productos. */
.modal-productos .modal-body {
    background: #f8fafc;
}

/* Separadores visuales para ordenar los datos adicionales por tema. */
.modal-productos .datos-adicionales-seccion {
    border-bottom: 1px solid #dbe5ef;
    padding: 4px 0 8px;
}

/* Títulos de cada grupo de datos adicionales. */
.modal-productos .datos-adicionales-titulo {
    color: #17324d;
    font-size: 0.95rem;
    margin: 0;
}

/* Iconos que ayudan a identificar cada grupo del formulario. */
.modal-productos .datos-adicionales-titulo i {
    color: #2d78bc;
    margin-right: 6px;
}

/* Texto de ayuda debajo de los títulos de sección. */
.modal-productos .datos-adicionales-ayuda {
    color: #687789;
    font-size: 0.82rem;
    margin: 4px 0 0;
}

/* Tarjetas ligeras para que cada campo adicional se distinga mejor. */
.modal-productos .datos-adicionales-campo {
    background: #ffffff;
    border: 1px solid #e1e8ef;
    border-radius: 10px;
    padding: 12px;
}

/* Mantener visibles y legibles los textos largos del formulario. */
.modal-productos textarea {
    min-height: 110px;
    resize: vertical;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* Separación clara para el interruptor general de datos adicionales. */
.modal-productos #tiene_datos_adicionales {
    cursor: pointer;
}

/* Campo de búsqueda utilizado para seleccionar varios colores. */
.modal-productos #color_autocomplete {
    border: 1px solid #b9cbe0;
    border-radius: 8px;
    color: #17324d;
    min-height: 40px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Resaltar el campo de colores cuando está activo. */
.modal-productos #color_autocomplete:focus {
    border-color: #2d78bc;
    box-shadow: 0 0 0 3px rgba(45, 120, 188, 0.16);
    outline: none;
}

/* Área donde se muestran los colores que ya fueron seleccionados. */
.modal-productos #color_seleccionados_lista {
    align-items: center;
    background: #f4f8fc;
    border: 1px solid #d5e1ed;
    border-radius: 8px;
    display: flex;
    gap: 8px;
    min-height: 42px;
    padding: 8px;
}

/* Etiqueta individual de cada color seleccionado. */
.modal-productos #color_seleccionados_lista [data-color-remove] {
    align-items: center;
    background: #e6f2ff !important;
    border: 1px solid #2d78bc !important;
    border-radius: 999px !important;
    color: #17436b !important;
    display: inline-flex;
    font-size: 0.8rem;
    font-weight: 700;
    gap: 7px;
    padding: 0.38rem 0.7rem;
    transition: background-color 0.2s ease, color 0.2s ease;
}

/* Cambiar el color de la etiqueta cuando el usuario va a quitarla. */
.modal-productos #color_seleccionados_lista [data-color-remove]:hover,
.modal-productos #color_seleccionados_lista [data-color-remove]:focus {
    background: #2d78bc !important;
    color: #ffffff !important;
}

/* Separar visualmente el botón para quitar un color seleccionado. */
.modal-productos #color_seleccionados_lista [data-color-remove] span {
    font-size: 1rem;
    line-height: 1;
}

/* Estado visible de los colores que ya están seleccionados en el autocompletado. */
.modal-productos .ui-autocomplete .ui-menu-item-wrapper.combo-option-selected {
    background: #dceeff !important;
    border-left: 4px solid #2d78bc;
    color: #123d64 !important;
    font-weight: 700;
    padding-left: 12px;
}

/* Estado activo del color seleccionado al pasar el cursor por el listado. */
.modal-productos .ui-autocomplete .ui-menu-item-wrapper.combo-option-selected:hover,
.modal-productos .ui-autocomplete .ui-menu-item-wrapper.combo-option-selected.ui-state-active {
    background: #2d78bc !important;
    color: #ffffff !important;
}

/* Contenedor del detalle que se abre con el signo mas de la tabla. */
#table_items .producto-detalle {
    background: #f8fbff;
    border: 1px solid #d8e5f2;
    border-radius: 10px;
    color: #43566d;
    margin: 4px 8px;
    padding: 14px;
}

/* Organizar los campos secundarios en columnas sin alargar demasiado la tabla. */
#table_items .producto-detalle-grid {
    display: grid;
    gap: 8px 24px;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

/* Separar el nombre del campo de su valor para facilitar la lectura. */
#table_items .producto-detalle-item {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    line-height: 1.45;
}

/* Destacar los nombres de los campos secundarios. */
#table_items .producto-detalle-item strong,
#table_items .producto-detalle-caracteristicas strong {
    color: #17324d;
}

/* Mostrar las caracteristicas completas respetando los saltos de linea. */
#table_items .producto-detalle-caracteristicas {
    border-top: 1px solid #d8e5f2;
    margin-top: 12px;
    padding-top: 12px;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* Ajustar el detalle para pantallas pequeñas. */
@media (max-width: 768px) {
    #table_items .producto-detalle {
        margin: 4px 0;
        padding: 10px;
    }

    #table_items .producto-detalle-grid {
        grid-template-columns: 1fr;
    }
}

/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
/* ================================
   APP.SCSS — ORDEN CORRECTO
================================ */

/* --- Frameworks base --- */

/* --- Plugins de tablas --- */

/* --- jQuery UI --- */

/* --- Alertas & Notificaciones --- */

/* --- Editores --- */

/* --- Iconos extras --- */

/* --- Pickr (Color Picker) --- */

/* --- Estilos personalizados del proyecto --- */

/* --------------------------------------------------------------
   TABLE/UI VISIBILITY FIXES (SAFE LAYER)
   - evita romper diseño global existente
   - corrige texto/íconos invisibles en toolbar y tablas
-------------------------------------------------------------- */
[id^="toolbar_"] .btn,
.bootstrap-table .fixed-table-toolbar .btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-weight: 700 !important;
}

[id^="toolbar_"] .btn i,
.bootstrap-table .fixed-table-toolbar .btn i,
[id^="toolbar_"] .btn .fas,
[id^="toolbar_"] .btn .fa,
[id^="toolbar_"] .btn .ri {
    font-size: 14px !important;
    line-height: 1 !important;
    display: inline-block !important;
}

/* Mantener legibles los outline sin forzar texto blanco global */
[id^="toolbar_"] .btn.btn-outline-primary {
    color: #0d6efd !important;
}
[id^="toolbar_"] .btn.btn-outline-success {
    color: #198754 !important;
}
[id^="toolbar_"] .btn.btn-outline-danger {
    color: #dc3545 !important;
}
[id^="toolbar_"] .btn.btn-outline-secondary {
    color: #6c757d !important;
}
[id^="toolbar_"] .btn.btn-outline-warning {
    color: #8a6d1d !important;
}

/* Botones nuevos de exportación (productos/informes) */
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c13f3f !important;
    border-color: #c13f3f !important;
    color: #fff !important;
}

#btn_excel_completo,
#btn_excel_filtro,
#btn_descargar_excel {
    background: #0f8a66 !important;
    border-color: #0f8a66 !important;
    color: #fff !important;
}

/* En acciones de tabla, mantener contraste en todos los módulos */
.bootstrap-table .table .btn {
    font-weight: 600 !important;
}

/* --------------------------------------------------------------
   CRUD COMBOS PRODUCTOS - BOTONES CLAVE
-------------------------------------------------------------- */
#items-administrativos-combos-productos #btn_agregar_item_combo {
    background: linear-gradient(120deg, #2d78bc 0%, #2f8fc5 100%) !important;
    border: 1px solid #2b78b2 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    border-radius: 8px !important;
    box-shadow: 0 6px 14px rgba(28, 90, 136, 0.24) !important;
}

#items-administrativos-combos-productos #btn_agregar_item_combo:hover,
#items-administrativos-combos-productos #btn_agregar_item_combo:focus {
    background: linear-gradient(120deg, #255f94 0%, #2378a7 100%) !important;
    border-color: #225f90 !important;
    color: #ffffff !important;
}

#items-administrativos-combos-productos .combo-item-del {
    background: #d13d3d !important;
    border-color: #d13d3d !important;
    color: #ffffff !important;
}

#items-administrativos-combos-productos .combo-item-del:hover,
#items-administrativos-combos-productos .combo-item-del:focus {
    background: #b82f2f !important;
    border-color: #b82f2f !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   DASHBOARD INVENTORY - KPIS / REPORTES / GRAFICAS
-------------------------------------------------------------- */
.dashboard-inventory-page .dashboard-kpi-card {
    border: 1px solid #c9d9e8 !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    transition: transform .18s ease, box-shadow .18s ease !important;
}

.dashboard-inventory-page .dashboard-kpi-card .card-body {
    padding: 16px 18px !important;
    color: #f8fbff !important;
}

.dashboard-inventory-page .dashboard-kpi-card:hover,
.dashboard-inventory-page .dashboard-kpi-card:focus-within {
    transform: translateY(-3px);
    box-shadow: 0 14px 24px rgba(13, 30, 47, 0.28) !important;
}

.dashboard-inventory-page .kpi-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.dashboard-inventory-page .kpi-title {
    font-size: 13px;
    letter-spacing: .03em;
    text-transform: uppercase;
    font-weight: 700;
    opacity: .95;
}

.dashboard-inventory-page .kpi-head i {
    font-size: 24px;
    line-height: 1;
}

.dashboard-inventory-page .kpi-value {
    font-size: 30px;
    line-height: 1.05;
    font-weight: 800;
    margin-bottom: 4px;
}

.dashboard-inventory-page .kpi-foot {
    font-size: 12px;
    opacity: .9;
}

.dashboard-inventory-page .kpi-blue { background: linear-gradient(125deg, #1e40af, #2563eb) !important; }
.dashboard-inventory-page .kpi-green { background: linear-gradient(125deg, #0f766e, #14b8a6) !important; }
.dashboard-inventory-page .kpi-rose { background: linear-gradient(125deg, #be185d, #e11d48) !important; }
.dashboard-inventory-page .kpi-amber { background: linear-gradient(125deg, #b45309, #f59e0b) !important; }
.dashboard-inventory-page .kpi-cyan { background: linear-gradient(125deg, #0e7490, #06b6d4) !important; }
.dashboard-inventory-page .kpi-slate { background: linear-gradient(125deg, #334155, #64748b) !important; }
.dashboard-inventory-page .kpi-indigo { background: linear-gradient(125deg, #3730a3, #4f46e5) !important; }
.dashboard-inventory-page .kpi-purple { background: linear-gradient(125deg, #6d28d9, #9333ea) !important; }
.dashboard-inventory-page .kpi-teal { background: linear-gradient(125deg, #0f766e, #0d9488) !important; }

.dashboard-inventory-page .dashboard-report-card {
    border: 1px solid #cfdeec !important;
    border-radius: 16px !important;
    background: linear-gradient(180deg, #ffffff 0%, #f6f9fc 100%) !important;
}

.dashboard-inventory-page .dashboard-report-card .card-body {
    padding: 16px 18px !important;
}

.dashboard-inventory-page .report-title {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #4f6479;
    font-weight: 800;
    margin-bottom: 6px;
}

.dashboard-inventory-page .report-main {
    font-size: 20px;
    font-weight: 800;
    color: #133148;
    margin-bottom: 4px;
}

.dashboard-inventory-page .report-sub {
    font-size: 12px;
    color: #4f6479;
}

.dashboard-inventory-page .dashboard-client-action {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    min-width: 184px !important;
    min-height: 48px !important;
    padding: 0.85rem 1.1rem !important;
    color: #ffffff !important;
    white-space: nowrap !important;
}

.dashboard-inventory-page .dashboard-chart-card {
    border: 1px solid #cfdeec !important;
    border-radius: 16px !important;
}

.dashboard-inventory-page .dashboard-chart-card .card-header {
    background: linear-gradient(90deg, #17324a 0%, #1f4d72 100%) !important;
    color: #f3f9ff !important;
    border: 0 !important;
    border-radius: 16px 16px 0 0 !important;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: .02em;
}

.dashboard-inventory-page .dashboard-chart-card .card-body {
    padding: 14px 14px 10px !important;
}

@media (max-width: 991px) {
    .dashboard-inventory-page .kpi-value {
        font-size: 26px;
    }
}

@media (max-width: 576px) {
    .dashboard-inventory-page .dashboard-kpi-card .card-body,
    .dashboard-inventory-page .dashboard-report-card .card-body {
        padding: 14px 14px !important;
    }

    .dashboard-inventory-page .kpi-title {
        font-size: 11px;
    }

    .dashboard-inventory-page .kpi-value {
        font-size: 24px;
    }
}

/* --------------------------------------------------------------
   LOGIN / REGISTRO - BOTONES Y LINKS
-------------------------------------------------------------- */
.btn-auth-main {
    min-height: 44px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: .02em !important;
    border-radius: 10px !important;
    box-shadow: 0 8px 16px rgba(30, 64, 175, 0.24) !important;
}

.btn-auth-main:hover,
.btn-auth-main:focus {
    transform: translateY(-1px);
    box-shadow: 0 10px 18px rgba(30, 64, 175, 0.3) !important;
}

.btn-auth-link {
    color: #1d4ed8 !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    border-bottom: 1px dashed rgba(29, 78, 216, 0.4);
}

.btn-auth-link:hover,
.btn-auth-link:focus {
    color: #1e40af !important;
    border-bottom-color: rgba(30, 64, 175, 0.65);
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLjkyOTViYThlLmNzcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7SUFDSSx1QkFBdUI7SUFDdkIsOENBQThDO0lBQzlDLHFEQUFxRDtJQUNyRCx3Q0FBd0M7SUFDeEMseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IsNkJBQTZCO0lBQzdCLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLFNBQVM7SUFDVCw0QkFBNEI7SUFDNUI7OztzRUFHa0U7SUFDbEUsMkNBQTJDO0lBQzNDLGtCQUFrQjtJQUNsQixrQ0FBa0M7SUFDbEMsbUNBQW1DO0FBQ3ZDOztBQUVBOzs7O0lBSUksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLHFCQUFxQjtBQUN6Qjs7QUFFQTs7Ozs7Ozs7OztJQVVJLDRCQUE0QjtBQUNoQzs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixNQUFNO0lBQ04sYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsOENBQThDO0lBQzlDLDhCQUE4QjtJQUM5QiwyQkFBMkI7SUFDM0IsOENBQThDO0FBQ2xEOztBQUVBOztJQUVJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLHVDQUF1QztJQUN2QyxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxrREFBa0Q7QUFDdEQ7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixTQUFTO0lBQ1QsY0FBYztJQUNkLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxZQUFZO0lBQ1osY0FBYztJQUNkLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsdUJBQXVCO0lBQ3ZCLGNBQWM7SUFDZCx1RkFBdUY7SUFDdkYsK0NBQStDO0FBQ25EOztBQUVBO0lBQ0ksYUFBYTtJQUNiLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixzQkFBc0I7SUFDdEIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGVBQWU7SUFDZixnQ0FBZ0M7SUFDaEMsa0JBQWtCO0FBQ3RCOztBQUVBOztJQUVJLFlBQVk7SUFDWixtQkFBbUI7QUFDdkI7O0FBRUE7OztJQUdJO3NCQUNrQjtJQUNsQixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCO3FGQUNpRjtBQUNyRjs7QUFFQTtJQUNJLGFBQWE7SUFDYixlQUFlO0lBQ2YseUJBQXlCO0lBQ3pCLG1CQUFtQjtJQUNuQixZQUFZO0FBQ2hCOztBQUVBOzs7SUFHSSxzQkFBc0I7SUFDdEIscUNBQXFDO0FBQ3pDOztBQUVBOzs7O0VBSUU7O0FBRUY7O0lBRUkscUNBQXFDO0lBQ3JDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7SUFFSSxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixTQUFTO0lBQ1QscUNBQXFDO0FBQ3pDOztBQUVBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBOzs7O0lBSUkscUNBQXFDO0lBQ3JDLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixlQUFlO0lBQ2YsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsNkRBQTZEO0lBQzdELGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksdUJBQXVCO0lBQ3ZCLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxhQUFhO0FBQ2pCOztBQUVBO0lBQ0ksV0FBVztJQUNYLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixxQkFBcUI7SUFDckIseUJBQXlCO0lBQ3pCLG9DQUFvQztJQUNwQyw4RUFBOEU7SUFDOUUseUJBQXlCO0lBQ3pCLDhDQUE4QztBQUNsRDs7QUFFQTs7SUFFSSx5QkFBeUI7SUFDekIsb0NBQW9DO0lBQ3BDLDhFQUE4RTtJQUM5RSxxQkFBcUI7SUFDckIsOENBQThDO0lBQzlDLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQiwwQ0FBMEM7SUFDMUMsb0NBQW9DO0lBQ3BDLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsZ0JBQWdCO0FBQ3BCOztBQUVBOztJQUVJLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLG9CQUFvQjtJQUNwQixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxZQUFZO0lBQ1osYUFBYTtJQUNiLFlBQVk7SUFDWixTQUFTO0lBQ1QseUZBQXlGO0FBQzdGOztBQUVBO0lBQ0ksWUFBWTtJQUNaLGFBQWE7SUFDYixXQUFXO0lBQ1gsU0FBUztJQUNULDJGQUEyRjtBQUMvRjs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsYUFBYTtJQUNiLHdDQUF3QztJQUN4QyxtQkFBbUI7SUFDbkIseUZBQXlGO0lBQ3pGLDhDQUE4QztBQUNsRDs7QUFFQTtJQUNJLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxvQkFBb0I7QUFDeEI7O0FBRUE7O0lBRUksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsU0FBUztJQUNULG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIseUJBQXlCO0lBQ3pCLHNCQUFzQjtJQUN0QixpQkFBaUI7SUFDakIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksV0FBVztJQUNYLFdBQVc7SUFDWCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLG1DQUFtQztJQUNuQyw4Q0FBOEM7QUFDbEQ7O0FBRUE7SUFDSSxTQUFTO0lBQ1QscUNBQXFDO0lBQ3JDLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIsY0FBYztJQUNkLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLDZCQUE2QjtJQUM3QixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsZUFBZTtJQUNmLFNBQVM7SUFDVCxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLDZEQUE2RDtJQUM3RCxTQUFTO0lBQ1QsY0FBYztJQUNkLCtDQUErQztBQUNuRDs7QUFFQTtJQUNJLGNBQWM7SUFDZCx3Q0FBd0M7SUFDeEMsbUJBQW1CO0FBQ3ZCOztBQUVBOztJQUVJLGNBQWM7SUFDZCxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsZUFBZTtJQUNmLFNBQVM7SUFDVCxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixnQkFBZ0I7SUFDaEIsd0JBQXdCO0lBQ3hCLG9CQUFvQjtJQUNwQix3Q0FBd0M7SUFDeEMscUNBQXFDO0lBQ3JDLGNBQWM7SUFDZCxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHdDQUF3QztJQUN4Qyw2REFBNkQ7SUFDN0QsOENBQThDO0FBQ2xEOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFlBQVk7SUFDWixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsd0JBQXdCO0lBQ3hCLG9CQUFvQjtJQUNwQixvQ0FBb0M7SUFDcEMsOEJBQThCO0lBQzlCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIseUJBQXlCO0lBQ3pCLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLHdDQUF3QztJQUN4QyxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsdUJBQXVCO0lBQ3ZCLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsZUFBZTtJQUNmLDZCQUE2QjtJQUM3QixpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsK0JBQStCO0lBQy9CLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLDRDQUE0QztBQUNoRDs7QUFFQTtJQUNJLFdBQVc7SUFDWCxZQUFZO0lBQ1osb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLG9DQUFvQztJQUNwQyw4QkFBOEI7SUFDOUIsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksY0FBYztJQUNkLGtCQUFrQjtJQUNsQixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksU0FBUztJQUNULDZCQUE2QjtJQUM3QixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxlQUFlO0lBQ2Ysa0JBQWtCO0FBQ3RCOztBQUVBOzs7O0lBSUksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLHlGQUF5RjtJQUN6Riw0Q0FBNEM7SUFDNUMsK0NBQStDO0FBQ25EOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFdBQVc7SUFDWCxtQkFBbUI7QUFDdkI7O0FBRUE7OztJQUdJLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixzQkFBc0I7SUFDdEIsaUJBQWlCO0lBQ2pCLGdCQUFnQjtBQUNwQjs7QUFFQTs7SUFFSSxTQUFTO0lBQ1QscUNBQXFDO0lBQ3JDLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLFNBQVM7SUFDVCxlQUFlO0lBQ2YsNkJBQTZCO0lBQzdCLGdCQUFnQjtBQUNwQjs7QUFFQTs7O0lBR0ksd0NBQXdDO0lBQ3hDLG1CQUFtQjtJQUNuQiw2REFBNkQ7SUFDN0QsOENBQThDO0FBQ2xEOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHlEQUF5RDtBQUM3RDs7QUFFQTtJQUNJLDJCQUEyQjtJQUMzQixxQ0FBcUM7QUFDekM7O0FBRUE7SUFDSSw2REFBNkQ7QUFDakU7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsZUFBZTtJQUNmLFNBQVM7SUFDVCxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLFFBQVE7SUFDUixnQkFBZ0I7SUFDaEIsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixrQ0FBa0M7SUFDbEMsY0FBYztJQUNkLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxZQUFZO0lBQ1osb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLG9DQUFvQztJQUNwQyxrQkFBa0I7QUFDdEI7O0FBRUE7O0lBRUksa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixjQUFjO0FBQ2xCOztBQUVBOzs7SUFHSSxTQUFTO0lBQ1QsNkJBQTZCO0lBQzdCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix5REFBeUQ7QUFDN0Q7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IscUNBQXFDO0FBQ3pDOztBQUVBO0lBQ0ksV0FBVztJQUNYLGFBQWE7SUFDYixpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxhQUFhO0FBQ2pCOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsb0JBQW9CO0lBQ3BCLG9DQUFvQztJQUNwQyw4QkFBOEI7SUFDOUIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFlBQVk7SUFDWixlQUFlO0lBQ2Ysa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksV0FBVztJQUNYLFlBQVk7SUFDWixlQUFlO0lBQ2YsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsUUFBUTtBQUNaOztBQUVBO0lBQ0ksV0FBVztJQUNYLFFBQVE7SUFDUixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksY0FBYztJQUNkLFdBQVc7SUFDWCxZQUFZO0lBQ1osb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsd0NBQXdDO0lBQ3hDLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGFBQWE7SUFDYixTQUFTO0FBQ2I7O0FBRUE7SUFDSSxpQkFBaUI7SUFDakIsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixXQUFXO0lBQ1gsNkNBQTZDO0lBQzdDLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtBQUMzQjtBQUNBLG1EQUFtRCx5QkFBeUIsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUU7QUFDeEosaURBQWlELGtCQUFrQixFQUFFLFdBQVcsRUFBRTtBQUNsRixnREFBZ0QsbUJBQW1CLEVBQUUsNEJBQTRCLEVBQUU7QUFDbkcsb0RBQW9ELHFEQUFxRCxFQUFFO0FBQzNHLHNEQUFzRCxxREFBcUQsRUFBRTtBQUM3RyxzREFBc0QscURBQXFELEVBQUU7QUFDN0c7O0lBRUksbUJBQW1CO0lBQ25CLGdCQUFnQjtBQUNwQjtBQUNBO0lBQ0ksaUJBQWlCO0lBQ2pCLGtCQUFrQjtBQUN0QjtBQUNBO0lBQ0ksVUFBVTtJQUNWLG1CQUFtQjtBQUN2QjtBQUNBOztJQUVJLFNBQVM7QUFDYjtBQUNBO0lBQ0ksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQix1Q0FBdUM7SUFDdkMsb0JBQW9CO0lBQ3BCLG9DQUFvQztJQUNwQyxlQUFlO0lBQ2YsY0FBYztBQUNsQjtBQUNBO0lBQ0ksY0FBYztBQUNsQjtBQUNBO0lBQ0ksV0FBVztJQUNYLFlBQVk7SUFDWixTQUFTO0lBQ1QsVUFBVTtJQUNWLHVCQUF1QjtJQUN2QixjQUFjO0FBQ2xCO0FBQ0E7SUFDSSxjQUFjO0FBQ2xCO0FBQ0E7SUFDSTtRQUNJLFFBQVE7UUFDUiw0QkFBNEI7UUFDNUIsaUJBQWlCO1FBQ2pCLGtCQUFrQjtJQUN0QjtBQUNKOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFNBQVM7QUFDYjs7QUFFQTs7SUFFSSx3Q0FBd0M7SUFDeEMsbUJBQW1CO0lBQ25CLHFDQUFxQztJQUNyQyw4Q0FBOEM7QUFDbEQ7O0FBRUE7SUFDSSx1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsU0FBUztBQUNiOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFlBQVk7SUFDWixtQkFBbUI7QUFDdkI7O0FBRUE7O0lBRUksOEJBQThCO0lBQzlCLHlCQUF5QjtJQUN6QixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLFFBQVE7SUFDUixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsNkJBQTZCO0lBQzdCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFVBQVU7QUFDZDs7QUFFQTtJQUNJLFdBQVc7QUFDZjs7QUFFQTtJQUNJLG1DQUFtQztJQUNuQyxvQkFBb0I7QUFDeEI7O0FBRUE7SUFDSSxtQ0FBbUM7SUFDbkMsb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLFFBQVE7SUFDUixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsd0NBQXdDO0lBQ3hDLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLGdCQUFnQjtJQUNoQiw2R0FBNkc7SUFDN0csd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksY0FBYztJQUNkLFdBQVc7SUFDWCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksMkJBQTJCO0lBQzNCLHFDQUFxQztJQUNyQyw4Q0FBOEM7QUFDbEQ7O0FBRUE7SUFDSSw2REFBNkQ7SUFDN0QsY0FBYztJQUNkLHlCQUF5QjtJQUN6Qiw4Q0FBOEM7QUFDbEQ7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQix5Q0FBeUM7SUFDekMsbUJBQW1CO0lBQ25CLG1DQUFtQztBQUN2Qzs7QUFFQTtJQUNJLHVDQUF1QztJQUN2QyxtQ0FBbUM7SUFDbkMscURBQXFEO0FBQ3pEOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLDRCQUE0QjtJQUM1QixxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsYUFBYTtJQUNiLGtCQUFrQjtJQUNsQixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixTQUFTO0lBQ1QsZ0RBQWdEO0lBQ2hELHdCQUF3QjtJQUN4QixvQkFBb0I7QUFDeEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsWUFBWTtBQUNoQjs7QUFFQTtJQUNJO1FBQ0ksZ0RBQWdEO1FBQ2hELFNBQVM7SUFDYjs7SUFFQTtRQUNJLGFBQWE7SUFDakI7O0lBRUE7UUFDSSxhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLFlBQVk7SUFDaEI7O0lBRUE7UUFDSSxtQkFBbUI7SUFDdkI7O0lBRUE7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtJQUNJO1FBQ0ksZ0RBQWdEO0lBQ3BEO0FBQ0o7O0FBRUE7SUFDSTtRQUNJLGdEQUFnRDtJQUNwRDtBQUNKOztBQUVBO0lBQ0k7UUFDSSxnREFBZ0Q7SUFDcEQ7QUFDSjs7QUFFQTtJQUNJO1FBQ0ksMEJBQTBCO0lBQzlCO0FBQ0o7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsU0FBUztJQUNULG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGFBQWE7SUFDYixRQUFRO0FBQ1o7O0FBRUE7SUFDSSxTQUFTO0lBQ1QsY0FBYztJQUNkLHlDQUF5QztBQUM3Qzs7QUFFQTtJQUNJLDZCQUE2QjtJQUM3QixpQkFBaUI7SUFDakIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdDQUF3QztJQUN4QyxtQkFBbUI7SUFDbkIscUNBQXFDO0lBQ3JDLDhDQUE4QztBQUNsRDs7QUFFQTtJQUNJLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsOEJBQThCO0lBQzlCLFNBQVM7SUFDVCxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLDhCQUE4QjtJQUM5Qix5QkFBeUI7SUFDekIsc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxTQUFTO0lBQ1Qsd0NBQXdDO0lBQ3hDLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsb0JBQW9CO0lBQ3BCLG9DQUFvQztJQUNwQyw4QkFBOEI7SUFDOUIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsb0JBQW9CO0lBQ3BCLFdBQVc7SUFDWCxZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQix3Q0FBd0M7SUFDeEMsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQiw4Q0FBOEM7SUFDOUMsZ0ZBQWdGO0FBQ3BGOztBQUVBO0lBQ0ksMkJBQTJCO0lBQzNCLHFDQUFxQztJQUNyQyw4Q0FBOEM7QUFDbEQ7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLHFEQUFxRDtJQUNyRCxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsU0FBUztJQUNULFVBQVU7SUFDVixXQUFXO0lBQ1gsZUFBZTtBQUNuQjs7QUFFQTs7SUFFSSwwQ0FBMEM7SUFDMUMsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksV0FBVztJQUNYLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLFlBQVk7SUFDWixhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLFFBQVE7SUFDUix1QkFBdUI7SUFDdkIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixlQUFlO0lBQ2YsUUFBUTtJQUNSLG1CQUFtQjtJQUNuQixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQix3QkFBd0I7SUFDeEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixzQkFBc0I7SUFDdEIsOENBQThDO0FBQ2xEOztBQUVBO0lBQ0ksYUFBYTtJQUNiLGVBQWU7SUFDZixRQUFRO0lBQ1IsNkJBQTZCO0lBQzdCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksWUFBWTtJQUNaLGlCQUFpQjtJQUNqQiwrQkFBK0I7QUFDbkM7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLFNBQVM7SUFDVCx1QkFBdUI7SUFDdkIsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixlQUFlO0FBQ25COztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixRQUFRO0lBQ1IsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixRQUFRO0lBQ1IsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixTQUFTO0lBQ1QsdUJBQXVCO0lBQ3ZCLFVBQVU7SUFDVixjQUFjO0lBQ2QsK0JBQStCO0lBQy9CLGtCQUFrQjtJQUNsQixzRUFBc0U7SUFDdEUsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLHVDQUF1QztJQUN2QywrQkFBK0I7QUFDbkM7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQix3QkFBd0I7SUFDeEIsb0JBQW9CO0lBQ3BCLG1DQUFtQztJQUNuQyxjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixlQUFlO0lBQ2YsUUFBUTtJQUNSLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksY0FBYztJQUNkLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLDhEQUE4RDtJQUM5RCxTQUFTO0lBQ1QsNkJBQTZCO0lBQzdCLGlCQUFpQjtJQUNqQixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsZUFBZTtJQUNmLFFBQVE7SUFDUixlQUFlO0FBQ25COztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsd0JBQXdCO0lBQ3hCLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLGtCQUFrQjtJQUNsQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsUUFBUTtJQUNSLGVBQWU7SUFDZixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsZ0JBQWdCO0lBQ2hCLHVCQUF1QjtJQUN2QixvQkFBb0I7SUFDcEIsbUNBQW1DO0lBQ25DLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLHNCQUFzQjtBQUMxQjs7QUFFQSxxREFBcUQ7QUFDckQ7SUFDSSxhQUFhO0lBQ2IsUUFBUTtBQUNaOztBQUVBLGdEQUFnRDtBQUNoRDtJQUNJLGFBQWE7SUFDYixRQUFRO0lBQ1IsY0FBYztBQUNsQjs7QUFFQSx3REFBd0Q7QUFDeEQ7SUFDSSxjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLGdCQUFnQjtBQUNwQjs7QUFFQSxzREFBc0Q7QUFDdEQ7SUFDSSxjQUFjO0FBQ2xCOztBQUVBLHdEQUF3RDtBQUN4RDtJQUNJLGNBQWM7SUFDZCxjQUFjO0lBQ2QseUNBQXlDO0lBQ3pDLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsZ0JBQWdCO0FBQ3BCOztBQUVBLHdDQUF3QztBQUN4QztJQUNJLGNBQWM7SUFDZCxjQUFjO0lBQ2QseUNBQXlDO0lBQ3pDLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsc0JBQXNCO0FBQzFCOztBQUVBLHdFQUF3RTtBQUN4RTtJQUNJLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBLG9GQUFvRjtBQUNwRjs7SUFFSSxjQUFjO0lBQ2QscUJBQXFCO0lBQ3JCLHVCQUF1QjtBQUMzQjs7QUFFQSxzRUFBc0U7QUFDdEU7SUFDSSxtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLDRDQUE0QztJQUM1QyxrQkFBa0I7SUFDbEIsaUJBQWlCO0FBQ3JCOztBQUVBLCtEQUErRDtBQUMvRDs7SUFFSSxjQUFjO0lBQ2Qsc0JBQXNCO0lBQ3RCLGNBQWM7SUFDZCxnQkFBZ0I7QUFDcEI7O0FBRUEsZ0ZBQWdGO0FBQ2hGO0lBQ0ksa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLHdDQUF3QztJQUN4QyxrQkFBa0I7SUFDbEIsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLGVBQWU7SUFDZixRQUFRO0lBQ1IsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLHdCQUF3QjtJQUN4QixvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLGVBQWU7SUFDZixRQUFRO0lBQ1IsYUFBYTtJQUNiLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGFBQWE7SUFDYixpQ0FBaUM7SUFDakMsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixRQUFRO0FBQ1o7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsVUFBVTtJQUNWLHdCQUF3QjtJQUN4Qiw4QkFBOEI7SUFDOUIsY0FBYztJQUNkLDJDQUEyQztJQUMzQyxtQkFBbUI7SUFDbkIsNkRBQTZEO0lBQzdELDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixTQUFTO0lBQ1QsV0FBVztJQUNYLFVBQVU7SUFDVixXQUFXO0lBQ1gsWUFBWTtJQUNaLFNBQVM7SUFDVCxvQkFBb0I7SUFDcEIsa0NBQWtDO0lBQ2xDLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsbUJBQW1CO0lBQ25CLGFBQWE7SUFDYix3Q0FBd0M7SUFDeEMsbUJBQW1CO0lBQ25CLHlGQUF5RjtJQUN6Riw4Q0FBOEM7QUFDbEQ7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsOERBQThEO0lBQzlELFNBQVM7QUFDYjs7QUFFQTtJQUNJLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsOEJBQThCO0lBQzlCLFNBQVM7SUFDVCxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsdUJBQXVCO0lBQ3ZCLGNBQWM7QUFDbEI7O0FBRUEsZ0ZBQWdGO0FBQ2hGO0lBQ0ksbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixhQUFhO0lBQ2Isd0NBQXdDO0lBQ3hDLG1CQUFtQjtJQUNuQixtQkFBbUI7QUFDdkI7O0FBRUEsK0RBQStEO0FBQy9EO0lBQ0ksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBLDhDQUE4QztBQUM5QztJQUNJLGNBQWM7QUFDbEI7O0FBRUEsc0VBQXNFO0FBQ3RFO0lBQ0ksYUFBYTtJQUNiLGdEQUFnRDtJQUNoRCxTQUFTO0FBQ2I7O0FBRUEsaUVBQWlFO0FBQ2pFO0lBQ0ksWUFBWTtJQUNaLGtCQUFrQjtJQUNsQix5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLG1CQUFtQjtBQUN2Qjs7QUFFQSx1RUFBdUU7QUFDdkU7O0lBRUksbUJBQW1CO0FBQ3ZCOztBQUVBLDhEQUE4RDtBQUM5RDtJQUNJLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsY0FBYztJQUNkLGlCQUFpQjtJQUNqQixnQkFBZ0I7QUFDcEI7O0FBRUEsZ0ZBQWdGO0FBQ2hGOztJQUVJLFNBQVM7SUFDVCxjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLHFCQUFxQjtJQUNyQix1QkFBdUI7QUFDM0I7O0FBRUEsdUVBQXVFO0FBQ3ZFO0lBQ0ksYUFBYTtJQUNiLGdEQUFnRDtJQUNoRCxRQUFRO0FBQ1o7O0FBRUEseUVBQXlFO0FBQ3pFO0lBQ0ksY0FBYztJQUNkLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsdUJBQXVCO0FBQzNCOztBQUVBLG1GQUFtRjtBQUNuRjtJQUNJLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2Qsa0JBQWtCO0FBQ3RCOztBQUVBLDhFQUE4RTtBQUM5RTtJQUNJLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsY0FBYztJQUNkLGtCQUFrQjtBQUN0Qjs7QUFFQSw2RUFBNkU7QUFDN0U7SUFDSSxhQUFhO0lBQ2IsZ0RBQWdEO0lBQ2hELFFBQVE7QUFDWjs7QUFFQSx3RUFBd0U7QUFDeEU7SUFDSSxjQUFjO0lBQ2QsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLHlGQUF5RjtBQUM3Rjs7QUFFQTtJQUNJLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsZ0ZBQWdGO0lBQ2hGLFNBQVM7SUFDVCxhQUFhO0FBQ2pCOztBQUVBOzs7SUFHSSxZQUFZO0FBQ2hCOztBQUVBOzs7SUFHSSx3Q0FBd0M7SUFDeEMsbUJBQW1CO0lBQ25CLHFDQUFxQztJQUNyQyw4Q0FBOEM7QUFDbEQ7O0FBRUE7SUFDSSxhQUFhO0FBQ2pCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIscURBQXFEO0FBQ3pEOztBQUVBO0lBQ0ksV0FBVztJQUNYLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixlQUFlO0lBQ2YsUUFBUTtJQUNSLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLHVCQUF1QjtJQUN2QixvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsOEJBQThCO0lBQzlCLHlCQUF5QjtJQUN6QixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFNBQVM7SUFDVCxjQUFjO0lBQ2QseUNBQXlDO0lBQ3pDLGlCQUFpQjtJQUNqQix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsY0FBYztJQUNkLGtCQUFrQjtJQUNsQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsUUFBUTtJQUNSLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLDZCQUE2QjtJQUM3QixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsZUFBZTtJQUNmLHFCQUFxQjtJQUNyQixTQUFTO0lBQ1QsZ0JBQWdCO0FBQ3BCOztBQUVBLDZEQUE2RDtBQUM3RDtJQUNJLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBLHNEQUFzRDtBQUN0RDtJQUNJLGNBQWM7SUFDZCx3Q0FBd0M7SUFDeEMsZ0JBQWdCO0lBQ2hCLHVCQUF1QjtBQUMzQjs7QUFFQSxtREFBbUQ7QUFDbkQ7SUFDSSxhQUFhO0lBQ2IsU0FBUztJQUNULFdBQVc7SUFDWCxlQUFlO0FBQ25COztBQUVBLDBDQUEwQztBQUMxQztJQUNJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsMkJBQTJCO0lBQzNCLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLDZEQUE2RDtJQUM3RCx3Q0FBd0M7QUFDNUM7O0FBRUEsd0NBQXdDO0FBQ3hDO0lBQ0ksV0FBVztJQUNYLFlBQVk7SUFDWixjQUFjO0lBQ2Qsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsd0NBQXdDO0FBQzVDOztBQUVBO0lBQ0ksV0FBVztJQUNYLFlBQVk7SUFDWixtQkFBbUI7SUFDbkIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBLGdEQUFnRDtBQUNoRDtJQUNJLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLHNCQUFzQjtBQUMxQjs7QUFFQSxvREFBb0Q7QUFDcEQ7SUFDSSxjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsV0FBVztJQUNYLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLHVCQUF1QjtJQUN2QixvQkFBb0I7SUFDcEIsbUNBQW1DO0lBQ25DLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLDZCQUE2QjtJQUM3QixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsU0FBUztJQUNULGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsOEJBQThCO0lBQzlCLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0lBQ2Qsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLGtCQUFrQjtJQUNsQixpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLHlDQUF5QztJQUN6QyxtQkFBbUI7SUFDbkIsbUNBQW1DO0FBQ3ZDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixRQUFRO0lBQ1IsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztJQUNkLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLGFBQWE7SUFDYixlQUFlO0lBQ2YsUUFBUTtBQUNaOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLHdCQUF3QjtJQUN4QixvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QscUNBQXFDO0lBQ3JDLHlDQUF5QztBQUM3Qzs7QUFFQTtJQUNJLDZCQUE2QjtJQUM3QixxQ0FBcUM7QUFDekM7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixzRkFBc0Y7QUFDMUY7O0FBRUE7SUFDSSxjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLCtDQUErQztJQUMvQyxRQUFRO0FBQ1o7O0FBRUE7O0lBRUksWUFBWTtJQUNaLG1CQUFtQjtJQUNuQix3Q0FBd0M7SUFDeEMsbUJBQW1CO0lBQ25CLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsaUJBQWlCO0lBQ2pCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIsNkJBQTZCO0lBQzdCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGFBQWE7SUFDYixlQUFlO0lBQ2YsU0FBUztJQUNULGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLGFBQWE7SUFDYixTQUFTO0lBQ1Qsb0JBQW9CO0FBQ3hCOztBQUVBOztJQUVJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsOEJBQThCO0lBQzlCLFNBQVM7QUFDYjs7QUFFQTtJQUNJLG9CQUFvQjtJQUNwQiwrQ0FBK0M7QUFDbkQ7O0FBRUE7Ozs7SUFJSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixxQkFBcUI7SUFDckIsUUFBUTtJQUNSLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQiw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSxTQUFTO0lBQ1QsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsU0FBUztJQUNULGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFFBQVE7SUFDUixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksY0FBYztJQUNkLGNBQWM7SUFDZCxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsUUFBUTtJQUNSLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLFdBQVc7SUFDWCxZQUFZO0lBQ1osU0FBUztJQUNULG9CQUFvQjtJQUNwQixtQ0FBbUM7SUFDbkMsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksbUNBQW1DO0lBQ25DLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSx3QkFBd0I7SUFDeEIsNkNBQTZDO0lBQzdDLDZEQUE2RDtJQUM3RCxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksdUJBQXVCO0lBQ3ZCLCtDQUErQztJQUMvQyxxRkFBcUY7SUFDckYsY0FBYztBQUNsQjs7QUFFQTtJQUNJLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsZ0NBQWdDO0lBQ2hDLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsc0JBQXNCO0lBQ3RCLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLFNBQVM7SUFDVCxjQUFjO0lBQ2QsdUJBQXVCO0FBQzNCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixTQUFTO0lBQ1QsYUFBYTtJQUNiLGFBQWE7SUFDYixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsU0FBUztJQUNULGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIseUNBQXlDO0lBQ3pDLG1DQUFtQztBQUN2Qzs7QUFFQTtJQUNJLGNBQWM7SUFDZCxjQUFjO0lBQ2QsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsOEJBQThCO0lBQzlCLFNBQVM7SUFDVCxpQkFBaUI7SUFDakIsNENBQTRDO0FBQ2hEOztBQUVBOztJQUVJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsYUFBYTtJQUNiLGFBQWE7SUFDYixTQUFTO0lBQ1QsY0FBYztJQUNkLGtCQUFrQjtJQUNsQixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLDRDQUE0QztJQUM1QyxzRkFBc0Y7SUFDdEYsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0k7UUFDSSwwQkFBMEI7SUFDOUI7QUFDSjs7QUFFQTtJQUNJO1FBQ0ksYUFBYTtRQUNiLG1CQUFtQjtJQUN2Qjs7SUFFQTtRQUNJLGFBQWE7SUFDakI7O0lBRUE7UUFDSSx1QkFBdUI7UUFDdkIsd0JBQXdCO0lBQzVCOztJQUVBO1FBQ0ksOEJBQThCO1FBQzlCLG1CQUFtQjtJQUN2Qjs7SUFFQTtRQUNJLGFBQWE7SUFDakI7O0lBRUEsMkVBQTJFO0lBQzNFO1FBQ0ksMEJBQTBCO0lBQzlCOztJQUVBLGdFQUFnRTtJQUNoRTtRQUNJLDBCQUEwQjtJQUM5Qjs7SUFFQSxpRUFBaUU7SUFDakU7UUFDSSxhQUFhO0lBQ2pCO0FBQ0o7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLHdCQUF3QjtJQUN4QixvQkFBb0I7SUFDcEIsbUNBQW1DO0lBQ25DLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksc0JBQXNCO0lBQzFCOztBQUVKO1FBQ1EsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixhQUFhO0lBQ2pCO0FBQ0o7O0FBRUE7SUFDSTtRQUNJLHNCQUFzQjtJQUMxQjs7SUFFQTtRQUNJLG1CQUFtQjtJQUN2Qjs7SUFFQTtRQUNJLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGdCQUFnQjtJQUNwQjs7SUFFQTtRQUNJLGFBQWE7SUFDakI7O0lBRUE7UUFDSSxnQkFBZ0I7SUFDcEI7O0lBRUE7UUFDSSxpQkFBaUI7SUFDckI7O0lBRUE7UUFDSSxhQUFhO0lBQ2pCOztJQUVBO1FBQ0ksc0JBQXNCO1FBQ3RCLHVCQUF1QjtJQUMzQjtBQUNKOztBQUVBO0lBQ0ksYUFBYTtJQUNiLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGFBQWE7SUFDYixlQUFlO0lBQ2YsUUFBUTtJQUNSLHVCQUF1QjtBQUMzQjs7QUFFQTs7SUFFSSxnQkFBZ0I7SUFDaEIsc0JBQXNCO0lBQ3RCLHdDQUF3QztJQUN4QyxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsd0dBQXdHO0FBQzVHOztBQUVBOztJQUVJLDJCQUEyQjtJQUMzQixxQ0FBcUM7SUFDckMsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLDZEQUE2RDtJQUM3RCxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLGFBQWE7SUFDYixlQUFlO0FBQ25COztBQUVBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLHdCQUF3QjtJQUN4QixvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHFCQUFxQjtJQUNyQixTQUFTO0lBQ1Qsa0JBQWtCO0lBQ2xCLHlDQUF5QztJQUN6QyxtQkFBbUI7SUFDbkIscUNBQXFDO0lBQ3JDLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZiw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSxTQUFTO0lBQ1QsY0FBYztBQUNsQjs7QUFFQTtJQUNJLFNBQVM7SUFDVCw2QkFBNkI7SUFDN0IsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixTQUFTO0lBQ1QsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHVCQUF1QjtJQUN2QixTQUFTO0lBQ1QsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGVBQWU7SUFDZiw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSxZQUFZO0lBQ1osYUFBYTtJQUNiLG1CQUFtQjtJQUNuQix3Q0FBd0M7SUFDeEMsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsaUJBQWlCO0FBQ3JCOztBQUVBOztJQUVJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0IsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLDZEQUE2RDtBQUNqRTs7QUFFQTs7O0lBR0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsdUNBQXVDO0FBQzNDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLGVBQWU7SUFDZixTQUFTO0lBQ1QsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksNENBQTRDO0lBQzVDLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQiw4QkFBOEI7SUFDOUIsU0FBUztJQUNULG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsZ0NBQWdDO0FBQ3BDOztBQUVBOztJQUVJLGFBQWE7SUFDYixZQUFZO0lBQ1osa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTs7SUFFSSxXQUFXO0lBQ1gscUNBQXFDO0lBQ3JDLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsa0JBQWtCO0FBQ3RCOztBQUVBOztJQUVJLHVCQUF1QjtBQUMzQjs7QUFFQTs7SUFFSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHdDQUF3QztJQUN4QyxxQ0FBcUM7SUFDckMsOENBQThDO0FBQ2xEOztBQUVBOztJQUVJLFNBQVM7SUFDVCxxQ0FBcUM7SUFDckMsdUJBQXVCO0lBQ3ZCLGNBQWM7QUFDbEI7O0FBRUE7O0lBRUksYUFBYTtJQUNiLFNBQVM7SUFDVCxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsUUFBUTtBQUNaOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLHdDQUF3QztJQUN4QyxtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBOztJQUVJLGdCQUFnQjtJQUNoQixTQUFTO0lBQ1QsNkJBQTZCO0FBQ2pDOztBQUVBOztJQUVJLGNBQWM7QUFDbEI7O0FBRUE7O0lBRUksZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxtQkFBbUI7SUFDbkIsdUZBQXVGO0lBQ3ZGLGNBQWM7SUFDZCxnQkFBZ0I7QUFDcEI7O0FBRUE7O0lBRUksb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQixjQUFjO0FBQ2xCOztBQUVBOzs7SUFHSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSx3Q0FBd0M7SUFDeEMsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQiw2REFBNkQ7SUFDN0QsOENBQThDO0FBQ2xEOztBQUVBO0lBQ0ksdUJBQXVCO0lBQ3ZCLCtDQUErQztJQUMvQyw2REFBNkQ7SUFDN0QsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsdUJBQXVCO0FBQzNCOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEI7OztlQUdXO0FBQ2Y7O0FBRUE7OztJQUdJLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2Isd0NBQXdDO0lBQ3hDLG1CQUFtQjtJQUNuQixxQ0FBcUM7QUFDekM7O0FBRUE7O0lBRUksWUFBWTtBQUNoQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGdCQUFnQjtJQUNoQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLFlBQVk7SUFDWixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLFdBQVc7QUFDZjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxZQUFZO0lBQ1osY0FBYztJQUNkLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsd0NBQXdDO0lBQ3hDLGdCQUFnQjtJQUNoQiw4Q0FBOEM7QUFDbEQ7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsWUFBWTtBQUNoQjs7QUFFQTtJQUNJLGVBQWU7SUFDZix1QkFBdUI7QUFDM0I7O0FBRUE7O0lBRUksU0FBUztJQUNULDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLGFBQWE7SUFDYixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsWUFBWTtJQUNaLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLHdDQUF3QztBQUM1Qzs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLDZCQUE2QjtJQUM3QixrQkFBa0I7SUFDbEIsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksc0JBQXNCO0lBQ3RCLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsMkRBQTJEO0lBQzNELFlBQVk7QUFDaEI7O0FBRUEsaUVBQWlFO0FBQ2pFO0lBQ0ksYUFBYTtJQUNiLFFBQVE7SUFDUixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLHlDQUF5QztJQUN6QyxtQkFBbUI7SUFDbkIsbUJBQW1CO0FBQ3ZCOztBQUVBLHVFQUF1RTtBQUN2RTtJQUNJLGFBQWE7SUFDYixlQUFlO0lBQ2YsUUFBUTtJQUNSLGNBQWM7SUFDZCxrQkFBa0I7QUFDdEI7O0FBRUEsK0VBQStFO0FBQy9FO0lBQ0ksY0FBYztJQUNkLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLFdBQVc7SUFDWCxvQkFBb0I7SUFDcEIsd0NBQXdDO0lBQ3hDLG1CQUFtQjtJQUNuQiw2REFBNkQ7SUFDN0QsY0FBYztJQUNkLGdCQUFnQjtJQUNoQiw2R0FBNkc7QUFDakg7O0FBRUE7OztJQUdJLHFDQUFxQztJQUNyQywrQ0FBK0M7SUFDL0MsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksc0ZBQXNGO0FBQzFGOztBQUVBOztJQUVJLFdBQVc7SUFDWCxZQUFZO0lBQ1osY0FBYztJQUNkLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLHdDQUF3QztBQUM1Qzs7QUFFQTs7SUFFSSxXQUFXO0lBQ1gsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCOztBQUVBOztJQUVJLGFBQWE7SUFDYixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLDZCQUE2QjtJQUM3QixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixzRkFBc0Y7SUFDdEYsY0FBYztJQUNkLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixTQUFTO0lBQ1Qsb0JBQW9CO0lBQ3BCLHFEQUFxRDtJQUNyRCxjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLCtDQUErQztBQUNuRDs7QUFFQTs7SUFFSSxjQUFjO0lBQ2Qsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsd0NBQXdDO0lBQ3hDLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxtQkFBbUI7SUFDbkIsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQiwwQ0FBMEM7SUFDMUMsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0kscUJBQXFCO0lBQ3JCLG1CQUFtQjtJQUNuQix3Q0FBd0M7QUFDNUM7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsZ0JBQWdCO0FBQ3BCOztBQUVBOzs7SUFHSSxjQUFjO0lBQ2QseUJBQXlCO0lBQ3pCLG9DQUFvQztJQUNwQyxvQkFBb0I7SUFDcEIsZ0NBQWdDO0FBQ3BDOztBQUVBOztJQUVJLGNBQWM7SUFDZCxVQUFVO0FBQ2Q7O0FBRUE7OztJQUdJLGNBQWM7SUFDZCx5QkFBeUI7SUFDekIscUNBQXFDO0lBQ3JDLGlEQUFpRDtBQUNyRDs7QUFFQTs7O0lBR0ksY0FBYztJQUNkLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLDRCQUE0QjtJQUM1Qiw0Q0FBNEM7SUFDNUMsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLG9CQUFvQjtJQUN4Qjs7SUFFQTtRQUNJLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLDJDQUEyQztRQUMzQyxtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLDhDQUE4QztJQUNsRDs7SUFFQTtRQUNJLGFBQWE7SUFDakI7O0lBRUE7UUFDSSwyQkFBMkI7SUFDL0I7QUFDSjs7QUFFQTtJQUNJO1FBQ0ksYUFBYTtJQUNqQjs7SUFFQTtRQUNJLHNCQUFzQjtRQUN0Qix1QkFBdUI7SUFDM0I7O0lBRUE7OztRQUdJLGVBQWU7UUFDZixnQkFBZ0I7SUFDcEI7O0lBRUE7O1FBRUksa0JBQWtCO0lBQ3RCOztJQUVBO1FBQ0ksaUJBQWlCO0lBQ3JCOztJQUVBO1FBQ0ksb0JBQW9CO0lBQ3hCOztJQUVBO1FBQ0ksd0JBQXdCO0lBQzVCOztJQUVBOzs7OztRQUtJLFdBQVc7UUFDWCwyQkFBMkI7UUFDM0IsMkNBQTJDO0lBQy9DOztJQUVBO1FBQ0ksZUFBZTtJQUNuQjtBQUNKOzs7QUFHQTs7OzhEQUc4RDs7QUFFOUQsNENBQTRDO0FBQzVDOztJQUVJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLG9CQUFvQjtBQUN4Qjs7QUFFQTttRUFDbUU7QUFDbkU7SUFDSSxhQUFhO0FBQ2pCOztBQUVBLDZCQUE2QjtBQUM3Qjs7SUFFSSxpQkFBaUI7QUFDckI7O0FBRUE7OzhCQUU4Qjs7QUFFOUI7SUFDSSxrQkFBa0I7SUFDbEIsV0FBVztJQUNYLDRCQUE0QjtJQUM1Qix3QkFBd0I7SUFDeEIsNkJBQTZCO0lBQzdCLGdDQUFnQztJQUNoQyxTQUFTO0lBQ1QsaUJBQWlCO0FBQ3JCOztBQUVBOztJQUVJLGdCQUFnQjtJQUNoQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGFBQWE7SUFDYixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixjQUFjO0lBQ2QseUJBQXlCO0lBQ3pCLDJCQUEyQjtJQUMzQixzQkFBc0I7SUFDdEIsNEJBQTRCO0FBQ2hDOztBQUVBLG9FQUFvRTtBQUNwRTtJQUNJLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsUUFBUTtJQUNSLFVBQVU7SUFDVixvQkFBb0I7SUFDcEI7Ozs7O0tBS0M7QUFDTDs7QUFFQSx5Q0FBeUM7QUFDekM7SUFDSSxrQkFBa0I7SUFDbEIsVUFBVTtBQUNkOztBQUVBO0lBQ0ksZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIseUJBQXlCO0lBQ3pCLFVBQVU7QUFDZDs7QUFFQTs7SUFFSSxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCx1Q0FBdUM7SUFDdkMsbUNBQW1DO0lBQ25DLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsdUJBQXVCO0lBQ3ZCLHNDQUFzQztBQUMxQzs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixTQUFTO0lBQ1QsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIsY0FBYztBQUNsQjs7QUFFQSxtREFBbUQ7QUFDbkQ7O0lBRUksUUFBUTtJQUNSLFlBQVk7SUFDWixXQUFXO0lBQ1gsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsVUFBVTtJQUNWLG1CQUFtQjtJQUNuQixxQ0FBcUM7QUFDekM7O0FBRUE7SUFDSSxXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxZQUFZO0FBQ2hCOztBQUVBOztJQUVJLFdBQVc7SUFDWCxZQUFZO0lBQ1osWUFBWTtJQUNaLDBCQUEwQjtBQUM5Qjs7QUFFQSwwQ0FBMEM7QUFDMUM7SUFDSSxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLFFBQVE7QUFDWjs7QUFFQTtJQUNJLFVBQVU7SUFDVixXQUFXO0lBQ1gsU0FBUztJQUNULFNBQVM7SUFDVCxrQkFBa0I7SUFDbEIsV0FBVztBQUNmOztBQUVBO0lBQ0ksVUFBVTtBQUNkOztBQUVBOzs4QkFFOEI7O0FBRTlCO0lBQ0ksY0FBYztJQUNkLFdBQVc7SUFDWCxTQUFTO0lBQ1QsdUJBQXVCO0FBQzNCOztBQUVBO0lBQ0ksVUFBVTtJQUNWLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsdUJBQXVCO0lBQ3ZCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztJQUNkLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUEsbURBQW1EO0FBQ25EO0lBQ0ksYUFBYTtJQUNiLGdEQUFnRDtJQUNoRCxTQUFTO0lBQ1QsV0FBVztJQUNYLG9CQUFvQjtBQUN4Qjs7QUFFQTt1Q0FDdUM7QUFDdkM7SUFDSSxXQUFXO0lBQ1gsZUFBZTtJQUNmLFlBQVk7QUFDaEI7O0FBRUEscUNBQXFDO0FBQ3JDO0lBQ0ksYUFBYTtJQUNiLFdBQVc7SUFDWCxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLHFDQUFxQztJQUNyQyx1REFBdUQ7QUFDM0Q7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IseUJBQXlCO0lBQ3pCLHNDQUFzQztBQUMxQzs7QUFFQSx1QkFBdUI7QUFDdkI7SUFDSSxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksV0FBVztJQUNYLFlBQVk7SUFDWixtQkFBbUI7SUFDbkIsY0FBYztBQUNsQjs7QUFFQSx1QkFBdUI7QUFDdkI7SUFDSSxZQUFZO0lBQ1osdUJBQXVCO0lBQ3ZCLFFBQVE7SUFDUixtQkFBbUI7QUFDdkI7O0FBRUEsY0FBYztBQUNkO0lBQ0ksbUJBQW1CO0lBQ25CLFFBQVE7QUFDWjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixnQkFBZ0I7QUFDcEI7O0FBRUEsV0FBVztBQUNYO0lBQ0ksY0FBYztJQUNkLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQSxnQkFBZ0I7QUFDaEI7SUFDSSx5RUFBeUU7SUFDekUsY0FBYztJQUNkLGlCQUFpQjtJQUNqQixpQkFBaUI7QUFDckI7O0FBRUEsY0FBYztBQUNkO0lBQ0ksUUFBUTtBQUNaOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsZ0JBQWdCO0FBQ3BCOztBQUVBLDRDQUE0QztBQUM1QztJQUNJLFFBQVE7SUFDUixlQUFlO0lBQ2YsZ0JBQWdCO0FBQ3BCOztBQUVBLHVEQUF1RDtBQUN2RDtJQUNJLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFFBQVE7QUFDWjs7QUFFQSxpREFBaUQ7QUFDakQ7SUFDSSxjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCOztBQUVBLGdEQUFnRDtBQUNoRDtJQUNJLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLHNCQUFzQjtJQUN0QixnQkFBZ0I7QUFDcEI7O0FBRUEsZ0RBQWdEO0FBQ2hEO0lBQ0ksY0FBYztJQUNkLHlDQUF5QztJQUN6QyxpQkFBaUI7SUFDakIsZ0JBQWdCO0FBQ3BCOztBQUVBLGtFQUFrRTtBQUNsRTtJQUNJLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsZ0JBQWdCO0FBQ3BCOztBQUVBLGlCQUFpQjtBQUNqQjtJQUNJLFFBQVE7SUFDUixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxRQUFRO0FBQ1o7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksY0FBYztJQUNkLGlCQUFpQjtBQUNyQjs7QUFFQSxRQUFRO0FBQ1I7SUFDSSxRQUFRO0lBQ1IsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7OzhCQUU4Qjs7QUFFOUI7SUFDSTtRQUNJLGdEQUFnRDtJQUNwRDtBQUNKOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7UUFDakIsYUFBYTtRQUNiLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLGdEQUFnRDtJQUNwRDs7SUFFQTtRQUNJLGFBQWE7UUFDYixpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixrQkFBa0I7SUFDdEI7O0lBRUE7O1FBRUksZUFBZTtJQUNuQjs7SUFFQTtRQUNJLFNBQVM7SUFDYjs7SUFFQTtRQUNJLFVBQVU7SUFDZDs7SUFFQTtRQUNJLGdEQUFnRDtRQUNoRCxTQUFTO0lBQ2I7QUFDSjs7QUFFQTtJQUNJOztRQUVJLGVBQWU7UUFDZixnQkFBZ0I7SUFDcEI7O0lBRUE7UUFDSSxpQkFBaUI7UUFDakIsYUFBYTtRQUNiLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLGlCQUFpQjtJQUNyQjs7SUFFQTs7UUFFSSxjQUFjO1FBQ2Qsa0JBQWtCO0lBQ3RCOztJQUVBO1FBQ0ksY0FBYztRQUNkLGlCQUFpQjtJQUNyQjs7SUFFQTtRQUNJLGdEQUFnRDtJQUNwRDs7SUFFQTtRQUNJLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsWUFBWTtJQUNoQjtBQUNKOzs7QUFHQTs7Ozs7OERBSzhEOztBQUU5RDtJQUNJLFdBQVc7SUFDWCwwQkFBMEI7SUFDMUIsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksV0FBVztJQUNYLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLGNBQWM7SUFDZCxlQUFlO0FBQ25COztBQUVBO0lBQ0ksV0FBVztJQUNYLDBCQUEwQjtJQUMxQixTQUFTO0lBQ1QsVUFBVTtBQUNkOztBQUVBO0lBQ0ksWUFBWTtJQUNaLGdCQUFnQjtJQUNoQiw2QkFBNkI7SUFDN0IsOEJBQThCO0FBQ2xDOztBQUVBOztJQUVJLFVBQVU7SUFDVixvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixXQUFXO0lBQ1gsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixVQUFVO0lBQ1YsU0FBUztJQUNULGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLFVBQVU7SUFDVix3Q0FBd0M7SUFDeEMscURBQXFEO0FBQ3pEOztBQUVBO0lBQ0ksVUFBVTtBQUNkOztBQUVBO0lBQ0ksV0FBVztBQUNmOztBQUVBOztJQUVJLGNBQWM7SUFDZCxtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLHlDQUF5QztBQUM3Qzs7QUFFQTs7SUFFSSxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIsY0FBYztJQUNkLGNBQWM7QUFDbEI7O0FBRUE7O0lBRUksd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0k7O1FBRUksV0FBVztRQUNYLFlBQVk7UUFDWixpQkFBaUI7SUFDckI7O0lBRUE7UUFDSSxVQUFVO0lBQ2Q7O0lBRUE7UUFDSSxXQUFXO0lBQ2Y7O0lBRUE7O1FBRUksa0JBQWtCO0lBQ3RCO0FBQ0o7Ozs7O0FDNWpIQTs7Ozs7Q0FLQzs7QUFFRDs7K0RBRStEO0FBQy9EO0lBQ0ksa0JBQWtCO0FBQ3RCOzs7QUFHQTtJQUNJLHVCQUF1QjtBQUMzQjs7QUFFQTtJQUNJLG9DQUFvQztJQUNwQyxtQkFBbUI7SUFDbkIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QscUJBQXFCO0FBQ3pCOztBQUVBOzs7Ozs7SUFNSSxpQ0FBaUM7QUFDckM7O0FBRUE7OytEQUUrRDtBQUMvRDtJQUNJLHlCQUF5QjtJQUN6QixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLG9CQUFvQjtBQUN4Qjs7QUFFQTtJQUNJO1FBQ0ksYUFBYTtJQUNqQjtBQUNKOztBQUVBOzsrREFFK0Q7QUFDL0Q7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixjQUFjO0FBQ2xCOztBQUVBOzsrREFFK0Q7QUFDL0Q7SUFDSSxlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixXQUFXO0lBQ1gsWUFBWTtJQUNaLGNBQWM7SUFDZCxtQkFBbUI7SUFDbkIsV0FBVztJQUNYLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLFdBQVc7SUFDWCxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLFdBQVc7QUFDZjs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQixVQUFVO0FBQ2Q7O0FBRUE7OytEQUUrRDtBQUMvRCxtQkFBbUI7QUFDbkI7SUFDSSxrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLHdDQUF3QztJQUN4QyxnQ0FBZ0M7SUFDaEMsZ0NBQWdDO0lBQ2hDLHdCQUF3QjtJQUN4QixpQ0FBaUM7SUFDakMseUJBQXlCO0lBQ3pCLFNBQVM7SUFDVCwrQ0FBK0M7QUFDbkQ7O0FBRUE7O0lBRUksa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsMEJBQTBCO0FBQzlCOztBQUVBO0lBQ0kscUJBQXFCO0FBQ3pCOztBQUVBO0lBQ0ksY0FBYztJQUNkLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixjQUFjO0FBQ2xCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0k7UUFDSSxXQUFXO1FBQ1gsV0FBVztRQUNYLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLFNBQVM7UUFDVCxXQUFXO1FBQ1gsd0JBQXdCO1FBQ3hCLDZCQUE2QjtRQUM3Qiw4QkFBOEI7SUFDbEM7QUFDSjs7QUFFQTtJQUNJO1FBQ0ksVUFBVTtJQUNkOztJQUVBO1FBQ0ksVUFBVTtJQUNkOztJQUVBO1FBQ0ksVUFBVTtJQUNkO0FBQ0o7O0FBRUE7SUFDSTtRQUNJLFVBQVU7SUFDZDs7SUFFQTtRQUNJLFVBQVU7SUFDZDs7SUFFQTtRQUNJLFVBQVU7SUFDZDtBQUNKOztBQUVBLHNCQUFzQjtBQUN0QjtJQUNJLHlCQUF5QjtJQUN6QixxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIscUJBQXFCO0FBQ3pCOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIscUJBQXFCO0FBQ3pCOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixxQkFBcUI7QUFDekI7O0FBRUEsU0FBUztBQUNUO0lBQ0ksbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQixzQkFBc0I7SUFDdEIsZ0RBQWdEO0FBQ3BEOztBQUVBLGdCQUFnQjtBQUNoQjtJQUNJLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIsY0FBYztJQUNkLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxzQkFBc0I7SUFDdEIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixrQkFBa0I7SUFDbEIsa0NBQWtDO0FBQ3RDOztBQUVBO0lBQ0ksY0FBYztJQUNkLGVBQWU7SUFDZixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSwwQ0FBMEM7QUFDOUM7O0FBRUEsV0FBVztBQUNYO0lBQ0ksZ0JBQWdCO0lBQ2hCLGtDQUFrQztJQUNsQyxlQUFlO0FBQ25COztBQUVBLGlCQUFpQjtBQUNqQjtJQUNJLG9CQUFvQjtBQUN4Qjs7QUFFQTtJQUNJLFVBQVU7SUFDVixnQkFBZ0I7QUFDcEI7O0FBRUEsY0FBYztBQUNkO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksVUFBVTtJQUNWLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGNBQWM7SUFDZCx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxlQUFlO0FBQ25COztBQUVBLGdCQUFnQjtBQUNoQjtJQUNJLGVBQWU7SUFDZixpQ0FBaUM7SUFDakMsY0FBYztJQUNkLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxnQkFBZ0I7QUFDcEI7O0FBRUEsa0JBQWtCO0FBQ2xCO0lBQ0ksZ0NBQWdDO0FBQ3BDOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixjQUFjO0FBQ2xCOztBQUVBOztJQUVJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxzQkFBc0I7SUFDdEIsY0FBYztJQUNkLGdDQUFnQztBQUNwQzs7QUFFQTs7K0RBRStEO0FBQy9EO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJO1FBQ0ksWUFBWTtJQUNoQjtBQUNKOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsV0FBVyxFQUFFLDZCQUE2QjtJQUMxQyxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsWUFBWTtJQUNaLFlBQVk7SUFDWiwyQ0FBMkM7SUFDM0MseUJBQXlCLEVBQUUsNkJBQTZCO0lBQ3hELGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLFdBQVcsRUFBRSxnQkFBZ0I7QUFDakM7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLG1CQUFtQixFQUFFLDhDQUE4QztBQUN2RTs7QUFFQTtJQUNJO1FBQ0ksZUFBZTtRQUNmLFNBQVM7UUFDVCxPQUFPO1FBQ1AsUUFBUTtRQUNSLGFBQWE7UUFDYiwrQ0FBK0M7UUFDL0MsZ0JBQWdCLEVBQUUscUNBQXFDO1FBQ3ZELGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLFVBQVU7SUFDZDs7SUFFQTtRQUNJLFNBQVM7UUFDVCxtQkFBbUI7UUFDbkIsVUFBVTtJQUNkO0FBQ0o7O0FBRUE7SUFDSSxXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxvQ0FBb0MsRUFBRSxzQkFBc0I7SUFDNUQsZUFBZTtJQUNmLGNBQWMsRUFBRSxrQ0FBa0M7SUFDbEQseUJBQXlCO0lBQ3pCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsV0FBVztBQUNmOztBQUVBOztJQUVJLGFBQWE7SUFDYiwwQ0FBMEMsRUFBRSx1QkFBdUI7SUFDbkUsb0NBQW9DLEVBQUUsc0JBQXNCO0FBQ2hFOztBQUVBO0lBQ0ksU0FBUztJQUNULFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksV0FBVyxFQUFFLHNCQUFzQjtBQUN2Qzs7O0FBR0E7OytEQUUrRDtBQUMvRDtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFNBQVM7SUFDVCxVQUFVO0FBQ2Q7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixrQkFBa0I7SUFDbEIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksY0FBYyxFQUFFLGdCQUFnQjtBQUNwQzs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGVBQWU7SUFDZixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsMEJBQTBCO0lBQzFCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0kscUNBQXFDO0FBQ3pDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIseUJBQXlCLEVBQUUseUJBQXlCO0lBQ3BELGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHFCQUFxQjtJQUNyQixlQUFlO0lBQ2YsV0FBVyxFQUFFLGdCQUFnQjtBQUNqQzs7QUFFQTtJQUNJLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLFdBQVcsRUFBRSxnQkFBZ0I7QUFDakM7O0FBRUE7SUFDSSxlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLFdBQVcsRUFBRSxlQUFlO0FBQ2hDOztBQUVBO0lBQ0kseUJBQXlCLEVBQUUsZUFBZTtBQUM5Qzs7QUFFQTtJQUNJLHFDQUFxQztBQUN6Qzs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQix5QkFBeUIsRUFBRSx5QkFBeUI7SUFDcEQsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLHFCQUFxQjtJQUNyQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixXQUFXLEVBQUUsZ0JBQWdCO0FBQ2pDOztBQUVBO0lBQ0ksZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixXQUFXLEVBQUUsZUFBZTtBQUNoQzs7QUFFQTtJQUNJLHlCQUF5QixFQUFFLGVBQWU7QUFDOUM7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLFdBQVcsRUFBRSxnQkFBZ0I7QUFDakM7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZUFBZTtJQUNmLGtCQUFrQjtJQUNsQix5QkFBeUIsRUFBRSx5QkFBeUI7SUFDcEQsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixjQUFjO0lBQ2QsV0FBVyxFQUFFLGdCQUFnQjtBQUNqQzs7QUFFQTtJQUNJLHlCQUF5QixFQUFFLGVBQWU7QUFDOUM7OztBQUdBOzsrREFFK0Q7QUFDL0Q7SUFDSSxlQUFlO0lBQ2YsU0FBUztJQUNULE9BQU87SUFDUCxTQUFTO0lBQ1QsWUFBWTtJQUNaLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckIsb0NBQW9DLEVBQUUsbUNBQW1DO0lBQ3pFLDJDQUEyQyxFQUFFLGlDQUFpQztJQUM5RSx5QkFBeUIsRUFBRSxvQkFBb0I7QUFDbkQ7O0FBRUE7SUFDSTtRQUNJLFlBQVksRUFBRSxrREFBa0Q7SUFDcEU7QUFDSjs7QUFFQTtJQUNJLFVBQVU7SUFDVixXQUFXO0lBQ1gseUJBQXlCLEVBQUUsZ0RBQWdEO0FBQy9FOztBQUVBO0lBQ0kseUJBQXlCLEVBQUUsOENBQThDO0FBQzdFOztBQUVBO0lBQ0k7O1FBRUksa0JBQWtCLEVBQUUsc0ZBQXNGO0lBQzlHO0FBQ0o7O0FBRUE7SUFDSTtRQUNJLE9BQU8sRUFBRSw4RUFBOEU7SUFDM0Y7QUFDSjs7QUFFQTtJQUNJOztRQUVJLGNBQWMsRUFBRSwyREFBMkQ7SUFDL0U7O0lBRUE7UUFDSSxZQUFZLEVBQUUsNEVBQTRFO0lBQzlGO0FBQ0o7O0FBRUEsdUJBQXVCO0FBQ3ZCO0lBQ0ksVUFBVTtJQUNWLFNBQVM7SUFDVCxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxVQUFVO0lBQ1YsU0FBUztJQUNULGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGtCQUFrQixFQUFFLDBDQUEwQztBQUNsRTs7QUFFQTtJQUNJLGVBQWU7SUFDZix5QkFBeUI7SUFDekIsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixhQUFhO0lBQ2IsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsY0FBYyxFQUFFLHVDQUF1QztJQUN2RCxtQkFBbUIsRUFBRSw2Q0FBNkM7SUFDbEUsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixjQUFjLEVBQUUsaUNBQWlDO0FBQ3JEOztBQUVBO0lBQ0ksY0FBYyxFQUFFLDJEQUEyRDtJQUMzRSxtQkFBbUIsRUFBRSwrREFBK0Q7QUFDeEY7O0FBRUE7SUFDSSxjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLGNBQWMsRUFBRSxrRUFBa0U7SUFDbEYsbUJBQW1CLEVBQUUsd0VBQXdFO0lBQzdGLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksY0FBYztJQUNkLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2Qsa0JBQWtCO0FBQ3RCOzs7QUFHQTs7SUFFSSxjQUFjLEVBQUUsa0VBQWtFO0lBQ2xGLG1CQUFtQixFQUFFLHlFQUF5RTtBQUNsRzs7QUFFQTtJQUNJLHlCQUF5QixFQUFFLG9EQUFvRDs7QUFFbkY7OztBQUdBOzsrREFFK0Q7O0FBRS9EO0lBQ0ksa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixTQUFTO0FBQ2I7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsZUFBZTtBQUNuQjs7QUFFQTs7SUFFSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsVUFBVTtBQUNkOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBLGVBQWU7QUFDZjtJQUNJLG9CQUFvQjtBQUN4Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxVQUFVO0FBQ2Q7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsY0FBYztJQUNkLFdBQVc7SUFDWCxZQUFZO0lBQ1osY0FBYztJQUNkLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztJQUNkLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxtQkFBbUI7QUFDdkI7O0FBRUEsYUFBYTtBQUNiO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsY0FBYztJQUNkLFlBQVk7SUFDWixlQUFlO0FBQ25COztBQUVBO0lBQ0ksV0FBVztJQUNYLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osVUFBVTtJQUNWLE1BQU07SUFDTixTQUFTO0lBQ1QseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLFVBQVU7SUFDVixlQUFlO0lBQ2YsY0FBYztJQUNkLGtCQUFrQjtJQUNsQixjQUFjO0lBQ2Qsc0JBQXNCO0lBQ3RCLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksUUFBUTtBQUNaOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBLG1CQUFtQjtBQUNuQjtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxXQUFXO0lBQ1gsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksY0FBYztJQUNkLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsY0FBYztJQUNkLGlCQUFpQjtBQUNyQjs7QUFFQSxpQkFBaUI7QUFDakI7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBLGdCQUFnQjtBQUNoQjtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsZUFBZTtBQUNuQjs7QUFFQTs7K0RBRStEO0FBQy9EO0lBQ0ksYUFBYTtJQUNiLGVBQWU7SUFDZiwyREFBMkQ7SUFDM0QsWUFBWTtJQUNaLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLHNCQUFzQjtJQUN0QixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLGNBQWM7SUFDZCxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZUFBZTtJQUNmLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLHFDQUFxQztJQUNyQyxxQkFBcUI7SUFDckIsV0FBVztJQUNYLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFDbkIsV0FBVztBQUNmOztBQUVBOzsrREFFK0Q7QUFDL0Q7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZUFBZTtJQUNmLHFCQUFxQjtJQUNyQiw0QkFBNEI7SUFDNUIsY0FBYztJQUNkLGtCQUFrQjtJQUNsQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLDRCQUE0QjtBQUNoQzs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQiw0QkFBNEI7QUFDaEM7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7OytEQUUrRDtBQUMvRDtJQUNJLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7OytEQUUrRDtBQUMvRDtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZixjQUFjO0lBQ2QsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGVBQWU7SUFDZixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLFVBQVU7SUFDVixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixXQUFXO0lBQ1gsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixXQUFXO0lBQ1gsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsWUFBWTtJQUNaLHFCQUFxQjtJQUNyQix5QkFBeUI7SUFDekIsc0JBQXNCO0lBQ3RCLHFEQUFxRDtJQUNyRCw2Q0FBNkM7QUFDakQ7O0FBRUE7O0lBRUksZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsZ0JBQWdCO0FBQ3BCOztBQUVBOztJQUVJLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQixTQUFTO0lBQ1Qsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0k7UUFDSSx1QkFBdUI7SUFDM0I7O0lBRUE7UUFDSSx5QkFBeUI7SUFDN0I7QUFDSjs7QUFFQTtJQUNJO1FBQ0ksdUJBQXVCO0lBQzNCOztJQUVBO1FBQ0kseUJBQXlCO0lBQzdCO0FBQ0o7O0FBRUE7OytEQUUrRDtBQUMvRDtJQUNJLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLFdBQVc7SUFDWCxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFFQTs7K0RBRStEO0FBQy9EO0lBQ0ksZUFBZTtJQUNmLGVBQWU7SUFDZixvQkFBb0I7SUFDcEIsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixjQUFjO0FBQ2xCOztBQUVBOztnRUFFZ0U7QUFDaEU7SUFDSSxxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksNkRBQTZEO0FBQ2pFOztBQUVBO0lBQ0ksZ0NBQWdDO0FBQ3BDOztBQUVBO0lBQ0ksNEJBQTRCO0lBQzVCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsK0VBQStFO0lBQy9FLGtEQUFrRDtJQUNsRCw4Q0FBOEM7QUFDbEQ7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIsMENBQTBDO0FBQzlDOztBQUVBO0lBQ0ksMkJBQTJCO0lBQzNCLHlDQUF5QztBQUM3Qzs7QUFFQTtJQUNJLFdBQVc7SUFDWCxZQUFZO0lBQ1osYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQiwyQkFBMkI7SUFDM0IscUNBQXFDO0lBQ3JDLGlGQUFpRjtBQUNyRjs7QUFFQTtJQUNJLDJCQUEyQjtJQUMzQixxQ0FBcUM7SUFDckMsMENBQTBDO0FBQzlDOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSxvQ0FBb0M7SUFDcEMsMkNBQTJDO0lBQzNDLG1CQUFtQjtJQUNuQixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTs7SUFFSSxnQkFBZ0I7SUFDaEIsc0NBQXNDO0lBQ3RDLDhDQUE4QztBQUNsRDs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGVBQWU7SUFDZixvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQiwyQkFBMkI7SUFDM0IscUNBQXFDO0lBQ3JDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7SUFFSSxxQ0FBcUM7SUFDckMsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksMkJBQTJCO0lBQzNCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIscUNBQXFDO0lBQ3JDLDJDQUEyQztJQUMzQyx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxvQ0FBb0M7QUFDeEM7O0FBRUE7SUFDSSwyQ0FBMkM7QUFDL0M7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIseUJBQXlCO0lBQ3pCLDhDQUE4QztBQUNsRDs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixlQUFlO0FBQ25COztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLDBFQUEwRTtJQUMxRSwrQkFBK0I7SUFDL0IsNkNBQTZDO0lBQzdDLG9DQUFvQztBQUN4Qzs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixvQkFBb0I7QUFDeEI7O0FBRUE7SUFDSTtRQUNJLHFDQUFxQztJQUN6QztBQUNKOztBQUVBO0lBQ0k7O1FBRUksaUNBQWlDO0lBQ3JDO0FBQ0o7O0FBRUE7SUFDSTs7UUFFSSxjQUFjO0lBQ2xCOztJQUVBO1FBQ0kscUNBQXFDO0lBQ3pDO0FBQ0o7O0FBRUE7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxjQUFjO0lBQ2Qsc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksUUFBUTtJQUNSLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsMkNBQTJDO0lBQzNDLHFDQUFxQztJQUNyQyxzQkFBc0I7SUFDdEIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQiw0Q0FBNEM7SUFDNUMseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksdUJBQXVCO0FBQzNCOztBQUVBO0lBQ0ksY0FBYztJQUNkLG1CQUFtQjtJQUNuQixzQ0FBc0M7SUFDdEMsMEJBQTBCO0FBQzlCOztBQUVBO0lBQ0ksV0FBVztJQUNYLHVFQUF1RTtJQUN2RSxxQ0FBcUM7SUFDckMsNkNBQTZDO0FBQ2pEOztBQUVBO0lBQ0ksV0FBVztBQUNmOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLCtCQUErQjtBQUNuQzs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsUUFBUTtJQUNSLGlCQUFpQjtJQUNqQiwwQkFBMEI7SUFDMUIsbUJBQW1CO0lBQ25CLDZCQUE2QjtJQUM3Qix1QkFBdUI7SUFDdkIsc0JBQXNCO0lBQ3RCLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLGNBQWM7SUFDZCx1QkFBdUI7QUFDM0I7O0FBRUE7O0lBRUksY0FBYztJQUNkLG1CQUFtQjtJQUNuQixzQ0FBc0M7SUFDdEMsMEJBQTBCO0FBQzlCOztBQUVBO0lBQ0ksV0FBVztJQUNYLHFEQUFxRDtJQUNyRCxvQ0FBb0M7SUFDcEMsNENBQTRDO0FBQ2hEOztBQUVBO0lBQ0ksV0FBVztBQUNmOztBQUVBOztnRUFFZ0U7QUFDaEU7SUFDSSx1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2Qix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QixvQkFBb0I7SUFDcEIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6QixzQkFBc0I7SUFDdEIsc0JBQXNCO0lBQ3RCLDBCQUEwQjtBQUM5Qjs7QUFFQTtJQUNJLHNFQUFzRTtJQUN0RSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxxRkFBcUY7SUFDckYsOENBQThDO0FBQ2xEOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLGdCQUFnQjtJQUNoQixzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0IscUNBQXFDO0FBQ3pDOztBQUVBO0lBQ0kscUNBQXFDO0FBQ3pDOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixzQ0FBc0M7SUFDdEMsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0IscUNBQXFDO0FBQ3pDOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLHFDQUFxQztJQUNyQyx1Q0FBdUM7QUFDM0M7O0FBRUE7SUFDSSwwRUFBMEU7SUFDMUUsaURBQWlEO0lBQ2pELDhDQUE4QztBQUNsRDs7QUFFQTtJQUNJLGdDQUFnQztBQUNwQzs7QUFFQTtJQUNJLDJDQUEyQztJQUMzQyxvQ0FBb0M7SUFDcEMsNkJBQTZCO0lBQzdCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGdDQUFnQztBQUNwQzs7QUFFQTtJQUNJLGNBQWM7SUFDZCxvQ0FBb0M7SUFDcEMsdUNBQXVDO0lBQ3ZDLDBCQUEwQjtBQUM5Qjs7QUFFQTtJQUNJLCtFQUErRTtJQUMvRSxxQ0FBcUM7SUFDckMsNkNBQTZDO0FBQ2pEOztBQUVBO0lBQ0ksZ0NBQWdDO0lBQ2hDLDZCQUE2QjtJQUM3Qix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSxnQ0FBZ0M7QUFDcEM7O0FBRUE7O0lBRUksY0FBYztJQUNkLG9DQUFvQztJQUNwQyx1Q0FBdUM7QUFDM0M7O0FBRUE7SUFDSSwrRUFBK0U7SUFDL0UscUNBQXFDO0lBQ3JDLDZDQUE2QztBQUNqRDs7O0FBR0E7O2dFQUVnRTtBQUNoRTs7SUFFSSw4QkFBOEI7SUFDOUIsMkNBQTJDO0lBQzNDLHNEQUFzRDtBQUMxRDs7QUFFQTs7Ozs7SUFLSSx5QkFBeUI7QUFDN0I7O0FBRUE7Ozs7SUFJSSw2QkFBNkI7SUFDN0Isb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5QiwyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0IsOEJBQThCO0lBQzlCLG9DQUFvQztJQUNwQywyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSw2QkFBNkI7QUFDakM7O0FBRUE7OztJQUdJLDZCQUE2QjtJQUM3Qiw4QkFBOEI7SUFDOUIsb0NBQW9DO0lBQ3BDLHdEQUF3RDtBQUM1RDs7QUFFQTtJQUNJLDZCQUE2QjtJQUM3Qix5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsd0NBQXdDO0lBQ3hDLHlDQUF5QztBQUM3Qzs7QUFFQTs7SUFFSSw4QkFBOEI7SUFDOUIsNERBQTREO0lBQzVELHVEQUF1RDtBQUMzRDs7QUFFQTtJQUNJLDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLDZCQUE2QjtJQUM3QixnREFBZ0Q7SUFDaEQscURBQXFEO0lBQ3JELHlCQUF5QjtJQUN6QiwyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsa0RBQWtEO0lBQ2xELDBCQUEwQjtBQUM5Qjs7QUFFQTs7SUFFSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtJQUN6QiwyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0IseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLG9DQUFvQztBQUN4Qzs7QUFFQTtJQUNJLCtDQUErQztJQUMvQyxnREFBZ0Q7SUFDaEQseUJBQXlCO0FBQzdCOztBQUVBOztnRUFFZ0U7QUFDaEU7O0lBRUksd0VBQXdFO0lBQ3hFLDJDQUEyQztJQUMzQyx3REFBd0Q7QUFDNUQ7O0FBRUE7OztJQUdJLDZCQUE2QjtJQUM3Qiw4QkFBOEI7SUFDOUIsb0NBQW9DO0lBQ3BDLHlCQUF5QjtJQUN6QiwyQkFBMkI7QUFDL0I7O0FBRUE7OztJQUdJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksNkJBQTZCO0FBQ2pDOztBQUVBOzs7SUFHSSw2QkFBNkI7SUFDN0IsOEJBQThCO0lBQzlCLG9DQUFvQztJQUNwQyx5REFBeUQ7QUFDN0Q7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0IseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLHdDQUF3QztJQUN4Qyx5Q0FBeUM7QUFDN0M7O0FBRUE7O0lBRUksd0VBQXdFO0lBQ3hFLDREQUE0RDtJQUM1RCx3REFBd0Q7QUFDNUQ7O0FBRUE7SUFDSSwyQ0FBMkM7QUFDL0M7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0IsZ0RBQWdEO0lBQ2hELHNEQUFzRDtJQUN0RCx5QkFBeUI7SUFDekIsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksMENBQTBDO0FBQzlDOztBQUVBO0lBQ0ksZ0RBQWdEO0lBQ2hELGlEQUFpRDtJQUNqRCwwQkFBMEI7QUFDOUI7O0FBRUE7O0lBRUksZ0VBQWdFO0lBQ2hFLGlEQUFpRDtJQUNqRCxzQkFBc0I7SUFDdEIsd0RBQXdEO0FBQzVEOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLGdEQUFnRDtJQUNoRCxrREFBa0Q7QUFDdEQ7O0FBRUE7SUFDSSwrQ0FBK0M7SUFDL0Msa0RBQWtEO0lBQ2xELHNCQUFzQjtBQUMxQjs7QUFFQTs7O2dFQUdnRTtBQUNoRTtJQUNJLHNCQUFzQjtJQUN0QixzQkFBc0I7SUFDdEIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLDZCQUE2Qjs7SUFFN0IsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QiwyQ0FBMkM7SUFDM0MsdUJBQXVCO0lBQ3ZCLDBDQUEwQztJQUMxQyx5Q0FBeUM7SUFDekMsK0NBQStDO0lBQy9DLDJCQUEyQjtJQUMzQiwyQkFBMkI7QUFDL0I7O0FBRUE7O0lBRUksOEZBQThGO0lBQzlGLHdEQUF3RDtJQUN4RCx3REFBd0Q7QUFDNUQ7O0FBRUE7O0lBRUksb0NBQW9DO0lBQ3BDLHFCQUFxQjtBQUN6Qjs7QUFFQTs7SUFFSSxvQ0FBb0M7SUFDcEMsb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5Qiw2QkFBNkI7SUFDN0IsMkJBQTJCO0FBQy9COztBQUVBOztJQUVJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMsb0NBQW9DO0lBQ3BDLDZCQUE2QjtBQUNqQzs7QUFFQTs7SUFFSSxxQ0FBcUM7QUFDekM7O0FBRUE7SUFDSSxvQ0FBb0M7SUFDcEMsb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5Qiw2QkFBNkI7SUFDN0IsMkJBQTJCO0FBQy9COztBQUVBOztJQUVJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLG9DQUFvQztJQUNwQyw2QkFBNkI7SUFDN0IsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksb0NBQW9DO0FBQ3hDOztBQUVBO0lBQ0ksNkJBQTZCO0FBQ2pDOztBQUVBOzs7SUFHSSw4QkFBOEI7SUFDOUIsb0NBQW9DO0lBQ3BDLDZCQUE2QjtJQUM3Qix5REFBeUQ7SUFDekQsOEJBQThCO0lBQzlCLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLG9DQUFvQztBQUN4Qzs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6Qiw2QkFBNkI7SUFDN0IsMEJBQTBCO0lBQzFCLCtCQUErQjtJQUMvQixrQ0FBa0M7QUFDdEM7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxnREFBZ0Q7SUFDaEQseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLHdDQUF3QztJQUN4Qyx5Q0FBeUM7QUFDN0M7O0FBRUE7O0lBRUksZ0dBQWdHO0lBQ2hHLHdEQUF3RDtJQUN4RCx3REFBd0Q7QUFDNUQ7O0FBRUE7O0lBRUksc0NBQXNDO0lBQ3RDLHNCQUFzQjtBQUMxQjs7QUFFQTs7SUFFSSxxQ0FBcUM7SUFDckMsMENBQTBDO0lBQzFDLHNEQUFzRDtJQUN0RCw2QkFBNkI7SUFDN0IsMkJBQTJCO0FBQy9COztBQUVBOztJQUVJLDBDQUEwQztBQUM5Qzs7QUFFQTs7SUFFSSxnREFBZ0Q7SUFDaEQsaURBQWlEO0lBQ2pELHlCQUF5QjtJQUN6QiwwQkFBMEI7QUFDOUI7O0FBRUE7Ozs7SUFJSSxnR0FBZ0c7SUFDaEcsaURBQWlEO0lBQ2pELHNCQUFzQjtJQUN0Qix3REFBd0Q7QUFDNUQ7O0FBRUE7O0lBRUksMkNBQTJDO0lBQzNDLDZCQUE2QjtJQUM3Qix3Q0FBd0M7QUFDNUM7O0FBRUE7O0lBRUkseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLGdEQUFnRDtJQUNoRCxrREFBa0Q7SUFDbEQsc0JBQXNCO0FBQzFCOztBQUVBOztJQUVJLCtDQUErQztJQUMvQyxrREFBa0Q7SUFDbEQsc0JBQXNCO0FBQzFCOztBQUVBOzs7Z0VBR2dFO0FBQ2hFO0lBQ0ksd0VBQXdFO0lBQ3hFLDZEQUE2RDtJQUM3RCx3REFBd0Q7QUFDNUQ7O0FBRUE7Ozs7SUFJSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSwrQ0FBK0M7SUFDL0Msc0RBQXNEO0lBQ3RELDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLGdEQUFnRDtJQUNoRCxrREFBa0Q7QUFDdEQ7O0FBRUE7SUFDSSwrQ0FBK0M7SUFDL0MsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksK0NBQStDO0lBQy9DLHNEQUFzRDtJQUN0RCw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsb0NBQW9DO0lBQ3BDLHlCQUF5QjtJQUN6Qiw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksOEJBQThCO0lBQzlCLG9DQUFvQztJQUNwQyw2QkFBNkI7SUFDN0IseURBQXlEO0lBQ3pELHVCQUF1QjtJQUN2QiwyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUMxQiwyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsMEJBQTBCO0FBQzlCOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3Qiw0QkFBNEI7SUFDNUIsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLHdDQUF3QztJQUN4Qyx5Q0FBeUM7QUFDN0M7O0FBRUE7SUFDSSx3RUFBd0U7SUFDeEUsNERBQTREO0lBQzVELHdEQUF3RDtBQUM1RDs7QUFFQTtJQUNJLDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QiwrQ0FBK0M7SUFDL0MscURBQXFEO0lBQ3JELDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLGdEQUFnRDtJQUNoRCxrREFBa0Q7QUFDdEQ7O0FBRUE7SUFDSSxnRUFBZ0U7SUFDaEUsa0RBQWtEO0lBQ2xELHdEQUF3RDtBQUM1RDs7QUFFQTtJQUNJLDJDQUEyQztJQUMzQyw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksZ0RBQWdEO0lBQ2hELGlEQUFpRDtJQUNqRCx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxnRUFBZ0U7SUFDaEUsa0RBQWtEO0FBQ3REOztBQUVBOzs7Z0VBR2dFO0FBQ2hFO0lBQ0ksc0JBQXNCO0lBQ3RCLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLDhCQUE4QjtJQUM5Qiw4QkFBOEI7SUFDOUIsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksOEZBQThGO0lBQzlGLDZEQUE2RDtJQUM3RCx3REFBd0Q7QUFDNUQ7O0FBRUE7SUFDSSx5Q0FBeUM7QUFDN0M7O0FBRUE7SUFDSSx5Q0FBeUM7SUFDekMsK0NBQStDO0lBQy9DLHNEQUFzRDtJQUN0RCw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSxnREFBZ0Q7SUFDaEQsa0RBQWtEO0FBQ3REOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0kseUNBQXlDO0lBQ3pDLCtDQUErQztJQUMvQyw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSx5Q0FBeUM7SUFDekMsK0NBQStDO0lBQy9DLHNEQUFzRDtJQUN0RCw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSw2QkFBNkI7QUFDakM7O0FBRUE7O0lBRUksOEJBQThCO0lBQzlCLG9DQUFvQztJQUNwQyw2QkFBNkI7SUFDN0IseURBQXlEO0lBQ3pELDJCQUEyQjtJQUMzQix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUMxQiwyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsMEJBQTBCO0FBQzlCOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3Qiw0QkFBNEI7SUFDNUIsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLHdDQUF3QztJQUN4Qyx5Q0FBeUM7QUFDN0M7O0FBRUE7SUFDSSxnR0FBZ0c7SUFDaEcsNERBQTREO0lBQzVELHVEQUF1RDtBQUMzRDs7QUFFQTtJQUNJLDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLHlDQUF5QztJQUN6QyxnREFBZ0Q7SUFDaEQsc0RBQXNEO0lBQ3RELDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLGdEQUFnRDtJQUNoRCxpREFBaUQ7QUFDckQ7O0FBRUE7SUFDSSxzR0FBc0c7SUFDdEcsaURBQWlEO0lBQ2pELHdEQUF3RDtBQUM1RDs7QUFFQTtJQUNJLDJDQUEyQztJQUMzQyw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksZ0RBQWdEO0lBQ2hELGtEQUFrRDtJQUNsRCx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxzR0FBc0c7SUFDdEcsaURBQWlEO0FBQ3JEOztBQUVBOzs7Z0VBR2dFO0FBQ2hFO0lBQ0kscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIsc0JBQXNCO0lBQ3RCLHNCQUFzQjtJQUN0Qix3QkFBd0I7SUFDeEIsb0JBQW9CO0lBQ3BCLHdDQUF3QztBQUM1Qzs7QUFFQTtJQUNJLDRGQUE0RjtJQUM1Riw0REFBNEQ7SUFDNUQsd0RBQXdEO0FBQzVEOztBQUVBO0lBQ0ksa0NBQWtDO0FBQ3RDOztBQUVBO0lBQ0ksa0NBQWtDO0lBQ2xDLCtDQUErQztJQUMvQyxnREFBZ0Q7SUFDaEQsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksZ0RBQWdEO0lBQ2hELGtEQUFrRDtBQUN0RDs7QUFFQTtJQUNJLDZCQUE2QjtJQUM3Qiw4QkFBOEI7SUFDOUIsb0NBQW9DO0lBQ3BDLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLGtDQUFrQztJQUNsQyxnREFBZ0Q7SUFDaEQsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksa0NBQWtDO0lBQ2xDLGdEQUFnRDtJQUNoRCxxREFBcUQ7SUFDckQsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksNkJBQTZCO0FBQ2pDOztBQUVBOztJQUVJLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMsNkJBQTZCO0lBQzdCLHlEQUF5RDtJQUN6RCx1QkFBdUI7SUFDdkIsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksMkJBQTJCO0lBQzNCLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QiwwQkFBMEI7SUFDMUIsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLDBCQUEwQjtBQUM5Qjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6Qiw2QkFBNkI7SUFDN0IsNEJBQTRCO0lBQzVCLDJCQUEyQjtBQUMvQjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5Qix3Q0FBd0M7SUFDeEMseUNBQXlDO0FBQzdDOztBQUVBO0lBQ0ksOEZBQThGO0lBQzlGLDREQUE0RDtJQUM1RCx1REFBdUQ7QUFDM0Q7O0FBRUE7SUFDSSwwQ0FBMEM7QUFDOUM7O0FBRUE7SUFDSSxrQ0FBa0M7SUFDbEMsZ0RBQWdEO0lBQ2hELHNEQUFzRDtJQUN0RCw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxnREFBZ0Q7SUFDaEQsa0RBQWtEO0FBQ3REOztBQUVBO0lBQ0ksd0ZBQXdGO0lBQ3hGLGlEQUFpRDtJQUNqRCx1REFBdUQ7QUFDM0Q7O0FBRUE7SUFDSSwyQ0FBMkM7SUFDM0MsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLGdEQUFnRDtJQUNoRCxrREFBa0Q7SUFDbEQseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksd0ZBQXdGO0lBQ3hGLGlEQUFpRDtBQUNyRDs7QUFFQTs7Z0VBRWdFO0FBQ2hFO0lBQ0ksd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4Qix5QkFBeUI7SUFDekIseUJBQXlCO0lBQ3pCLHNCQUFzQjtJQUN0QixvQkFBb0I7SUFDcEIsdUNBQXVDO0FBQzNDOztBQUVBO0lBQ0ksa0dBQWtHO0lBQ2xHLDZEQUE2RDtJQUM3RCx3REFBd0Q7QUFDNUQ7O0FBRUE7SUFDSSxrQ0FBa0M7QUFDdEM7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0Isc0JBQXNCO0lBQ3RCLHVCQUF1QjtJQUN2QiwrQ0FBK0M7SUFDL0MsZ0RBQWdEO0lBQ2hELGtDQUFrQztBQUN0Qzs7QUFFQTtJQUNJLGdEQUFnRDtJQUNoRCxrREFBa0Q7QUFDdEQ7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0IsOEJBQThCO0lBQzlCLG9DQUFvQztJQUNwQyx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0IsZ0RBQWdEO0lBQ2hELGtDQUFrQztBQUN0Qzs7QUFFQTtJQUNJLDZCQUE2QjtJQUM3QixzREFBc0Q7SUFDdEQsZ0RBQWdEO0lBQ2hELGtDQUFrQztBQUN0Qzs7QUFFQTtJQUNJLDZCQUE2QjtBQUNqQzs7QUFFQTs7SUFFSSw2QkFBNkI7SUFDN0Isb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5Qix5REFBeUQ7SUFDekQsMkJBQTJCO0lBQzNCLHVCQUF1QjtBQUMzQjs7QUFFQTtJQUNJLDJCQUEyQjtJQUMzQixpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLHlCQUF5QjtJQUN6Qiw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSwwQkFBMEI7SUFDMUIseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksd0NBQXdDO0lBQ3hDLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLHdCQUF3QjtJQUN4Qiw4QkFBOEI7SUFDOUIsbUJBQW1CO0lBQ25CLDZCQUE2QjtJQUM3Qiw0QkFBNEI7SUFDNUIsd0JBQXdCO0lBQ3hCLDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5Qix3Q0FBd0M7SUFDeEMseUNBQXlDO0FBQzdDOztBQUVBO0lBQ0ksb0dBQW9HO0lBQ3BHLDJEQUEyRDtJQUMzRCx3REFBd0Q7QUFDNUQ7O0FBRUE7SUFDSSwyQ0FBMkM7QUFDL0M7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0Isc0RBQXNEO0lBQ3RELGdEQUFnRDtJQUNoRCxrQ0FBa0M7QUFDdEM7O0FBRUE7SUFDSSwyQ0FBMkM7QUFDL0M7O0FBRUE7SUFDSSxnREFBZ0Q7SUFDaEQsa0RBQWtEO0FBQ3REOztBQUVBO0lBQ0ksMkVBQTJFO0lBQzNFLGlEQUFpRDtBQUNyRDs7QUFFQTtJQUNJLDZCQUE2QjtJQUM3QiwyQ0FBMkM7QUFDL0M7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksZ0RBQWdEO0lBQ2hELGtEQUFrRDtJQUNsRCx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSwyRUFBMkU7SUFDM0UsaURBQWlEO0FBQ3JEOztBQUVBOztnRUFFZ0U7QUFDaEU7SUFDSSxnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLFlBQVk7SUFDWiwyQ0FBMkM7SUFDM0Msb0NBQW9DO0FBQ3hDOztBQUVBO0lBQ0kscUNBQXFDO0lBQ3JDLHNDQUFzQztBQUMxQzs7QUFFQTtJQUNJLDRDQUE0QztJQUM1QyxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSw2QkFBNkI7QUFDakM7O0FBRUE7O0lBRUksa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6QixtQkFBbUI7SUFDbkIsNkNBQTZDO0lBQzdDLFlBQVk7SUFDWixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksY0FBYztJQUNkLGdCQUFnQjtJQUNoQixlQUFlO0FBQ25COztBQUVBO0lBQ0ksY0FBYztJQUNkLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsYUFBYTtBQUNqQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsdUJBQXVCO0FBQzNCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLDZCQUE2QjtJQUM3Qiw4QkFBOEI7QUFDbEM7O0FBRUE7O2dFQUVnRTtBQUNoRTtJQUNJLHNCQUFzQjtJQUN0QixzQkFBc0I7SUFDdEIsc0JBQXNCO0lBQ3RCLHVCQUF1QjtJQUN2Qix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLHFCQUFxQjtJQUNyQiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLDZEQUE2RDtBQUNqRTs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLG1GQUFtRjtJQUNuRixrREFBa0Q7SUFDbEQsOENBQThDO0FBQ2xEOztBQUVBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QixrQkFBa0I7SUFDbEIsd0NBQXdDO0lBQ3hDLHFDQUFxQztBQUN6Qzs7QUFFQTtJQUNJLHNDQUFzQztJQUN0QyxxQ0FBcUM7QUFDekM7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLHFCQUFxQjtJQUNyQixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QixrQkFBa0I7SUFDbEIscUNBQXFDO0FBQ3pDOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLGtCQUFrQjtJQUNsQixxQ0FBcUM7SUFDckMsdUNBQXVDO0FBQzNDOztBQUVBO0lBQ0ksNkJBQTZCO0FBQ2pDOztBQUVBOztJQUVJLGtCQUFrQjtJQUNsQix5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLDhDQUE4QztBQUNsRDs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLDZCQUE2QjtJQUM3Qiw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSxxRkFBcUY7SUFDckYsZ0RBQWdEO0lBQ2hELDZDQUE2QztBQUNqRDs7QUFFQTtJQUNJLGdDQUFnQztBQUNwQzs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQiwyQ0FBMkM7SUFDM0MscUNBQXFDO0lBQ3JDLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLGdDQUFnQztBQUNwQzs7QUFFQTtJQUNJLHFDQUFxQztJQUNyQyx1Q0FBdUM7SUFDdkMsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLCtEQUErRDtJQUMvRCxzQ0FBc0M7SUFDdEMsNkNBQTZDO0FBQ2pEOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGdDQUFnQztBQUNwQzs7QUFFQTtJQUNJLDZCQUE2QjtBQUNqQzs7QUFFQTs7SUFFSSxxQ0FBcUM7SUFDckMsdUNBQXVDO0lBQ3ZDLGNBQWM7SUFDZCxlQUFlO0FBQ25COztBQUVBO0lBQ0ksK0RBQStEO0lBQy9ELHNDQUFzQztJQUN0Qyw2Q0FBNkM7QUFDakQ7OztBQUdBOztnRUFFZ0U7QUFDaEU7O0lBRUksOEJBQThCO0lBQzlCLDJDQUEyQztJQUMzQyx1REFBdUQ7QUFDM0Q7O0FBRUE7Ozs7O0lBS0kseUJBQXlCO0FBQzdCOztBQUVBOzs7O0lBSUksMkJBQTJCO0lBQzNCLG9DQUFvQztJQUNwQyxnREFBZ0Q7SUFDaEQsMkJBQTJCO0FBQy9COztBQUVBOzs7O0lBSUksZ0RBQWdEO0lBQ2hELGdDQUFnQztJQUNoQyx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsZ0RBQWdEO0lBQ2hELG9DQUFvQztJQUNwQywyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSwyQkFBMkI7QUFDL0I7O0FBRUE7O0lBRUkseUJBQXlCO0FBQzdCOztBQUVBOzs7SUFHSSwyQkFBMkI7SUFDM0IsOEJBQThCO0lBQzlCLG9DQUFvQztJQUNwQyx3REFBd0Q7QUFDNUQ7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLHdDQUF3QztJQUN4Qyx5Q0FBeUM7QUFDN0M7O0FBRUE7O0lBRUksOEJBQThCO0lBQzlCLDREQUE0RDtJQUM1RCx3REFBd0Q7QUFDNUQ7O0FBRUE7O0lBRUksMkNBQTJDO0FBQy9DOztBQUVBOztJQUVJLDJCQUEyQjtJQUMzQiw4QkFBOEI7SUFDOUIsb0NBQW9DO0lBQ3BDLHlCQUF5QjtJQUN6QiwyQkFBMkI7QUFDL0I7O0FBRUE7O0lBRUkseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMsMEJBQTBCO0FBQzlCOztBQUVBOzs7O0lBSUksOEJBQThCO0lBQzlCLGdDQUFnQztJQUNoQyx5QkFBeUI7SUFDekIsMkJBQTJCO0FBQy9COztBQUVBOztJQUVJLDJCQUEyQjtJQUMzQix5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksOEJBQThCO0lBQzlCLG9DQUFvQztBQUN4Qzs7QUFFQTs7SUFFSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7Z0VBRWdFO0FBQ2hFOzs7SUFHSSw2QkFBNkI7SUFDN0IsMkJBQTJCO0lBQzNCLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMseUJBQXlCO0lBQ3pCLDJCQUEyQjtBQUMvQjs7QUFFQTs7O0lBR0ksOEJBQThCO0lBQzlCLGdDQUFnQztJQUNoQyx5QkFBeUI7QUFDN0I7O0FBRUE7OztJQUdJLDZCQUE2QjtJQUM3QiwyQkFBMkI7SUFDM0IsOEJBQThCO0lBQzlCLGdDQUFnQztJQUNoQyx5QkFBeUI7SUFDekIsMkJBQTJCO0FBQy9COztBQUVBOzs7SUFHSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7Z0VBRWdFO0FBQ2hFO0lBQ0ksMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQiw0QkFBNEI7SUFDNUIsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQix5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSx3QkFBd0I7SUFDeEIsa0NBQWtDO0lBQ2xDLG9CQUFvQjtJQUNwQiw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDBCQUEwQjtBQUM5Qjs7QUFFQTtJQUNJLDRCQUE0QjtJQUM1QiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLG9CQUFvQjtJQUNwQiwwQkFBMEI7SUFDMUIseUJBQXlCO0lBQ3pCLDJCQUEyQjtBQUMvQjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTs7Z0VBRWdFO0FBQ2hFO0lBQ0ksd0JBQXdCO0lBQ3hCLDhCQUE4QjtJQUM5QixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksMEJBQTBCO0lBQzFCLDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsdUJBQXVCO0FBQzNCOztBQUVBO0lBQ0ksMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQix5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSw0QkFBNEI7SUFDNUIsOEJBQThCO0lBQzlCLG9DQUFvQztJQUNwQyx3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSx3QkFBd0I7SUFDeEIsOEJBQThCO0lBQzlCLHlDQUF5QztJQUN6QyxvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLGdDQUFnQztBQUNwQzs7QUFFQTtJQUNJLDBCQUEwQjtJQUMxQix5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSwwQkFBMEI7SUFDMUIsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBQzNCLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLDRCQUE0QjtJQUM1Qiw4QkFBOEI7SUFDOUIsb0NBQW9DO0lBQ3BDLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLHdCQUF3QjtJQUN4Qiw4QkFBOEI7SUFDOUIseUNBQXlDO0lBQ3pDLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksZ0NBQWdDO0FBQ3BDOztBQUVBO0lBQ0ksMEJBQTBCO0lBQzFCLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLDBCQUEwQjtJQUMxQiwyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSTtRQUNJLHdCQUF3QjtJQUM1Qjs7SUFFQTtRQUNJLHlCQUF5QjtJQUM3QjtBQUNKOztBQUVBLDBFQUEwRTtBQUMxRSxtRUFBbUU7QUFDbkU7SUFDSSxpQkFBaUI7SUFDakIsc0JBQXNCO0lBQ3RCLDJCQUEyQjtJQUMzQixxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLHdCQUF3QjtJQUN4QixzQkFBc0I7SUFDdEIsNkJBQTZCO0lBQzdCLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLGdEQUFnRDtBQUNwRDs7QUFFQTtJQUNJLHdEQUF3RDtJQUN4RCxpQ0FBaUM7SUFDakM7OztnQ0FHNEI7QUFDaEM7O0FBRUE7Ozs7SUFJSSw0REFBNEQ7QUFDaEU7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsNkJBQTZCO0lBQzdCLDRCQUE0QjtJQUM1QixnREFBZ0Q7QUFDcEQ7O0FBRUE7O0lBRUksdUJBQXVCO0lBQ3ZCLGdEQUFnRDtJQUNoRCxxREFBcUQ7SUFDckQsMEJBQTBCO0lBQzFCLHdEQUF3RDtBQUM1RDs7QUFFQTs7O0lBR0ksb0NBQW9DO0FBQ3hDOztBQUVBOzs7SUFHSSxtQ0FBbUM7QUFDdkM7O0FBRUE7O0lBRUksb0JBQW9CO0lBQ3BCO2lGQUM2RTtJQUM3RSw0REFBNEQ7SUFDNUQsd0RBQXdEO0FBQzVEOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLGdCQUFnQjtJQUNoQixzQkFBc0I7SUFDdEIseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLGtDQUFrQztJQUNsQyxtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6Qiw4Q0FBOEM7QUFDbEQ7O0FBRUE7O0lBRUksc0JBQXNCO0lBQ3RCLGdHQUFnRztJQUNoRyw4Q0FBOEM7QUFDbEQ7O0FBRUE7O0lBRUksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLG1CQUFtQjtBQUN2Qjs7QUFFQTs7SUFFSSxzQkFBc0I7SUFDdEIsK0NBQStDO0FBQ25EOztBQUVBOztJQUVJLDhDQUE4QztJQUM5Qyw4QkFBOEI7SUFDOUIseUNBQXlDO0lBQ3pDLHdDQUF3QztBQUM1Qzs7QUFFQTs7SUFFSSxnQ0FBZ0M7SUFDaEMsOEJBQThCO0FBQ2xDOztBQUVBOztJQUVJLG9DQUFvQztJQUNwQyw4QkFBOEI7SUFDOUIsOEJBQThCO0lBQzlCLGlDQUFpQztBQUNyQzs7QUFFQTs7SUFFSSwwQ0FBMEM7SUFDMUMsNERBQTREO0FBQ2hFOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLDJCQUEyQjtJQUMzQixzQkFBc0I7QUFDMUI7O0FBRUE7O0lBRUksMENBQTBDO0lBQzFDLG9EQUFvRDtJQUNwRCx1REFBdUQ7SUFDdkQsaUVBQWlFO0FBQ3JFOztBQUVBOztJQUVJLDBDQUEwQztJQUMxQyxvREFBb0Q7SUFDcEQscUNBQXFDO0lBQ3JDLCtDQUErQztBQUNuRDs7QUFFQTs7SUFFSSx5Q0FBeUM7SUFDekMsbURBQW1EO0FBQ3ZEOztBQUVBOztJQUVJLHlDQUF5QztJQUN6QyxtREFBbUQ7SUFDbkQsK0JBQStCO0FBQ25DOztBQUVBO0lBQ0ksb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5Qix5REFBeUQ7SUFDekQsOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksd0VBQXdFO0lBQ3hFLHlCQUF5QjtJQUN6QiwyQ0FBMkM7QUFDL0M7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsMkNBQTJDO0FBQy9DOztBQUVBO0lBQ0ksOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLHdDQUF3QztBQUM1Qzs7QUFFQTtJQUNJLG9DQUFvQztJQUNwQyxnQ0FBZ0M7SUFDaEMsOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0kseUNBQXlDO0lBQ3pDLDJDQUEyQztJQUMzQyxzQkFBc0I7QUFDMUI7O0FBRUE7O0lBRUksOEJBQThCO0lBQzlCLHdDQUF3QztJQUN4Qyx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSTtRQUNJLDZCQUE2QjtRQUM3Qiw0QkFBNEI7SUFDaEM7O0lBRUE7O1FBRUksdUJBQXVCO0lBQzNCOztJQUVBOztRQUVJLG9CQUFvQjtJQUN4QjtBQUNKOztBQUVBLHVEQUF1RDtBQUN2RDtJQUNJLDRFQUE0RTtJQUM1RSw0Q0FBNEM7SUFDNUMsMkNBQTJDO0lBQzNDLHVCQUF1QjtJQUN2Qiw0QkFBNEI7SUFDNUIseUJBQXlCO0lBQ3pCLCtDQUErQztJQUMvQyxtREFBbUQ7QUFDdkQ7O0FBRUE7O0lBRUksdUJBQXVCO0lBQ3ZCLHdDQUF3QztJQUN4Qyx5REFBeUQ7SUFDekQsNENBQTRDO0lBQzVDLDBCQUEwQjtBQUM5Qjs7QUFFQTs7Ozs7SUFLSSxxQ0FBcUM7QUFDekM7O0FBRUE7SUFDSSw0QkFBNEI7SUFDNUIsa0RBQWtEO0lBQ2xELDZDQUE2QztJQUM3Qyw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSxzREFBc0Q7QUFDMUQ7O0FBRUE7OztJQUdJLHlCQUF5QjtJQUN6QiwrQ0FBK0M7QUFDbkQ7O0FBRUE7OztJQUdJLG9DQUFvQztJQUNwQyw4QkFBOEI7SUFDOUIsd0RBQXdEO0lBQ3hELHVCQUF1QjtBQUMzQjs7QUFFQTtJQUNJLDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5Qix5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksb0JBQW9CO0lBQ3BCOztpRkFFNkU7SUFDN0Usd0RBQXdEO0lBQ3hELHdEQUF3RDtBQUM1RDs7QUFFQTtJQUNJLDBDQUEwQztJQUMxQywyQkFBMkI7SUFDM0IsaUNBQWlDO0lBQ2pDLG9DQUFvQztJQUNwQyxnQ0FBZ0M7QUFDcEM7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsOEJBQThCO0lBQzlCLHFDQUFxQztJQUNyQyxrQ0FBa0M7SUFDbEMsd0NBQXdDO0lBQ3hDLG9DQUFvQztBQUN4Qzs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixpREFBaUQ7SUFDakQsZ0RBQWdEO0lBQ2hELDBCQUEwQjtBQUM5Qjs7QUFFQTs7SUFFSSx5QkFBeUI7SUFDekIsa0RBQWtEO0lBQ2xEOzZGQUN5RjtJQUN6RiwwREFBMEQ7QUFDOUQ7O0FBRUE7O0lBRUkseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsMENBQTBDO0FBQzlDOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixnREFBZ0Q7QUFDcEQ7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsaURBQWlEO0lBQ2pELHVEQUF1RDtBQUMzRDs7QUFFQTtJQUNJOztRQUVJLHVCQUF1QjtJQUMzQjs7SUFFQTs7UUFFSSxvQkFBb0I7SUFDeEI7QUFDSjs7O0FBR0E7O2dFQUVnRTtBQUNoRTtJQUNJLDZEQUE2RDtJQUM3RCxtREFBbUQ7O0lBRW5ELGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsc0JBQXNCO0lBQ3RCLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsd0JBQXdCOztJQUV4QixzQkFBc0I7SUFDdEIsNkJBQTZCO0lBQzdCLHFCQUFxQjs7SUFFckIseUJBQXlCO0lBQ3pCLHdCQUF3QjtJQUN4QiwwQkFBMEI7O0lBRTFCLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIsc0JBQXNCOztJQUV0QixpREFBaUQ7SUFDakQsbURBQW1EO0lBQ25ELGtCQUFrQjtBQUN0Qjs7QUFFQTs7SUFFSSw0Q0FBNEM7SUFDNUMsaUNBQWlDO0lBQ2pDOzs7Z0NBRzRCO0FBQ2hDOztBQUVBOzs7SUFHSSw2Q0FBNkM7SUFDN0MseUJBQXlCO0FBQzdCOztBQUVBLFdBQVc7QUFDWDtJQUNJLDJCQUEyQjtJQUMzQiwrSEFBK0g7SUFDL0gsNERBQTREO0lBQzVELHVEQUF1RDtJQUN2RCwwQkFBMEI7QUFDOUI7O0FBRUE7Ozs7Ozs7O0lBUUkseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsOEJBQThCO0lBQzlCLHNEQUFzRDtJQUN0RCxnREFBZ0Q7SUFDaEQsK0JBQStCO0lBQy9CLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsb0NBQW9DO0FBQ3hDOztBQUVBOztJQUVJLHNDQUFzQztJQUN0QywrQ0FBK0M7QUFDbkQ7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsc0RBQXNEO0lBQ3RELGdEQUFnRDtJQUNoRCx5QkFBeUI7SUFDekIsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksMkNBQTJDO0FBQy9DOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLHNEQUFzRDtJQUN0RCxnREFBZ0Q7SUFDaEQsNEJBQTRCO0FBQ2hDOztBQUVBO0lBQ0ksc0RBQXNEO0FBQzFEOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLDhDQUE4QztJQUM5QywyQ0FBMkM7QUFDL0M7O0FBRUE7SUFDSSw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSw4QkFBOEI7QUFDbEM7O0FBRUEsWUFBWTtBQUNaO0lBQ0ksb0JBQW9CO0lBQ3BCOztpRkFFNkU7SUFDN0UsNERBQTREO0lBQzVELHdEQUF3RDtBQUM1RDs7QUFFQTtJQUNJLDJDQUEyQztJQUMzQyxvQ0FBb0M7SUFDcEMsaUNBQWlDO0lBQ2pDLDJCQUEyQjtBQUMvQjs7QUFFQTtJQUNJLDJCQUEyQjtJQUMzQiw4QkFBOEI7SUFDOUIsc0RBQXNEO0lBQ3RELGdEQUFnRDtJQUNoRCx5QkFBeUI7SUFDekIsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksZ0RBQWdEO0lBQ2hELGtEQUFrRDtJQUNsRCxxQ0FBcUM7QUFDekM7O0FBRUE7O0lBRUksNEZBQTRGO0lBQzVGLGtEQUFrRDtJQUNsRCx5QkFBeUI7SUFDekIsMERBQTBEO0FBQzlEOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsMENBQTBDO0FBQzlDOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLDZCQUE2QjtBQUNqQzs7QUFFQTs7SUFFSSx5QkFBeUI7SUFDekIsZ0RBQWdEO0FBQ3BEOztBQUVBLGNBQWM7QUFDZDtJQUNJLDJCQUEyQjtJQUMzQixnREFBZ0Q7SUFDaEQsdUNBQXVDO0FBQzNDOztBQUVBOztJQUVJLDhCQUE4QjtJQUM5QixrREFBa0Q7SUFDbEQseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLDhDQUE4QztJQUM5QywyQ0FBMkM7SUFDM0MseUNBQXlDO0lBQ3pDLDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLDJCQUEyQjtBQUMvQjs7QUFFQTs7SUFFSSxvQ0FBb0M7SUFDcEMsOEJBQThCO0lBQzlCLHlCQUF5QjtJQUN6Qiw4QkFBOEI7QUFDbEM7O0FBRUE7O0lBRUksMkNBQTJDO0lBQzNDLDREQUE0RDtBQUNoRTs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QiwyQkFBMkI7SUFDM0IsaUNBQWlDO0FBQ3JDOztBQUVBOztJQUVJLDBDQUEwQztJQUMxQyxvREFBb0Q7SUFDcEQsdURBQXVEO0lBQ3ZELGlFQUFpRTtBQUNyRTs7QUFFQTs7SUFFSSwwQ0FBMEM7SUFDMUMsb0RBQW9EO0FBQ3hEOztBQUVBOztJQUVJLHlDQUF5QztJQUN6QyxtREFBbUQ7QUFDdkQ7O0FBRUEsVUFBVTtBQUNWO0lBQ0ksNEJBQTRCO0lBQzVCOzs7b0VBR2dFO0FBQ3BFOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLDJCQUEyQjtBQUMvQjs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMseURBQXlEO0lBQ3pELGdEQUFnRDtBQUNwRDs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLG9DQUFvQztJQUNwQywyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSwyQ0FBMkM7QUFDL0M7O0FBRUEsV0FBVztBQUNYO0lBQ0k7UUFDSSwyQkFBMkI7SUFDL0I7O0lBRUE7UUFDSSxvQkFBb0I7UUFDcEIsdUJBQXVCO0lBQzNCOztJQUVBOzs7UUFHSSw2QkFBNkI7SUFDakM7O0lBRUE7OztRQUdJLHlCQUF5QjtJQUM3Qjs7SUFFQTtRQUNJLHVCQUF1QjtJQUMzQjtBQUNKOztBQUVBO0lBQ0k7UUFDSSwyQkFBMkI7UUFDM0IsMEJBQTBCO0lBQzlCOztJQUVBO1FBQ0ksb0JBQW9CO1FBQ3BCLHVCQUF1QjtRQUN2Qix1QkFBdUI7UUFDdkIsd0NBQXdDO1FBQ3hDLHVDQUF1QztRQUN2Qyx3QkFBd0I7SUFDNUI7O0lBRUE7UUFDSSxrQkFBa0I7SUFDdEI7O0lBRUE7UUFDSSwyQkFBMkI7SUFDL0I7O0lBRUE7UUFDSSxzQkFBc0I7UUFDdEIsMEJBQTBCO1FBQzFCLDRCQUE0QjtRQUM1Qiw0Q0FBNEM7UUFDNUMsd0JBQXdCO0lBQzVCOztJQUVBO1FBQ0ksMkJBQTJCO1FBQzNCLHlCQUF5QjtRQUN6Qix1Q0FBdUM7UUFDdkMsd0JBQXdCO0lBQzVCOztJQUVBOztRQUVJLHlCQUF5QjtJQUM3Qjs7SUFFQTtRQUNJLDBCQUEwQjtRQUMxQixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsNkNBQTZDO1FBQzdDLHFEQUFxRDtRQUNyRCw4QkFBOEI7UUFDOUIsd0JBQXdCO1FBQ3hCLHdCQUF3QjtJQUM1QjtBQUNKOztBQUVBO0lBQ0k7O1FBRUksd0JBQXdCO0lBQzVCOztJQUVBO1FBQ0ksMkJBQTJCO0lBQy9COztJQUVBO1FBQ0ksNkJBQTZCO0lBQ2pDOztJQUVBO1FBQ0ksOEJBQThCO0lBQ2xDOztJQUVBO1FBQ0ksd0JBQXdCO1FBQ3hCLGlDQUFpQztRQUNqQyxtQkFBbUI7SUFDdkI7O0lBRUE7O1FBRUksc0JBQXNCO0lBQzFCO0FBQ0o7O0FBRUE7SUFDSTtRQUNJLDZCQUE2QjtJQUNqQzs7SUFFQTtRQUNJLDBCQUEwQjtJQUM5Qjs7SUFFQTtRQUNJLDZCQUE2QjtRQUM3Qiw0QkFBNEI7SUFDaEM7O0lBRUE7UUFDSSx3QkFBd0I7SUFDNUI7O0lBRUE7UUFDSSx5QkFBeUI7SUFDN0I7O0lBRUE7O1FBRUksMkJBQTJCO0lBQy9CO0FBQ0o7O0FBRUE7O2dFQUVnRTtBQUNoRTtJQUNJLGtCQUFrQjtJQUNsQix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLHNCQUFzQjtJQUN0QixvQkFBb0I7SUFDcEIseUJBQXlCOztJQUV6Qix1QkFBdUI7SUFDdkIsOEJBQThCO0lBQzlCLHNCQUFzQjs7SUFFdEIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2Qix1QkFBdUI7O0lBRXZCLHVCQUF1QjtJQUN2QixzQkFBc0I7O0lBRXRCLGtEQUFrRDtJQUNsRCxvREFBb0Q7QUFDeEQ7O0FBRUE7O0lBRUksK0VBQStFO0lBQy9FLGtDQUFrQztJQUNsQzs7O2lDQUc2QjtBQUNqQzs7QUFFQTs7Ozs7Ozs7SUFRSSx5REFBeUQ7SUFDekQseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLDJCQUEyQjtJQUMzQix5SEFBeUg7SUFDekgsNERBQTREO0lBQzVELHVEQUF1RDtBQUMzRDs7QUFFQTs7Ozs7OztJQU9JLHlCQUF5QjtBQUM3Qjs7QUFFQTs7OztJQUlJLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsOEJBQThCO0lBQzlCLHNEQUFzRDtJQUN0RCxnREFBZ0Q7SUFDaEQsK0JBQStCO0lBQy9CLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsb0NBQW9DO0FBQ3hDOztBQUVBOzs7O0lBSUksc0NBQXNDO0lBQ3RDLCtDQUErQztBQUNuRDs7QUFFQTs7SUFFSSw4QkFBOEI7SUFDOUIsc0RBQXNEO0lBQ3RELGdEQUFnRDtJQUNoRCx5QkFBeUI7SUFDekIsMkJBQTJCO0FBQy9COztBQUVBOztJQUVJLDJDQUEyQztBQUMvQzs7QUFFQTs7SUFFSSx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksOEJBQThCO0lBQzlCLHNEQUFzRDtJQUN0RCxnREFBZ0Q7SUFDaEQsNEJBQTRCO0FBQ2hDOztBQUVBOztJQUVJLHNEQUFzRDtBQUMxRDs7QUFFQTs7SUFFSSw4QkFBOEI7SUFDOUIsK0NBQStDO0lBQy9DLDRDQUE0QztBQUNoRDs7QUFFQTs7SUFFSSw2QkFBNkI7QUFDakM7O0FBRUE7O0lBRUksOEJBQThCO0FBQ2xDOztBQUVBOztJQUVJLG9CQUFvQjtJQUNwQjs7aUZBRTZFO0lBQzdFLDREQUE0RDtJQUM1RCx3REFBd0Q7QUFDNUQ7O0FBRUE7O0lBRUksMkNBQTJDO0lBQzNDLG9DQUFvQztJQUNwQyxpQ0FBaUM7SUFDakMsMkJBQTJCO0FBQy9COztBQUVBOztJQUVJLDJCQUEyQjtJQUMzQiw4QkFBOEI7SUFDOUIscURBQXFEO0lBQ3JELGdEQUFnRDtJQUNoRCx5QkFBeUI7SUFDekIsMkJBQTJCO0FBQy9COztBQUVBOztJQUVJLHlCQUF5QjtBQUM3Qjs7QUFFQTs7SUFFSSxnREFBZ0Q7SUFDaEQsa0RBQWtEO0lBQ2xELHFDQUFxQztJQUNyQyx5QkFBeUI7QUFDN0I7O0FBRUE7Ozs7SUFJSSw4RkFBOEY7SUFDOUYsa0RBQWtEO0lBQ2xELHlCQUF5QjtJQUN6QiwwREFBMEQ7QUFDOUQ7O0FBRUE7O0lBRUksNkJBQTZCO0lBQzdCLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsMENBQTBDO0FBQzlDOztBQUVBOztJQUVJLHlCQUF5QjtJQUN6Qiw2QkFBNkI7QUFDakM7O0FBRUE7Ozs7SUFJSSx5QkFBeUI7SUFDekIsZ0RBQWdEO0FBQ3BEOztBQUVBOztJQUVJLDJCQUEyQjtJQUMzQixnREFBZ0Q7SUFDaEQsdUNBQXVDO0FBQzNDOztBQUVBOztJQUVJLDhCQUE4QjtJQUM5QixtREFBbUQ7SUFDbkQseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLCtDQUErQztJQUMvQyw4QkFBOEI7SUFDOUIsMENBQTBDO0lBQzFDLDRDQUE0QztBQUNoRDs7QUFFQTs7SUFFSSxvQ0FBb0M7SUFDcEMsOEJBQThCO0lBQzlCLHlCQUF5QjtJQUN6Qiw4QkFBOEI7QUFDbEM7O0FBRUE7O0lBRUksNENBQTRDO0lBQzVDLDREQUE0RDtBQUNoRTs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QiwyQkFBMkI7QUFDL0I7O0FBRUE7O0lBRUksMkNBQTJDO0lBQzNDLHFEQUFxRDtJQUNyRCx3REFBd0Q7SUFDeEQsa0VBQWtFO0FBQ3RFOztBQUVBOztJQUVJLDJDQUEyQztJQUMzQyxxREFBcUQ7QUFDekQ7O0FBRUE7O0lBRUksMENBQTBDO0lBQzFDLG9EQUFvRDtBQUN4RDs7QUFFQTtJQUNJLDRCQUE0QjtJQUM1Qjs7O29FQUdnRTtBQUNwRTs7QUFFQTtJQUNJLG9DQUFvQztJQUNwQyw4QkFBOEI7SUFDOUIseURBQXlEO0lBQ3pELGdEQUFnRDtBQUNwRDs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHFDQUFxQztJQUNyQywyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSw0Q0FBNEM7QUFDaEQ7O0FBRUE7SUFDSTs7UUFFSSwyQkFBMkI7SUFDL0I7O0lBRUE7O1FBRUksb0JBQW9CO1FBQ3BCLHVCQUF1QjtJQUMzQjs7SUFFQTs7Ozs7UUFLSSw2QkFBNkI7SUFDakM7O0lBRUE7Ozs7O1FBS0kseUJBQXlCO0lBQzdCOztJQUVBOztRQUVJLHVCQUF1QjtJQUMzQjtBQUNKOztBQUVBO0lBQ0k7O1FBRUksMkJBQTJCO1FBQzNCLDBCQUEwQjtJQUM5Qjs7SUFFQTs7UUFFSSxvQkFBb0I7UUFDcEIsdUJBQXVCO1FBQ3ZCLHVCQUF1QjtRQUN2Qix3Q0FBd0M7UUFDeEMsdUNBQXVDO1FBQ3ZDLHdCQUF3QjtJQUM1Qjs7SUFFQTs7UUFFSSxrQkFBa0I7SUFDdEI7O0lBRUE7UUFDSSwyQkFBMkI7SUFDL0I7O0lBRUE7UUFDSSxzQkFBc0I7UUFDdEIsMEJBQTBCO1FBQzFCLDRCQUE0QjtRQUM1Qiw0Q0FBNEM7UUFDNUMsd0JBQXdCO0lBQzVCOztJQUVBOztRQUVJLDJCQUEyQjtRQUMzQix5QkFBeUI7UUFDekIsdUNBQXVDO1FBQ3ZDLHdCQUF3QjtJQUM1Qjs7SUFFQTs7O1FBR0kseUJBQXlCO0lBQzdCOztJQUVBOztRQUVJLDBCQUEwQjtRQUMxQixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsNkNBQTZDO1FBQzdDLHFEQUFxRDtRQUNyRCw4QkFBOEI7UUFDOUIsd0JBQXdCO1FBQ3hCLHdCQUF3QjtJQUM1QjtBQUNKOztBQUVBO0lBQ0k7O1FBRUksd0JBQXdCO0lBQzVCOztJQUVBO1FBQ0ksMkJBQTJCO0lBQy9COztJQUVBO1FBQ0ksd0JBQXdCO1FBQ3hCLGlDQUFpQztRQUNqQyxtQkFBbUI7SUFDdkI7O0lBRUE7O1FBRUksc0JBQXNCO0lBQzFCO0FBQ0o7O0FBRUE7SUFDSTs7UUFFSSw2QkFBNkI7SUFDakM7O0lBRUE7UUFDSSwwQkFBMEI7SUFDOUI7O0lBRUE7UUFDSSw2QkFBNkI7UUFDN0IsNEJBQTRCO0lBQ2hDOztJQUVBO1FBQ0ksd0JBQXdCO0lBQzVCOztJQUVBO1FBQ0kseUJBQXlCO0lBQzdCO0FBQ0o7O0FBRUE7O2dFQUVnRTtBQUNoRTtJQUNJLDZCQUE2QjtJQUM3QixrQ0FBa0M7SUFDbEMsa0NBQWtDO0lBQ2xDLGlDQUFpQztJQUNqQywrQkFBK0I7SUFDL0Isb0NBQW9DOztJQUVwQyxrQ0FBa0M7SUFDbEMseUNBQXlDO0lBQ3pDLGlDQUFpQzs7SUFFakMsa0NBQWtDO0lBQ2xDLGtDQUFrQztJQUNsQyxrQ0FBa0M7QUFDdEM7O0FBRUE7SUFDSTs7O2lDQUc2QjtBQUNqQzs7QUFFQTs7SUFFSSx5SEFBeUg7QUFDN0g7O0FBRUE7O0lBRUk7O2lGQUU2RTtBQUNqRjs7QUFFQTs7OztJQUlJLDhGQUE4RjtBQUNsRzs7QUFFQTs7SUFFSSw0Q0FBNEM7SUFDNUMsMkRBQTJEO0FBQy9EOztBQUVBOztJQUVJLDJDQUEyQztJQUMzQyxxREFBcUQ7SUFDckQsd0RBQXdEO0lBQ3hELGtFQUFrRTtBQUN0RTs7QUFFQTtJQUNJOzs7b0VBR2dFO0FBQ3BFOztBQUVBOztnRUFFZ0U7QUFDaEU7O0lBRUkscUZBQXFGO0lBQ3JGLDREQUE0RDtJQUM1RCx3REFBd0Q7QUFDNUQ7O0FBRUE7Ozs7Ozs7Ozs7SUFVSSx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksZ0RBQWdEO0lBQ2hELHNEQUFzRDtJQUN0RCw4QkFBOEI7QUFDbEM7O0FBRUE7O0lBRUksK0NBQStDO0lBQy9DLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLGdEQUFnRDtJQUNoRCxzREFBc0Q7SUFDdEQseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksMkNBQTJDO0FBQy9DOztBQUVBOztJQUVJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLGdEQUFnRDtJQUNoRCxxREFBcUQ7SUFDckQsOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksc0RBQXNEO0FBQzFEOztBQUVBOztJQUVJLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMsd0RBQXdEO0FBQzVEOztBQUVBOzs7Ozs7OztJQVFJLHlCQUF5QjtBQUM3Qjs7QUFFQTs7SUFFSSw4QkFBOEI7QUFDbEM7O0FBRUE7O0lBRUk7O2lGQUU2RTtJQUM3RSw0REFBNEQ7SUFDNUQsd0RBQXdEO0FBQzVEOztBQUVBOztJQUVJLDJDQUEyQztBQUMvQzs7QUFFQTs7Ozs7O0lBTUkseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLGdEQUFnRDtJQUNoRCxxREFBcUQ7SUFDckQsOEJBQThCO0FBQ2xDOztBQUVBOztJQUVJLGdEQUFnRDtJQUNoRCxrREFBa0Q7QUFDdEQ7O0FBRUE7Ozs7SUFJSSx1RUFBdUU7SUFDdkUsa0RBQWtEO0lBQ2xELHlCQUF5QjtBQUM3Qjs7QUFFQTs7Ozs7Ozs7SUFRSSx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksMENBQTBDO0lBQzFDLDhCQUE4QjtBQUNsQzs7QUFFQTs7Ozs7O0lBTUkseUJBQXlCO0FBQzdCOztBQUVBOzs7O0lBSUksZ0RBQWdEO0lBQ2hELHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJOztRQUVJLDJCQUEyQjtJQUMvQjs7SUFFQTs7UUFFSSxvQkFBb0I7SUFDeEI7QUFDSjs7QUFFQTs7Z0VBRWdFO0FBQ2hFO0lBQ0ksNkJBQTZCO0lBQzdCLGtDQUFrQztJQUNsQyxpQ0FBaUM7SUFDakMsK0JBQStCO0lBQy9CLG9DQUFvQzs7SUFFcEMsa0NBQWtDO0lBQ2xDLHVDQUF1QztJQUN2QyxpQ0FBaUM7SUFDakMsc0NBQXNDOztJQUV0QyxrQ0FBa0M7SUFDbEMsa0NBQWtDO0lBQ2xDLGtDQUFrQztBQUN0Qzs7QUFFQTtJQUNJLG9FQUFvRTtJQUNwRSxrQ0FBa0M7SUFDbEM7OztpQ0FHNkI7QUFDakM7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUkseUhBQXlIO0lBQ3pILDREQUE0RDtJQUM1RCx5REFBeUQ7QUFDN0Q7O0FBRUE7Ozs7Ozs7SUFPSSx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksZ0RBQWdEO0lBQ2hELHNEQUFzRDtJQUN0RCw4QkFBOEI7QUFDbEM7O0FBRUE7O0lBRUksK0NBQStDO0FBQ25EOztBQUVBO0lBQ0ksZ0RBQWdEO0lBQ2hELHNEQUFzRDtJQUN0RCx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSwyQ0FBMkM7QUFDL0M7O0FBRUE7SUFDSSxnREFBZ0Q7SUFDaEQscURBQXFEO0lBQ3JELDhCQUE4QjtBQUNsQzs7QUFFQTs7SUFFSSw4QkFBOEI7SUFDOUIsK0NBQStDO0lBQy9DLHdEQUF3RDtBQUM1RDs7QUFFQTs7SUFFSSw4QkFBOEI7QUFDbEM7O0FBRUE7O0lBRUk7O2lGQUU2RTtJQUM3RSw0REFBNEQ7SUFDNUQseURBQXlEO0FBQzdEOztBQUVBOztJQUVJLDJDQUEyQztBQUMvQzs7QUFFQTs7Ozs7O0lBTUkseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLGdEQUFnRDtJQUNoRCxzREFBc0Q7SUFDdEQsOEJBQThCO0FBQ2xDOztBQUVBOztJQUVJLGdEQUFnRDtJQUNoRCxrREFBa0Q7QUFDdEQ7O0FBRUE7Ozs7SUFJSSw4RkFBOEY7SUFDOUYsa0RBQWtEO0lBQ2xELHlCQUF5QjtBQUM3Qjs7QUFFQTs7SUFFSSwwQ0FBMEM7SUFDMUMsOEJBQThCO0FBQ2xDOztBQUVBOzs7Ozs7SUFNSSx5QkFBeUI7QUFDN0I7O0FBRUE7Ozs7SUFJSSxnREFBZ0Q7SUFDaEQseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLGdEQUFnRDtBQUNwRDs7QUFFQTs7SUFFSSwrQ0FBK0M7SUFDL0MsOEJBQThCO0lBQzlCLDBDQUEwQztJQUMxQyx3REFBd0Q7QUFDNUQ7O0FBRUE7O0lBRUksb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5Qix5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksNENBQTRDO0lBQzVDLDJEQUEyRDtBQUMvRDs7QUFFQTs7SUFFSSwyQ0FBMkM7SUFDM0MscURBQXFEO0lBQ3JELHNEQUFzRDtJQUN0RCxnRUFBZ0U7QUFDcEU7O0FBRUE7O0lBRUksMENBQTBDO0lBQzFDLG9EQUFvRDtBQUN4RDs7QUFFQTtJQUNJOzs7b0VBR2dFO0FBQ3BFOztBQUVBOztnRUFFZ0U7QUFDaEU7SUFDSSxtQ0FBbUM7SUFDbkMsbUNBQW1DO0lBQ25DLG1DQUFtQztJQUNuQyxrQ0FBa0M7SUFDbEMsb0NBQW9DO0lBQ3BDLGtDQUFrQztJQUNsQyxnQ0FBZ0M7QUFDcEM7O0FBRUE7O0lBRUksNEhBQTRIO0lBQzVILHlEQUF5RDtBQUM3RDs7QUFFQTs7SUFFSTs7aUZBRTZFO0FBQ2pGOztBQUVBOzs7O0lBSUksdUVBQXVFO0lBQ3ZFLDBEQUEwRDtBQUM5RDs7QUFFQTs7SUFFSSxnREFBZ0Q7QUFDcEQ7O0FBRUE7OztJQUdJLGdEQUFnRDtJQUNoRCx5REFBeUQ7QUFDN0Q7O0FBRUE7SUFDSSxnRUFBZ0U7QUFDcEU7O0FBRUE7SUFDSSxnRUFBZ0U7QUFDcEU7O0FBRUE7SUFDSSxnRUFBZ0U7QUFDcEU7O0FBRUE7SUFDSSxnRUFBZ0U7QUFDcEU7O0FBRUE7Ozs7SUFJSSx5REFBeUQ7QUFDN0Q7O0FBRUE7O0lBRUksK0JBQStCO0lBQy9CLHlDQUF5QztJQUN6QyxxQ0FBcUM7SUFDckMsK0NBQStDO0FBQ25EOztBQUVBOztJQUVJLCtCQUErQjtJQUMvQix5Q0FBeUM7SUFDekMscUNBQXFDO0lBQ3JDLCtDQUErQztBQUNuRDs7QUFFQTs7SUFFSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSw4QkFBOEI7QUFDbEM7O0FBRUE7O2dFQUVnRTtBQUNoRTtJQUNJLDRCQUE0QjtJQUM1QixpQ0FBaUM7SUFDakMsZ0NBQWdDO0lBQ2hDLDhCQUE4QjtJQUM5Qiw4QkFBOEI7SUFDOUIsOEJBQThCO0lBQzlCLGdDQUFnQztJQUNoQyw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSTs7OzBCQUdzQjtJQUN0QixpQ0FBaUM7QUFDckM7O0FBRUE7O0lBRUksMkJBQTJCO0lBQzNCOzs4RkFFMEY7SUFDMUYsNkRBQTZEO0lBQzdELHdEQUF3RDtBQUM1RDs7QUFFQTs7Ozs7OztJQU9JLHlCQUF5QjtBQUM3Qjs7QUFFQTs7SUFFSSxzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLDhCQUE4QjtJQUM5QixzREFBc0Q7SUFDdEQsZ0RBQWdEO0FBQ3BEOztBQUVBOztJQUVJLDhDQUE4QztJQUM5QyxnREFBZ0Q7QUFDcEQ7O0FBRUE7O0lBRUk7O2lGQUU2RTtJQUM3RSw0REFBNEQ7SUFDNUQsd0RBQXdEO0FBQzVEOztBQUVBOztJQUVJLDJDQUEyQztJQUMzQyxpQ0FBaUM7SUFDakMsMEJBQTBCO0lBQzFCLDJCQUEyQjtBQUMvQjs7QUFFQTs7Ozs7O0lBTUkseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLDJCQUEyQjtJQUMzQiw4QkFBOEI7SUFDOUIsc0RBQXNEO0lBQ3RELG1HQUFtRztBQUN2Rzs7QUFFQTs7SUFFSSxnREFBZ0Q7SUFDaEQsOEZBQThGO0FBQ2xHOztBQUVBOzs7O0lBSUkseUJBQXlCO0lBQ3pCLCtDQUErQztJQUMvQyxvRkFBb0Y7SUFDcEYsMERBQTBEO0FBQzlEOztBQUVBOztJQUVJLDhCQUE4QjtJQUM5Qiw4QkFBOEI7SUFDOUIseUNBQXlDO0FBQzdDOztBQUVBOzs7O0lBSUkseUJBQXlCO0FBQzdCOztBQUVBOzs7O0lBSUkseUJBQXlCO0lBQ3pCLDhDQUE4QztBQUNsRDs7QUFFQTs7SUFFSSwyQkFBMkI7SUFDM0IsZ0RBQWdEO0lBQ2hELHVDQUF1QztBQUMzQzs7QUFFQTs7O0lBR0ksb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5Qix5REFBeUQ7QUFDN0Q7O0FBRUE7SUFDSSxnRUFBZ0U7QUFDcEU7O0FBRUE7SUFDSSxnRUFBZ0U7QUFDcEU7O0FBRUE7SUFDSSxnRUFBZ0U7QUFDcEU7O0FBRUE7SUFDSSxnRUFBZ0U7QUFDcEU7O0FBRUE7O2dFQUVnRTtBQUNoRTtJQUNJOztRQUVJLDJCQUEyQjtRQUMzQiw2QkFBNkI7UUFDN0IsOEJBQThCO0lBQ2xDOztJQUVBOztRQUVJLDJCQUEyQjtJQUMvQjs7SUFFQTs7OztRQUlJLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsMEJBQTBCO1FBQzFCLDhCQUE4QjtRQUM5QiwwQkFBMEI7UUFDMUIsNEJBQTRCO0lBQ2hDOztJQUVBOztRQUVJLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsMkJBQTJCO0lBQy9COztJQUVBOztRQUVJLG9CQUFvQjtRQUNwQiw2QkFBNkI7UUFDN0I7O2tHQUUwRjtRQUMxRiwwREFBMEQ7UUFDMUQsNkRBQTZEO0lBQ2pFOztJQUVBOztRQUVJLHVCQUF1QjtRQUN2QiwwQkFBMEI7UUFDMUIseUJBQXlCO1FBQ3pCLGdEQUFnRDtRQUNoRCxpREFBaUQ7SUFDckQ7O0lBRUE7O1FBRUksMkNBQTJDO0lBQy9DOztJQUVBOzs7O1FBSUksb0RBQW9EO1FBQ3BELHdDQUF3QztJQUM1QztBQUNKOztBQUVBO0lBQ0k7Ozs7UUFJSSxzQkFBc0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQiw0QkFBNEI7UUFDNUIsMEJBQTBCO0lBQzlCOztJQUVBOztRQUVJLG9CQUFvQjtRQUNwQixzQkFBc0I7UUFDdEIsMEJBQTBCO1FBQzFCLDJCQUEyQjtJQUMvQjs7SUFFQTs7OztRQUlJLHdDQUF3QztRQUN4Qyx3Q0FBd0M7UUFDeEMsc0JBQXNCO0lBQzFCO0FBQ0o7Ozs7O0FDbjNLQSxvRUFBb0U7QUFDcEU7SUFDSTtRQUNJLGtCQUFrQjtRQUNsQixzQkFBc0I7UUFDdEIsNEJBQTRCO1FBQzVCLDZCQUE2QjtJQUNqQzs7SUFFQSxtRUFBbUU7SUFDbkU7O1FBRUksNEJBQTRCO1FBQzVCLG1DQUFtQztJQUN2Qzs7SUFFQSwrREFBK0Q7SUFDL0Q7UUFDSSx1QkFBdUI7UUFDdkIsZ0JBQWdCO1FBQ2hCLDRCQUE0QjtRQUM1Qiw2QkFBNkI7SUFDakM7O0lBRUEsa0VBQWtFO0lBQ2xFOztRQUVJLHdCQUF3QjtJQUM1Qjs7SUFFQSwyRUFBMkU7SUFDM0U7UUFDSSx3QkFBd0I7SUFDNUI7O0lBRUEscURBQXFEO0lBQ3JEO1FBQ0ksZUFBZTtRQUNmLG9CQUFvQjtJQUN4QjtBQUNKOzs7OztBQ3hDQSxvQ0FBb0M7QUFDcEM7SUFDSSxXQUFXO0lBQ1gsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsWUFBWTtJQUNaLHlCQUF5QjtJQUN6Qix3Q0FBd0M7SUFDeEMsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCx5QkFBeUI7SUFDekIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxnQ0FBZ0M7SUFDaEMsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLFlBQVk7SUFDWixlQUFlO0lBQ2YsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxnQ0FBZ0M7SUFDaEMsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOzs7QUFHQSwyQkFBMkI7QUFDM0I7SUFDSSxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixRQUFRO0lBQ1IsY0FBYztJQUNkLGVBQWU7SUFDZixxQkFBcUI7SUFDckIsaUNBQWlDO0lBQ2pDLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWMsRUFBRSwwQkFBMEI7QUFDOUM7O0FBRUE7SUFDSSxXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsa0JBQWtCO0FBQ3RCOzs7QUFHQSw2QkFBNkI7QUFDN0I7SUFDSTtRQUNJLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLFdBQVc7SUFDZjs7SUFFQTtRQUNJLGNBQWM7UUFDZCxlQUFlO0lBQ25COztJQUVBO1FBQ0ksZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxXQUFXO0lBQ2Y7O0lBRUE7O1FBRUksbUJBQW1CO0lBQ3ZCO0FBQ0o7OztBQUdBLHFDQUFxQzs7QUFFckMseUNBQXlDOztBQUV6QyxxQkFBcUI7O0FBRXJCLDJCQUEyQjs7QUFFM0IsbUJBQW1COztBQUVuQixrQkFBa0I7O0FBRWxCLHVCQUF1Qjs7QUFFdkIsc0JBQXNCOztBQUV0Qjs7Z0VBRWdFO0FBQ2hFO0lBQ0ksbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxxQkFBcUI7SUFDckIsa0JBQWtCO0lBQ2xCLDZDQUE2QztBQUNqRDs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsNEJBQTRCO0FBQ2hDOztBQUVBO0lBQ0ksY0FBYztJQUNkLDRCQUE0QjtBQUNoQzs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLG9DQUFvQztBQUN4Qzs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7O0FBR0E7OztnRUFHZ0U7QUFDaEU7SUFDSSxzQkFBc0I7SUFDdEIsMEJBQTBCO0lBQzFCLHlCQUF5QjtJQUN6QixvQkFBb0I7QUFDeEI7O0FBRUE7Ozs7SUFJSSxzQkFBc0I7SUFDdEIsMEJBQTBCO0FBQzlCOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLGdDQUFnQztJQUNoQyx3REFBd0Q7QUFDNUQ7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIseUJBQXlCO0lBQ3pCLDJDQUEyQztJQUMzQyw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLGdDQUFnQztBQUNwQzs7QUFFQTs7Z0VBRWdFO0FBQ2hFO0lBQ0ksc0JBQXNCO0lBQ3RCLHNCQUFzQjtJQUN0Qix3QkFBd0I7SUFDeEIsd0JBQXdCO0lBQ3hCLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsd0JBQXdCO0lBQ3hCLDBCQUEwQjtBQUM5Qjs7QUFFQTs7O0lBR0ksc0JBQXNCO0lBQ3RCLDBCQUEwQjtJQUMxQixvQkFBb0I7SUFDcEIsNkJBQTZCO0lBQzdCLG9DQUFvQztJQUNwQyw0QkFBNEI7QUFDaEM7O0FBRUE7OztJQUdJLHNCQUFzQjtJQUN0QiwwQkFBMEI7QUFDOUI7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsNENBQTRDO0lBQzVDLDZCQUE2QjtJQUM3Qix1REFBdUQ7QUFDM0Q7O0FBRUE7SUFDSSx5Q0FBeUM7SUFDekMsd0NBQXdDO0lBQ3hDLDZCQUE2QjtBQUNqQzs7QUFFQTs7SUFFSSx5Q0FBeUM7SUFDekMsc0NBQXNDO0lBQ3RDLG1EQUFtRDtJQUNuRCwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBQzNCLGlDQUFpQztBQUNyQzs7QUFFQTs7SUFFSSxzQ0FBc0M7SUFDdEMsMkNBQTJDO0lBQzNDLDJCQUEyQjtJQUMzQixpQ0FBaUM7QUFDckM7O0FBRUE7O0lBRUkseUNBQXlDO0FBQzdDOztBQUVBOztJQUVJLDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5Qix3Q0FBd0M7QUFDNUM7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsZ0NBQWdDO0lBQ2hDLDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLDZDQUE2QztJQUM3QywrQ0FBK0M7SUFDL0Msc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLHlCQUF5QjtBQUM3Qjs7QUFFQTs7Z0VBRWdFO0FBQ2hFO0lBQ0ksc0JBQXNCO0lBQ3RCLHNCQUFzQjtJQUN0Qix3QkFBd0I7SUFDeEIsd0JBQXdCO0lBQ3hCLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsd0JBQXdCO0lBQ3hCLDBCQUEwQjtBQUM5Qjs7QUFFQTs7O0lBR0ksc0JBQXNCO0lBQ3RCLDBCQUEwQjtJQUMxQixvQkFBb0I7SUFDcEIsNkJBQTZCO0lBQzdCLG9DQUFvQztJQUNwQyw0QkFBNEI7QUFDaEM7O0FBRUE7OztJQUdJLHNCQUFzQjtJQUN0QiwwQkFBMEI7QUFDOUI7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsNENBQTRDO0lBQzVDLDZCQUE2QjtJQUM3Qix1REFBdUQ7QUFDM0Q7O0FBRUE7SUFDSSx5Q0FBeUM7SUFDekMsd0NBQXdDO0lBQ3hDLDZCQUE2QjtBQUNqQzs7QUFFQTs7SUFFSSx5Q0FBeUM7SUFDekMsc0NBQXNDO0lBQ3RDLG1EQUFtRDtJQUNuRCwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBQzNCLGlDQUFpQztBQUNyQzs7QUFFQTs7SUFFSSxzQ0FBc0M7SUFDdEMsMkNBQTJDO0lBQzNDLDJCQUEyQjtJQUMzQixpQ0FBaUM7QUFDckM7O0FBRUE7O0lBRUkseUNBQXlDO0FBQzdDOztBQUVBOztJQUVJLDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5Qix3Q0FBd0M7QUFDNUM7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsZ0NBQWdDO0lBQ2hDLDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5Qix5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSw2Q0FBNkM7SUFDN0MsK0NBQStDO0lBQy9DLHlCQUF5QjtBQUM3Qjs7QUFFQSxxREFBcUQ7QUFDckQ7Ozs7O0lBS0ksNkJBQTZCO0lBQzdCLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsNEJBQTRCO0FBQ2hDOztBQUVBOzs7OztJQUtJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMseUJBQXlCO0FBQzdCOztBQUVBOzs7OztJQUtJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMseUJBQXlCO0FBQzdCOztBQUVBOzs7SUFHSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7O0lBR0ksOEJBQThCO0lBQzlCLGdDQUFnQztJQUNoQyx5QkFBeUI7QUFDN0I7O0FBRUE7OztJQUdJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMseUJBQXlCO0FBQzdCOztBQUVBOzs7SUFHSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7O0lBR0ksOEJBQThCO0lBQzlCLGdDQUFnQztJQUNoQyx5QkFBeUI7QUFDN0I7O0FBRUE7OztJQUdJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMseUJBQXlCO0FBQzdCOztBQUVBOzs7SUFHSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7O0lBR0ksOEJBQThCO0lBQzlCLGdDQUFnQztJQUNoQyx5QkFBeUI7QUFDN0I7O0FBRUE7O2dFQUVnRTtBQUNoRTs7Ozs7SUFLSSw2QkFBNkI7SUFDN0IsMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQiw0QkFBNEI7SUFDNUIseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLGdDQUFnQztBQUNwQzs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7QUFDcEM7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0FBQ3BDOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLGdDQUFnQztBQUNwQzs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7QUFDcEM7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0FBQ3BDOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLGdDQUFnQztBQUNwQzs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7QUFDcEM7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0FBQ3BDOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLGdDQUFnQztBQUNwQzs7QUFFQTs7O2dFQUdnRTtBQUNoRTtJQUNJLDhCQUE4QjtBQUNsQzs7QUFFQTs7O0lBR0ksNkJBQTZCO0FBQ2pDOztBQUVBOztJQUVJLDZCQUE2QjtJQUM3QixvQ0FBb0M7SUFDcEMsd0VBQXdFO0lBQ3hFLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IsMEJBQTBCO0lBQzFCLDRCQUE0QjtJQUM1QixzREFBc0Q7QUFDMUQ7O0FBRUE7Ozs7O0lBS0ksb0NBQW9DO0lBQ3BDLHdFQUF3RTtJQUN4RSx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksd0VBQXdFO0lBQ3hFLGdDQUFnQztJQUNoQyx5QkFBeUI7QUFDN0I7O0FBRUE7Ozs7O0lBS0ksd0VBQXdFO0lBQ3hFLGdDQUFnQztJQUNoQyx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksMkRBQTJEO0FBQy9EOztBQUVBOztJQUVJLHVCQUF1QjtJQUN2Qiw2QkFBNkI7SUFDN0Isb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5Qix5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLDRCQUE0QjtBQUNoQzs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMseURBQXlEO0lBQ3pELHVCQUF1QjtJQUN2QiwyQkFBMkI7QUFDL0I7O0FBRUE7O0lBRUksd0JBQXdCO0lBQ3hCLDhCQUE4QjtJQUM5QixtQkFBbUI7SUFDbkIsMEJBQTBCO0lBQzFCLHlCQUF5QjtJQUN6Qiw2QkFBNkI7SUFDN0IsMkJBQTJCO0FBQy9COztBQUVBOztJQUVJLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsZ0NBQWdDO0FBQ3BDOztBQUVBOztJQUVJLDBCQUEwQjtJQUMxQix5QkFBeUI7SUFDekIsMkJBQTJCO0FBQy9COztBQUVBOztnRUFFZ0U7QUFDaEU7SUFDSSxtQkFBbUI7SUFDbkIseUJBQXlCO0lBQ3pCLHFCQUFxQjtJQUNyQixvQkFBb0I7SUFDcEIsa0JBQWtCO0FBQ3RCOztBQUVBOzs7SUFHSSw4QkFBOEI7SUFDOUIsNkNBQTZDO0lBQzdDLHdDQUF3QztJQUN4QyxnQ0FBZ0M7SUFDaEMsMkJBQTJCO0lBQzNCLGlDQUFpQztJQUNqQyw0QkFBNEI7QUFDaEM7O0FBRUE7OztJQUdJLHdDQUF3QztJQUN4Qyw4QkFBOEI7SUFDOUIseUJBQXlCO0FBQzdCOztBQUVBOztJQUVJLDJEQUEyRDtBQUMvRDs7QUFFQSw0RUFBNEU7QUFDNUU7Ozs7Ozs7O0lBUUkseUJBQXlCO0FBQzdCOztBQUVBLDJFQUEyRTtBQUMzRTs7Ozs7O0lBTUksc0NBQXNDO0lBQ3RDLHdDQUF3QztJQUN4Qyx5QkFBeUI7QUFDN0I7O0FBRUE7Ozs7OztJQU1JLDRDQUE0QztJQUM1Qyw4Q0FBOEM7SUFDOUMseUJBQXlCO0FBQzdCOztBQUVBLHVFQUF1RTtBQUN2RTs7O0lBR0ksK0JBQStCO0lBQy9CLDhCQUE4QjtJQUM5QixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxvQkFBb0I7QUFDeEI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUEsMkNBQTJDO0FBQzNDOztJQUVJLDhCQUE4QjtJQUM5Qiw2Q0FBNkM7SUFDN0MsOEJBQThCO0lBQzlCLHlCQUF5QjtJQUN6Qix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsMkJBQTJCO0FBQy9COztBQUVBLGtDQUFrQztBQUNsQztJQUNJLDZCQUE2QjtJQUM3Qix5Q0FBeUM7SUFDekMseUJBQXlCO0lBQ3pCLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLHdDQUF3QztJQUN4Qyx5QkFBeUI7SUFDekIsOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksc0NBQXNDO0lBQ3RDLHdDQUF3QztJQUN4Qyx5QkFBeUI7QUFDN0I7O0FBRUE7O2dFQUVnRTtBQUNoRTs7O0lBR0ksdUJBQXVCO0lBQ3ZCLDJCQUEyQjtJQUMzQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLHlCQUF5QjtJQUN6Qiw4QkFBOEI7SUFDOUIsK0JBQStCO0lBQy9CLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsbUJBQW1CO0lBQ25CLGlDQUFpQztBQUNyQzs7QUFFQSxrRUFBa0U7QUFDbEU7OztJQUdJLDJCQUEyQjtBQUMvQjs7QUFFQSx5REFBeUQ7QUFDekQ7Ozs7Ozs7OztJQVNJLDJCQUEyQjtBQUMvQjs7QUFFQSwrQkFBK0I7QUFDL0I7Ozs7O0lBS0ksMEJBQTBCO0lBQzFCLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJOzs7Ozs7Ozs7Ozs7UUFZSSwwQkFBMEI7SUFDOUI7QUFDSjs7QUFFQTs7Z0VBRWdFO0FBQ2hFO0lBQ0ksa0JBQWtCO0lBQ2xCLHVCQUF1QjtJQUN2QixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLHlCQUF5QjtJQUN6QixvQkFBb0I7SUFDcEIsdUJBQXVCO0lBQ3ZCLHlCQUF5QjtJQUN6QixxQkFBcUI7SUFDckIsMkJBQTJCO0lBQzNCLHVCQUF1QjtJQUN2QixzQkFBc0I7QUFDMUI7O0FBRUE7OztJQUdJLHNCQUFzQjtJQUN0QiwwQkFBMEI7SUFDMUIsb0JBQW9CO0lBQ3BCLG9DQUFvQztJQUNwQyw0QkFBNEI7SUFDNUIsNkJBQTZCO0lBQzdCLGtDQUFrQztBQUN0Qzs7QUFFQTs7O0lBR0ksc0JBQXNCO0lBQ3RCLDBCQUEwQjtBQUM5Qjs7QUFFQTtJQUNJLCtDQUErQztJQUMvQyw4QkFBOEI7SUFDOUIsMENBQTBDO0lBQzFDLHdEQUF3RDtBQUM1RDs7QUFFQTs7SUFFSSxxQ0FBcUM7QUFDekM7O0FBRUE7O0lBRUksMENBQTBDO0lBQzFDLHVDQUF1QztJQUN2QyxzREFBc0Q7SUFDdEQsMkJBQTJCO0lBQzNCLDBCQUEwQjtJQUMxQixpQ0FBaUM7SUFDakMsOEJBQThCO0FBQ2xDOztBQUVBOztJQUVJLGtDQUFrQztJQUNsQywyQ0FBMkM7SUFDM0MsMEJBQTBCO0lBQzFCLGlDQUFpQztBQUNyQzs7QUFFQTs7SUFFSSwwQ0FBMEM7QUFDOUM7O0FBRUE7O0lBRUksNENBQTRDO0FBQ2hEOztBQUVBO0lBQ0ksYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixRQUFRO0lBQ1IsY0FBYztJQUNkLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIscUJBQXFCO0lBQ3JCLG9DQUFvQztBQUN4Qzs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIsa0JBQWtCO0FBQ3RCOztBQUVBOzs7SUFHSSx1QkFBdUI7SUFDdkIsMkJBQTJCO0lBQzNCLDhCQUE4QjtJQUM5QiwrQ0FBK0M7SUFDL0MsOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQywwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLCtCQUErQjtJQUMvQiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLG1CQUFtQjtJQUNuQix3REFBd0Q7QUFDNUQ7O0FBRUE7OztJQUdJLDhCQUE4QjtJQUM5QixnQ0FBZ0M7QUFDcEM7O0FBRUE7OztJQUdJLHdDQUF3QztJQUN4QywwQ0FBMEM7SUFDMUMseUJBQXlCO0FBQzdCOztBQUVBOzs7SUFHSSw4Q0FBOEM7SUFDOUMsZ0RBQWdEO0FBQ3BEOztBQUVBOztnRUFFZ0U7QUFDaEU7SUFDSSw2QkFBNkI7SUFDN0Isa0NBQWtDO0lBQ2xDLGlDQUFpQztJQUNqQyxrQ0FBa0M7SUFDbEMsb0NBQW9DO0lBQ3BDLCtCQUErQjtJQUMvQixrQ0FBa0M7SUFDbEMsb0NBQW9DO0lBQ3BDLGdDQUFnQztJQUNoQyxzQ0FBc0M7SUFDdEMsa0NBQWtDO0lBQ2xDLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLCtDQUErQztJQUMvQyw4QkFBOEI7SUFDOUIsMENBQTBDO0lBQzFDLHVEQUF1RDtBQUMzRDs7QUFFQTs7SUFFSSwwQ0FBMEM7SUFDMUMsdUNBQXVDO0lBQ3ZDLHNEQUFzRDtBQUMxRDs7QUFFQTs7SUFFSSxrQ0FBa0M7SUFDbEMsMkNBQTJDO0FBQy9DOztBQUVBOztJQUVJLDBDQUEwQztBQUM5Qzs7QUFFQTs7SUFFSSw0Q0FBNEM7QUFDaEQ7O0FBRUE7O2dFQUVnRTtBQUNoRTs7O0lBR0ksMkJBQTJCO0lBQzNCLDBCQUEwQjtJQUMxQiw4QkFBOEI7SUFDOUIsMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQiwrQkFBK0I7SUFDL0IsOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyxtQkFBbUI7SUFDbkIseUJBQXlCO0FBQzdCOztBQUVBOzs7Ozs7SUFNSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7O0lBR0ksOEJBQThCO0lBQzlCLGdDQUFnQztJQUNoQyx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksMkJBQTJCO0lBQzNCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLDZCQUE2QjtJQUM3QiwrQkFBK0I7SUFDL0IsOEJBQThCO0lBQzlCLG1CQUFtQjtBQUN2Qjs7QUFFQTs7Ozs7O0lBTUkseUJBQXlCO0FBQzdCOztBQUVBOztnRUFFZ0U7QUFDaEU7SUFDSTs7Ozs7OztRQU9JLHNCQUFzQjtRQUN0QiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLHVCQUF1QjtRQUN2QiwyQkFBMkI7UUFDM0IsMkJBQTJCO1FBQzNCLHFCQUFxQjtRQUNyQiw2QkFBNkI7UUFDN0IsK0JBQStCO1FBQy9CLDhCQUE4QjtRQUM5QixrQ0FBa0M7UUFDbEMsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsMkJBQTJCO1FBQzNCLDhCQUE4QjtJQUNsQzs7SUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQXNCSSwwQkFBMEI7UUFDMUIseUJBQXlCO1FBQ3pCLG9CQUFvQjtJQUN4Qjs7SUFFQTs7Ozs7Ozs7Ozs7O1FBWUksd0JBQXdCO0lBQzVCO0FBQ0o7O0FBRUE7OztnRUFHZ0U7QUFDaEU7SUFDSTs7Ozs7OztRQU9JLHNCQUFzQjtRQUN0QiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLHVCQUF1QjtRQUN2QiwyQkFBMkI7UUFDM0IsMkJBQTJCO1FBQzNCLHFCQUFxQjtRQUNyQiw2QkFBNkI7UUFDN0IsK0JBQStCO1FBQy9CLDhCQUE4QjtRQUM5QixrQ0FBa0M7UUFDbEMsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsMkJBQTJCO1FBQzNCLDhCQUE4QjtJQUNsQzs7SUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQXNCSSwwQkFBMEI7UUFDMUIseUJBQXlCO1FBQ3pCLG9CQUFvQjtJQUN4Qjs7SUFFQTs7Ozs7Ozs7Ozs7O1FBWUksd0JBQXdCO0lBQzVCO0FBQ0o7O0FBRUE7SUFDSTs7Ozs7OztRQU9JLHNCQUFzQjtRQUN0QiwwQkFBMEI7UUFDMUIsdUJBQXVCO1FBQ3ZCLDJCQUEyQjtRQUMzQixxQkFBcUI7UUFDckIsNkJBQTZCO1FBQzdCLCtCQUErQjtRQUMvQiw4QkFBOEI7UUFDOUIsa0NBQWtDO1FBQ2xDLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIseUJBQXlCO0lBQzdCOztJQUVBOzs7Ozs7Ozs7Ozs7O1FBYUksMEJBQTBCO1FBQzFCLHlCQUF5QjtRQUN6QixvQkFBb0I7SUFDeEI7O0lBRUE7Ozs7Ozs7O1FBUUksdUJBQXVCO0lBQzNCO0FBQ0o7O0FBRUE7O2dFQUVnRTtBQUNoRTs7O0lBR0ksMkJBQTJCO0lBQzNCLDBCQUEwQjtJQUMxQiw4QkFBOEI7SUFDOUIsMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQixpQ0FBaUM7SUFDakMsK0JBQStCO0lBQy9CLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsbUJBQW1CO0lBQ25CLHlCQUF5QjtBQUM3Qjs7QUFFQTs7Ozs7O0lBTUksMEJBQTBCO0lBQzFCLHlCQUF5QjtBQUM3Qjs7QUFFQTs7Ozs7O0lBTUksOEJBQThCO0lBQzlCLGdDQUFnQztJQUNoQyx5QkFBeUI7QUFDN0I7O0FBRUE7Ozs7OztJQU1JLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMseUJBQXlCO0FBQzdCOztBQUVBOzs7SUFHSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7O0lBR0ksOEJBQThCO0lBQzlCLGdDQUFnQztJQUNoQyx5QkFBeUI7QUFDN0I7O0FBRUE7O0lBRUksMkJBQTJCO0lBQzNCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLDZCQUE2QjtJQUM3QiwrQkFBK0I7SUFDL0IsOEJBQThCO0lBQzlCLG1CQUFtQjtBQUN2Qjs7QUFFQTs7SUFFSSx5QkFBeUI7SUFDekIsOEJBQThCO0lBQzlCLGdDQUFnQztBQUNwQzs7QUFFQTs7SUFFSSx5QkFBeUI7SUFDekIsOEJBQThCO0lBQzlCLGdDQUFnQztBQUNwQzs7QUFFQTs7SUFFSSx5QkFBeUI7SUFDekIsOEJBQThCO0lBQzlCLGdDQUFnQztBQUNwQzs7QUFFQTs7O0lBR0ksMkNBQTJDO0lBQzNDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7O0lBR0ksOEJBQThCO0lBQzlCLGdDQUFnQztBQUNwQzs7QUFFQTs7O0lBR0ksd0NBQXdDO0lBQ3hDLDBDQUEwQztJQUMxQyx5QkFBeUI7QUFDN0I7O0FBRUE7OztJQUdJLDhDQUE4QztJQUM5QyxnREFBZ0Q7QUFDcEQ7O0FBRUE7Ozs7OztJQU1JLDBDQUEwQztJQUMxQyw0Q0FBNEM7SUFDNUMseUJBQXlCO0FBQzdCOztBQUVBOzs7SUFHSSx5Q0FBeUM7SUFDekMsMkNBQTJDO0lBQzNDLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QixtREFBbUQ7QUFDdkQ7O0FBRUE7SUFDSSx3Q0FBd0M7SUFDeEMsMENBQTBDO0FBQzlDOztBQUVBO0lBQ0k7UUFDSSx3QkFBd0I7UUFDeEIsaUNBQWlDO1FBQ2pDLG1CQUFtQjtJQUN2Qjs7SUFFQTs7UUFFSSxzQkFBc0I7SUFDMUI7QUFDSjs7QUFFQTs7Z0VBRWdFO0FBQ2hFO0lBQ0ksNkJBQTZCO0lBQzdCLGtDQUFrQztJQUNsQyxpQ0FBaUM7SUFDakMsa0NBQWtDO0lBQ2xDLG9DQUFvQztJQUNwQywrQkFBK0I7SUFDL0Isa0NBQWtDO0lBQ2xDLG9DQUFvQztJQUNwQyxnQ0FBZ0M7SUFDaEMsc0NBQXNDO0lBQ3RDLGtDQUFrQztJQUNsQyxpQ0FBaUM7QUFDckM7O0FBRUE7OztJQUdJLHdDQUF3QztJQUN4QywwQ0FBMEM7QUFDOUM7O0FBRUE7OztJQUdJLDhDQUE4QztJQUM5QyxnREFBZ0Q7QUFDcEQ7O0FBRUE7O2dFQUVnRTtBQUNoRTtJQUNJLDZCQUE2QjtJQUM3QixrQ0FBa0M7SUFDbEMsaUNBQWlDO0lBQ2pDLGtDQUFrQztJQUNsQyxvQ0FBb0M7SUFDcEMsK0JBQStCO0lBQy9CLGtDQUFrQztJQUNsQyxvQ0FBb0M7SUFDcEMsZ0NBQWdDO0lBQ2hDLHNDQUFzQztJQUN0QyxrQ0FBa0M7SUFDbEMsaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksK0NBQStDO0lBQy9DLHlEQUF5RDtBQUM3RDs7QUFFQTs7SUFFSSwwQ0FBMEM7SUFDMUMsdUNBQXVDO0FBQzNDOztBQUVBOztJQUVJLGtDQUFrQztBQUN0Qzs7QUFFQTs7SUFFSSwwQ0FBMEM7QUFDOUM7O0FBRUE7O0lBRUksNENBQTRDO0FBQ2hEOztBQUVBOzs7SUFHSSx3Q0FBd0M7SUFDeEMsMENBQTBDO0lBQzFDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7O0lBR0ksOENBQThDO0lBQzlDLGdEQUFnRDtBQUNwRDs7QUFFQTs7Ozs7O0lBTUksMENBQTBDO0lBQzFDLDRDQUE0QztBQUNoRDs7QUFFQTs7O0lBR0kseUNBQXlDO0lBQ3pDLDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLHdDQUF3QztJQUN4QywwQ0FBMEM7QUFDOUM7O0FBRUE7O2dFQUVnRTtBQUNoRTtJQUNJLGlDQUFpQztJQUNqQyxrQ0FBa0M7SUFDbEMsb0NBQW9DO0lBQ3BDLCtCQUErQjtJQUMvQixvQ0FBb0M7SUFDcEMsZ0NBQWdDO0lBQ2hDLHNDQUFzQztJQUN0QyxrQ0FBa0M7SUFDbEMsaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksK0NBQStDO0lBQy9DLHlEQUF5RDtBQUM3RDs7QUFFQTs7SUFFSSwwQ0FBMEM7SUFDMUMsdUNBQXVDO0FBQzNDOztBQUVBOztJQUVJLDRDQUE0QztBQUNoRDs7QUFFQTs7Z0VBRWdFO0FBQ2hFOzs7SUFHSSwyQkFBMkI7SUFDM0IsMEJBQTBCO0lBQzFCLDhCQUE4QjtJQUM5QiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLCtCQUErQjtJQUMvQiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLG1CQUFtQjtJQUNuQix5QkFBeUI7QUFDN0I7O0FBRUE7Ozs7OztJQU1JLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMseUJBQXlCO0FBQzdCOztBQUVBOzs7SUFHSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7SUFFSSwyQkFBMkI7SUFDM0IsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IsNkJBQTZCO0lBQzdCLCtCQUErQjtJQUMvQiw4QkFBOEI7SUFDOUIsbUJBQW1CO0FBQ3ZCOztBQUVBOzs7Ozs7SUFNSSx5QkFBeUI7QUFDN0I7O0FBRUE7O2dFQUVnRTtBQUNoRTtJQUNJOzs7Ozs7O1FBT0ksc0JBQXNCO1FBQ3RCLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsdUJBQXVCO1FBQ3ZCLDJCQUEyQjtRQUMzQiwyQkFBMkI7UUFDM0IscUJBQXFCO1FBQ3JCLDZCQUE2QjtRQUM3QiwrQkFBK0I7UUFDL0IsOEJBQThCO1FBQzlCLGtDQUFrQztRQUNsQyxpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QiwyQkFBMkI7UUFDM0IsOEJBQThCO0lBQ2xDOztJQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBc0JJLDBCQUEwQjtRQUMxQix5QkFBeUI7UUFDekIsb0JBQW9CO0lBQ3hCOztJQUVBOzs7Ozs7Ozs7Ozs7UUFZSSx3QkFBd0I7SUFDNUI7QUFDSjs7QUFFQSxzREFBc0Q7QUFDdEQ7SUFDSTs7UUFFSSxzQkFBc0I7UUFDdEIsMEJBQTBCO1FBQzFCLDBCQUEwQjtRQUMxQix1QkFBdUI7UUFDdkIsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLHlCQUF5QjtRQUN6QixtQkFBbUI7UUFDbkIsNEJBQTRCO1FBQzVCLDhCQUE4QjtJQUNsQzs7SUFFQTs7OztRQUlJLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIseUJBQXlCO0lBQzdCO0FBQ0o7Ozs7O0FDN3VEQSwyQ0FBMkM7QUFDM0M7SUFDSSxlQUFlO0lBQ2YsWUFBWTtJQUNaLFdBQVc7SUFDWCx5QkFBeUIsRUFBRSwrQkFBK0I7SUFDMUQsYUFBYTtJQUNiLGtCQUFrQjtJQUNsQix1Q0FBdUM7SUFDdkMsVUFBVSxFQUFFLGlEQUFpRDtBQUNqRTs7QUFFQSwyQ0FBMkM7QUFDM0M7SUFDSSxlQUFlO0lBQ2YsWUFBWSxFQUFFLHdEQUF3RDtJQUN0RSxXQUFXO0lBQ1gseUJBQXlCLEVBQUUsK0JBQStCO0lBQzFELGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsdUNBQXVDO0lBQ3ZDLFVBQVUsRUFBRSxpREFBaUQ7QUFDakU7O0FBRUEsa0RBQWtEO0FBQ2xEO0lBQ0kscUJBQXFCO0lBQ3JCLFdBQVcsRUFBRSxvQkFBb0I7SUFDakMsYUFBYTtJQUNiLG1CQUFtQjtBQUN2Qjs7QUFFQSxpREFBaUQ7QUFDakQ7SUFDSSxlQUFlLEVBQUUscUJBQXFCO0lBQ3RDLGtCQUFrQjtBQUN0Qjs7QUFFQSxpREFBaUQ7QUFDakQ7SUFDSSxlQUFlO0FBQ25COztBQUVBLG9FQUFvRTtBQUNwRTs7SUFFSSx3QkFBd0I7SUFDeEIsU0FBUztBQUNiOztBQUVBLCtDQUErQztBQUMvQztJQUNJLDBCQUEwQjtBQUM5Qjs7QUFFQTs7Z0VBRWdFO0FBQ2hFO0lBQ0ksb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5Qix5REFBeUQ7SUFDekQsZ0JBQWdCO0lBQ2hCLHdFQUF3RTtBQUM1RTs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixpREFBaUQ7QUFDckQ7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixZQUFZO0lBQ1osWUFBWTtJQUNaLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsMkZBQTJGO0lBQzNGLG9CQUFvQjtBQUN4Qjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0Isc0JBQXNCO0lBQ3RCLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLDREQUE0RDtJQUM1RCx5QkFBeUI7SUFDekIsY0FBYztJQUNkLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5Qix5QkFBeUI7SUFDekIsMkJBQTJCO0lBQzNCLDhCQUE4QjtJQUM5QixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxnQ0FBZ0M7SUFDaEMsNkRBQTZEO0FBQ2pFOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLGlCQUFpQjtJQUNqQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixRQUFRO0FBQ1o7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsMkJBQTJCO0lBQzNCLDZDQUE2QztJQUM3Qyx1REFBdUQ7QUFDM0Q7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsOENBQThDO0FBQ2xEOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLGdDQUFnQztJQUNoQyw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsZ0NBQWdDO0lBQ2hDLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLHVFQUF1RTtJQUN2RSxnQ0FBZ0M7QUFDcEM7O0FBRUE7SUFDSSxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLFFBQVE7SUFDUixpQkFBaUI7SUFDakIsb0JBQW9CO0lBQ3BCLDZCQUE2QjtJQUM3QixnQ0FBZ0M7SUFDaEMsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQiwwQkFBMEI7QUFDOUI7O0FBRUE7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSx5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixtQkFBbUI7SUFDbkIscUJBQXFCO0FBQ3pCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0k7UUFDSSw4QkFBOEI7SUFDbEM7O0lBRUE7UUFDSSxvQkFBb0I7SUFDeEI7O0lBRUE7UUFDSSxXQUFXO1FBQ1gsa0JBQWtCO0lBQ3RCOztJQUVBO1FBQ0ksV0FBVztJQUNmO0FBQ0o7Ozs7O0FDL05BLHNEQUFzRDtBQUN0RDtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQSxzRUFBc0U7QUFDdEU7SUFDSSxnQ0FBZ0M7SUFDaEMsa0JBQWtCO0FBQ3RCOztBQUVBLGdEQUFnRDtBQUNoRDtJQUNJLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsU0FBUztBQUNiOztBQUVBLCtEQUErRDtBQUMvRDtJQUNJLGNBQWM7SUFDZCxpQkFBaUI7QUFDckI7O0FBRUEscURBQXFEO0FBQ3JEO0lBQ0ksY0FBYztJQUNkLGtCQUFrQjtJQUNsQixlQUFlO0FBQ25COztBQUVBLHNFQUFzRTtBQUN0RTtJQUNJLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLGFBQWE7QUFDakI7O0FBRUEsbUVBQW1FO0FBQ25FO0lBQ0ksaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckIsdUJBQXVCO0FBQzNCOztBQUVBLHVFQUF1RTtBQUN2RTtJQUNJLGVBQWU7QUFDbkI7O0FBRUEsaUVBQWlFO0FBQ2pFO0lBQ0kseUJBQXlCO0lBQ3pCLGtCQUFrQjtJQUNsQixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLHdEQUF3RDtBQUM1RDs7QUFFQSxxREFBcUQ7QUFDckQ7SUFDSSxxQkFBcUI7SUFDckIsOENBQThDO0lBQzlDLGFBQWE7QUFDakI7O0FBRUEsb0VBQW9FO0FBQ3BFO0lBQ0ksbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLFlBQVk7QUFDaEI7O0FBRUEsb0RBQW9EO0FBQ3BEO0lBQ0ksbUJBQW1CO0lBQ25CLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMsK0JBQStCO0lBQy9CLHlCQUF5QjtJQUN6QixvQkFBb0I7SUFDcEIsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixRQUFRO0lBQ1IsdUJBQXVCO0lBQ3ZCLHVEQUF1RDtBQUMzRDs7QUFFQSxxRUFBcUU7QUFDckU7O0lBRUksOEJBQThCO0lBQzlCLHlCQUF5QjtBQUM3Qjs7QUFFQSxvRUFBb0U7QUFDcEU7SUFDSSxlQUFlO0lBQ2YsY0FBYztBQUNsQjs7QUFFQSxtRkFBbUY7QUFDbkY7SUFDSSw4QkFBOEI7SUFDOUIsOEJBQThCO0lBQzlCLHlCQUF5QjtJQUN6QixnQkFBZ0I7SUFDaEIsa0JBQWtCO0FBQ3RCOztBQUVBLDRFQUE0RTtBQUM1RTs7SUFFSSw4QkFBOEI7SUFDOUIseUJBQXlCO0FBQzdCOztBQUVBLHFFQUFxRTtBQUNyRTtJQUNJLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxlQUFlO0lBQ2YsYUFBYTtBQUNqQjs7QUFFQSxpRkFBaUY7QUFDakY7SUFDSSxhQUFhO0lBQ2IsYUFBYTtJQUNiLDJEQUEyRDtBQUMvRDs7QUFFQSx1RUFBdUU7QUFDdkU7SUFDSSxhQUFhO0lBQ2IsZUFBZTtJQUNmLFFBQVE7SUFDUixpQkFBaUI7QUFDckI7O0FBRUEsb0RBQW9EO0FBQ3BEOztJQUVJLGNBQWM7QUFDbEI7O0FBRUEsMEVBQTBFO0FBQzFFO0lBQ0ksNkJBQTZCO0lBQzdCLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIscUJBQXFCO0lBQ3JCLHVCQUF1QjtBQUMzQjs7QUFFQSxnREFBZ0Q7QUFDaEQ7SUFDSTtRQUNJLGFBQWE7UUFDYixhQUFhO0lBQ2pCOztJQUVBO1FBQ0ksMEJBQTBCO0lBQzlCO0FBQ0o7Ozs7O0FDOUtBOztrQ0FFa0M7O0FBRWxDLDRCQUE0Qjs7QUFLNUIsOEJBQThCOztBQUk5QixzQkFBc0I7O0FBR3RCLHFDQUFxQzs7QUFLckMscUJBQXFCOztBQUdyQiwwQkFBMEI7O0FBSTFCLGlDQUFpQzs7QUFHakMsZ0RBQWdEOztBQVFoRDs7OztnRUFJZ0U7QUFDaEU7O0lBRUksK0JBQStCO0lBQy9CLDhCQUE4QjtJQUM5QixtQkFBbUI7SUFDbkIsMkJBQTJCO0FBQy9COztBQUVBOzs7OztJQUtJLDBCQUEwQjtJQUMxQix5QkFBeUI7SUFDekIsZ0NBQWdDO0FBQ3BDOztBQUVBLGlFQUFpRTtBQUNqRTtJQUNJLHlCQUF5QjtBQUM3QjtBQUNBO0lBQ0kseUJBQXlCO0FBQzdCO0FBQ0E7SUFDSSx5QkFBeUI7QUFDN0I7QUFDQTtJQUNJLHlCQUF5QjtBQUM3QjtBQUNBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBLHVEQUF1RDtBQUN2RDs7SUFFSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHNCQUFzQjtBQUMxQjs7QUFFQTs7O0lBR0ksOEJBQThCO0lBQzlCLGdDQUFnQztJQUNoQyxzQkFBc0I7QUFDMUI7O0FBRUEsa0VBQWtFO0FBQ2xFO0lBQ0ksMkJBQTJCO0FBQy9COztBQUVBOztnRUFFZ0U7QUFDaEU7SUFDSSx3RUFBd0U7SUFDeEUsb0NBQW9DO0lBQ3BDLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IsaUNBQWlDO0lBQ2pDLDZCQUE2QjtJQUM3Qix5REFBeUQ7QUFDN0Q7O0FBRUE7O0lBRUksd0VBQXdFO0lBQ3hFLGdDQUFnQztJQUNoQyx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7SUFFSSw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtBQUM3Qjs7QUFFQTs7Z0VBRWdFO0FBQ2hFO0lBQ0ksb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5QiwyQkFBMkI7SUFDM0IsZ0VBQWdFO0FBQ3BFOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLHlCQUF5QjtBQUM3Qjs7QUFFQTs7SUFFSSwyQkFBMkI7SUFDM0IseURBQXlEO0FBQzdEOztBQUVBO0lBQ0ksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLHFCQUFxQjtJQUNyQix5QkFBeUI7SUFDekIsZ0JBQWdCO0lBQ2hCLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZixXQUFXO0FBQ2Y7O0FBRUEsc0NBQXNDLGdFQUFnRSxFQUFFO0FBQ3hHLHVDQUF1QyxnRUFBZ0UsRUFBRTtBQUN6RyxzQ0FBc0MsZ0VBQWdFLEVBQUU7QUFDeEcsdUNBQXVDLGdFQUFnRSxFQUFFO0FBQ3pHLHNDQUFzQyxnRUFBZ0UsRUFBRTtBQUN4Ryx1Q0FBdUMsZ0VBQWdFLEVBQUU7QUFDekcsd0NBQXdDLGdFQUFnRSxFQUFFO0FBQzFHLHdDQUF3QyxnRUFBZ0UsRUFBRTtBQUMxRyxzQ0FBc0MsZ0VBQWdFLEVBQUU7O0FBRXhHO0lBQ0ksb0NBQW9DO0lBQ3BDLDhCQUE4QjtJQUM5Qix3RUFBd0U7QUFDNUU7O0FBRUE7SUFDSSw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSxlQUFlO0lBQ2YseUJBQXlCO0lBQ3pCLHFCQUFxQjtJQUNyQixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksK0JBQStCO0lBQy9CLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsbUJBQW1CO0lBQ25CLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0Isa0NBQWtDO0lBQ2xDLHlCQUF5QjtJQUN6Qiw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSxvQ0FBb0M7SUFDcEMsOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksdUVBQXVFO0lBQ3ZFLHlCQUF5QjtJQUN6QixvQkFBb0I7SUFDcEIsdUNBQXVDO0lBQ3ZDLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YscUJBQXFCO0FBQ3pCOztBQUVBO0lBQ0ksa0NBQWtDO0FBQ3RDOztBQUVBO0lBQ0k7UUFDSSxlQUFlO0lBQ25CO0FBQ0o7O0FBRUE7SUFDSTs7UUFFSSw2QkFBNkI7SUFDakM7O0lBRUE7UUFDSSxlQUFlO0lBQ25COztJQUVBO1FBQ0ksZUFBZTtJQUNuQjtBQUNKOztBQUVBOztnRUFFZ0U7QUFDaEU7SUFDSSwyQkFBMkI7SUFDM0IsMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQixnQ0FBZ0M7SUFDaEMsOEJBQThCO0lBQzlCLHlEQUF5RDtBQUM3RDs7QUFFQTs7SUFFSSwyQkFBMkI7SUFDM0IseURBQXlEO0FBQzdEOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLDJCQUEyQjtJQUMzQixnQ0FBZ0M7SUFDaEMsZ0RBQWdEO0FBQ3BEOztBQUVBOztJQUVJLHlCQUF5QjtJQUN6Qiw0Q0FBNEM7QUFDaEQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3ByaW5jaXBhbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9zaWRlYmFyLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3RhYmxlcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy92aXN0YXMuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvcHJvZHVjdG9zLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2FwcC5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCB1cmwoXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUludGVyOndnaHRANDAwOzUwMDs2MDA7NzAwOzgwMCZmYW1pbHk9TWFucm9wZTp3Z2h0QDQwMDs1MDA7NzAwOzgwMCZkaXNwbGF5PXN3YXBcIik7XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2Uge1xuICAgIC0tcHJpbmNpcGFsLWJnOiAjZWVmNGZiO1xuICAgIC0tcHJpbmNpcGFsLXN1cmZhY2U6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Nik7XG4gICAgLS1wcmluY2lwYWwtc3VyZmFjZS1zdHJvbmc6IHJnYmEoMjQ4LCAyNTEsIDI1NSwgMC45OCk7XG4gICAgLS1wcmluY2lwYWwtbGluZTogcmdiYSgxNSwgMjMsIDQyLCAwLjEwKTtcbiAgICAtLXByaW5jaXBhbC10ZXh0OiAjMTAyMzNiO1xuICAgIC0tcHJpbmNpcGFsLW11dGVkOiAjNGY2NDdkO1xuICAgIC0tcHJpbmNpcGFsLWFjY2VudDogIzBmNzY2ZTtcbiAgICAtLXByaW5jaXBhbC1hY2NlbnQtMjogIzI1NjNlYjtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1wcmluY2lwYWwtdGV4dCk7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCB0b3AgbGVmdCwgcmdiYSgzNywgOTksIDIzNSwgMC4xMCksIHRyYW5zcGFyZW50IDI4JSksXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgODUlIDEyJSwgcmdiYSgxNSwgMTE4LCAxMTAsIDAuMTApLCB0cmFuc3BhcmVudCAyNCUpLFxuICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZjhmYmZmIDAlLCAjZWVmNGZiIDUyJSwgI2U2ZWVmOCAxMDAlKTtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBcIk1hbnJvcGVcIiwgc2Fucy1zZXJpZjtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgKixcbmJvZHkucHJpbmNpcGFsLXBhZ2UgKjo6YmVmb3JlLFxuYm9keS5wcmluY2lwYWwtcGFnZSAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSA+IG1haW4ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSBoMSxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgaDIsXG5ib2R5LnByaW5jaXBhbC1wYWdlIGgzLFxuYm9keS5wcmluY2lwYWwtcGFnZSBoNCxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgaDUsXG5ib2R5LnByaW5jaXBhbC1wYWdlIGg2LFxuYm9keS5wcmluY2lwYWwtcGFnZSBwLFxuYm9keS5wcmluY2lwYWwtcGFnZSBzbWFsbCxcbmJvZHkucHJpbmNpcGFsLXBhZ2Ugc3Ryb25nLFxuYm9keS5wcmluY2lwYWwtcGFnZSBsaSB7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC10ZXh0KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhciB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBtaW4taGVpZ2h0OiAxMzBweDtcbiAgICBwYWRkaW5nOiAwIDE4cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXByaW5jaXBhbC1saW5lKTtcbiAgICBiYWNrZ3JvdW5kOiAjOWNjM2YxICFpbXBvcnRhbnQ7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE4cHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMTRweCA0MHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xNik7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXIgLmNvbnRhaW5lci1mbHVpZCxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXIgLmNvbnRhaW5lciB7XG4gICAgZ2FwOiAxOHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbmF2YmFyIC5uYXZiYXItdG9nZ2xlciB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXIgLm5hdmJhci10b2dnbGVyOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwLjE4cmVtIHJnYmEoNzcsIDIxMiwgMTk4LCAwLjIwKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhciAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi1ib3R0b206IC03MHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtYnJhbmQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1icmFuZF9fbWFyayB7XG4gICAgd2lkdGg6IDQ2cHg7XG4gICAgaGVpZ2h0OiA0NnB4O1xuICAgIGZsZXg6IDAgMCA0NnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuICAgIGNvbG9yOiAjMDQxMTFiO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXByaW5jaXBhbC1hY2NlbnQpLCB2YXIoLS1wcmluY2lwYWwtYWNjZW50LTIpKTtcbiAgICBib3gtc2hhZG93OiAwIDE2cHggMzBweCByZ2JhKDM3LCA5OSwgMjM1LCAwLjIwKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWJyYW5kX19jb3B5IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtYnJhbmRfX2NvcHkgc3Ryb25nIHtcbiAgICBmb250LXNpemU6IDEuMDJyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWJyYW5kX19jb3B5IHNwYW4ge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBjb2xvcjogcmdiYSgyNDAsIDI0NiwgMjU1LCAwLjkwKTtcbiAgICBmb250LXNpemU6IDAuODRyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wdWJsaWMtbmF2LFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhcl9fYXV0aCB7XG4gICAgZ2FwOiAwLjI1cmVtO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wdWJsaWMtbmF2IC5uYXYtbGluayxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2F1dGggLm5hdi1saW5rLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhcl9fbG9nb3V0IHtcbiAgICAvKmNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7Ki9cbiAgICBwYWRkaW5nOiAwLjdyZW0gMC45cmVtO1xuICAgIGNvbG9yOiMwMDAgIWltcG9ydGFudDtcbiAgICAvKmJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTYwbXMgZWFzZSwgY29sb3IgMTYwbXMgZWFzZSwgdHJhbnNmb3JtIDE2MG1zIGVhc2U7Ki9cbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhcl9fYXV0aCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC4zNXJlbTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXB1YmxpYy1uYXYgLm5hdi1saW5rOmhvdmVyLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXB1YmxpYy1uYXYgLm5hdi1saW5rOmZvY3VzLXZpc2libGUsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHVibGljLW5hdiAubmF2LWxpbmsuYWN0aXZlIHtcbiAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTcyLCAyMjUsIDI1MCwgMC4wOSk7XG59XG5cbi8qYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhcl9fbG9naW4ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbn0qL1xuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbmF2YmFyX19sb2dpbjpob3ZlcixcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2xvZ2luOmZvY3VzLXZpc2libGUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhcl9fY2FydCxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2Rhc2hib2FyZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAuNTVyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2NhcnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhcl9fY2FydDpob3ZlcixcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2NhcnQ6Zm9jdXMtdmlzaWJsZSxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2Rhc2hib2FyZDpob3ZlcixcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2Rhc2hib2FyZDpmb2N1cy12aXNpYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbmF2YmFyX19jYXJ0LWJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgcGFkZGluZzogMCAwLjRyZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzdkZDNmYyAwJSwgIzIyYzU1ZSAxMDAlKTtcbiAgICBjb2xvcjogIzA0MTExYjtcbiAgICBmb250LXNpemU6IDAuNzZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhcl9fbG9nb3V0IHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2xvZ291dDpob3ZlciB7XG4gICAgY29sb3I6ICM3ZGQzZmM7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX3VzZXIge1xuICAgIG9wYWNpdHk6IDAuOTI7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1zaGVsbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcGFnb19fY29udGludWUge1xuICAgIG1pbi13aWR0aDogMjIwcHg7XG4gICAgbWluLWhlaWdodDogNTJweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzI0NGE3MztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE0Zjc4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzIxNGY3OCAwJSwgIzE2M2Q2MSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDI2cHggcmdiYSgyMiwgNjEsIDk3LCAwLjIyKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXBhZ29fX2NvbnRpbnVlOmhvdmVyLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXBhZ29fX2NvbnRpbnVlOmZvY3VzLXZpc2libGUge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIxNGY3OCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyMTRmNzggMCUsICMxNjNkNjEgMTAwJSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMyNDRhNzM7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDMwcHggcmdiYSgyMiwgNjEsIDk3LCAwLjI4KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wYWdvX19jb25maXJtZWQge1xuICAgIG1pbi13aWR0aDogMjIwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMTE4LCAxMTAsIDAuMTgpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDExOCwgMTEwLCAwLjA4KTtcbiAgICBjb2xvcjogIzBmNzY2ZTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXBhZ29fX2NvbXByb2JhbnRlIHtcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIG1heC1oZWlnaHQ6IDE2MHB4O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaGVybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDg0cHggMCA3MnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1oZXJvOjpiZWZvcmUsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaGVybzo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhlcm86OmJlZm9yZSB7XG4gICAgd2lkdGg6IDI0MHB4O1xuICAgIGhlaWdodDogMjQwcHg7XG4gICAgcmlnaHQ6IC00MHB4O1xuICAgIHRvcDogMjZweDtcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE0KSAwJSwgcmdiYSgzNywgOTksIDIzNSwgMCkgNzAlKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhlcm86OmFmdGVyIHtcbiAgICB3aWR0aDogMTgwcHg7XG4gICAgaGVpZ2h0OiAxODBweDtcbiAgICBsZWZ0OiAtNDhweDtcbiAgICBib3R0b206IDA7XG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgxNSwgMTE4LCAxMTAsIDAuMTIpIDAlLCByZ2JhKDE1LCAxMTgsIDExMCwgMCkgNzAlKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhlcm9fX3BhbmVsIHtcbiAgICBtYXgtd2lkdGg6IDExODBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAzNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpLCByZ2JhKDI0NSwgMjQ5LCAyNTUsIDAuOTYpKTtcbiAgICBib3gtc2hhZG93OiAwIDI4cHggNjBweCByZ2JhKDE1LCAyMywgNDIsIDAuMTIpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlLnByaW5jaXBhbC1kZXRhaWwtYWN0aXZlIC5wcmluY2lwYWwtaGVyb19fcGFuZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UucHJpbmNpcGFsLWRldGFpbC1hY3RpdmUgLnByaW5jaXBhbC1oZXJvIHtcbiAgICBwYWRkaW5nOiAxNnB4IDAgMjBweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZS5wcmluY2lwYWwtZGV0YWlsLWFjdGl2ZSAucHJpbmNpcGFsLWhlcm86OmJlZm9yZSxcbmJvZHkucHJpbmNpcGFsLXBhZ2UucHJpbmNpcGFsLWRldGFpbC1hY3RpdmUgLnByaW5jaXBhbC1oZXJvOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWtpY2tlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBjb2xvcjogdmFyKC0tcHJpbmNpcGFsLWFjY2VudCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1raWNrZXI6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW5jaXBhbC1hY2NlbnQpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDZweCByZ2JhKDE1LCAxMTgsIDExMCwgMC4xMCk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1oZXJvIGgxIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiBjbGFtcCgyLjJyZW0sIDV2dywgNC42cmVtKTtcbiAgICBsaW5lLWhlaWdodDogMC45ODtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDZlbTtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBtYXgtd2lkdGg6IDEyY2g7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1oZXJvIHAge1xuICAgIG1hcmdpbjogMTZweCAwIDA7XG4gICAgbWF4LXdpZHRoOiA3MmNoO1xuICAgIGNvbG9yOiB2YXIoLS1wcmluY2lwYWwtbXV0ZWQpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1oZXJvX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhlcm9fX2FjdGlvbnMgLmJ0biB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBwYWRkaW5nOiAwLjlyZW0gMS4ycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1oZXJvX19hY3Rpb25zIC5idG4tcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzBmNzY2ZSAwJSwgIzI1NjNlYiAxMDAlKTtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDI4cHggcmdiYSgzNywgOTksIDIzNSwgMC4yMik7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1oZXJvX19hY3Rpb25zIC5idG4tb3V0bGluZS1saWdodCB7XG4gICAgY29sb3I6ICMxMDIzM2I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjE2KTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaGVyb19fYWN0aW9ucyAuYnRuLW91dGxpbmUtbGlnaHQ6aG92ZXIsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaGVyb19fYWN0aW9ucyAuYnRuLW91dGxpbmUtbGlnaHQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgY29sb3I6ICMxMDIzM2I7XG4gICAgYmFja2dyb3VuZDogI2VlZjRmYjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoaXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMjJweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoaXBzIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwLjQ1cmVtIDAuODhyZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEwKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODgpO1xuICAgIGNvbG9yOiAjMTAyMzNiO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaGVyb19fY2FyZCB7XG4gICAgcGFkZGluZzogMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZmZmZiAwJSwgI2Y2ZmFmZiAxMDAlKTtcbiAgICBib3gtc2hhZG93OiAwIDIycHggNDBweCByZ2JhKDE1LCAyMywgNDIsIDAuMTApO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaGVyb19fY2FyZC10b3Age1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAwLjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1oZXJvX19jYXJkLWxhYmVsIHtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgcGFkZGluZzogMC4zMnJlbSAwLjY4cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDExOCwgMTEwLCAwLjEyKTtcbiAgICBjb2xvcjogdmFyKC0tcHJpbmNpcGFsLWFjY2VudCk7XG4gICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaGVyb19fY2FyZC10b3Agc3Ryb25nIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDNlbTtcbiAgICBjb2xvcjogIzEwMjMzYjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhlcm9fX21ldHJpY3Mge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAxMnB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbWV0cmljIHtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1tZXRyaWMgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcbiAgICBjb2xvcjogIzEwMjMzYjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW1ldHJpYyBzbWFsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIGNvbG9yOiB2YXIoLS1wcmluY2lwYWwtbXV0ZWQpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaGVyb19fbm90ZSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICAgIGdhcDogMTRweDtcbiAgICBtYXJnaW4tdG9wOiAxOHB4O1xuICAgIHBhZGRpbmctdG9wOiAxOHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaGVyb19fbm90ZSBpIHtcbiAgICB3aWR0aDogNDJweDtcbiAgICBoZWlnaHQ6IDQycHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDExOCwgMTEwLCAwLjEyKTtcbiAgICBjb2xvcjogdmFyKC0tcHJpbmNpcGFsLWFjY2VudCk7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1oZXJvX19ub3RlIHN0cm9uZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGNvbG9yOiAjMTAyMzNiO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaGVyb19fbm90ZSBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDcycHggMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UucHJpbmNpcGFsLWRldGFpbC1hY3RpdmUgI3F1aWVuZXMtc29tb3MsXG5ib2R5LnByaW5jaXBhbC1wYWdlLnByaW5jaXBhbC1kZXRhaWwtYWN0aXZlICN2aXNpb24sXG5ib2R5LnByaW5jaXBhbC1wYWdlLnByaW5jaXBhbC1kZXRhaWwtYWN0aXZlICNtaXNpb24sXG5ib2R5LnByaW5jaXBhbC1wYWdlLnByaW5jaXBhbC1kZXRhaWwtYWN0aXZlICNzb3BvcnRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtc2VjdGlvbi0tc29mdCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcyKSwgcmdiYSgyNDgsIDI1MSwgMjU1LCAwLjk2KSk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wNSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wNSk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1zZWN0aW9uX19oZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMC40cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1zZWN0aW9uX19oZWFkaW5nIHNwYW4sXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtZmVhdHVyZS1jYXJkX19pY29uLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWN0YV9fcGFuZWwgc3BhbiB7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1hY2NlbnQpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtc2VjdGlvbl9faGVhZGluZyBzcGFuIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXNlY3Rpb25fX2hlYWRpbmcgaDIsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY3RhX19wYW5lbCBoMiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS43cmVtLCAzdncsIDIuNnJlbSk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XG4gICAgY29sb3I6ICMxMDIzM2I7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1zZWN0aW9uX19oZWFkaW5nIHAge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6IDcwY2g7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWZlYXR1cmUtY2FyZCxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LWNhcmQsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY3RhX19wYW5lbCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZmZmZmYgMCUsICNmNmZhZmYgMTAwJSk7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDQwcHggcmdiYSgxNSwgMjMsIDQyLCAwLjEwKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWZlYXR1cmUtY2FyZCB7XG4gICAgcGFkZGluZzogMjRweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTYwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE2MG1zIGVhc2U7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1mZWF0dXJlLWNhcmQ6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMjIpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtZmVhdHVyZS1jYXJkLS1hY2NlbnQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZmZmZmYgMCUsICNlZWY0ZmIgMTAwJSk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1mZWF0dXJlLWNhcmRfX2Zvb3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxOHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtZmVhdHVyZS1jYXJkX19mb290IHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwLjRyZW0gMC44cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC4wNCk7XG4gICAgY29sb3I6ICMxMDIzM2I7XG4gICAgZm9udC1zaXplOiAwLjg4cmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtZmVhdHVyZS1jYXJkX19pY29uIHtcbiAgICB3aWR0aDogNTJweDtcbiAgICBoZWlnaHQ6IDUycHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDExOCwgMTEwLCAwLjEwKTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1mZWF0dXJlLWNhcmQgaDMsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1jYXJkX19ib2R5IGgzIHtcbiAgICBtYXJnaW46IDE0cHggMCA4cHg7XG4gICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICAgIGNvbG9yOiAjMTAyMzNiO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtZmVhdHVyZS1jYXJkIHAsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1jYXJkX19ib2R5IHAsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY3RhX19wYW5lbCBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtY2FyZCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTYwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE2MG1zIGVhc2U7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LWNhcmQ6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMjIpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1jYXJkX19pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyMjBweDtcbiAgICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtY2FyZF9fYm9keSB7XG4gICAgcGFkZGluZzogMjBweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtY2FyZF9fZGV0YWlsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIHBhZGRpbmc6IDAuMzVyZW0gMC43cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDExOCwgMTEwLCAwLjEyKTtcbiAgICBjb2xvcjogdmFyKC0tcHJpbmNpcGFsLWFjY2VudCk7XG4gICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRhbG9nIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LXByb2R1Y3RzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19saXN0IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1jYXJvdXNlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktY2Fyb3VzZWwgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19saXN0IHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICB3aWR0aDogMDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1jYXJvdXNlbF9fY29udHJvbCB7XG4gICAgZmxleDogMCAwIDM0cHg7XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjE0KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1jYXJvdXNlbF9fY29udHJvbDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzEwMjMzYjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0YWxvZyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDI4cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1iYW5uZXIge1xuICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICAgIHBhZGRpbmc6IDI4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwIDE4cHggMzVweCByZ2JhKDE1LCAyMywgNDIsIC4xNCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWJhbm5lciBzcGFuIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IC4wOGVtOyBmb250LXNpemU6IC43NXJlbTsgZm9udC13ZWlnaHQ6IDgwMDsgb3BhY2l0eTogLjg1OyB9XG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tYmFubmVyIGgzIHsgbWFyZ2luOiAxMHB4IDAgOHB4OyBjb2xvcjogI2ZmZjsgfVxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWJhbm5lciBwIHsgbWFyZ2luLWJvdHRvbTogMThweDsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjg2KTsgfVxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWJhbm5lci0tYmx1ZSB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxNTVlZWYsICMwZjJkNjYpOyB9XG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tYmFubmVyLS12aW9sZXQgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjN2MzYWVkLCAjM2IxNzZlKTsgfVxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWJhbm5lci0tb3JhbmdlIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2VhNTgwYywgIzdjMmQxMik7IH1cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtaW5uZXIsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLmNhcm91c2VsLWl0ZW0ge1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAucHJpbmNpcGFsLXByb21vLWJhbm5lciB7XG4gICAgbWluLWhlaWdodDogMjgwcHg7XG4gICAgcGFkZGluZzogNDJweCA3MnB4O1xufVxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgICB6LWluZGV4OiAzO1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wtcHJldixcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1uZXh0IHtcbiAgICB3aWR0aDogOCU7XG59XG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbmF2YmFyX19zZWFyY2gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4td2lkdGg6IDIyMHB4O1xuICAgIHBhZGRpbmc6IDdweCAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgLjE1KTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC43OCk7XG4gICAgZmxleDogMCAxIDMyMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhcl9fc2VhcmNoIGkge1xuICAgIGNvbG9yOiAjNTI2NzdmO1xufVxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhcl9fc2VhcmNoIGlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICMxMDIzM2I7XG59XG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbmF2YmFyX19zZWFyY2ggaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzcxODA5Njtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX3NlYXJjaCB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICBmbGV4LWJhc2lzOiBtaW4oMzIwcHgsIDQ4dncpO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgIH1cbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGFsb2ctc2hlbGwge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAxNnB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktbWVudSxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS12aWV3IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDIycHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KTtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDYpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktbWVudSB7XG4gICAgcGFkZGluZzogMTRweCAxNHB4IDEwcHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51LS10b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IGF1dG87XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19oZWFkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMC4yNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktbWVudV9faGVhZCBzcGFuLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LXZpZXdfX2V5ZWJyb3cge1xuICAgIGNvbG9yOiB2YXIoLS1wcmluY2lwYWwtYWNjZW50KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19oZWFkIHN0cm9uZyB7XG4gICAgY29sb3I6ICMxMDIzM2I7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGdhcDogOHB4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBzY3JvbGwtc25hcC10eXBlOiB4IHByb3hpbWl0eTtcbiAgICBib3JkZXItYm90dG9tOiAwO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktbWVudTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA4cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19saXN0Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgaGVpZ2h0OiA4cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgzNywgOTksIDIzNSwgMC4yNSk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgzNywgOTksIDIzNSwgMC4yNSk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAycHg7XG4gICAgZmxleDogMCAwIDE1NnB4O1xuICAgIG1pbi13aWR0aDogMTU2cHg7XG4gICAgaGVpZ2h0OiAxNDVweDtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogI2ZiZmRmZjtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlLCBib3JkZXItY29sb3IgMTUwbXMgZWFzZSwgYm94LXNoYWRvdyAxNTBtcyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDE1MG1zIGVhc2U7XG4gICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktbWVudV9faW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogODJweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmM2Y4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktbWVudV9fYnV0dG9uOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjIwKTtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDE1LCAyMywgNDIsIDAuMDYpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktbWVudV9fYnV0dG9uLmlzLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzEwMjMzYiAwJSwgIzFmM2I2MyAxMDAlKTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IDAgMTZweCAyOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xMik7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19idWxsZXQge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC40MCk7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggI2ZmZmZmZjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LW1lbnVfX2J1dHRvbi5pcy1hY3RpdmUgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19idWxsZXQge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmluY2lwYWwtYWNjZW50KTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LW1lbnVfX2J1dHRvbiBzdHJvbmcge1xuICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xMjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4taGVpZ2h0OiAxLjg0ZW07XG4gICAgbWF4LWhlaWdodDogMS44NGVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19idXR0b24gc21hbGwge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIG9wYWNpdHk6IDAuNzI7XG4gICAgZm9udC1zaXplOiAwLjY5cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktdmlldyB7XG4gICAgcGFkZGluZzogMThweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LXByb2R1Y3RzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMTRweDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtY2F0ZWdvcnktcHJvZHVjdHMge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2JvZHkge1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9faW1hZ2Utd3JhcCB7XG4gICAgICAgIGhlaWdodDogMTUwcHg7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogYXV0bztcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9faW1hZ2Uge1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IC45MnJlbTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5Ljk4cHgpIHtcbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktcHJvZHVjdHMge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktcHJvZHVjdHMge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktcHJvZHVjdHMge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktcHJvZHVjdHMge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1wcm9kdWN0cyAucHJpbmNpcGFsLXByb2R1Y3QtY2FyZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LXZpZXdfX2hlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktdmlld19faGVhZCA+IGRpdiB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDRweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LXZpZXdfX2hlYWQgaDMge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuMDhyZW0sIDEuOXZ3LCAxLjQ1cmVtKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LXZpZXdfX2NvdW50IHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbmNpcGFsLW11dGVkKTtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktY2FyZCB7XG4gICAgcGFkZGluZzogMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkwKTtcbiAgICBib3gtc2hhZG93OiAwIDE4cHggMzZweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktY2FyZF9faGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1jYXJkX19leWVicm93IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1hY2NlbnQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICBmb250LXNpemU6IDAuNzZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LWNhcmQgaDMge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuMnJlbSwgMi4ydncsIDEuNjVyZW0pO1xuICAgIGNvbG9yOiAjMTAyMzNiO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktY2FyZF9fY291bnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLWhlaWdodDogMzRweDtcbiAgICBwYWRkaW5nOiAwLjM1cmVtIDAuOHJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAxMTgsIDExMCwgMC4xMCk7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1hY2NlbnQpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAyMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wNyk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE2MG1zIGVhc2UsIGJveC1zaGFkb3cgMTYwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE2MG1zIGVhc2U7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGU6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMjApO1xuICAgIGJveC1zaGFkb3c6IDAgMTRweCAyNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xMCk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2ltYWdlLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlZWY0ZmIsICNkY2U4ZjYpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2ltYWdlLWJ1dHRvbiB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2ltYWdlLWJ1dHRvbjpmb2N1cy12aXNpYmxlLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fb3Blbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAzcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC4yOCk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9faW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fYm9keSB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbiAgICBwYWRkaW5nOiAxMHB4IDExcHggMTBweDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fc2lnbmFscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogOHB4IDExcHggMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiAyMnB4O1xuICAgIHBhZGRpbmc6IDAuMTJyZW0gMC40NXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZlNjAwO1xuICAgIGNvbG9yOiAjMTAyMzNiO1xuICAgIGZvbnQtc2l6ZTogMC42MnJlbTtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDE4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjEyKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA2cHg7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiAwLjY0cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fbWV0YSBzcGFuICsgc3Bhbjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKAolwiO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIGNvbG9yOiByZ2JhKDc5LCAxMDAsIDEyNSwgMC41NSk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX3RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX29wZW4ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXNpemU6IDAuODhyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjI7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX29wZW46aG92ZXIge1xuICAgIGNvbG9yOiAjMjU2M2ViO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19yYXRpbmctd3JhcCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiAycHggMCAwO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19zdGFycyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX3N0YXIge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IHJnYmEoMjQ1LCAxNjYsIDM1LCAwLjI4KTtcbiAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE2MG1zIGVhc2UsIGNvbG9yIDE2MG1zIGVhc2UsIG9wYWNpdHkgMTYwbXMgZWFzZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX3N0YXI6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KSBzY2FsZSgxLjA0KTtcbiAgICBjb2xvcjogcmdiYSgyNDUsIDE2NiwgMzUsIDAuNzUpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19zdGFyLmlzLWFjdGl2ZSB7XG4gICAgY29sb3I6ICNmNWE2MjM7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX3N0YXI6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgY3Vyc29yOiB3YWl0O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19zdGFycy1tZXRhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMC4wNnJlbSAwLjQ1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpO1xuICAgIGNvbG9yOiAjMWQ0ZWQ4O1xuICAgIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgICBmb250LXdlaWdodDogODAwO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19yYXRpbmctbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA2cHg7XG4gICAgY29sb3I6ICM2YjdmOTY7XG4gICAgZm9udC1zaXplOiAwLjY2cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX3JhdGluZy1tZXRhIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgIGNvbG9yOiAjMTAyMzNiO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2Rlc2NyaXB0aW9uIHtcbiAgICAvKiBEZXNjcmlwY2nDs24gY29tcGxldGEgZGVsIHByb2R1Y3RvLCBzaW4gcmVjb3J0ZSBkZSBsw61uZWFzLiAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogdmFyKC0tcHJpbmNpcGFsLW11dGVkKTtcbiAgICBsaW5lLWhlaWdodDogMS4zNjtcbiAgICBmb250LXNpemU6IDAuNzZyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2F0dHJpYnV0ZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNXB4O1xuICAgIG1hcmdpbi10b3A6IDFweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fYXR0cmlidXRlcyBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMC4xMnJlbSAwLjM0cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWY0ZmI7XG4gICAgY29sb3I6ICMxNzQzNmI7XG4gICAgZm9udC1zaXplOiAwLjYycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX3ByaWNpbmcge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLXRvcDogMXB4O1xuICAgIHBhZGRpbmc6IDVweCAwIDJweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fb2ZmIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtaW4taGVpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IDAuMXJlbSAwLjM2cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyMzAsIDAsIDAuMjgpO1xuICAgIGNvbG9yOiAjN2E1OTAwO1xuICAgIGZvbnQtc2l6ZTogMC42MHJlbTtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG59XG5cbi8qIENvbnRlbmVkb3IgZ2VuZXJhbCBkZSBsb3MgcHJlY2lvcyBkZSBsYSB0YXJqZXRhLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fcHJpY2UtYmxvY2sge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiA0cHg7XG59XG5cbi8qIEzDrW5lYSBpbmRpdmlkdWFsIHBhcmEgY2FkYSBwcmVjaW8gbyBtb25lZGEuICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19wcmljZS1saW5lIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMXB4O1xuICAgIHBhZGRpbmc6IDRweCAwO1xufVxuXG4vKiBQcmVjaW8gYW50ZXJpb3IgdGFjaGFkbyBlbiBsYSB0YXJqZXRhIGRlbCBwcm9kdWN0by4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX3ByaWNlLWJsb2NrIGRlbCB7XG4gICAgY29sb3I6ICM5NGEzYjg7XG4gICAgZm9udC1zaXplOiAwLjcwcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qIFRleHRvIGRlc3RhY2FkbyBhc29jaWFkbyBhbCBwcmVjaW8gZGUgbGEgdGFyamV0YS4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX3ByaWNlLWJsb2NrIHN0cm9uZyB7XG4gICAgY29sb3I6ICMxMDIzM2I7XG59XG5cbi8qIE5vbWJyZSBvIHJlZmVyZW5jaWEgZGVsIGJhbmNvIHF1ZSBvZnJlY2UgZWwgcHJlY2lvLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fcHJpY2UtYmFuayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICMxZjRmN2E7XG4gICAgZm9udC1zaXplOiBjbGFtcCgwLjgycmVtLCAxLjF2dywgMC45OHJlbSk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMDg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgICBmb250LXdlaWdodDogODAwO1xufVxuXG4vKiBWYWxvciBwcmluY2lwYWwgdmlzaWJsZSBkZWwgcHJlY2lvLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fcHJpY2UtdmFsdWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjMjAyMDIwO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS4xOHJlbSwgMS44dncsIDEuNDhyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbn1cblxuLyogSW5mb3JtYWNpw7NuIHNlY3VuZGFyaWEgZGVsIHByZWNpbywgY29tbyBkaXNwb25pYmlsaWRhZCBvIHByb21vY2nDs24uICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19wcmljZS1ibG9jayBzbWFsbCB7XG4gICAgY29sb3I6ICMwZjc2NmU7XG4gICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qIEJsb3F1ZSBjb23Dum4gcGFyYSBtb3N0cmFyIGNhcmFjdGVyw61zdGljYXMgY29tcGxldGFzIHkgcmVzcGV0YXIgc2FsdG9zIGRlIGzDrW5lYS4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2NoYXJhY3RlcmlzdGljcyxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19jaGFyYWN0ZXJpc3RpY3Mge1xuICAgIGNvbG9yOiAjNDc1NTY5O1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cblxuLyogQ2FyYWN0ZXLDrXN0aWNhcyBjb21wbGV0YXMgZGViYWpvIGRlIGxhIGRlc2NyaXBjacOzbiBlbiBsYSB0YXJqZXRhLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fY2hhcmFjdGVyaXN0aWNzIHtcbiAgICBtYXJnaW4tdG9wOiAwLjY1cmVtO1xuICAgIHBhZGRpbmctdG9wOiAwLjZyZW07XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuXG4vKiBUw610dWxvIGRlbCBibG9xdWUgZGUgY2FyYWN0ZXLDrXN0aWNhcyBlbiB0YXJqZXRhIHkgZGV0YWxsZS4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2NoYXJhY3RlcmlzdGljcyBzdHJvbmcsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fY2hhcmFjdGVyaXN0aWNzIHN0cm9uZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXdlaWdodDogODAwO1xufVxuXG4vKiBDYXJhY3RlcsOtc3RpY2FzIGNvbXBsZXRhcyBkZWJham8gZGUgbGEgZGVzY3JpcGNpw7NuIGVuIGVsIGRldGFsbGUgcHJpbmNpcGFsLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NoYXJhY3RlcmlzdGljcyB7XG4gICAgbWFyZ2luLXRvcDogMC45cmVtO1xuICAgIHBhZGRpbmc6IDAuODVyZW0gMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmOGZiZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbiAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTU7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA1cHg7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fZm9vdGVyIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWluLWhlaWdodDogMjJweDtcbiAgICBwYWRkaW5nOiAwLjE0cmVtIDAuMzhyZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogI2YzZjdmYztcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXNpemU6IDAuNjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fZm9vdGVyIGkge1xuICAgIGNvbG9yOiAjMGY3NjZlO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDIyMDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3LCAxNSwgMjksIDAuNTgpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWwuaXMtb3BlbiB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2JhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19kaWFsb2cge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiBtaW4oMTE4MHB4LCAxMDAlKTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDhweCk7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZmZmZmYgMCUsICNmNGY4ZmQgMTAwJSk7XG4gICAgYm94LXNoYWRvdzogMCAzMnB4IDgwcHggcmdiYSgwLCAwLCAwLCAwLjI4KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2Nsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNnB4O1xuICAgIHJpZ2h0OiAxNnB4O1xuICAgIHotaW5kZXg6IDI7XG4gICAgd2lkdGg6IDQycHg7XG4gICAgaGVpZ2h0OiA0MnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGNvbG9yOiAjMTAyMzNiO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1kZXRhaWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDIycHg7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KSwgcmdiYSgyNDQsIDI0OCwgMjUzLCAwLjk2KSk7XG4gICAgYm94LXNoYWRvdzogMCAyNnB4IDYwcHggcmdiYSgxNSwgMjMsIDQyLCAwLjEwKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDI4MHB4LCAwLjk1ZnIpIG1pbm1heCgwLCAxLjM1ZnIpO1xuICAgIGdhcDogMThweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsX19oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1kZXRhaWwgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19jbG9zZSB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9faW1hZ2Utd3JhcCB7XG4gICAgYXNwZWN0LXJhdGlvOiBhdXRvO1xuICAgIGhlaWdodDogMzYwcHg7XG4gICAgd2lkdGg6IG1pbigxMDAlLCAzNjBweCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8qIEFncnVwYSBsYSBpbmZvcm1hY2nDs24gYW1wbGlhZGEgcXVlIHNlIG11ZXN0cmEgZGVzcHXDqXMgZGUgYWJyaXIgdW4gcHJvZHVjdG8uICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1kZXRhaWxfX2luZm9ybWF0aW9uIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBwYWRkaW5nOiAxOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4vKiBUw610dWxvIGRlIGxhIHNlY2Npw7NuIGRlIGluZm9ybWFjacOzbiBjb21wbGV0YSBkZWwgcHJvZHVjdG8uICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1kZXRhaWxfX2luZm9ybWF0aW9uLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luOiAwIDAgMTRweDtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXNpemU6IDEuMDVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuLyogSWNvbm8gZGVsIHTDrXR1bG8gZGUgaW5mb3JtYWNpw7NuIGNvbXBsZXRhLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsX19pbmZvcm1hdGlvbi10aXRsZSBpIHtcbiAgICBjb2xvcjogIzJkNzhiYztcbn1cblxuLyogRGlzdHJpYnVjacOzbiBkZSBkZXNjcmlwY2nDs24sIGNhcmFjdGVyw61zdGljYXMgeSBkYXRvcyBhZGljaW9uYWxlcy4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LWRldGFpbF9faW5mb3JtYXRpb24tZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgZ2FwOiAxMnB4O1xufVxuXG4vKiBUYXJqZXRhIGluZGl2aWR1YWwgcGFyYSBjYWRhIGJsb3F1ZSBkZSBpbmZvcm1hY2nDs24gYW1wbGlhZGEuICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1kZXRhaWxfX2luZm9ybWF0aW9uLWJsb2NrIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogMTNweCAxNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlM2ViZjM7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYmZmO1xufVxuXG4vKiBMYSBkZXNjcmlwY2nDs24gb2N1cGEgdG9kbyBlbCBhbmNobyBwYXJhIG1vc3RyYXIgZWwgdGV4dG8gY29tcGxldG8uICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1kZXRhaWxfX2luZm9ybWF0aW9uLWJsb2NrLS1kZXNjcmlwdGlvbixcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LWRldGFpbF9faW5mb3JtYXRpb24tYmxvY2stLWNoYXJhY3RlcmlzdGljcyB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbn1cblxuLyogRXRpcXVldGEgc3VwZXJpb3IgZGUgY2FkYSBibG9xdWUgZGUgaW5mb3JtYWNpw7NuIGFtcGxpYWRhLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsX19pbmZvcm1hdGlvbi1ibG9jayA+IHN0cm9uZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogN3B4O1xuICAgIGNvbG9yOiAjMTAyMzNiO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbi8qIFRleHRvIGRlc2NyaXB0aXZvIGNvbXBsZXRvLCByZXNwZXRhbmRvIHNhbHRvcyBkZSBsw61uZWEgeSBwYWxhYnJhcyBleHRlbnNhcy4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LWRldGFpbF9faW5mb3JtYXRpb24tYmxvY2sgcCxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LWRldGFpbF9faW5mb3JtYXRpb24tYmxvY2sgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19jaGFyYWN0ZXJpc3RpY3Mge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbiAgICBsaW5lLWhlaWdodDogMS42NTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi8qIFByZXNlbnRhIGxvcyBkYXRvcyBhZGljaW9uYWxlcyBzaW4gbW9zdHJhciB1biBlbmNhYmV6YWRvIHNlcGFyYWRvLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsX19hZGRpdGlvbmFsLWxpc3Qge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgIGdhcDogOHB4O1xufVxuXG4vKiBDYWRhIGRhdG8gYWRpY2lvbmFsIGNvbnNlcnZhIHN1IGxlY3R1cmEgY29tcGxldGEgZGVudHJvIGRlIGxhIGZpY2hhLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsX19hZGRpdGlvbmFsLWxpc3Qgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgZm9udC1zaXplOiAwLjg4cmVtO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuXG4vKiBVYmljYSBsb3MgZGF0b3MgYWRpY2lvbmFsZXMgZW5jaW1hIGRlbCBwcmVjaW8gZGVudHJvIGRlbCByZXN1bWVuIGRlbCBwcm9kdWN0by4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LWRldGFpbF9fYWRkaXRpb25hbC1saXN0LS1zdW1tYXJ5IHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMTRweCAwIDJweDtcbn1cblxuLyogVMOtdHVsbyBkZWwgYmxvcXVlIHF1ZSByZcO6bmUgbGFzIGNhcmFjdGVyw61zdGljYXMgY29tZXJjaWFsZXMgZGVsIHByb2R1Y3RvLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsX19hZGRpdGlvbmFsLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgY29sb3I6ICMxMDIzM2I7XG4gICAgZm9udC1zaXplOiAwLjkycmVtO1xufVxuXG4vKiBEaXN0cmlidXllIGNhZGEgY2FyYWN0ZXLDrXN0aWNhIHNpbiBwZXJkZXIgbGEgbGVjdHVyYSBjb21wbGV0YSBkZWwgdGV4dG8uICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1kZXRhaWxfX2FkZGl0aW9uYWwtaXRlbXMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgIGdhcDogOHB4O1xufVxuXG4vKiBSZXNhbHRhIMO6bmljYW1lbnRlIGxhIGV0aXF1ZXRhIHF1ZSBhcGFyZWNlIGFudGVzIGRlIGxvcyBkb3MgcHVudG9zLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsX19hZGRpdGlvbmFsLWl0ZW1zIHNwYW4gc3Ryb25nIHtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXdlaWdodDogODAwO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1kZXRhaWxbZGF0YS1wcm9kdWN0LWRldGFpbC1zdGF0ZT1cImVtcHR5XCJdIHtcbiAgICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTQpLCByZ2JhKDIzNywgMjQ0LCAyNTIsIDAuOTIpKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsW2RhdGEtcHJvZHVjdC1kZXRhaWwtc3RhdGU9XCJlbXB0eVwiXSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3N1bW1hcnkge1xuICAgIG9wYWNpdHk6IDAuOTI7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDEuMDVmcikgbWlubWF4KDAsIDEuMzVmcikgbWlubWF4KDI4MHB4LCAwLjc1ZnIpO1xuICAgIGdhcDogMThweDtcbiAgICBwYWRkaW5nOiAyMnB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fZ2FsbGVyeSxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19zdW1tYXJ5LFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQge1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2dhbGxlcnksXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fc3VtbWFyeSxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19jYXJ0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKTtcbiAgICBib3gtc2hhZG93OiAwIDEycHggMjhweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fZ2FsbGVyeSB7XG4gICAgcGFkZGluZzogMTZweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2ltYWdlLXdyYXAge1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlZWY0ZmIsICNkY2U4ZjYpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9faW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NoaXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiAxNHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fY2hpcHMgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgIHBhZGRpbmc6IDAuMzJyZW0gMC43cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWY0ZmI7XG4gICAgY29sb3I6ICMxNzQzNmI7XG4gICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19zdW1tYXJ5IHtcbiAgICBwYWRkaW5nOiAxOHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fZXllYnJvdyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGNvbG9yOiB2YXIoLS1wcmluY2lwYWwtYWNjZW50KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19zdW1tYXJ5IGgyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICMxMDIzM2I7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjU1cmVtLCAyLjh2dywgMi4xNXJlbSk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19jb2RlIHtcbiAgICBtYXJnaW46IDhweCAwIDA7XG4gICAgY29sb3I6ICMyNTYzZWI7XG4gICAgZm9udC1zaXplOiAwLjg2cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19yYXRpbmcge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3JhdGluZyBzbWFsbCB7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiAwLjg0cmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fcHJpY2luZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxNHB4O1xufVxuXG4vKiBQcmVjaW8gYW50ZXJpb3IgdGFjaGFkbyBkZW50cm8gZGVsIGRldGFsbGUgZGVsIHByb2R1Y3RvLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3ByaWNpbmcgZGVsIHtcbiAgICBjb2xvcjogIzk0YTNiODtcbiAgICBmb250LXNpemU6IDAuOTZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLyogUHJlY2lvIHByaW5jaXBhbCBkZW50cm8gZGVsIGRldGFsbGUgZGVsIHByb2R1Y3RvLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3ByaWNpbmcgc3Ryb25nIHtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuMjVyZW0sIDEuNnZ3LCAxLjdyZW0pO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW07XG59XG5cbi8qIExpc3RhIGRlIHByZWNpb3MgcG9yIGJhbmNvIGRlbnRybyBkZWwgZGV0YWxsZS4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19wcmljZS1saXN0IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG59XG5cbi8qIEZpbGEgdmlzdWFsIGRlIGNhZGEgcHJlY2lvIGRlbCBiYW5jby4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19wcmljZS1saW5lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMC42NXJlbTtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmOGZiZmYgMCUsICNlZWY0ZmIgMTAwJSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA2KTtcbn1cblxuLyogw41jb25vIGRlbCBiYW5jbyBhc29jaWFkbyBhbCBwcmVjaW8uICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fcHJpY2UtaWNvbiB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGZsZXg6IDAgMCAzMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3ByaWNlLWljb24gaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBwYWRkaW5nOiAwLjE2cmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fcHJpY2UtaWNvbi0tZmFsbGJhY2sgaSB7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuXG4vKiBCYW5jbyBvIG1vbmVkYSBtb3N0cmFkYSBkZW50cm8gZGVsIGRldGFsbGUuICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fcHJpY2UtYmFuayB7XG4gICAgY29sb3I6ICMxZjRmN2E7XG4gICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbn1cblxuLyogVmFsb3IgYXNvY2lhZG8gYSBjYWRhIGJhbmNvIGRlbnRybyBkZWwgZGV0YWxsZS4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19wcmljZS12YWx1ZSB7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3ByaWNlLWNvcHkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAwLjFyZW07XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fcHJpY2luZyBzbWFsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiAyOHB4O1xuICAgIHBhZGRpbmc6IDAuMnJlbSAwLjU1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyMzAsIDAsIDAuMjQpO1xuICAgIGNvbG9yOiAjN2E1OTAwO1xuICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICBmb250LXdlaWdodDogOTAwO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbjogMTRweCAwIDA7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3NwZWNzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fc3BlY3MgZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgIHBhZGRpbmc6IDAuNTVyZW0gMC44cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjhmYztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3NwZWNzIHN0cm9uZyB7XG4gICAgY29sb3I6ICMxMDIzM2I7XG4gICAgZm9udC1zaXplOiAwLjg0cmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fc3BlY3Mgc3BhbiB7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiAwLjg0cmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fcGF5bWVudHMge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgzNywgOTksIDIzNSwgMC4wNCk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19wYXltZW50cy1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3BheW1lbnRzLWhlYWQgc3Ryb25nIHtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXNpemU6IDAuOTJyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19wYXltZW50cy1oZWFkIHNtYWxsIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbmNpcGFsLW11dGVkKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3BheW1lbnRzLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcGF5bWVudC1tZXRob2Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWluLWhlaWdodDogMzJweDtcbiAgICBwYWRkaW5nOiAwLjM1cmVtIDAuNzVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMxNzQzNmI7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE0KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXBheW1lbnQtbWV0aG9kLS1lbXB0eSB7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY4KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2J1eWJveCB7XG4gICAgbWFyZ2luLXRvcDogMThweDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNSwgMTE4LCAxMTAsIDAuMDYpLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjA1KSk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19xdHktbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXNpemU6IDAuODRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3F0eS1yb3cge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgZ2FwOiA4cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19xdHktYnRuLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3F0eS1pbnB1dCB7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEyKTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMTAyMzNiO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fcXR5LWJ0biB7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX3F0eS1pbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fc3RvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiAwLjgycmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19hY3Rpb25zIC5idG4ge1xuICAgIGZsZXg6IDEgMSAxNjBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQ2cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19jYXJ0IHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAxNHB4O1xuICAgIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fY2FydC1oZWFkLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQtdG90YWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fY2FydC1oZWFkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQtaGVhZCBzcGFuLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQtaGVhZCBzdHJvbmcsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fY2FydC10b3RhbCBzcGFuLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQtdG90YWwgc3Ryb25nIHtcbiAgICBjb2xvcjogIzEwMjMzYjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQtaXRlbXMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1heC1oZWlnaHQ6IDUydmg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19jYXJ0LWVtcHR5IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAyMnB4IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjVmOGZjO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQtZW1wdHkgaSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1hY2NlbnQpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fY2FydC1lbXB0eSBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19jYXJ0LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjhmYztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQtaXRlbS1jb3B5IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogNHB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQtaXRlbSBzdHJvbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjMTAyMzNiO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fY2FydC1pdGVtIHNtYWxsIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbmNpcGFsLW11dGVkKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQtaXRlbSBzcGFuIHtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LW1vZGFsX19jYXJ0LWl0ZW0tYWN0aW9ucyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQtc3RlcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMTApO1xuICAgIGNvbG9yOiAjMTc0MzZiO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fY2FydC1zdGVwIGkge1xuICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2NhcnQtc3RlcC0tcmVtb3ZlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEwKTtcbiAgICBjb2xvcjogI2I0MjMxODtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhcnQtZHJhd2VyIHtcbiAgICB3aWR0aDogbWluKDEwMHZ3LCA0MjBweCk7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZmZmZmYgMCUsICNmNmZhZmYgMTAwJSk7XG4gICAgY29sb3I6ICMxMDIzM2I7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXJ0LWRyYXdlcl9faGVhZGVyIHtcbiAgICBwYWRkaW5nOiAxOHB4IDE4cHggMTRweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDE2LCAzNSwgNTksIDAuOTgpLCByZ2JhKDE1LCAxMTgsIDExMCwgMC45OCkpO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2FydC1kcmF3ZXJfX2V5ZWJyb3cge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTtcbiAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXJ0LWRyYXdlcl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDNlbTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhcnQtZHJhd2VyX19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNHB4O1xuICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2FydC1kcmF3ZXJfX3N1bW1hcnkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTApO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMDQpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2FydC1kcmF3ZXJfX3N1bW1hcnkgc3Ryb25nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXNpemU6IDFyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXJ0LWRyYXdlcl9fc3VtbWFyeSBzbWFsbCB7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXJ0LWRyYXdlcl9fc3VidG90YWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2FydC1kcmF3ZXJfX3N1YnRvdGFsIHNwYW4sXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2FydC1kcmF3ZXJfX3N1YnRvdGFsIHN0cm9uZyB7XG4gICAgY29sb3I6ICMxMDIzM2I7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXJ0LWRyYXdlcl9faXRlbXMge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDEwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXJ0LWRyYXdlcl9fZm9vdGVyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIGJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiAxNHB4IDAgMnB4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjQ2LCAyNTAsIDI1NSwgMC45MiksIHJnYmEoMjQ2LCAyNTAsIDI1NSwgMSkpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTkuOThweCkge1xuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LWRldGFpbF9fY29udGVudCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsIHtcbiAgICAgICAgcGFkZGluZzogMTRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjJweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9faW1hZ2Utd3JhcCB7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgMzAwcHgpO1xuICAgICAgICBoZWlnaHQ6IG1pbigyODBweCwgODB2dyk7XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtbW9kYWxfX2RpYWxvZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyNHB4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjJweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1tb2RhbF9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgfVxuXG4gICAgLyogRW4gcGFudGFsbGFzIHBlcXVlw7FhcywgY2FkYSBibG9xdWUgZGUgaW5mb3JtYWNpw7NuIG9jdXBhIHRvZG8gZWwgYW5jaG8uICovXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsX19pbmZvcm1hdGlvbi1ncmlkIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuXG4gICAgLyogRW4gdGVsw6lmb25vcywgY2FkYSBjYXJhY3RlcsOtc3RpY2Egb2N1cGEgdW5hIGzDrW5lYSBjb21wbGV0YS4gKi9cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC1kZXRhaWxfX2FkZGl0aW9uYWwtaXRlbXMge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG5cbiAgICAvKiBSZWR1Y2UgZWwgZXNwYWNpbyBpbnRlcm5vIGRlbCBkZXRhbGxlIGFtcGxpYWRvIGVuIHRlbMOpZm9ub3MuICovXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtZGV0YWlsX19pbmZvcm1hdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgfVxufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19jb2RlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHBhZGRpbmc6IDAuMjhyZW0gMC42MnJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjEwKTtcbiAgICBjb2xvcjogIzI1NjNlYjtcbiAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktdmlld19fcGFnaW5hdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMjJweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LW1lbnUge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggOHB4O1xuICAgIH1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LW1lbnVfX2J1dHRvbiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDE1MHB4O1xuICAgICAgICBtaW4td2lkdGg6IDE1MHB4O1xuICAgICAgICBoZWlnaHQ6IDE0NXB4O1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LW1lbnUge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggOHB4O1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jYXRlZ29yeS1tZW51X19oZWFkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktbWVudV9fYnV0dG9uIHtcbiAgICAgICAgZmxleC1iYXNpczogMTQycHg7XG4gICAgICAgIG1pbi13aWR0aDogMTQycHg7XG4gICAgICAgIGhlaWdodDogMTQ1cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCA5cHg7XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNhdGVnb3J5LXZpZXcge1xuICAgICAgICBwYWRkaW5nOiAxOHB4O1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGUge1xuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2ltYWdlLXdyYXAge1xuICAgICAgICBtaW4taGVpZ2h0OiAyMTBweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19ib2R5IHtcbiAgICAgICAgcGFkZGluZzogMTRweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2F0ZWdvcnktdmlld19faGVhZCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXBhZ2luYXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcGFnaW5hdGlvbl9fcGFnZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcGFnaW5hdGlvbl9fbmF2LFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXBhZ2luYXRpb25fX3BhZ2Uge1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMC41cmVtIDAuOXJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMTApO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMxMDIzM2I7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMTUwbXMgZWFzZSwgY29sb3IgMTUwbXMgZWFzZTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXBhZ2luYXRpb25fX25hdjpob3ZlcixcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wYWdpbmF0aW9uX19wYWdlOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjI1KTtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmNGZiO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcGFnaW5hdGlvbl9fcGFnZS5pcy1hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzEwMjMzYiAwJSwgIzI1NjNlYiAxMDAlKTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXBhZ2luYXRpb25fX25hdjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjQ4O1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWVtcHR5LWNhdGFsb2ctLWNvbXBhY3Qge1xuICAgIHBhZGRpbmc6IDI0cHggMThweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fZm9vdGVyIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWluLWhlaWdodDogMzRweDtcbiAgICBwYWRkaW5nOiAwLjM1cmVtIDAuNzJyZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogI2YzZjdmYztcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWVtcHR5LWNhdGFsb2cge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAzNnB4IDIwcHg7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMTUsIDIzLCA0MiwgMC4xNCk7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWVtcHR5LWNhdGFsb2cgaSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGNvbG9yOiB2YXIoLS1wcmluY2lwYWwtYWNjZW50KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWVtcHR5LWNhdGFsb2cgaDMge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzEwMjMzYjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWVtcHR5LWNhdGFsb2cgcCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1wcmluY2lwYWwtbXV0ZWQpO1xuICAgIG1heC13aWR0aDogNTZjaDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWJ1bGxldC1saXN0IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtYnVsbGV0LWxpc3QgZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTBweDtcbiAgICBjb2xvcjogIzEwMjMzYjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWJ1bGxldC1saXN0IGkge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBjb2xvcjogdmFyKC0tcHJpbmNpcGFsLWFjY2VudCk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1taW5pLWNhcmQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAxOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbWluaS1jYXJkIGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1hY2NlbnQpO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbWluaS1jYXJkIHN0cm9uZyxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1taW5pLWNhcmQgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1taW5pLWNhcmQgc3Ryb25nIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGNvbG9yOiAjMTAyMzNiO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbWluaS1jYXJkIHNwYW4ge1xuICAgIGNvbG9yOiB2YXIoLS1wcmluY2lwYWwtbXV0ZWQpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jdGEge1xuICAgIHBhZGRpbmc6IDAgMCA4OHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY3RhX19wYW5lbCB7XG4gICAgcGFkZGluZzogMjhweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTAyMzNiIDAlLCAjMWYzYjYzIDEwMCUpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY3RhX19wYW5lbCBzcGFuLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWN0YV9fcGFuZWwgaDIsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY3RhX19wYW5lbCBwIHtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWN0YV9fcGFuZWwgLmJ0bi1saWdodCB7XG4gICAgY29sb3I6ICMxMDIzM2I7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jdGFfX3BhbmVsIC5idG4tb3V0bGluZS1saWdodCB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjgpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY3RhX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogMThweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWN0YV9fYWN0aW9ucy0tc3RhY2tlZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWZvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgYmFja2dyb3VuZDogIzEwMjMzYjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWZvb3Rlcl9faW5uZXIge1xuICAgIC8qZGlzcGxheTogZmxleDsqL1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE4cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxOHB4IDA7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1mb290ZXJfX2NvcHksXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtZm9vdGVyX19tZXRhIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMC4yNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1mb290ZXJfX2NvcHkgc3Ryb25nIHtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAuYXV0aC1wYWdlLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucmVnaXN0ZXItcGFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDgycHggLSA5MHB4KTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogNDhweCAxOHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5hdXRoLXNoZWxsLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucmVnaXN0ZXItc2hlbGwge1xuICAgIHdpZHRoOiBtaW4oMTAwJSwgNTYwcHgpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5hdXRoLWNhcmQsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5yZWdpc3Rlci1jYXJkIHtcbiAgICBwYWRkaW5nOiAyOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpO1xuICAgIGJveC1zaGFkb3c6IDAgMjJweCA1MHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xMCk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLmF1dGgtY2FyZCBoMSxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnJlZ2lzdGVyLWNhcmQgaDEge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuOHJlbSwgNHZ3LCAyLjRyZW0pO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuICAgIGNvbG9yOiAjMTAyMzNiO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5hdXRoLWZvcm0sXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5yZWdpc3Rlci1mb3JtIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tdG9wOiAyMnB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5maWVsZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDhweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAuZmllbGQgc3BhbiB7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAuZmllbGQgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMC44cmVtIDFyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEyKTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMxMDIzM2I7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLmZpZWxkIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM2YjdmOTY7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLmF1dGgtZmVlZGJhY2ssXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5yZWdpc3Rlci1mZWVkYmFjayB7XG4gICAgbWluLWhlaWdodDogMjBweDtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IHZhcigtLXByaW5jaXBhbC1tdXRlZCk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLmF1dGgtZmVlZGJhY2tbZGF0YS1zdGF0ZT1cImVycm9yXCJdLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucmVnaXN0ZXItZmVlZGJhY2tbZGF0YS1zdGF0ZT1cImVycm9yXCJdIHtcbiAgICBjb2xvcjogI2I5MWMxYztcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAuYXV0aC1idXR0b24sXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5yZWdpc3Rlci1idXR0b24ge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHJpbmNpcGFsLWFjY2VudCksIHZhcigtLXByaW5jaXBhbC1hY2NlbnQtMikpO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLmF1dGgtbGluayxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnJlZ2lzdGVyLWxpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gICAgY29sb3I6ICMyNTYzZWI7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1zZWN0aW9uX19oZWFkaW5nIHNwYW4sXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwta2lja2VyLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhlcm9fX2NhcmQtbGFiZWwge1xuICAgIHRleHQtc2hhZG93OiBub25lO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWwgLm1vZGFsLWNvbnRlbnQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgYm9yZGVyLXJhZGl1czogMjhweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZmZmZmYgMCUsICNmOGZiZmYgMTAwJSk7XG4gICAgYm94LXNoYWRvdzogMCAyNHB4IDgwcHggcmdiYSgxNSwgMjMsIDQyLCAwLjIyKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsIC5tb2RhbC1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDEuMXJlbSAxLjM1cmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwZjE3MmEgMCUsICMxMDIzM2IgMTAwJSk7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbCAubW9kYWwtdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAzZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbCAuYnRuLWNsb3NlIHtcbiAgICBmaWx0ZXI6IGludmVydCgxKSBncmF5c2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMC45O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX2JvZHkge1xuICAgIHBhZGRpbmc6IDEuMjVyZW07XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCB0b3AgcmlnaHQsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMDYpLCB0cmFuc3BhcmVudCAyNCUpLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGJvdHRvbSBsZWZ0LCByZ2JhKDE1LCAxMTgsIDExMCwgMC4wNiksIHRyYW5zcGFyZW50IDI4JSksXG4gICAgICAgICNmOGZiZmY7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fc3VtbWFyeSxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fcGF5bWVudC1wYW5lbCxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fcGhvdG8tYm94IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Nik7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fc3VtbWFyeSxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fcGF5bWVudC1wYW5lbCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX3N1bW1hcnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fc3VtbWFyeSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19oZXJvIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19wYXltZW50LXBhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAwLjU1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9faGVybyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC45cmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX2hlcm8taW1hZ2Uge1xuICAgIHdpZHRoOiA5MnB4O1xuICAgIGhlaWdodDogOTJweDtcbiAgICBmbGV4OiAwIDAgOTJweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTApO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX2hlcm8tY29weSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDAuMjJyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9faGVyby1jb3B5IHN0cm9uZyB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX2hlcm8tY29weSBwLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19oZXJvLWNvcHkgc21hbGwge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogdmFyKC0tcHJpbmNpcGFsLW11dGVkKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19jYXJ0LWxpc3Qge1xuICAgIG1hcmdpbjogMC45cmVtIDAgMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDAuNTVyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fY2FydC1saW5lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMC43NXJlbTtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMC44NXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmOGZiZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA2KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19jYXJ0LWxpbmUgc3Ryb25nIHtcbiAgICBmb250LXNpemU6IDAuOTJyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fY2FydC1saW5lIHNwYW4ge1xuICAgIGNvbG9yOiB2YXIoLS1wcmluY2lwYWwtbXV0ZWQpO1xuICAgIGZvbnQtc2l6ZTogMC44NnJlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX3BheW1lbnQtaGVhZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4xNXJlbTtcbiAgICBjb2xvcjogIzEwMjMzYjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19tZXRob2RzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjEwcHgsIDFmcikpO1xuICAgIGdhcDogMC43NXJlbTtcbn1cblxuLyogUGFuZWwgdmlzaWJsZSBjb24gbG9zIGRhdG9zIGRlbCBtw6l0b2RvIGRlIHBhZ28gc2VsZWNjaW9uYWRvLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19zZWxlY3RlZC1kYXRhIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmJmZjtcbn1cblxuLyogQ2FkYSBkYXRvIGJhbmNhcmlvIHNlIHByZXNlbnRhIGNvbiBsYSBldGlxdWV0YSBzZXBhcmFkYSBkZWwgdmFsb3IuICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX3NlbGVjdGVkLWRhdGEtbGluZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA1cHg7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgZm9udC1zaXplOiAwLjg4cmVtO1xufVxuXG4vKiBFdGlxdWV0YXMgY29tbyBDw6lkdWxhLCBFbWFpbCwgVGVsw6lmb25vIGUgSWRlbnRpZmljYWRvciBkZSBwYWdvIGVuIG5lZ3JpdGEuICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX3NlbGVjdGVkLWRhdGEtbGluZSBzdHJvbmcge1xuICAgIGNvbG9yOiAjMTAyMzNiO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fbWV0aG9kIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwLjg1cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDAuOXJlbSAxcmVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4xMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZmZmZmZmIDAlLCAjZjZmOWZmIDEwMCUpO1xuICAgIGNvbG9yOiAjMTAyMzNiO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE2MG1zIGVhc2UsIGJvcmRlci1jb2xvciAxNjBtcyBlYXNlLCBib3gtc2hhZG93IDE2MG1zIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMTYwbXMgZWFzZTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19tZXRob2Q6aG92ZXIsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX21ldGhvZDpmb2N1cy12aXNpYmxlLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19tZXRob2QuaXMtc2VsZWN0ZWQge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNywgOTksIDIzNSwgMC4zNCk7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDMwcHggcmdiYSgzNywgOTksIDIzNSwgMC4xMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX21ldGhvZC5pcy1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgzNywgOTksIDIzNSwgMC4wOCksIHJnYmEoMTUsIDExOCwgMTEwLCAwLjA4KSk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fbWV0aG9kLWljb24sXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX3NlbGVjdGVkLWljb24ge1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIGhlaWdodDogMzhweDtcbiAgICBmbGV4OiAwIDAgMzhweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fbWV0aG9kLWljb24gaW1nLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19zZWxlY3RlZC1pY29uIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgcGFkZGluZzogMC4yMnJlbTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19tZXRob2QtaWNvbi0tZmFsbGJhY2sgaSB7XG4gICAgY29sb3I6ICMyNTYzZWI7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fbWV0aG9kLWNvcHksXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX3NlbGVjdGVkLWNvcHkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAwLjE1cmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX21ldGhvZC1jb3B5IHN0cm9uZyB7XG4gICAgZm9udC1zaXplOiAwLjkycmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fbWV0aG9kLWNvcHkgc21hbGwge1xuICAgIGNvbG9yOiB2YXIoLS1wcmluY2lwYWwtbXV0ZWQpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fc2VsZWN0ZWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAuOHJlbTtcbiAgICBtYXJnaW4tdG9wOiAwLjlyZW07XG4gICAgcGFkZGluZzogMC45cmVtIDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDE1LCAxMTgsIDExMCwgMC4wOCksIHJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpKTtcbiAgICBjb2xvcjogIzEwMjMzYjtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWxfX3NlbGVjdGVkLWNvcHkge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLmJ0bi1jb3B5IHtcbiAgICBtaW4taGVpZ2h0OiA0NnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMGY3NjZlLCAjMjU2M2ViKTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIGJveC1zaGFkb3c6IDAgMTRweCAzMHB4IHJnYmEoMzcsIDk5LCAyMzUsIDAuMTgpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5idG4tY29weTpob3ZlcixcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLmJ0bi1jb3B5OmZvY3VzLXZpc2libGUge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygxLjA0KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19waG90by1wcmV2aWV3IHtcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgIHBhZGRpbmc6IDAuOHJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmJmZjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19waG90by1wcmV2aWV3IGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTgwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fcGhvdG8tYm94IGxhYmVsIHtcbiAgICBjb2xvcjogIzEwMjMzYjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsX19waG90by1ib3ggaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMjgpO1xuICAgIGJhY2tncm91bmQ6ICNmOGZiZmY7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbF9fcGhvdG8tYm94IHNtYWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMC40NXJlbTtcbiAgICBjb2xvcjogdmFyKC0tcHJpbmNpcGFsLW11dGVkKSAhaW1wb3J0YW50O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY2hlY2tvdXQtbW9kYWwgLmZvcm0tbGFiZWwge1xuICAgIGNvbG9yOiAjMTAyMzNiO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbCAuZm9ybS1jb250cm9sLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsIC5mb3JtLXNlbGVjdCxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbCB0ZXh0YXJlYSB7XG4gICAgY29sb3I6ICMxMDIzM2I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTUsIDIzLCA0MiwgMC4xNik7XG4gICAgY2FyZXQtY29sb3I6ICMxMDIzM2I7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICMxMDIzM2I7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbCAuZm9ybS1jb250cm9sOjpwbGFjZWhvbGRlcixcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjNmI3ZDkzO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbCAuZm9ybS1jb250cm9sOmZvY3VzLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsIC5mb3JtLXNlbGVjdDpmb2N1cyxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbCB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgY29sb3I6ICMxMDIzM2I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMzcsIDk5LCAyMzUsIDAuNDApO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMThyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xNCk7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbCAuZm9ybS1jb250cm9sOmRpc2FibGVkLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsIC5mb3JtLXNlbGVjdDpkaXNhYmxlZCxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1jaGVja291dC1tb2RhbCB0ZXh0YXJlYTpkaXNhYmxlZCB7XG4gICAgY29sb3I6ICM2YjdkOTM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjdmYjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsIC5tb2RhbC1mb290ZXIge1xuICAgIHBhZGRpbmc6IDFyZW0gMS4yNXJlbSAxLjJyZW07XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWNoZWNrb3V0LW1vZGFsIC5tb2RhbC1mb290ZXIgLmJ0biB7XG4gICAgbWluLXdpZHRoOiAxNjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBmb250LXdlaWdodDogODAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbmF2YmFyIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IDEycHg7XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLW5hdmJhciAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMThweCA0MHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xOCk7XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhlcm9fX3BhbmVsIHtcbiAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtY3RhX19hY3Rpb25zLS1zdGFja2VkIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWJyYW5kX19jb3B5IHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1mb290ZXJfX2lubmVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhlcm8sXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXNlY3Rpb24sXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWN0YSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5hdXRoLXBhZ2UsXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucmVnaXN0ZXItcGFnZSB7XG4gICAgICAgIHBhZGRpbmc6IDI4cHggMTJweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbmF2YmFyIC5uYXZiYXItY29sbGFwc2Uge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTRweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHVibGljLW5hdiB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2F1dGgge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXB1YmxpYy1uYXYgLm5hdi1saW5rLFxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2F1dGggLm5hdi1saW5rLFxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2xvZ291dCxcbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtbmF2YmFyX19jYXJ0LFxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1uYXZiYXJfX2Rhc2hib2FyZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhlcm8gaDEge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxufVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTUVSQ0FETyBMSUJSRSDigJQgRVNUSUxPIFZJU1VBTCBQQVJBIEJBTk5FUiBZIFBST0RVQ1RPU1xuICAgU29sbyBDU1M6IG5vIHJlcXVpZXJlIGNhbWJpb3MgZW4gaW5kZXguaHRtbC50d2lnXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogRm9uZG8geSBzZXBhcmFjacOzbiBkZSBsYSB6b25hIGNvbWVyY2lhbCAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmFubmVycyxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyB7XG4gICAgYm9yZGVyOiAwO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iYW5uZXJzIHtcbiAgICBwYWRkaW5nOiAxOHB4IDAgOHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMge1xuICAgIHBhZGRpbmc6IDM0cHggMCAzNHB4O1xufVxuXG4vKiBPY3VsdGFyIGVsIGVuY2FiZXphZG8gXCJCYW5uZXIgcHJvdmlzaW9uYWxcIiBwYXJhIHF1ZSBlbCBiYW5uZXJcbiAgIHF1ZWRlIHZpc3VhbG1lbnRlIGNvbW8gZWwgYmxvcXVlIHByb21vY2lvbmFsIGRlIE1lcmNhZG8gTGlicmUuICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iYW5uZXJzIC5wcmluY2lwYWwtc2VjdGlvbl9faGVhZGluZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogQ29udGVuZWRvcmVzIGNvbWVyY2lhbGVzICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iYW5uZXJzID4gLmNvbnRhaW5lcixcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyA+IC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTcwMHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCQU5ORVJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNTAwcHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDUwMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogLTEwMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogLTIwcHggISBpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLmNhcm91c2VsLWlubmVyLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5jYXJvdXNlbC1pdGVtIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAucHJpbmNpcGFsLXByb21vLWJhbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgIGhlaWdodDogNTAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMzhweCA3MnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMzhiNjg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLyogQ2FwYSBzdWF2ZSBwYXJhIGNvbnNlcnZhciBsZWdpYmlsaWRhZCBzaW4gZWwgYXNwZWN0byBkZSB0YXJqZXRhICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLnByaW5jaXBhbC1wcm9tby1iYW5uZXI6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICByZ2JhKDAsIDExOCwgNzUsIC43MikgMCUsXG4gICAgICAgIHJnYmEoMCwgMTE4LCA3NSwgLjM0KSA0OCUsXG4gICAgICAgIHJnYmEoMCwgMTE4LCA3NSwgLjA2KSAxMDAlXG4gICAgKTtcbn1cblxuLyogRWwgY29udGVuaWRvIHF1ZWRhIGVuY2ltYSBkZSBsYSBjYXBhICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLnByaW5jaXBhbC1wcm9tby1iYW5uZXIgPiAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5wcmluY2lwYWwtcHJvbW8tYmFubmVyID4gc3BhbiB7XG4gICAgbWFyZ2luOiAwIDAgN3B4O1xuICAgIHBhZGRpbmc6IDVweCAxMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogI2YzNmMzZDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5wcmluY2lwYWwtcHJvbW8tYmFubmVyIGgyLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5wcmluY2lwYWwtcHJvbW8tYmFubmVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCA3cHg7XG4gICAgbWF4LXdpZHRoOiA2MjBweDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgMy4ycmVtKTtcbiAgICBsaW5lLWhlaWdodDogLjk4O1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0uMDM1ZW07XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xMik7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAucHJpbmNpcGFsLXByb21vLWJhbm5lciBwIHtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICAgIG1heC13aWR0aDogNTYwcHg7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAucHJpbmNpcGFsLXByb21vLWJhbm5lciAuYnRuIHtcbiAgICBtaW4taGVpZ2h0OiA0MnB4O1xuICAgIHBhZGRpbmc6IDEwcHggMjRweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMjJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMjIyMjIyO1xuICAgIGZvbnQtc2l6ZTogLjk1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5wcmluY2lwYWwtcHJvbW8tYmFubmVyIC5idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgY29sb3I6ICMyMjIyMjI7XG59XG5cbi8qIEZsZWNoYXMgY29tbyBsYXMgZGVsIGNhcnJ1c2VsIGRlIGxhIHJlZmVyZW5jaWEgKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1wcmV2LFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5jYXJvdXNlbC1jb250cm9sLW5leHQge1xuICAgIHRvcDogNTAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB3aWR0aDogNTJweDtcbiAgICBoZWlnaHQ6IDUycHg7XG4gICAgbWFyZ2luLXRvcDogLTI2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLDAsMCwuMTIpO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wtcHJldiB7XG4gICAgbGVmdDogLTI2cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1uZXh0IHtcbiAgICByaWdodDogLTI2cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24sXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uIHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgZmlsdGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMThweCAxOHB4O1xufVxuXG4vKiBJbmRpY2Fkb3JlcyBwZXF1ZcOxb3MsIGFiYWpvIGFsIGNlbnRybyAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgICBib3R0b206IDE1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBnYXA6IDRweDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5jYXJvdXNlbC1pbmRpY2F0b3JzIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDZweDtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAuODtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5jYXJvdXNlbC1pbmRpY2F0b3JzIC5hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBST0RVQ1RPUyDigJQgRVNUSUxPIE1MXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLWNhdGFsb2cge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICAvKmJhY2tncm91bmQ6ICNlYmViZWI7Ki9cbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtY2F0ZWdvcnktdmlldyB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1jYXRlZ29yeS12aWV3X19oZWFkIHtcbiAgICBtYXJnaW46IDAgMCAxNHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtY2F0ZWdvcnktdmlld19faGVhZCBoMyB7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgZm9udC1zaXplOiAxLjU1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtY2F0ZWdvcnktdmlld19fY291bnQge1xuICAgIGNvbG9yOiAjNjY2NjY2O1xufVxuXG4vKiBDaW5jbyBwcm9kdWN0b3MgcG9yIGZpbGEgY29tbyBlbiBsYSByZWZlcmVuY2lhICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1jYXRlZ29yeS1wcm9kdWN0cyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4vKiBFbCBsw61taXRlIGFjdHVhbCBkZSAyMjBweCBpbXBlZGlyw61hIHF1ZSBsYXMgdGFyamV0YXMgb2N1cGVuXG4gICBjb3JyZWN0YW1lbnRlIGVsIGFuY2hvIGRpc3BvbmlibGUuICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1jYXRlZ29yeS1wcm9kdWN0cyAucHJpbmNpcGFsLXByb2R1Y3QtY2FyZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLyogVGFyamV0YSBibGFuY2EsIHBsYW5hIHkgY29tcGFjdGEgKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZSB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwwLDAsLjEyKTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDE2MG1zIGVhc2UsIHRyYW5zZm9ybSAxNjBtcyBlYXNlO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGU6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLDAsMCwuMTYpO1xufVxuXG4vKiDDgXJlYSBkZSBmb3RvZ3JhZsOtYSAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19pbWFnZS13cmFwIHtcbiAgICBoZWlnaHQ6IDE4NXB4O1xuICAgIG1pbi1oZWlnaHQ6IDE4NXB4O1xuICAgIGFzcGVjdC1yYXRpbzogYXV0bztcbiAgICBwYWRkaW5nOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9faW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBDdWVycG8gZGUgcHJvZHVjdG8gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fYm9keSB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDExcHggMTNweCAxNHB4O1xuICAgIGdhcDogNXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5cbi8qIEluc2lnbmlhcyAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19zaWduYWxzIHtcbiAgICBwYWRkaW5nOiA4cHggMTNweCAwO1xuICAgIGdhcDogNXB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2JhZGdlIHtcbiAgICBtaW4taGVpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IDNweCA3cHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6ICNmZmU2MDA7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgZm9udC1zaXplOiAuNjByZW07XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKiBUw610dWxvICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX29wZW4ge1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtc2l6ZTogLjg4cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fb3Blbjpob3ZlciB7XG4gICAgY29sb3I6ICMzNDgzZmE7XG59XG5cbi8qIERlc2NyaXBjacOzbiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbiB7XG4gICAgLyogRGVzY3JpcGNpw7NuIGNvbXBsZXRhIHRhbWJpw6luIGVuIGxvcyBwcm9kdWN0b3MgZGVzdGFjYWRvcyBkZWwgaW5pY2lvLiAqL1xuICAgIGNvbG9yOiAjNjY2NjY2O1xuICAgIGZvbnQtc2l6ZTogLjcycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xufVxuXG4vKiBBdHJpYnV0b3MgKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fYXR0cmlidXRlcyB7XG4gICAgZ2FwOiA0cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fYXR0cmlidXRlcyBzcGFuIHtcbiAgICBtaW4taGVpZ2h0OiAxOHB4O1xuICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgY29sb3I6ICM2NjY2NjY7XG4gICAgZm9udC1zaXplOiAuNjByZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLyogUHJlY2lvOiBqZXJhcnF1w61hIHTDrXBpY2EgZGUgbWFya2V0cGxhY2UgKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fcHJpY2luZyB7XG4gICAgZ2FwOiAycHg7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIHBhZGRpbmc6IDRweCAwIDA7XG59XG5cbi8qIEV0aXF1ZXRhIGRlIGRlc2N1ZW50byBkZSBsb3MgcHJvZHVjdG9zIGRlc3RhY2Fkb3MuICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX29mZiB7XG4gICAgbWluLWhlaWdodDogMThweDtcbiAgICBwYWRkaW5nOiAycHggNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiAjZTZmN2VlO1xuICAgIGNvbG9yOiAjMDBhNjUwO1xuICAgIGZvbnQtc2l6ZTogLjYwcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fcHJpY2UtYmxvY2sge1xuICAgIGdhcDogMnB4O1xufVxuXG4vKiBQcmVjaW8gYW50ZXJpb3IgZW4gbG9zIHByb2R1Y3RvcyBkZXN0YWNhZG9zLiAqL1xuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19wcmljZS1ibG9jayBkZWwge1xuICAgIGNvbG9yOiAjOTk5OTk5O1xuICAgIGZvbnQtc2l6ZTogLjY4cmVtO1xufVxuXG4vKiBNb25lZGEgbyBiYW5jbyBlbiBsb3MgcHJvZHVjdG9zIGRlc3RhY2Fkb3MuICovXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX3ByaWNlLWJhbmsge1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtc2l6ZTogMS4xNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICBsZXR0ZXItc3BhY2luZzogLS4wMWVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi8qIFByZWNpbyB2aXNpYmxlIGVuIGxvcyBwcm9kdWN0b3MgZGVzdGFjYWRvcy4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fcHJpY2UtdmFsdWUge1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS4xOHJlbSwgMS44dncsIDEuNDhyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qIERpc3BvbmliaWxpZGFkIG8gZGV0YWxsZSBwcm9tb2Npb25hbCBkZSBwcm9kdWN0b3MgZGVzdGFjYWRvcy4gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fcHJpY2UtYmxvY2sgc21hbGwge1xuICAgIGNvbG9yOiAjMDBhNjUwO1xuICAgIGZvbnQtc2l6ZTogLjcwcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi8qIENhbGlmaWNhY2nDs24gKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fcmF0aW5nLXdyYXAge1xuICAgIGdhcDogNHB4O1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fc3RhcnMge1xuICAgIGdhcDogMnB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX3N0YXIge1xuICAgIGNvbG9yOiAjZDlkOWQ5O1xuICAgIGZvbnQtc2l6ZTogLjcycmVtO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX3N0YXIuaXMtYWN0aXZlIHtcbiAgICBjb2xvcjogIzM0ODNmYTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19zdGFycy1tZXRhIHtcbiAgICBtaW4taGVpZ2h0OiAxOHB4O1xuICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgY29sb3I6ICM2NjY2NjY7XG4gICAgZm9udC1zaXplOiAuNjJyZW07XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fcmF0aW5nLW1ldGEge1xuICAgIGNvbG9yOiAjOTk5OTk5O1xuICAgIGZvbnQtc2l6ZTogLjYycmVtO1xufVxuXG4vKiBQaWUgKi9cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fZm9vdGVyIHtcbiAgICBnYXA6IDRweDtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9fZm9vdGVyIHNwYW4ge1xuICAgIG1pbi1oZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMnB4IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgICBjb2xvcjogIzY2NjY2NjtcbiAgICBmb250LXNpemU6IC42MHJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1wcm9kdWN0LXRpbGVfX2Zvb3RlciBpIHtcbiAgICBjb2xvcjogIzAwYTY1MDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUkVTUE9OU0lWRVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OS45OHB4KSB7XG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtY2F0ZWdvcnktcHJvZHVjdHMge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLnByaW5jaXBhbC1wcm9tby1iYW5uZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiAyNTBweDtcbiAgICAgICAgaGVpZ2h0OiAyNTBweDtcbiAgICAgICAgcGFkZGluZzogMzJweCA0OHB4O1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLWNhdGVnb3J5LXByb2R1Y3RzIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1ob21lLWJlc3Qtc2VsbGVycyAucHJpbmNpcGFsLXByb2R1Y3QtdGlsZV9faW1hZ2Utd3JhcCB7XG4gICAgICAgIGhlaWdodDogMTcwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE3MHB4O1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5wcmluY2lwYWwtcHJvbW8tYmFubmVyIHtcbiAgICAgICAgbWluLWhlaWdodDogMjIwcHg7XG4gICAgICAgIGhlaWdodDogMjIwcHg7XG4gICAgICAgIHBhZGRpbmc6IDI4cHggMzBweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLnByaW5jaXBhbC1wcm9tby1iYW5uZXIgaDIsXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5wcmluY2lwYWwtcHJvbW8tYmFubmVyIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1wcmV2IHtcbiAgICAgICAgbGVmdDogOHB4O1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDhweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMgLnByaW5jaXBhbC1jYXRlZ29yeS1wcm9kdWN0cyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmFubmVycyxcbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iZXN0LXNlbGxlcnMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5wcmluY2lwYWwtcHJvbW8tYmFubmVyIHtcbiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMjJweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLnByaW5jaXBhbC1wcm9tby1iYW5uZXIgPiBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAuNjhyZW07XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5wcmluY2lwYWwtcHJvbW8tYmFubmVyIGgyLFxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAucHJpbmNpcGFsLXByb21vLWJhbm5lciBoMyB7XG4gICAgICAgIG1heC13aWR0aDogNzUlO1xuICAgICAgICBmb250LXNpemU6IDEuNjVyZW07XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5wcmluY2lwYWwtcHJvbW8tYmFubmVyIHAge1xuICAgICAgICBtYXgtd2lkdGg6IDcwJTtcbiAgICAgICAgZm9udC1zaXplOiAuNzhyZW07XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtY2F0ZWdvcnktcHJvZHVjdHMge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgfVxuXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmVzdC1zZWxsZXJzIC5wcmluY2lwYWwtcHJvZHVjdC10aWxlX19pbWFnZS13cmFwIHtcbiAgICAgICAgaGVpZ2h0OiAxNDVweDtcbiAgICAgICAgbWluLWhlaWdodDogMTQ1cHg7XG4gICAgICAgIHBhZGRpbmc6IDlweDtcbiAgICB9XG59XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBBSlVTVEVTIERFTCBCQU5ORVIgUFJJTkNJUEFMXG4gICAtIE9jdXBhIHByw6FjdGljYW1lbnRlIHRvZG8gZWwgYW5jaG8gZGlzcG9uaWJsZS5cbiAgIC0gTWFudGllbmUgZWwgYmFubmVyIHBlZ2FkbyBhIGxvcyBsYXRlcmFsZXMgZGUgbGEgdmVudGFuYS5cbiAgIC0gRmxlY2hhcyB2aXNpYmxlcyBkZW50cm8gZGUgY8OtcmN1bG9zIGJsYW5jb3MuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmFubmVycyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iYW5uZXJzID4gLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLWhvbWUtYmFubmVycyAuZGMtaG9tZS1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtaG9tZS1iYW5uZXJzIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwge1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDUwJSAtIDUwdncpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYyg1MCUgLSA1MHZ3KTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5jYXJvdXNlbC1jb250cm9sLXByZXYsXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gICAgei1pbmRleDogNTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBtYXJnaW4tdG9wOiAtMjRweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIC4xOCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xNXMgZWFzZSwgYm94LXNoYWRvdyAuMTVzIGVhc2U7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1wcmV2IHtcbiAgICBsZWZ0OiAxOHB4O1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gICAgcmlnaHQ6IDE4cHg7XG59XG5cbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1wcmV2OmhvdmVyLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5jYXJvdXNlbC1jb250cm9sLW5leHQ6aG92ZXIge1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA0KTtcbiAgICBib3gtc2hhZG93OiAwIDNweCAxMHB4IHJnYmEoMCwgMCwgMCwgLjIyKTtcbn1cblxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5jYXJvdXNlbC1jb250cm9sLXByZXYgaSxcbmJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1uZXh0IGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xufVxuXG5ib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29uLFxuYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5jYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wtcHJldixcbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gICAgICAgIHdpZHRoOiA0MnB4O1xuICAgICAgICBoZWlnaHQ6IDQycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0yMXB4O1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1wcmV2IHtcbiAgICAgICAgbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICBib2R5LnByaW5jaXBhbC1wYWdlIC5wcmluY2lwYWwtcHJvbW8tY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgIH1cblxuICAgIGJvZHkucHJpbmNpcGFsLXBhZ2UgLnByaW5jaXBhbC1wcm9tby1jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1wcmV2IGksXG4gICAgYm9keS5wcmluY2lwYWwtcGFnZSAucHJpbmNpcGFsLXByb21vLWNhcm91c2VsIC5jYXJvdXNlbC1jb250cm9sLW5leHQgaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgICB9XG59XG4iLCIvKipcbiogVGVtcGxhdGUgTmFtZTogTmljZUFkbWluIC0gdjIuNS4wXG4qIFRlbXBsYXRlIFVSTDogaHR0cHM6Ly9ib290c3RyYXBtYWRlLmNvbS9uaWNlLWFkbWluLWJvb3RzdHJhcC1hZG1pbi1odG1sLXRlbXBsYXRlL1xuKiBBdXRob3I6IEJvb3RzdHJhcE1hZGUuY29tXG4qIExpY2Vuc2U6IGh0dHBzOi8vYm9vdHN0cmFwbWFkZS5jb20vbGljZW5zZS9cbiovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgR2VuZXJhbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuI3VpLWlkLTEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuXG46cm9vdCB7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbmJvZHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICAgIGJhY2tncm91bmQ6ICNmNmY5ZmY7XG4gICAgY29sb3I6ICM0NDQ0NDQ7XG59XG5cbmEge1xuICAgIGNvbG9yOiAjNDE1NGYxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuYTpob3ZlciB7XG4gICAgY29sb3I6ICM3MTdmZjU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICAgIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE1haW5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiNtYWluIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgcGFkZGluZzogMjBweCAzMHB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgI21haW4ge1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBQYWdlIFRpdGxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ucGFnZXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ucGFnZXRpdGxlIGgxIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMDEyOTcwO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEJhY2sgdG8gdG9wIGJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJhY2stdG8tdG9wIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgYm90dG9tOiAxNXB4O1xuICAgIHotaW5kZXg6IDk5OTk5O1xuICAgIGJhY2tncm91bmQ6ICM0MTU0ZjE7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cztcbn1cblxuLmJhY2stdG8tdG9wIGkge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBsaW5lLWhlaWdodDogMDtcbn1cblxuLmJhY2stdG8tdG9wOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNjc3NmY0O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uYmFjay10by10b3AuYWN0aXZlIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgT3ZlcnJpZGUgc29tZSBkZWZhdWx0IEJvb3RzdHJhcCBzdHlsaW5nc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRHJvcGRvd24gbWVudXMgKi9cbi5kcm9wZG93bi1tZW51IHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGRyb3Bkb3duLWFuaW1hdGU7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGRyb3Bkb3duLWFuaW1hdGU7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuMnM7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2hhZG93OiAwIDVweCAzMHB4IDAgcmdiYSg4MiwgNjMsIDEwNSwgMC4yKTtcbn1cblxuLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWhlYWRlcixcbi5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1mb290ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgcGFkZGluZzogMTBweCAyNXB4O1xufVxuXG4uZHJvcGRvd24tbWVudSAuZHJvcGRvd24tZm9vdGVyIGEge1xuICAgIGNvbG9yOiAjNDQ0NDQ0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uZHJvcGRvd24tbWVudSAuZHJvcGRvd24tZm9vdGVyIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWRpdmlkZXIge1xuICAgIGNvbG9yOiAjYTVjNWZlO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbn1cblxuLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0gaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMDtcbn1cblxuLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY5ZmY7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5kcm9wZG93bi1tZW51LWFycm93OjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTdweDtcbiAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlYWVkZjE7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2VhZWRmMTtcbiAgICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBkcm9wZG93bi1hbmltYXRlIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBkcm9wZG93bi1hbmltYXRlIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuLyogTGlnaHQgQmFja2dyb3VuZHMgKi9cbi5iZy1wcmltYXJ5LWxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZlMmZmO1xuICAgIGJvcmRlci1jb2xvcjogI2NmZTJmZjtcbn1cblxuLmJnLXNlY29uZGFyeS1saWdodCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTNlNTtcbiAgICBib3JkZXItY29sb3I6ICNlMmUzZTU7XG59XG5cbi5iZy1zdWNjZXNzLWxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFlN2RkO1xuICAgIGJvcmRlci1jb2xvcjogI2QxZTdkZDtcbn1cblxuLmJnLWRhbmdlci1saWdodCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZDdkYTtcbiAgICBib3JkZXItY29sb3I6ICNmOGQ3ZGE7XG59XG5cbi5iZy13YXJuaW5nLWxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmM2NkO1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZjNjZDtcbn1cblxuLmJnLWluZm8tbGlnaHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjZmY0ZmM7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2ZmNGZjO1xufVxuXG4uYmctZGFyay1saWdodCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2QzZDNkNDtcbiAgICBib3JkZXItY29sb3I6ICNkM2QzZDQ7XG59XG5cbi8qIENhcmQgKi9cbi5jYXJkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIC8qYm9yZGVyOiBub25lOyovXG4gICAgLypib3JkZXItcmFkaXVzOiA1cHg7Ki9cbiAgICAvKmJveC1zaGFkb3c6IDBweCAwIDMwcHggcmdiYSgxLCA0MSwgMTEyLCAwLjEpOyovXG59XG5cbi8qLmNhcmQtaGVhZGVyLCovXG4uY2FyZC1mb290ZXIge1xuICAgIGJvcmRlci1jb2xvcjogI2ViZWVmNDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGNvbG9yOiAjNzk4ZWIzO1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG5cbi5jYXJkLXRpdGxlIHtcbiAgICBwYWRkaW5nOiAyMHB4IDAgMTVweCAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIC8qY29sb3I6ICMwMTI5NzA7Ki9cbiAgICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5jYXJkLXRpdGxlIHNwYW4ge1xuICAgIGNvbG9yOiAjODk5YmJkO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uY2FyZC1ib2R5IHtcbiAgICBwYWRkaW5nOiAwIDIwcHggMjBweCAyMHB4O1xufVxuXG4uY2FyZC1pbWctb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xufVxuXG4vKiBBbGVydHMgKi9cbi5hbGVydC1oZWFkaW5nIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDIwcHg7XG59XG5cbi8qIENsb3NlIEJ1dHRvbiAqL1xuLmJ0bi1jbG9zZSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyNSU7XG59XG5cbi5idG4tY2xvc2U6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyogQWNjb3JkaW9uICovXG4uYWNjb3JkaW9uLWl0ZW0ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlYmVlZjQ7XG59XG5cbi5hY2NvcmRpb24tYnV0dG9uOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5hY2NvcmRpb24tYnV0dG9uOm5vdCguY29sbGFwc2VkKSB7XG4gICAgY29sb3I6ICMwMTI5NzA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjlmZjtcbn1cblxuLmFjY29yZGlvbi1mbHVzaCAuYWNjb3JkaW9uLWJ1dHRvbiB7XG4gICAgcGFkZGluZzogMTVweCAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4uYWNjb3JkaW9uLWZsdXNoIC5hY2NvcmRpb24tYnV0dG9uOm5vdCguY29sbGFwc2VkKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogIzQxNTRmMTtcbn1cblxuLmFjY29yZGlvbi1mbHVzaCAuYWNjb3JkaW9uLWJvZHkge1xuICAgIHBhZGRpbmc6IDAgMCAxNXB4IDA7XG4gICAgY29sb3I6ICMzZTRmNmY7XG4gICAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4vKiBCcmVhZGNydW1icyAqL1xuLmJyZWFkY3J1bWIge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogIzg5OWJiZDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uYnJlYWRjcnVtYiBhIHtcbiAgICBjb2xvcjogIzg5OWJiZDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xufVxuXG4uYnJlYWRjcnVtYiBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzUxNjc4Zjtcbn1cblxuLmJyZWFkY3J1bWIgLmJyZWFkY3J1bWItaXRlbTo6YmVmb3JlIHtcbiAgICBjb2xvcjogIzg5OWJiZDtcbn1cblxuLmJyZWFkY3J1bWIgLmFjdGl2ZSB7XG4gICAgY29sb3I6ICM1MTY3OGY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLyogQm9yZGVyZWQgVGFicyAqL1xuLm5hdi10YWJzLWJvcmRlcmVkIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ViZWVmNDtcbn1cblxuLm5hdi10YWJzLWJvcmRlcmVkIC5uYXYtbGluayB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICMyYzM4NGU7XG59XG5cbi5uYXYtdGFicy1ib3JkZXJlZCAubmF2LWxpbms6aG92ZXIsXG4ubmF2LXRhYnMtYm9yZGVyZWQgLm5hdi1saW5rOmZvY3VzIHtcbiAgICBjb2xvcjogIzQxNTRmMTtcbn1cblxuLm5hdi10YWJzLWJvcmRlcmVkIC5uYXYtbGluay5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY29sb3I6ICM0MTU0ZjE7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM0MTU0ZjE7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ubG9nbyB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAubG9nbyB7XG4gICAgICAgIHdpZHRoOiAyODBweDtcbiAgICB9XG59XG5cbi5sb2dvIGltZyB7XG4gICAgbWF4LWhlaWdodDogNTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbn1cblxuLmxvZ28gc3BhbiB7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMwMDA7IC8qIFRleHRvIG5lZ3JvIHBhcmEgZWwgbG9nbyAqL1xuICAgIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmO1xufVxuXG4uaGVhZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgICB6LWluZGV4OiA5OTc7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGJveC1zaGFkb3c6IDBweCAycHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRlOGUzNzsgLyogVmVyZGUgb3NjdXJvIHByb2Zlc2lvbmFsICovXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuXG4uaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4ge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMDAwOyAvKiBJY29ubyBuZWdybyAqL1xufVxuXG4uaGVhZGVyIC5zZWFyY2gtYmFyIHtcbiAgICBtaW4td2lkdGg6IDM2MHB4O1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAjNGU4ZTM3OyAvKiBWZXJkZSBtdXkgY2xhcm8gcGFyYSBsYSBiYXJyYSBkZSBiw7pzcXVlZGEgKi9cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5oZWFkZXIgLnNlYXJjaC1iYXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogNTBweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMTVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOyAvKiBGb25kbyBibGFuY28gY3VhbmRvIGVzdMOhIHZpc2libGUgKi9cbiAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIC5oZWFkZXIgLnNlYXJjaC1iYXItc2hvdyB7XG4gICAgICAgIHRvcDogNjBweDtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi5oZWFkZXIgLnNlYXJjaC1mb3JtIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmhlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTsgLyogQm9yZGUgbmVncm8gY2xhcm8gKi9cbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICMwNDA0MDQ7IC8qIFRleHRvIGdyaXMgb3NjdXJvIGVuIGVsIGlucHV0ICovXG4gICAgcGFkZGluZzogN3B4IDM4cHggN3B4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmhlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQ6Zm9jdXMsXG4uaGVhZGVyIC5zZWFyY2gtZm9ybSBpbnB1dDpob3ZlciB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7IC8qIFNvbWJyYSBuZWdyYSBjbGFyYSAqL1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4zKTsgLyogQm9yZGUgbmVncm8gY2xhcm8gKi9cbn1cblxuLmhlYWRlciAuc2VhcmNoLWZvcm0gYnV0dG9uIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogLTMwcHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuLmhlYWRlciAuc2VhcmNoLWZvcm0gYnV0dG9uIGkge1xuICAgIGNvbG9yOiAjMzMzOyAvKiBJY29ubyBncmlzIG9zY3VybyAqL1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgSGVhZGVyIE5hdlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmhlYWRlci1uYXYgdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5oZWFkZXItbmF2ID4gdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LWljb24ge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBjb2xvcjogIzMzMzsgLyogR3JpcyBvc2N1cm8gKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDI1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUge1xuICAgIGNvbG9yOiAjMDQwNDA0OyAvKiBHcmlzIG9zY3VybyAqL1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgaW1nIHtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgc3BhbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5oZWFkZXItbmF2IC5iYWRnZS1udW1iZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogLTJweCAtNXB4IGF1dG8gYXV0bztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAzcHggNnB4O1xufVxuXG4uaGVhZGVyLW5hdiAubm90aWZpY2F0aW9ucyB7XG4gICAgaW5zZXQ6IDhweCAtMTVweCBhdXRvIGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLm5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbi1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTVweCAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IC8qIEZvbmRvIGdyaXMgbXV5IGNsYXJvICovXG4gICAgdHJhbnNpdGlvbjogMC4zcztcbn1cblxuLmhlYWRlci1uYXYgLm5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbi1pdGVtIGkge1xuICAgIG1hcmdpbjogMCAyMHB4IDAgMTBweDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgY29sb3I6ICMzMzM7IC8qIEdyaXMgb3NjdXJvICovXG59XG5cbi5oZWFkZXItbmF2IC5ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24taXRlbSBoNCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGNvbG9yOiAjMzMzOyAvKiBHcmlzIG9zY3VybyAqL1xufVxuXG4uaGVhZGVyLW5hdiAubm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLWl0ZW0gcCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICBjb2xvcjogIzY2NjsgLyogR3JpcyBtZWRpbyAqL1xufVxuXG4uaGVhZGVyLW5hdiAubm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYWVhZWE7IC8qIEdyaXMgY2xhcm8gKi9cbn1cblxuLmhlYWRlci1uYXYgLm1lc3NhZ2VzIHtcbiAgICBpbnNldDogOHB4IC0xNXB4IGF1dG8gYXV0byAhaW1wb3J0YW50O1xufVxuXG4uaGVhZGVyLW5hdiAubWVzc2FnZXMgLm1lc3NhZ2UtaXRlbSB7XG4gICAgcGFkZGluZzogMTVweCAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IC8qIEZvbmRvIGdyaXMgbXV5IGNsYXJvICovXG4gICAgdHJhbnNpdGlvbjogMC4zcztcbn1cblxuLmhlYWRlci1uYXYgLm1lc3NhZ2VzIC5tZXNzYWdlLWl0ZW0gYSB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmhlYWRlci1uYXYgLm1lc3NhZ2VzIC5tZXNzYWdlLWl0ZW0gaW1nIHtcbiAgICBtYXJnaW46IDAgMjBweCAwIDEwcHg7XG4gICAgbWF4LWhlaWdodDogNDBweDtcbn1cblxuLmhlYWRlci1uYXYgLm1lc3NhZ2VzIC5tZXNzYWdlLWl0ZW0gaDQge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBjb2xvcjogIzMzMzsgLyogR3JpcyBvc2N1cm8gKi9cbn1cblxuLmhlYWRlci1uYXYgLm1lc3NhZ2VzIC5tZXNzYWdlLWl0ZW0gcCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICBjb2xvcjogIzY2NjsgLyogR3JpcyBtZWRpbyAqL1xufVxuXG4uaGVhZGVyLW5hdiAubWVzc2FnZXMgLm1lc3NhZ2UtaXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VhZWFlYTsgLyogR3JpcyBjbGFybyAqL1xufVxuXG4uaGVhZGVyLW5hdiAucHJvZmlsZSB7XG4gICAgbWluLXdpZHRoOiAyNDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4uaGVhZGVyLW5hdiAucHJvZmlsZSAuZHJvcGRvd24taGVhZGVyIGg2IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMzMzOyAvKiBHcmlzIG9zY3VybyAqL1xufVxuXG4uaGVhZGVyLW5hdiAucHJvZmlsZSAuZHJvcGRvd24taGVhZGVyIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmhlYWRlci1uYXYgLnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTsgLyogRm9uZG8gZ3JpcyBtdXkgY2xhcm8gKi9cbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xufVxuXG4uaGVhZGVyLW5hdiAucHJvZmlsZSAuZHJvcGRvd24taXRlbSBpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGNvbG9yOiAjMzMzOyAvKiBHcmlzIG9zY3VybyAqL1xufVxuXG4uaGVhZGVyLW5hdiAucHJvZmlsZSAuZHJvcGRvd24taXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VhZWFlYTsgLyogR3JpcyBjbGFybyAqL1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgU2lkZWJhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnNpZGViYXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDYwcHg7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIHotaW5kZXg6IDk5NjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgIHNjcm9sbGJhci1jb2xvcjogIzRiOGEyZSB0cmFuc3BhcmVudDsgLyogVmVyZGUgb3NjdXJvIHBhcmEgZWwgc2Nyb2xsYmFyICovXG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC40KTsgLyogU29tYnJhIG5lZ3JhIG3DoXMgcHJvbnVuY2lhZGEgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVmMmU1OyAvKiBWZXJkZSBtdXkgY2xhcm8gKi9cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5zaWRlYmFyIHtcbiAgICAgICAgbGVmdDogLTMwMHB4OyAvKiBPY3VsdGEgbGEgYmFycmEgbGF0ZXJhbCBlbiBwYW50YWxsYXMgcGVxdWXDsWFzICovXG4gICAgfVxufVxuXG4uc2lkZWJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA1cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZjJlNTsgLyogVmVyZGUgbXV5IGNsYXJvIHBhcmEgZWwgZm9uZG8gZGVsIHNjcm9sbGJhciAqL1xufVxuXG4uc2lkZWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0YjhhMmU7IC8qIFZlcmRlIG9zY3VybyBwYXJhIGVsIHB1bGdhciBkZWwgc2Nyb2xsYmFyICovXG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAjbWFpbixcbiAgICAjZm9vdGVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwMHB4OyAvKiBBanVzdGEgZWwgbWFyZ2VuIGRlbCBjb250ZW5pZG8gcHJpbmNpcGFsIHBhcmEgaGFjZXIgZXNwYWNpbyBwYXJhIGxhIGJhcnJhIGxhdGVyYWwgKi9cbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAudG9nZ2xlLXNpZGViYXIgLnNpZGViYXIge1xuICAgICAgICBsZWZ0OiAwOyAvKiBNdWVzdHJhIGxhIGJhcnJhIGxhdGVyYWwgZW4gcGFudGFsbGFzIHBlcXVlw7FhcyBjdWFuZG8gc2UgYWN0aXZhIGVsIHRvZ2dsZSAqL1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC50b2dnbGUtc2lkZWJhciAjbWFpbixcbiAgICAudG9nZ2xlLXNpZGViYXIgI2Zvb3RlciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyAvKiBSZXN0YWJsZWNlIGVsIG1hcmdlbiBjdWFuZG8gc2Ugb2N1bHRhIGxhIGJhcnJhIGxhdGVyYWwgKi9cbiAgICB9XG5cbiAgICAudG9nZ2xlLXNpZGViYXIgLnNpZGViYXIge1xuICAgICAgICBsZWZ0OiAtMzAwcHg7IC8qIE9jdWx0YSBsYSBiYXJyYSBsYXRlcmFsIGN1YW5kbyBzZSBhY3RpdmEgZWwgdG9nZ2xlIGVuIHBhbnRhbGxhcyBncmFuZGVzICovXG4gICAgfVxufVxuXG4vKiBTaWRlYmFyIE5hdmlnYXRpb24gKi9cbi5zaWRlYmFyLW5hdiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLnNpZGViYXItbmF2IGxpIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7IC8qIEVzcGFjaW8gZW50cmUgbG9zIMOtdGVtcyBkZSBuYXZlZ2FjacOzbiAqL1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1oZWFkaW5nIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzMzMzsgLyogR3JpcyBvc2N1cm8gKi9cbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWxpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgY29sb3I6ICMyYzZiMmY7IC8qIFZlcmRlIG9zY3VybyBwYXJhIHRleHRvIGRlIGVubGFjZXMgKi9cbiAgICBiYWNrZ3JvdW5kOiAjZDZmMGQ2OyAvKiBWZXJkZSBtdXkgY2xhcm8gcGFyYSBlbCBmb25kbyBkZSBlbmxhY2VzICovXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rIGkge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgY29sb3I6ICM0YjhhMmU7IC8qIFZlcmRlIG9zY3VybyBwYXJhIGxvcyDDrWNvbm9zICovXG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjMWExYTFhOyAvKiBHcmlzIG9zY3VybyBwYXJhIGVsIHRleHRvIGRlIGVubGFjZXMgYWwgcGFzYXIgZWwgbW91c2UgKi9cbiAgICBiYWNrZ3JvdW5kOiAjZDZmMGQ2OyAvKiBWZXJkZSBtdXkgY2xhcm8gcGFyYSBlbCBmb25kbyBkZSBlbmxhY2VzIGFsIHBhc2FyIGVsIG1vdXNlICovXG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIGNvbG9yOiAjMmM2YjJmOyAvKiBWZXJkZSBvc2N1cm8gcGFyYSB0ZXh0byBkZSBlbmxhY2VzIGVuIGNvbnRlbmlkbyBkZSBuYXZlZ2FjacOzbiAqL1xuICAgIGJhY2tncm91bmQ6ICNlNWYyZTU7IC8qIFZlcmRlIG11eSBjbGFybyBwYXJhIGVsIGZvbmRvIGRlIGVubGFjZXMgZW4gY29udGVuaWRvIGRlIG5hdmVnYWNpw7NuICovXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhIGkge1xuICAgIGZvbnQtc2l6ZTogNnB4O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIsXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlIHtcbiAgICBjb2xvcjogIzFhMWExYTsgLyogR3JpcyBvc2N1cm8gcGFyYSB0ZXh0byBkZSBlbmxhY2VzIGFjdGl2b3MgeSBhbCBwYXNhciBlbCBtb3VzZSAqL1xuICAgIGJhY2tncm91bmQ6ICNkNmYwZDY7IC8qIFZlcmRlIG11eSBjbGFybyBwYXJhIGVsIGZvbmRvIGRlIGVubGFjZXMgYWN0aXZvcyB5IGFsIHBhc2FyIGVsIG1vdXNlICovXG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYS5hY3RpdmUgaSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q2ZjBkNjsgLyogVmVyZGUgbXV5IGNsYXJvIHBhcmEgZWwgZm9uZG8gZGUgw61jb25vcyBhY3Rpdm9zICovXG5cbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIERhc2hib2FyZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZGFzaGJvYXJkIC5maWx0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMHB4O1xuICAgIHRvcDogMTVweDtcbn1cblxuLmRhc2hib2FyZCAuZmlsdGVyIC5pY29uIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5kYXNoYm9hcmQgLmZpbHRlciAuaWNvbjpob3Zlcixcbi5kYXNoYm9hcmQgLmZpbHRlciAuaWNvbjpmb2N1cyB7XG4gICAgY29sb3I6ICM0MTU0ZjE7XG59XG5cbi5kYXNoYm9hcmQgLmZpbHRlciAuZHJvcGRvd24taGVhZGVyIHtcbiAgICBwYWRkaW5nOiA4cHggMTVweDtcbn1cblxuLmRhc2hib2FyZCAuZmlsdGVyIC5kcm9wZG93bi1oZWFkZXIgaDYge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICBjb2xvcjogI2FhYjdjZjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5kYXNoYm9hcmQgLmZpbHRlciAuZHJvcGRvd24taXRlbSB7XG4gICAgcGFkZGluZzogOHB4IDE1cHg7XG59XG5cbi8qIEluZm8gQ2FyZHMgKi9cbi5kYXNoYm9hcmQgLmluZm8tY2FyZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbi5kYXNoYm9hcmQgLmluZm8tY2FyZCBoNiB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGNvbG9yOiAjMDEyOTcwO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5kYXNoYm9hcmQgLmNhcmQtaWNvbiB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiA2NHB4O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmbGV4LWdyb3c6IDA7XG59XG5cbi5kYXNoYm9hcmQgLnNhbGVzLWNhcmQgLmNhcmQtaWNvbiB7XG4gICAgY29sb3I6ICM0MTU0ZjE7XG4gICAgYmFja2dyb3VuZDogI2Y2ZjZmZTtcbn1cblxuLmRhc2hib2FyZCAucmV2ZW51ZS1jYXJkIC5jYXJkLWljb24ge1xuICAgIGNvbG9yOiAjMmVjYTZhO1xuICAgIGJhY2tncm91bmQ6ICNlMGY4ZTk7XG59XG5cbi5kYXNoYm9hcmQgLmN1c3RvbWVycy1jYXJkIC5jYXJkLWljb24ge1xuICAgIGNvbG9yOiAjZmY3NzFkO1xuICAgIGJhY2tncm91bmQ6ICNmZmVjZGY7XG59XG5cbi8qIEFjdGl2aXR5ICovXG4uZGFzaGJvYXJkIC5hY3Rpdml0eSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uZGFzaGJvYXJkIC5hY3Rpdml0eSAuYWN0aXZpdHktaXRlbSAuYWN0aXZpdGUtbGFiZWwge1xuICAgIGNvbG9yOiAjODg4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWluLXdpZHRoOiA2NHB4O1xufVxuXG4uZGFzaGJvYXJkIC5hY3Rpdml0eSAuYWN0aXZpdHktaXRlbSAuYWN0aXZpdGUtbGFiZWw6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC0xMXB4O1xuICAgIHdpZHRoOiA0cHg7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZWZlO1xufVxuXG4uZGFzaGJvYXJkIC5hY3Rpdml0eSAuYWN0aXZpdHktaXRlbSAuYWN0aXZpdHktYmFkZ2Uge1xuICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYm9yZGVyOiAzcHggc29saWQgI2ZmZjtcbiAgICBmbGV4LWdyb3c6IDA7XG59XG5cbi5kYXNoYm9hcmQgLmFjdGl2aXR5IC5hY3Rpdml0eS1pdGVtIC5hY3Rpdml0eS1jb250ZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG5cbi5kYXNoYm9hcmQgLmFjdGl2aXR5IC5hY3Rpdml0eS1pdGVtOmZpcnN0LWNoaWxkIC5hY3Rpdml0ZS1sYWJlbDo6YmVmb3JlIHtcbiAgICB0b3A6IDVweDtcbn1cblxuLmRhc2hib2FyZCAuYWN0aXZpdHkgLmFjdGl2aXR5LWl0ZW06bGFzdC1jaGlsZCAuYWN0aXZpdHktY29udGVudCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi8qIE5ld3MgJiBVcGRhdGVzICovXG4uZGFzaGJvYXJkIC5uZXdzIC5wb3N0LWl0ZW0gKyAucG9zdC1pdGVtIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuXG4uZGFzaGJvYXJkIC5uZXdzIGltZyB7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uZGFzaGJvYXJkIC5uZXdzIGg0IHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDk1cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4uZGFzaGJvYXJkIC5uZXdzIGg0IGEge1xuICAgIGNvbG9yOiAjMDEyOTcwO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG59XG5cbi5kYXNoYm9hcmQgLm5ld3MgaDQgYTpob3ZlciB7XG4gICAgY29sb3I6ICM0MTU0ZjE7XG59XG5cbi5kYXNoYm9hcmQgLm5ld3MgcCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjNzc3Nzc3O1xuICAgIG1hcmdpbi1sZWZ0OiA5NXB4O1xufVxuXG4vKiBSZWNlbnQgU2FsZXMgKi9cbi5kYXNoYm9hcmQgLnJlY2VudC1zYWxlcyB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uZGFzaGJvYXJkIC5yZWNlbnQtc2FsZXMgLnRhYmxlIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjZmNmZlO1xufVxuXG4uZGFzaGJvYXJkIC5yZWNlbnQtc2FsZXMgLnRhYmxlIHRoZWFkIHRoIHtcbiAgICBib3JkZXI6IDA7XG59XG5cbi5kYXNoYm9hcmQgLnJlY2VudC1zYWxlcyAuZGF0YVRhYmxlLXRvcCB7XG4gICAgcGFkZGluZzogMCAwIDEwcHggMDtcbn1cblxuLmRhc2hib2FyZCAucmVjZW50LXNhbGVzIC5kYXRhVGFibGUtYm90dG9tIHtcbiAgICBwYWRkaW5nOiAxMHB4IDAgMCAwO1xufVxuXG4vKiBUb3AgU2VsbGluZyAqL1xuLmRhc2hib2FyZCAudG9wLXNlbGxpbmcge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmRhc2hib2FyZCAudG9wLXNlbGxpbmcgLnRhYmxlIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjZmNmZlO1xufVxuXG4uZGFzaGJvYXJkIC50b3Atc2VsbGluZyAudGFibGUgdGhlYWQgdGgge1xuICAgIGJvcmRlcjogMDtcbn1cblxuLmRhc2hib2FyZCAudG9wLXNlbGxpbmcgLnRhYmxlIHRib2R5IHRkIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGFzaGJvYXJkIC50b3Atc2VsbGluZyBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBtYXgtd2lkdGg6IDYwcHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgSWNvbnMgbGlzdCBwYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaWNvbnNsaXN0IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE4MHB4LCAxZnIpKTtcbiAgICBnYXA6IDEuMjVyZW07XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG59XG5cbi5pY29uc2xpc3QgLmljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICMwMTI5NzA7XG4gICAgcGFkZGluZzogMTVweCAwO1xufVxuXG4uaWNvbnNsaXN0IGkge1xuICAgIG1hcmdpbjogMC4yNXJlbTtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbn1cblxuLmljb25zbGlzdCAubGFiZWwge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1icy1mb250LW1vbm9zcGFjZSk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogIzY2Njtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBQcm9maWUgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnByb2ZpbGUgLnByb2ZpbGUtY2FyZCBpbWcge1xuICAgIG1heC13aWR0aDogMTIwcHg7XG59XG5cbi5wcm9maWxlIC5wcm9maWxlLWNhcmQgaDIge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMmMzODRlO1xuICAgIG1hcmdpbjogMTBweCAwIDAgMDtcbn1cblxuLnByb2ZpbGUgLnByb2ZpbGUtY2FyZCBoMyB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4ucHJvZmlsZSAucHJvZmlsZS1jYXJkIC5zb2NpYWwtbGlua3MgYSB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogcmdiYSgxLCA0MSwgMTEyLCAwLjUpO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xufVxuXG4ucHJvZmlsZSAucHJvZmlsZS1jYXJkIC5zb2NpYWwtbGlua3MgYTpob3ZlciB7XG4gICAgY29sb3I6ICMwMTI5NzA7XG59XG5cbi5wcm9maWxlIC5wcm9maWxlLW92ZXJ2aWV3IC5yb3cge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4ucHJvZmlsZSAucHJvZmlsZS1vdmVydmlldyAuY2FyZC10aXRsZSB7XG4gICAgY29sb3I6ICMwMTI5NzA7XG59XG5cbi5wcm9maWxlIC5wcm9maWxlLW92ZXJ2aWV3IC5sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogcmdiYSgxLCA0MSwgMTEyLCAwLjYpO1xufVxuXG4ucHJvZmlsZSAucHJvZmlsZS1lZGl0IGxhYmVsIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiByZ2JhKDEsIDQxLCAxMTIsIDAuNik7XG59XG5cbi5wcm9maWxlIC5wcm9maWxlLWVkaXQgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEyMHB4O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEYuQS5RIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5mYXEgLmJhc2ljIGg2IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzQxNTRmMTtcbn1cblxuLmZhcSAuYmFzaWMgcCB7XG4gICAgY29sb3I6ICM2OTgwYWE7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQ29udGFjdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmNvbnRhY3QgLmluZm8tYm94IHtcbiAgICBwYWRkaW5nOiAyOHB4IDMwcHg7XG59XG5cbi5jb250YWN0IC5pbmZvLWJveCBpIHtcbiAgICBmb250LXNpemU6IDM4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgY29sb3I6ICM0MTU0ZjE7XG59XG5cbi5jb250YWN0IC5pbmZvLWJveCBoMyB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGNvbG9yOiAjMDEyOTcwO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAyMHB4IDAgMTBweCAwO1xufVxuXG4uY29udGFjdCAuaW5mby1ib3ggcCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNvbnRhY3QgLnBocC1lbWFpbC1mb3JtIC5lcnJvci1tZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6ICNlZDNjMGQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmNvbnRhY3QgLnBocC1lbWFpbC1mb3JtIC5zZW50LW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZDogIzE4ZDI2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5jb250YWN0IC5waHAtZW1haWwtZm9ybSAubG9hZGluZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5jb250YWN0IC5waHAtZW1haWwtZm9ybSAubG9hZGluZzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbWFyZ2luOiAwIDEwcHggLTZweCAwO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICMxOGQyNmU7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2VlZTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0ZS1sb2FkaW5nIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICBhbmltYXRpb246IGFuaW1hdGUtbG9hZGluZyAxcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5jb250YWN0IC5waHAtZW1haWwtZm9ybSBpbnB1dCxcbi5jb250YWN0IC5waHAtZW1haWwtZm9ybSB0ZXh0YXJlYSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uY29udGFjdCAucGhwLWVtYWlsLWZvcm0gaW5wdXQ6Zm9jdXMsXG4uY29udGFjdCAucGhwLWVtYWlsLWZvcm0gdGV4dGFyZWE6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzQxNTRmMTtcbn1cblxuLmNvbnRhY3QgLnBocC1lbWFpbC1mb3JtIGlucHV0IHtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG59XG5cbi5jb250YWN0IC5waHAtZW1haWwtZm9ybSB0ZXh0YXJlYSB7XG4gICAgcGFkZGluZzogMTJweCAxNXB4O1xufVxuXG4uY29udGFjdCAucGhwLWVtYWlsLWZvcm0gYnV0dG9uW3R5cGU9c3VibWl0XSB7XG4gICAgYmFja2dyb3VuZDogIzQxNTRmMTtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMTBweCAzMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRyYW5zaXRpb246IDAuNHM7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4uY29udGFjdCAucGhwLWVtYWlsLWZvcm0gYnV0dG9uW3R5cGU9c3VibWl0XTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzU5NjlmMztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGUtbG9hZGluZyB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgYW5pbWF0ZS1sb2FkaW5nIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBFcnJvciA0MDRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5lcnJvci00MDQge1xuICAgIHBhZGRpbmc6IDMwcHg7XG59XG5cbi5lcnJvci00MDQgaDEge1xuICAgIGZvbnQtc2l6ZTogMTgwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzQxNTRmMTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNTBweDtcbn1cblxuLmVycm9yLTQwNCBoMiB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMwMTI5NzA7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLmVycm9yLTQwNCAuYnRuIHtcbiAgICBiYWNrZ3JvdW5kOiAjNTE2NzhmO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDhweCAzMHB4O1xufVxuXG4uZXJyb3ItNDA0IC5idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMzZTRmNmY7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC5lcnJvci00MDQgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEZvb3RlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmZvb3RlciB7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NkZGZmZjtcbn1cblxuLmZvb3RlciAuY29weXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICMwMTI5NzA7XG59XG5cbi5mb290ZXIgLmNyZWRpdHMge1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzAxMjk3MDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgTmF2YmFyICsgU2lkZWJhciBSZWZyZXNoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuOnJvb3Qge1xuICAgIC0taGVhZGVyLWhlaWdodDogNjRweDtcbiAgICAtLXNpZGViYXItd2lkdGg6IDMwMHB4O1xuICAgIC0tYnJhbmQtOTAwOiAjMGYyZjRhO1xuICAgIC0tYnJhbmQtODAwOiAjMTc0MjY0O1xuICAgIC0tYnJhbmQtNzAwOiAjMmY2Yjk2O1xuICAgIC0tYnJhbmQtMTAwOiAjZWNmNGZiO1xuICAgIC0tc3VyZmFjZS0wOiAjZmZmZmZmO1xuICAgIC0tc3VyZmFjZS0xOiAjZjRmN2ZiO1xuICAgIC0tdGV4dC05MDA6ICMxZjJkM2Q7XG4gICAgLS10ZXh0LTcwMDogIzRkNWY3MztcbiAgICAtLXRleHQtb24tYnJhbmQ6ICNmNGY5ZmY7XG59XG5cbmJvZHkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmNmY5ZmYgMCUsICNmMWY1ZmEgMTAwJSk7XG59XG5cbiNtYWluIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1oZWFkZXItaGVpZ2h0KTtcbn1cblxuLmhlYWRlciB7XG4gICAgaGVpZ2h0OiB2YXIoLS1oZWFkZXItaGVpZ2h0KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCB2YXIoLS1icmFuZC05MDApIDAlLCB2YXIoLS1icmFuZC03MDApIDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNnB4IHJnYmEoMTAsIDMxLCA1MiwgMC4yOCk7XG59XG5cbi5sb2dvIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3gtc2hhZG93OiAwIDNweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XG59XG5cbi5sb2dvIHNwYW4ge1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLWJyYW5kKTtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuLmhlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6IHZhcigtLXRleHQtb24tYnJhbmQpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UsIGJveC1zaGFkb3cgMC4ycyBlYXNlO1xufVxuXG4uaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG46aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpO1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjE2KTtcbn1cblxuLmhlYWRlciAuc2VhcmNoLWJhciB7XG4gICAgbWluLXdpZHRoOiAzNDBweDtcbiAgICBtYXgtd2lkdGg6IDQ2MHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4uaGVhZGVyIC5zZWFyY2gtZm9ybSBpbnB1dCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40Mik7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBjb2xvcjogIzFiMzM0YTtcbn1cblxuLmhlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzY2N2E4Zjtcbn1cblxuLmhlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQ6Zm9jdXMsXG4uaGVhZGVyIC5zZWFyY2gtZm9ybSBpbnB1dDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNTYsIDEwNiwgMTQ4LCAwLjY4KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgxMDksIDE1MSwgMTg2LCAwLjMpO1xufVxuXG4uaGVhZGVyIC5zZWFyY2gtZm9ybSBidXR0b24gaSB7XG4gICAgY29sb3I6ICMyNzQ4NjY7XG59XG5cbi5oZWFkZXItbmF2IC5uYXYtaWNvbiB7XG4gICAgd2lkdGg6IDM4cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6IHZhcigtLXRleHQtb24tYnJhbmQpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1saW5rOmhvdmVyIC5uYXYtaWNvbixcbi5oZWFkZXItbmF2IC5uYXYtbGluazpmb2N1cyAubmF2LWljb24ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUge1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLWJyYW5kKTtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LXByb2ZpbGU6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIGltZyB7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc2KTtcbn1cblxuLmhlYWRlci1uYXYgLnByb2ZpbGUge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZTRmMDtcbiAgICBib3gtc2hhZG93OiAwIDE0cHggMjhweCByZ2JhKDE5LCAzOSwgNjEsIDAuMTYpO1xufVxuXG4uaGVhZGVyLW5hdiAucHJvZmlsZSAuZHJvcGRvd24taXRlbSB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIG1hcmdpbjogMnB4IDhweDtcbn1cblxuLmhlYWRlci1uYXYgLnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW0gaSB7XG4gICAgY29sb3I6ICMyZDRmNmY7XG59XG5cbi5oZWFkZXItbmF2IC5wcm9maWxlIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJmM2ZiO1xufVxuXG4uc2lkZWJhciB7XG4gICAgdG9wOiB2YXIoLS1oZWFkZXItaGVpZ2h0KTtcbiAgICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aCk7XG4gICAgcGFkZGluZzogMTZweCAxNHB4IDI0cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2YyZjZmYiAwJSwgI2U5ZjBmOCA1MiUsICNlMWVhZjUgMTAwJSk7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M4ZDZlNjtcbiAgICBib3gtc2hhZG93OiA4cHggMCAyNHB4IHJnYmEoMjEsIDQzLCA2NywgMC4xNik7XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiAjNzM5MGFkIHRyYW5zcGFyZW50O1xufVxuXG4uc2lkZWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3MzkwYWQ7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuc2lkZWJhciB7XG4gICAgICAgIGxlZnQ6IGNhbGModmFyKC0tc2lkZWJhci13aWR0aCkgKiAtMSk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgI21haW4sXG4gICAgI2Zvb3RlciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaWRlYmFyLXdpZHRoKTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAudG9nZ2xlLXNpZGViYXIgI21haW4sXG4gICAgLnRvZ2dsZS1zaWRlYmFyICNmb290ZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAudG9nZ2xlLXNpZGViYXIgLnNpZGViYXIge1xuICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLXNpZGViYXItd2lkdGgpICogLTEpO1xuICAgIH1cbn1cblxuLnNpZGViYXItbmF2IC5uYXYtaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1oZWFkaW5nIHtcbiAgICBjb2xvcjogIzRjNjA3NjtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rIHtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxMXB4IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyOCwgMTQ4LCAxNzIsIDAuMzQpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41Nik7XG4gICAgY29sb3I6IHZhcigtLXRleHQtOTAwKTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBib3gtc2hhZG93OiAwIDJweCA2cHggcmdiYSgyMSwgNDMsIDY4LCAwLjA4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rIGkge1xuICAgIGNvbG9yOiB2YXIoLS1icmFuZC03MDApO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogIzEwMjczZDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYmZmO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg4NiwgMTIzLCAxNTksIDAuNDQpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1icmFuZC04MDApLCB2YXIoLS1icmFuZC03MDApKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMzMsIDc5LCAxMTgsIDAuOTIpO1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDE2cHggcmdiYSgxOCwgNTAsIDc3LCAwLjIyKTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGlua1tkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJdOm5vdCguY29sbGFwc2VkKSBpIHtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGluayAuYmktY2hldnJvbi1kb3duIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpIC5iaS1jaGV2cm9uLWRvd24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQge1xuICAgIHBhZGRpbmctdG9wOiA2cHg7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbjogNHB4IDJweCAwO1xuICAgIHBhZGRpbmc6IDlweCAxMnB4IDlweCAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLXRleHQtNzAwKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEgaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIGZvbnQtc2l6ZTogN3B4O1xuICAgIGNvbG9yOiB2YXIoLS1icmFuZC03MDApO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIsXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlIHtcbiAgICBjb2xvcjogIzEwMjczZDtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmN2ZkO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg5NCwgMTI4LCAxNjAsIDAuMzIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjU1MzdiLCAjM2Y3MzlmKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMzIsIDczLCAxMTAsIDAuOSk7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMTRweCByZ2JhKDIyLCA1NiwgODYsIDAuMik7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYS5hY3RpdmUgaSB7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFByb2Zlc3Npb25hbCBVSSBQb2xpc2ggKE5hdmJhciwgU2lkZWJhciwgQnV0dG9ucylcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG46cm9vdCB7XG4gICAgLS11aS1icmFuZC05NTA6ICMyZjFlMTY7XG4gICAgLS11aS1icmFuZC05MDA6ICM0YTJmMjI7XG4gICAgLS11aS1icmFuZC04MDA6ICM2YjQxMmQ7XG4gICAgLS11aS1icmFuZC03MDA6ICM4NjUzMzg7XG4gICAgLS11aS1hY2NlbnQtNjAwOiAjYjA2ZDNiO1xuICAgIC0tdWktYWNjZW50LTUwMDogI2M4ODQ0ZjtcbiAgICAtLXVpLWJnLWFwcDogI2Y2ZWZlNztcbiAgICAtLXVpLWJnLXN1cmZhY2U6ICNmZmZmZmY7XG4gICAgLS11aS1ib3JkZXItc29mdDogI2UzZDRjNTtcbiAgICAtLXVpLXRleHQtOTAwOiAjM2IyYjIxO1xuICAgIC0tdWktdGV4dC03MDA6ICM2YjU3NDg7XG4gICAgLS11aS10ZXh0LW9uLWRhcms6ICNmZmY1ZWI7XG59XG5cbmJvZHkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmYmY2ZWYgMCUsIHZhcigtLXVpLWJnLWFwcCkgMTAwJSk7XG4gICAgY29sb3I6IHZhcigtLXVpLXRleHQtOTAwKTtcbn1cblxuI21haW4ge1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHggMCAwIDA7XG59XG5cbi5oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsIHZhcigtLXVpLWJyYW5kLTk1MCkgMCUsIHZhcigtLXVpLWJyYW5kLTgwMCkgMTAwJSk7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI2cHggcmdiYSgzNCwgMjAsIDEzLCAwLjM2KTtcbn1cblxuLmxvZ28gc3BhbiB7XG4gICAgY29sb3I6IHZhcigtLXVpLXRleHQtb24tZGFyayk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xufVxuXG4uaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4ge1xuICAgIGNvbG9yOiB2YXIoLS11aS10ZXh0LW9uLWRhcmspO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTAsIDI0MSwgMC4xNCk7XG59XG5cbi5oZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1MCwgMjQxLCAwLjI0KTtcbn1cblxuLmhlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmFmMztcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTc3LCAxMzIsIDg4LCAwLjUyKTtcbiAgICBjb2xvcjogIzRiMzYyODtcbn1cblxuLmhlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzhlNzM1ZDtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1pY29uIHtcbiAgICBjb2xvcjogdmFyKC0tdWktdGV4dC1vbi1kYXJrKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjUwLCAyNDEsIDAuMTQpO1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUge1xuICAgIGNvbG9yOiB2YXIoLS11aS10ZXh0LW9uLWRhcmspO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTAsIDI0MSwgMC4xNCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjUwLCAyNDEsIDAuMjgpO1xufVxuXG4uc2lkZWJhciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzNhMjUxYSAwJSwgIzUwMzIyMyA1OCUsICM2NTQxMmQgMTAwJSk7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI0NSwgMjMyLCAwLjE2KTtcbiAgICBib3gtc2hhZG93OiAxMHB4IDAgMjZweCByZ2JhKDM2LCAyMiwgMTUsIDAuMzQpO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1oZWFkaW5nIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI0MSwgMjI0LCAwLjg2KTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGluayB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI0NSwgMjMyLCAwLjIyKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjQ1LCAyMzIsIDAuMSk7XG4gICAgY29sb3I6IHZhcigtLXVpLXRleHQtb24tZGFyayk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGluayBpIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDIyMCwgMTgyLCAwLjk2KTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGluazpob3ZlciB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI0NSwgMjMyLCAwLjIpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI0NSwgMjMyLCAwLjM4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGlua1tkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJdOm5vdCguY29sbGFwc2VkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tdWktYWNjZW50LTYwMCksIHZhcigtLXVpLWFjY2VudC01MDApKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ1LCA4OCwgNDcsIDAuOTUpO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAxOHB4IHJnYmEoNzIsIDQzLCAyMywgMC4zKTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI0MSwgMjI0LCAwLjk0KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhIGkge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjE2LCAxNjcsIDAuOTYpO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIsXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlIHtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjQ1LCAyMzIsIDAuMik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjQ1LCAyMzIsIDAuMzgpO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS11aS1hY2NlbnQtNjAwKSwgdmFyKC0tdWktYWNjZW50LTUwMCkpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDUsIDg4LCA0NywgMC45NSk7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDE4cHggcmdiYSg3MiwgNDMsIDIzLCAwLjMpO1xufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBFTlRFUlBSSVNFIE1JTklNQUwgLSBGSU5BTCAoUHJvZmVzc2lvbmFsLCBzb2JlciwgbG93IGNvbG9yKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmJvZHkgI2hlYWRlci5oZWFkZXIsXG5ib2R5IC5oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6ICNlZGY1ZmIgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NmZTBlYyAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDIwLCA0OSwgNzIsIDAuMSkgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5sb2dvIHNwYW4sXG5ib2R5IC5oZWFkZXIgLmxvZ28gc3BhbixcbmJvZHkgI2hlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuLFxuYm9keSAuaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG5ib2R5IC5oZWFkZXItbmF2IC5uYXYtaWNvbiB7XG4gICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG5ib2R5IC5oZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bixcbmJvZHkgLmJpLmJpLWxpc3QudG9nZ2xlLXNpZGViYXItYnRuLFxuYm9keSAuaGVhZGVyLW5hdiAubmF2LWljb24ge1xuICAgIGJvcmRlci1yYWRpdXM6IDJweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjN2Q4ZTUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjN2Q4ZTUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSxcbmJvZHkgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUuZHJvcGRvd24tbWVudS1lbmQuZHJvcGRvd24tbWVudS1hcnJvdy5wcm9maWxlLFxuYm9keSAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5kcm9wZG93bi1tZW51LWVuZC5kcm9wZG93bi1tZW51LWFycm93LnByb2ZpbGUuc2hvdyB7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjZGRkZWEgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMjAsIDQ5LCA3MiwgMC4xNCkgIWltcG9ydGFudDtcbn1cblxuYm9keSAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1pdGVtIHtcbiAgICBib3JkZXItcmFkaXVzOiAycHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW0gaSB7XG4gICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cblxuYm9keSAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmNWZiICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZS5kcm9wZG93bi1tZW51LWFycm93OjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NkZGRlYSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NkZGRlYSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyLnNpZGViYXIsXG5ib2R5IC5zaWRlYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMmM0ZDYzICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDRweCAwIDE0cHggcmdiYSgxNiwgNDAsIDYwLCAwLjIpICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLnNpZGViYXItbmF2IC5uYXYtaGVhZGluZyB7XG4gICAgY29sb3I6IHJnYmEoMjI2LCAyMzksIDI0OCwgMC43MikgIWltcG9ydGFudDtcbn1cblxuYm9keSAuc2lkZWJhci1uYXYgLm5hdi1saW5rIHtcbiAgICBib3JkZXItcmFkaXVzOiAycHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLnNpZGViYXItbmF2IC5uYXYtbGluayBpIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMzNjVmN2IgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cblxuYm9keSAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpLFxuYm9keSAuc2lkZWJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogIzRmODdhZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzRmODdhZCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSB7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuYm9keSAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMzYTY3ODQgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg5NiwgMTU0LCAxOTMsIDAuMjgpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDk2LCAxNTQsIDE5MywgMC41KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBVSSBMT0NLIC0gUHJvZmVzc2lvbmFsIEZpbmFsIExheWVyIChFT0YpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuI2hlYWRlci5oZWFkZXIsXG5ib2R5IC5oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmN2Y1ZjIgMCUsICNmMWVjZTUgMTAwJSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q3Y2NiZiAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSg2MCwgNDYsIDMyLCAwLjE0KSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG5ib2R5IC5oZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bixcbmJvZHkgLmJpLmJpLWxpc3QudG9nZ2xlLXNpZGViYXItYnRuIHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmNGVlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NmYzJiMyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMmYyYTI1ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG46aG92ZXIsXG5ib2R5IC5oZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bjpob3ZlcixcbmJvZHkgLmJpLmJpLWxpc3QudG9nZ2xlLXNpZGViYXItYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWZlN2RkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjYmVhOThmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMzYTMxMmEgIWltcG9ydGFudDtcbn1cblxuYm9keSAuaGVhZGVyLW5hdiAubmF2LWljb24ge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNmOGY0ZWUgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDVjOWJjICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMyZjJhMjUgIWltcG9ydGFudDtcbn1cblxuYm9keSAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNmOGYzZWMgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDhjY2JmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUsXG5ib2R5IC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LmRyb3Bkb3duLW1lbnUtZW5kLmRyb3Bkb3duLW1lbnUtYXJyb3cucHJvZmlsZSxcbmJvZHkgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUuZHJvcGRvd24tbWVudS1lbmQuZHJvcGRvd24tbWVudS1hcnJvdy5wcm9maWxlLnNob3cge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNmZmZkZmIgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDljY2JlICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDI0cHggcmdiYSg1MiwgMzksIDI3LCAwLjE2KSAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW0ge1xuICAgIGJvcmRlci1yYWRpdXM6IDJweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjM2EzMTI5ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taXRlbSBpIHtcbiAgICBjb2xvcjogIzdhNWEzZCAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNlZGU0ZDkgIWltcG9ydGFudDtcbn1cblxuYm9keSAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlLmRyb3Bkb3duLW1lbnUtYXJyb3c6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmRmYiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDljY2JlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZDljY2JlICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyLnNpZGViYXIsXG5ib2R5IC5zaWRlYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjNTI0NzNkIDAlLCAjNDMzOTJmIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDhweCAwIDIwcHggcmdiYSgyOCwgMjEsIDE1LCAwLjIyKSAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5zaWRlYmFyLW5hdiAubmF2LWhlYWRpbmcge1xuICAgIGNvbG9yOiByZ2JhKDI0NCwgMjM5LCAyMzMsIDAuNzIpICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLnNpZGViYXItbmF2IC5uYXYtbGluayB7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2Y0ZWZlOSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuYm9keSAuc2lkZWJhci1uYXYgLm5hdi1saW5rIGkge1xuICAgIGNvbG9yOiByZ2JhKDI0NCwgMjM5LCAyMzMsIDAuOSkgIWltcG9ydGFudDtcbn1cblxuYm9keSAuc2lkZWJhci1uYXYgLm5hdi1saW5rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cblxuYm9keSAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpLFxuYm9keSAuc2lkZWJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzhjNjY0MiwgIzdhNWEzZCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTcwLCAxMjksIDkzLCAwLjk1KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMTRweCByZ2JhKDQ0LCAzMiwgMjIsIDAuMjIpICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhIHtcbiAgICBib3JkZXItcmFkaXVzOiAycHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogcmdiYSgyNDcsIDI0MiwgMjM2LCAwLjk0KSAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjExKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KSAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYS5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjA2LCAxNzMsIDE0MCwgMC4yKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMDYsIDE3MywgMTQwLCAwLjM2KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBGSU5BTCBQUk9GRVNTSU9OQUwgVEhFTUUgLSBOQVZCQVIgKyBTSURFQkFSXG4gICAoc3VhdmUsIGNvcnBvcmF0aXZvLCBzaW4gcmVkb25kZW9zIGV4Y2VzaXZvcylcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG46cm9vdCB7XG4gICAgLS11aS1uYXYtYmctMTogI2Y3ZjVmMjtcbiAgICAtLXVpLW5hdi1iZy0yOiAjZjFlY2U1O1xuICAgIC0tdWktbmF2LWJvcmRlcjogI2Q3Y2NiZjtcbiAgICAtLXVpLW5hdi10ZXh0OiAjMmYyYTI1O1xuICAgIC0tdWktbmF2LW11dGVkOiAjNmI2MjU5O1xuICAgIC0tdWktbmF2LWFjY2VudDogIzdhNWEzZDtcbiAgICAtLXVpLW5hdi1hY2NlbnQtc29mdDogI2VkZTRkOTtcblxuICAgIC0tdWktc2lkZS1iZy0xOiAjNTI0NzNkO1xuICAgIC0tdWktc2lkZS1iZy0yOiAjNDMzOTJmO1xuICAgIC0tdWktc2lkZS1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgLS11aS1zaWRlLXRleHQ6ICNmNGVmZTk7XG4gICAgLS11aS1zaWRlLW11dGVkOiByZ2JhKDI0NCwgMjM5LCAyMzMsIDAuNzIpO1xuICAgIC0tdWktc2lkZS1pdGVtOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xuICAgIC0tdWktc2lkZS1pdGVtLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICAgIC0tdWktc2lkZS1hY3RpdmUtMTogIzhjNjY0MjtcbiAgICAtLXVpLXNpZGUtYWN0aXZlLTI6ICM3YTVhM2Q7XG59XG5cbiNoZWFkZXIuaGVhZGVyLFxuLmhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tdWktbmF2LWJnLTEpIDAlLCB2YXIoLS11aS1uYXYtYmctMikgMTAwJSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tdWktbmF2LWJvcmRlcikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoNjAsIDQ2LCAzMiwgMC4xNCkgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAubG9nbyBzcGFuLFxuLmhlYWRlciAubG9nbyBzcGFuIHtcbiAgICBjb2xvcjogdmFyKC0tdWktbmF2LXRleHQpICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xufVxuXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG4uaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4ge1xuICAgIGNvbG9yOiB2YXIoLS11aS1uYXYtdGV4dCkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2ZjMmIzICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjRlZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuOmhvdmVyLFxuLmhlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWZlN2RkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjYmVhOThmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMzYTMxMmEgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQsXG4uaGVhZGVyIC5zZWFyY2gtZm9ybSBpbnB1dCB7XG4gICAgYmFja2dyb3VuZDogI2ZiZmFmOCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOGNlYzIgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tdWktbmF2LXRleHQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLnNlYXJjaC1mb3JtIGJ1dHRvbixcbi5oZWFkZXIgLnNlYXJjaC1mb3JtIGJ1dHRvbiB7XG4gICAgY29sb3I6IHZhcigtLXVpLW5hdi1tdXRlZCkgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1pY29uIHtcbiAgICBjb2xvcjogdmFyKC0tdWktbmF2LXRleHQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1YzliYyAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNmOGY0ZWUgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5uYXYtaWNvbjpob3Zlcixcbi5oZWFkZXItbmF2IC5uYXYtaWNvbi5zaG93IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlNWRhICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjYmVhOThmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMzYTMxMmEgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmM2VjICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q4Y2NiZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHNwYW4ge1xuICAgIGNvbG9yOiB2YXIoLS11aS1uYXYtdGV4dCkgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUsXG4uaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlLnNob3csXG4uaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5kcm9wZG93bi1tZW51LWVuZC5kcm9wZG93bi1tZW51LWFycm93LnByb2ZpbGUge1xuICAgIGJhY2tncm91bmQ6ICNmZmZkZmIgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDljY2JlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDI0cHggcmdiYSg1MiwgMzksIDI3LCAwLjE2KSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAwLjNyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4zcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWhlYWRlciBoNiB7XG4gICAgY29sb3I6ICMyZjJhMjUgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taGVhZGVyIHNwYW4ge1xuICAgIGNvbG9yOiAjNmY2NzVmICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNlOGRkZDIgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taXRlbSB7XG4gICAgY29sb3I6ICMzYTMxMjkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDFweCA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMC40OHJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjQ4cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW0gaSB7XG4gICAgY29sb3I6ICM3YTVhM2QgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdWktbmF2LWFjY2VudC1zb2Z0KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMmMyNDFlICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUuZHJvcGRvd24tbWVudS1hcnJvdzo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZGZiICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOWNjYmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkOWNjYmUgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIuc2lkZWJhcixcbi5zaWRlYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS11aS1zaWRlLWJnLTEpIDAlLCB2YXIoLS11aS1zaWRlLWJnLTIpIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tdWktc2lkZS1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogOHB4IDAgMjBweCByZ2JhKDI4LCAyMSwgMTUsIDAuMjIpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWhlYWRpbmcsXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1oZWFkaW5nIHtcbiAgICBjb2xvcjogdmFyKC0tdWktc2lkZS1tdXRlZCkgIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4zNXB4O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayB7XG4gICAgY29sb3I6IHZhcigtLXVpLXNpZGUtdGV4dCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS11aS1zaWRlLWl0ZW0pICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEzKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayBpLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayBpIHtcbiAgICBjb2xvcjogcmdiYSgyNDQsIDIzOSwgMjMzLCAwLjkpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIsXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS11aS1zaWRlLWl0ZW0taG92ZXIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGlua1tkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJdOm5vdCguY29sbGFwc2VkKSxcbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsuYWN0aXZlLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXVpLXNpZGUtYWN0aXZlLTEpLCB2YXIoLS11aS1zaWRlLWFjdGl2ZS0yKSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTcwLCAxMjksIDkzLCAwLjk1KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMTRweCByZ2JhKDQ0LCAzMiwgMjIsIDAuMjIpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSB7XG4gICAgY29sb3I6IHJnYmEoMjQ3LCAyNDIsIDIzNiwgMC45NCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAycHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEgaSxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSBpIHtcbiAgICBjb2xvcjogI2Q3YmZhNSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIsXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMDYsIDE3MywgMTQwLCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIwNiwgMTczLCAxNDAsIDAuMzYpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFVsdGltYXRlIFNvZnQgUHJvZmVzc2lvbmFsIFRoZW1lXG4gICAoaGlnaGVzdC1wcmlvcml0eSB2aXN1YWwgb3ZlcnJpZGUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuYm9keSAjaGVhZGVyLmhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyNWRlZywgIzRiNTg2NSAwJSwgIzVkNmQ3ZCAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMThweCByZ2JhKDM0LCA0NSwgNTYsIDAuMjIpICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAubG9nbyBzcGFuLFxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSxcbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LWljb24sXG5ib2R5ICNoZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0biB7XG4gICAgY29sb3I6ICNlZWYzZjggIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNikgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zOCkgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMikgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLnNlYXJjaC1mb3JtIGlucHV0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmYmZkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2I1YzFjZCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMmMzZTUwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzcyODM5NSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSxcbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlLnNob3cge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDZkZWU3ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDMwcHggcmdiYSgzMCwgNDEsIDUzLCAwLjE4KSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDhweCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMjc1cHggIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4IDEwcHggIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWhlYWRlciBoNiB7XG4gICAgY29sb3I6ICMyZDQyNTggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDE1cHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1oZWFkZXIgc3BhbiB7XG4gICAgY29sb3I6ICM2ZjgyOTYgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW0ge1xuICAgIGNvbG9yOiAjMzA0ODYwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogOXB4IDEwcHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1pdGVtIGkge1xuICAgIGNvbG9yOiAjNjg3Zjk4ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmNmZhICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlLmRyb3Bkb3duLW1lbnUtYXJyb3c6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDZkZWU3ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZDZkZWU3ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI3NpZGViYXIuc2lkZWJhciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzU2NjQ3NiAwJSwgIzY0NzU4YSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiA4cHggMCAxNnB4IHJnYmEoMzYsIDQ5LCA2MywgMC4xOCkgIWltcG9ydGFudDtcbn1cblxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1oZWFkaW5nIHtcbiAgICBjb2xvcjogcmdiYSgyMzgsIDI0MywgMjQ4LCAwLjg1KSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsge1xuICAgIGNvbG9yOiAjZWVmM2Y4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayBpIHtcbiAgICBjb2xvcjogI2Q4ZTNlZSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zMikgIWltcG9ydGFudDtcbn1cblxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjN2I4ZmE2LCAjOGVhM2JhKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNTIsIDIwMSwgMjMyLCAwLjkyKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDE0cHggcmdiYSg1MiwgNjgsIDg1LCAwLjE4KSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSB7XG4gICAgY29sb3I6IHJnYmEoMjM1LCAyNDEsIDI0OCwgMC45NSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbn1cblxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEgaSB7XG4gICAgY29sb3I6ICNkMmRkZWEgIWltcG9ydGFudDtcbn1cblxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIsXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYS5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzdiOGZhNiwgIzhlYTNiYSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTUyLCAyMDEsIDIzMiwgMC45MikgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEZpbmFsIE92ZXJyaWRlIC0gU29mdCBQcm9mZXNzaW9uYWwgTmF2YmFyICsgU2lkZWJhclxuICAgKE5vIGNhbWJpYSBlc3RydWN0dXJhLCBzb2xvIGFwYXJpZW5jaWEpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuOnJvb3Qge1xuICAgIC0tZmluYWwtbmF2LTE6ICMzZjQ5NTU7XG4gICAgLS1maW5hbC1uYXYtMjogIzRkNWE2ODtcbiAgICAtLWZpbmFsLXNpZGUtMTogIzQ2NTQ2MztcbiAgICAtLWZpbmFsLXNpZGUtMjogIzU1NjU3NztcbiAgICAtLWZpbmFsLXNpZGUtYWN0aXZlLTE6ICM2YjdmOTU7XG4gICAgLS1maW5hbC1zaWRlLWFjdGl2ZS0yOiAjN2U5MmE4O1xuICAgIC0tZmluYWwtdGV4dC1saWdodDogI2VlZjNmODtcbn1cblxuI2hlYWRlci5oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsIHZhcigtLWZpbmFsLW5hdi0xKSAwJSwgdmFyKC0tZmluYWwtbmF2LTIpIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyMHB4IHJnYmEoMzMsIDQzLCA1NCwgMC4yMikgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAubG9nbyBzcGFuIHtcbiAgICBjb2xvcjogdmFyKC0tZmluYWwtdGV4dC1saWdodCkgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuIHtcbiAgICBjb2xvcjogdmFyKC0tZmluYWwtdGV4dC1saWdodCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM4KSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5zZWFyY2gtZm9ybSBpbnB1dCB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2Y5ZmJmZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiOGM0ZDAgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzJiM2I0YiAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5zZWFyY2gtZm9ybSBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjNzA4MjkzICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1pY29uIHtcbiAgICBjb2xvcjogdmFyKC0tZmluYWwtdGV4dC1saWdodCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUge1xuICAgIGNvbG9yOiB2YXIoLS1maW5hbC10ZXh0LWxpZ2h0KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMikgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgaW1nIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlLFxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlLnNob3cge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDZkZWU3ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDMwcHggcmdiYSgzMCwgNDEsIDUzLCAwLjE4KSAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMjcwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1oZWFkZXIge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA4cHggMTBweCAxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taGVhZGVyIGg2IHtcbiAgICBjb2xvcjogIzJiM2Q0ZiAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTVweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1oZWFkZXIgc3BhbiB7XG4gICAgY29sb3I6ICM2ZjgyOTYgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1pdGVtIHtcbiAgICBjb2xvcjogIzMwNDY1ZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDlweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW0gaSB7XG4gICAgY29sb3I6ICM2ODgwOTkgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmNWY5ICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZS5kcm9wZG93bi1tZW51LWFycm93OjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q2ZGVlNyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2Q2ZGVlNyAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhci5zaWRlYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1maW5hbC1zaWRlLTEpIDAlLCB2YXIoLS1maW5hbC1zaWRlLTIpIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDhweCAwIDE4cHggcmdiYSgzMywgNDMsIDU0LCAwLjIpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWhlYWRpbmcge1xuICAgIGNvbG9yOiByZ2JhKDIzOCwgMjQzLCAyNDgsIDAuODIpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsge1xuICAgIGNvbG9yOiB2YXIoLS1maW5hbC10ZXh0LWxpZ2h0KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsgaSB7XG4gICAgY29sb3I6ICNkOWUzZWQgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluazpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmtbZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXTpub3QoLmNvbGxhcHNlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWZpbmFsLXNpZGUtYWN0aXZlLTEpLCB2YXIoLS1maW5hbC1zaWRlLWFjdGl2ZS0yKSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTMyLCAxNTEsIDE3MiwgMC45KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDE0cHggcmdiYSg0NiwgNjAsIDc1LCAwLjE4KSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEge1xuICAgIGNvbG9yOiByZ2JhKDIzNCwgMjQwLCAyNDcsIDAuOTQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSBpIHtcbiAgICBjb2xvcjogI2NkZDllNiAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIsXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjYpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZmluYWwtc2lkZS1hY3RpdmUtMSksIHZhcigtLWZpbmFsLXNpZGUtYWN0aXZlLTIpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxMzIsIDE1MSwgMTcyLCAwLjkpICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBGaW5hbCBTb2Z0IFByb2Zlc3Npb25hbCBUaGVtZSAoTmF2YmFyICsgU2lkZWJhciBvbmx5KVxuICAgTm90YTogb3ZlcnJpZGUgZmluYWwsIG5vIHRvY2EgdGFibGFzIG5pIGxvZ2ljYS5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG46cm9vdCB7XG4gICAgLS1zb2Z0LW5hdi0xOiAjMmYzYTQ2O1xuICAgIC0tc29mdC1uYXYtMjogIzNmNGM1YjtcbiAgICAtLXNvZnQtc2lkZS0xOiAjMzY0MjUxO1xuICAgIC0tc29mdC1zaWRlLTI6ICM0MjUxNjI7XG4gICAgLS1zb2Z0LWFjY2VudDogIzdhOGZhNjtcbiAgICAtLXNvZnQtYWNjZW50LTI6ICM4ZWEzYmE7XG4gICAgLS1zb2Z0LXRleHQ6ICNlZWYzZjg7XG4gICAgLS1zb2Z0LWJvcmRlcjogcmdiYSgyMzgsIDI0MywgMjQ4LCAwLjI0KTtcbn1cblxuI2hlYWRlci5oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsIHZhcigtLXNvZnQtbmF2LTEpIDAlLCB2YXIoLS1zb2Z0LW5hdi0yKSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMjEsIDI5LCAzOSwgMC4yNCkgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAubG9nbyBzcGFuIHtcbiAgICBjb2xvcjogdmFyKC0tc29mdC10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4ge1xuICAgIGNvbG9yOiB2YXIoLS1zb2Z0LXRleHQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc29mdC1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCkgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmMgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYjZjMWNkICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMyNjM0NDMgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzcwODE5MSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbiB7XG4gICAgY29sb3I6IHZhcigtLXNvZnQtdGV4dCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHtcbiAgICBjb2xvcjogdmFyKC0tc29mdC10ZXh0KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgaW1nIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlLFxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlLnNob3cge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDhlMGU4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDI4cHggcmdiYSgyNSwgMzUsIDQ4LCAwLjE4KSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDhweCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMjcwcHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1oZWFkZXIge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA4cHggMTBweCAxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taGVhZGVyIGg2IHtcbiAgICBjb2xvcjogIzI1MzM0MyAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTVweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1oZWFkZXIgc3BhbiB7XG4gICAgY29sb3I6ICM2ODdiOGYgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1pdGVtIHtcbiAgICBjb2xvcjogIzJkM2Y1MiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDlweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW0gaSB7XG4gICAgY29sb3I6ICM2MDc0ODggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmNWY5ICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZS5kcm9wZG93bi1tZW51LWFycm93OjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q4ZTBlOCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2Q4ZTBlOCAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhci5zaWRlYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1zb2Z0LXNpZGUtMSkgMCUsIHZhcigtLXNvZnQtc2lkZS0yKSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiA4cHggMCAxOHB4IHJnYmEoMjUsIDM1LCA0OCwgMC4yKSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1oZWFkaW5nIHtcbiAgICBjb2xvcjogcmdiYSgyMzgsIDI0MywgMjQ4LCAwLjgpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsge1xuICAgIGNvbG9yOiB2YXIoLS1zb2Z0LXRleHQpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayBpIHtcbiAgICBjb2xvcjogI2Q2ZTBlYSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTMpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmtbZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXTpub3QoLmNvbGxhcHNlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNvZnQtYWNjZW50KSwgdmFyKC0tc29mdC1hY2NlbnQtMikpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDEyOCwgMTQ3LCAxNjgsIDAuOSkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxNnB4IHJnYmEoNDQsIDU4LCA3NSwgMC4yKSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEge1xuICAgIGNvbG9yOiByZ2JhKDIzMiwgMjM5LCAyNDcsIDAuOTQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSBpIHtcbiAgICBjb2xvcjogI2M5ZDdlNSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIsXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc29mdC1hY2NlbnQpLCB2YXIoLS1zb2Z0LWFjY2VudC0yKSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTI4LCAxNDcsIDE2OCwgMC45KSAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBIYXJkIE92ZXJyaWRlIC0gTmF2YmFyL1NpZGViYXIgUHJvZmVzc2lvbmFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuOnJvb3Qge1xuICAgIC0taGFyZC1uYXYtYmctMTogIzEyMTYxYztcbiAgICAtLWhhcmQtbmF2LWJnLTI6ICMyMzJiMzU7XG4gICAgLS1oYXJkLXNpZGUtYmctMTogIzE2MWIyMjtcbiAgICAtLWhhcmQtc2lkZS1iZy0yOiAjMjYyZjNhO1xuICAgIC0taGFyZC1hY2NlbnQ6ICNjMThhNGE7XG4gICAgLS1oYXJkLXRleHQ6ICNlZGYyZjc7XG4gICAgLS1oYXJkLWJvcmRlcjogcmdiYSgyMzcsIDI0MiwgMjQ3LCAwLjIpO1xufVxuXG4jaGVhZGVyLmhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExNWRlZywgdmFyKC0taGFyZC1uYXYtYmctMSkgMCUsIHZhcigtLWhhcmQtbmF2LWJnLTIpIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDksIDEzLCAxOSwgMC4yOCkgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAubG9nbyBzcGFuIHtcbiAgICBjb2xvcjogdmFyKC0taGFyZC10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4ge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMzZweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWhhcmQtYm9yZGVyKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0taGFyZC10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCkgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmMgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWRiOGM0ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMxZjI5MzcgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuc2VhcmNoLWZvcm0gaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzZiNzI4MCAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbiB7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1oYXJkLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1oYXJkLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSxcbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZS5zaG93IHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDRkY2U1ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMTRweCAzMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4yMikgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDI3MHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taGVhZGVyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogOHB4IDEwcHggMTBweCAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWhlYWRlciBoNiB7XG4gICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMWYyOTM3ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4ICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taGVhZGVyIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjNmI3MjgwICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24tZGl2aWRlciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNmVkZjQgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDZweCAwICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taXRlbSB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBnYXA6IDhweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDlweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAycHggMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzI0MzQ0NiAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW0gaSB7XG4gICAgY29sb3I6ICM0YjU1NjMgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjNmNmZhICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMxZDJhM2EgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlLmRyb3Bkb3duLW1lbnUtYXJyb3c6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDRkY2U1ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZDRkY2U1ICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyLnNpZGViYXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWhhcmQtc2lkZS1iZy0xKSAwJSwgdmFyKC0taGFyZC1zaWRlLWJnLTIpIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogOHB4IDAgMjBweCByZ2JhKDE1LCAyMywgNDIsIDAuMjQpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWhlYWRpbmcge1xuICAgIGNvbG9yOiByZ2JhKDIzNywgMjQyLCAyNDcsIDAuNzYpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLWhhcmQtdGV4dCkgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayBpIHtcbiAgICBjb2xvcjogcmdiYSgyMjMsIDIzMiwgMjQyLCAwLjk0KSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmtbZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXTpub3QoLmNvbGxhcHNlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM4ZjY1M2QsIHZhcigtLWhhcmQtYWNjZW50KSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTUwLCAxMDgsIDY3LCAwLjk1KSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEge1xuICAgIGJvcmRlci1yYWRpdXM6IDJweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiByZ2JhKDIzMSwgMjM5LCAyNDcsIDAuOTIpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSBpIHtcbiAgICBjb2xvcjogI2Q5YWQ3OSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIsXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzhmNjUzZCwgdmFyKC0taGFyZC1hY2NlbnQpKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNTAsIDEwOCwgNjcsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE5hdmJhciBGaW5hbCBUdW5pbmcgKE5vIFJvdW5kZWQgVG9nZ2xlICsgU3R5bGVkIFByb2ZpbGUgRHJvcGRvd24pXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmhlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjQ1LCAyMzIsIDAuMjgpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNDUsIDIzMiwgMC4xKTtcbn1cblxuLmhlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjQ1LCAyMzIsIDAuMTgpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI0NSwgMjMyLCAwLjQpO1xufVxuXG4uaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG46Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHJnYmEoMjU1LCAyMTAsIDE1NSwgMC43Mik7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xufVxuXG4uaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlLFxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZS5zaG93IHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q4YzRhZDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmYWYzO1xuICAgIGJveC1zaGFkb3c6IDAgMTJweCAyNnB4IHJnYmEoNTAsIDMyLCAyMCwgMC4yKTtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgbWluLXdpZHRoOiAyNjBweDtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taGVhZGVyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4IDEwcHg7XG59XG5cbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWhlYWRlciBoNiB7XG4gICAgY29sb3I6ICM0YTJmMjI7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWhlYWRlciBzcGFuIHtcbiAgICBjb2xvcjogIzdhNjM0ZjtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNlYWRjY2M7XG4gICAgbWFyZ2luOiA2cHggMDtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taXRlbSB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG1hcmdpbjogMnB4IDA7XG4gICAgcGFkZGluZzogOXB4IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzRhMmYyMjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taXRlbSBpIHtcbiAgICBjb2xvcjogIzlhNWMzNTtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y0ZTdkODtcbiAgICBjb2xvcjogIzNkMjYxYjtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZS5kcm9wZG93bi1tZW51LWFycm93OjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmZhZjM7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOGM0YWQ7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZDhjNGFkO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBUaGVtZSBGaW5hbCAoUHJvZmVzc2lvbmFsIC0gTmF2YmFyL1NpZGViYXIpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuOnJvb3Qge1xuICAgIC0tcHJvLW5hdi05NTA6ICMxNDE3MWM7XG4gICAgLS1wcm8tbmF2LTkwMDogIzFkMjMyYjtcbiAgICAtLXByby1uYXYtODAwOiAjMmIzNDNmO1xuICAgIC0tcHJvLXNpZGUtOTUwOiAjMTcxYzIyO1xuICAgIC0tcHJvLXNpZGUtOTAwOiAjMjAyNzMwO1xuICAgIC0tcHJvLXNpZGUtODAwOiAjMmEzMzNkO1xuICAgIC0tcHJvLWFjY2VudDogI2JlODU0OTtcbiAgICAtLXByby1hY2NlbnQtc29mdDogI2QzYTE2ZDtcbiAgICAtLXByby10ZXh0LW9uLWRhcms6ICNlZWYyZjY7XG4gICAgLS1wcm8tYm9yZGVyLXNvZnQ6IHJnYmEoMjM4LCAyNDIsIDI0NiwgMC4yKTtcbn1cblxuYm9keSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2Y3ZjlmYyAwJSwgI2VlZjJmNyAxMDAlKTtcbn1cblxuI21haW4ge1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHggMCAwIDA7XG59XG5cbi5oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsIHZhcigtLXByby1uYXYtOTUwKSAwJSwgdmFyKC0tcHJvLW5hdi04MDApIDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNHB4IHJnYmEoMTMsIDE3LCAyMywgMC4yOCk7XG59XG5cbi5sb2dvIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4ubG9nbyBzcGFuIHtcbiAgICBjb2xvcjogdmFyKC0tcHJvLXRleHQtb24tZGFyayk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmhlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuIHtcbiAgICBjb2xvcjogdmFyKC0tcHJvLXRleHQtb24tZGFyayk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXByby1ib3JkZXItc29mdCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbn1cblxuLmhlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuXG4uaGVhZGVyIC5zZWFyY2gtZm9ybSBpbnB1dCB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgYm9yZGVyLWNvbG9yOiAjYWFiNGMwO1xuICAgIGNvbG9yOiAjMWYyOTM3O1xufVxuXG4uaGVhZGVyIC5zZWFyY2gtZm9ybSBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LWljb24ge1xuICAgIGNvbG9yOiB2YXIoLS1wcm8tdGV4dC1vbi1kYXJrKTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbn1cblxuLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHtcbiAgICBjb2xvcjogdmFyKC0tcHJvLXRleHQtb24tZGFyayk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgaW1nIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSxcbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUuc2hvdyB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjZmQ3ZTA7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDE0cHggMjhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTgpO1xufVxuXG4uaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1oZWFkZXIgaDYge1xuICAgIGNvbG9yOiAjMWYyOTM3O1xufVxuXG4uaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1oZWFkZXIgc3BhbiB7XG4gICAgY29sb3I6ICM2YjcyODA7XG59XG5cbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW0ge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBjb2xvcjogIzI0MzI0Mjtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taXRlbSBpIHtcbiAgICBjb2xvcjogIzRiNTU2Mztcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YzZjZmYTtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZS5kcm9wZG93bi1tZW51LWFycm93OjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjZmQ3ZTA7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2ZkN2UwO1xufVxuXG4uc2lkZWJhciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tcHJvLXNpZGUtOTUwKSAwJSwgdmFyKC0tcHJvLXNpZGUtODAwKSAxMDAlKTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgYm94LXNoYWRvdzogOHB4IDAgMjJweCByZ2JhKDE1LCAyMywgNDIsIDAuMjIpO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1oZWFkaW5nIHtcbiAgICBjb2xvcjogcmdiYSgyMzgsIDI0MiwgMjQ2LCAwLjc2KTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGluayB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbiAgICBjb2xvcjogdmFyKC0tcHJvLXRleHQtb24tZGFyayk7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWxpbmsgaSB7XG4gICAgY29sb3I6IHJnYmEoMjE4LCAyMjcsIDI0MCwgMC45NSk7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtbGlua1tkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJdOm5vdCguY29sbGFwc2VkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzhhNjIzOCwgdmFyKC0tcHJvLWFjY2VudCkpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDYsIDEwNiwgNjQsIDAuOTYpO1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDE2cHggcmdiYSg1OCwgMzYsIDIxLCAwLjI2KTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhIHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgY29sb3I6IHJnYmEoMjMyLCAyMzgsIDI0NiwgMC45Mik7XG59XG5cbi5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSBpIHtcbiAgICBjb2xvcjogdmFyKC0tcHJvLWFjY2VudC1zb2Z0KTtcbn1cblxuLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhOmhvdmVyLFxuLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNik7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4uc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjOGE2MjM4LCB2YXIoLS1wcm8tYWNjZW50KSk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0NiwgMTA2LCA2NCwgMC45Nik7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMTZweCByZ2JhKDU4LCAzNiwgMjEsIDAuMjYpO1xufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBFTlRFUlBSSVNFIFNLWSBGSU5BTCBFTkQgTEFZRVJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5ib2R5ICNoZWFkZXIuaGVhZGVyLFxuYm9keSAuaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMGY4MmNkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwYjZmYWEgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoOSwgNDYsIDc4LCAwLjI4KSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLmxvZ28gc3BhbixcbmJvZHkgLmhlYWRlciAubG9nbyBzcGFuLFxuYm9keSAjaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG5ib2R5IC5oZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bixcbmJvZHkgLmhlYWRlci1uYXYgLm5hdi1pY29uIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bixcbmJvZHkgLmhlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuLFxuYm9keSAuYmkuYmktbGlzdC50b2dnbGUtc2lkZWJhci1idG4sXG5ib2R5IC5oZWFkZXItbmF2IC5uYXYtaWNvbiB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM1OGE4ZGQgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bjpob3ZlcixcbmJvZHkgLmhlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuOmhvdmVyLFxuYm9keSAuYmkuYmktbGlzdC50b2dnbGUtc2lkZWJhci1idG46aG92ZXIsXG5ib2R5IC5oZWFkZXItbmF2IC5uYXYtaWNvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzg0YzBlNyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM2M2FmZTAgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSBzcGFuLFxuYm9keSAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgaSB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuYm9keSAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlLFxuYm9keSAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5kcm9wZG93bi1tZW51LWVuZC5kcm9wZG93bi1tZW51LWFycm93LnByb2ZpbGUsXG5ib2R5IC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LmRyb3Bkb3duLW1lbnUtZW5kLmRyb3Bkb3duLW1lbnUtYXJyb3cucHJvZmlsZS5zaG93IHtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiOGQ3ZWMgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMjQsIDU0LCA3OSwgMC4xNCkgIWltcG9ydGFudDtcbn1cblxuYm9keSAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1pdGVtIHtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cblxuYm9keSAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudS5wcm9maWxlIC5kcm9wZG93bi1pdGVtIGkge1xuICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2VhZjRmYyAhaW1wb3J0YW50O1xufVxuXG5ib2R5IC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUuZHJvcGRvd24tbWVudS1hcnJvdzo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNiOGQ3ZWMgIWltcG9ydGFudDtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNiOGQ3ZWMgIWltcG9ydGFudDtcbn1cblxuYm9keSAjc2lkZWJhci5zaWRlYmFyLFxuYm9keSAuc2lkZWJhciB7XG4gICAgYmFja2dyb3VuZDogIzFiNmY5ZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiA0cHggMCAxNHB4IHJnYmEoMTAsIDQ0LCA3MSwgMC4yMikgIWltcG9ydGFudDtcbn1cblxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1oZWFkaW5nLFxuYm9keSAuc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1oZWFkaW5nIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcyKSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmssXG5ib2R5IC5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjMjU3YWFlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzRkOTdjNCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsgaSxcbmJvZHkgLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayBpIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIsXG5ib2R5IC5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMyZjg5YzEgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICM3OGI1ZDggIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cblxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpLFxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSxcbmJvZHkgLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGlua1tkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJdOm5vdCguY29sbGFwc2VkKSxcbmJvZHkgLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICMzYzlmZGMgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICM5OGM5ZTggIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEsXG5ib2R5IC5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhOmhvdmVyLFxuYm9keSAuc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMyZjg5YzEgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSxcbmJvZHkgLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogIzNjOWZkYyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzk4YzllOCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBDUlVEIEZPUk0gQlVUVE9OUyAtIEZJTkFMIChwb3IgSUQsIHNpbiBhZmVjdGFyIHRvZG8gZWwgc2lzdGVtYSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5ib2R5ICNidG5fZ3VhcmRhcl9mb3JtLmJ0bixcbmJvZHkgI2J0bl9ndWFyZGFyX2Zvcm0uYnRuLW91dGxpbmUtc3VjY2VzcyxcbmJvZHkgI2J0bl9ndWFyZGFyX2Zvcm0uYnRuLXN1Y2Nlc3Mge1xuICAgIGJvcmRlci1yYWRpdXM6IDJweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjMGE5NzcyICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMGE5NzcyICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2J0bl9ndWFyZGFyX2Zvcm0uYnRuOmhvdmVyLFxuYm9keSAjYnRuX2d1YXJkYXJfZm9ybS5idG4tb3V0bGluZS1zdWNjZXNzOmhvdmVyLFxuYm9keSAjYnRuX2d1YXJkYXJfZm9ybS5idG4tc3VjY2Vzczpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzA4N2Y2MSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzA4N2Y2MSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2J0bl9yZXNldF9mb3JtLmJ0bixcbmJvZHkgI2J0bl9yZXNldF9mb3JtLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSxcbmJvZHkgI2J0bl9yZXNldF9mb3JtLmJ0bi1zZWNvbmRhcnkge1xuICAgIGJvcmRlci1yYWRpdXM6IDJweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjMWY3ZmI4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMWY3ZmI4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2J0bl9yZXNldF9mb3JtLmJ0bjpob3ZlcixcbmJvZHkgI2J0bl9yZXNldF9mb3JtLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpob3ZlcixcbmJvZHkgI2J0bl9yZXNldF9mb3JtLmJ0bi1zZWNvbmRhcnk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMxYTZlOWUgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMxYTZlOWUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgTmF2YmFyIC0gQWxlcnRhIFN0b2NrIE1pbmltb1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAuc3RvY2stYWxlcnRzIHtcbiAgICBtaW4td2lkdGg6IDMyMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAzNjBweCAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDQyMHB4ICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3cteTogYXV0byAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLmhlYWRlci1uYXYgLnN0b2NrLWFsZXJ0cyAuZHJvcGRvd24taGVhZGVyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMWYyOTM3ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAuc3RvY2stYWxlcnRzIC5zdG9jay1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgICBnYXA6IDEwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHggIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5zdG9jay1hbGVydHMgLnN0b2NrLWl0ZW0gaSB7XG4gICAgbWFyZ2luLXRvcDogMnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAuc3RvY2stYWxlcnRzIC5zdG9jay1pdGVtIGg0IHtcbiAgICBtYXJnaW46IDAgMCAycHggMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzExMTgyNyAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLmhlYWRlci1uYXYgLnN0b2NrLWFsZXJ0cyAuc3RvY2staXRlbSBwIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzRiNTU2MyAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5zdG9jay1hbGVydHMgLnN0b2NrLWNyaXRpY28gaSB7XG4gICAgY29sb3I6ICNkYzI2MjYgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5zdG9jay1hbGVydHMgLnN0b2NrLWJham8gaSB7XG4gICAgY29sb3I6ICNkOTc3MDYgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5zdG9jay1hbGVydHMgLnN0b2NrLW1pbmltbyBpIHtcbiAgICBjb2xvcjogIzAyODRjNyAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLmhlYWRlci1uYXYgLnN0b2NrLWFsZXJ0cyAuc3RvY2stb2sgaSB7XG4gICAgY29sb3I6ICMxNmEzNGEgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIE5hdmJhciAtIERyb3Bkb3duIE5vdGlmaWNhY2lvbmVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuYm9keSAjaGVhZGVyIC5zZWFyY2gtYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGdhcDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuc2VhcmNoLWJhciAuc2VhcmNoLWZvcm0ge1xuICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5zZWFyY2gtbm90aWZ5LXRyaWdnZXIge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLnNlYXJjaC1ub3RpZnktZHJvcGRvd24gLm5vdGlmeS1zdW1tYXJ5IHtcbiAgICBtaW4td2lkdGg6IDM2MHB4ICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAzODBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDhweCAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLnNlYXJjaC1ub3RpZnktZHJvcGRvd24gLm5vdGlmeS1zdW1tYXJ5IC5kcm9wZG93bi1oZWFkZXIge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMxZjI5MzcgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5zZWFyY2gtbm90aWZ5LWRyb3Bkb3duIC5ub3RpZnktc3VtbWFyeSAubm90aWZ5LWxpbmUge1xuICAgIHBhZGRpbmc6IDhweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmJmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjAgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDRweCAwICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuc2VhcmNoLW5vdGlmeS1kcm9wZG93biAubm90aWZ5LXN1bW1hcnkgLm5vdGlmeS1saW5lIC5ub3RpZnktbGluZS1saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xuICAgIGdhcDogMTJweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5zZWFyY2gtbm90aWZ5LWRyb3Bkb3duIC5ub3RpZnktc3VtbWFyeSAubm90aWZ5LWxpbmUgLm5vdGlmeS1saW5lLWxpbms6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLnNlYXJjaC1ub3RpZnktZHJvcGRvd24gLm5vdGlmeS1zdW1tYXJ5IC5ub3RpZnktbGluZSBzcGFuIHtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzMzNDE1NSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLnNlYXJjaC1ub3RpZnktZHJvcGRvd24gLm5vdGlmeS1zdW1tYXJ5IC5ub3RpZnktbGluZSBzdHJvbmcge1xuICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5zZWFyY2gtbm90aWZ5LWRyb3Bkb3duIC5ub3RpZnktc3VtbWFyeSAubm90aWZ5LW9wdGltbyBzdHJvbmcge1xuICAgIGNvbG9yOiAjMTZhMzRhICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuc2VhcmNoLW5vdGlmeS1kcm9wZG93biAubm90aWZ5LXN1bW1hcnkgLm5vdGlmeS1tZWRpbyBzdHJvbmcge1xuICAgIGNvbG9yOiAjZDk3NzA2ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAuc2VhcmNoLW5vdGlmeS1kcm9wZG93biAubm90aWZ5LXN1bW1hcnkgLm5vdGlmeS1taW5pbW8gc3Ryb25nIHtcbiAgICBjb2xvcjogI2RjMjYyNiAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLm1vYmlsZS1ub3RpZnktZHJvcGRvd24gLm5vdGlmeS1zdW1tYXJ5IHtcbiAgICBtaW4td2lkdGg6IDM2MHB4ICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAzODBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDhweCAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLm1vYmlsZS1ub3RpZnktZHJvcGRvd24gLm5vdGlmeS1zdW1tYXJ5IC5kcm9wZG93bi1oZWFkZXIge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMxZjI5MzcgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5tb2JpbGUtbm90aWZ5LWRyb3Bkb3duIC5ub3RpZnktc3VtbWFyeSAubm90aWZ5LWxpbmUge1xuICAgIHBhZGRpbmc6IDhweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmJmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjAgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDRweCAwICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAubW9iaWxlLW5vdGlmeS1kcm9wZG93biAubm90aWZ5LXN1bW1hcnkgLm5vdGlmeS1saW5lIC5ub3RpZnktbGluZS1saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xuICAgIGdhcDogMTJweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5tb2JpbGUtbm90aWZ5LWRyb3Bkb3duIC5ub3RpZnktc3VtbWFyeSAubm90aWZ5LWxpbmUgLm5vdGlmeS1saW5lLWxpbms6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLm1vYmlsZS1ub3RpZnktZHJvcGRvd24gLm5vdGlmeS1zdW1tYXJ5IC5ub3RpZnktbGluZSBzcGFuIHtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzMzNDE1NSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLm1vYmlsZS1ub3RpZnktZHJvcGRvd24gLm5vdGlmeS1zdW1tYXJ5IC5ub3RpZnktbGluZSBzdHJvbmcge1xuICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5tb2JpbGUtbm90aWZ5LWRyb3Bkb3duIC5ub3RpZnktc3VtbWFyeSAubm90aWZ5LW9wdGltbyBzdHJvbmcge1xuICAgIGNvbG9yOiAjMTZhMzRhICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAubW9iaWxlLW5vdGlmeS1kcm9wZG93biAubm90aWZ5LXN1bW1hcnkgLm5vdGlmeS1tZWRpbyBzdHJvbmcge1xuICAgIGNvbG9yOiAjZDk3NzA2ICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI2hlYWRlciAubW9iaWxlLW5vdGlmeS1kcm9wZG93biAubm90aWZ5LXN1bW1hcnkgLm5vdGlmeS1taW5pbW8gc3Ryb25nIHtcbiAgICBjb2xvcjogI2RjMjYyNiAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgYm9keSAjaGVhZGVyIC5zZWFyY2gtbm90aWZ5LWRyb3Bkb3duIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJvZHkgI2hlYWRlciAubW9iaWxlLW5vdGlmeS1kcm9wZG93biB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vKiA9PT09PSBJbnZlbnRvcnkgVGhlbWUgT3ZlcnJpZGUgKG1vdmVkIGZyb20gaW52ZW50b3J5LXRoZW1lLmNzcykgPT09PT0gKi9cbi8qIEludmVudG9yeSBUaGVtZTogdmlzdWFsIHJlZnJlc2ggZm9jdXNlZCBvbiBjbGFyaXR5ICsgaGllcmFyY2h5ICovXG46cm9vdCB7XG4gICAgLS1pbnYtYmc6ICNmM2VmZTc7XG4gICAgLS1pbnYtc3VyZmFjZTogI2ZmZmRmOTtcbiAgICAtLWludi1zdXJmYWNlLXNvZnQ6ICNmOGY0ZWM7XG4gICAgLS1pbnYtYm9yZGVyOiAjZDhkMGMyO1xuICAgIC0taW52LXRleHQ6ICMxZjJhMzM7XG4gICAgLS1pbnYtdGV4dC1zb2Z0OiAjNWM2ZDc5O1xuICAgIC0taW52LXByaW1hcnk6ICMxNzQ3NWI7XG4gICAgLS1pbnYtcHJpbWFyeS1zdHJvbmc6ICMxMDM1NDQ7XG4gICAgLS1pbnYtYWNjZW50OiAjZDk3NzMyO1xuICAgIC0taW52LXN1Y2Nlc3M6ICMyZjhmNmE7XG4gICAgLS1pbnYtZGFuZ2VyOiAjYzQ0NTNjO1xuICAgIC0taW52LXNoYWRvdzogMCAxNHB4IDMwcHggcmdiYSgxNiwgMzEsIDQxLCAwLjEyKTtcbn1cblxuYm9keSB7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1XCIsIFwiU2Vnb2UgVUlcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1pbnYtdGV4dCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoMTEwMHB4IDQyMHB4IGF0IDglIC04JSwgcmdiYSgyMTcsIDExOSwgNTAsIDAuMTIpLCB0cmFuc3BhcmVudCA2NCUpLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoOTAwcHggNDAwcHggYXQgOTYlIC0xNiUsIHJnYmEoMjMsIDcxLCA5MSwgMC4xNSksIHRyYW5zcGFyZW50IDYwJSksXG4gICAgICAgIHZhcigtLWludi1iZykgIWltcG9ydGFudDtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbi5jYXJkLXRpdGxlLFxuLm5hdmJhci1icmFuZCxcbi5zaWRlYmFyLW5hdiAubmF2LWxpbmsge1xuICAgIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG59XG5cbiNtYWluIHtcbiAgICBtYXJnaW4tdG9wOiA3NHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMjJweCAyNnB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjJweCAyMnB4IDAgMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjUzLCAyNDksIDAuOTYpICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIuaGVhZGVyLFxuLmhlYWRlciB7XG4gICAgaGVpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1MiwgMjQ3LCAwLjkzKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1pbnYtYm9yZGVyKSAhaW1wb3J0YW50O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNHB4IHJnYmEoMjMsIDcxLCA5MSwgMC4xKSAhaW1wb3J0YW50O1xufVxuXG4uaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG4uYmkuYmktbGlzdC50b2dnbGUtc2lkZWJhci1idG4sXG4uaGVhZGVyLW5hdiAubmF2LWljb24ge1xuICAgIGNvbG9yOiB2YXIoLS1pbnYtcHJpbWFyeSkgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuOmhvdmVyLFxuLmJpLmJpLWxpc3QudG9nZ2xlLXNpZGViYXItYnRuOmhvdmVyLFxuLmhlYWRlci1uYXYgLm5hdi1pY29uOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0taW52LWFjY2VudCkgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIuc2lkZWJhcixcbi5zaWRlYmFyIHtcbiAgICB0b3A6IDY0cHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTc1ZGVnLCAjMTczZjUxIDAlLCAjMTIzNjQ2IDYyJSwgIzEwMmUzYyAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAxMHB4IDAgMjhweCByZ2JhKDgsIDI1LCAzNCwgMC4yNCkgIWltcG9ydGFudDtcbn1cblxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtaGVhZGluZyB7XG4gICAgY29sb3I6ICNjN2Q3ZGYgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayB7XG4gICAgY29sb3I6ICNlYmYzZjcgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgbWFyZ2luOiA0cHggMTBweDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIGkge1xuICAgIGNvbG9yOiAjZDdlOGVmICFpbXBvcnRhbnQ7XG59XG5cbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMTcsIDExOSwgNTAsIDAuMikgIWltcG9ydGFudDtcbn1cblxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUsXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpIHtcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMTcsIDExOSwgNTAsIDAuOTYpLCByZ2JhKDE5NCwgOTUsIDM2LCAwLjk2KSkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxNnB4IHJnYmEoMTc2LCA4OCwgMzEsIDAuMzQpO1xufVxuXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSBpLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGlua1tkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJdOm5vdCguY29sbGFwc2VkKSBpIHtcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xufVxuXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEge1xuICAgIGNvbG9yOiAjY2RlMGU4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cblxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhOmhvdmVyLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSB7XG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWltcG9ydGFudDtcbn1cblxuLmNhcmQsXG4ubW9kYWwtY29udGVudCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW52LWJvcmRlcikgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW52LXN1cmZhY2UpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogdmFyKC0taW52LXNoYWRvdykgIWltcG9ydGFudDtcbn1cblxuLm1vZGFsLWhlYWRlcixcbi5tb2RhbC1mb290ZXIge1xuICAgIGJvcmRlci1jb2xvcjogI2UyZGJjZiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNmY2Y4ZjEgIWltcG9ydGFudDtcbn1cblxuLmZvcm0tY29udHJvbCxcbi5mb3JtLXNlbGVjdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NmYzZiOCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmY2Y3ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLWludi10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4uZm9ybS1jb250cm9sOmZvY3VzLFxuLmZvcm0tc2VsZWN0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWludi1hY2NlbnQpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjE3LCAxMTksIDUwLCAwLjE4KSAhaW1wb3J0YW50O1xufVxuXG4uYnRuIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG59XG5cbi5idG4tcHJpbWFyeSxcbi5idG4tb3V0bGluZS1wcmltYXJ5IHtcbiAgICAtLWJzLWJ0bi1iZzogdmFyKC0taW52LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4tYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnYtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAtLWJzLWJ0bi1ob3Zlci1iZzogdmFyKC0taW52LXByaW1hcnktc3Ryb25nKSAhaW1wb3J0YW50O1xuICAgIC0tYnMtYnRuLWhvdmVyLWJvcmRlci1jb2xvcjogdmFyKC0taW52LXByaW1hcnktc3Ryb25nKSAhaW1wb3J0YW50O1xufVxuXG4uYnRuLXN1Y2Nlc3MsXG4uYnRuLW91dGxpbmUtc3VjY2VzcyB7XG4gICAgLS1icy1idG4tYmc6IHZhcigtLWludi1zdWNjZXNzKSAhaW1wb3J0YW50O1xuICAgIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogdmFyKC0taW52LXN1Y2Nlc3MpICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4taG92ZXItYmc6ICMyNTcyNTQgIWltcG9ydGFudDtcbiAgICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6ICMyNTcyNTQgIWltcG9ydGFudDtcbn1cblxuLmJ0bi1kYW5nZXIsXG4uYnRuLW91dGxpbmUtZGFuZ2VyIHtcbiAgICAtLWJzLWJ0bi1iZzogdmFyKC0taW52LWRhbmdlcikgIWltcG9ydGFudDtcbiAgICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWludi1kYW5nZXIpICFpbXBvcnRhbnQ7XG59XG5cbi5idG4td2FybmluZyxcbi5idG4tb3V0bGluZS13YXJuaW5nIHtcbiAgICAtLWJzLWJ0bi1iZzogdmFyKC0taW52LWFjY2VudCkgIWltcG9ydGFudDtcbiAgICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWludi1hY2NlbnQpICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4tY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDdjZmJmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMnB4IHJnYmEoMTYsIDMxLCA0MSwgMC4xMikgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZGY5ICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRoZWFkIHRoIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZjBlOGRiIDAlLCAjZTlkZWNlIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMxOTM0NDMgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q0YzdiMiAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCB7XG4gICAgY29sb3I6ICMyNDM3NDUgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VkZTVkNyAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGQge1xuICAgIGJhY2tncm91bmQ6ICNmZGY5ZjEgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdHI6aG92ZXIgdGQge1xuICAgIGJhY2tncm91bmQ6ICNmNGVkZTAgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjJlNyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTBkNWMzICFpbXBvcnRhbnQ7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsge1xuICAgIGNvbG9yOiB2YXIoLS1pbnYtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNkOGNmYmYgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZGY4ICFpbXBvcnRhbnQ7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWl0ZW0uYWN0aXZlIC5wYWdlLWxpbmsge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWludi1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW52LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuI2Zvb3Rlci5mb290ZXIsXG4uZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmMWU2ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGNmYmEgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzRhNWE2NiAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgI21haW4ge1xuICAgICAgICBwYWRkaW5nOiAxOHB4IDE0cHggIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweCAxNHB4IDAgMDtcbiAgICB9XG5cbiAgICAjaGVhZGVyLmhlYWRlcixcbiAgICAuaGVhZGVyIHtcbiAgICAgICAgaGVpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgI3NpZGViYXIuc2lkZWJhcixcbiAgICAuc2lkZWJhciB7XG4gICAgICAgIHRvcDogNjBweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLyogPT09PT0gSW52ZW50b3J5IFBybyBOYXZiYXIgKyBTaWRlYmFyIFJlZnJlc2ggPT09PT0gKi9cbjpyb290IHtcbiAgICAtLWludi1uYXYtYmc6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsICMwZjM0NDMgMCUsICMxNDQ5NWQgNTUlLCAjMTk1NjZmIDEwMCUpO1xuICAgIC0taW52LW5hdi1zdXJmYWNlOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIC0taW52LW5hdi1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gICAgLS1pbnYtbmF2LXRleHQ6ICNlOWY0ZmE7XG4gICAgLS1pbnYtbmF2LXRleHQtc29mdDogI2M0ZGJlNjtcbiAgICAtLWludi1uYXYtYWNjZW50OiAjZTQ4ODNjO1xuICAgIC0taW52LW5hdi1hY2NlbnQtc29mdDogcmdiYSgyMjgsIDEzNiwgNjAsIDAuMjIpO1xuICAgIC0taW52LW5hdi1zaGFkb3c6IDAgMTRweCAzMHB4IHJnYmEoNywgMjgsIDM4LCAwLjM1KTtcbn1cblxuI2hlYWRlci5oZWFkZXIsXG4uaGVhZGVyIHtcbiAgICBoZWlnaHQ6IDY2cHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnYtbmF2LWJnKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1pbnYtbmF2LWJvcmRlcikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1pbnYtbmF2LXNoYWRvdykgIWltcG9ydGFudDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTtcbn1cblxuLmhlYWRlciAubG9nbyBzcGFuLFxuLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHNwYW4sXG4uaGVhZGVyLW5hdiAubmF2LWljb24sXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG4uaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4ge1xuICAgIGNvbG9yOiB2YXIoLS1pbnYtbmF2LXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSB7XG4gICAgcGFkZGluZzogNnB4IDEwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnYtbmF2LWJvcmRlcikgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnYtbmF2LXN1cmZhY2UpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweCAhaW1wb3J0YW50O1xufVxuXG4uaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgaW1nIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5uYXYtaWNvbjpob3Zlcixcbi5oZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bjpob3ZlcixcbiNoZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bjpob3ZlciB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDEycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSxcbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUuc2hvdyxcbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LmRyb3Bkb3duLW1lbnUtZW5kLmRyb3Bkb3duLW1lbnUtYXJyb3cucHJvZmlsZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q0ZTNlYiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHggIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDE2cHggMzZweCByZ2JhKDEzLCAzNywgNTAsIDAuMikgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUucHJvZmlsZSAuZHJvcGRvd24taXRlbSB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LnByb2ZpbGUgLmRyb3Bkb3duLWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNlZWY2ZmIgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzEyM2Q1MCAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhci5zaWRlYmFyLFxuLnNpZGViYXIge1xuICAgIHRvcDogNjZweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg3MDBweCAzMjBweCBhdCAtMTAlIDAlLCByZ2JhKDIyOCwgMTM2LCA2MCwgMC4xNiksIHRyYW5zcGFyZW50IDYwJSksXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxODVkZWcsICMxMDJmM2QgMCUsICMxMjNhNGIgNjIlLCAjMTQzZjUyIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0taW52LW5hdi1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMTBweCAwIDI0cHggcmdiYSg4LCAyNSwgMzQsIDAuMzQpICFpbXBvcnRhbnQ7XG59XG5cbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWhlYWRpbmcge1xuICAgIGNvbG9yOiB2YXIoLS1pbnYtbmF2LXRleHQtc29mdCkgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbSAhaW1wb3J0YW50O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDE0cHggMTJweCA4cHggIWltcG9ydGFudDtcbn1cblxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayB7XG4gICAgbWFyZ2luOiA1cHggMTBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0taW52LW5hdi10ZXh0KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlICFpbXBvcnRhbnQ7XG59XG5cbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsgaSB7XG4gICAgY29sb3I6ICNkOGVhZjIgIWltcG9ydGFudDtcbn1cblxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluazpob3ZlciB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcbn1cblxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUsXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6XG4gICAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMjgsIDEzNiwgNjAsIDAuOTYpLCByZ2JhKDE5OCwgMTA0LCAzOCwgMC45NikpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDE4cHggcmdiYSgxNzYsIDg4LCAzMSwgMC4zNSkgIWltcG9ydGFudDtcbn1cblxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUgaSxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmtbZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXTpub3QoLmNvbGxhcHNlZCkgaSB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCB7XG4gICAgbWFyZ2luOiAwIDEwcHggOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xNCkgIWltcG9ydGFudDtcbn1cblxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhIHtcbiAgICBjb2xvcjogI2NhZTJlYyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xufVxuXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSAhaW1wb3J0YW50O1xufVxuXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWludi1uYXYtYWNjZW50LXNvZnQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1pbnYtbmF2LWFjY2VudCkgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICNoZWFkZXIuaGVhZGVyLFxuICAgIC5oZWFkZXIge1xuICAgICAgICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAjc2lkZWJhci5zaWRlYmFyLFxuICAgIC5zaWRlYmFyIHtcbiAgICAgICAgdG9wOiA2MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJTlZFTlRPUlkgVEhFTUUgMjAyNiAtIERJR0lUQUwgUFJPRkVTU0lPTkFMIEZJTkFMXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuOnJvb3Qge1xuICAgIC0taW52LWZvbnQtYm9keTogXCJJbnRlclwiLCBcIldvcmsgU2Fuc1wiLCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWY7XG4gICAgLS1pbnYtZm9udC10aXRsZTogXCJNb250c2VycmF0XCIsIFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcblxuICAgIC0taW52LWJnOiAjZWVmM2Y5O1xuICAgIC0taW52LWJnLXNvZnQ6ICNmN2ZhZmU7XG4gICAgLS1pbnYtc3VyZmFjZTogI2ZmZmZmZjtcbiAgICAtLWludi1ib3JkZXI6ICNkOWUzZWU7XG4gICAgLS1pbnYtdGV4dDogIzFhMmYzZjtcbiAgICAtLWludi10ZXh0LXNvZnQ6ICM2MTc3OGI7XG5cbiAgICAtLWludi1wcmltYXJ5OiAjMWI4NGM2O1xuICAgIC0taW52LXByaW1hcnktc3Ryb25nOiAjMTE2Mjk0O1xuICAgIC0taW52LWFjY2VudDogIzI3YTJlNjtcblxuICAgIC0taW52LXNoZWxsLWRhcms6ICMwZDI3Mzg7XG4gICAgLS1pbnYtc2hlbGwtbWlkOiAjMTE0MTVkO1xuICAgIC0taW52LXNoZWxsLWxpZ2h0OiAjMWE2ZDk5O1xuXG4gICAgLS1pbnYtc3VjY2VzczogIzEwODM1ZjtcbiAgICAtLWludi1kYW5nZXI6ICNjODRhNGE7XG4gICAgLS1pbnYtd2FybmluZzogI2NjOGExZjtcblxuICAgIC0taW52LXNoYWRvdy1zbTogMCA2cHggMTRweCByZ2JhKDEyLCAzNiwgNTIsIDAuMSk7XG4gICAgLS1pbnYtc2hhZG93LW1kOiAwIDE0cHggMzBweCByZ2JhKDEyLCAzNiwgNTIsIDAuMTQpO1xuICAgIC0taW52LXJhZGl1czogMTRweDtcbn1cblxuaHRtbCxcbmJvZHkge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1pbnYtZm9udC1ib2R5KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1pbnYtdGV4dCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoOTAwcHggMzgwcHggYXQgLTUlIC0xMCUsIHJnYmEoMzksIDE2MiwgMjMwLCAwLjE2KSwgdHJhbnNwYXJlbnQgNjIlKSxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KDg1MHB4IDM2MHB4IGF0IDEwNSUgLTEwJSwgcmdiYSgyNywgMTMyLCAxOTgsIDAuMTQpLCB0cmFuc3BhcmVudCA2MiUpLFxuICAgICAgICB2YXIoLS1pbnYtYmcpICFpbXBvcnRhbnQ7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG4uY2FyZC10aXRsZSxcbi5wYWdldGl0bGUgaDEge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1pbnYtZm9udC10aXRsZSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzEyMzY0YiAhaW1wb3J0YW50O1xufVxuXG4vKiBIZWFkZXIgKi9cbi5pbnZlbnRvcnktaGVhZGVyIHtcbiAgICBtaW4taGVpZ2h0OiA2OHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExNWRlZywgdmFyKC0taW52LXNoZWxsLWRhcmspIDAlLCB2YXIoLS1pbnYtc2hlbGwtbWlkKSA1NiUsIHZhcigtLWludi1zaGVsbC1saWdodCkgMTAwJSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDMwcHggcmdiYSg4LCAyNywgMzksIDAuMykgIWltcG9ydGFudDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbn1cblxuLmludmVudG9yeS1oZWFkZXIgLmxvZ28sXG4uaW52ZW50b3J5LWhlYWRlciAubG9nbyBzcGFuLFxuLmludmVudG9yeS1oZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bixcbi5pbnZlbnRvcnktaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbixcbi5pbnZlbnRvcnktaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSBzcGFuLFxuLmludmVudG9yeS1oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIGksXG4uaW52ZW50b3J5LWhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmssXG4uaW52ZW50b3J5LWhlYWRlciAuaGVhZGVyLW5hdiAuYmkge1xuICAgIGNvbG9yOiAjZjJmOWZmICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZlbnRvcnktaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG4uaW52ZW50b3J5LWhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWljb24ge1xuICAgIHdpZHRoOiAzOXB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAzOXB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZlbnRvcnktaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG46aG92ZXIsXG4uaW52ZW50b3J5LWhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWljb246aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xufVxuXG4uaW52ZW50b3J5LWhlYWRlciAuaW52ZW50b3J5LXNlYXJjaC1iYXIgLnNlYXJjaC1mb3JtIGlucHV0IHtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcbn1cblxuLmludmVudG9yeS1oZWFkZXIgLmludmVudG9yeS1zZWFyY2gtYmFyIC5zZWFyY2gtZm9ybSBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODYpICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZlbnRvcnktaGVhZGVyIC5pbnZlbnRvcnktc2VhcmNoLWJhciAuc2VhcmNoLWZvcm0gYnV0dG9uIGkge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZlbnRvcnktaGVhZGVyIC5pbnZlbnRvcnktaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjgpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDZweCAxMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZlbnRvcnktaGVhZGVyIC5pbnZlbnRvcnktaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgaW1nIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZlbnRvcnktaGVhZGVyIC5kcm9wZG93bi1tZW51IHtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW52LWJvcmRlcikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1pbnYtc2hhZG93LW1kKSAhaW1wb3J0YW50O1xufVxuXG4uaW52ZW50b3J5LWhlYWRlciAuZHJvcGRvd24taXRlbSB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZlbnRvcnktaGVhZGVyIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWRmNWZjICFpbXBvcnRhbnQ7XG59XG5cbi8qIFNpZGViYXIgKi9cbi5pbnZlbnRvcnktc2lkZWJhciB7XG4gICAgdG9wOiA2OHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KDU2MHB4IDI2MHB4IGF0IC04JSAwJSwgcmdiYSgzOSwgMTYyLCAyMzAsIDAuMTgpLCB0cmFuc3BhcmVudCA2NiUpLFxuICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTg1ZGVnLCAjMTAyZDNmIDAlLCAjMTI0NjVmIDYyJSwgIzE1NWY4MiAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAxMHB4IDAgMjRweCByZ2JhKDcsIDIzLCAzNCwgMC4zNCkgIWltcG9ydGFudDtcbn1cblxuLmludmVudG9yeS1zaWRlYmFyIC5uYXYtaGVhZGluZyB7XG4gICAgY29sb3I6IHJnYmEoMjE5LCAyNDEsIDI1NSwgMC44MikgIWltcG9ydGFudDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbSAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbn1cblxuLmludmVudG9yeS1zaWRlYmFyIC5uYXYtbGluayB7XG4gICAgbWFyZ2luOiA1cHggMTBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDkpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA3KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZjJmOWZmICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xufVxuXG4uaW52ZW50b3J5LXNpZGViYXIgLm5hdi1saW5rIGkge1xuICAgIGNvbG9yOiAjZDhlY2Y5ICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZlbnRvcnktc2lkZWJhciAubmF2LWxpbms6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMikgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSAhaW1wb3J0YW50O1xufVxuXG4uaW52ZW50b3J5LXNpZGViYXIgLm5hdi1saW5rLmFjdGl2ZSxcbi5pbnZlbnRvcnktc2lkZWJhciAubmF2LWxpbmtbZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXTpub3QoLmNvbGxhcHNlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0taW52LXByaW1hcnkpIDAlLCB2YXIoLS1pbnYtYWNjZW50KSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCA5cHggMThweCByZ2JhKDIxLCAxMTAsIDE2MywgMC4zNCkgIWltcG9ydGFudDtcbn1cblxuLmludmVudG9yeS1zaWRlYmFyIC5uYXYtY29udGVudCB7XG4gICAgbWFyZ2luOiAwIDEwcHggOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xNSkgIWltcG9ydGFudDtcbn1cblxuLmludmVudG9yeS1zaWRlYmFyIC5uYXYtY29udGVudCBhIHtcbiAgICBjb2xvcjogI2Q4ZWRmOCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xufVxuXG4uaW52ZW50b3J5LXNpZGViYXIgLm5hdi1jb250ZW50IGE6aG92ZXIsXG4uaW52ZW50b3J5LXNpZGViYXIgLm5hdi1jb250ZW50IGEuYWN0aXZlIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkgIWltcG9ydGFudDtcbn1cblxuLyogTWFpbiBhcmVhICovXG4jbWFpbi5tYWluIHtcbiAgICBtYXJnaW4tdG9wOiA3NHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHggMTZweCAwIDAgIWltcG9ydGFudDtcbn1cblxuI2Zvb3Rlci5mb290ZXIsXG4uZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmNWZhICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWludi1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICM1Yzc0ODggIWltcG9ydGFudDtcbn1cblxuLmNhcmQsXG4ubW9kYWwtY29udGVudCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW52LWJvcmRlcikgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnYtcmFkaXVzKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWludi1zdXJmYWNlKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWludi1zaGFkb3ctc20pICFpbXBvcnRhbnQ7XG59XG5cbi5jYXJkLXRpdGxlIHtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG59XG5cbi5mb3JtLWNvbnRyb2wsXG4uZm9ybS1zZWxlY3Qge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjOWQ4ZTYgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMxNTM4NGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5mb3JtLWNvbnRyb2w6Zm9jdXMsXG4uZm9ybS1zZWxlY3Q6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW52LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjcsIDEzMiwgMTk4LCAwLjE4KSAhaW1wb3J0YW50O1xufVxuXG4uYnRuIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW0gIWltcG9ydGFudDtcbn1cblxuLmJ0bi1wcmltYXJ5LFxuLmJ0bi1vdXRsaW5lLXByaW1hcnkge1xuICAgIC0tYnMtYnRuLWJnOiB2YXIoLS1pbnYtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWludi1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgIC0tYnMtYnRuLWhvdmVyLWJnOiB2YXIoLS1pbnYtcHJpbWFyeS1zdHJvbmcpICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnYtcHJpbWFyeS1zdHJvbmcpICFpbXBvcnRhbnQ7XG59XG5cbi5idG4tc3VjY2Vzcyxcbi5idG4tb3V0bGluZS1zdWNjZXNzIHtcbiAgICAtLWJzLWJ0bi1iZzogdmFyKC0taW52LXN1Y2Nlc3MpICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4tYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnYtc3VjY2VzcykgIWltcG9ydGFudDtcbn1cblxuLmJ0bi1kYW5nZXIsXG4uYnRuLW91dGxpbmUtZGFuZ2VyIHtcbiAgICAtLWJzLWJ0bi1iZzogdmFyKC0taW52LWRhbmdlcikgIWltcG9ydGFudDtcbiAgICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWludi1kYW5nZXIpICFpbXBvcnRhbnQ7XG59XG5cbi8qIExvZ2luICovXG4uaW52ZW50b3J5LWF1dGgge1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KDY0MHB4IDMyMHB4IGF0IDAlIDAlLCByZ2JhKDM5LCAxNjIsIDIzMCwgMC4xOCksIHRyYW5zcGFyZW50IDY2JSksXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg2NDBweCAzMjBweCBhdCAxMDAlIDAlLCByZ2JhKDI3LCAxMzIsIDE5OCwgMC4xNiksIHRyYW5zcGFyZW50IDY2JSksXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNlZGY0ZmMgMCUsICNlNGVkZjggMTAwJSkgIWltcG9ydGFudDtcbn1cblxuLmludmVudG9yeS1hdXRoIC5sb2dvIHNwYW4ge1xuICAgIGNvbG9yOiAjMTE0NDYzICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50O1xufVxuXG4uaW52ZW50b3J5LWF1dGgtY2FyZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWUxZWUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDE2cHggMzBweCByZ2JhKDEyLCAzNywgNTMsIDAuMTgpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KSAhaW1wb3J0YW50O1xufVxuXG4uaW52ZW50b3J5LWF1dGggLmNhcmQtdGl0bGUge1xuICAgIGNvbG9yOiAjMTE0NjY1ICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZlbnRvcnktYXV0aCBhIHtcbiAgICBjb2xvcjogdmFyKC0taW52LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xufVxuXG4uaW52ZW50b3J5LWF1dGggYTpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWludi1wcmltYXJ5LXN0cm9uZykgIWltcG9ydGFudDtcbn1cblxuLyogTW9iaWxlICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgLmludmVudG9yeS1oZWFkZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiA3MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmludmVudG9yeS1zaWRlYmFyIHtcbiAgICAgICAgdG9wOiA3MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAyOTJweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICNtYWluLm1haW4sXG4gICAgI2Zvb3Rlci5mb290ZXIsXG4gICAgLmZvb3RlciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyOTJweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJvZHkudG9nZ2xlLXNpZGViYXIgI21haW4ubWFpbixcbiAgICBib2R5LnRvZ2dsZS1zaWRlYmFyICNmb290ZXIuZm9vdGVyLFxuICAgIGJvZHkudG9nZ2xlLXNpZGViYXIgLmZvb3RlciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYm9keS50b2dnbGUtc2lkZWJhciAuaW52ZW50b3J5LXNpZGViYXIge1xuICAgICAgICBsZWZ0OiAtMjkycHggIWltcG9ydGFudDtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuaW52ZW50b3J5LWhlYWRlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDY0cHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmludmVudG9yeS1zaWRlYmFyIHtcbiAgICAgICAgdG9wOiA2NHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxlZnQ6IC0yOTJweCAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMjkycHggIWltcG9ydGFudDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAxNHB4IDE0cHggMCAhaW1wb3J0YW50O1xuICAgICAgICB6LWluZGV4OiAxMDU1ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYm9keS50b2dnbGUtc2lkZWJhciAuaW52ZW50b3J5LXNpZGViYXIge1xuICAgICAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYm9keS50b2dnbGUtc2lkZWJhciB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBib2R5LnRvZ2dsZS1zaWRlYmFyOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgICAgICBpbnNldDogNjRweCAwIDAgMCAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDksIDI5LCA0MywgMC41MikgIWltcG9ydGFudDtcbiAgICAgICAgei1pbmRleDogMTA1MCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICNtYWluLm1haW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiA3MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHggMTJweCAwIDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMTRweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICNmb290ZXIuZm9vdGVyLFxuICAgIC5mb290ZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pbnZlbnRvcnktaGVhZGVyIC5pbnZlbnRvcnktc2VhcmNoLWJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgICAgICB0b3A6IDY2cHggIWltcG9ydGFudDtcbiAgICAgICAgbGVmdDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICByaWdodDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDExLCA0MywgNjIsIDAuOTYpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgei1pbmRleDogMTA2MCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgLmludmVudG9yeS1oZWFkZXIgLmxvZ28gc3BhbixcbiAgICAuaW52ZW50b3J5LWhlYWRlciAuaW52ZW50b3J5LWhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmludmVudG9yeS1oZWFkZXIgLmludmVudG9yeS1oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSB7XG4gICAgICAgIHBhZGRpbmc6IDVweCA4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW52ZW50b3J5LWF1dGgge1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDEycHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW52ZW50b3J5LWF1dGgtY2FyZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIHtcbiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuc2VhcmNoLFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLnNlYXJjaCBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgICAjbWFpbi5tYWluIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnBhZ2V0aXRsZSBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pbnZlbnRvcnktYXV0aCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMGR2aCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDhweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pbnZlbnRvcnktYXV0aC1jYXJkIC5jYXJkLWJvZHkge1xuICAgICAgICBwYWRkaW5nOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm1vZGFsLWRpYWxvZyB7XG4gICAgICAgIG1hcmdpbjogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyLFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLWJvZHkge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSU5WRU5UT1JZIFRIRU1FIC0gRElHSVRBTCBQUk9GRVNTSU9OQUwgKENTUyBPTkxZIEZJTkFMIExBWUVSKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbjpyb290IHtcbiAgICAtLWludngtYmc6ICNlZWYzZjk7XG4gICAgLS1pbnZ4LWJnLXNvZnQ6ICNmN2ZhZmU7XG4gICAgLS1pbnZ4LXN1cmZhY2U6ICNmZmZmZmY7XG4gICAgLS1pbnZ4LWJvcmRlcjogI2Q3ZTJlZTtcbiAgICAtLWludngtdGV4dDogIzFjMzA0MDtcbiAgICAtLWludngtdGV4dC1zb2Z0OiAjNjU3YjhmO1xuXG4gICAgLS1pbnZ4LXByaW1hcnk6ICMxYzg2Yzg7XG4gICAgLS1pbnZ4LXByaW1hcnktc3Ryb25nOiAjMTQ2NDkzO1xuICAgIC0taW52eC1hY2NlbnQ6ICMyZGE4ZWE7XG5cbiAgICAtLWludngtc2hlbGwtMTogIzBkMjgzODtcbiAgICAtLWludngtc2hlbGwtMjogIzExNDI1ZDtcbiAgICAtLWludngtc2hlbGwtMzogIzFhNmQ5ODtcblxuICAgIC0taW52eC1zdWNjZXNzOiAjMTI4MjYxO1xuICAgIC0taW52eC1kYW5nZXI6ICNjODRhNGE7XG5cbiAgICAtLWludngtc2hhZG93LXNtOiAwIDhweCAxOHB4IHJnYmEoMTIsIDM2LCA1MiwgMC4xKTtcbiAgICAtLWludngtc2hhZG93LW1kOiAwIDE0cHggMzBweCByZ2JhKDEyLCAzNiwgNTIsIDAuMTUpO1xufVxuXG5odG1sLFxuYm9keSB7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgXCJXb3JrIFNhbnNcIiwgXCJQb3BwaW5zXCIsIFwiU2Vnb2UgVUlcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1pbnZ4LXRleHQpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KDkyMHB4IDM2MHB4IGF0IC01JSAtMTAlLCByZ2JhKDQ1LCAxNjgsIDIzNCwgMC4xNiksIHRyYW5zcGFyZW50IDYyJSksXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg4MjBweCAzNDBweCBhdCAxMDUlIC0xMCUsIHJnYmEoMjgsIDEzNCwgMjAwLCAwLjE0KSwgdHJhbnNwYXJlbnQgNjIlKSxcbiAgICAgICAgdmFyKC0taW52eC1iZykgIWltcG9ydGFudDtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxuLmNhcmQtdGl0bGUsXG4ucGFnZXRpdGxlIGgxIHtcbiAgICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsIFwiSW50ZXJcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMTIzOTRmICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIuaGVhZGVyLFxuLmhlYWRlciB7XG4gICAgbWluLWhlaWdodDogNjhweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTVkZWcsIHZhcigtLWludngtc2hlbGwtMSkgMCUsIHZhcigtLWludngtc2hlbGwtMikgNTglLCB2YXIoLS1pbnZ4LXNoZWxsLTMpIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMTRweCAzMHB4IHJnYmEoOCwgMjcsIDM5LCAwLjMpICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmxvZ28sXG4jaGVhZGVyIC5sb2dvIHNwYW4sXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbixcbiNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHNwYW4sXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayxcbiNoZWFkZXIgLmJpIHtcbiAgICBjb2xvcjogI2YwZjhmZiAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbixcbi5oZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bixcbi5oZWFkZXItbmF2IC5uYXYtaWNvbiB7XG4gICAgd2lkdGg6IDM5cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDM5cHggIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuOmhvdmVyLFxuI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LWljb246aG92ZXIsXG4uaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG46aG92ZXIsXG4uaGVhZGVyLW5hdiAubmF2LWljb246aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5zZWFyY2gtYmFyIC5zZWFyY2gtZm9ybSBpbnB1dCxcbi5oZWFkZXIgLnNlYXJjaC1iYXIgLnNlYXJjaC1mb3JtIGlucHV0IHtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuc2VhcmNoLWJhciAuc2VhcmNoLWZvcm0gaW5wdXQ6OnBsYWNlaG9sZGVyLFxuLmhlYWRlciAuc2VhcmNoLWJhciAuc2VhcmNoLWZvcm0gaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg2KSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5zZWFyY2gtYmFyIC5zZWFyY2gtZm9ybSBidXR0b24gaSxcbi5oZWFkZXIgLnNlYXJjaC1iYXIgLnNlYXJjaC1mb3JtIGJ1dHRvbiBpIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSxcbi5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yOCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogNnB4IDEycHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgaW1nLFxuLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIGltZyB7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM4KSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51LFxuLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUge1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnZ4LWJvcmRlcikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1pbnZ4LXNoYWRvdy1tZCkgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbSxcbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpob3Zlcixcbi5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWRmNWZjICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyLnNpZGViYXIsXG4uc2lkZWJhciB7XG4gICAgdG9wOiA2OHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KDU2MHB4IDI3MHB4IGF0IC04JSAwJSwgcmdiYSg0NSwgMTY4LCAyMzQsIDAuMTgpLCB0cmFuc3BhcmVudCA2NiUpLFxuICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTg1ZGVnLCAjMTAyZDNmIDAlLCAjMTI0NTVmIDYyJSwgIzE1NWY4MiAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAxMHB4IDAgMjRweCByZ2JhKDgsIDIzLCAzNCwgMC4zNCkgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtaGVhZGluZyxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWhlYWRpbmcge1xuICAgIGNvbG9yOiByZ2JhKDIxOSwgMjQxLCAyNTUsIDAuODQpICFpbXBvcnRhbnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW0gIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmssXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIHtcbiAgICBtYXJnaW46IDVweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2YyZjlmZiAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayBpLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayBpIHtcbiAgICBjb2xvcjogI2Q4ZWNmOSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rOmhvdmVyLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluazpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUsXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUsXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWludngtcHJpbWFyeSkgMCUsIHZhcigtLWludngtYWNjZW50KSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCA5cHggMThweCByZ2JhKDIxLCAxMTEsIDE2NCwgMC4zNCkgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQge1xuICAgIG1hcmdpbjogMCAxMHB4IDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDRweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTUpICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSB7XG4gICAgY29sb3I6ICNkOGVkZjggIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhOmhvdmVyLFxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYTpob3Zlcixcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSAhaW1wb3J0YW50O1xufVxuXG4jbWFpbi5tYWluLFxuI21haW4ge1xuICAgIG1hcmdpbi10b3A6IDc0cHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweCAxNnB4IDAgMCAhaW1wb3J0YW50O1xufVxuXG4jZm9vdGVyLmZvb3Rlcixcbi5mb290ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMGY1ZmEgIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0taW52eC1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICM1ZDc0ODggIWltcG9ydGFudDtcbn1cblxuLmNhcmQsXG4ubW9kYWwtY29udGVudCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW52eC1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWludngtc3VyZmFjZSkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1pbnZ4LXNoYWRvdy1zbSkgIWltcG9ydGFudDtcbn1cblxuLmZvcm0tY29udHJvbCxcbi5mb3JtLXNlbGVjdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2M4ZDhlNyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzE1Mzg0ZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZvcm0tY29udHJvbDpmb2N1cyxcbi5mb3JtLXNlbGVjdDpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnZ4LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjgsIDEzNCwgMjAwLCAwLjE4KSAhaW1wb3J0YW50O1xufVxuXG4uYnRuIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xufVxuXG4uYnRuLXByaW1hcnksXG4uYnRuLW91dGxpbmUtcHJpbWFyeSB7XG4gICAgLS1icy1idG4tYmc6IHZhcigtLWludngtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWludngtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAtLWJzLWJ0bi1ob3Zlci1iZzogdmFyKC0taW52eC1wcmltYXJ5LXN0cm9uZykgIWltcG9ydGFudDtcbiAgICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6IHZhcigtLWludngtcHJpbWFyeS1zdHJvbmcpICFpbXBvcnRhbnQ7XG59XG5cbi5idG4tc3VjY2Vzcyxcbi5idG4tb3V0bGluZS1zdWNjZXNzIHtcbiAgICAtLWJzLWJ0bi1iZzogdmFyKC0taW52eC1zdWNjZXNzKSAhaW1wb3J0YW50O1xuICAgIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogdmFyKC0taW52eC1zdWNjZXNzKSAhaW1wb3J0YW50O1xufVxuXG4uYnRuLWRhbmdlcixcbi5idG4tb3V0bGluZS1kYW5nZXIge1xuICAgIC0tYnMtYnRuLWJnOiB2YXIoLS1pbnZ4LWRhbmdlcikgIWltcG9ydGFudDtcbiAgICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWludngtZGFuZ2VyKSAhaW1wb3J0YW50O1xufVxuXG4uc2VjdGlvbi5yZWdpc3RlciB7XG4gICAgbWluLWhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoNjQwcHggMzIwcHggYXQgMCUgMCUsIHJnYmEoNDUsIDE2OCwgMjM0LCAwLjE4KSwgdHJhbnNwYXJlbnQgNjYlKSxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KDY0MHB4IDMyMHB4IGF0IDEwMCUgMCUsIHJnYmEoMjgsIDEzNCwgMjAwLCAwLjE2KSwgdHJhbnNwYXJlbnQgNjYlKSxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2VkZjRmYyAwJSwgI2U0ZWRmOCAxMDAlKSAhaW1wb3J0YW50O1xufVxuXG4uc2VjdGlvbi5yZWdpc3RlciAuY2FyZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QxZTFlZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHggIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDE2cHggMzBweCByZ2JhKDEyLCAzNywgNTMsIDAuMTgpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KSAhaW1wb3J0YW50O1xufVxuXG4uc2VjdGlvbi5yZWdpc3RlciAuY2FyZC10aXRsZSB7XG4gICAgY29sb3I6ICMxMTQ2NjUgIWltcG9ydGFudDtcbn1cblxuLnNlY3Rpb24ucmVnaXN0ZXIgYSB7XG4gICAgY29sb3I6IHZhcigtLWludngtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG59XG5cbi5zZWN0aW9uLnJlZ2lzdGVyIGE6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1pbnZ4LXByaW1hcnktc3Ryb25nKSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgI2hlYWRlci5oZWFkZXIsXG4gICAgLmhlYWRlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDcwcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAjc2lkZWJhci5zaWRlYmFyLFxuICAgIC5zaWRlYmFyIHtcbiAgICAgICAgdG9wOiA3MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAyOTJweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICNtYWluLFxuICAgICNtYWluLm1haW4sXG4gICAgI2Zvb3RlcixcbiAgICAjZm9vdGVyLmZvb3RlcixcbiAgICAuZm9vdGVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI5MnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYm9keS50b2dnbGUtc2lkZWJhciAjbWFpbixcbiAgICBib2R5LnRvZ2dsZS1zaWRlYmFyICNtYWluLm1haW4sXG4gICAgYm9keS50b2dnbGUtc2lkZWJhciAjZm9vdGVyLFxuICAgIGJvZHkudG9nZ2xlLXNpZGViYXIgI2Zvb3Rlci5mb290ZXIsXG4gICAgYm9keS50b2dnbGUtc2lkZWJhciAuZm9vdGVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBib2R5LnRvZ2dsZS1zaWRlYmFyICNzaWRlYmFyLnNpZGViYXIsXG4gICAgYm9keS50b2dnbGUtc2lkZWJhciAuc2lkZWJhciB7XG4gICAgICAgIGxlZnQ6IC0yOTJweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICNoZWFkZXIuaGVhZGVyLFxuICAgIC5oZWFkZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICNzaWRlYmFyLnNpZGViYXIsXG4gICAgLnNpZGViYXIge1xuICAgICAgICB0b3A6IDY0cHggIWltcG9ydGFudDtcbiAgICAgICAgbGVmdDogLTI5MnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAyOTJweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAyNHB4KSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDE0cHggMTRweCAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHotaW5kZXg6IDEwNTUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBib2R5LnRvZ2dsZS1zaWRlYmFyICNzaWRlYmFyLnNpZGViYXIsXG4gICAgYm9keS50b2dnbGUtc2lkZWJhciAuc2lkZWJhciB7XG4gICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBib2R5LnRvZ2dsZS1zaWRlYmFyIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJvZHkudG9nZ2xlLXNpZGViYXI6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCIgIWltcG9ydGFudDtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gICAgICAgIGluc2V0OiA2NHB4IDAgMCAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoOSwgMjksIDQzLCAwLjUyKSAhaW1wb3J0YW50O1xuICAgICAgICB6LWluZGV4OiAxMDUwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgI21haW4sXG4gICAgI21haW4ubWFpbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDcwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweCAxMnB4IDAgMCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgI2Zvb3RlcixcbiAgICAjZm9vdGVyLmZvb3RlcixcbiAgICAuZm9vdGVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAjaGVhZGVyIC5zZWFyY2gtYmFyLFxuICAgIC5oZWFkZXIgLnNlYXJjaC1iYXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgICAgICAgdG9wOiA2NnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxlZnQ6IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgcmlnaHQ6IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMSwgNDMsIDYyLCAwLjk2KSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHotaW5kZXg6IDEwNjAgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgICNoZWFkZXIgLmxvZ28gc3BhbixcbiAgICAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUge1xuICAgICAgICBwYWRkaW5nOiA1cHggOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDhweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLnNlYXJjaCxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5zZWFyY2ggaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gICAgI21haW4sXG4gICAgI21haW4ubWFpbiB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTBweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5wYWdldGl0bGUgaDEge1xuICAgICAgICBmb250LXNpemU6IDIwcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2VjdGlvbi5yZWdpc3RlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMGR2aCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDhweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zZWN0aW9uLnJlZ2lzdGVyIC5jYXJkLWJvZHkge1xuICAgICAgICBwYWRkaW5nOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm1vZGFsLWRpYWxvZyB7XG4gICAgICAgIG1hcmdpbjogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSU5WRU5UT1JZIFRIRU1FIC0gUEFMRVRURSAxIFwiREVFUCBURUNIXCJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG46cm9vdCB7XG4gICAgLS1pbnZ4LWJnOiAjZTJlOGYwICFpbXBvcnRhbnQ7XG4gICAgLS1pbnZ4LWJnLXNvZnQ6ICNmMWY1ZjkgIWltcG9ydGFudDtcbiAgICAtLWludngtc3VyZmFjZTogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIC0taW52eC1ib3JkZXI6ICNjYmQ1ZTEgIWltcG9ydGFudDtcbiAgICAtLWludngtdGV4dDogIzBiMTIyMCAhaW1wb3J0YW50O1xuICAgIC0taW52eC10ZXh0LXNvZnQ6ICMzMzQxNTUgIWltcG9ydGFudDtcblxuICAgIC0taW52eC1wcmltYXJ5OiAjMjU2M2ViICFpbXBvcnRhbnQ7XG4gICAgLS1pbnZ4LXByaW1hcnktc3Ryb25nOiAjMWUzYThhICFpbXBvcnRhbnQ7XG4gICAgLS1pbnZ4LWFjY2VudDogIzM4YmRmOCAhaW1wb3J0YW50O1xuXG4gICAgLS1pbnZ4LXNoZWxsLTE6ICMwYjEyMjAgIWltcG9ydGFudDtcbiAgICAtLWludngtc2hlbGwtMjogIzFlM2E4YSAhaW1wb3J0YW50O1xuICAgIC0taW52eC1zaGVsbC0zOiAjMjU2M2ViICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkge1xuICAgIGJhY2tncm91bmQ6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg5MjBweCAzNjBweCBhdCAtNSUgLTEwJSwgcmdiYSg1NiwgMTg5LCAyNDgsIDAuMTYpLCB0cmFuc3BhcmVudCA2MiUpLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoODIwcHggMzQwcHggYXQgMTA1JSAtMTAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE0KSwgdHJhbnNwYXJlbnQgNjIlKSxcbiAgICAgICAgdmFyKC0taW52eC1iZykgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlci5oZWFkZXIsXG4uaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTE1ZGVnLCB2YXIoLS1pbnZ4LXNoZWxsLTEpIDAlLCB2YXIoLS1pbnZ4LXNoZWxsLTIpIDU4JSwgdmFyKC0taW52eC1zaGVsbC0zKSAxMDAlKSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhci5zaWRlYmFyLFxuLnNpZGViYXIge1xuICAgIGJhY2tncm91bmQ6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg1NjBweCAyNzBweCBhdCAtOCUgMCUsIHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjE4KSwgdHJhbnNwYXJlbnQgNjYlKSxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4NWRlZywgIzBiMTIyMCAwJSwgIzFlM2E4YSA2MiUsICMyNTYzZWIgMTAwJSkgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUsXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUsXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWludngtcHJpbWFyeSkgMCUsIHZhcigtLWludngtYWNjZW50KSAxMDAlKSAhaW1wb3J0YW50O1xufVxuXG4uZm9ybS1jb250cm9sOmZvY3VzLFxuLmZvcm0tc2VsZWN0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWludngtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xOCkgIWltcG9ydGFudDtcbn1cblxuLmJ0bi1wcmltYXJ5LFxuLmJ0bi1vdXRsaW5lLXByaW1hcnkge1xuICAgIC0tYnMtYnRuLWJnOiB2YXIoLS1pbnZ4LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4tYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnZ4LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4taG92ZXItYmc6IHZhcigtLWludngtcHJpbWFyeS1zdHJvbmcpICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnZ4LXByaW1hcnktc3Ryb25nKSAhaW1wb3J0YW50O1xufVxuXG4uc2VjdGlvbi5yZWdpc3RlciB7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KDY0MHB4IDMyMHB4IGF0IDAlIDAlLCByZ2JhKDU2LCAxODksIDI0OCwgMC4xOCksIHRyYW5zcGFyZW50IDY2JSksXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg2NDBweCAzMjBweCBhdCAxMDAlIDAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE2KSwgdHJhbnNwYXJlbnQgNjYlKSxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2UyZThmMCAwJSwgI2YxZjVmOSAxMDAlKSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgREVFUCBURUNIIC0gSEFSRCBMT0NLIE5BVkJBUiArIFNJREVCQVIgKFZJU0lCSUxJREFEIFRPVEFMKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiNoZWFkZXIuaGVhZGVyLFxuLmhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzBiMTIyMCAwJSwgIzFlM2E4YSA1OCUsICMyNTYzZWIgMTAwJSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDI4cHggcmdiYSg3LCAxNywgMzgsIDAuMzQpICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmxvZ28gc3BhbixcbiNoZWFkZXIgLmxvZ28gaSxcbiNoZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bixcbiNoZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0biBpLFxuI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmssXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbixcbiNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1pY29uIGksXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSBzcGFuLFxuI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgaSxcbiNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIC5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiAjZjhmYmZmICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bixcbiNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1pY29uIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHggIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuOmhvdmVyLFxuI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LWljb246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLnNlYXJjaC1iYXIgLnNlYXJjaC1mb3JtIGlucHV0IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLnNlYXJjaC1iYXIgLnNlYXJjaC1mb3JtIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NikgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuc2VhcmNoLWJhciAuc2VhcmNoLWZvcm0gYnV0dG9uLFxuI2hlYWRlciAuc2VhcmNoLWJhciAuc2VhcmNoLWZvcm0gYnV0dG9uIGkge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweCAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSBpbWcge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40MikgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudSxcbiNoZWFkZXIgLnNlYXJjaC1ub3RpZnktZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2JkNWUxICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDMwcHggcmdiYSgxNSwgMjMsIDQyLCAwLjIpICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWhlYWRlcixcbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0sXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIGksXG4jaGVhZGVyIC5zZWFyY2gtbm90aWZ5LWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1oZWFkZXIsXG4jaGVhZGVyIC5zZWFyY2gtbm90aWZ5LWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5ub3RpZmljYXRpb24taXRlbSxcbiNoZWFkZXIgLnNlYXJjaC1ub3RpZnktZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUgLm5vdGlmaWNhdGlvbi1pdGVtIGEsXG4jaGVhZGVyIC5zZWFyY2gtbm90aWZ5LWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5ub3RpZmljYXRpb24taXRlbSBzcGFuLFxuI2hlYWRlciAuc2VhcmNoLW5vdGlmeS1kcm9wZG93biAuZHJvcGRvd24tbWVudSAubm90aWZpY2F0aW9uLWl0ZW0gc3Ryb25nIHtcbiAgICBjb2xvcjogIzBmMTcyYSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmhvdmVyLFxuI2hlYWRlciAuc2VhcmNoLW5vdGlmeS1kcm9wZG93biAuZHJvcGRvd24tbWVudSAubm90aWZpY2F0aW9uLWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNlMGYyZmUgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIuc2lkZWJhcixcbi5zaWRlYmFyIHtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoNTYwcHggMjgwcHggYXQgLTglIDAlLCByZ2JhKDU2LCAxODksIDI0OCwgMC4xOCksIHRyYW5zcGFyZW50IDY2JSksXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxODVkZWcsICMwYjEyMjAgMCUsICMxZTNhOGEgNjIlLCAjMjU2M2ViIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDEwcHggMCAyNHB4IHJnYmEoNSwgMTQsIDMyLCAwLjM0KSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1oZWFkaW5nLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtaGVhZGluZyB7XG4gICAgY29sb3I6IHJnYmEoMjMzLCAyNDUsIDI1NSwgMC44OCkgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayxcbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsgc3BhbixcbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsgaSxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmssXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIHNwYW4sXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIGkge1xuICAgIGNvbG9yOiAjZWZmOGZmICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmssXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweCAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rOmhvdmVyLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluazpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSxcbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmtbZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXTpub3QoLmNvbGxhcHNlZCksXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmtbZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXTpub3QoLmNvbGxhcHNlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzI1NjNlYiAwJSwgIzM4YmRmOCAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsuYWN0aXZlIHNwYW4sXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSBpLFxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGlua1tkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJdOm5vdCguY29sbGFwc2VkKSBzcGFuLFxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGlua1tkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJdOm5vdCguY29sbGFwc2VkKSBpLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUgc3Bhbixcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsuYWN0aXZlIGksXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpIHNwYW4sXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpIGkge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQsXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTYpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEsXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEgc3BhbixcbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSBpLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhIHNwYW4sXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEgaSB7XG4gICAgY29sb3I6ICNkZWYwZmYgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhOmhvdmVyLFxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYTpob3Zlcixcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYS5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgI2hlYWRlci5oZWFkZXIsXG4gICAgLmhlYWRlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDY0cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAjc2lkZWJhci5zaWRlYmFyLFxuICAgIC5zaWRlYmFyIHtcbiAgICAgICAgdG9wOiA2NHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSU5WRU5UT1JZIEVMRUdBTlQgVEhFTUUgLSBGSU5BTCBMQVlFUlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbjpyb290IHtcbiAgICAtLWVsZWctYmc6ICNlZGYyZjcgIWltcG9ydGFudDtcbiAgICAtLWVsZWctc3VyZmFjZTogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIC0tZWxlZy1ib3JkZXI6ICNkMmRkZTggIWltcG9ydGFudDtcbiAgICAtLWVsZWctdGV4dDogIzFmMmYzZiAhaW1wb3J0YW50O1xuICAgIC0tZWxlZy10ZXh0LXNvZnQ6ICM1ZjczODcgIWltcG9ydGFudDtcblxuICAgIC0tZWxlZy1wcmltYXJ5OiAjMmY1ZDhhICFpbXBvcnRhbnQ7XG4gICAgLS1lbGVnLXByaW1hcnktZGFyazogIzI1NGE2ZCAhaW1wb3J0YW50O1xuICAgIC0tZWxlZy1hY2NlbnQ6ICMyZmE1OGQgIWltcG9ydGFudDtcbiAgICAtLWVsZWctYWNjZW50LXNvZnQ6ICNkOGYxZWEgIWltcG9ydGFudDtcblxuICAgIC0tZWxlZy1zaGVsbC0xOiAjMWEyNDMzICFpbXBvcnRhbnQ7XG4gICAgLS1lbGVnLXNoZWxsLTI6ICMyNDM2NGIgIWltcG9ydGFudDtcbiAgICAtLWVsZWctc2hlbGwtMzogIzJmNWQ4YSAhaW1wb3J0YW50O1xufVxuXG5ib2R5IHtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBcIldvcmsgU2Fuc1wiLCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tZWxlZy10ZXh0KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg5MDBweCAzNjBweCBhdCAtNiUgLTE0JSwgcmdiYSg0NywgMTY1LCAxNDEsIDAuMTMpLCB0cmFuc3BhcmVudCA2MiUpLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoODYwcHggMzQwcHggYXQgMTA2JSAtMTQlLCByZ2JhKDQ3LCA5MywgMTM4LCAwLjE1KSwgdHJhbnNwYXJlbnQgNjIlKSxcbiAgICAgICAgdmFyKC0tZWxlZy1iZykgIWltcG9ydGFudDtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgLmNhcmQtdGl0bGUsIC5wYWdldGl0bGUgaDEge1xuICAgIGNvbG9yOiAjMWEzMzRhICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIuaGVhZGVyLFxuLmhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEwOGRlZywgdmFyKC0tZWxlZy1zaGVsbC0xKSAwJSwgdmFyKC0tZWxlZy1zaGVsbC0yKSA1NiUsIHZhcigtLWVsZWctc2hlbGwtMykgMTAwJSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDMwcHggcmdiYSgxOCwgMzAsIDQ2LCAwLjM0KSAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC5sb2dvIHNwYW4sXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbixcbiNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIHNwYW4sXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSBpLFxuI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmssXG4jaGVhZGVyIC5iaSB7XG4gICAgY29sb3I6ICNmNWY5ZmQgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuLFxuI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LWljb24ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweCAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG46aG92ZXIsXG4jaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLnNlYXJjaC1iYXIgLnNlYXJjaC1mb3JtIGlucHV0IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMzKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLnNlYXJjaC1iYXIgLnNlYXJjaC1mb3JtIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NikgIWltcG9ydGFudDtcbn1cblxuI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUsXG4jaGVhZGVyIC5zZWFyY2gtbm90aWZ5LWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZWxlZy1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDMwcHggcmdiYSgxNiwgMzAsIDQ2LCAwLjIpICFpbXBvcnRhbnQ7XG59XG5cbiNoZWFkZXIgLmhlYWRlci1uYXYgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06aG92ZXIsXG4jaGVhZGVyIC5zZWFyY2gtbm90aWZ5LWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5ub3RpZmljYXRpb24taXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2VkZjVmYSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhci5zaWRlYmFyLFxuLnNpZGViYXIge1xuICAgIGJhY2tncm91bmQ6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg1NjBweCAyODBweCBhdCAtOCUgMCUsIHJnYmEoNDcsIDE2NSwgMTQxLCAwLjE4KSwgdHJhbnNwYXJlbnQgNjYlKSxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4NGRlZywgIzFhMjQzMyAwJSwgIzI0MzY0YiA2MCUsICMyZjVkOGEgMTAwJSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMTBweCAwIDI0cHggcmdiYSgxMSwgMjQsIDM4LCAwLjM0KSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1oZWFkaW5nLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtaGVhZGluZyB7XG4gICAgY29sb3I6IHJnYmEoMjMzLCAyNDQsIDI1MiwgMC44NikgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayxcbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsgc3BhbixcbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsgaSxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmssXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIHNwYW4sXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIGkge1xuICAgIGNvbG9yOiAjZWRmNmZkICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmssXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjExKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHggIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluazpob3Zlcixcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNCkgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUsXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUsXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWVsZWctcHJpbWFyeSkgMCUsIHZhcigtLWVsZWctYWNjZW50KSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQsXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTYpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEsXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEgc3BhbixcbiNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSBpLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhIHNwYW4sXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEgaSB7XG4gICAgY29sb3I6ICNkZmYwZmIgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhOmhvdmVyLFxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhLmFjdGl2ZSxcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYTpob3Zlcixcbi5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYS5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4jbWFpbi5tYWluLFxuI21haW4ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NikgIWltcG9ydGFudDtcbn1cblxuLmNhcmQsXG4ubW9kYWwtY29udGVudCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZWxlZy1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWVsZWctc3VyZmFjZSkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjJweCByZ2JhKDE4LCAzNiwgNTQsIDAuMSkgIWltcG9ydGFudDtcbn1cblxuLmZvcm0tY29udHJvbCxcbi5mb3JtLXNlbGVjdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2M3ZDZlNCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzFmMzQ0OCAhaW1wb3J0YW50O1xufVxuXG4uZm9ybS1jb250cm9sOmZvY3VzLFxuLmZvcm0tc2VsZWN0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWVsZWctcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSg0NywgOTMsIDEzOCwgMC4xOCkgIWltcG9ydGFudDtcbn1cblxuLmJ0bi1wcmltYXJ5LFxuLmJ0bi1vdXRsaW5lLXByaW1hcnkge1xuICAgIC0tYnMtYnRuLWJnOiB2YXIoLS1lbGVnLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4tYm9yZGVyLWNvbG9yOiB2YXIoLS1lbGVnLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4taG92ZXItYmc6IHZhcigtLWVsZWctcHJpbWFyeS1kYXJrKSAhaW1wb3J0YW50O1xuICAgIC0tYnMtYnRuLWhvdmVyLWJvcmRlci1jb2xvcjogdmFyKC0tZWxlZy1wcmltYXJ5LWRhcmspICFpbXBvcnRhbnQ7XG59XG5cbi5idG4tc3VjY2Vzcyxcbi5idG4tb3V0bGluZS1zdWNjZXNzIHtcbiAgICAtLWJzLWJ0bi1iZzogdmFyKC0tZWxlZy1hY2NlbnQpICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4tYm9yZGVyLWNvbG9yOiB2YXIoLS1lbGVnLWFjY2VudCkgIWltcG9ydGFudDtcbn1cblxuLnNlY3Rpb24ucmVnaXN0ZXIge1xuICAgIGJhY2tncm91bmQ6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg2NDBweCAzMjBweCBhdCAwJSAwJSwgcmdiYSg0NywgMTY1LCAxNDEsIDAuMTUpLCB0cmFuc3BhcmVudCA2NiUpLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoNjQwcHggMzIwcHggYXQgMTAwJSAwJSwgcmdiYSg0NywgOTMsIDEzOCwgMC4xNiksIHRyYW5zcGFyZW50IDY2JSksXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNlZWYzZjggMCUsICNlNmVkZjUgMTAwJSkgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIElOVkVOVE9SWSBFTEVHQU5UIElNUEFDVCAtIEhBUkQgTE9DSyBGSU5BTFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbjpyb290IHtcbiAgICAtLWVsZWd4LXNoZWxsLTE6ICMxNDFlMmMgIWltcG9ydGFudDtcbiAgICAtLWVsZWd4LXNoZWxsLTI6ICMyMzM1NGIgIWltcG9ydGFudDtcbiAgICAtLWVsZWd4LXNoZWxsLTM6ICMyZjVkOGEgIWltcG9ydGFudDtcbiAgICAtLWVsZWd4LWFjY2VudDogIzJmYTU4ZCAhaW1wb3J0YW50O1xuICAgIC0tZWxlZ3gtYWNjZW50LTI6ICMzOGIyYTAgIWltcG9ydGFudDtcbiAgICAtLWVsZWd4LWJvcmRlcjogI2QyZGRlOCAhaW1wb3J0YW50O1xuICAgIC0tZWxlZ3gtdGV4dDogIzFmMzA0MiAhaW1wb3J0YW50O1xufVxuXG4jaGVhZGVyLmhlYWRlcixcbi5oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsIHZhcigtLWVsZWd4LXNoZWxsLTEpIDAlLCB2YXIoLS1lbGVneC1zaGVsbC0yKSA1NSUsIHZhcigtLWVsZWd4LXNoZWxsLTMpIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxNnB4IDMycHggcmdiYSgxMSwgMjIsIDM1LCAwLjM0KSAhaW1wb3J0YW50O1xufVxuXG4jc2lkZWJhci5zaWRlYmFyLFxuLnNpZGViYXIge1xuICAgIGJhY2tncm91bmQ6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg1NjBweCAyODBweCBhdCAtOCUgMCUsIHJnYmEoNTYsIDE3OCwgMTYwLCAwLjIyKSwgdHJhbnNwYXJlbnQgNjYlKSxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4NGRlZywgIzE3MjEzMCAwJSwgIzIzMzU0YiA2MCUsICMyZjVkOGEgMTAwJSkgIWltcG9ydGFudDtcbn1cblxuI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUsXG4jc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpLFxuLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluay5hY3RpdmUsXG4uc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMyZjVkOGEgMCUsICMyZmE1OGQgMTAwJSkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDM1LCA4NCwgMTIyLCAwLjM1KSAhaW1wb3J0YW50O1xufVxuXG4jbWFpbi5tYWluLFxuI21haW4ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NykgIWltcG9ydGFudDtcbn1cblxuLmNhcmQsXG4ubW9kYWwtY29udGVudCxcbi5kcm9wZG93bi1tZW51IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1lbGVneC1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDI0cHggcmdiYSgxOCwgMzYsIDU0LCAwLjEyKSAhaW1wb3J0YW50O1xufVxuXG4uYmctcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzJmNWQ4YSwgIzNiNzhhZCkgIWltcG9ydGFudDtcbn1cblxuLmJnLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsICMyZmE1OGQsICMzYWI2OWYpICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1kYW5nZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNiODVjNmEsICNkMzc2ODQpICFpbXBvcnRhbnQ7XG59XG5cbi5iZy13YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjYjI4NzQ5LCAjY2FhMDVlKSAhaW1wb3J0YW50O1xufVxuXG4uY2FyZC1mb290ZXIuYmctcHJpbWFyeSxcbi5jYXJkLWZvb3Rlci5iZy1zdWNjZXNzLFxuLmNhcmQtZm9vdGVyLmJnLWRhbmdlcixcbi5jYXJkLWZvb3Rlci5iZy13YXJuaW5nIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG59XG5cbi5idG4tcHJpbWFyeSxcbi5idG4tb3V0bGluZS1wcmltYXJ5IHtcbiAgICAtLWJzLWJ0bi1iZzogIzJmNWQ4YSAhaW1wb3J0YW50O1xuICAgIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogIzJmNWQ4YSAhaW1wb3J0YW50O1xuICAgIC0tYnMtYnRuLWhvdmVyLWJnOiAjMjU0YTZkICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjMjU0YTZkICFpbXBvcnRhbnQ7XG59XG5cbi5idG4tc3VjY2Vzcyxcbi5idG4tb3V0bGluZS1zdWNjZXNzIHtcbiAgICAtLWJzLWJ0bi1iZzogIzJmYTU4ZCAhaW1wb3J0YW50O1xuICAgIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogIzJmYTU4ZCAhaW1wb3J0YW50O1xuICAgIC0tYnMtYnRuLWhvdmVyLWJnOiAjMjY4ODc1ICFpbXBvcnRhbnQ7XG4gICAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjMjY4ODc1ICFpbXBvcnRhbnQ7XG59XG5cbmEsXG4udGV4dC1wcmltYXJ5IHtcbiAgICBjb2xvcjogIzJmNWQ4YSAhaW1wb3J0YW50O1xufVxuXG5hOmhvdmVyIHtcbiAgICBjb2xvcjogIzI1NGE2ZCAhaW1wb3J0YW50O1xufVxuXG4uYmFkZ2UuYmctZGFuZ2VyIHtcbiAgICBiYWNrZ3JvdW5kOiAjYjg1YzZhICFpbXBvcnRhbnQ7XG59XG5cbi5iYWRnZS5iZy1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjMmZhNThkICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFxuICAgSU5WRU5UT1JZIE5FTyAtIElOTk9WQURPUiBIQVJEIExPQ0sgVjIgKEdMT0JBTCBGSU5BTClcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG46cm9vdCB7XG4gICAgLS1uZW8tYmc6ICMwZjE3MjIgIWltcG9ydGFudDtcbiAgICAtLW5lby1zdXJmYWNlOiAjZjhmYmZmICFpbXBvcnRhbnQ7XG4gICAgLS1uZW8tYm9yZGVyOiAjYzhkOGU4ICFpbXBvcnRhbnQ7XG4gICAgLS1uZW8tdGV4dDogIzExMjIzNSAhaW1wb3J0YW50O1xuICAgIC0tbmVvLWN5YW46ICMwMGI4ZDkgIWltcG9ydGFudDtcbiAgICAtLW5lby1ibHVlOiAjMjU2M2ViICFpbXBvcnRhbnQ7XG4gICAgLS1uZW8taW5kaWdvOiAjNGY0NmU1ICFpbXBvcnRhbnQ7XG4gICAgLS1uZW8tbGltZTogIzE0YjhhNiAhaW1wb3J0YW50O1xufVxuXG5ib2R5IHtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoOTAwcHggMzYwcHggYXQgLTglIC0xMCUsIHJnYmEoMCwgMTg0LCAyMTcsIDAuMiksIHRyYW5zcGFyZW50IDY0JSksXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg4MjBweCAzNDBweCBhdCAxMDglIC0xMCUsIHJnYmEoNzksIDcwLCAyMjksIDAuMTgpLCB0cmFuc3BhcmVudCA2NCUpLFxuICAgICAgICAjZWRmM2ZiICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLW5lby10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIuaGVhZGVyLFxuYm9keSAuaGVhZGVyIHtcbiAgICBtaW4taGVpZ2h0OiA3MHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KDUyMHB4IDIyMHB4IGF0IDAlIDAlLCByZ2JhKDAsIDE4NCwgMjE3LCAwLjI4KSwgdHJhbnNwYXJlbnQgNjYlKSxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KDEwOGRlZywgIzBjMTQyMCAwJSwgIzE0MjEzNiA0MiUsICMxZDJmNGYgNzAlLCAjMmIzZjY4IDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNikgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDE2cHggMzRweCByZ2JhKDYsIDE0LCAyOCwgMC40NikgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC5sb2dvIHNwYW4sXG5ib2R5ICNoZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bixcbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmssXG5ib2R5ICNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1pY29uLFxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSBzcGFuLFxuYm9keSAjaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtcHJvZmlsZSBpLFxuYm9keSAjaGVhZGVyIC5iaSB7XG4gICAgY29sb3I6ICNmNGZiZmYgIWltcG9ydGFudDtcbn1cblxuYm9keSAjaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4sXG5ib2R5ICNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1pY29uIHtcbiAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNoZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bjpob3ZlcixcbmJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LWljb246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTg0LCAyMTcsIDAuMzIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDE4NCwgMjE3LCAwLjc1KSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyLnNpZGViYXIsXG5ib2R5IC5zaWRlYmFyIHtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoNTQwcHggMjYwcHggYXQgLTEwJSAwJSwgcmdiYSgwLCAxODQsIDIxNywgMC4yNCksIHRyYW5zcGFyZW50IDY2JSksXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxODZkZWcsICMwZDE2MjQgMCUsICMxNTI1M2IgNTglLCAjMjIzODVhIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDEycHggMCAyOHB4IHJnYmEoNiwgMTQsIDI2LCAwLjQyKSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWhlYWRpbmcsXG5ib2R5IC5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWhlYWRpbmcge1xuICAgIGNvbG9yOiByZ2JhKDIyMSwgMjQyLCAyNTMsIDAuOTIpICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbSAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDtcbn1cblxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rLFxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIHNwYW4sXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsgaSxcbmJvZHkgLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayxcbmJvZHkgLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayBzcGFuLFxuYm9keSAuc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIGkge1xuICAgIGNvbG9yOiAjZWZmOWZmICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayxcbmJvZHkgLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayB7XG4gICAgbWFyZ2luOiA2cHggMTBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDkpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpKSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIsXG5ib2R5IC5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbms6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAxODQsIDIxNywgMC41NSkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMCwgMTg0LCAyMTcsIDAuMjQpLCByZ2JhKDc5LCA3MCwgMjI5LCAwLjIpKSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsuYWN0aXZlLFxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rW2RhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIl06bm90KC5jb2xsYXBzZWQpLFxuYm9keSAuc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSxcbmJvZHkgLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGlua1tkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJdOm5vdCguY29sbGFwc2VkKSB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMTg0LCAyMTcsIDAuNykgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMwMGI4ZDkgMCUsICMyNTYzZWIgNTIlLCAjNGY0NmU1IDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgxNCwgNjMsIDExNiwgMC40MikgIWltcG9ydGFudDtcbn1cblxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50LFxuYm9keSAuc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IHtcbiAgICBtYXJnaW46IDAgMTBweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKSAhaW1wb3J0YW50O1xufVxuXG5ib2R5ICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSxcbmJvZHkgI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhIGksXG5ib2R5IC5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYSxcbmJvZHkgLnNpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhIGkge1xuICAgIGNvbG9yOiAjZDlmMGZmICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtY29udGVudCBhOmhvdmVyLFxuYm9keSAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGEuYWN0aXZlLFxuYm9keSAuc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1jb250ZW50IGE6aG92ZXIsXG5ib2R5IC5zaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAxODQsIDIxNywgMC4yNCkgIWltcG9ydGFudDtcbn1cblxuYm9keSAjbWFpbi5tYWluLFxuYm9keSAjbWFpbiB7XG4gICAgbWFyZ2luLXRvcDogNzZweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NykgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4IDE4cHggMCAwICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLmNhcmQsXG5ib2R5IC5tb2RhbC1jb250ZW50LFxuYm9keSAuZHJvcGRvd24tbWVudSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QxZGZlYyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHggIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDEycHggMjRweCByZ2JhKDE2LCAzNSwgNTIsIDAuMTIpICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLmJnLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTJkZWcsICMyNTYzZWIsICM0ZjQ2ZTUpICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLmJnLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTJkZWcsICMxNGI4YTYsICMyZmE1OGQpICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkgLmJnLWRhbmdlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMmRlZywgI2UzNWQ3YiwgI2MzM2Q2NCkgIWltcG9ydGFudDtcbn1cblxuYm9keSAuYmctd2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMmRlZywgI2Y1YjY0MiwgI2Q4OWEyZSkgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEhFQURFUi9TSURFQkFSIE1PQklMRSAtIEhBUkQgRklYXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIGJvZHkgI2hlYWRlci5oZWFkZXIsXG4gICAgYm9keSAuaGVhZGVyIHtcbiAgICAgICAgbWluLWhlaWdodDogNjRweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJvZHkgI2hlYWRlciAubG9nbyBpbWcsXG4gICAgYm9keSAuaGVhZGVyIC5sb2dvIGltZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDM4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBib2R5ICNoZWFkZXIgLnRvZ2dsZS1zaWRlYmFyLWJ0bixcbiAgICBib2R5ICNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1pY29uLFxuICAgIGJvZHkgLmhlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuLFxuICAgIGJvZHkgLmhlYWRlci1uYXYgLm5hdi1pY29uIHtcbiAgICAgICAgd2lkdGg6IDM2cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAubmF2LXByb2ZpbGUgaW1nLFxuICAgIGJvZHkgLmhlYWRlci1uYXYgLm5hdi1wcm9maWxlIGltZyB7XG4gICAgICAgIHdpZHRoOiAzNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMzRweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtaGVpZ2h0OiAzNHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYm9keSAjaGVhZGVyIC5zZWFyY2gtYmFyLFxuICAgIGJvZHkgLmhlYWRlciAuc2VhcmNoLWJhciB7XG4gICAgICAgIHRvcDogNjRweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHggIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudCg1MjBweCAyMjBweCBhdCAwJSAwJSwgcmdiYSgwLCAxODQsIDIxNywgMC4yOCksIHRyYW5zcGFyZW50IDY2JSksXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTA4ZGVnLCAjMGMxNDIwIDAlLCAjMTQyMTM2IDQyJSwgIzFkMmY0ZiA3MCUsICMyYjNmNjggMTAwJSkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBib2R5ICNoZWFkZXIgLnNlYXJjaC1iYXIgLnNlYXJjaC1mb3JtIGlucHV0LFxuICAgIGJvZHkgLmhlYWRlciAuc2VhcmNoLWJhciAuc2VhcmNoLWZvcm0gaW5wdXQge1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjZjVmYmZmICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBib2R5ICNoZWFkZXIgLnNlYXJjaC1iYXIgLnNlYXJjaC1mb3JtIGlucHV0OjpwbGFjZWhvbGRlcixcbiAgICBib2R5IC5oZWFkZXIgLnNlYXJjaC1iYXIgLnNlYXJjaC1mb3JtIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIzNSwgMjQ2LCAyNTUsIDAuODUpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYm9keSAjaGVhZGVyIC5zZWFyY2gtbm90aWZ5LWRyb3Bkb3duIC5kcm9wZG93bi1tZW51LFxuICAgIGJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudSxcbiAgICBib2R5IC5oZWFkZXIgLnNlYXJjaC1ub3RpZnktZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUsXG4gICAgYm9keSAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gICAgICAgIG1pbi13aWR0aDogbWluKDM2MHB4LCBjYWxjKDEwMHZ3IC0gMTRweCkpICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDE0cHgpICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBib2R5ICNoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1pY29uLFxuICAgIGJvZHkgI2hlYWRlciAudG9nZ2xlLXNpZGViYXItYnRuLFxuICAgIGJvZHkgLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWljb24sXG4gICAgYm9keSAuaGVhZGVyIC50b2dnbGUtc2lkZWJhci1idG4ge1xuICAgICAgICB3aWR0aDogMzRweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDM0cHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAzNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAuYmFkZ2UtbnVtYmVyLFxuICAgIGJvZHkgLmhlYWRlciAuaGVhZGVyLW5hdiAuYmFkZ2UtbnVtYmVyIHtcbiAgICAgICAgdG9wOiAtNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHJpZ2h0OiAtNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAycHggNXB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYm9keSAjaGVhZGVyIC5zZWFyY2gtbm90aWZ5LWRyb3Bkb3duIC5kcm9wZG93bi1tZW51LFxuICAgIGJvZHkgI2hlYWRlciAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudSxcbiAgICBib2R5IC5oZWFkZXIgLnNlYXJjaC1ub3RpZnktZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUsXG4gICAgYm9keSAuaGVhZGVyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gICAgICAgIG1pbi13aWR0aDogY2FsYygxMDB2dyAtIDEwcHgpICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDEwcHgpICFpbXBvcnRhbnQ7XG4gICAgICAgIHJpZ2h0OiAtNnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLyogRXN0YWRvIGNvbnRyYWlkbyBkZWwgc2lkZWJhciBwYXJhIG1vc3RyYXIgc29sYW1lbnRlIGxvcyBpY29ub3MuICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgYm9keS50b2dnbGUtc2lkZWJhciAjc2lkZWJhci5zaWRlYmFyIHtcbiAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNzZweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKiBBanVzdGFyIGVsIGNvbnRlbmlkbyBwcmluY2lwYWwgYWwgYW5jaG8gZGVsIHNpZGViYXIgY29udHJhaWRvLiAqL1xuICAgIGJvZHkudG9nZ2xlLXNpZGViYXIgI21haW4ubWFpbixcbiAgICBib2R5LnRvZ2dsZS1zaWRlYmFyICNmb290ZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogNzZweCAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNzZweCkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKiBDZW50cmFyIGNhZGEgb3BjaW9uIHByaW5jaXBhbCBjdWFuZG8gZWwgdGV4dG8gZXN0YSBvY3VsdG8uICovXG4gICAgYm9keS50b2dnbGUtc2lkZWJhciAjc2lkZWJhciAuc2lkZWJhci1uYXYgLm5hdi1saW5rIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ2cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIE9jdWx0YXIgbG9zIG5vbWJyZXMgZGUgbG9zIG1vZHVsb3MgZW4gZWwgbW9kbyBkZSBzb2xvIGljb25vcy4gKi9cbiAgICBib2R5LnRvZ2dsZS1zaWRlYmFyICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWxpbmsgPiBzcGFuLFxuICAgIGJvZHkudG9nZ2xlLXNpZGViYXIgI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayAuYmktY2hldnJvbi1kb3duIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIE9jdWx0YXIgbG9zIHN1Ym1lbnVzIHBhcmEgZXZpdGFyIHRleHRvcyB2aXNpYmxlcyBlbiBlbCBtb2RvIGNvbnRyYWlkby4gKi9cbiAgICBib2R5LnRvZ2dsZS1zaWRlYmFyICNzaWRlYmFyIC5zaWRlYmFyLW5hdiAubmF2LWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLyogRGFyIHVuIHRhbWHDsW8gdW5pZm9ybWUgYSBsb3MgaWNvbm9zIHByaW5jaXBhbGVzLiAqL1xuICAgIGJvZHkudG9nZ2xlLXNpZGViYXIgI3NpZGViYXIgLnNpZGViYXItbmF2IC5uYXYtbGluayA+IGk6Zmlyc3QtY2hpbGQge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIi8qIEVzdGlsb3MgZ2VuZXJhbGVzIHBhcmEgbGEgdGFibGEgKi9cbi5lc3RpbG9zX2dlbmVyYWxlcyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmYmZjO1xuICAgIGNvbG9yOiAjMDAzRTUxO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjOWU3ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGgge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nOiAxMnB4IDEzcHg7XG4gICAgYmFja2dyb3VuZDogI2UyZjRmOTtcbiAgICBjb2xvcjogIzAwNGI2MDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MwZTBlYTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5lc3RpbG9zX2dlbmVyYWxlcyB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMDAzRTUxO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0cjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZmJmZjtcbn1cblxuXG4vKiBTY3JvbGwgcGFyYSBlbCB0b29sYmFyICovXG5baWRePVwidG9vbGJhcl9cIl0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgIHNjcm9sbGJhci1jb2xvcjogI2NjYyB0cmFuc3BhcmVudDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5baWRePVwidG9vbGJhcl9cIl0gPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bzsgLyogZXZpdGEgcXVlIHNlIGV4cGFuZGFuICovXG59XG5cbltpZF49XCJ0b29sYmFyX1wiXTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIGhlaWdodDogNnB4O1xufVxuXG5baWRePVwidG9vbGJhcl9cIl06Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAjY2NjO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuXG4vKiBQYXJhIHBhbnRhbGxhcyBwZXF1ZcODwrFhcyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgW2lkXj1cInRvb2xiYXJfXCJdIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIFtpZF49XCJ0b29sYmFyX1wiXSBidXR0b24ge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cblxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuZXN0aWxvc19nZW5lcmFsZXMgdGgsXG4gICAgLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG59XG5cblxuLyogQm90b25lcyBnZW5lcmFsZXMgcGVyc29uYWxpemFkb3MgKi9cblxuLyogRXN0aWxvIGNvbcODwrpuIHBhcmEgdG9kb3MgbG9zIGJvdG9uZXMgKi9cblxuLyogSG92ZXIgZGUgYm90b25lcyAqL1xuXG4vKiBCb3RvbmVzIGRlc2hhYmlsaXRhZG9zICovXG5cbi8qIEJvdMODwrNuIHBlbGlncm8gKi9cblxuLyogQm90w4PCs24gw4PCqXhpdG8gKi9cblxuLyogQm90w4PCs24gYWR2ZXJ0ZW5jaWEgKi9cblxuLyogQm90w4PCs24gc2VjdW5kYXJpbyAqL1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgQWp1c3RlIHZpc3VhbCBwcm9mZXNpb25hbCAoc2luIGNhbWJpYXIgY2xhc2VzKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5lc3RpbG9zX2dlbmVyYWxlcyB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBjb2xvcjogIzJiM2Y1NTtcbiAgICBib3JkZXItY29sb3I6ICNkNGRlZTk7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDE4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRoIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWRmM2Y5O1xuICAgIGNvbG9yOiAjMzE0OTVmO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNkNGRlZTk7XG59XG5cbi5lc3RpbG9zX2dlbmVyYWxlcyB0ZCB7XG4gICAgY29sb3I6ICMyYjNmNTU7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2U4ZWVmNTtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB0ZCB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZmNmZjtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRyOmhvdmVyIHRkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRmNGZiO1xufVxuXG5baWRePVwidG9vbGJhcl9cIl0ge1xuICAgIHNjcm9sbGJhci1jb2xvcjogI2I5YzdkNiB0cmFuc3BhcmVudDtcbn1cblxuW2lkXj1cInRvb2xiYXJfXCJdOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogI2I5YzdkNjtcbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgRmluYWwgT3ZlcnJpZGUgLSBGdWxsIFdpZHRoICsgUGxlYXNhbnQgVGFibGUgTGF5b3V0XG4gICAoTWFudGllbmUgY2xhc2VzIGV4aXN0ZW50ZXMpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xudGFibGUuZXN0aWxvc19nZW5lcmFsZXMge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLWNvbnRhaW5lcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLWJvZHksXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiA2cHggIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNkNGRlZWEgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMzAsIDQxLCA1OSwgMC4wOCkgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGhlYWQgdGgge1xuICAgIGJhY2tncm91bmQ6ICNlZGYzZjkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzMzNGM2NCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDRkZWVhICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIHtcbiAgICBjb2xvcjogIzJmNDU1ZCAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGQge1xuICAgIGJhY2tncm91bmQ6ICNmOGZiZmYgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdHI6aG92ZXIgdGQge1xuICAgIGJhY2tncm91bmQ6ICNlZGY0ZmIgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2Y2ZjlmZCAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdlLWl0ZW0uYWN0aXZlIC5wYWdlLWxpbmsge1xuICAgIGJhY2tncm91bmQ6ICMzZjVmODAgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMzZjVmODAgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEZpbmFsIFByb2Zlc3Npb25hbCBUYWJsZXMgKHNpbiBjYW1iaWFyIGNsYXNlcyBleGlzdGVudGVzKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbjpyb290IHtcbiAgICAtLXRibC1zdXJmYWNlOiAjZjZmYWZkO1xuICAgIC0tdGJsLWhlYWQtYmc6ICNlNWVlZjY7XG4gICAgLS10YmwtaGVhZC10ZXh0OiAjMDAwMDAwO1xuICAgIC0tdGJsLWNlbGwtdGV4dDogIzAwMDAwMDtcbiAgICAtLXRibC1saW5lOiAjY2ZlMGVjO1xuICAgIC0tdGJsLXJvdy1hbHQ6ICNmYWZkZmY7XG4gICAgLS10Ymwtcm93LWhvdmVyOiAjZWRmNWZiO1xuICAgIC0tdGJsLXBhZ2UtYWN0aXZlOiAjNGY4N2FkO1xufVxuXG50YWJsZS5lc3RpbG9zX2dlbmVyYWxlcyxcbi5ib290c3RyYXAtdGFibGUgLnRhYmxlLmVzdGlsb3NfZ2VuZXJhbGVzLFxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgdGFibGUtbGF5b3V0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1zcGFjaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1jb250YWluZXIsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1ib2R5IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10YmwtbGluZSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxNnB4IHJnYmEoMjksIDYzLCA5MCwgMC4xKSAhaW1wb3J0YW50O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibC1zdXJmYWNlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGJsLWxpbmUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG59XG5cbi5lc3RpbG9zX2dlbmVyYWxlcyB0aCxcbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRoZWFkIHRoIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YmwtaGVhZC1iZykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tdGJsLWhlYWQtdGV4dCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tdGJsLWxpbmUpICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG59XG5cbi5lc3RpbG9zX2dlbmVyYWxlcyB0ZCxcbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIHtcbiAgICBjb2xvcjogdmFyKC0tdGJsLWNlbGwtdGV4dCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZWJmMyAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG59XG5cbi5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGQsXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibC1yb3ctYWx0KSAhaW1wb3J0YW50O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdHI6aG92ZXIgdGQsXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0cjpob3ZlciB0ZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGJsLXJvdy1ob3ZlcikgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2YyZjhmZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDVlNWYxICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2UtbGluayB7XG4gICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNjY2RlZWIgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAycHggIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnZS1pdGVtLmFjdGl2ZSAucGFnZS1saW5rIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YmwtcGFnZS1hY3RpdmUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10YmwtcGFnZS1hY3RpdmUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnZS1saW5rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZTdmMWY5ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEVOVEVSUFJJU0UgU0tZIFRBQkxFUyBGSU5BTCBFTkQgTEFZRVJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG46cm9vdCB7XG4gICAgLS10Ymwtc3VyZmFjZTogI2Y1ZmFmZTtcbiAgICAtLXRibC1oZWFkLWJnOiAjZGNlY2Y4O1xuICAgIC0tdGJsLWhlYWQtdGV4dDogIzAwMDAwMDtcbiAgICAtLXRibC1jZWxsLXRleHQ6ICMwMDAwMDA7XG4gICAgLS10YmwtbGluZTogI2M4ZGNlZDtcbiAgICAtLXRibC1yb3ctYWx0OiAjZmJmZGZmO1xuICAgIC0tdGJsLXJvdy1ob3ZlcjogI2VhZjRmYztcbiAgICAtLXRibC1wYWdlLWFjdGl2ZTogIzMzODBiNjtcbn1cblxudGFibGUuZXN0aWxvc19nZW5lcmFsZXMsXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZS5lc3RpbG9zX2dlbmVyYWxlcyxcbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIHRhYmxlLWxheW91dDogYXV0byAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcbiAgICBib3JkZXItc3BhY2luZzogMCAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtYm9keSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGJsLWxpbmUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMTRweCByZ2JhKDIxLCA1OSwgODksIDAuMSkgIWltcG9ydGFudDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Ymwtc3VyZmFjZSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRibC1saW5lKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGgsXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0aGVhZCB0aCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGJsLWhlYWQtYmcpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLXRibC1oZWFkLXRleHQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRibC1saW5lKSAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGQsXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCB7XG4gICAgY29sb3I6IHZhcigtLXRibC1jZWxsLXRleHQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZWViZjUgIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkLFxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Ymwtcm93LWFsdCkgIWltcG9ydGFudDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRyOmhvdmVyIHRkLFxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdHI6aG92ZXIgdGQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibC1yb3ctaG92ZXIpICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24ge1xuICAgIGJhY2tncm91bmQ6ICNmMWY4ZmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2QyZTRmMiAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdlLWxpbmsge1xuICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjYzhkY2VkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2UtbGluazpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2U2ZjJmYiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2UtaXRlbS5hY3RpdmUgLnBhZ2UtbGluayB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGJsLXBhZ2UtYWN0aXZlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGJsLXBhZ2UtYWN0aXZlKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi8qIEJvdG9uZXMgZGUgdGFibGFzIHkgdG9vbGJhciBlbiBsw61uZWEgcHJvZmVzaW9uYWwgKi9cbltpZF49XCJ0b29sYmFyX1wiXSAuYnRuLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4tY3VzdG9tLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4tY3VzdG9tLXRleHQsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4sXG50YWJsZS5lc3RpbG9zX2dlbmVyYWxlcyAuYnRuIHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbltpZF49XCJ0b29sYmFyX1wiXSAuYnRuLmJ0bi1wcmltYXJ5LFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4tY3VzdG9tLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4tY3VzdG9tLXRleHQsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4uYnRuLXByaW1hcnksXG50YWJsZS5lc3RpbG9zX2dlbmVyYWxlcyAuYnRuLmJ0bi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjMGY4MmNkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMGY4MmNkICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4uYnRuLXByaW1hcnk6aG92ZXIsXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bi1jdXN0b206aG92ZXIsXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bi1jdXN0b20tdGV4dDpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5idG4tcHJpbWFyeTpob3ZlcixcbnRhYmxlLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4uYnRuLXByaW1hcnk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMwZDcwYjAgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMwZDcwYjAgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bi5idG4tc2Vjb25kYXJ5LFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLmJ0bi1zZWNvbmRhcnksXG50YWJsZS5lc3RpbG9zX2dlbmVyYWxlcyAuYnRuLmJ0bi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICMyZjc4YWIgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMyZjc4YWIgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bi5idG4tc2Vjb25kYXJ5OmhvdmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLmJ0bi1zZWNvbmRhcnk6aG92ZXIsXG50YWJsZS5lc3RpbG9zX2dlbmVyYWxlcyAuYnRuLmJ0bi1zZWNvbmRhcnk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMyODZhOTcgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMyODZhOTcgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bi5idG4tc3VjY2Vzcyxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5idG4tc3VjY2VzcyxcbnRhYmxlLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4uYnRuLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMwYTk3NzIgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMwYTk3NzIgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bi5idG4tc3VjY2Vzczpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5idG4tc3VjY2Vzczpob3ZlcixcbnRhYmxlLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4uYnRuLXN1Y2Nlc3M6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMwODdmNjEgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMwODdmNjEgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bi5idG4td2FybmluZyxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5idG4td2FybmluZyxcbnRhYmxlLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4uYnRuLXdhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNhYjc2MjQgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNhYjc2MjQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bi5idG4td2FybmluZzpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5idG4td2FybmluZzpob3ZlcixcbnRhYmxlLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4uYnRuLXdhcm5pbmc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM5MjY1MWYgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICM5MjY1MWYgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bi5idG4tZGFuZ2VyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLmJ0bi1kYW5nZXIsXG50YWJsZS5lc3RpbG9zX2dlbmVyYWxlcyAuYnRuLmJ0bi1kYW5nZXIge1xuICAgIGJhY2tncm91bmQ6ICNiNTQ1NDUgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNiNTQ1NDUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bi5idG4tZGFuZ2VyOmhvdmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLmJ0bi1kYW5nZXI6aG92ZXIsXG50YWJsZS5lc3RpbG9zX2dlbmVyYWxlcyAuYnRuLmJ0bi1kYW5nZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM5YjNiM2IgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICM5YjNiM2IgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVE9PTEJBUiBCVVRUT05TICh1dGlsTWF4KSAtIEZJTkFMIHBvciBJRFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiNidG5fbnVldm8sXG4jYnRuX3JlbW92ZV9hbGwsXG4jYnRuX2VzdGFkb19hbGwsXG4jYnRuX2NhcmdhX21hc2l2YSxcbiNidG5fZGVzY2FyZ2FyX2V4Y2VsIHtcbiAgICBib3JkZXItcmFkaXVzOiAycHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuI2J0bl9udWV2byB7XG4gICAgYmFja2dyb3VuZDogIzBmODJjZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzBmODJjZCAhaW1wb3J0YW50O1xufVxuXG4jYnRuX251ZXZvOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMGQ3MGIwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMGQ3MGIwICFpbXBvcnRhbnQ7XG59XG5cbiNidG5fcmVtb3ZlX2FsbCB7XG4gICAgYmFja2dyb3VuZDogI2M1NDU0NSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogI2M1NDU0NSAhaW1wb3J0YW50O1xufVxuXG4jYnRuX3JlbW92ZV9hbGw6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNhOTNhM2EgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNhOTNhM2EgIWltcG9ydGFudDtcbn1cblxuI2J0bl9lc3RhZG9fYWxsIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWU5YWQ4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMWU5YWQ4ICFpbXBvcnRhbnQ7XG59XG5cbiNidG5fZXN0YWRvX2FsbDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzFhODZiYyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzFhODZiYyAhaW1wb3J0YW50O1xufVxuXG4jYnRuX2NhcmdhX21hc2l2YSB7XG4gICAgYmFja2dyb3VuZDogIzBhOTc3MiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzBhOTc3MiAhaW1wb3J0YW50O1xufVxuXG4jYnRuX2NhcmdhX21hc2l2YTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzA4N2Y2MSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzA4N2Y2MSAhaW1wb3J0YW50O1xufVxuXG4jYnRuX2Rlc2Nhcmdhcl9leGNlbCB7XG4gICAgYmFja2dyb3VuZDogIzE0OGE1MyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzE0OGE1MyAhaW1wb3J0YW50O1xufVxuXG4jYnRuX2Rlc2Nhcmdhcl9leGNlbDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzExNzY0NyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzExNzY0NyAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVEFCTEUgVE9PTEJBUiBQUk8gQ09OVFJPTFMgKHJlZnJlc2ggLyBjb2x1bW5zIC8gc2VhcmNoKVxuICAgQ2FwYSBmaW5hbCBlbmZvY2FkYSBlbiBjb250cm9sZXMgZGUgQm9vdHN0cmFwIFRhYmxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciB7XG4gICAgcGFkZGluZzogMTBweCAwIDhweCAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4tZ3JvdXAsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5jb2x1bW5zLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuc2VhcmNoIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuY29sdW1ucyAuYnRuIHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzdkOGU3ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZmZmZiAwJSwgI2VlZjVmYiAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMWQ0MjVjICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDZweCAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMTgsIDQ3LCA2OCwgMC4xKSAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4uYnRuLXByaW1hcnksXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4uYnRuLXNlY29uZGFyeSxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5idG4tc3VjY2Vzcyxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5idG4td2FybmluZyxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5idG4tZGFuZ2VyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzdkOGU3ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZmZmZiAwJSwgI2VlZjVmYiAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMWQ0MjVjICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bjpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgLmJ0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2Y4ZmNmZiAwJSwgI2UzZWVmOCAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzlmYzFkYyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMTYzNjRjICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5idG4tcHJpbWFyeTpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bi5idG4tc2Vjb25kYXJ5OmhvdmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLmJ0bi1zdWNjZXNzOmhvdmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLmJ0bi13YXJuaW5nOmhvdmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLmJ0bi1kYW5nZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmOGZjZmYgMCUsICNlM2VlZjggMTAwJSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICM5ZmMxZGMgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzE2MzY0YyAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG46Zm9jdXMsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5jb2x1bW5zIC5idG46Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDIyLCAxMTEsIDE2OCwgMC4yKSAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5zZWFyY2ggaW5wdXQuZm9ybS1jb250cm9sLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuc2VhcmNoIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIGhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjN2Q4ZTcgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMxZDQyNWMgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA2cHggMTBweCAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5zZWFyY2ggaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzZmODc5OSAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5jb2x1bW5zIC5kcm9wZG93bi1tZW51IHtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2M4ZGNlZCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMTJweCAyMnB4IHJnYmEoMTQsIDQ0LCA2NCwgMC4xNCkgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDI0MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgLmRyb3Bkb3duLW1lbnUgbGFiZWwsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5jb2x1bW5zIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGdhcDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMxZjNmNTcgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA2cHggOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgLmRyb3Bkb3duLW1lbnUgbGFiZWw6aG92ZXIsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5jb2x1bW5zIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWRmNWZiICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICB3aWR0aDogMTVweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTVweCAhaW1wb3J0YW50O1xuICAgIGFjY2VudC1jb2xvcjogIzFmODdjNyAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdpbmF0aW9uLWluZm8sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdlLWxpc3Qge1xuICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMmE0YTYzICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVU5JRk9STSBDT0xPUiArIFVOREVSU1RBTkRBQkxFIENPTlRST0xTIChMQVNUIExBWUVSKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbjpyb290IHtcbiAgICAtLXRiLWJyYW5kOiAjMWY4N2M3O1xuICAgIC0tdGItYnJhbmQtaG92ZXI6ICMxNjZmYTU7XG4gICAgLS10Yi1zdXJmYWNlOiAjZjNmOWZmO1xuICAgIC0tdGItYm9yZGVyOiAjYmNkNGU2O1xuICAgIC0tdGItdGV4dDogIzE2Mzg0ZTtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuY29sdW1ucyAuYnRuLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4ge1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10Yi1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGItc3VyZmFjZSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tdGItdGV4dCkgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDdweCAxMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bjpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgLmJ0bjpob3ZlcixcbltpZF49XCJ0b29sYmFyX1wiXSAuYnRuOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRiLWJyYW5kKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNlOGYzZmIgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzBmMmU0MCAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG46Zm9jdXMsXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMzEsIDEzNSwgMTk5LCAwLjIpICFpbXBvcnRhbnQ7XG59XG5cbi8qIE1hbnRlbmVyIGJvdG9uZXMgZGUgYWNjaW9uZXMgaW50ZXJuYXMgKENSVUQpIGNvbiBjb2xvciBjbGFybyB5IHVuaWZvcm1lICovXG4jYnRuX251ZXZvLFxuI2J0bl9lc3RhZG9fYWxsLFxuI2J0bl9jYXJnYV9tYXNpdmEsXG4jYnRuX2Rlc2Nhcmdhcl9leGNlbCxcbiNidG5fZXhjZWxfY29tcGxldG8sXG4jYnRuX2V4Y2VsX2ZpbHRybyxcbiNidG5fcGRmX2NvbXBsZXRvLFxuI2J0bl9wZGZfZmlsdHJvIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4vKiBCb3RvbmVzIGRlIGJvb3RzdHJhcC10YWJsZSAocmVmcmVzaC9jb2x1bW5zL2V4cG9ydCkgY29uIGNvbG9yIHVuaWZvcm1lICovXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwicmVmcmVzaFwiXSxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJjb2x1bW5zXCJdLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cInBhZ2luYXRpb25Td2l0Y2hcIl0sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwidG9nZ2xlXCJdLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cImZ1bGxzY3JlZW5cIl0sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwiZXhwb3J0XCJdIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi1icmFuZCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRiLWJyYW5kKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJyZWZyZXNoXCJdOmhvdmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cImNvbHVtbnNcIl06aG92ZXIsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwicGFnaW5hdGlvblN3aXRjaFwiXTpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJ0b2dnbGVcIl06aG92ZXIsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwiZnVsbHNjcmVlblwiXTpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJleHBvcnRcIl06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRiLWJyYW5kLWhvdmVyKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGItYnJhbmQtaG92ZXIpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLyogSGFjZXIgY29udHJvbGVzIG3DoXMgZW50ZW5kaWJsZXM6IHRleHRvIHZpc2libGUgZW4gYm90b25lcyBkZSBpY29ubyAqL1xuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cInJlZnJlc2hcIl0sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwiY29sdW1uc1wiXSxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJleHBvcnRcIl0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGdhcDogNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJyZWZyZXNoXCJdOjphZnRlciB7XG4gICAgY29udGVudDogXCJSZWZyZXNjYXJcIjtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cImNvbHVtbnNcIl06OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIkNvbHVtbmFzXCI7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJleHBvcnRcIl06OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIkV4cG9ydGFyXCI7XG59XG5cbi8qIEJhcnJhIGRlIGLDunNxdWVkYSBtw6FzIGxlZ2libGUgeSBwYXJlamEgKi9cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLnNlYXJjaCBpbnB1dC5mb3JtLWNvbnRyb2wsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5zZWFyY2ggaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRiLWJvcmRlcikgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMxYjNkNTMgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDM4cHggIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuc2VhcmNoIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM2Yzg0OTYgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIFBhZ2luYWNpw7NuIGNvbiBjb2xvciB1bmlmb3JtZSAqL1xuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnZS1saW5rIHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRiLWJvcmRlcikgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwNDk2MyAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnZS1saW5rOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRiLWJyYW5kKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMGYyZTQwICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2VjZjZmZCAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1wYWdpbmF0aW9uIC5wYWdlLWl0ZW0uYWN0aXZlIC5wYWdlLWxpbmsge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRiLWJyYW5kKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGItYnJhbmQpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEJVVFRPTiBTSVpFIE5PUk1BTElaRVIgKGFsbCBzYW1lIHNpemUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuY29sdW1ucyAuYnRuLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4ge1xuICAgIGhlaWdodDogMzhweCAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IDM4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwIDEycHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGdhcDogNnB4ICFpbXBvcnRhbnQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4vKiBCb3RvbmVzIGRlIGNvbnRyb2xlcyBkZSBib290c3RyYXAtdGFibGUgY29uIGFuY2hvIGNvbnNpc3RlbnRlICovXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwicmVmcmVzaFwiXSxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJjb2x1bW5zXCJdLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cImV4cG9ydFwiXSB7XG4gICAgbWluLXdpZHRoOiAxMThweCAhaW1wb3J0YW50O1xufVxuXG4vKiBCb3RvbmVzIENSVUQgZGVsIHRvb2xiYXIgY29uIG1pc21vIGFsdG8vYW5jaG8gdmlzdWFsICovXG4jYnRuX251ZXZvLFxuI2J0bl9yZW1vdmVfYWxsLFxuI2J0bl9lc3RhZG9fYWxsLFxuI2J0bl9jYXJnYV9tYXNpdmEsXG4jYnRuX2Rlc2Nhcmdhcl9leGNlbCxcbiNidG5fcGRmX2NvbXBsZXRvLFxuI2J0bl9leGNlbF9jb21wbGV0byxcbiNidG5fcGRmX2ZpbHRybyxcbiNidG5fZXhjZWxfZmlsdHJvIHtcbiAgICBtaW4td2lkdGg6IDEyMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIMONY29ub3MgY29uIHRhbWHDsW8gdW5pZm9ybWUgKi9cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biBpLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gaSxcbltpZF49XCJ0b29sYmFyX1wiXSAuYnRuIC5mYXMsXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0biAuZmEsXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0biAucmkge1xuICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJyZWZyZXNoXCJdLFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJjb2x1bW5zXCJdLFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJleHBvcnRcIl0sXG4gICAgI2J0bl9udWV2byxcbiAgICAjYnRuX3JlbW92ZV9hbGwsXG4gICAgI2J0bl9lc3RhZG9fYWxsLFxuICAgICNidG5fY2FyZ2FfbWFzaXZhLFxuICAgICNidG5fZGVzY2FyZ2FyX2V4Y2VsLFxuICAgICNidG5fcGRmX2NvbXBsZXRvLFxuICAgICNidG5fZXhjZWxfY29tcGxldG8sXG4gICAgI2J0bl9wZGZfZmlsdHJvLFxuICAgICNidG5fZXhjZWxfZmlsdHJvIHtcbiAgICAgICAgbWluLXdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSU5WRU5UT1JZIFRBQkxFUyAtIERJR0lUQUwgUFJPRkVTU0lPTkFMIEZJTkFMIExBWUVSXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuOnJvb3Qge1xuICAgIC0tdGJseC1iZzogI2Y3ZmJmZjtcbiAgICAtLXRibHgtc3VyZmFjZTogI2ZmZmZmZjtcbiAgICAtLXRibHgtYm9yZGVyOiAjY2ZkZWVjO1xuICAgIC0tdGJseC1oZWFkLWJnOiAjZTlmMmZiO1xuICAgIC0tdGJseC1oZWFkLXRleHQ6ICMxMzNjNTQ7XG4gICAgLS10Ymx4LXRleHQ6ICMyMTNkNTE7XG4gICAgLS10Ymx4LXJvdy1hbHQ6ICNmYmZkZmY7XG4gICAgLS10Ymx4LXJvdy1ob3ZlcjogI2VkZjVmYztcbiAgICAtLXRibHgtYnJhbmQ6ICMxYzg2Yzg7XG4gICAgLS10Ymx4LWJyYW5kLWhvdmVyOiAjMTQ2NDkzO1xuICAgIC0tdGJseC1zdWNjZXNzOiAjMTI4MjYxO1xuICAgIC0tdGJseC1kYW5nZXI6ICNjODRhNGE7XG59XG5cbnRhYmxlLmVzdGlsb3NfZ2VuZXJhbGVzLFxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUuZXN0aWxvc19nZW5lcmFsZXMsXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDAgIWltcG9ydGFudDtcbiAgICB0YWJsZS1sYXlvdXQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tdGJseC10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtYm9keSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtY29udGFpbmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10Ymx4LWJvcmRlcikgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGJseC1zdXJmYWNlKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgxMywgMzgsIDU2LCAwLjExKSAhaW1wb3J0YW50O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMsXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGJseC1iZykgIWltcG9ydGFudDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRoLFxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGhlYWQgdGgge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtaGVhZC1iZykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tdGJseC1oZWFkLXRleHQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRibHgtYm9yZGVyKSAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGQsXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCB7XG4gICAgY29sb3I6IHZhcigtLXRibHgtdGV4dCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZWRmNiAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcbn1cblxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB0ZCxcbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB0ZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGJseC1yb3ctYWx0KSAhaW1wb3J0YW50O1xufVxuXG4uZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdHI6aG92ZXIgdGQsXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0cjpob3ZlciB0ZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGJseC1yb3ctaG92ZXIpICFpbXBvcnRhbnQ7XG59XG5cbltpZF49XCJ0b29sYmFyX1wiXSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgIHNjcm9sbGJhci1jb2xvcjogI2I3Y2NkZCB0cmFuc3BhcmVudDtcbn1cblxuW2lkXj1cInRvb2xiYXJfXCJdID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG5cbltpZF49XCJ0b29sYmFyX1wiXTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIGhlaWdodDogN3B4O1xufVxuXG5baWRePVwidG9vbGJhcl9cIl06Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAjYjdjY2RkO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuY29sdW1ucyAuYnRuLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4ge1xuICAgIGhlaWdodDogMzhweCAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IDM4cHggIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGJseC1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS10Ymx4LXRleHQpICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiA2cHggIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDNweCAxMHB4IHJnYmEoMTIsIDM2LCA1MiwgMC4wOCkgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuOmhvdmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuY29sdW1ucyAuYnRuOmhvdmVyLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNlZWY2ZmQgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNhYWM0ZDggIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cInJlZnJlc2hcIl0sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwiY29sdW1uc1wiXSxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJleHBvcnRcIl0ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtYnJhbmQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10Ymx4LWJyYW5kKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJyZWZyZXNoXCJdOmhvdmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cImNvbHVtbnNcIl06aG92ZXIsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwiZXhwb3J0XCJdOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Ymx4LWJyYW5kLWhvdmVyKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGJseC1icmFuZC1ob3ZlcikgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIElOVkVOVE9SWSBUQUJMRVMgLSBFTEVHQU5UIEZJTkFMIExBWUVSXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuOnJvb3Qge1xuICAgIC0tdGJseC1iZzogI2Y2ZjlmYyAhaW1wb3J0YW50O1xuICAgIC0tdGJseC1zdXJmYWNlOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWJvcmRlcjogI2QyZGRlOCAhaW1wb3J0YW50O1xuICAgIC0tdGJseC1oZWFkLWJnOiAjZThlZWY1ICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWhlYWQtdGV4dDogIzFhMzM0YSAhaW1wb3J0YW50O1xuICAgIC0tdGJseC10ZXh0OiAjMjczZDUyICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LXJvdy1hbHQ6ICNmYmZkZmYgIWltcG9ydGFudDtcbiAgICAtLXRibHgtcm93LWhvdmVyOiAjZWRmNWZhICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWJyYW5kOiAjMmY1ZDhhICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWJyYW5kLWhvdmVyOiAjMjU0YTZkICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LXN1Y2Nlc3M6ICMyZmE1OGQgIWltcG9ydGFudDtcbiAgICAtLXRibHgtZGFuZ2VyOiAjYmQ1YjViICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGJseC1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtc3VyZmFjZSkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMTcsIDM1LCA1MiwgMC4xKSAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0aGVhZCB0aCxcbi5lc3RpbG9zX2dlbmVyYWxlcyB0aCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGJseC1oZWFkLWJnKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS10Ymx4LWhlYWQtdGV4dCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tdGJseC1ib3JkZXIpICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIHtcbiAgICBjb2xvcjogdmFyKC0tdGJseC10ZXh0KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlY2Y0ICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB0ZCxcbi5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtcm93LWFsdCkgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdHI6aG92ZXIgdGQsXG4uZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdHI6aG92ZXIgdGQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtcm93LWhvdmVyKSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVEFCTEUgQlVUVE9OUyAtIEhBUkQgTE9DSyBGSU5BTCBFTkRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5jb2x1bW5zIC5idG4sXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0biB7XG4gICAgbWluLWhlaWdodDogMzhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgMTJweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBnYXA6IDZweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMTQzYTUzICFpbXBvcnRhbnQ7XG59XG5cbiNidG5fbnVldm8sXG4jYnRuX2VzdGFkb19hbGwsXG4jYnRuX2NhcmdhX21hc2l2YSxcbiNidG5fZGVzY2FyZ2FyX2V4Y2VsLFxuI2J0bl9leGNlbF9jb21wbGV0byxcbiNidG5fZXhjZWxfZmlsdHJvIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTI4MjYxICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTI4MjYxICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuI2J0bl9yZW1vdmVfYWxsLFxuI2J0bl9wZGZfY29tcGxldG8sXG4jYnRuX3BkZl9maWx0cm8ge1xuICAgIGJhY2tncm91bmQ6ICNjODRhNGEgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNjODRhNGEgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSAuYnRuLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4ge1xuICAgIG1pbi1oZWlnaHQ6IDMxcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwIDEwcHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiA1cHggIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgLmJ0bi1wcmltYXJ5LFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4tcHJpbWFyeSxcbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIC5idG4tZGFuZ2VyLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4tZGFuZ2VyLFxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgLmJ0bi13YXJuaW5nLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4td2FybmluZyB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE1PQklMRSBJQ09OLU9OTFkgSEFSRCBMT0NLIChhYnNvbHV0ZSBmaW5hbClcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4sXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuY29sdW1ucyAuYnRuLFxuICAgIFtpZF49XCJ0b29sYmFyX1wiXSAuYnRuLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5idG4sXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYnRuLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUge1xuICAgICAgICB3aWR0aDogMzRweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDM0cHggIWltcG9ydGFudDtcbiAgICAgICAgbWF4LXdpZHRoOiAzNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMzRweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiAzNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IDM0cHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5cHggIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biBpLFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgLmJ0biBpLFxuICAgIFtpZF49XCJ0b29sYmFyX1wiXSAuYnRuIGksXG4gICAgW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gLmZhLFxuICAgIFtpZF49XCJ0b29sYmFyX1wiXSAuYnRuIC5mYXMsXG4gICAgW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gLmZhcixcbiAgICBbaWRePVwidG9vbGJhcl9cIl0gLmJ0biAuZmFiLFxuICAgIFtpZF49XCJ0b29sYmFyX1wiXSAuYnRuIC5yaSxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuIGksXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biAuZmEsXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biAuZmFzLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5idG4gLmZhcixcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuIC5mYWIsXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biAucmksXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIGksXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIC5mYSxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgLmZhcyxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgLmZhcixcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgLmZhYixcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgLnJpLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYnRuIGksXG4gICAgLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biBzbWFsbCxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4gc3BhbixcbiAgICBbaWRePVwidG9vbGJhcl9cIl0gLmJ0biBzbWFsbCxcbiAgICBbaWRePVwidG9vbGJhcl9cIl0gLmJ0biBzcGFuLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5idG4gc21hbGwsXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biBzcGFuLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBzbWFsbCxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgc3BhbixcbiAgICAuZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdGQgLmJ0biBzbWFsbCxcbiAgICAuZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdGQgLmJ0biBzcGFuLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgc21hbGwsXG4gICAgLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE1PQklMRSBJQ09OLU9OTFkgSEFSRCBMT0NLIChmaW5hbCBvdmVycmlkZSlcbiAgIC0gRW4gY2VsdWxhciwgYm90b25lcyBkZSB0YWJsYXMgbXVlc3RyYW4gc29sbyBpY29ub3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4sXG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuY29sdW1ucyAuYnRuLFxuICAgIFtpZF49XCJ0b29sYmFyX1wiXSAuYnRuLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5idG4sXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYnRuLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUge1xuICAgICAgICB3aWR0aDogMzRweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDM0cHggIWltcG9ydGFudDtcbiAgICAgICAgbWF4LXdpZHRoOiAzNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMzRweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiAzNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IDM0cHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5cHggIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biBpLFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgLmJ0biBpLFxuICAgIFtpZF49XCJ0b29sYmFyX1wiXSAuYnRuIGksXG4gICAgW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gLmZhLFxuICAgIFtpZF49XCJ0b29sYmFyX1wiXSAuYnRuIC5mYXMsXG4gICAgW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gLmZhcixcbiAgICBbaWRePVwidG9vbGJhcl9cIl0gLmJ0biAuZmFiLFxuICAgIFtpZF49XCJ0b29sYmFyX1wiXSAuYnRuIC5yaSxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuIGksXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biAuZmEsXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biAuZmFzLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5idG4gLmZhcixcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuIC5mYWIsXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biAucmksXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIGksXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIC5mYSxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgLmZhcyxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgLmZhcixcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgLmZhYixcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgLnJpLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYnRuIGksXG4gICAgLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biBzbWFsbCxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4gc3BhbixcbiAgICBbaWRePVwidG9vbGJhcl9cIl0gLmJ0biBzbWFsbCxcbiAgICBbaWRePVwidG9vbGJhcl9cIl0gLmJ0biBzcGFuLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5idG4gc21hbGwsXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biBzcGFuLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBzbWFsbCxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgc3BhbixcbiAgICAuZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdGQgLmJ0biBzbWFsbCxcbiAgICAuZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdGQgLmJ0biBzcGFuLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgc21hbGwsXG4gICAgLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgLmJ0bixcbiAgICBbaWRePVwidG9vbGJhcl9cIl0gLmJ0bixcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSxcbiAgICAuZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdGQgLmJ0bixcbiAgICAuZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIHtcbiAgICAgICAgd2lkdGg6IDM0cHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAzNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMzRweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiAzNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biBpLFxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgLmJ0biBpLFxuICAgIFtpZF49XCJ0b29sYmFyX1wiXSAuYnRuIGksXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biBpLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBpLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYnRuIGksXG4gICAgLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBpLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5idG4gLmZhLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5idG4gLmZhcyxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuIC5yaSxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgLmZhLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSAuZmFzLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSAucmkge1xuICAgICAgICBmb250LXNpemU6IDE1cHggIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biBzbWFsbCxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuIHNwYW4sXG4gICAgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIHNtYWxsLFxuICAgIC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBzcGFuLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYnRuIHNtYWxsLFxuICAgIC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYnRuIHNwYW4sXG4gICAgLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBzbWFsbCxcbiAgICAuZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDAgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUQUJMRSBCVVRUT05TIC0gTEVHSUJJTElEQUQgWSBVTklGT1JNSURBRCBGSU5BTFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgLmJ0bixcbltpZF49XCJ0b29sYmFyX1wiXSAuYnRuIHtcbiAgICBtaW4taGVpZ2h0OiAzOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBnYXA6IDZweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMTYzODRlICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biBpLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuY29sdW1ucyAuYnRuIGksXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0biBpLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gLmZhLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gLmZhcyxcbltpZF49XCJ0b29sYmFyX1wiXSAuYnRuIC5yaSB7XG4gICAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbn1cblxuI2J0bl9udWV2byxcbiNidG5fZXN0YWRvX2FsbCxcbiNidG5fY2FyZ2FfbWFzaXZhLFxuI2J0bl9kZXNjYXJnYXJfZXhjZWwsXG4jYnRuX2V4Y2VsX2NvbXBsZXRvLFxuI2J0bl9leGNlbF9maWx0cm8ge1xuICAgIGJhY2tncm91bmQ6ICMxMjgyNjEgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMxMjgyNjEgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4jYnRuX251ZXZvOmhvdmVyLFxuI2J0bl9lc3RhZG9fYWxsOmhvdmVyLFxuI2J0bl9jYXJnYV9tYXNpdmE6aG92ZXIsXG4jYnRuX2Rlc2Nhcmdhcl9leGNlbDpob3ZlcixcbiNidG5fZXhjZWxfY29tcGxldG86aG92ZXIsXG4jYnRuX2V4Y2VsX2ZpbHRybzpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzBmNmQ1MiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzBmNmQ1MiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNidG5fcmVtb3ZlX2FsbCxcbiNidG5fcGRmX2NvbXBsZXRvLFxuI2J0bl9wZGZfZmlsdHJvIHtcbiAgICBiYWNrZ3JvdW5kOiAjYzg0YTRhICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjYzg0YTRhICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuI2J0bl9yZW1vdmVfYWxsOmhvdmVyLFxuI2J0bl9wZGZfY29tcGxldG86aG92ZXIsXG4jYnRuX3BkZl9maWx0cm86aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNhYjNmM2YgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNhYjNmM2YgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSAuYnRuLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4ge1xuICAgIG1pbi1oZWlnaHQ6IDMxcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwIDEwcHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiA1cHggIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgLmJ0bi1wcmltYXJ5LFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4tcHJpbWFyeSB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjMjU2M2ViICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjU2M2ViICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIC5idG4tZGFuZ2VyLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4tZGFuZ2VyIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNjODRhNGEgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNjODRhNGEgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgLmJ0bi13YXJuaW5nLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4td2FybmluZyB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjYzU4YjJkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjYzU4YjJkICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgLmJ0bixcbltpZF49XCJ0b29sYmFyX1wiXSAuYnRuIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRibHgtYm9yZGVyKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMjc0MTU4ICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0bjpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmNvbHVtbnMgLmJ0bjpob3ZlcixcbltpZF49XCJ0b29sYmFyX1wiXSAuYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmNGY5ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjYjljY2RlICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJyZWZyZXNoXCJdLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cImNvbHVtbnNcIl0sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwiZXhwb3J0XCJdIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Ymx4LWJyYW5kKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGJseC1icmFuZCkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwicmVmcmVzaFwiXTpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJjb2x1bW5zXCJdOmhvdmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cImV4cG9ydFwiXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGJseC1icmFuZC1ob3ZlcikgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRibHgtYnJhbmQtaG92ZXIpICFpbXBvcnRhbnQ7XG59XG5cbiNidG5fbnVldm8sXG4jYnRuX2VzdGFkb19hbGwsXG4jYnRuX2NhcmdhX21hc2l2YSxcbiNidG5fZGVzY2FyZ2FyX2V4Y2VsLFxuI2J0bl9leGNlbF9jb21wbGV0byxcbiNidG5fZXhjZWxfZmlsdHJvIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Ymx4LXN1Y2Nlc3MpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10Ymx4LXN1Y2Nlc3MpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuI2J0bl9yZW1vdmVfYWxsLFxuI2J0bl9wZGZfY29tcGxldG8sXG4jYnRuX3BkZl9maWx0cm8ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtZGFuZ2VyKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGJseC1kYW5nZXIpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2Y0ZjlmZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS10Ymx4LWJvcmRlcikgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtcGFnaW5hdGlvbiAucGFnZS1pdGVtLmFjdGl2ZSAucGFnZS1saW5rIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Ymx4LWJyYW5kKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGJseC1icmFuZCkgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDhweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLnNlYXJjaCxcbiAgICAuYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5zZWFyY2ggaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRBQkxFUyAtIFBBTEVUVEUgMSBcIkRFRVAgVEVDSFwiXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuOnJvb3Qge1xuICAgIC0tdGJseC1iZzogI2Y4ZmJmZiAhaW1wb3J0YW50O1xuICAgIC0tdGJseC1zdXJmYWNlOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWJvcmRlcjogI2NiZDVlMSAhaW1wb3J0YW50O1xuICAgIC0tdGJseC1oZWFkLWJnOiAjZTJlOGYwICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWhlYWQtdGV4dDogIzBiMTIyMCAhaW1wb3J0YW50O1xuICAgIC0tdGJseC10ZXh0OiAjMGYxNzJhICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LXJvdy1hbHQ6ICNmOGZhZmMgIWltcG9ydGFudDtcbiAgICAtLXRibHgtcm93LWhvdmVyOiAjZTBmMmZlICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWJyYW5kOiAjMjU2M2ViICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWJyYW5kLWhvdmVyOiAjMWUzYThhICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LXN1Y2Nlc3M6ICMyNTYzZWIgIWltcG9ydGFudDtcbiAgICAtLXRibHgtZGFuZ2VyOiAjMWUzYThhICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJyZWZyZXNoXCJdLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cImNvbHVtbnNcIl0sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwiZXhwb3J0XCJdIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Ymx4LWJyYW5kKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGJseC1icmFuZCkgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cInJlZnJlc2hcIl06aG92ZXIsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwiY29sdW1uc1wiXTpob3Zlcixcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJleHBvcnRcIl06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtYnJhbmQtaG92ZXIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10Ymx4LWJyYW5kLWhvdmVyKSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSU5WRU5UT1JZIFRBQkxFUyAtIEVMRUdBTlQgSU1QQUNUIEhBUkQgTE9DSyBGSU5BTFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbjpyb290IHtcbiAgICAtLXRibHgtYmc6ICNmNGY4ZmMgIWltcG9ydGFudDtcbiAgICAtLXRibHgtc3VyZmFjZTogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIC0tdGJseC1ib3JkZXI6ICNkMmRkZTggIWltcG9ydGFudDtcbiAgICAtLXRibHgtaGVhZC1iZzogI2U2ZWRmNSAhaW1wb3J0YW50O1xuICAgIC0tdGJseC1oZWFkLXRleHQ6ICMxYTMzNGEgIWltcG9ydGFudDtcbiAgICAtLXRibHgtdGV4dDogIzI3M2Q1MiAhaW1wb3J0YW50O1xuICAgIC0tdGJseC1yb3ctYWx0OiAjZmJmY2ZlICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LXJvdy1ob3ZlcjogI2VhZjNmOCAhaW1wb3J0YW50O1xuICAgIC0tdGJseC1icmFuZDogIzJmNWQ4YSAhaW1wb3J0YW50O1xuICAgIC0tdGJseC1icmFuZC1ob3ZlcjogIzI1NGE2ZCAhaW1wb3J0YW50O1xuICAgIC0tdGJseC1zdWNjZXNzOiAjMmZhNThkICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWRhbmdlcjogI2I4NWM2YSAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS1jb250YWluZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRibHgtYm9yZGVyKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMnB4IHJnYmEoMTYsIDMzLCA0OSwgMC4xMikgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGhlYWQgdGgsXG4uZXN0aWxvc19nZW5lcmFsZXMgdGgge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtaGVhZC1iZykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tdGJseC1oZWFkLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRkIHtcbiAgICBjb2xvcjogdmFyKC0tdGJseC10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGQsXG4uZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Ymx4LXJvdy1hbHQpICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRyOmhvdmVyIHRkLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRyOmhvdmVyIHRkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Ymx4LXJvdy1ob3ZlcikgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cInJlZnJlc2hcIl0sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwiY29sdW1uc1wiXSxcbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJleHBvcnRcIl0ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtYnJhbmQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10Ymx4LWJyYW5kKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgYnV0dG9uW25hbWU9XCJyZWZyZXNoXCJdOmhvdmVyLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciBidXR0b25bbmFtZT1cImNvbHVtbnNcIl06aG92ZXIsXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIGJ1dHRvbltuYW1lPVwiZXhwb3J0XCJdOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Ymx4LWJyYW5kLWhvdmVyKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGJseC1icmFuZC1ob3ZlcikgIWltcG9ydGFudDtcbn1cblxuI2J0bl9udWV2byxcbiNidG5fZXN0YWRvX2FsbCxcbiNidG5fY2FyZ2FfbWFzaXZhLFxuI2J0bl9kZXNjYXJnYXJfZXhjZWwsXG4jYnRuX2V4Y2VsX2NvbXBsZXRvLFxuI2J0bl9leGNlbF9maWx0cm8ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtc3VjY2VzcykgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRibHgtc3VjY2VzcykgIWltcG9ydGFudDtcbn1cblxuI2J0bl9yZW1vdmVfYWxsLFxuI2J0bl9wZGZfY29tcGxldG8sXG4jYnRuX3BkZl9maWx0cm8ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtZGFuZ2VyKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGJseC1kYW5nZXIpICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXBhZ2luYXRpb24gLnBhZ2UtaXRlbS5hY3RpdmUgLnBhZ2UtbGluayB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGJseC1icmFuZCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRibHgtYnJhbmQpICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJTlZFTlRPUlkgVEFCTEVTIC0gTkVPIElNUEFDVCBWMiBGSU5BTFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbjpyb290IHtcbiAgICAtLXRibHgtYm9yZGVyOiAjYzhkOGU4ICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWhlYWQtYmc6ICNkZGU4ZjUgIWltcG9ydGFudDtcbiAgICAtLXRibHgtaGVhZC10ZXh0OiAjMTAyNTNhICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LXRleHQ6ICMyNDNhNTAgIWltcG9ydGFudDtcbiAgICAtLXRibHgtcm93LWhvdmVyOiAjZTNmNWZiICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWJyYW5kOiAjMjU2M2ViICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LWJyYW5kLWhvdmVyOiAjMWY0ZWI1ICFpbXBvcnRhbnQ7XG4gICAgLS10Ymx4LXN1Y2Nlc3M6ICMxNGI4YTYgIWltcG9ydGFudDtcbiAgICAtLXRibHgtZGFuZ2VyOiAjYzMzZDY0ICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLWNvbnRhaW5lciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGJseC1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDIycHggcmdiYSgxNiwgMzMsIDQ5LCAwLjE0KSAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0aGVhZCB0aCxcbi5lc3RpbG9zX2dlbmVyYWxlcyB0aCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGJseC1oZWFkLWJnKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS10Ymx4LWhlYWQtdGV4dCkgIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdHI6aG92ZXIgdGQsXG4uZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdHI6aG92ZXIgdGQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRibHgtcm93LWhvdmVyKSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVEFCTEUgQlVUVE9OUyAtIEhBUkQgTE9DSyBGSU5BTCBFTkQgVjJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5jb2x1bW5zIC5idG4sXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0biB7XG4gICAgbWluLWhlaWdodDogMzhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgMTJweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBnYXA6IDZweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMTQzYTUzICFpbXBvcnRhbnQ7XG59XG5cbiNidG5fbnVldm8sXG4jYnRuX2VzdGFkb19hbGwsXG4jYnRuX2NhcmdhX21hc2l2YSxcbiNidG5fZGVzY2FyZ2FyX2V4Y2VsLFxuI2J0bl9leGNlbF9jb21wbGV0byxcbiNidG5fZXhjZWxfZmlsdHJvIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTI4MjYxICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTI4MjYxICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuI2J0bl9yZW1vdmVfYWxsLFxuI2J0bl9wZGZfY29tcGxldG8sXG4jYnRuX3BkZl9maWx0cm8ge1xuICAgIGJhY2tncm91bmQ6ICNjODRhNGEgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNjODRhNGEgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXRhYmxlIC50YWJsZSAuYnRuLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4ge1xuICAgIG1pbi1oZWlnaHQ6IDMxcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwIDEwcHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiA1cHggIWltcG9ydGFudDtcbn1cblxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgLmJ0bi1wcmltYXJ5LFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4tcHJpbWFyeSxcbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIC5idG4tZGFuZ2VyLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4tZGFuZ2VyLFxuLmJvb3RzdHJhcC10YWJsZSAudGFibGUgLmJ0bi13YXJuaW5nLFxuLmVzdGlsb3NfZ2VuZXJhbGVzIC5idG4td2FybmluZyB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE1PQklMRSBJQ09OLU9OTFkgSEFSRCBMT0NLIChFT0Ygd2lubmVyKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuY29sdW1ucyAuYnRuLFxuICAgIGJvZHkgW2lkXj1cInRvb2xiYXJfXCJdIC5idG4sXG4gICAgYm9keSAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lLFxuICAgIGJvZHkgLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRkIC5idG4sXG4gICAgYm9keSAuZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIHtcbiAgICAgICAgd2lkdGg6IDM0cHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAzNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC13aWR0aDogMzRweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDM0cHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogMzRweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtaGVpZ2h0OiAzNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBib2R5IC5ib290c3RyYXAtdGFibGUgLmZpeGVkLXRhYmxlLXRvb2xiYXIgLmJ0biBpLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuY29sdW1ucyAuYnRuIGksXG4gICAgYm9keSBbaWRePVwidG9vbGJhcl9cIl0gLmJ0biBpLFxuICAgIGJvZHkgW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gLmZhLFxuICAgIGJvZHkgW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gLmZhcyxcbiAgICBib2R5IFtpZF49XCJ0b29sYmFyX1wiXSAuYnRuIC5mYXIsXG4gICAgYm9keSBbaWRePVwidG9vbGJhcl9cIl0gLmJ0biAuZmFiLFxuICAgIGJvZHkgW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gLnJpLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biBpLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biAuZmEsXG4gICAgYm9keSAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuIC5mYXMsXG4gICAgYm9keSAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuIC5mYXIsXG4gICAgYm9keSAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuIC5mYWIsXG4gICAgYm9keSAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuIC5yaSxcbiAgICBib2R5IC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBpLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIC5mYSxcbiAgICBib2R5IC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSAuZmFzLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIC5mYXIsXG4gICAgYm9keSAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYWNjaW9uLWluZm9ybWUgLmZhYixcbiAgICBib2R5IC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSAucmksXG4gICAgYm9keSAuZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdGQgLmJ0biBpLFxuICAgIGJvZHkgLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuIHNtYWxsLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuIHNwYW4sXG4gICAgYm9keSBbaWRePVwidG9vbGJhcl9cIl0gLmJ0biBzbWFsbCxcbiAgICBib2R5IFtpZF49XCJ0b29sYmFyX1wiXSAuYnRuIHNwYW4sXG4gICAgYm9keSAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuIHNtYWxsLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0biBzcGFuLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIHNtYWxsLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIHNwYW4sXG4gICAgYm9keSAuZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdGQgLmJ0biBzbWFsbCxcbiAgICBib2R5IC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYnRuIHNwYW4sXG4gICAgYm9keSAuZXN0aWxvc19nZW5lcmFsZXMgdGJvZHkgdGQgLmFjY2lvbi1pbmZvcm1lIHNtYWxsLFxuICAgIGJvZHkgLmVzdGlsb3NfZ2VuZXJhbGVzIHRib2R5IHRkIC5hY2Npb24taW5mb3JtZSBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLyogRXN0YWRvIGVuIGZpbGFzOiBtYW50ZW5lciBmb3JtYXRvIG5vcm1hbCBlbiBtb3ZpbCAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgYm9keSAuYm9vdHN0cmFwLXRhYmxlIC50YWJsZSB0Ym9keSB0ZCAuYnRuLmVzdGFkbyxcbiAgICBib2R5IC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYnRuLmVzdGFkbyB7XG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogNzhweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwIDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBib2R5IC5ib290c3RyYXAtdGFibGUgLnRhYmxlIHRib2R5IHRkIC5idG4uZXN0YWRvIHNtYWxsLFxuICAgIGJvZHkgLmJvb3RzdHJhcC10YWJsZSAudGFibGUgdGJvZHkgdGQgLmJ0bi5lc3RhZG8gc3BhbixcbiAgICBib2R5IC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYnRuLmVzdGFkbyBzbWFsbCxcbiAgICBib2R5IC5lc3RpbG9zX2dlbmVyYWxlcyB0Ym9keSB0ZCAuYnRuLmVzdGFkbyBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIi8qIEVzdGlsb3MgcGFyYSBlbCBjb250ZW5lZG9yIGRlIFdoYXRzQXBwICovXG4ud2hhdHNhcHAtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAyMHB4O1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyNUQzNjY7IC8qIENvbG9yIGRlIGZvbmRvIGRlIFdoYXRzQXBwICovXG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIHotaW5kZXg6IDI7IC8qIEFzZWd1cmEgcXVlIFdoYXRzQXBwIGVzdMOpIGVuY2ltYSBkZSBUZWxlZ3JhbSAqL1xufVxuXG4vKiBFc3RpbG9zIHBhcmEgZWwgY29udGVuZWRvciBkZSBUZWxlZ3JhbSAqL1xuLnRlbGVncmFtLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogNjVweDsgLyogQWp1c3RhIGxhIHBvc2ljacOzbiBwYXJhIHF1ZSBlc3TDqSBkZWJham8gZGUgV2hhdHNBcHAgKi9cbiAgICByaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4OGNjOyAvKiBDb2xvciBkZSBmb25kbyBkZSBUZWxlZ3JhbSAqL1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICB6LWluZGV4OiAxOyAvKiBBc2VndXJhIHF1ZSBUZWxlZ3JhbSBlc3TDqSBkZWJham8gZGUgV2hhdHNBcHAgKi9cbn1cblxuLyogRXN0aWxvcyBwYXJhIGVsIGVubGFjZSBkZSBXaGF0c0FwcCB5IFRlbGVncmFtICovXG4ud2hhdHNhcHAtbGluaywgLnRlbGVncmFtLWxpbmsge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogI2ZmZjsgLyogQ29sb3IgZGVsIHRleHRvICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKiBFc3RpbG9zIHBhcmEgZWwgw61jb25vIGRlIFdoYXRzQXBwIHkgVGVsZWdyYW0gKi9cbi53aGF0c2FwcC1pY29uLCAudGVsZWdyYW0taWNvbiB7XG4gICAgZm9udC1zaXplOiAyNHB4OyAvKiBUYW1hw7FvIGRlbCDDrWNvbm8gKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi8qIEVzdGlsb3MgcGFyYSBlbCB0ZXh0byBkZSBXaGF0c0FwcCB5IFRlbGVncmFtICovXG4ud2hhdHNhcHAtdGV4dCwgLnRlbGVncmFtLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLyogT2N1bHRhciBsb3MgY29udHJvbGVzIGRlIG7Dum1lcm8gZW4gQ2hyb21lLCBTYWZhcmksIEVkZ2UgeSBPcGVyYSAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG59XG5cbi8qIE9jdWx0YXIgbG9zIGNvbnRyb2xlcyBkZSBuw7ptZXJvIGVuIEZpcmVmb3ggKi9cbmlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSU5GT1JNRVMgLSBGSUxUUk9TIERFIEZFQ0hBIChHVUlBIFZJU1VBTClcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uaW5mb3JtZXMtZmlsdHJvIC5jYXJkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2FkZWYzICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMThweCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMThweCAzOHB4IHJnYmEoMTEsIDQ0LCA3MiwgMC4xNCkgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZmZmZmYgMCUsICNmNWZhZmYgMTAwJSkgIWltcG9ydGFudDtcbn1cblxuLmluZm9ybWVzLWZpbHRybyAuY2FyZC1ib2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMS4xNXJlbSAxLjJyZW0gMS4wNXJlbSAxLjJyZW0gIWltcG9ydGFudDtcbn1cblxuLmluZm9ybWVzLWZpbHRybyAuY2FyZC1ib2R5OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTQ4cHg7XG4gICAgcmlnaHQ6IC00NHB4O1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDQ4LCAxNDEsIDIyMiwgMC4xOSkgMCUsIHJnYmEoNDgsIDE0MSwgMjIyLCAwKSA2OCUpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uaW5mb3JtZXMtZmlsdHJvIC5jYXJkLXRpdGxlIHtcbiAgICBjb2xvcjogIzBmMzU1NyAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcbn1cblxuLmluZm9ybWVzLWZpbHRybyAuaW5mb3JtZS1maWx0cm8tZ3VpYSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZWFmNGZmIDAlLCAjZjVmYmZmIDEwMCUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMmRjZjQ7XG4gICAgY29sb3I6ICMxZTRmNzc7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiA5cHggMTFweDtcbiAgICBmb250LXNpemU6IDAuODlyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmluZm9ybWVzLWZpbHRybyAuZm9ybS1sYWJlbCB7XG4gICAgY29sb3I6ICMxMjNmNjIgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmZvcm1lcy1maWx0cm8gLmZvcm0tY29udHJvbFt0eXBlPVwiZGF0ZVwiXSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2I0ZDJlZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDExcHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzEzM2I1YyAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmRmZWZlICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogNDJweDtcbn1cblxuLmluZm9ybWVzLWZpbHRybyAuZm9ybS1jb250cm9sW3R5cGU9XCJkYXRlXCJdOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMyZjg3ZDEgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwLjIycmVtIHJnYmEoNDcsIDEzNSwgMjA5LCAwLjE5KSAhaW1wb3J0YW50O1xufVxuXG4uaW5mb3JtZXMtZmlsdHJvIC50ZXh0LW11dGVkIHtcbiAgICBjb2xvcjogIzRiNmE4NiAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbiNjdWVycG8gLmluZm9ybWUtYWNjaW9uZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbiNjdWVycG8gLmluZm9ybWUtYWNjaW9uZXMgLnBhZ2UtaGVhZGVyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBjb2xvcjogIzEyM2Y2MjtcbiAgICBmb250LXdlaWdodDogODAwO1xufVxuXG4jY3VlcnBvIC5pbmZvcm1lLWFjY2lvbmVzIC5idG4ge1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMTZweCByZ2JhKDE1LCA1NiwgOTAsIDAuMTIpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyBlYXNlLCBib3gtc2hhZG93IDAuMThzIGVhc2U7XG59XG5cbiNjdWVycG8gLmluZm9ybWUtYWNjaW9uZXMgLmJ0bjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMnB4IHJnYmEoMTUsIDU2LCA5MCwgMC4xOCk7XG59XG5cbiNjdWVycG8gLmluZm9ybWUtYWNjaW9uZXMgLmJ0bi1vdXRsaW5lLWRhbmdlciB7XG4gICAgY29sb3I6ICNiYjFmMzYgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNkNzdhODcgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmNmY3ICFpbXBvcnRhbnQ7XG59XG5cbiNjdWVycG8gLmluZm9ybWUtYWNjaW9uZXMgLmJ0bi1vdXRsaW5lLXByaW1hcnkge1xuICAgIGNvbG9yOiAjMTM1Yzk2ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjNzJhOGQ0ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2YyZjlmZiAhaW1wb3J0YW50O1xufVxuXG4jY3VlcnBvIC5pbmZvcm1lLWFjY2lvbmVzIC5idG4tZGFuZ2VyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNkMTQ3NWUgMCUsICNiODNiNTAgMTAwJSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNiODNiNTAgIWltcG9ydGFudDtcbn1cblxuI2N1ZXJwbyAuYWNjaW9uLWluZm9ybWUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogM3B4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDAuNzZyZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2U7XG59XG5cbiNjdWVycG8gLmFjY2lvbi1pbmZvcm1lIHNtYWxsIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbiNjdWVycG8gLmFjY2lvbi1pbmZvcm1lLS1wZGYge1xuICAgIGNvbG9yOiAjYTcxNjJjICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjNmNTtcbiAgICBib3JkZXItY29sb3I6ICNmMGJkYzU7XG59XG5cbiNjdWVycG8gLmFjY2lvbi1pbmZvcm1lLS1wZGY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmU5ZWQ7XG59XG5cbiNjdWVycG8gLmFjY2lvbi1pbmZvcm1lLS1kYW5nZXIge1xuICAgIGNvbG9yOiAjOGYxNjI5ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjFmMztcbiAgICBib3JkZXItY29sb3I6ICNlYmIwYmE7XG59XG5cbiNjdWVycG8gLmFjY2lvbi1pbmZvcm1lLS1kYW5nZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmU0ZTg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5pbmZvcm1lcy1maWx0cm8gLmNhcmQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgI2N1ZXJwbyAuaW5mb3JtZS1hY2Npb25lcyB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgICNjdWVycG8gLmluZm9ybWUtYWNjaW9uZXMgLnBhZ2UtaGVhZGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG5cbiAgICAjY3VlcnBvIC5pbmZvcm1lLWFjY2lvbmVzIC5idG4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG4iLCIvKiBDb250ZW5lZG9yIHByaW5jaXBhbCBkZWwgZm9ybXVsYXJpbyBkZSBwcm9kdWN0b3MuICovXG4ubW9kYWwtcHJvZHVjdG9zIC5tb2RhbC1ib2R5IHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4vKiBTZXBhcmFkb3JlcyB2aXN1YWxlcyBwYXJhIG9yZGVuYXIgbG9zIGRhdG9zIGFkaWNpb25hbGVzIHBvciB0ZW1hLiAqL1xuLm1vZGFsLXByb2R1Y3RvcyAuZGF0b3MtYWRpY2lvbmFsZXMtc2VjY2lvbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkYmU1ZWY7XG4gICAgcGFkZGluZzogNHB4IDAgOHB4O1xufVxuXG4vKiBUw610dWxvcyBkZSBjYWRhIGdydXBvIGRlIGRhdG9zIGFkaWNpb25hbGVzLiAqL1xuLm1vZGFsLXByb2R1Y3RvcyAuZGF0b3MtYWRpY2lvbmFsZXMtdGl0dWxvIHtcbiAgICBjb2xvcjogIzE3MzI0ZDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiBJY29ub3MgcXVlIGF5dWRhbiBhIGlkZW50aWZpY2FyIGNhZGEgZ3J1cG8gZGVsIGZvcm11bGFyaW8uICovXG4ubW9kYWwtcHJvZHVjdG9zIC5kYXRvcy1hZGljaW9uYWxlcy10aXR1bG8gaSB7XG4gICAgY29sb3I6ICMyZDc4YmM7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG59XG5cbi8qIFRleHRvIGRlIGF5dWRhIGRlYmFqbyBkZSBsb3MgdMOtdHVsb3MgZGUgc2VjY2nDs24uICovXG4ubW9kYWwtcHJvZHVjdG9zIC5kYXRvcy1hZGljaW9uYWxlcy1heXVkYSB7XG4gICAgY29sb3I6ICM2ODc3ODk7XG4gICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgIG1hcmdpbjogNHB4IDAgMDtcbn1cblxuLyogVGFyamV0YXMgbGlnZXJhcyBwYXJhIHF1ZSBjYWRhIGNhbXBvIGFkaWNpb25hbCBzZSBkaXN0aW5nYSBtZWpvci4gKi9cbi5tb2RhbC1wcm9kdWN0b3MgLmRhdG9zLWFkaWNpb25hbGVzLWNhbXBvIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMWU4ZWY7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiAxMnB4O1xufVxuXG4vKiBNYW50ZW5lciB2aXNpYmxlcyB5IGxlZ2libGVzIGxvcyB0ZXh0b3MgbGFyZ29zIGRlbCBmb3JtdWxhcmlvLiAqL1xuLm1vZGFsLXByb2R1Y3RvcyB0ZXh0YXJlYSB7XG4gICAgbWluLWhlaWdodDogMTEwcHg7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi8qIFNlcGFyYWNpw7NuIGNsYXJhIHBhcmEgZWwgaW50ZXJydXB0b3IgZ2VuZXJhbCBkZSBkYXRvcyBhZGljaW9uYWxlcy4gKi9cbi5tb2RhbC1wcm9kdWN0b3MgI3RpZW5lX2RhdG9zX2FkaWNpb25hbGVzIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qIENhbXBvIGRlIGLDunNxdWVkYSB1dGlsaXphZG8gcGFyYSBzZWxlY2Npb25hciB2YXJpb3MgY29sb3Jlcy4gKi9cbi5tb2RhbC1wcm9kdWN0b3MgI2NvbG9yX2F1dG9jb21wbGV0ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2I5Y2JlMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY29sb3I6ICMxNzMyNGQ7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTtcbn1cblxuLyogUmVzYWx0YXIgZWwgY2FtcG8gZGUgY29sb3JlcyBjdWFuZG8gZXN0w6EgYWN0aXZvLiAqL1xuLm1vZGFsLXByb2R1Y3RvcyAjY29sb3JfYXV0b2NvbXBsZXRlOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMyZDc4YmM7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNDUsIDEyMCwgMTg4LCAwLjE2KTtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4vKiDDgXJlYSBkb25kZSBzZSBtdWVzdHJhbiBsb3MgY29sb3JlcyBxdWUgeWEgZnVlcm9uIHNlbGVjY2lvbmFkb3MuICovXG4ubW9kYWwtcHJvZHVjdG9zICNjb2xvcl9zZWxlY2Npb25hZG9zX2xpc3RhIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICNmNGY4ZmM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZTFlZDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4taGVpZ2h0OiA0MnB4O1xuICAgIHBhZGRpbmc6IDhweDtcbn1cblxuLyogRXRpcXVldGEgaW5kaXZpZHVhbCBkZSBjYWRhIGNvbG9yIHNlbGVjY2lvbmFkby4gKi9cbi5tb2RhbC1wcm9kdWN0b3MgI2NvbG9yX3NlbGVjY2lvbmFkb3NfbGlzdGEgW2RhdGEtY29sb3ItcmVtb3ZlXSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjZTZmMmZmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJkNzhiYyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMxNzQzNmIgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGdhcDogN3B4O1xuICAgIHBhZGRpbmc6IDAuMzhyZW0gMC43cmVtO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLCBjb2xvciAwLjJzIGVhc2U7XG59XG5cbi8qIENhbWJpYXIgZWwgY29sb3IgZGUgbGEgZXRpcXVldGEgY3VhbmRvIGVsIHVzdWFyaW8gdmEgYSBxdWl0YXJsYS4gKi9cbi5tb2RhbC1wcm9kdWN0b3MgI2NvbG9yX3NlbGVjY2lvbmFkb3NfbGlzdGEgW2RhdGEtY29sb3ItcmVtb3ZlXTpob3Zlcixcbi5tb2RhbC1wcm9kdWN0b3MgI2NvbG9yX3NlbGVjY2lvbmFkb3NfbGlzdGEgW2RhdGEtY29sb3ItcmVtb3ZlXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogIzJkNzhiYyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi8qIFNlcGFyYXIgdmlzdWFsbWVudGUgZWwgYm90w7NuIHBhcmEgcXVpdGFyIHVuIGNvbG9yIHNlbGVjY2lvbmFkby4gKi9cbi5tb2RhbC1wcm9kdWN0b3MgI2NvbG9yX3NlbGVjY2lvbmFkb3NfbGlzdGEgW2RhdGEtY29sb3ItcmVtb3ZlXSBzcGFuIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi8qIEVzdGFkbyB2aXNpYmxlIGRlIGxvcyBjb2xvcmVzIHF1ZSB5YSBlc3TDoW4gc2VsZWNjaW9uYWRvcyBlbiBlbCBhdXRvY29tcGxldGFkby4gKi9cbi5tb2RhbC1wcm9kdWN0b3MgLnVpLWF1dG9jb21wbGV0ZSAudWktbWVudS1pdGVtLXdyYXBwZXIuY29tYm8tb3B0aW9uLXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGNlZWZmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMmQ3OGJjO1xuICAgIGNvbG9yOiAjMTIzZDY0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG59XG5cbi8qIEVzdGFkbyBhY3Rpdm8gZGVsIGNvbG9yIHNlbGVjY2lvbmFkbyBhbCBwYXNhciBlbCBjdXJzb3IgcG9yIGVsIGxpc3RhZG8uICovXG4ubW9kYWwtcHJvZHVjdG9zIC51aS1hdXRvY29tcGxldGUgLnVpLW1lbnUtaXRlbS13cmFwcGVyLmNvbWJvLW9wdGlvbi1zZWxlY3RlZDpob3Zlcixcbi5tb2RhbC1wcm9kdWN0b3MgLnVpLWF1dG9jb21wbGV0ZSAudWktbWVudS1pdGVtLXdyYXBwZXIuY29tYm8tb3B0aW9uLXNlbGVjdGVkLnVpLXN0YXRlLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogIzJkNzhiYyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbmVkb3IgZGVsIGRldGFsbGUgcXVlIHNlIGFicmUgY29uIGVsIHNpZ25vIG1hcyBkZSBsYSB0YWJsYS4gKi9cbiN0YWJsZV9pdGVtcyAucHJvZHVjdG8tZGV0YWxsZSB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmJmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDhlNWYyO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6ICM0MzU2NmQ7XG4gICAgbWFyZ2luOiA0cHggOHB4O1xuICAgIHBhZGRpbmc6IDE0cHg7XG59XG5cbi8qIE9yZ2FuaXphciBsb3MgY2FtcG9zIHNlY3VuZGFyaW9zIGVuIGNvbHVtbmFzIHNpbiBhbGFyZ2FyIGRlbWFzaWFkbyBsYSB0YWJsYS4gKi9cbiN0YWJsZV9pdGVtcyAucHJvZHVjdG8tZGV0YWxsZS1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogOHB4IDI0cHg7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMTBweCwgMWZyKSk7XG59XG5cbi8qIFNlcGFyYXIgZWwgbm9tYnJlIGRlbCBjYW1wbyBkZSBzdSB2YWxvciBwYXJhIGZhY2lsaXRhciBsYSBsZWN0dXJhLiAqL1xuI3RhYmxlX2l0ZW1zIC5wcm9kdWN0by1kZXRhbGxlLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuXG4vKiBEZXN0YWNhciBsb3Mgbm9tYnJlcyBkZSBsb3MgY2FtcG9zIHNlY3VuZGFyaW9zLiAqL1xuI3RhYmxlX2l0ZW1zIC5wcm9kdWN0by1kZXRhbGxlLWl0ZW0gc3Ryb25nLFxuI3RhYmxlX2l0ZW1zIC5wcm9kdWN0by1kZXRhbGxlLWNhcmFjdGVyaXN0aWNhcyBzdHJvbmcge1xuICAgIGNvbG9yOiAjMTczMjRkO1xufVxuXG4vKiBNb3N0cmFyIGxhcyBjYXJhY3RlcmlzdGljYXMgY29tcGxldGFzIHJlc3BldGFuZG8gbG9zIHNhbHRvcyBkZSBsaW5lYS4gKi9cbiN0YWJsZV9pdGVtcyAucHJvZHVjdG8tZGV0YWxsZS1jYXJhY3RlcmlzdGljYXMge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDhlNWYyO1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuXG4vKiBBanVzdGFyIGVsIGRldGFsbGUgcGFyYSBwYW50YWxsYXMgcGVxdWXDsWFzLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgI3RhYmxlX2l0ZW1zIC5wcm9kdWN0by1kZXRhbGxlIHtcbiAgICAgICAgbWFyZ2luOiA0cHggMDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG5cbiAgICAjdGFibGVfaXRlbXMgLnByb2R1Y3RvLWRldGFsbGUtZ3JpZCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBBUFAuU0NTUyDigJQgT1JERU4gQ09SUkVDVE9cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIC0tLSBGcmFtZXdvcmtzIGJhc2UgLS0tICovXG5AaW1wb3J0IFwiYm9vdHN0cmFwXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwLWljb25zL2ZvbnQvYm9vdHN0cmFwLWljb25zLmNzc1wiO1xuQGltcG9ydCBcIkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL2Nzcy9hbGwubWluLmNzc1wiO1xuXG4vKiAtLS0gUGx1Z2lucyBkZSB0YWJsYXMgLS0tICovXG5AaW1wb3J0IFwiYm9vdHN0cmFwLXRhYmxlL2Rpc3QvYm9vdHN0cmFwLXRhYmxlLm1pbi5jc3NcIjtcbkBpbXBvcnQgXCJib290c3RyYXAtdGFibGUvZGlzdC9leHRlbnNpb25zL3Jlb3JkZXItcm93cy9ib290c3RyYXAtdGFibGUtcmVvcmRlci1yb3dzLm1pbi5jc3NcIjtcblxuLyogLS0tIGpRdWVyeSBVSSAtLS0gKi9cbkBpbXBvcnQgXCJqcXVlcnktdWkvdGhlbWVzL2Jhc2UvYWxsLmNzc1wiO1xuXG4vKiAtLS0gQWxlcnRhcyAmIE5vdGlmaWNhY2lvbmVzIC0tLSAqL1xuQGltcG9ydCBcInN3ZWV0YWxlcnQyL2Rpc3Qvc3dlZXRhbGVydDIubWluLmNzc1wiO1xuQGltcG9ydCBcInRvYXN0ci9idWlsZC90b2FzdHIubWluLmNzc1wiO1xuQGltcG9ydCBcImpxdWVyeS1jb25maXJtL2Nzcy9qcXVlcnktY29uZmlybS5jc3NcIjtcblxuLyogLS0tIEVkaXRvcmVzIC0tLSAqL1xuQGltcG9ydCBcImZyb2FsYS1lZGl0b3IvY3NzL2Zyb2FsYV9lZGl0b3IucGtnZC5taW4uY3NzXCI7XG5cbi8qIC0tLSBJY29ub3MgZXh0cmFzIC0tLSAqL1xuQGltcG9ydCBcImJveGljb25zL2Nzcy9ib3hpY29ucy5taW4uY3NzXCI7XG5AaW1wb3J0IFwicmVtaXhpY29uL2ZvbnRzL3JlbWl4aWNvbi5jc3NcIjtcblxuLyogLS0tIFBpY2tyIChDb2xvciBQaWNrZXIpIC0tLSAqL1xuQGltcG9ydCBcIkBzaW1vbndlcC9waWNrci9kaXN0L3RoZW1lcy9jbGFzc2ljLm1pbi5jc3NcIjtcblxuLyogLS0tIEVzdGlsb3MgcGVyc29uYWxpemFkb3MgZGVsIHByb3llY3RvIC0tLSAqL1xuQGltcG9ydCBcInByaW5jaXBhbC5jc3NcIjtcbkBpbXBvcnQgXCJzdHlsZS5jc3NcIjtcbkBpbXBvcnQgXCJzaWRlYmFyLmNzc1wiO1xuQGltcG9ydCBcInRhYmxlcy5jc3NcIjtcbkBpbXBvcnQgXCJ2aXN0YXMuY3NzXCI7XG5AaW1wb3J0IFwicHJvZHVjdG9zLmNzc1wiO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVEFCTEUvVUkgVklTSUJJTElUWSBGSVhFUyAoU0FGRSBMQVlFUilcbiAgIC0gZXZpdGEgcm9tcGVyIGRpc2XDsW8gZ2xvYmFsIGV4aXN0ZW50ZVxuICAgLSBjb3JyaWdlIHRleHRvL8OtY29ub3MgaW52aXNpYmxlcyBlbiB0b29sYmFyIHkgdGFibGFzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4sXG4uYm9vdHN0cmFwLXRhYmxlIC5maXhlZC10YWJsZS10b29sYmFyIC5idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGdhcDogNnB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xufVxuXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0biBpLFxuLmJvb3RzdHJhcC10YWJsZSAuZml4ZWQtdGFibGUtdG9vbGJhciAuYnRuIGksXG5baWRePVwidG9vbGJhcl9cIl0gLmJ0biAuZmFzLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gLmZhLFxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4gLnJpIHtcbiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBNYW50ZW5lciBsZWdpYmxlcyBsb3Mgb3V0bGluZSBzaW4gZm9yemFyIHRleHRvIGJsYW5jbyBnbG9iYWwgKi9cbltpZF49XCJ0b29sYmFyX1wiXSAuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkge1xuICAgIGNvbG9yOiAjMGQ2ZWZkICFpbXBvcnRhbnQ7XG59XG5baWRePVwidG9vbGJhcl9cIl0gLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIHtcbiAgICBjb2xvcjogIzE5ODc1NCAhaW1wb3J0YW50O1xufVxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIHtcbiAgICBjb2xvcjogI2RjMzU0NSAhaW1wb3J0YW50O1xufVxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IHtcbiAgICBjb2xvcjogIzZjNzU3ZCAhaW1wb3J0YW50O1xufVxuW2lkXj1cInRvb2xiYXJfXCJdIC5idG4uYnRuLW91dGxpbmUtd2FybmluZyB7XG4gICAgY29sb3I6ICM4YTZkMWQgIWltcG9ydGFudDtcbn1cblxuLyogQm90b25lcyBudWV2b3MgZGUgZXhwb3J0YWNpw7NuIChwcm9kdWN0b3MvaW5mb3JtZXMpICovXG4jYnRuX3BkZl9jb21wbGV0byxcbiNidG5fcGRmX2ZpbHRybyB7XG4gICAgYmFja2dyb3VuZDogI2MxM2YzZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogI2MxM2YzZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNidG5fZXhjZWxfY29tcGxldG8sXG4jYnRuX2V4Y2VsX2ZpbHRybyxcbiNidG5fZGVzY2FyZ2FyX2V4Y2VsIHtcbiAgICBiYWNrZ3JvdW5kOiAjMGY4YTY2ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMGY4YTY2ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLyogRW4gYWNjaW9uZXMgZGUgdGFibGEsIG1hbnRlbmVyIGNvbnRyYXN0ZSBlbiB0b2RvcyBsb3MgbcOzZHVsb3MgKi9cbi5ib290c3RyYXAtdGFibGUgLnRhYmxlIC5idG4ge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIENSVUQgQ09NQk9TIFBST0RVQ1RPUyAtIEJPVE9ORVMgQ0xBVkVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jaXRlbXMtYWRtaW5pc3RyYXRpdm9zLWNvbWJvcy1wcm9kdWN0b3MgI2J0bl9hZ3JlZ2FyX2l0ZW1fY29tYm8ge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsICMyZDc4YmMgMCUsICMyZjhmYzUgMTAwJSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMmI3OGIyICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE0cHggcmdiYSgyOCwgOTAsIDEzNiwgMC4yNCkgIWltcG9ydGFudDtcbn1cblxuI2l0ZW1zLWFkbWluaXN0cmF0aXZvcy1jb21ib3MtcHJvZHVjdG9zICNidG5fYWdyZWdhcl9pdGVtX2NvbWJvOmhvdmVyLFxuI2l0ZW1zLWFkbWluaXN0cmF0aXZvcy1jb21ib3MtcHJvZHVjdG9zICNidG5fYWdyZWdhcl9pdGVtX2NvbWJvOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCAjMjU1Zjk0IDAlLCAjMjM3OGE3IDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjI1ZjkwICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuI2l0ZW1zLWFkbWluaXN0cmF0aXZvcy1jb21ib3MtcHJvZHVjdG9zIC5jb21iby1pdGVtLWRlbCB7XG4gICAgYmFja2dyb3VuZDogI2QxM2QzZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogI2QxM2QzZCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNpdGVtcy1hZG1pbmlzdHJhdGl2b3MtY29tYm9zLXByb2R1Y3RvcyAuY29tYm8taXRlbS1kZWw6aG92ZXIsXG4jaXRlbXMtYWRtaW5pc3RyYXRpdm9zLWNvbWJvcy1wcm9kdWN0b3MgLmNvbWJvLWl0ZW0tZGVsOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAjYjgyZjJmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjYjgyZjJmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIERBU0hCT0FSRCBJTlZFTlRPUlkgLSBLUElTIC8gUkVQT1JURVMgLyBHUkFGSUNBU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmRhc2hib2FyZC1rcGktY2FyZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2M5ZDllOCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xOHMgZWFzZSwgYm94LXNoYWRvdyAuMThzIGVhc2UgIWltcG9ydGFudDtcbn1cblxuLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAuZGFzaGJvYXJkLWtwaS1jYXJkIC5jYXJkLWJvZHkge1xuICAgIHBhZGRpbmc6IDE2cHggMThweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZjhmYmZmICFpbXBvcnRhbnQ7XG59XG5cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmRhc2hib2FyZC1rcGktY2FyZDpob3Zlcixcbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmRhc2hib2FyZC1rcGktY2FyZDpmb2N1cy13aXRoaW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbiAgICBib3gtc2hhZG93OiAwIDE0cHggMjRweCByZ2JhKDEzLCAzMCwgNDcsIDAuMjgpICFpbXBvcnRhbnQ7XG59XG5cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmtwaS1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAua3BpLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wM2VtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBvcGFjaXR5OiAuOTU7XG59XG5cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmtwaS1oZWFkIGkge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAua3BpLXZhbHVlIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmtwaS1mb290IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgb3BhY2l0eTogLjk7XG59XG5cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmtwaS1ibHVlIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyNWRlZywgIzFlNDBhZiwgIzI1NjNlYikgIWltcG9ydGFudDsgfVxuLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAua3BpLWdyZWVuIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyNWRlZywgIzBmNzY2ZSwgIzE0YjhhNikgIWltcG9ydGFudDsgfVxuLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAua3BpLXJvc2UgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTI1ZGVnLCAjYmUxODVkLCAjZTExZDQ4KSAhaW1wb3J0YW50OyB9XG4uZGFzaGJvYXJkLWludmVudG9yeS1wYWdlIC5rcGktYW1iZXIgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTI1ZGVnLCAjYjQ1MzA5LCAjZjU5ZTBiKSAhaW1wb3J0YW50OyB9XG4uZGFzaGJvYXJkLWludmVudG9yeS1wYWdlIC5rcGktY3lhbiB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjVkZWcsICMwZTc0OTAsICMwNmI2ZDQpICFpbXBvcnRhbnQ7IH1cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmtwaS1zbGF0ZSB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjVkZWcsICMzMzQxNTUsICM2NDc0OGIpICFpbXBvcnRhbnQ7IH1cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmtwaS1pbmRpZ28geyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTI1ZGVnLCAjMzczMGEzLCAjNGY0NmU1KSAhaW1wb3J0YW50OyB9XG4uZGFzaGJvYXJkLWludmVudG9yeS1wYWdlIC5rcGktcHVycGxlIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyNWRlZywgIzZkMjhkOSwgIzkzMzNlYSkgIWltcG9ydGFudDsgfVxuLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAua3BpLXRlYWwgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTI1ZGVnLCAjMGY3NjZlLCAjMGQ5NDg4KSAhaW1wb3J0YW50OyB9XG5cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmRhc2hib2FyZC1yZXBvcnQtY2FyZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NmZGVlYyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZmZmZmZmIDAlLCAjZjZmOWZjIDEwMCUpICFpbXBvcnRhbnQ7XG59XG5cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmRhc2hib2FyZC1yZXBvcnQtY2FyZCAuY2FyZC1ib2R5IHtcbiAgICBwYWRkaW5nOiAxNnB4IDE4cHggIWltcG9ydGFudDtcbn1cblxuLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAucmVwb3J0LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA4ZW07XG4gICAgY29sb3I6ICM0ZjY0Nzk7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG5cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLnJlcG9ydC1tYWluIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBjb2xvcjogIzEzMzE0ODtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLnJlcG9ydC1zdWIge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzRmNjQ3OTtcbn1cblxuLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAuZGFzaGJvYXJkLWNsaWVudC1hY3Rpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiA2cHggIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDE4NHB4ICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogNDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAuODVyZW0gMS4xcmVtICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi5kYXNoYm9hcmQtaW52ZW50b3J5LXBhZ2UgLmRhc2hib2FyZC1jaGFydC1jYXJkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2ZkZWVjICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweCAhaW1wb3J0YW50O1xufVxuXG4uZGFzaGJvYXJkLWludmVudG9yeS1wYWdlIC5kYXNoYm9hcmQtY2hhcnQtY2FyZCAuY2FyZC1oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzE3MzI0YSAwJSwgIzFmNGQ3MiAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZjNmOWZmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweCAxNnB4IDAgMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDJlbTtcbn1cblxuLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAuZGFzaGJvYXJkLWNoYXJ0LWNhcmQgLmNhcmQtYm9keSB7XG4gICAgcGFkZGluZzogMTRweCAxNHB4IDEwcHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAua3BpLXZhbHVlIHtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NnB4KSB7XG4gICAgLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAuZGFzaGJvYXJkLWtwaS1jYXJkIC5jYXJkLWJvZHksXG4gICAgLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAuZGFzaGJvYXJkLXJlcG9ydC1jYXJkIC5jYXJkLWJvZHkge1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE0cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuZGFzaGJvYXJkLWludmVudG9yeS1wYWdlIC5rcGktdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuXG4gICAgLmRhc2hib2FyZC1pbnZlbnRvcnktcGFnZSAua3BpLXZhbHVlIHtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIExPR0lOIC8gUkVHSVNUUk8gLSBCT1RPTkVTIFkgTElOS1Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYnRuLWF1dGgtbWFpbiB7XG4gICAgbWluLWhlaWdodDogNDRweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAyZW0gIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMTZweCByZ2JhKDMwLCA2NCwgMTc1LCAwLjI0KSAhaW1wb3J0YW50O1xufVxuXG4uYnRuLWF1dGgtbWFpbjpob3Zlcixcbi5idG4tYXV0aC1tYWluOmZvY3VzIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDE4cHggcmdiYSgzMCwgNjQsIDE3NSwgMC4zKSAhaW1wb3J0YW50O1xufVxuXG4uYnRuLWF1dGgtbGluayB7XG4gICAgY29sb3I6ICMxZDRlZDggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCByZ2JhKDI5LCA3OCwgMjE2LCAwLjQpO1xufVxuXG4uYnRuLWF1dGgtbGluazpob3Zlcixcbi5idG4tYXV0aC1saW5rOmZvY3VzIHtcbiAgICBjb2xvcjogIzFlNDBhZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMzAsIDY0LCAxNzUsIDAuNjUpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/