/*!*************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_tokens.css ***!
  \*************************************************************************************************************************************************************************************************/
/* Brand Kit v2.0 — Del campo al código */
:root {
  --soil: #161210;
  --bark: #201810;
  --bark2: #261e14;
  --moss: #263320;
  --coffee: #5c3d2e;
  --coffee2: #7a5240;
  --avocado: #4a6741;
  --leaf: #6b8f5e;
  --leaf2: #8aad7c;
  --platano: #8b7d2a;
  --citrus: #c47b2b;
  --citrus2: #e09448;
  --dawn: #c8a96e;
  --sun: #e4c88a;
  --ai: #4a7fa5;
  --ai2: #6ba3c8;
  --mist: #f0ece4;
  --cloud: #faf8f4;
  --text-mid: #a89478;
  --text-dim: #5a4e40;
  --border: #2a2018;
  --border2: #352a1c;
  --display: 'Fraunces', Georgia, serif;
  --mono: 'Geist Mono', 'Courier New', monospace;
  --body: 'Geist', system-ui, sans-serif;
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 2rem;
  --space-lg: 4rem;
  --space-xl: 6rem;
}

/*!************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_reset.css ***!
  \************************************************************************************************************************************************************************************************/
/* Modern CSS Reset */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body {
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--mist);
  background-color: var(--soil);
  overflow-x: hidden;
  position: relative;
}
body::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 200 200%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cfilter id=%27noise%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.9%27 numOctaves=%274%27 stitchTiles=%27stitch%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url%28%23noise%29%27 opacity=%270.05%27/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 9999;
  opacity: 0.6;
}
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}
input, button, textarea, select {
  font: inherit;
}
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}
a {
  color: inherit;
  text-decoration: none;
}
ul, ol {
  list-style: none;
}
button {
  cursor: pointer;
  border: none;
  background: none;
}

/*!****************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_utilities.css ***!
  \****************************************************************************************************************************************************************************************************/
/* Utilities */
.wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-md);
  width: 100%;
  box-sizing: border-box;
}
.wrap--narrow {
  max-width: 900px;
}
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.active {
  opacity: 1;
  transform: translateY(0);
}
.tag {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  font-family: var(--mono);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: 4px;
  background: var(--bark2);
  color: var(--leaf);
  border: 1px solid var(--border2);
}
.tag.ai {
  background: rgba(74, 127, 165, 0.15);
  color: var(--ai2);
  border-color: var(--ai);
}
.btn {
  display: inline-block;
  padding: 0.875rem 2rem;
  font-family: var(--mono);
  font-size: 0.875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  border: 2px solid var(--dawn);
  color: var(--dawn);
  background: transparent;
  transition: all 0.3s ease;
  cursor: pointer;
}
.btn:hover {
  background: var(--dawn);
  color: var(--soil);
  transform: translateY(-2px);
}
.btn--primary {
  background: var(--dawn);
  color: var(--soil);
}
.btn--primary:hover {
  background: var(--sun);
  border-color: var(--sun);
}
.label {
  font-family: var(--mono);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--text-dim);
}
.section-title {
  font-family: var(--display);
  font-size: 3rem;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--cloud);
  margin-bottom: var(--space-md);
}
.section-title em {
  font-family: var(--display);
  font-weight: 300;
  font-style: italic;
  color: var(--dawn);
}

/*!**********************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_nav.css ***!
  \**********************************************************************************************************************************************************************************************/
/* Navigation */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  padding: var(--space-sm) var(--space-md);
  background: rgba(22, 18, 16, 0.95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
  transition: all 0.3s ease;
}
.nav.scrolled {
  padding: var(--space-xs) var(--space-md);
  background: rgba(22, 18, 16, 0.98);
}
.nav__container {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.nav__logo {
  font-family: var(--display);
  font-size: 1.25rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--mist);
}
.nav__logo em {
  font-family: var(--display);
  font-weight: 300;
  font-style: italic;
  color: var(--dawn);
}
.nav__menu {
  display: flex;
  gap: var(--space-md);
  align-items: center;
}
.nav__link {
  font-family: var(--mono);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: lowercase;
  letter-spacing: 0.05em;
  color: var(--text-mid);
  transition: color 0.3s ease;
  position: relative;
}
.nav__link:hover,
.nav__link.active {
  color: var(--dawn);
}
.nav__link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--dawn);
  transition: width 0.3s ease;
}
.nav__link:hover::after,
.nav__link.active::after {
  width: 100%;
}

/* Language Toggle */
.lang-toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-left: var(--space-sm);
  border-left: 1px solid var(--border2);
}

.lang-btn {
  font-family: var(--mono);
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  transition: color 0.3s ease;
  text-decoration: none;
}

.lang-btn--active {
  color: var(--dawn);
}

.lang-btn--inactive {
  color: var(--text-dim);
}

.lang-btn--inactive:hover {
  color: var(--text-mid);
}

.lang-separator {
  font-family: var(--mono);
  color: var(--border2);
  font-size: 0.875rem;
}

.nav__toggle {
  display: none;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
}
.nav__toggle span {
  width: 24px;
  height: 2px;
  background: var(--mist);
  transition: all 0.3s ease;
}
@media (max-width: 900px) {
  .nav__toggle {
    display: flex;
  }
  .nav__menu {
    position: fixed;
    top: 60px;
    right: -100%;
    width: 250px;
    height: calc(100vh - 60px);
    background: var(--bark);
    flex-direction: column;
    padding: var(--space-lg) var(--space-md);
    border-left: 1px solid var(--border);
    transition: right 0.3s ease;
  }
  .nav__menu.active {
    right: 0;
  }
}

/*!***********************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_hero.css ***!
  \***********************************************************************************************************************************************************************************************/
/* Hero */
.hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--space-xl) var(--space-md);
  background: linear-gradient(180deg, var(--soil) 0%, var(--bark) 100%);
  position: relative;
}
.hero__content {
  max-width: 900px;
}
.hero__title {
  font-family: var(--display);
  font-size: clamp(3rem, 8vw, 6rem);
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--cloud);
  margin-bottom: var(--space-sm);
  line-height: 1.1;
}
.hero__title em {
  font-family: var(--display);
  font-weight: 300;
  font-style: italic;
  color: var(--dawn);
  display: block;
}
.hero__tagline {
  font-family: var(--display);
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-weight: 300;
  font-style: italic;
  color: var(--dawn);
  margin-bottom: var(--space-md);
  line-height: 1.4;
}
.hero__subtitle {
  font-family: var(--mono);
  font-size: 0.875rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--leaf);
  margin-bottom: var(--space-lg);
}
.hero__cta {
  display: flex;
  gap: var(--space-sm);
  justify-content: center;
  flex-wrap: wrap;
}

/*!************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_about.css ***!
  \************************************************************************************************************************************************************************************************/
/* About Section - Brand Kit v2.0 */
.about {
  min-height: 100vh;
  padding: var(--space-xl) var(--space-md);
  background: var(--bark);
}
.about__content {
  max-width: 900px;
  margin: 0 auto;
}
.about__intro {
  color: var(--text-mid);
  font-size: 1.25rem;
  line-height: 1.7;
  margin-bottom: var(--space-lg);
}
/* Los 4 Cultivos */
.about__cultivos {
  margin: var(--space-xl) 0;
}
.about__cultivos-title {
  font-family: var(--display);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--dawn);
  margin-bottom: var(--space-md);
  text-align: center;
}
.about__cultivos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--space-md);
  margin-top: var(--space-lg);
}
.cultivo-card {
  padding: var(--space-md);
  background: var(--bark2);
  border-radius: 4px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.cultivo-card:hover {
  transform: translateY(-4px);
}
.cultivo-card--cafe {
  border-left: 4px solid var(--coffee);
}
.cultivo-card--aguacate {
  border-left: 4px solid var(--avocado);
}
.cultivo-card--platano {
  border-left: 4px solid var(--platano);
}
.cultivo-card--citrus {
  border-left: 4px solid var(--citrus);
}
.cultivo-card__header {
  font-family: var(--mono);
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: var(--space-sm);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.cultivo-card__icon {
  font-size: 1.5rem;
}
.cultivo-card--cafe .cultivo-card__header {
  color: var(--coffee2);
}
.cultivo-card--aguacate .cultivo-card__header {
  color: var(--leaf);
}
.cultivo-card--platano .cultivo-card__header {
  color: var(--platano);
}
.cultivo-card--citrus .cultivo-card__header {
  color: var(--citrus2);
}
.cultivo-card__values {
  color: var(--text-mid);
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: var(--space-xs);
}
.cultivo-card__values strong {
  color: var(--mist);
}
.cultivo-card__description {
  color: var(--text-dim);
  font-size: 0.875rem;
  line-height: 1.5;
}
/* Sección IA */
.about__ai {
  margin: var(--space-xl) 0;
  padding: var(--space-lg);
  background: rgba(74, 127, 165, 0.1);
  border-left: 4px solid var(--ai);
  border-radius: 4px;
}
.about__ai-header {
  font-family: var(--mono);
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ai2);
  margin-bottom: var(--space-sm);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.about__ai-tagline {
  font-family: var(--display);
  font-size: 1.5rem;
  font-style: italic;
  font-weight: 300;
  color: var(--ai2);
  line-height: 1.5;
  margin-bottom: var(--space-sm);
}
.about__ai-description {
  color: var(--text-mid);
  font-size: 1.05rem;
  line-height: 1.7;
}
.about__ai-description strong {
  color: var(--mist);
}
/* Filosofía CI/CD */
.about__philosophy {
  margin: var(--space-xl) 0;
  text-align: center;
}
.about__philosophy-label {
  font-family: var(--mono);
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--text-dim);
  margin-bottom: var(--space-sm);
}
.about__philosophy-title {
  font-family: var(--display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--leaf);
  margin-bottom: var(--space-xs);
}
.about__philosophy-description {
  color: var(--text-mid);
  font-size: 1rem;
  line-height: 1.6;
}
/* Frase Filosófica */
.about__quote {
  margin: var(--space-xl) 0;
  padding: var(--space-lg);
  text-align: center;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.about__quote-text {
  font-family: var(--display);
  font-size: 1.75rem;
  font-style: italic;
  font-weight: 300;
  color: var(--dawn);
  line-height: 1.5;
}
/* Responsive */
@media (max-width: 900px) {
  .about__cultivos-grid {
    grid-template-columns: 1fr;
  }
  .about__quote-text {
    font-size: 1.5rem;
  }
}
@media (max-width: 600px) {
  .about__intro {
    font-size: 1.125rem;
  }
  .about__cultivos-title {
    font-size: 1.5rem;
  }
  .about__ai-tagline {
    font-size: 1.25rem;
  }
  .about__quote-text {
    font-size: 1.25rem;
  }
}

/*!*************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_skills.css ***!
  \*************************************************************************************************************************************************************************************************/
/* skills section */

/*!*****************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_experience.css ***!
  \*****************************************************************************************************************************************************************************************************/
/* Experience Section - Timeline */
.experience {
  min-height: 100vh;
  padding: var(--space-xl) var(--space-md);
  background: var(--soil);
}
.experience__content {
  max-width: 1000px;
  margin: 0 auto;
}
.experience__intro {
  color: var(--text-mid);
  text-align: center;
  margin-bottom: var(--space-xl);
  font-size: 1.125rem;
}
/* Timeline */
.timeline {
  position: relative;
}
.timeline__line {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--border2);
}
.timeline__item {
  position: relative;
  padding-left: var(--space-lg);
  margin-bottom: var(--space-xl);
}
.timeline__item:last-child {
  margin-bottom: 0;
}
.timeline__dot {
  position: absolute;
  left: -6px;
  top: 8px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid var(--soil);
}
.timeline__dot--current {
  background: var(--dawn);
}
.timeline__dot--coffee {
  background: var(--coffee);
}
.timeline__dot--avocado {
  background: var(--avocado);
}
.timeline__dot--citrus {
  background: var(--citrus);
}
.timeline__dot--platano {
  background: var(--platano);
}
.timeline__card {
  background: var(--bark2);
  padding: var(--space-md);
  border-radius: 4px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.timeline__card:hover {
  transform: translateX(4px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
.timeline__card--current {
  border-left: 3px solid var(--dawn);
}
.timeline__header {
  display: flex;
  justify-content: space-between;
  align-items: start;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-bottom: var(--space-sm);
}
.timeline__company {
  font-family: var(--display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--mist);
  margin-bottom: 0.25rem;
}
.timeline__role {
  font-family: var(--mono);
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--leaf);
}
.timeline__period {
  font-family: var(--mono);
  font-size: 0.75rem;
  color: var(--text-dim);
}
.timeline__badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background: var(--moss);
  color: var(--leaf2);
  font-family: var(--mono);
  font-size: 0.75rem;
  border-radius: 4px;
  margin-top: 0.25rem;
}
.timeline__list {
  list-style: none;
  padding: 0;
  margin: var(--space-sm) 0;
}
.timeline__list-item {
  color: var(--text-mid);
  margin-bottom: 0.5rem;
  padding-left: 1.5rem;
  position: relative;
}
.timeline__list-item::before {
  content: '▸';
  position: absolute;
  left: 0;
}
.timeline__card--current .timeline__list-item::before {
  color: var(--dawn);
}
.timeline__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: var(--space-sm);
}
/* Responsive */
@media (max-width: 900px) {
  .timeline__header {
    flex-direction: column;
  }
  .timeline__company {
    font-size: 1.25rem;
  }
}
@media (max-width: 600px) {
  .timeline__item {
    padding-left: var(--space-md);
  }
  .timeline__card {
    padding: var(--space-sm);
  }
  .timeline__company {
    font-size: 1.125rem;
  }
}

/*!****************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_portfolio.css ***!
  \****************************************************************************************************************************************************************************************************/
/* Projects/Portfolio Section */
.projects {
  min-height: 100vh;
  padding: var(--space-xl) var(--space-md);
  background: var(--bark);
}
.projects__content {
  max-width: 1200px;
  margin: 0 auto;
}
.projects__intro {
  color: var(--text-mid);
  text-align: center;
  margin-bottom: var(--space-xl);
  font-size: 1.125rem;
}
/* Projects Grid */
.projects__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(350px, 100%), 1fr));
  gap: var(--space-lg);
}
.project-card {
  background: var(--bark2);
  border-radius: 8px;
  padding: var(--space-lg);
  border: 1px solid var(--border2);
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.project-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
  border-color: var(--dawn);
}
.project-card--featured {
  border: 2px solid var(--dawn);
}
.project-card--featured:hover {
  box-shadow: 0 8px 24px rgba(200, 169, 110, 0.3);
}
.project-card__badge {
  position: absolute;
  top: var(--space-sm);
  right: var(--space-sm);
  background: var(--dawn);
  color: var(--soil);
  font-family: var(--mono);
  font-size: 0.75rem;
  padding: 0.25rem 0.75rem;
  border-radius: 4px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.project-card__title {
  font-family: var(--display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--mist);
  margin-bottom: var(--space-xs);
  line-height: 1.3;
}
.project-card__category {
  font-family: var(--mono);
  font-size: 0.875rem;
  color: var(--leaf);
  margin-bottom: var(--space-sm);
}
.project-card__category--ai {
  color: var(--ai2);
}
.project-card__description {
  color: var(--text-mid);
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: var(--space-md);
}
.project-card__description strong {
  color: var(--dawn);
}
.project-card__stat {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-md);
  padding: var(--space-sm);
  background: rgba(200, 169, 110, 0.1);
  border-radius: 4px;
}
.project-card__stat-number {
  font-family: var(--display);
  font-size: 2rem;
  font-weight: 900;
  color: var(--dawn);
  line-height: 1;
}
.project-card__stat-label {
  font-family: var(--mono);
  font-size: 0.75rem;
  color: var(--text-dim);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.project-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: var(--space-md);
}
.project-card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--mono);
  font-size: 0.875rem;
  color: var(--dawn);
  text-decoration: none;
  transition: color 0.3s, transform 0.3s;
}
.project-card__link:hover {
  color: var(--sun);
  transform: translateX(4px);
}
/* CTA Section */
.projects__cta {
  text-align: center;
  margin-top: var(--space-xl);
}
.projects__cta-text {
  color: var(--text-mid);
  margin-bottom: var(--space-sm);
}
/* Responsive */
@media (max-width: 900px) {
  .projects__grid {
    grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
  }
  .project-card__title {
    font-size: 1.25rem;
  }
}
@media (max-width: 600px) {
  .projects__grid {
    grid-template-columns: 1fr;
  }
  .project-card {
    padding: var(--space-md);
  }
  .project-card__title {
    font-size: 1.125rem;
  }
  .project-card__stat-number {
    font-size: 1.5rem;
  }
}
/* Para dispositivos ultra-estrechos (Galaxy Z Fold 5, etc.) */
@media (max-width: 360px) {
  .projects {
    padding: var(--space-lg) var(--space-sm);
  }
  .project-card {
    padding: var(--space-sm);
  }
  .project-card__title {
    font-size: 1rem;
  }
  .project-card__badge {
    font-size: 0.625rem;
    padding: 0.2rem 0.5rem;
  }
  .project-card__stat {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-xs);
  }
  .project-card__stat-number {
    font-size: 1.25rem;
  }
}

/*!*******************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_testimonials.css ***!
  \*******************************************************************************************************************************************************************************************************/
/* testimonials section */

/*!**************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_contact.css ***!
  \**************************************************************************************************************************************************************************************************/
/* Contact Section - Brand Kit v2.0 Enhanced */
.contact {
  min-height: 100vh;
  padding: var(--space-xl) var(--space-md);
  background: var(--bark);
}
.contact__content {
  max-width: 700px;
  margin: 0 auto;
}
/* Intro */
.contact__intro {
  text-align: center;
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--border);
}
.contact__intro-text {
  font-size: 1.125rem;
  color: var(--text-mid);
  line-height: 1.7;
  margin-bottom: var(--space-sm);
}
.contact__intro-note {
  font-family: var(--mono);
  font-size: 0.875rem;
  color: var(--text-dim);
  line-height: 1.6;
}
.contact__intro-note strong {
  color: var(--dawn);
}
.contact__intro-note a {
  color: var(--dawn);
  text-decoration: none;
  border-bottom: 1px solid var(--dawn);
  transition: color 0.3s;
}
.contact__intro-note a:hover {
  color: var(--sun);
  border-bottom-color: var(--sun);
}
/* Messages */
.contact__message {
  padding: var(--space-md);
  border-radius: 4px;
  margin-bottom: var(--space-lg);
  font-family: var(--mono);
  font-size: 0.9375rem;
  line-height: 1.6;
  animation: slideDown 0.3s ease;
}
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.contact__message--success {
  background: rgba(107, 143, 94, 0.15);
  color: var(--leaf2);
  border-left: 4px solid var(--leaf);
}
.contact__message--error {
  background: rgba(200, 100, 100, 0.15);
  color: #ff8888;
  border-left: 4px solid #ff6666;
}
/* Form */
.contact__form {
  margin-bottom: var(--space-xl);
}
.contact__form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-md);
  margin-bottom: var(--space-md);
}
.contact__form-group {
  margin-bottom: var(--space-md);
}
.contact__label {
  display: block;
  font-family: var(--mono);
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--dawn);
  margin-bottom: var(--space-xs);
  font-weight: 500;
}
.contact__input,
.contact__textarea {
  width: 100%;
  padding: var(--space-sm);
  font-family: var(--body);
  font-size: 1rem;
  color: var(--mist);
  background: var(--soil);
  border: 2px solid var(--border2);
  border-radius: 4px;
  transition: border-color 0.3s, box-shadow 0.3s, background-color 0.3s;
}
.contact__input:focus,
.contact__textarea:focus {
  outline: none;
  border-color: var(--dawn);
  background: var(--bark2);
  box-shadow: 0 0 0 4px rgba(200, 169, 110, 0.1);
}
.contact__input::-moz-placeholder, .contact__textarea::-moz-placeholder {
  color: var(--text-dim);
}
.contact__input::placeholder,
.contact__textarea::placeholder {
  color: var(--text-dim);
}
.contact__textarea {
  resize: vertical;
  min-height: 150px;
  line-height: 1.6;
}
.contact__hint {
  font-family: var(--mono);
  font-size: 0.75rem;
  color: var(--text-dim);
  margin-top: var(--space-xs);
  font-style: italic;
}
.contact__error {
  display: block;
  color: #ff8888;
  font-family: var(--mono);
  font-size: 0.8125rem;
  margin-top: var(--space-xs);
  padding-left: var(--space-xs);
  border-left: 2px solid #ff6666;
}
/* Form Actions */
.contact__form-actions {
  text-align: center;
}
.contact__submit {
  width: 100%;
  max-width: 300px;
  position: relative;
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.contact__submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.contact__submit-loader {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid var(--soil);
  border-top-color: var(--dawn);
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.contact__privacy {
  font-family: var(--mono);
  font-size: 0.75rem;
  color: var(--text-dim);
  margin-top: var(--space-sm);
  line-height: 1.5;
}
/* Contact Info Cards */
.contact__info {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-md);
  margin-top: var(--space-xl);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--border);
}
.contact__info-item {
  display: flex;
  gap: var(--space-sm);
  padding: var(--space-md);
  background: var(--soil);
  border-radius: 4px;
  transition: transform 0.3s, box-shadow 0.3s;
}
.contact__info-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
.contact__info-icon {
  font-size: 1.5rem;
  line-height: 1;
  flex-shrink: 0;
}
.contact__info-content {
  flex: 1;
}
.contact__info-content strong {
  display: block;
  font-family: var(--mono);
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--dawn);
  margin-bottom: 0.25rem;
}
.contact__info-content p {
  font-size: 0.9375rem;
  color: var(--text-mid);
  line-height: 1.5;
  margin: 0;
}
/* Responsive */
@media (max-width: 900px) {
  .contact__form-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .contact__info {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  .contact__intro-text {
    font-size: 1rem;
  }
  .contact__input,
  .contact__textarea {
    font-size: 0.9375rem;
  }
  .contact__submit {
    max-width: 100%;
  }
  .contact__info-item {
    padding: var(--space-sm);
  }
  .contact__info-icon {
    font-size: 1.25rem;
  }
}

/*!***************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_donation.css ***!
  \***************************************************************************************************************************************************************************************************/
/* Donation Page - Brand Kit v2.0 */

.donation {
  min-height: 100vh;
  background: linear-gradient(135deg, var(--soil) 0%, var(--bark) 50%, var(--moss) 100%);
  padding: calc(80px + var(--space-lg)) var(--space-md) var(--space-xl);
  display: flex;
  align-items: center;
  justify-content: center;
}

.donation__container {
  max-width: 600px;
  width: 100%;
  margin: 0 auto;
}

.donation__header {
  text-align: center;
  margin-bottom: var(--space-lg);
}

.donation__title {
  font-family: var(--display);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 600;
  color: var(--sun);
  margin-bottom: var(--space-sm);
  line-height: 1.2;
}

.donation__title em {
  color: var(--leaf);
  font-style: normal;
}

.donation__intro {
  font-family: var(--body);
  font-size: 1.1rem;
  color: var(--mist);
  line-height: 1.6;
  max-width: 500px;
  margin: 0 auto var(--space-md);
}

.donation__form {
  background: var(--bark2);
  border: 1px solid var(--border2);
  border-radius: 16px;
  padding: var(--space-lg);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.donation__form-group {
  margin-bottom: var(--space-md);
}

.donation__label {
  display: block;
  font-family: var(--body);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--sun);
  margin-bottom: var(--space-xs);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.donation__select,
.donation__input {
  width: 100%;
  padding: 1rem 1.25rem;
  font-family: var(--mono);
  font-size: 1.1rem;
  color: var(--cloud);
  background: var(--soil);
  border: 2px solid var(--border2);
  border-radius: 8px;
  outline: none;
  transition: all 0.3s ease;
}

.donation__select:focus,
.donation__input:focus {
  border-color: var(--leaf);
  box-shadow: 0 0 0 3px rgba(107, 143, 94, 0.1);
}

.donation__select {
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width=%2712%27 height=%278%27 viewBox=%270 0 12 8%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M1 1L6 6L11 1%27 stroke=%27%23e4c88a%27 stroke-width=%272%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 3rem;
}

.donation__input::-moz-placeholder {
  color: var(--text-dim);
}

.donation__input::placeholder {
  color: var(--text-dim);
}

.donation__hint {
  font-family: var(--body);
  font-size: 0.85rem;
  color: var(--text-mid);
  margin-top: var(--space-xs);
  font-style: italic;
}

.donation__submit {
  width: 100%;
  padding: 1.25rem 2rem;
  font-family: var(--body);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--soil);
  background: linear-gradient(135deg, var(--leaf) 0%, var(--avocado) 100%);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  box-shadow: 0 4px 12px rgba(107, 143, 94, 0.3);
}

.donation__submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(107, 143, 94, 0.4);
  background: linear-gradient(135deg, var(--leaf2) 0%, var(--leaf) 100%);
}

.donation__submit:active {
  transform: translateY(0);
}

.donation__submit i {
  margin-right: 0.5rem;
}

.donation__privacy {
  font-family: var(--body);
  font-size: 0.9rem;
  color: var(--text-mid);
  text-align: center;
  margin-top: var(--space-md);
  line-height: 1.5;
}

.donation__footer {
  text-align: center;
  margin-top: var(--space-lg);
}

.donation__thank-you {
  font-family: var(--display);
  font-size: 1.5rem;
  color: var(--sun);
  margin-bottom: var(--space-sm);
}

/* Responsive */
@media (max-width: 768px) {
  .donation {
    padding: calc(60px + var(--space-md)) var(--space-sm) var(--space-md);
  }

  .donation__form {
    padding: var(--space-md);
  }

  .donation__title {
    font-size: 2rem;
  }

  .donation__intro {
    font-size: 1rem;
  }
}

/* Loading state */
.donation__submit--loading {
  opacity: 0.7;
  cursor: not-allowed;
  pointer-events: none;
}

.donation__submit--loading::after {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid var(--soil);
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  margin-left: 0.5rem;
  vertical-align: middle;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}


/*!*************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_footer.css ***!
  \*************************************************************************************************************************************************************************************************/
/* Footer */
.footer {
  padding: var(--space-lg) var(--space-md);
  background: var(--soil);
  border-top: 1px solid var(--border);
}
.footer__content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-md);
}
.footer__copyright {
  font-family: var(--mono);
  font-size: 0.875rem;
  color: var(--text-dim);
}
.footer__social {
  display: flex;
  gap: var(--space-sm);
}
.footer__link {
  font-family: var(--mono);
  font-size: 0.875rem;
  color: var(--text-mid);
  text-decoration: none;
  transition: color 0.3s;
}
.footer__link:hover {
  color: var(--dawn);
}
/* Responsive */
@media (max-width: 600px) {
  .footer__content {
    flex-direction: column;
    text-align: center;
  }
}

/*!*****************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/_responsive.css ***!
  \*****************************************************************************************************************************************************************************************************/
/* Responsive */
@media (max-width: 900px) {
  :root {
    --space-lg: 3rem;
    --space-xl: 4rem;
  }
  .section-title {
    font-size: 2.5rem;
  }
}
@media (max-width: 600px) {
  :root {
    --space-md: 1.5rem;
    --space-lg: 2rem;
    --space-xl: 3rem;
  }
  .section-title {
    font-size: 2rem;
  }
  .wrap {
    padding: 0 var(--space-sm);
  }
}
/* Para dispositivos ultra-estrechos (Galaxy Z Fold 5, etc.) */
@media (max-width: 360px) {
  :root {
    --space-xs: 0.5rem;
    --space-sm: 0.75rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
  }
  .section-title {
    font-size: 1.75rem;
  }
  .section-title em {
    display: block;
    margin-top: 0.25rem;
  }
  body {
    font-size: 0.9375rem;
  }
}

/*!*********************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./assets/styles/app.css ***!
  \*********************************************************************************************************************************************************************************************/
/* SAUL MORALES PACHECO — Brand Kit v2.0 */


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