/*!***************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/styles/app.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;800;900&display=swap);
/*!*******************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/styles/app.scss (1) ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/* =========================================================
   WARTHOGADVENTURES — CSS GLOBAL PROPRE ET COMMENTÉ
   Sections incluses :
   - Variables / base
   - EasyAdmin / dashboard
   - Navbar front + panier
   - Hero + sections
   - Boutons
   - Why / Story / Workshop
   - Catégories / produits
   - Fiche produit + galerie + lightbox
   - Vidéo hero
   - Panier
   - Checkout / succès commande
   - Footer
   - Animations
   - Responsive
========================================================= */
/* =========================================================
   1. VARIABLES GLOBALES
========================================================= */
:root {
  /* Couleurs principales */
  --dark: #020617;
  --dark-soft: #071426;
  --blue-dark: #082f49;
  --blue: #2563eb;
  /* Couleurs néon */
  --cyan: #67e8f9;
  --cyan-strong: #38bdf8;
  /* Textes */
  --text: #e5f6ff;
  --muted: #cbd5e1;
  --muted-dark: #94a3b8;
  --brand-font: "Orbitron", "Eurostile", "Bank Gothic Medium", "Arial Narrow", sans-serif;
  /* États */
  --danger: #ef4444;
  /* Rayons */
  --radius: 24px;
  --border-radius: 18px;
  /* EasyAdmin sidebar */
  --sidebar-bg: linear-gradient(
      180deg,
      #071426 0%,
      #0b1f3d 45%,
      #071426 100%
  );
  --sidebar-menu-color: rgba(255, 255, 255, .75);
  --sidebar-menu-active-item-color: #ffffff;
  --sidebar-menu-active-item-bg: linear-gradient(135deg, #18cfff, #0ea5e9);
  --link-color: #4fd8ff;
}

.front-navbar .front-brand span,
.front-navbar .front-nav-links a,
.front-nav-toggle,
.front-badge,
.section-kicker,
.front-marquee-track span,
.front-hero h1,
.front-section h2,
.front-section h3,
.page-shell h1,
.page-shell h2,
.page-shell h3,
.cart-page h1,
.cart-page h2,
.cart-page h3,
.checkout-page h1,
.checkout-page h2,
.checkout-page h3,
.contact-page h1,
.contact-page h2,
.contact-page h3,
.product-card h3,
.product-category,
.product-show-headline h1,
.product-show-flags,
.btn-neon,
.btn-ghost,
.btn-primary,
.site-popup-kicker,
.site-popup-dialog h2,
.site-popup-answer-grid label,
.front-footer h2,
.front-footer h3,
.footer-links a,
.footer-newsletter-copy strong {
  font-family: var(--brand-font);
}

.badge-preorder,
.product-show-flag.is-preorder {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.38rem 0.8rem;
  border-radius: 999px;
  background: rgba(100, 220, 255, 0.16);
  border: 1px solid rgba(100, 220, 255, 0.4);
  color: #86efff;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.product-preorder-card,
.cart-preorder-summary,
.checkout-preorder-alert {
  margin-top: 1rem;
  padding: 1rem 1.1rem;
  border-radius: 1.1rem;
  background: rgba(64, 197, 255, 0.08);
  border: 1px solid rgba(64, 197, 255, 0.24);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}

.product-preorder-card strong,
.cart-preorder-summary strong,
.checkout-preorder-alert strong {
  display: block;
  margin-bottom: 0.35rem;
  color: #7feaff;
}

.product-preorder-card p,
.cart-preorder-summary p,
.checkout-preorder-alert p {
  margin: 0.25rem 0 0;
}

.cart-preorder-note,
.order-item-preorder-note,
.checkout-preorder-line {
  display: block;
  margin-top: 0.4rem;
  color: #86efff;
  font-size: 0.92rem;
}

.cart-item-option,
.order-item-option,
.checkout-item-option {
  display: block;
  margin-top: 0.35rem;
  color: var(--muted);
  font-size: 0.92rem;
}

.preorder-section .product-grid {
  margin-top: 1.8rem;
}

.preorder-hero-card {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: 1.4rem 1.5rem;
  border-radius: 1.4rem;
  background: linear-gradient(135deg, rgba(34, 83, 130, 0.52), rgba(10, 31, 58, 0.88));
  border: 1px solid rgba(89, 202, 255, 0.24);
}

.preorder-hero-card strong {
  display: block;
  margin-bottom: 0.35rem;
  color: #ffffff;
}

.product-card-preorder {
  position: relative;
}

.product-show-stock-preorder {
  border-color: rgba(100, 220, 255, 0.4);
}

.checkout-preorder-alert-success,
.checkout-preorder-alert-order {
  text-align: left;
}

@media (max-width: 768px) {
  .preorder-hero-card {
    flex-direction: column;
    align-items: flex-start;
  }
}
.admin-login-page {
  min-height: 100vh;
  margin: 0;
  background: radial-gradient(circle at top, rgba(79, 208, 255, 0.16), transparent 34%), linear-gradient(180deg, #06101f 0%, #09162b 100%);
}

.admin-login-shell {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 20px;
}

.admin-login-card {
  width: min(100%, 540px);
  padding: 36px;
  border: 1px solid rgba(72, 178, 232, 0.22);
  border-radius: 28px;
  background: rgba(10, 25, 46, 0.92);
  box-shadow: 0 20px 60px rgba(1, 10, 24, 0.48);
}

.admin-login-brand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 24px;
  color: #fff;
  text-decoration: none;
}

.admin-login-brand img {
  width: 58px;
  height: 58px;
  object-fit: contain;
}

.admin-login-brand span {
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admin-login-copy .eyebrow {
  margin-bottom: 8px;
  color: #59dfff;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.admin-login-copy h1 {
  margin: 0 0 12px;
}

.admin-login-copy p {
  margin: 0 0 24px;
  color: rgba(237, 245, 255, 0.76);
}

.admin-login-form {
  display: grid;
  gap: 14px;
}

.admin-login-form label {
  font-weight: 600;
  color: #fff;
}

.admin-login-form input {
  width: 100%;
}

.site-access-card {
  width: min(100%, 560px);
}

.site-access-banner {
  display: grid;
  gap: 8px;
  margin-bottom: 20px;
  padding: 16px 18px;
  border: 1px solid rgba(56, 189, 248, 0.22);
  border-radius: 20px;
  background: radial-gradient(circle at top left, rgba(103, 232, 249, 0.16), transparent 44%), rgba(8, 28, 51, 0.88);
  box-shadow: 0 0 24px rgba(56, 189, 248, 0.08);
}

.site-access-banner span {
  color: var(--cyan);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.site-access-banner strong {
  color: #ffffff;
  font-size: 1rem;
  line-height: 1.5;
}

.site-access-meta {
  margin-top: 20px;
  color: rgba(237, 245, 255, 0.74);
  line-height: 1.6;
}

.site-access-meta p {
  margin: 0 0 8px;
}

.site-access-meta a {
  color: var(--cyan);
  font-weight: 700;
  text-decoration: none;
}

.site-access-admin-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 6px;
  padding: 12px 18px;
  border: 1px solid rgba(56, 189, 248, 0.28);
  border-radius: 999px;
  background: rgba(56, 189, 248, 0.1);
  box-shadow: 0 0 16px rgba(56, 189, 248, 0.12);
}

.site-access-meta a:hover {
  text-decoration: underline;
}

.site-access-admin-link:hover {
  text-decoration: none;
  transform: translateY(-2px);
  background: rgba(56, 189, 248, 0.16);
  box-shadow: 0 0 24px rgba(56, 189, 248, 0.18);
}

.flash-message.flash-error {
  margin-bottom: 18px;
  border-color: rgba(255, 126, 126, 0.35);
  background: rgba(118, 16, 24, 0.28);
  color: #ffe1e1;
}

/* =========================================================
   2. BASE / RESET GLOBAL
========================================================= */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

html,
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--dark);
  color: var(--text);
}

body {
  min-height: 100vh;
}

img,
video {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
}

/* =========================================================
   3. EASYADMIN / DASHBOARD
========================================================= */
/* Conteneur global dashboard */
.warthog-dashboard {
  display: flex;
  flex-direction: column;
  gap: 30px;
  width: 100%;
  padding-top: 20px;
}

/* Hero dashboard */
.dashboard-hero {
  position: relative;
  width: 100%;
  padding: 40px;
  border-radius: 26px;
  overflow: hidden;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(8, 47, 73, 0.82));
  border: 1px solid rgba(56, 189, 248, 0.12);
  box-shadow: 0 0 35px rgba(37, 99, 235, 0.14), inset 0 0 35px rgba(255, 255, 255, 0.02);
}

/* Logo dashboard */
.dashboard-logo {
  width: 140px;
  margin-bottom: 20px;
  filter: drop-shadow(0 0 10px #3b82f6) drop-shadow(0 0 25px #06b6d4);
}

/* Titre dashboard */
.dashboard-hero h1 {
  margin-bottom: 14px;
  color: #ffffff;
  font-size: 4rem;
  font-weight: 900;
  letter-spacing: 2px;
  text-shadow: 0 0 10px rgba(59, 130, 246, 0.8), 0 0 20px rgba(6, 182, 212, 0.5);
}

/* Texte dashboard */
.dashboard-hero p {
  max-width: 700px;
  color: var(--muted);
  font-size: 1.15rem;
  line-height: 1.6;
}

/* Grille statistiques dashboard */
.dashboard-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  width: 100%;
}

/* Carte statistique */
.stat-card {
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 160px;
  padding: 26px;
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(8, 47, 73, 0.82));
  border: 1px solid rgba(56, 189, 248, 0.18);
  box-shadow: 0 0 25px rgba(14, 165, 233, 0.12), inset 0 0 22px rgba(255, 255, 255, 0.03);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Hover carte statistique */
.stat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 35px rgba(14, 165, 233, 0.28), 0 0 60px rgba(37, 99, 235, 0.12);
}

/* Icône statistique */
.stat-icon {
  width: 68px;
  height: 68px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 2rem;
  background: rgba(56, 189, 248, 0.1);
  box-shadow: 0 0 18px rgba(56, 189, 248, 0.22);
}

/* Label statistique */
.stat-content span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted-dark);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Nombre statistique */
.stat-content strong {
  color: #ffffff;
  font-size: 2.5rem;
  font-weight: 800;
  text-shadow: 0 0 10px rgba(56, 189, 248, 0.65);
}

/* Couleurs variantes statistiques */
.stat-blue {
  border-color: rgba(34, 211, 238, 0.45);
}

.stat-orange {
  border-color: rgba(251, 146, 60, 0.45);
}

.stat-green {
  border-color: rgba(52, 211, 153, 0.45);
}

.stat-yellow {
  border-color: rgba(250, 204, 21, 0.45);
}

.stat-cyan {
  border-color: rgba(34, 211, 238, 0.45);
}

.stat-purple {
  border-color: rgba(167, 139, 250, 0.45);
}

.dashboard-stats-analytics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dashboard-analytics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  width: 100%;
}

.dashboard-panel {
  padding: 26px;
  border: 1px solid rgba(56, 189, 248, 0.14);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(8, 47, 73, 0.78));
  box-shadow: 0 0 30px rgba(14, 165, 233, 0.1), inset 0 0 22px rgba(255, 255, 255, 0.03);
}

.dashboard-panel-head {
  display: grid;
  gap: 8px;
  margin-bottom: 20px;
}

.dashboard-panel-head span {
  color: var(--cyan);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.dashboard-panel-head h2 {
  margin: 0;
  color: #ffffff;
  font-size: 1.4rem;
  font-weight: 800;
}

.dashboard-ranking {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dashboard-ranking li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid rgba(148, 163, 184, 0.1);
  border-radius: 18px;
  background: rgba(15, 23, 42, 0.5);
}

.dashboard-ranking li strong {
  color: #ffffff;
  font-size: 1rem;
}

.dashboard-ranking li span,
.dashboard-ranking li small {
  color: var(--muted-dark);
}

.dashboard-ranking li div {
  display: grid;
  gap: 4px;
}

.dashboard-empty {
  justify-content: center;
  color: var(--muted-dark);
  text-align: center;
}

/* Corrections couleurs EasyAdmin */
.content-wrapper,
.content,
.ea-content,
.ea-form,
.form-widget,
.form-group,
.field-group {
  color: var(--text) !important;
}

/* Labels EasyAdmin */
.content-wrapper label,
.content-wrapper .form-label,
.content-wrapper legend,
.content-wrapper .field-label,
.content-wrapper .col-form-label,
.content-wrapper .form-fieldset-header {
  color: var(--text) !important;
}

/* Textes d’aide EasyAdmin */
.content-wrapper small,
.content-wrapper .form-text,
.content-wrapper .form-help,
.content-wrapper .help-text {
  color: var(--muted-dark) !important;
}

/* Header EasyAdmin */
.content-header,
.content-header-title,
.content-header-title h1 {
  background: rgba(15, 23, 42, 0.95) !important;
  color: #ffffff !important;
}

/* Bouton ajout collection EasyAdmin */
.field-collection-add-button,
.btn.btn-link.field-collection-add-button {
  padding: 10px 16px !important;
  border: 1px solid rgba(56, 189, 248, 0.28) !important;
  border-radius: 12px !important;
  background: rgba(15, 23, 42, 0.72) !important;
  color: var(--cyan) !important;
  text-decoration: none !important;
  transition: background 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

/* Hover bouton ajout collection */
.field-collection-add-button:hover {
  background: rgba(56, 189, 248, 0.12) !important;
  box-shadow: 0 0 18px rgba(56, 189, 248, 0.35);
  transform: translateY(-2px);
}

/* Logo custom EasyAdmin */
.logo-custom {
  color: #ffffff !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em;
  text-shadow: 0 0 10px rgba(56, 189, 248, 0.55);
}

/* Sidebar EasyAdmin */
.sidebar {
  background: var(--sidebar-bg) !important;
  border-right: 1px solid rgba(79, 216, 255, 0.12);
}

/* Bouton burger EasyAdmin visible */
#navigation-toggler,
#navigation-toggler.btn-invisible {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  color: #061920 !important;
}

/* =========================================================
   4. NAVBAR FRONT
========================================================= */
/* Barre de navigation flottante */
.front-navbar {
  position: fixed !important;
  top: 22px;
  left: 6vw;
  right: 6vw;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 16px 22px;
  border-radius: 22px;
  background: rgba(15, 23, 42, 0.72);
  border: 1px solid rgba(56, 189, 248, 0.18);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 0 30px rgba(14, 165, 233, 0.12);
  transition: background 0.3s ease, border 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease, transform 0.3s ease;
}

/* Navbar après scroll */
.front-navbar.scrolled {
  padding: 12px 18px;
  background: rgba(2, 6, 23, 0.82);
  border: 1px solid rgba(103, 232, 249, 0.28);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  box-shadow: 0 0 24px rgba(34, 211, 238, 0.18), 0 0 60px rgba(37, 99, 235, 0.12);
  transform: translateY(-2px);
}

/* Marque logo + texte */
.front-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  color: #ffffff;
  text-decoration: none;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.front-nav-meta {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Logo navbar */
.front-brand img {
  width: 54px;
  filter: drop-shadow(0 0 8px #38bdf8) drop-shadow(0 0 18px #2563eb);
}

/* Liens navbar */
.front-nav-links {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-left: auto;
}

.front-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Lien standard */
.front-nav-links a {
  position: relative;
  color: var(--muted);
  text-decoration: none;
  font-weight: 600;
  transition: color 0.25s ease;
}

/* Hover lien standard */
.front-nav-links a:hover {
  color: var(--cyan);
}

/* Soulignement animé sauf panier */
.front-nav-links a:not(.cart-nav-link)::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 0%;
  height: 2px;
  background: var(--cyan);
  box-shadow: 0 0 10px rgba(103, 232, 249, 0.8);
  transition: width 0.25s ease;
}

/* Hover soulignement */
.front-nav-links a:not(.cart-nav-link):hover::after {
  width: 100%;
}

@media (max-width: 768px) {
  .front-navbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .front-brand span {
    display: none;
  }
  .front-nav-links {
    display: flex;
    width: auto;
    margin: 0;
    padding: 0;
    gap: 0;
  }
  .front-nav-links a:not(.cart-nav-link) {
    display: none;
  }
  .cart-nav-link {
    width: 42px;
    height: 42px;
    min-width: 42px;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
  }
  .cart-nav-link i {
    font-size: 1.05rem;
  }
  .cart-nav-badge {
    top: -6px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    font-size: 0.65rem;
  }
}
/* =========================================================
   5. PANIER NAVBAR
========================================================= */
/* Bouton panier */
.cart-nav-link {
  position: relative;
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(56, 189, 248, 0.1);
  border: 1px solid rgba(56, 189, 248, 0.18);
  color: var(--cyan) !important;
  text-decoration: none;
  font-size: 1.2rem;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

/* Hover panier */
.cart-nav-link:hover {
  transform: translateY(-2px);
  background: rgba(56, 189, 248, 0.16);
  box-shadow: 0 0 22px rgba(56, 189, 248, 0.28);
}

/* Badge quantité panier */
.cart-nav-badge {
  position: absolute;
  top: -12px;
  right: -18px;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--cyan), var(--cyan-strong));
  color: var(--dark);
  font-size: 0.72rem;
  font-weight: 950;
  box-shadow: 0 0 14px rgba(56, 189, 248, 0.65);
}

/* Panier avec produits */
.front-navbar .front-nav-links a.cart-nav-link.has-items {
  color: var(--danger) !important;
  background: rgba(239, 68, 68, 0.18) !important;
  border: 1px solid rgba(239, 68, 68, 0.55) !important;
  box-shadow: 0 0 18px rgba(239, 68, 68, 0.55), 0 0 45px rgba(239, 68, 68, 0.25) !important;
  animation: cartPulse 2.2s ease-in-out infinite;
}

/* Icône panier avec produits */
.front-navbar .front-nav-links a.cart-nav-link.has-items i {
  color: var(--danger) !important;
}

/* Hover panier avec produits */
.front-navbar .front-nav-links a.cart-nav-link.has-items:hover {
  color: #ffffff !important;
  background: rgba(239, 68, 68, 0.28) !important;
}

/* Badge panier avec produits */
.cart-nav-link.has-items .cart-nav-badge {
  background: linear-gradient(135deg, #ef4444, #dc2626) !important;
  color: #ffffff !important;
  box-shadow: 0 0 18px rgba(239, 68, 68, 0.45);
}

/* =========================================================
   6. HERO ACCUEIL
========================================================= */
/* Couleur texte front */
.front-hero,
.front-section {
  color: var(--text);
}

/* Section hero principale */
.front-hero {
  position: relative;
  min-height: 100vh;
  padding: 28px 6vw 90px;
  overflow: hidden;
  background: radial-gradient(circle at 15% 20%, rgba(34, 211, 238, 0.22), transparent 28%), radial-gradient(circle at 85% 30%, rgba(37, 99, 235, 0.22), transparent 30%), linear-gradient(145deg, #020617 0%, #071426 50%, #082f49 100%);
}

/* Grille décorative hero */
.front-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(56, 189, 248, 0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(56, 189, 248, 0.04) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: radial-gradient(circle at center, black, transparent 75%);
  pointer-events: none;
}

/* Radar décoratif hero */
.front-hero::after {
  content: "";
  position: absolute;
  right: 8%;
  top: 18%;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: repeating-radial-gradient(circle, rgba(56, 189, 248, 0.22) 0 1px, transparent 1px 72px), conic-gradient(from 0deg, transparent 0deg, rgba(56, 189, 248, 0.45) 28deg, transparent 62deg, transparent 360deg);
  opacity: 0.35;
  filter: drop-shadow(0 0 24px rgba(56, 189, 248, 0.45));
  animation: radarRotate 8s linear infinite;
  pointer-events: none;
}

/* Glow hero */
.front-hero-glow {
  position: absolute;
  right: 8%;
  top: 22%;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: rgba(34, 211, 238, 0.16);
  filter: blur(70px);
}

/* Scan lumineux hero */
.front-hero-glow::after {
  content: "";
  position: absolute;
  inset: -120px;
  background: linear-gradient(180deg, transparent, rgba(56, 189, 248, 0.18), transparent);
  animation: scanMove 4s ease-in-out infinite;
}

/* Contenu hero */
.front-hero-content {
  position: relative;
  z-index: 2;
  max-width: 820px;
  margin-top: 150px;
}

.front-marquee {
  position: relative;
  display: block;
  width: 88vw;
  margin-bottom: 22px;
  overflow: hidden;
  border: 1px solid rgba(56, 189, 248, 0.24);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(8, 47, 73, 0.68), rgba(7, 20, 38, 0.92));
  box-shadow: 0 0 26px rgba(14, 165, 233, 0.12), inset 0 0 24px rgba(255, 255, 255, 0.02);
  color: #dff8ff;
  text-decoration: none;
}

.front-marquee:hover {
  border-color: rgba(103, 232, 249, 0.36);
  box-shadow: 0 0 30px rgba(56, 189, 248, 0.18), inset 0 0 24px rgba(255, 255, 255, 0.03);
}

.front-marquee-inner {
  display: flex;
  width: max-content;
  animation: frontMarqueeScroll 22s linear infinite;
}

.front-marquee-track {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-shrink: 0;
  padding: 14px 18px;
  white-space: nowrap;
}

.front-marquee-track span {
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.front-marquee-track i {
  color: var(--cyan);
  font-size: 0.92rem;
  filter: drop-shadow(0 0 8px rgba(103, 232, 249, 0.55));
}

.front-marquee:hover .front-marquee-inner {
  animation-play-state: paused;
}

.front-hero-logo-wrap {
  position: absolute;
  top: 53%;
  right: 13%;
  z-index: 2;
  width: clamp(240px, 23vw, 370px);
  transform: translateY(-50%);
  pointer-events: none;
}

.front-hero-logo-wrap::before {
  content: "";
  position: absolute;
  inset: 12% 10%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(103, 232, 249, 0.34) 0%, rgba(37, 99, 235, 0.08) 56%, transparent 78%);
  filter: blur(24px);
  z-index: -1;
}

.front-hero-logo {
  width: 100%;
  height: auto;
  opacity: 0.95;
  filter: drop-shadow(0 0 18px rgba(103, 232, 249, 0.55)) drop-shadow(0 0 40px rgba(37, 99, 235, 0.36));
}

/* Badge hero + kicker section */
.front-badge,
.section-kicker {
  display: inline-flex;
  margin-bottom: 22px;
  padding: 9px 16px;
  border-radius: 999px;
  background: rgba(56, 189, 248, 0.12);
  border: 1px solid rgba(56, 189, 248, 0.28);
  color: var(--cyan);
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 0.75rem;
}

/* Titre hero */
.front-hero h1 {
  color: #ffffff;
  font-size: clamp(3rem, 8vw, 7rem);
  line-height: 0.95;
  font-weight: 950;
  letter-spacing: -0.05em;
  text-shadow: 0 0 14px rgba(56, 189, 248, 0.85), 0 0 35px rgba(37, 99, 235, 0.5);
}

/* Texte hero */
.front-hero p {
  max-width: 650px;
  margin-top: 26px;
  color: var(--muted);
  font-size: 1.25rem;
  line-height: 1.7;
}

/* Actions hero */
.front-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 36px;
}

@keyframes frontMarqueeScroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
/* =========================================================
   7. BOUTONS
========================================================= */
/* Base boutons */
.btn-neon,
.btn-ghost,
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 22px;
  border-radius: 999px;
  text-decoration: none !important;
  font-weight: 900;
}

/* Bouton néon / primaire */
.btn-neon,
.btn-primary {
  color: var(--dark) !important;
  background: linear-gradient(135deg, var(--cyan), var(--cyan-strong));
  box-shadow: 0 0 18px rgba(56, 189, 248, 0.55), 0 0 42px rgba(37, 99, 235, 0.35);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Hover bouton néon */
.btn-neon:hover,
.btn-primary:hover {
  color: var(--dark) !important;
  transform: translateY(-3px);
  box-shadow: 0 0 28px rgba(56, 189, 248, 0.75), 0 0 60px rgba(37, 99, 235, 0.45);
}

/* Bouton ghost */
.btn-ghost {
  color: var(--text);
  border: 1px solid rgba(226, 232, 240, 0.25);
  background: rgba(15, 23, 42, 0.4);
}

.btn-ghost.is-disabled {
  opacity: 0.6;
  pointer-events: none;
}

/* Bouton produit désactivé */
.product-disabled {
  opacity: 1;
  cursor: not-allowed;
  pointer-events: none;
  color: #ffffff !important;
  background: linear-gradient(135deg, #ff2d55, #8b0000) !important;
  border: 1px solid rgba(255, 70, 90, 0.75) !important;
  box-shadow: 0 0 18px rgba(255, 45, 85, 0.65), 0 0 40px rgba(255, 45, 85, 0.35);
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.8);
}

/* =========================================================
   8. SECTIONS GÉNÉRALES / DIVIDER
========================================================= */
/* Section front standard */
.front-section {
  padding: 90px 6vw;
  background: radial-gradient(circle at top left, rgba(34, 211, 238, 0.12), transparent 30%), var(--dark);
}

/* Titre section */
.section-heading {
  margin-bottom: 36px;
}

/* Petit titre section */
.section-heading span {
  color: var(--cyan-strong);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.8rem;
  font-weight: 900;
}

/* Grand titre section */
.section-heading h2 {
  margin-top: 8px;
  color: #ffffff;
  font-size: clamp(2rem, 4vw, 4rem);
  font-weight: 950;
}

/* Séparateur lumineux */
.section-divider {
  position: relative;
  height: 120px;
  overflow: hidden;
  background: linear-gradient(180deg, transparent, rgba(56, 189, 248, 0.04), transparent);
}

/* Glow séparateur */
.section-divider::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 500px;
  height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(56, 189, 248, 0.18), transparent 70%);
  filter: blur(40px);
  opacity: 0.7;
}

/* =========================================================
   9. WHY SECTION
========================================================= */
/* Section pourquoi */
.why-section {
  position: relative;
  padding: 120px 6vw;
  background: radial-gradient(circle at center, rgba(34, 211, 238, 0.08), transparent 40%), linear-gradient(180deg, #020617 0%, #06111f 100%);
}

/* Grille cartes pourquoi */
.why-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin-top: 60px;
}

/* Carte pourquoi */
.why-card {
  position: relative;
  padding: 38px;
  border-radius: 28px;
  overflow: hidden;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.95), rgba(8, 47, 73, 0.72));
  border: 1px solid rgba(56, 189, 248, 0.14);
  box-shadow: 0 0 35px rgba(14, 165, 233, 0.1), inset 0 0 24px rgba(255, 255, 255, 0.03);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Hover carte pourquoi */
.why-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 0 40px rgba(34, 211, 238, 0.24), 0 0 80px rgba(37, 99, 235, 0.14);
}

/* Icône pourquoi */
.why-icon {
  width: 78px;
  height: 78px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 28px;
  border-radius: 22px;
  font-size: 2.2rem;
  background: linear-gradient(145deg, rgba(56, 189, 248, 0.18), rgba(37, 99, 235, 0.12));
  box-shadow: 0 0 24px rgba(56, 189, 248, 0.24);
}

/* Titre carte pourquoi */
.why-card h3 {
  margin-bottom: 18px;
  color: #ffffff;
  font-size: 1.55rem;
  font-weight: 900;
}

/* Texte carte pourquoi */
.why-card p {
  color: var(--muted);
  line-height: 1.8;
}

/* =========================================================
   10. STORY / WORKSHOP
========================================================= */
/* Sections story et atelier */
.brand-story-section,
.workshop-section {
  position: relative;
  padding: 120px 6vw;
  overflow: hidden;
}

/* Section histoire de marque */
.brand-story-section {
  background: radial-gradient(circle at top left, rgba(34, 211, 238, 0.14), transparent 32%), radial-gradient(circle at bottom right, rgba(37, 99, 235, 0.14), transparent 34%), linear-gradient(180deg, #020617 0%, #06111f 100%);
}

/* Conteneur histoire */
.brand-story-container {
  position: relative;
  z-index: 2;
  max-width: 960px;
}

/* Titres story / workshop */
.brand-story-section h2,
.workshop-content h2 {
  margin: 0 0 28px;
  color: #ffffff;
  font-size: clamp(2.4rem, 5vw, 5.6rem);
  line-height: 0.95;
  font-weight: 950;
  letter-spacing: -0.05em;
  text-shadow: 0 0 14px rgba(56, 189, 248, 0.65), 0 0 34px rgba(37, 99, 235, 0.35);
}

/* Paragraphes story / workshop */
.brand-story-section p,
.workshop-content p {
  max-width: 760px;
  color: var(--muted);
  font-size: 1.08rem;
  line-height: 1.85;
}

/* Section atelier */
.workshop-section {
  background: radial-gradient(circle at center, rgba(34, 211, 238, 0.08), transparent 40%), linear-gradient(180deg, #06111f 0%, #020617 100%);
}

/* Radar atelier */
.workshop-section::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 520px;
  height: 520px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: repeating-radial-gradient(circle, rgba(56, 189, 248, 0.22) 0 1px, transparent 1px 72px), conic-gradient(from 0deg, transparent 0deg, rgba(56, 189, 248, 0.45) 28deg, transparent 62deg, transparent 360deg);
  opacity: 0.25;
  filter: drop-shadow(0 0 24px rgba(56, 189, 248, 0.45));
  animation: radarRotate 8s linear infinite;
  pointer-events: none;
}

/* Grille atelier */
.workshop-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 42px;
  align-items: center;
}

/* Contour carte atelier */
.workshop-card {
  padding: 1px;
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(56, 189, 248, 0.8), rgba(37, 99, 235, 0.18));
  box-shadow: 0 0 35px rgba(14, 165, 233, 0.16), 0 0 70px rgba(37, 99, 235, 0.1);
}

/* Intérieur carte atelier */
.workshop-card-inner {
  min-height: 300px;
  padding: 38px;
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(8, 47, 73, 0.78));
  border: 1px solid rgba(56, 189, 248, 0.14);
  color: #ffffff;
}

/* Icône carte atelier */
.workshop-card-inner span {
  display: inline-flex;
  margin-bottom: 24px;
  font-size: 2.6rem;
  filter: drop-shadow(0 0 12px rgba(56, 189, 248, 0.65));
}

/* Titre carte atelier */
.workshop-card-inner h3 {
  margin-bottom: 16px;
  color: #ffffff;
  font-size: 1.6rem;
  font-weight: 900;
}

/* Texte carte atelier */
.workshop-card-inner p {
  color: var(--muted);
  line-height: 1.8;
}

/* =========================================================
   11. CATÉGORIES / CARTES PRODUITS
========================================================= */
/* Grilles catégories et produits */
.category-grid,
.product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

/* Carte catégorie et produit */
.category-card,
.product-card {
  overflow: hidden;
  border-radius: 26px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.95), rgba(8, 47, 73, 0.75));
  border: 1px solid rgba(56, 189, 248, 0.18);
  box-shadow: 0 0 30px rgba(14, 165, 233, 0.1), inset 0 0 24px rgba(255, 255, 255, 0.03);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Hover cartes */
.category-card:hover,
.product-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 0 36px rgba(34, 211, 238, 0.28), 0 0 70px rgba(37, 99, 235, 0.16);
}

/* Carte catégorie */
.category-card {
  padding: 24px;
}

/* Image catégorie */
.category-card img {
  width: 100%;
  height: 160px;
  margin-bottom: 18px;
  object-fit: contain;
  filter: drop-shadow(0 0 14px rgba(56, 189, 248, 0.45));
}

/* Titres catégories / produits */
.category-card h3,
.product-card h3 {
  color: #ffffff;
  font-weight: 900;
}

/* Textes catégories / produits */
.category-card p,
.product-card p {
  color: var(--muted);
}

.category-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.category-card-link:hover {
  color: inherit;
  text-decoration: none;
}

/* Lien carte produit */
.product-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

/* Hover lien produit */
.product-card-link:hover {
  color: inherit;
  text-decoration: none;
}

/* Carte produit avec effet 3D */
.product-card {
  position: relative;
  isolation: isolate;
  transform-style: preserve-3d;
}

/* Glow souris carte produit */
.product-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: radial-gradient(circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(103, 232, 249, 0.22), transparent 38%);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

/* Hover produit 3D */
.product-card:hover {
  transform: perspective(900px) rotateX(var(--rotate-x, 0deg)) rotateY(var(--rotate-y, 0deg)) translateY(-10px);
  box-shadow: 0 0 45px rgba(34, 211, 238, 0.35), 0 20px 60px rgba(0, 0, 0, 0.45), inset 0 0 28px rgba(255, 255, 255, 0.04);
}

/* Affichage glow souris */
.product-card:hover::before {
  opacity: 1;
}

/* Contenu au-dessus du glow */
.product-card > * {
  position: relative;
  z-index: 2;
}

/* Zone image produit */
.product-image {
  position: relative;
  height: 230px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle, rgba(56, 189, 248, 0.14), transparent 60%);
}

/* Image produit */
.product-image img {
  max-width: 82%;
  max-height: 180px;
  object-fit: contain;
  filter: drop-shadow(0 0 12px rgba(56, 189, 248, 0.55));
  transition: transform 0.35s ease, filter 0.35s ease;
}

/* Hover image produit */
.product-card:hover .product-image img {
  transform: scale(1.08) translateZ(30px);
  filter: drop-shadow(0 0 18px rgba(103, 232, 249, 0.75)) drop-shadow(0 0 34px rgba(37, 99, 235, 0.45));
}

/* Contenu produit */
.product-content {
  padding: 24px;
}

/* Catégorie produit */
.product-category {
  display: inline-flex;
  margin-bottom: 12px;
  color: var(--cyan);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 900;
}

/* Footer carte produit */
.product-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(226, 232, 240, 0.12);
}

.product-card-rating {
  display: grid;
  gap: 8px;
  margin-top: 18px;
}

.product-card-rating span {
  color: var(--muted);
  font-size: 0.92rem;
  font-weight: 700;
}

.product-card-rating strong {
  color: #ffffff;
}

.product-price-stack {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.product-price-stack strong {
  margin: 0;
}

.product-compare-price {
  color: var(--muted-dark);
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: line-through;
}

/* Prix produit */
.product-footer strong {
  color: #ffffff;
  font-size: 1.25rem;
}

/* Texte footer produit */
.product-footer span {
  color: var(--muted-dark);
}

/* Ruban rupture stock */
.product-ribbon-out {
  position: absolute;
  top: 18px;
  right: -38px;
  z-index: 5;
  width: 150px;
  padding: 0.45rem 0;
  transform: rotate(35deg);
  background: linear-gradient(135deg, #ff2d55, #8b0000);
  color: #ffffff;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 0 18px rgba(255, 45, 85, 0.7), 0 0 35px rgba(255, 45, 85, 0.35);
}

/* =========================================================
   12. BADGES PRODUITS
========================================================= */
/* Conteneur badges produit */
.product-badges {
  position: absolute;
  top: 18px;
  left: 18px;
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Base badges */
.badge-new,
.badge-best,
.badge-bundle,
.badge-save {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 999px;
  overflow: hidden;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  animation: badgeFloat 3.5s ease-in-out infinite;
}

/* Badge nouveau */
.badge-new {
  background: rgba(34, 197, 94, 0.16);
  border: 1px solid rgba(34, 197, 94, 0.42);
  color: #bbf7d0;
  box-shadow: 0 0 18px rgba(34, 197, 94, 0.28);
}

/* Badge best */
.badge-best {
  background: rgba(251, 191, 36, 0.16);
  border: 1px solid rgba(251, 191, 36, 0.42);
  color: #fde68a;
  box-shadow: 0 0 18px rgba(251, 191, 36, 0.28);
  animation-delay: 0.8s;
}

.badge-bundle {
  background: rgba(34, 211, 238, 0.16);
  border: 1px solid rgba(34, 211, 238, 0.42);
  color: #cffafe;
  box-shadow: 0 0 18px rgba(34, 211, 238, 0.28);
  animation-delay: 1.2s;
}

.badge-save {
  background: rgba(34, 197, 94, 0.16);
  border: 1px solid rgba(34, 197, 94, 0.42);
  color: #bbf7d0;
  box-shadow: 0 0 18px rgba(34, 197, 94, 0.28);
  animation-delay: 1.4s;
}

/* Reflet animé badges */
.badge-new::before,
.badge-best::before,
.badge-bundle::before,
.badge-save::before {
  content: "";
  position: absolute;
  top: 0;
  left: -120%;
  width: 70%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
  transform: skewX(-25deg);
  animation: badgeSweep 3.5s linear infinite;
}

.product-card-best {
  border-color: rgba(251, 191, 36, 0.24);
  box-shadow: 0 0 36px rgba(251, 191, 36, 0.12), 0 0 70px rgba(37, 99, 235, 0.12);
}

.product-card-bundle {
  border-color: rgba(34, 211, 238, 0.24);
  box-shadow: 0 0 36px rgba(34, 211, 238, 0.12), 0 0 70px rgba(37, 99, 235, 0.12);
}

/* =========================================================
   13. FICHE PRODUIT
========================================================= */
/* Page produit */
.product-show {
  position: relative;
  min-height: 100vh;
  padding: 140px 6vw 100px;
  overflow: hidden;
  background: radial-gradient(circle at top left, rgba(34, 211, 238, 0.16), transparent 28%), radial-gradient(circle at bottom right, rgba(37, 99, 235, 0.16), transparent 30%), linear-gradient(145deg, #020617 0%, #071426 50%, #082f49 100%);
}

/* Radar fiche produit */
.product-show::after {
  content: "";
  position: absolute;
  right: 6%;
  top: 12%;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: repeating-radial-gradient(circle, rgba(56, 189, 248, 0.22) 0 1px, transparent 1px 72px), conic-gradient(from 0deg, transparent 0deg, rgba(56, 189, 248, 0.45) 28deg, transparent 62deg, transparent 360deg);
  opacity: 0.32;
  filter: drop-shadow(0 0 24px rgba(56, 189, 248, 0.45));
  animation: radarRotate 8s linear infinite;
  pointer-events: none;
}

/* Glow fiche produit */
.product-show-glow {
  position: absolute;
  right: -120px;
  top: 120px;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: rgba(56, 189, 248, 0.18);
  filter: blur(80px);
  pointer-events: none;
}

/* Grille fiche produit */
.product-show-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
}

/* Catégorie fiche produit */
.product-show-category {
  display: inline-flex;
  margin-bottom: 20px;
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(56, 189, 248, 0.12);
  border: 1px solid rgba(56, 189, 248, 0.24);
  color: var(--cyan);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.8rem;
  font-weight: 900;
}

/* Titre fiche produit */
.product-show-content h1 {
  color: #ffffff;
  font-size: clamp(3rem, 5vw, 5rem);
  line-height: 0.95;
  font-weight: 950;
  text-shadow: 0 0 14px rgba(56, 189, 248, 0.85), 0 0 35px rgba(37, 99, 235, 0.45);
}

/* Description courte fiche produit */
.product-show-short {
  margin-top: 24px;
  color: var(--muted);
  font-size: 1.2rem;
  line-height: 1.8;
}

.product-review-overview {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 18px;
  margin-top: 20px;
}

.product-review-overview-link {
  width: fit-content;
  padding: 12px 16px;
  border: 1px solid rgba(56, 189, 248, 0.14);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.03);
  text-decoration: none;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.product-review-overview-link:hover {
  transform: translateY(-2px);
  border-color: rgba(56, 189, 248, 0.28);
  background: rgba(56, 189, 248, 0.08);
  box-shadow: 0 0 20px rgba(56, 189, 248, 0.12);
}

.product-review-overview p {
  margin: 0;
  color: var(--muted);
  font-weight: 700;
}

.product-review-stars {
  display: inline-flex;
  gap: 6px;
  color: #fbbf24;
  font-size: 1rem;
}

.product-review-stars.small {
  gap: 4px;
  font-size: 0.9rem;
}

.product-review-stars.large {
  font-size: 1.25rem;
}

/* Prix fiche produit */
.product-show-price {
  margin-top: 36px;
  color: #ffffff;
  font-size: 4rem;
  font-weight: 950;
  text-shadow: 0 0 18px rgba(56, 189, 248, 0.8);
}

/* Stock fiche produit */
.product-show-stock {
  margin-top: 12px;
  color: var(--muted-dark);
  font-weight: 700;
}

/* Actions fiche produit */
.product-show-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 36px;
}

.product-show-actions .product-cart-form {
  display: grid;
  gap: 12px;
  min-width: min(100%, 320px);
}

.product-show-actions .product-cart-form .btn-neon {
  width: 100%;
}

.product-color-field {
  display: grid;
  gap: 8px;
}

.product-color-field label {
  color: var(--cyan);
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.product-color-field select {
  width: 100%;
  padding: 14px 18px;
  border: 1px solid rgba(103, 232, 249, 0.2);
  border-radius: 18px;
  background: rgba(15, 23, 42, 0.72);
  color: #ffffff;
  font-size: 0.98rem;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}

.product-color-field select:focus {
  outline: none;
  border-color: rgba(103, 232, 249, 0.55);
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.16);
}

.product-color-field select option {
  background: #0f172a;
  color: #ffffff;
}

.product-color-field small {
  color: var(--muted-dark);
  font-size: 0.82rem;
  line-height: 1.45;
}

/* Description longue fiche produit */
.product-show-description {
  margin-top: 50px;
  padding-top: 40px;
  border-top: 1px solid rgba(226, 232, 240, 0.12);
  color: var(--muted);
  line-height: 1.9;
}

/* =========================================================
   14. GALERIE PRODUIT / SPECS / LIGHTBOX
========================================================= */
/* Galerie produit */
.product-gallery {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Image principale */
.product-main-image {
  padding: 50px;
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(8, 47, 73, 0.78));
  border: 1px solid rgba(56, 189, 248, 0.18);
  box-shadow: 0 0 40px rgba(14, 165, 233, 0.16), inset 0 0 26px rgba(255, 255, 255, 0.03);
}

/* Image principale produit */
.product-main-image img {
  width: 100%;
  object-fit: contain;
  cursor: zoom-in;
  filter: drop-shadow(0 0 20px rgba(56, 189, 248, 0.6)) drop-shadow(0 0 40px rgba(37, 99, 235, 0.35));
  transition: opacity 0.25s ease, transform 0.45s ease, filter 0.45s ease;
}

/* Hover image principale */
.product-main-image:hover img {
  transform: scale(1.04);
  filter: drop-shadow(0 0 24px rgba(56, 189, 248, 0.75)) drop-shadow(0 0 50px rgba(37, 99, 235, 0.45));
}

/* Miniatures */
.product-thumbnails {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

/* Bouton miniature */
.product-thumb {
  width: 90px;
  height: 90px;
  padding: 8px;
  border-radius: 18px;
  border: 1px solid rgba(56, 189, 248, 0.18);
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(8, 47, 73, 0.78));
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Hover miniature */
.product-thumb:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 24px rgba(56, 189, 248, 0.28);
}

/* Miniature active */
.product-thumb.active {
  border-color: rgba(103, 232, 249, 0.75);
  box-shadow: 0 0 22px rgba(56, 189, 248, 0.45);
}

/* Image miniature */
.product-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Specs produit */
.product-specs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin: 34px 0;
}

/* Carte spec */
.spec-card {
  padding: 20px;
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.95), rgba(8, 47, 73, 0.72));
  border: 1px solid rgba(56, 189, 248, 0.14);
  box-shadow: 0 0 24px rgba(14, 165, 233, 0.1);
}

/* Label spec */
.spec-card span {
  display: block;
  margin-bottom: 8px;
  color: var(--cyan);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 900;
}

/* Valeur spec */
.spec-card strong {
  color: #ffffff;
  font-size: 1rem;
  font-weight: 800;
}

/* Lightbox image */
.image-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  background: rgba(2, 6, 23, 0.86);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

/* Lightbox active */
.image-lightbox.active {
  opacity: 1;
  visibility: visible;
}

/* Image lightbox */
.image-lightbox img {
  max-width: 90vw;
  max-height: 86vh;
  object-fit: contain;
  border-radius: 28px;
  box-shadow: 0 0 50px rgba(56, 189, 248, 0.35), 0 0 100px rgba(37, 99, 235, 0.25);
}

/* Bouton fermeture lightbox */
.image-lightbox-close {
  position: absolute;
  top: 28px;
  right: 34px;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(103, 232, 249, 0.35);
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.82);
  color: var(--text);
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}

/* =========================================================
   15. HERO VIDÉO
========================================================= */
/* Conteneur vidéo hero */
.hero-video-wrapper {
  position: relative;
  height: 90vh;
  overflow: hidden;
  border-radius: 0;
}

/* Vidéo hero */
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Overlay vidéo */
.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6));
}

/* Contenu vidéo */
.hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  text-align: center;
}

/* =========================================================
   16. PAGE PANIER
========================================================= */
/* Page panier */
.cart-page {
  position: relative;
  min-height: 100vh;
  padding: 140px 6vw 100px;
  overflow: hidden;
  background: radial-gradient(circle at top left, rgba(34, 211, 238, 0.16), transparent 28%), radial-gradient(circle at bottom right, rgba(37, 99, 235, 0.16), transparent 30%), linear-gradient(145deg, #020617 0%, #071426 50%, #082f49 100%);
}

/* Layout panier */
.cart-layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 40px;
  align-items: start;
  margin-top: 50px;
}

/* Liste items panier */
.cart-items {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Item panier */
.cart-item {
  display: grid;
  grid-template-columns: 140px 1fr 180px;
  gap: 24px;
  align-items: center;
  padding: 26px;
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.95), rgba(8, 47, 73, 0.72));
  border: 1px solid rgba(56, 189, 248, 0.14);
  box-shadow: 0 0 35px rgba(14, 165, 233, 0.1), inset 0 0 24px rgba(255, 255, 255, 0.03);
  transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

/* Hover item panier */
.cart-item:hover {
  transform: translateY(-5px);
  border-color: rgba(103, 232, 249, 0.35);
  box-shadow: 0 0 42px rgba(34, 211, 238, 0.22), 0 0 80px rgba(37, 99, 235, 0.12), inset 0 0 24px rgba(255, 255, 255, 0.04);
}

/* Image item panier */
.cart-item-image {
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 22px;
  background: radial-gradient(circle, rgba(56, 189, 248, 0.14), transparent 70%);
}

/* Image produit panier */
.cart-item-image img {
  max-width: 100%;
  max-height: 120px;
  object-fit: contain;
  filter: drop-shadow(0 0 12px rgba(56, 189, 248, 0.45));
}

/* Titre item panier */
.cart-item-content h2 {
  margin-bottom: 12px;
  color: #ffffff;
  font-size: 1.5rem;
  font-weight: 900;
}

/* Texte item panier */
.cart-item-content p {
  color: var(--muted);
  line-height: 1.7;
}

/* Actions quantité panier */
.cart-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 20px;
}

.cart-action-form,
.cart-inline-form,
.product-cart-form {
  margin: 0;
}

/* Boutons quantité */
.cart-actions button {
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(56, 189, 248, 0.12);
  border: 1px solid rgba(56, 189, 248, 0.24);
  color: var(--cyan);
  text-decoration: none;
  font-size: 1.4rem;
  font-weight: 900;
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Hover boutons quantité */
.cart-actions button:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 18px rgba(56, 189, 248, 0.28);
}

/* Quantité */
.cart-actions strong {
  color: #ffffff;
  font-size: 1.2rem;
}

/* Prix item panier */
.cart-item-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 16px;
}

/* Prix */
.cart-item-price strong {
  color: #ffffff;
  font-size: 1.6rem;
  font-weight: 900;
  text-shadow: 0 0 12px rgba(56, 189, 248, 0.65);
}

/* Lien supprimer */
.cart-item-price button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #fca5a5;
  text-decoration: none;
  font-weight: 700;
  cursor: pointer;
}

/* Hover supprimer */
.cart-item-price button:hover {
  color: #fecaca;
}

/* Résumé panier */
.cart-summary {
  position: sticky;
  top: 120px;
  padding: 32px;
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(8, 47, 73, 0.78));
  border: 1px solid rgba(56, 189, 248, 0.14);
  box-shadow: 0 0 35px rgba(14, 165, 233, 0.1), inset 0 0 24px rgba(255, 255, 255, 0.03);
}

/* Label résumé */
.cart-summary span {
  color: var(--cyan);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.72rem;
  font-weight: 900;
}

/* Titre résumé */
.cart-summary h2 {
  margin: 16px 0;
  color: #ffffff;
  font-size: 2rem;
  font-weight: 900;
}

/* Total résumé */
.cart-summary strong {
  display: block;
  margin-bottom: 28px;
  color: #ffffff;
  font-size: 3rem;
  font-weight: 950;
  text-shadow: 0 0 18px rgba(56, 189, 248, 0.75);
}

.cart-summary-breakdown {
  display: grid;
  gap: 12px;
  margin-bottom: 22px;
}

.cart-summary-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.cart-summary-line strong {
  margin: 0;
  font-size: 1rem;
  text-shadow: none;
}

.cart-summary-line.is-discount span,
.cart-summary-line.is-discount strong {
  color: #86efac;
}

.cart-summary .cart-preorder-summary {
  margin-bottom: 24px;
}

.cart-summary .cart-preorder-summary strong {
  margin: 0 0 0.45rem;
  color: #f8fdff;
  font-size: clamp(1rem, 1.35vw, 1.2rem);
  font-weight: 850;
  line-height: 1.2;
  text-shadow: none;
  text-wrap: balance;
}

.cart-summary .cart-preorder-summary p {
  margin: 0;
  color: var(--muted);
  font-size: 0.98rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.cart-promo-form {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
}

.cart-promo-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: 0.92rem;
  font-weight: 700;
}

.cart-promo-label i {
  color: var(--cyan);
  font-size: 1rem;
}

.cart-promo-row {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cart-promo-row input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
  color: #ffffff;
}

.cart-promo-row input:focus {
  outline: none;
  border-color: rgba(79, 216, 255, 0.55);
  box-shadow: 0 0 20px rgba(79, 216, 255, 0.12);
}

.cart-promo-row .btn-neon {
  width: 100%;
  min-width: 0;
  margin-top: 0;
  animation: none;
}

.cart-promo-success {
  margin-bottom: 16px;
  padding: 14px 16px;
  border: 1px solid rgba(134, 239, 172, 0.2);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(20, 83, 45, 0.24), rgba(8, 47, 73, 0.18));
}

.cart-promo-success-head {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.cart-promo-success-head i {
  color: #86efac;
  font-size: 1rem;
}

.cart-promo-success-head strong {
  display: inline;
  margin: 0;
  color: #f8fafc;
  font-size: 1rem;
  text-shadow: none;
}

.cart-promo-success p {
  margin: 0;
  color: #cbd5e1;
  font-size: 0.94rem;
  line-height: 1.55;
}

.cart-promo-offers {
  margin-top: 6px;
  margin-bottom: 12px;
  padding: 18px 20px;
  border: 1px solid rgba(56, 189, 248, 0.12);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.03);
}

.cart-promo-offers span {
  display: inline-flex;
  margin-bottom: 12px;
}

.cart-promo-offers ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 1.1rem;
  color: var(--muted);
}

.cart-promo-offers li strong {
  display: inline;
  margin: 0;
  color: #ffffff;
  font-size: inherit;
  text-shadow: none;
}

/* Boutons résumé */
.cart-summary > .btn-neon,
.cart-summary > .cart-inline-form,
.cart-summary > .cart-inline-form .btn-ghost {
  width: 100%;
  margin-top: 14px;
}

/* Animation bouton paiement */
.cart-summary > .btn-neon {
  animation: checkoutPulse 2.8s ease-in-out infinite;
}

.cart-related-section {
  position: relative;
  z-index: 2;
  margin-top: 70px;
}

.cart-related-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.cart-related-card {
  display: grid;
  gap: 20px;
  height: 100%;
}

.cart-related-media {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  padding: 22px;
  border-radius: 22px;
  background: radial-gradient(circle, rgba(56, 189, 248, 0.14), transparent 72%);
}

.cart-related-media img {
  max-width: 100%;
  max-height: 180px;
  object-fit: contain;
  filter: drop-shadow(0 0 12px rgba(56, 189, 248, 0.45));
}

.cart-related-content {
  display: grid;
  gap: 14px;
}

.cart-related-content h3 {
  margin: 0;
}

.cart-related-content h3 a {
  color: #ffffff;
  text-decoration: none;
}

.cart-related-content p {
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
}

.cart-related-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.cart-related-footer strong {
  color: #ffffff;
  font-size: 1.2rem;
}

.cart-related-footer span {
  color: var(--muted-dark);
}

.cart-related-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.cart-related-actions form {
  flex: 1 1 160px;
}

.cart-related-actions .btn-neon,
.cart-related-actions .btn-ghost {
  flex: 1 1 160px;
}

.cart-related-actions form .btn-neon {
  width: 100%;
}

/* Panier vide */
.cart-empty {
  position: relative;
  z-index: 2;
  max-width: 700px;
  margin: 120px auto 0;
  text-align: center;
}

/* Titre panier vide */
.cart-empty h2 {
  color: #ffffff;
  font-size: 3rem;
  font-weight: 950;
}

/* Texte panier vide */
.cart-empty p {
  margin: 24px 0;
  color: var(--muted);
  line-height: 1.8;
}

/* =========================================================
   17. CHECKOUT PAGE
========================================================= */
/* Page checkout */
.checkout-page {
  position: relative;
  padding: 8rem 5%;
}

/* Titre checkout */
.checkout-page .section-heading {
  margin-bottom: 4rem;
}

/* Petit titre checkout */
.checkout-page .section-heading span {
  display: inline-block;
  margin-bottom: 0.8rem;
  color: #4fd8ff;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  text-transform: uppercase;
}

/* Grand titre checkout */
.checkout-page .section-heading h2 {
  color: #ffffff;
  font-size: clamp(2.8rem, 6vw, 5rem);
  font-weight: 800;
  line-height: 1;
}

/* Layout checkout */
.checkout-layout {
  display: grid;
  grid-template-columns: 1.5fr 0.8fr;
  gap: 2rem;
  align-items: start;
}

/* Card formulaire */
.checkout-form-card {
  position: relative;
  padding: 2.5rem;
  border: 1px solid rgba(79, 216, 255, 0.12);
  border-radius: 32px;
  background: linear-gradient(180deg, rgba(8, 25, 55, 0.92), rgba(4, 15, 35, 0.96));
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  overflow: hidden;
  box-shadow: 0 0 40px rgba(0, 180, 255, 0.08);
}

/* Glow card formulaire */
.checkout-form-card::before {
  content: "";
  position: absolute;
  top: -120px;
  right: -120px;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(79, 216, 255, 0.12);
  filter: blur(80px);
  pointer-events: none;
}

/* Titres cards checkout */
.checkout-form-card h3,
.checkout-summary-card h3 {
  margin-bottom: 2rem;
  color: #ffffff;
  font-size: 1.6rem;
  font-weight: 700;
}

/* Formulaire checkout */
.checkout-form-card form {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}

/* Label checkout */
.checkout-form-card label {
  display: block;
  margin-bottom: 0.6rem;
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.95rem;
  font-weight: 600;
}

/* Inputs checkout */
.checkout-form-card input,
.checkout-form-card textarea {
  width: 100%;
  padding: 1rem 1.2rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.04);
  color: #ffffff;
  font-size: 1rem;
  transition: border-color 0.25s ease, background 0.25s ease, transform 0.25s ease;
}

/* Focus inputs checkout */
.checkout-form-card input:focus,
.checkout-form-card textarea:focus {
  outline: none;
  border-color: rgba(79, 216, 255, 0.55);
  background: rgba(255, 255, 255, 0.07);
  transform: translateY(-1px);
  box-shadow: 0 0 20px rgba(79, 216, 255, 0.12);
}

/* Textarea checkout */
.checkout-form-card textarea {
  min-height: 120px;
  resize: vertical;
}

/* Bouton checkout */
.btn-checkout {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 1rem;
  padding: 1rem 1.4rem;
  border: none;
  border-radius: 999px;
  background: linear-gradient(135deg, #52dfff, #47bfff);
  color: #04111f;
  font-size: 1rem;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Hover bouton checkout */
.btn-checkout:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(79, 216, 255, 0.35);
}

/* Card résumé checkout */
.checkout-summary-card {
  position: sticky;
  top: 120px;
  padding: 2.2rem;
  border: 1px solid rgba(79, 216, 255, 0.12);
  border-radius: 32px;
  background: linear-gradient(180deg, rgba(8, 25, 55, 0.92), rgba(4, 15, 35, 0.96));
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 0 40px rgba(0, 180, 255, 0.08);
}

/* Item résumé checkout */
.checkout-summary-item {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.95rem;
}

/* Total checkout */
.checkout-summary-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: #ffffff;
  font-size: 1.4rem;
  font-weight: 800;
}

/* =========================================================
   18. PAGE SUCCESS CHECKOUT
========================================================= */
/* Page succès */
.checkout-success-page {
  min-height: 70vh;
  padding: 5rem 5%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Card succès */
.checkout-success-card {
  max-width: 700px;
  width: 100%;
  padding: 4rem 3rem;
  border: 1px solid rgba(79, 216, 255, 0.12);
  border-radius: 36px;
  background: linear-gradient(180deg, rgba(8, 25, 55, 0.94), rgba(4, 15, 35, 0.98));
  text-align: center;
  box-shadow: 0 0 60px rgba(79, 216, 255, 0.12);
}

/* Badge succès */
.success-badge {
  display: inline-block;
  margin-bottom: 1.5rem;
  padding: 0.6rem 1rem;
  border-radius: 999px;
  background: rgba(79, 216, 255, 0.12);
  color: #4fd8ff;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.12rem;
  text-transform: uppercase;
}

/* Titre succès */
.checkout-success-card h1 {
  margin-bottom: 1.5rem;
  color: #ffffff;
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 1.1;
}

/* Paragraphes succès */
.checkout-success-card p {
  margin-bottom: 1rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: 1.05rem;
  line-height: 1.7;
}

.checkout-success-card .btn-checkout {
  margin-top: 1.6rem;
}

.checkout-success-actions {
  display: flex;
  justify-content: center;
  gap: 0.9rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}

.checkout-success-actions .btn-ghost {
  min-width: 220px;
}

/* =========================================================
   19. FOOTER
========================================================= */
/* Footer front */
.front-footer {
  position: relative;
  padding: 80px 6vw 40px;
  overflow: hidden;
  text-align: center;
  color: var(--text);
  background: radial-gradient(circle at center, rgba(34, 211, 238, 0.14), transparent 35%), linear-gradient(180deg, #06111f 0%, #020617 100%);
}

/* Ligne radar footer */
.footer-radar-line {
  height: 1px;
  margin-bottom: 50px;
  background: linear-gradient(90deg, transparent, rgba(103, 232, 249, 0.9), transparent);
  box-shadow: 0 0 24px rgba(103, 232, 249, 0.75);
}

.footer-brand {
  display: grid;
  justify-items: center;
  max-width: 760px;
  margin: 0 auto;
}

/* Logo footer */
.footer-brand img {
  width: 220px;
  margin-bottom: 18px;
  filter: drop-shadow(0 0 10px #38bdf8) drop-shadow(0 0 22px #2563eb);
}

/* Titre footer */
.footer-brand h2 {
  color: #ffffff;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-shadow: 0 0 18px rgba(56, 189, 248, 0.7);
}

/* Texte footer */
.footer-brand p {
  margin-top: 10px;
  color: var(--muted-dark);
}

.footer-newsletter {
  display: grid;
  gap: 18px;
  max-width: 760px;
  margin: 34px auto 0;
  padding: 28px;
  border: 1px solid rgba(56, 189, 248, 0.16);
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.92), rgba(8, 47, 73, 0.72));
  box-shadow: 0 16px 40px rgba(2, 8, 23, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.footer-newsletter-copy {
  display: grid;
  gap: 10px;
}

.footer-newsletter-copy span {
  color: var(--cyan);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.footer-newsletter-copy h2 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.35rem, 2vw, 2rem);
}

.footer-newsletter-copy p {
  margin: 0;
  color: var(--muted-dark);
}

.footer-newsletter-form {
  display: flex;
  gap: 14px;
  justify-content: center;
}

.footer-newsletter-form input {
  flex: 1;
  min-width: 0;
  padding: 16px 18px;
  border: 1px solid rgba(56, 189, 248, 0.18);
  border-radius: 999px;
  color: #ffffff;
  background: rgba(15, 23, 42, 0.88);
}

.footer-newsletter-form input::placeholder {
  color: rgba(203, 213, 225, 0.72);
}

.footer-newsletter-form .btn-neon {
  min-width: 170px;
}

.footer-socials {
  display: grid;
  gap: 14px;
  max-width: 760px;
  margin: 34px auto 0;
}

.footer-socials > span {
  color: var(--cyan);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.footer-socials h2 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.3rem, 1.9vw, 1.9rem);
}

.footer-socials-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}

.footer-social-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border: 1px solid rgba(56, 189, 248, 0.15);
  border-radius: 999px;
  color: #dbeafe;
  text-decoration: none;
  background: rgba(15, 23, 42, 0.6);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, color 0.22s ease;
}

.footer-social-link i {
  color: var(--cyan);
  font-size: 1.08rem;
}

.footer-social-link span {
  color: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: normal;
  text-transform: none;
}

.footer-social-link:hover {
  transform: translateY(-2px);
  border-color: rgba(103, 232, 249, 0.45);
  color: #ffffff;
  box-shadow: 0 12px 24px rgba(2, 8, 23, 0.24), 0 0 22px rgba(56, 189, 248, 0.16);
}

/* Liens footer */
.footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  margin: 34px 0;
}

/* Lien footer */
.footer-links a {
  color: var(--muted);
  text-decoration: none;
  font-weight: 700;
}

/* Hover lien footer */
.footer-links a:hover {
  color: var(--cyan);
}

.footer-link-admin-group {
  display: inline-flex;
  align-items: baseline;
  gap: 0.2rem;
}

.footer-admin-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0.5rem;
  color: rgba(148, 163, 184, 0.45) !important;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.footer-admin-link:hover {
  color: var(--cyan) !important;
  transform: translateY(-1px);
}

/* Copyright footer */
.footer-copy {
  color: #64748b;
  font-size: 0.9rem;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.product-review-request-note {
  margin-bottom: 18px;
  padding: 14px 16px;
  border: 1px solid rgba(34, 211, 238, 0.16);
  border-radius: 18px;
  color: #d7f9ff;
  background: rgba(8, 47, 73, 0.42);
}

@media (max-width: 720px) {
  .footer-newsletter {
    padding: 22px 18px;
    border-radius: 24px;
  }
  .footer-newsletter-form {
    flex-direction: column;
  }
  .footer-newsletter-form .btn-neon {
    width: 100%;
    min-width: 0;
  }
  .footer-socials-links {
    gap: 10px;
  }
  .footer-social-link {
    width: 100%;
    justify-content: center;
  }
}
/* =========================================================
   20. ANIMATIONS
========================================================= */
/* Rotation radar */
@keyframes radarRotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* Scan vertical */
@keyframes scanMove {
  0% {
    transform: translateY(-40%);
    opacity: 0;
  }
  40% {
    opacity: 0.8;
  }
  100% {
    transform: translateY(40%);
    opacity: 0;
  }
}
/* Badge flottant */
@keyframes badgeFloat {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
  100% {
    transform: translateY(0);
  }
}
/* Reflet badge */
@keyframes badgeSweep {
  0% {
    left: -120%;
  }
  100% {
    left: 160%;
  }
}
/* Pulse checkout */
@keyframes checkoutPulse {
  0% {
    box-shadow: 0 0 18px rgba(56, 189, 248, 0.55), 0 0 42px rgba(37, 99, 235, 0.35);
  }
  50% {
    box-shadow: 0 0 28px rgba(56, 189, 248, 0.85), 0 0 70px rgba(37, 99, 235, 0.55);
  }
  100% {
    box-shadow: 0 0 18px rgba(56, 189, 248, 0.55), 0 0 42px rgba(37, 99, 235, 0.35);
  }
}
/* Pulse panier */
@keyframes cartPulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.06);
  }
  100% {
    transform: scale(1);
  }
}
/* =========================================================
   21. RESPONSIVE — GRANDES TABLETTES
========================================================= */
@media (max-width: 1200px) {
  .dashboard-stats,
  .dashboard-stats-analytics,
  .dashboard-analytics-grid,
  .category-grid,
  .product-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
/* =========================================================
   22. RESPONSIVE — TABLETTE
========================================================= */
@media (max-width: 1100px) {
  .cart-layout {
    grid-template-columns: 1fr;
  }
  .cart-summary {
    position: relative;
    top: auto;
  }
}
@media (max-width: 1000px) {
  .why-grid,
  .product-show-grid {
    grid-template-columns: 1fr;
  }
  .product-show-content h1 {
    font-size: 3rem;
  }
  .product-show-price {
    font-size: 3rem;
  }
}
@media (max-width: 980px) {
  .checkout-layout {
    grid-template-columns: 1fr;
  }
  .checkout-summary-card {
    position: relative;
    top: auto;
  }
}
@media (max-width: 900px) {
  .workshop-grid,
  .product-specs {
    grid-template-columns: 1fr;
  }
}
/* =========================================================
   23. RESPONSIVE — MOBILE
========================================================= */
@media (max-width: 760px) {
  .front-navbar {
    flex-direction: column;
    gap: 18px;
  }
  .front-nav-links {
    flex-wrap: wrap;
    justify-content: center;
  }
  .front-hero-content {
    margin-top: 120px;
  }
  .front-hero-logo-wrap {
    display: none;
  }
  .category-grid,
  .product-grid {
    grid-template-columns: 1fr;
  }
  .cart-item {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .cart-item-price {
    align-items: center;
  }
  .cart-actions {
    justify-content: center;
  }
}
@media (max-width: 700px) {
  .dashboard-stats {
    grid-template-columns: 1fr;
  }
  .dashboard-stats-analytics,
  .dashboard-analytics-grid {
    grid-template-columns: 1fr;
  }
  .dashboard-hero h1 {
    font-size: 2.8rem;
  }
}
@media (max-width: 768px) {
  .dashboard-hero {
    padding: 2rem 1.2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
  }
  .dashboard-hero h1 {
    margin-top: 1rem;
    margin-bottom: 1rem;
    font-size: 20px;
    line-height: 0.95;
    letter-spacing: -0.03em;
    text-align: center;
    word-break: break-word;
  }
  .dashboard-hero p {
    max-width: 260px;
    margin: 0 auto;
    text-align: center;
  }
  .dashboard-logo {
    width: 110px;
    height: auto;
  }
}
/* =========================================================
   24. RESPONSIVE — PETITS MOBILES
========================================================= */
@media (max-width: 640px) {
  .checkout-page {
    padding: 6rem 1.2rem;
  }
  .checkout-form-card,
  .checkout-summary-card,
  .checkout-success-card {
    padding: 2rem 1.4rem;
    border-radius: 24px;
  }
  .checkout-summary-total {
    font-size: 1.1rem;
  }
  .checkout-success-actions {
    gap: 0.75rem;
  }
  .checkout-success-actions .btn-ghost {
    width: 100%;
    min-width: 0;
  }
}
@media (max-width: 480px) {
  .dashboard-logo {
    display: none;
  }
  .front-navbar {
    top: 12px;
    left: 4vw;
    right: 4vw;
    padding: 14px;
  }
  .front-brand {
    gap: 10px;
  }
  .front-brand img {
    width: 44px;
  }
  .front-brand span {
    font-size: 0.78rem;
  }
  .front-nav-links {
    gap: 14px;
  }
  .front-nav-links a {
    font-size: 0.9rem;
  }
  .cart-nav-link {
    width: 42px;
    height: 42px;
  }
  .cart-nav-badge {
    top: -8px;
    right: -10px;
  }
  .front-hero {
    padding-top: 40px;
  }
  .front-marquee {
    width: 90vw;
    margin-bottom: 18px;
  }
  .front-marquee-track {
    gap: 14px;
    padding: 12px 14px;
  }
  .front-marquee-track span {
    font-size: 0.72rem;
    letter-spacing: 0.11em;
  }
  .front-hero h1 {
    font-size: 3rem;
  }
  .front-hero p {
    font-size: 1rem;
  }
  .product-show,
  .cart-page {
    padding-top: 150px;
  }
  .product-main-image {
    padding: 28px;
  }
  .cart-summary strong {
    font-size: 2.4rem;
  }
}
/* =====================================================
   WARTHOG MASCOT — VERSION STABLE
===================================================== */
.warthog-mascot {
  position: fixed;
  right: 25vw;
  bottom: 10vh;
  z-index: 9999;
  width: 300px;
  height: 300px;
  background-repeat: no-repeat;
  background-size: 500% 500%;
  pointer-events: none;
  filter: drop-shadow(0 0 14px rgba(56, 189, 248, 0.45)) drop-shadow(0 0 30px rgba(37, 99, 235, 0.35));
}

.warthog-mascot.idle {
  background-image: url(/build/images/WarthogAdventures-idle.a5696c0b.webp);
  animation: warthogGrid 1.6s steps(1) infinite;
}

.warthog-mascot.wave {
  background-image: url(/build/images/WarthogAdventures-wave.6caaf636.webp);
  animation: warthogGrid 1.2s steps(1) infinite;
}

.warthog-mascot.dance {
  background-image: url(/build/images/WarthogAdventures-dance.45ec2129.webp);
  animation: warthogGrid 1s steps(1) infinite;
}

@keyframes warthogGrid {
  0% {
    background-position: 0% 0%;
  }
  4% {
    background-position: 25% 0%;
  }
  8% {
    background-position: 50% 0%;
  }
  12% {
    background-position: 75% 0%;
  }
  16% {
    background-position: 100% 0%;
  }
  20% {
    background-position: 0% 25%;
  }
  24% {
    background-position: 25% 25%;
  }
  28% {
    background-position: 50% 25%;
  }
  32% {
    background-position: 75% 25%;
  }
  36% {
    background-position: 100% 25%;
  }
  40% {
    background-position: 0% 50%;
  }
  44% {
    background-position: 25% 50%;
  }
  48% {
    background-position: 50% 50%;
  }
  52% {
    background-position: 75% 50%;
  }
  56% {
    background-position: 100% 50%;
  }
  60% {
    background-position: 0% 75%;
  }
  64% {
    background-position: 25% 75%;
  }
  68% {
    background-position: 50% 75%;
  }
  72% {
    background-position: 75% 75%;
  }
  76% {
    background-position: 100% 75%;
  }
  80% {
    background-position: 0% 100%;
  }
  84% {
    background-position: 25% 100%;
  }
  88% {
    background-position: 50% 100%;
  }
  92% {
    background-position: 75% 100%;
  }
  100% {
    background-position: 100% 100%;
  }
}
@media (max-width: 768px) {
  .warthog-mascot {
    display: none;
  }
}
/* =========================================================
   IDLE
========================================================= */
.warthog-mascot.idle {
  background-image: url(/build/images/WarthogAdventures-idle.a5696c0b.webp);
}

/* =========================================================
   WAVE
========================================================= */
.warthog-mascot.wave {
  background-image: url(/build/images/WarthogAdventures-wave.6caaf636.webp);
}

/* =========================================================
   DANCE
========================================================= */
.warthog-mascot.dance {
  background-image: url(/build/images/WarthogAdventures-dance.45ec2129.webp);
}

/* =========================================================
   ANIMATIONS SPRITES
========================================================= */
@keyframes warthogIdle {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -600px 0;
  }
}
@keyframes warthogWave {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -600px 0;
  }
}
@keyframes warthogDance {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -600px 0;
  }
}
/* =========================================================
   SHOP PAGE
========================================================= */
.shop-hero {
  position: relative;
  min-height: 55vh;
  padding: 170px 6vw 90px;
  overflow: hidden;
  background: radial-gradient(circle at top left, rgba(34, 211, 238, 0.16), transparent 28%), radial-gradient(circle at bottom right, rgba(37, 99, 235, 0.16), transparent 30%), linear-gradient(145deg, #020617 0%, #071426 50%, #082f49 100%);
}

.shop-hero-content {
  position: relative;
  z-index: 2;
  max-width: 850px;
}

.shop-hero h1 {
  color: #ffffff;
  font-size: clamp(3rem, 6vw, 6rem);
  line-height: 0.95;
  font-weight: 950;
  text-shadow: 0 0 14px rgba(56, 189, 248, 0.75), 0 0 35px rgba(37, 99, 235, 0.45);
}

.shop-hero p {
  max-width: 760px;
  margin-top: 24px;
  color: var(--muted);
  font-size: 1.15rem;
  line-height: 1.8;
}

.shop-hero-glow {
  position: absolute;
  right: 10%;
  top: 25%;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: rgba(56, 189, 248, 0.14);
  filter: blur(80px);
}

@media (max-width: 768px) {
  .shop-hero {
    min-height: auto;
    padding: 145px 6vw 70px;
  }
}
/* =========================================================
   MOBILE
========================================================= */
@media (max-width: 768px) {
  .warthog-mascot {
    width: 90px;
    height: 90px;
    right: 14px;
    bottom: 14px;
  }
}
/* =========================================================
   CONTACT PAGE
========================================================= */
.contact-page {
  position: relative;
  min-height: 100vh;
  padding: 140px 6vw 100px;
  overflow: hidden;
  background: radial-gradient(circle at top left, rgba(34, 211, 238, 0.16), transparent 28%), radial-gradient(circle at bottom right, rgba(37, 99, 235, 0.16), transparent 30%), linear-gradient(145deg, #020617 0%, #071426 50%, #082f49 100%);
}

/* =========================================================
   LAYOUT
========================================================= */
.contact-layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 40px;
  align-items: start;
  margin-top: 60px;
}

/* =========================================================
   CARDS
========================================================= */
.contact-card,
.contact-info-card {
  position: relative;
  padding: 38px;
  border-radius: 32px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.95), rgba(8, 47, 73, 0.78));
  border: 1px solid rgba(56, 189, 248, 0.14);
  box-shadow: 0 0 35px rgba(14, 165, 233, 0.1), inset 0 0 24px rgba(255, 255, 255, 0.03);
  overflow: hidden;
}

/* =========================================================
   GLOW CARD
========================================================= */
.contact-card::before,
.contact-info-card::before {
  content: "";
  position: absolute;
  top: -120px;
  right: -120px;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(56, 189, 248, 0.1);
  filter: blur(80px);
  pointer-events: none;
}

/* =========================================================
   KICKER
========================================================= */
.contact-kicker {
  display: inline-flex;
  margin-bottom: 20px;
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(56, 189, 248, 0.12);
  border: 1px solid rgba(56, 189, 248, 0.24);
  color: #67e8f9;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.75rem;
  font-weight: 900;
}

/* =========================================================
   TITRES
========================================================= */
.contact-card h3,
.contact-info-card h3 {
  margin-bottom: 20px;
  color: #ffffff;
  font-size: 2rem;
  font-weight: 900;
  text-shadow: 0 0 14px rgba(56, 189, 248, 0.45);
}

/* =========================================================
   TEXTES
========================================================= */
.contact-card p,
.contact-info-card p {
  color: #cbd5e1;
  line-height: 1.8;
}

/* =========================================================
   FORMULAIRE
========================================================= */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin-top: 40px;
}

.contact-field .invalid-feedback,
.contact-field .form-error-message {
  margin-top: 8px;
  color: #fca5a5;
  font-size: 0.9rem;
  font-weight: 700;
}

.contact-field input.is-invalid,
.contact-field textarea.is-invalid {
  border-color: rgba(239, 68, 68, 0.65);
  box-shadow: 0 0 18px rgba(239, 68, 68, 0.16);
}

/* =========================================================
   CHAMPS
========================================================= */
.contact-field {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* =========================================================
   LABELS
========================================================= */
.contact-field label {
  color: #ffffff;
  font-size: 0.95rem;
  font-weight: 700;
}

/* =========================================================
   INPUTS
========================================================= */
.contact-field input,
.contact-field textarea {
  width: 100%;
  padding: 16px 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.04);
  color: #ffffff;
  font-size: 1rem;
  transition: border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

/* =========================================================
   FOCUS INPUTS
========================================================= */
.contact-field input:focus,
.contact-field textarea:focus {
  outline: none;
  border-color: rgba(79, 216, 255, 0.55);
  background: rgba(255, 255, 255, 0.07);
  transform: translateY(-1px);
  box-shadow: 0 0 20px rgba(79, 216, 255, 0.12);
}

/* =========================================================
   TEXTAREA
========================================================= */
.contact-field textarea {
  min-height: 180px;
  resize: vertical;
}

/* =========================================================
   PLACEHOLDER
========================================================= */
.contact-field input::placeholder,
.contact-field textarea::placeholder {
  color: rgba(255, 255, 255, 0.38);
}

/* =========================================================
   INFO LIST
========================================================= */
.contact-info-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 40px;
}

/* =========================================================
   INFO ITEM
========================================================= */
.contact-info-item {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

/* =========================================================
   ICONES
========================================================= */
.contact-info-item i {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  background: rgba(56, 189, 248, 0.12);
  color: #67e8f9;
  font-size: 1.3rem;
  box-shadow: 0 0 18px rgba(56, 189, 248, 0.18);
}

/* =========================================================
   INFO TITRE
========================================================= */
.contact-info-item strong {
  display: block;
  margin-bottom: 6px;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 800;
}

/* =========================================================
   INFO TEXTE
========================================================= */
.contact-info-item p {
  margin: 0;
  color: #94a3b8;
  line-height: 1.6;
}

/* =========================================================
   BOUTON RETOUR
========================================================= */
.contact-back-btn {
  width: 100%;
  margin-top: 40px;
}

/* =========================================================
   RESPONSIVE TABLETTE
========================================================= */
@media (max-width: 1000px) {
  .contact-layout {
    grid-template-columns: 1fr;
  }
}
/* =========================================================
   RESPONSIVE MOBILE
========================================================= */
@media (max-width: 768px) {
  .contact-page {
    padding: 130px 5vw 80px;
  }
  .contact-card,
  .contact-info-card {
    padding: 28px;
  }
  .contact-card h3,
  .contact-info-card h3 {
    font-size: 1.7rem;
  }
}
/* =========================================================
   PETITS MOBILES
========================================================= */
@media (max-width: 480px) {
  .contact-card,
  .contact-info-card {
    padding: 22px;
    border-radius: 24px;
  }
  .contact-field input,
  .contact-field textarea {
    padding: 14px 16px;
  }
  .contact-info-item {
    gap: 14px;
  }
  .contact-info-item i {
    width: 46px;
    height: 46px;
    border-radius: 14px;
  }
}
/* =========================================================
   FLASH MESSAGES
========================================================= */
.flash-container {
  position: fixed;
  top: 140px;
  right: 40px;
  z-index: 20000;
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 380px;
}

.flash-message {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  border-radius: 20px;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  color: #ffffff;
  font-weight: 700;
  box-shadow: 0 0 35px rgba(0, 0, 0, 0.35), 0 0 18px rgba(56, 189, 248, 0.18);
  animation: flashSlideIn 0.35s ease both;
}

.flash-message p {
  margin: 0;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 800;
}

.flash-message span {
  font-size: 1.35rem;
}

.flash-success {
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.3), rgba(22, 163, 74, 0.24));
  border: 1px solid rgba(134, 239, 172, 0.45);
}

.flash-success span {
  color: #86efac;
}

.flash-error {
  background: rgba(239, 68, 68, 0.18);
  border: 1px solid rgba(239, 68, 68, 0.45);
}

.flash-error span {
  color: #fca5a5;
}

.flash-info {
  background: rgba(56, 189, 248, 0.16);
  border: 1px solid rgba(56, 189, 248, 0.45);
}

.flash-info span {
  color: var(--cyan);
}

@keyframes flashSlideIn {
  from {
    opacity: 0;
    transform: translateX(24px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@media (max-width: 768px) {
  .flash-container {
    top: 100px;
    left: 5vw;
    right: 5vw;
    max-width: none;
  }
}
@media (max-width: 768px) {
  .front-navbar {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 12px 16px !important;
  }
  .front-brand {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }
  .front-brand span {
    display: none !important;
  }
  .front-brand img {
    width: 42px !important;
  }
  .front-nav-links {
    display: flex !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
  }
  .front-nav-links a:not(.cart-nav-link) {
    display: none !important;
  }
  .cart-nav-link {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}
@media (max-width: 768px) {
  .front-brand span {
    display: block !important;
    font-size: 0.78rem !important;
  }
}
/* =========================================================
   UX IMPROVEMENTS
========================================================= */
.front-nav-toggle {
  position: relative;
  display: none;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(56, 189, 248, 0.18);
  border-radius: 14px;
  background: rgba(56, 189, 248, 0.1);
  color: var(--cyan);
  font-size: 1.35rem;
  cursor: pointer;
}

.front-nav-toggle:hover {
  background: rgba(56, 189, 248, 0.16);
}

.shop-toolbar,
.page-shell {
  display: grid;
  gap: 32px;
}

.shop-filters {
  padding: 28px;
  border: 1px solid rgba(56, 189, 248, 0.14);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.95), rgba(8, 47, 73, 0.75));
  box-shadow: 0 0 35px rgba(14, 165, 233, 0.1), inset 0 0 24px rgba(255, 255, 255, 0.03);
}

.filter-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.filter-field,
.filter-checkbox {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.filter-field span,
.filter-checkbox span,
.shop-results-meta p {
  color: var(--muted);
  font-weight: 700;
}

.filter-field input,
.filter-field select {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
  color: #ffffff;
}

.filter-field select {
  appearance: none;
  background: linear-gradient(45deg, transparent 50%, var(--cyan) 50%) calc(100% - 20px) calc(50% - 3px)/8px 8px no-repeat, linear-gradient(135deg, var(--cyan) 50%, transparent 50%) calc(100% - 14px) calc(50% - 3px)/8px 8px no-repeat, rgba(255, 255, 255, 0.04);
  padding-right: 44px;
}

.filter-field select option {
  background: #ffffff;
  color: #020617;
}

.filter-field input:focus,
.filter-field select:focus {
  outline: none;
  border-color: rgba(79, 216, 255, 0.55);
  box-shadow: 0 0 20px rgba(79, 216, 255, 0.12);
}

.filter-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 20px;
}

.filter-checkbox {
  flex-direction: row;
  align-items: center;
}

.filter-checkbox input {
  width: 18px;
  height: 18px;
}

.filter-action-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.pagination-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 32px;
}

.pagination-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  padding: 12px 16px;
  border: 1px solid rgba(56, 189, 248, 0.18);
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.6);
  color: var(--text);
  text-decoration: none;
  font-weight: 800;
}

.pagination-link.is-active {
  background: linear-gradient(135deg, var(--cyan), var(--cyan-strong));
  color: var(--dark);
}

.pagination-link.is-disabled {
  opacity: 0.45;
  pointer-events: none;
}

.page-shell {
  position: relative;
  min-height: 100vh;
  padding: 150px 6vw 100px;
  background: radial-gradient(circle at top left, rgba(34, 211, 238, 0.16), transparent 28%), radial-gradient(circle at bottom right, rgba(37, 99, 235, 0.16), transparent 30%), linear-gradient(145deg, #020617 0%, #071426 50%, #082f49 100%);
}

.page-card,
.page-notice {
  padding: 32px;
  border: 1px solid rgba(56, 189, 248, 0.14);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.95), rgba(8, 47, 73, 0.78));
  box-shadow: 0 0 35px rgba(14, 165, 233, 0.1), inset 0 0 24px rgba(255, 255, 255, 0.03);
}

.page-notice {
  border-color: rgba(251, 191, 36, 0.28);
  background: linear-gradient(145deg, rgba(57, 36, 10, 0.92), rgba(113, 63, 18, 0.78));
}

.page-card h3,
.page-notice h3 {
  margin-top: 0;
  color: #ffffff;
  font-size: 1.5rem;
}

.page-card p,
.page-notice p,
.page-list li {
  color: var(--muted);
  line-height: 1.8;
}

.page-list {
  margin: 0;
  padding-left: 1.2rem;
}

.order-tracking-grid,
.order-tracking-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.order-tracking-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.order-result-card {
  display: grid;
  gap: 28px;
}

.order-result-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.order-result-kicker {
  display: inline-flex;
  margin-bottom: 12px;
  color: var(--cyan);
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.order-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.order-summary-item {
  padding: 18px 20px;
  border: 1px solid rgba(56, 189, 248, 0.12);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.03);
}

.order-summary-item span {
  display: block;
  margin-bottom: 8px;
  color: var(--muted-dark);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.order-summary-item strong {
  color: #ffffff;
  font-size: 1rem;
}

.order-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 999px;
  font-weight: 900;
  white-space: nowrap;
}

.order-status-pending {
  background: rgba(245, 158, 11, 0.18);
  color: #fcd34d;
}

.order-status-paid {
  background: rgba(34, 197, 94, 0.18);
  color: #86efac;
}

.order-status-shipped {
  background: rgba(56, 189, 248, 0.18);
  color: var(--cyan);
}

.order-status-cancelled {
  background: rgba(239, 68, 68, 0.18);
  color: #fca5a5;
}

.order-detail-panel {
  height: 100%;
}

.order-items-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.order-items-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.order-items-list li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.order-items-list li div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.order-items-list li span {
  color: var(--muted);
}

.tracking-code {
  letter-spacing: 0.06em;
}

.order-track-button {
  margin-top: 12px;
}

.order-track-note {
  margin-top: 12px;
}

.customer-orders-toolbar {
  margin-bottom: 28px;
}

.customer-orders-toolbar-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.customer-orders-toolbar-card h3 {
  margin-top: 0;
  margin-bottom: 12px;
}

.customer-orders-toolbar-card p {
  margin-bottom: 0;
}

.customer-orders-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.customer-orders-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.customer-order-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.customer-order-card-link:hover {
  color: inherit;
  text-decoration: none;
}

.customer-order-card {
  display: grid;
  gap: 20px;
  height: 100%;
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.customer-order-card-link:hover .customer-order-card {
  transform: translateY(-6px);
  border-color: rgba(56, 189, 248, 0.24);
  background: rgba(255, 255, 255, 0.05);
  box-shadow: 0 0 24px rgba(56, 189, 248, 0.14), 0 0 46px rgba(37, 99, 235, 0.1);
}

.customer-order-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.customer-order-card-head h3 {
  margin-top: 0;
  margin-bottom: 0;
}

.customer-order-card-hint {
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
}

.customer-order-card-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.customer-order-meta-item {
  padding: 16px 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.03);
}

.customer-order-meta-item span {
  display: block;
  margin-bottom: 8px;
  color: var(--muted-dark);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.customer-order-meta-item strong {
  color: #ffffff;
}

.customer-order-support-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 24px;
  margin-top: 28px;
}

.customer-order-support-grid h3 {
  margin-top: 0;
}

.customer-order-support-grid p {
  color: var(--muted);
  line-height: 1.7;
}

.product-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  color: var(--muted-dark);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.product-breadcrumb a {
  text-decoration: none;
}

.product-show-headline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.product-show-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.product-show-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.product-show-flag.is-new {
  background: rgba(34, 197, 94, 0.18);
  color: #86efac;
}

.product-show-flag.is-best {
  background: rgba(251, 191, 36, 0.18);
  color: #fcd34d;
}

.product-show-flag.is-bundle {
  background: rgba(34, 211, 238, 0.18);
  color: #67e8f9;
}

.product-purchase-panel {
  display: grid;
  gap: 24px;
  margin-top: 28px;
  padding: 28px;
  border: 1px solid rgba(56, 189, 248, 0.14);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.92), rgba(8, 47, 73, 0.76));
  box-shadow: 0 0 30px rgba(14, 165, 233, 0.1), inset 0 0 22px rgba(255, 255, 255, 0.02);
}

.product-show-compare {
  display: grid;
  gap: 8px;
  padding: 18px 20px;
  border: 1px solid rgba(34, 211, 238, 0.18);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.03);
}

.product-show-compare span {
  color: var(--muted-dark);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.product-show-compare strong {
  color: #ffffff;
  font-size: 1.2rem;
  text-decoration: line-through;
}

.product-show-compare p {
  margin: 0;
  color: #86efac;
  font-weight: 700;
}

.product-show-stock {
  display: grid;
  gap: 8px;
  margin-top: 0;
  padding: 18px 20px;
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
}

.product-show-stock strong {
  color: #ffffff;
  font-size: 1rem;
}

.product-show-stock span {
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 600;
}

.product-show-stock-high {
  border-color: rgba(34, 197, 94, 0.28);
}

.product-show-stock-low {
  border-color: rgba(245, 158, 11, 0.28);
}

.product-show-stock-out {
  border-color: rgba(239, 68, 68, 0.28);
}

.product-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.product-trust-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.03);
}

.product-trust-card i {
  color: var(--cyan);
  font-size: 1.2rem;
}

.product-trust-card strong {
  display: block;
  margin-bottom: 4px;
  color: #ffffff;
}

.product-trust-card span {
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.5;
}

.product-detail-grid {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 22px;
  margin-top: 36px;
}

.product-info-card {
  padding: 30px;
  border: 1px solid rgba(56, 189, 248, 0.14);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.92), rgba(8, 47, 73, 0.72));
  box-shadow: 0 0 30px rgba(14, 165, 233, 0.08), inset 0 0 22px rgba(255, 255, 255, 0.02);
}

.product-info-card-accent {
  background: linear-gradient(145deg, rgba(5, 15, 28, 0.95), rgba(10, 35, 58, 0.78));
}

.product-info-kicker {
  display: inline-flex;
  margin-bottom: 14px;
  color: var(--cyan);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.product-info-card h2 {
  margin-top: 0;
  margin-bottom: 18px;
  color: #ffffff;
  font-size: clamp(1.5rem, 2.5vw, 2.2rem);
  line-height: 1.1;
}

.product-show-description {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.product-info-list {
  display: grid;
  gap: 14px;
  margin: 0;
  padding-left: 1.2rem;
  color: var(--muted);
}

.product-info-list li {
  line-height: 1.7;
}

.product-help-card {
  margin-top: 24px;
  padding: 20px;
  border: 1px solid rgba(56, 189, 248, 0.14);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.04);
}

.product-help-card strong {
  display: block;
  margin-bottom: 8px;
  color: #ffffff;
}

.product-help-card p {
  margin-top: 0;
  margin-bottom: 18px;
  color: var(--muted);
}

.product-reviews-section {
  background: radial-gradient(circle at top right, rgba(34, 211, 238, 0.1), transparent 28%), linear-gradient(180deg, #020617 0%, #06111f 100%);
}

.product-reviews-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 24px;
}

.product-reviews-panel,
.product-review-form-card {
  padding: 30px;
  border: 1px solid rgba(56, 189, 248, 0.14);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.92), rgba(8, 47, 73, 0.72));
  box-shadow: 0 0 30px rgba(14, 165, 233, 0.08), inset 0 0 22px rgba(255, 255, 255, 0.02);
}

.product-review-form-card p {
  color: var(--muted);
  line-height: 1.7;
}

.product-reviews-summary-card {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 26px;
  padding: 22px 24px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.03);
}

.product-reviews-score {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.product-reviews-score strong {
  color: #ffffff;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 950;
}

.product-reviews-score span,
.product-reviews-summary-card p {
  color: var(--muted);
  font-weight: 700;
}

.product-review-list {
  display: grid;
  gap: 18px;
}

.product-review-card {
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.03);
}

.product-review-card p {
  margin-bottom: 0;
  color: var(--muted);
  line-height: 1.8;
}

.product-review-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.product-review-card-head h3 {
  margin-top: 0;
  margin-bottom: 10px;
  color: #ffffff;
  font-size: 1.2rem;
}

.product-review-meta {
  text-align: right;
}

.product-review-meta strong {
  display: block;
  margin-bottom: 6px;
  color: #ffffff;
}

.product-review-meta span {
  color: var(--muted-dark);
  font-size: 0.9rem;
}

.product-review-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(34, 197, 94, 0.14);
  color: #86efac;
  font-size: 0.82rem;
  font-weight: 900;
}

.product-review-empty {
  padding: 24px;
  border: 1px dashed rgba(56, 189, 248, 0.18);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.02);
}

.product-review-empty h3 {
  margin-top: 0;
  color: #ffffff;
}

.product-review-empty p {
  margin-bottom: 0;
  color: var(--muted);
}

.product-review-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.home-reviews-section {
  background: radial-gradient(circle at top left, rgba(34, 211, 238, 0.12), transparent 24%), linear-gradient(180deg, #04101d 0%, #020617 100%);
}

.home-review-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.home-review-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.home-review-card-link:hover {
  color: inherit;
  text-decoration: none;
}

.home-review-card {
  height: 100%;
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.home-review-card-link:hover .home-review-card {
  transform: translateY(-6px);
  border-color: rgba(56, 189, 248, 0.24);
  background: rgba(255, 255, 255, 0.05);
  box-shadow: 0 0 24px rgba(56, 189, 248, 0.14), 0 0 46px rgba(37, 99, 235, 0.1);
}

.home-review-product {
  margin-bottom: 16px;
}

.home-review-product span {
  color: var(--cyan);
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.home-review-cta {
  display: inline-flex;
  margin-top: 18px;
  color: var(--cyan);
  font-size: 0.92rem;
  font-weight: 800;
}

.product-review-form .form-help {
  color: var(--muted-dark);
  font-size: 0.88rem;
}

.checkout-summary-discount span,
.checkout-summary-discount strong {
  color: #86efac !important;
}

.checkout-summary-note {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding: 18px 20px;
  border: 1px solid rgba(56, 189, 248, 0.12);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.03);
}

.checkout-summary-note p {
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
}

.checkout-summary-note .btn-ghost {
  width: 100%;
}

.product-review-rating-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.product-review-rating-group .form-check {
  margin: 0;
}

.product-review-rating-group .form-check-input {
  display: none;
}

.product-review-rating-group .form-check-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 108px;
  padding: 12px 14px;
  border: 1px solid rgba(56, 189, 248, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.03);
  color: var(--text);
  font-weight: 800;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.product-review-rating-group .form-check-input:checked + .form-check-label {
  border-color: rgba(251, 191, 36, 0.55);
  color: #020617;
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  box-shadow: 0 0 18px rgba(251, 191, 36, 0.25);
}

.product-review-rating-group .form-check-label:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 16px rgba(56, 189, 248, 0.14);
}

.flash-warning {
  background: rgba(245, 158, 11, 0.18);
  border: 1px solid rgba(245, 158, 11, 0.45);
}

.flash-warning span {
  color: #fcd34d;
}

.site-popup-open {
  overflow: hidden;
}

.site-popup {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.site-popup.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.site-popup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 23, 0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.site-popup-dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 560px);
  padding: 34px 30px 30px;
  border: 1px solid rgba(56, 189, 248, 0.18);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(8, 47, 73, 0.82));
  box-shadow: 0 24px 64px rgba(2, 6, 23, 0.42), 0 0 34px rgba(14, 165, 233, 0.1), inset 0 0 22px rgba(255, 255, 255, 0.03);
}

.site-popup-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(56, 189, 248, 0.16);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.04);
  color: var(--cyan);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.site-popup-close:hover {
  transform: translateY(-2px);
  background: rgba(56, 189, 248, 0.14);
  box-shadow: 0 0 18px rgba(56, 189, 248, 0.18);
}

.site-popup-kicker {
  display: inline-flex;
  align-items: center;
  margin-bottom: 14px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(56, 189, 248, 0.24);
  background: rgba(56, 189, 248, 0.1);
  color: var(--cyan);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.site-popup-dialog h2 {
  margin: 0 0 12px;
  color: #ffffff;
  font-size: clamp(1.8rem, 4vw, 2.4rem);
  line-height: 1.05;
}

.site-popup-question,
.site-popup-description {
  color: var(--muted);
  line-height: 1.7;
}

.site-popup-question {
  margin: 0 0 12px;
}

.site-popup-description {
  margin: 0 0 22px;
}

.site-popup-form {
  display: grid;
  gap: 18px;
}

.site-popup-answer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.site-popup-answer-grid input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.site-popup-answer-grid label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 14px 16px;
  border: 1px solid rgba(56, 189, 248, 0.18);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.04);
  color: #ffffff;
  cursor: pointer;
  font-weight: 800;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.site-popup-answer-grid label:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 16px rgba(56, 189, 248, 0.12);
}

.site-popup-answer-grid input:checked + label {
  border-color: rgba(103, 232, 249, 0.45);
  background: rgba(56, 189, 248, 0.16);
  color: #dff8ff;
  box-shadow: 0 0 18px rgba(56, 189, 248, 0.18);
}

.site-popup-email-field {
  display: grid;
  gap: 8px;
}

.site-popup-email-field span {
  color: #ffffff;
  font-weight: 700;
}

.site-popup-email-field input {
  width: 100%;
}

.site-popup-actions .btn-neon {
  width: 100%;
}

.site-popup-feedback {
  min-height: 1.3rem;
  margin: 0;
  color: var(--muted-dark);
  font-size: 0.92rem;
  font-weight: 700;
}

.site-popup-feedback.is-success {
  color: #86efac;
}

.site-popup-feedback.is-error {
  color: #fca5a5;
}

.raffle-highlight-section {
  background: radial-gradient(circle at top left, rgba(103, 232, 249, 0.12), transparent 24%), linear-gradient(180deg, #031121 0%, #06182b 100%);
}

.raffle-highlight {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 24px;
  align-items: stretch;
}

.raffle-highlight-copy,
.raffle-highlight-panel,
.order-raffle-card {
  padding: 30px;
  border: 1px solid rgba(56, 189, 248, 0.14);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.92), rgba(8, 47, 73, 0.72));
  box-shadow: 0 0 30px rgba(14, 165, 233, 0.08), inset 0 0 22px rgba(255, 255, 255, 0.02);
}

.raffle-highlight-copy h2,
.raffle-highlight-panel h3,
.order-raffle-card h3 {
  margin-top: 0;
  margin-bottom: 16px;
  color: #ffffff;
}

.raffle-highlight-copy p,
.raffle-highlight-panel p,
.order-raffle-card p {
  color: var(--muted);
  line-height: 1.7;
}

.raffle-highlight-prize-visual {
  max-width: 360px;
  margin-bottom: 22px;
  overflow: hidden;
  border: 1px solid rgba(56, 189, 248, 0.14);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.03);
  box-shadow: 0 0 22px rgba(14, 165, 233, 0.08), inset 0 0 18px rgba(255, 255, 255, 0.02);
}

.raffle-highlight-prize-visual img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.raffle-highlight-rules {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.raffle-featured-products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 8px;
}

.raffle-featured-product-card {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(56, 189, 248, 0.12);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.03);
  box-shadow: 0 0 18px rgba(14, 165, 233, 0.06), inset 0 0 18px rgba(255, 255, 255, 0.02);
  color: inherit;
  text-decoration: none;
  transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.raffle-featured-product-card:hover {
  transform: translateY(-4px);
  border-color: rgba(103, 232, 249, 0.28);
  background: rgba(255, 255, 255, 0.05);
  box-shadow: 0 0 22px rgba(56, 189, 248, 0.12), inset 0 0 18px rgba(255, 255, 255, 0.02);
}

.raffle-featured-product-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(56, 189, 248, 0.14);
  border: 1px solid rgba(56, 189, 248, 0.24);
  color: var(--cyan);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.raffle-featured-product-image {
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(56, 189, 248, 0.14);
  background: rgba(2, 6, 23, 0.55);
}

.raffle-featured-product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.raffle-featured-product-body {
  display: grid;
  gap: 8px;
}

.raffle-featured-product-body strong {
  color: #ffffff;
  font-size: 0.96rem;
  line-height: 1.35;
}

.raffle-highlight-rules span,
.raffle-ticket-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(56, 189, 248, 0.12);
  border: 1px solid rgba(56, 189, 248, 0.22);
  color: var(--cyan);
  font-size: 0.85rem;
  font-weight: 900;
}

.raffle-ticket-chip.is-winner {
  background: rgba(34, 197, 94, 0.16);
  border-color: rgba(34, 197, 94, 0.3);
  color: #86efac;
}

.raffle-highlight-panel {
  display: grid;
  gap: 18px;
}

.raffle-countdown-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.raffle-countdown-grid.compact {
  margin-top: 8px;
}

.raffle-countdown-box {
  padding: 18px 12px;
  border: 1px solid rgba(56, 189, 248, 0.12);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.03);
  text-align: center;
}

.raffle-countdown-box strong {
  display: block;
  margin-bottom: 8px;
  color: #ffffff;
  font-size: clamp(1.5rem, 3vw, 2.3rem);
  font-weight: 950;
}

.raffle-countdown-box span,
.raffle-countdown-note {
  color: var(--muted-dark);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.raffle-countdown-note {
  margin: 0;
}

.order-raffle-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.order-raffle-meta {
  display: grid;
  gap: 14px;
  min-width: min(340px, 100%);
}

@media (max-width: 900px) {
  .filter-grid {
    grid-template-columns: 1fr;
  }
  .filter-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .product-trust-grid,
  .product-detail-grid,
  .home-review-grid,
  .product-reviews-grid,
  .customer-orders-grid,
  .customer-order-card-meta,
  .customer-order-support-grid,
  .cart-related-grid,
  .raffle-highlight,
  .order-tracking-grid,
  .order-tracking-panels,
  .order-summary-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  .front-nav-toggle {
    display: inline-flex;
  }
  .front-navbar {
    flex-wrap: wrap;
    align-items: center !important;
    row-gap: 12px;
    padding: 12px 14px !important;
  }
  .front-nav-links {
    display: none !important;
    width: 100% !important;
    margin-top: 4px !important;
    margin-left: 0 !important;
    padding: 14px 16px !important;
    border: 1px solid rgba(56, 189, 248, 0.12);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(5, 15, 28, 0.98), rgba(7, 20, 38, 0.96));
    box-shadow: 0 18px 38px rgba(2, 6, 23, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.03);
  }
  .front-navbar.menu-open .front-nav-links {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 0 !important;
  }
  .front-navbar.menu-open .front-nav-links a {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    padding: 14px 2px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
  .front-navbar.menu-open .front-nav-links a:last-child {
    border-bottom: 0;
  }
  .front-nav-links a {
    display: none !important;
  }
  .front-nav-links a::after {
    display: none !important;
  }
  .front-brand {
    gap: 10px;
    min-width: 0;
  }
  .front-brand img {
    width: 42px !important;
  }
  .front-brand span {
    display: block !important;
    max-width: 122px;
    font-size: 0.66rem !important;
    line-height: 1.15;
    letter-spacing: 0.12em;
    word-break: break-word;
  }
  .front-nav-meta {
    margin-left: auto;
  }
  .front-nav-toggle,
  .front-nav-meta .cart-nav-link {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    border-radius: 14px;
  }
  .front-nav-toggle i {
    font-size: 1.1rem;
  }
  .cart-nav-badge {
    top: -6px;
    right: -6px;
  }
  .page-shell {
    padding: 148px 5vw 80px;
  }
  .page-card,
  .page-notice,
  .shop-filters {
    padding: 24px;
  }
  .cart-promo-row {
    flex-direction: column;
  }
  .product-show-headline {
    align-items: flex-start;
  }
  .product-purchase-panel,
  .product-info-card,
  .product-reviews-panel,
  .product-review-form-card {
    padding: 24px;
  }
  .product-reviews-summary-card,
  .customer-orders-toolbar-card,
  .order-result-header,
  .order-raffle-card,
  .order-items-list li,
  .product-review-card-head {
    flex-direction: column;
    align-items: flex-start;
  }
  .product-review-meta {
    text-align: left;
  }
  .raffle-countdown-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .raffle-featured-products {
    grid-template-columns: 1fr;
  }
  .site-popup {
    padding: 16px;
  }
  .site-popup-dialog {
    padding: 28px 22px 24px;
  }
  .site-popup-answer-grid {
    grid-template-columns: 1fr;
  }
  .order-raffle-meta {
    min-width: 0;
    width: 100%;
  }
}

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