/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
  /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type='button']:-moz-focusring,
[type='reset']:-moz-focusring,
[type='submit']:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type='checkbox'],
[type='radio'] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

@font-face {
  src: url('../fonts/poppins-regular.woff2') format('woff2'),
    url('../fonts/poppins-regular.woff') format('woff');
  font-family: Poppins;
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  src: url('../fonts/poppins-medium.woff2') format('woff2'),
    url('../fonts/poppins-medium.woff') format('woff');
  font-family: Poppins;
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  src: url('../fonts/poppins-semibold.woff2') format('woff2'),
    url('../fonts/poppins-semibold.woff') format('woff');
  font-family: Poppins;
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

[type='text'],
[type='tel'],
[type='email'],
[type='search'],
[type='number'],
[type='url'],
[type='password'],
[type='date'],
textarea {
  width: 100%;
  border: 1px solid currentColor;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

button,
[type='submit'] {
  display: inline-block;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  border: 1px solid currentColor;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

textarea {
  resize: vertical;
  vertical-align: top;
}

select {
  position: relative;
  display: block;
}

fieldset {
  margin: 0;
  margin-bottom: 1.3rem;
  padding: 0;
  border: 0;
}

label {
  display: inline-block;
}
label[for] {
  cursor: pointer;
}

[unselectable] {
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

[disabled] {
  cursor: not-allowed;
}

h1 {
  font-size: 4rem;
}

h2 {
  font-size: 1.77778rem;
}

h3 {
  font-size: 1.55556rem;
}

h4 {
  font-size: 1.22222rem;
}

h5 {
  font-size: 1rem;
}

h6 {
  font-size: 0.77778rem;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  margin-bottom: 1.3rem;
  font-weight: 500;
}

a {
  text-decoration: none;
  color: inherit;
}
a:hover,
a:active,
a:focus {
  text-decoration: none;
}

ul,
dl,
ol {
  margin: 0;
  margin-bottom: 1.3rem;
  padding: 0;
  padding-left: 1.3rem;
}
ul ul,
dl ul,
ol ul,
ul dl,
dl dl,
ol dl,
ul ol,
dl ol,
ol ol {
  margin-bottom: 0;
}

nav ul,
nav ol,
fieldset ul,
fieldset ol {
  padding: 0;
  list-style: none;
}

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}

audio,
iframe,
img,
video {
  max-width: 100%;
  height: auto;
}

figure {
  margin: 0;
  margin-bottom: 1.3rem;
}

:root {
  color: #000;
  background-color: #fff;
  box-sizing: border-box;
  font-size: 18px;
  -webkit-font-kerning: normal;
  font-kerning: normal;
  font-variant-ligatures: common-ligatures contextual;
  font-feature-settings: 'kern', 'liga', 'clig', 'calt';
  line-height: 1.3;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
@media (min-width: 1100px) {
  :root {
    font-size: 21.6px;
  }
}
@media (min-width: 1600px) {
  :root {
    font-size: 25.2px;
  }
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  font-family: sans-serif;
  font-weight: 400;
  font-style: normal;
  background-color: #fff;
}
.fonts-loaded body {
  font-family: Poppins, sans-serif;
}
@media print {
  body * {
    display: none;
  }
  body::after {
    content: 'Please, do not waste paper by printing webpages.';
  }
}

::selection {
  background-color: rgb(81, 42, 222);
  color: #fff;
  text-shadow: none;
}

table {
  margin: 0;
  margin-bottom: 1.3rem;
  width: 100%;
  border-collapse: collapse;
}

td,
th {
  padding: 0;
  vertical-align: top;
}

th {
  text-align: left;
}

hr {
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 1.3rem;
  margin-top: 0;
  display: block;
  width: 90%;
  border: 0;
  border-bottom: 1px solid currentColor;
}

pre,
p {
  margin: 0;
  margin-bottom: 1.3rem;
}

sub,
sup {
  position: relative;
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

.icon {
  position: relative;
  top: -0.0625em;
  display: inline-block;
  width: 1em;
  height: 1em;
  fill: currentColor;
}

.image {
  margin: 0;
}

.burger {
  position: relative;
  display: block;
  position: fixed;
  bottom: 1.95rem;
  right: 1.3rem;
  background-color: rgb(81, 42, 222);
  will-change: all;
  transition: all 0.3s ease-in;
  z-index: 10;
  width: 50px;
  height: 50px;
  padding: 0;
  margin: 0;
  border: 0;
  outline: 0;
  border-radius: 100%;
}
.burger:hover,
.burger:active,
.burger:focus {
  background-color: rgb(81, 42, 222);
}
@media (min-width: 960px) {
  .burger {
    bottom: auto;
    top: 1.95rem;
    width: 65px;
    height: 65px;
  }
}
@media (min-width: 1600px) {
  .burger {
    top: 2.6rem;
  }
}

.burger__inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  width: 30px;
  height: 22px;
  background: transparent;
  overflow: hidden;
  padding: 0;
  margin: 0;
  border: 0;
  outline: 0;
}
.burger[aria-expanded='true'] .burger__inner {
  margin-left: 2px;
}

.burger__line {
  background-color: #fff;
  will-change: transform, opacity, left, width;
  transition: transform 0.3s ease-in, opacity 0.3s ease-in, left 0.3s ease-in,
    width 0.3s ease-in;
  display: block;
  width: 30px;
  height: 3px;
  border-radius: 3px;
  transform-origin: center center;
}
.burger__line:nth-of-type(1) {
  position: absolute;
  top: 0;
  left: 0;
}
.burger__line:nth-of-type(2) {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.burger__line:nth-of-type(3) {
  position: absolute;
  bottom: 0;
  left: 0;
}

.burger[aria-expanded='true'] {
  right: calc(240px + 0.65rem);
}
@media (min-width: 640px) {
  .burger[aria-expanded='true'] {
    right: calc(320px + 0.65rem);
  }
}
@media (min-width: 1100px) {
  .burger[aria-expanded='true'] {
    right: calc(380px + 0.65rem);
  }
}
@media (min-width: 1600px) {
  .burger[aria-expanded='true'] {
    right: calc(440px + 0.65rem);
  }
}
.burger[aria-expanded='true'] .burger__line {
  width: 28px;
  left: 4px;
}
.burger[aria-expanded='true'] .burger__line:nth-of-type(1) {
  transform: rotate(45deg);
  transform-origin: top left;
}
.burger[aria-expanded='true'] .burger__line:nth-of-type(2) {
  opacity: 0;
}
.burger[aria-expanded='true'] .burger__line:nth-of-type(3) {
  transform: rotate(-45deg);
  transform-origin: bottom left;
}

.nav {
  position: fixed;
  top: 0;
  bottom: 0;
  right: 0;
  background-color: rgb(81, 42, 222);
  color: #fff;
  z-index: 20;
  will-change: transform, opacity;
  transition: transform 0.3s ease-in, opacity 0.3s ease-in;
  padding: 0.65rem;
  width: 240px;
  transform: translateX(110%);
}
@media (min-width: 640px) {
  .nav {
    padding: 1.3rem;
    width: 320px;
  }
}
@media (min-width: 1100px) {
  .nav {
    width: 380px;
  }
}
@media (min-width: 1600px) {
  .nav {
    width: 440px;
  }
}

.nav--open {
  transform: translateX(0);
}

.nav__title {
  font-size: 2.77778rem;
  font-weight: 500;
}
@media (min-width: 480px) {
  .nav__title {
    font-size: 4rem;
  }
}
@media (min-width: 640px) {
  .nav__title {
    font-size: 3.77778rem;
  }
}

.nav__title--visuallyhidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
}
.nav__title--visuallyhidden.focusable:active,
.nav__title--visuallyhidden.focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}

.nav__link {
  color: #fff;
  font-family: sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 1.55556rem;
}
.fonts-loaded .nav__link {
  font-family: Poppins, sans-serif;
}
.nav__link:hover,
.nav__link:active,
.nav__link:focus {
  text-decoration: underline;
}
@media (min-width: 640px) {
  .nav__link {
    font-size: 1.77778rem;
  }
}
.nav__list--meta .nav__link {
  font-size: 1rem;
}

.nav__list--meta {
  margin-top: 2.6rem;
  margin-bottom: 2.6rem;
}

.nav__social-link {
  color: #fff;
  margin-right: 0.65rem;
  display: inline-block;
}
.nav__social-link:hover,
.nav__social-link:active,
.nav__social-link:focus {
  color: rgb(81, 42, 222);
  text-decoration: none;
}

.nav__social-icon {
  width: 1.4em;
  height: 1.4em;
}

.background {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  position: fixed;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  opacity: 0.8;
}

.background__image,
.background__video {
  width: 200vw;
  height: 200vh;
  object-fit: contain;
  object-position: 50% 50%;
}
@media (min-width: 960px) {
  .background__image,
  .background__video {
    width: 300vw;
    height: 300vh;
  }
}

.background__video {
  display: none;
  visibility: hidden;
}
@media (min-width: 960px) {
  .background__video {
    display: block;
    visibility: visible;
  }
}

.background__image {
  max-width: none;
  max-height: none;
}
@media (min-width: 960px) {
  .background__image {
    display: none;
    visibility: hidden;
  }
}

.content {
  position: relative;
  display: block;
}
@media (min-width: 720px) {
  .content {
    font-size: 1.22222rem;
  }
}

.content__additional h2,
.content__additional h3,
.content__additional h4,
.content__text h2,
.content__text h3,
.content__text h4 {
  color: rgb(81, 42, 222);
}

.content__additional h3,
.content__additional h4,
.content__text h3,
.content__text h4 {
  font-weight: 600;
}

.content__additional a,
.content__text a {
  color: rgb(81, 42, 222);
}
.content__additional a:hover,
.content__additional a:active,
.content__additional a:focus,
.content__text a:hover,
.content__text a:active,
.content__text a:focus {
  color: #000;
}

.content--large {
  font-size: 1.22222rem;
}
@media (min-width: 720px) {
  .content--large {
    font-size: 1.55556rem;
    font-weight: 400;
  }
}

.content__image {
  margin-bottom: 1.3rem;
}

@media (min-width: 720px) {
  .content__image,
  .content__images {
    padding-left: 20%;
  }
}

@keyframes day-event-header-animation {
  0% {
    color: rgb(81, 42, 222);
  }
  45% {
    color: #000;
  }
  55% {
    color: #000;
  }
  100% {
    color: rgb(81, 42, 222);
  }
}

.day {
  position: relative;
  display: block;
}

.day__date {
  font-size: 8.88889rem;
  margin-top: 1.3rem;
  margin-bottom: 1.3rem;
  line-height: 0.9;
  letter-spacing: -0.05em;
  display: inline-block;
}
.day__date em {
  position: relative;
  left: -0.05em;
  display: inline-block;
  font-style: normal;
  font-family: Georgia, serif;
}
@media (min-width: 960px) {
  .day__date {
    display: block;
    width: 350px;
  }
}
@media (min-width: 1600px) {
  .day__date {
    width: 420px;
  }
}

.day__events-header {
  margin-bottom: 0.65rem;
  margin-top: 1.95rem;
}
@media (min-width: 960px) {
  .day__events-header {
    padding-left: calc(350px + 1.3rem);
  }
  .day__events-header:first-of-type {
    margin-top: -5.85rem;
  }
}
@media (min-width: 1600px) {
  .day__events-header {
    padding-left: calc(420px + 1.3rem);
  }
}

.day__events-subtitle {
  color: rgb(81, 42, 222);
  font-weight: 600;
  margin-bottom: 0;
  line-height: 1.1;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}
@media (min-width: 960px) {
  .day__events-subtitle {
    font-size: 1.77778rem;
  }
}

.day__events-category {
  font-weight: 400;
  font-size: 1rem;
  margin-bottom: 0;
}
@media (min-width: 960px) {
  .day__events-category {
    font-size: 1.55556rem;
  }
}

.day__event {
  margin-bottom: 0.325rem;
}

.day__event-header {
  padding-right: 0;
  padding-left: 0;
  padding-top: 0.26rem;
  padding-bottom: 0.26rem;
  display: flex;
  width: 100%;
  cursor: pointer;
  margin: 0;
  outline: 0;
  border: 0;
  background: transparent;
  text-align: left;
}
.day__event-header:hover,
.day__event-header:active,
.day__event-header:focus {
  animation: day-event-header-animation 3s linear infinite running;
}

.day__event-time {
  display: inline-block;
  width: 20%;
}
@media (min-width: 480px) {
  .day__event-time {
    padding-top: 4px;
  }
}
@media (min-width: 960px) {
  .day__event-time {
    padding-left: 10.4rem;
    padding-top: 2px;
    font-size: 1.55556rem;
    width: calc(350px + 1.3rem);
  }
}
@media (min-width: 1600px) {
  .day__event-time {
    width: calc(420px + 1.3rem);
  }
}

.day__event-title {
  font-weight: 600;
  margin-bottom: 0;
  display: inline-block;
  width: 80%;
}
@media (min-width: 480px) {
  .day__event-title {
    font-size: 1.22222rem;
  }
}
@media (min-width: 960px) {
  .day__event-title {
    font-size: 1.77778rem;
    width: calc(100% - 350px - 1.3rem);
  }
}
@media (min-width: 1600px) {
  .day__event-title {
    width: calc(100% - 420px - 1.3rem);
  }
}

.day__event-info {
  will-change: max-height;
  transition: max-height 0.3s ease-in;
  overflow: hidden;
}
@media (min-width: 960px) {
  .day__event-info {
    padding-left: calc(350px + 1.3rem);
  }
}
@media (min-width: 1600px) {
  .day__event-info {
    padding-left: calc(420px + 1.3rem);
  }
}
.day__event-info[aria-hidden='true'] {
  max-height: 0;
}
.day__event-info[aria-hidden='false'] {
  padding-top: 0.65rem;
  padding-bottom: 1.3rem;
  max-height: 200vh;
}
.day__event-info p {
  margin-bottom: 0.65rem;
}

@media (min-width: 640px) {
  .day__event-text {
    font-size: 1.22222rem;
  }
}

@media (min-width: 1100px) {
  .day__event-text {
    font-weight: 500;
    font-size: 1.55556rem;
  }
}

.day__event-text p,
.day__event-author p {
  margin-bottom: 0.325rem;
}

.day__event-author {
  font-size: 0.77778rem;
}
@media (min-width: 640px) {
  .day__event-author {
    padding-left: 20%;
  }
}
@media (min-width: 960px) {
  .day__event-author {
    padding-left: 0;
    font-size: 1rem;
  }
}

.day__event-live {
  color: #fff;
  background-color: rgb(81, 42, 222);
  padding-right: 0.325rem;
  padding-left: 0.325rem;
  display: inline-block;
}

.day__event-additional {
  font-size: 1rem;
}

.day__content {
  margin-top: 1.3rem;
  font-size: 1.22222rem;
}
.day__content p {
  margin-bottom: 0.65rem;
}
@media (min-width: 960px) {
  .day__content {
    padding-left: 10.4rem;
  }
}

/*!
 * baguetteBox.js
 * @author  feimosi
 * @version %%INJECT_VERSION%%
 * @url https://github.com/feimosi/baguetteBox.js
 */
#baguetteBox-overlay {
  display: none;
  opacity: 0;
  position: fixed;
  overflow: hidden;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000000;
  background-color: #222;
  background-color: rgba(0, 0, 0, 0.8);
  transition: opacity 0.5s ease;
}
#baguetteBox-overlay.visible {
  opacity: 1;
}
#baguetteBox-overlay .full-image {
  display: inline-block;
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
}
#baguetteBox-overlay .full-image figure {
  display: inline;
  margin: 0;
  height: 100%;
}
#baguetteBox-overlay .full-image img {
  display: inline-block;
  width: auto;
  height: auto;
  max-height: 100%;
  max-width: 100%;
  vertical-align: middle;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
}
#baguetteBox-overlay .full-image figcaption {
  display: block;
  position: absolute;
  bottom: 0;
  width: 100%;
  text-align: center;
  line-height: 1.8;
  white-space: normal;
  color: #ccc;
  background-color: #000;
  background-color: rgba(0, 0, 0, 0.6);
  font-family: sans-serif;
}
#baguetteBox-overlay .full-image:before {
  content: '';
  display: inline-block;
  height: 50%;
  width: 1px;
  margin-right: -1px;
}

#baguetteBox-slider {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  white-space: nowrap;
  transition: left 0.4s ease, transform 0.4s ease;
}
#baguetteBox-slider.bounce-from-right {
  animation: bounceFromRight 0.4s ease-out;
}
#baguetteBox-slider.bounce-from-left {
  animation: bounceFromLeft 0.4s ease-out;
}

@keyframes bounceFromRight {
  0% {
    margin-left: 0;
  }
  50% {
    margin-left: -30px;
  }
  100% {
    margin-left: 0;
  }
}

@keyframes bounceFromLeft {
  0% {
    margin-left: 0;
  }
  50% {
    margin-left: 30px;
  }
  100% {
    margin-left: 0;
  }
}

.baguetteBox-button#next-button,
.baguetteBox-button#previous-button {
  top: 50%;
  top: calc(50% - 30px);
  width: 44px;
  height: 60px;
}

.baguetteBox-button {
  position: absolute;
  cursor: pointer;
  outline: none;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 15%;
  background-color: #323232;
  background-color: rgba(50, 50, 50, 0.5);
  color: #ddd;
  font: 1.6em sans-serif;
  transition: background-color 0.4s ease;
}
.baguetteBox-button:focus,
.baguetteBox-button:hover {
  background-color: rgba(50, 50, 50, 0.9);
}
.baguetteBox-button#next-button {
  right: 2%;
}
.baguetteBox-button#previous-button {
  left: 2%;
}
.baguetteBox-button#close-button {
  top: 20px;
  right: 2%;
  right: calc(2% + 6px);
  width: 30px;
  height: 30px;
}
.baguetteBox-button svg {
  position: absolute;
  left: 0;
  top: 0;
}

/*
    Preloader
    Borrowed from http://tobiasahlin.com/spinkit/
*/
.baguetteBox-spinner {
  width: 40px;
  height: 40px;
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -20px;
  margin-left: -20px;
}

.baguetteBox-double-bounce1,
.baguetteBox-double-bounce2 {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #fff;
  opacity: 0.6;
  position: absolute;
  top: 0;
  left: 0;
  animation: bounce 2s infinite ease-in-out;
}

.baguetteBox-double-bounce2 {
  animation-delay: -1s;
}

@keyframes bounce {
  0%,
  100% {
    transform: scale(0);
  }
  50% {
    transform: scale(1);
  }
}

.gallery {
  margin-bottom: 1.3rem;
  display: flex;
  flex-wrap: wrap;
}
.gallery__link {
  padding: 0.325rem;
  width: 50%;
  text-decoration: none;
}

.intro {
  position: relative;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0;
  width: 90vw;
}
/* @media (min-width: 720px) {
    .intro {
      padding-top: 5vh;
      padding-bottom: 5vh; } } */

.intro__image {
  /* margin-top: 0.2rem;
  margin-bottom: -2rem; */
  width: 90vw;
}
@media (min-width: 720px) {
  .intro__image {
    width: 90%;
    max-width: calc(1600px - 7.8rem);
  }
}

.intro__headline {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
}
.intro__headline.focusable:active,
.intro__headline.focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}

.news {
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
  padding-bottom: 0.65rem;
  margin-bottom: 1.3rem;
}
@media (min-width: 640px) {
  .news {
    margin-left: auto;
    margin-right: auto;
    max-width: 860px;
  }
}
@media (min-width: 960px) {
  .news {
    margin-left: auto;
    margin-right: auto;
    max-width: 1140px;
  }
}

@media (min-width: 640px) {
  .news__article {
    display: flex;
  }
}

.news__article:last-child p {
  margin-bottom: 0;
}

@media (min-width: 640px) {
  .news__datetime {
    font-size: 1.55556rem;
    width: 20%;
  }
}

@media (min-width: 640px) {
  .news__content {
    width: 80%;
  }
}

@media (min-width: 720px) {
  .news__content {
    font-size: 1.22222rem;
  }
}

.news__date {
  margin-right: 1.3rem;
  display: inline-block;
}
@media (min-width: 640px) {
  .news__date {
    display: block;
  }
}

.news__headline {
  font-size: 1.22222rem;
  margin-bottom: 0;
}
@media (min-width: 720px) {
  .news__headline {
    font-size: 1.55556rem;
  }
}

.news__text a {
  text-decoration: underline;
}

.partner__headline {
  font-size: 1.22222rem;
  color: #000;
  font-weight: 600;
}

.partner__logo:not(.partner__logo--last) {
  position: relative;
  display: block;
  text-align: center;
  float: left;
  width: 47%;
  margin: 0 3% 3% 0;
}
@media (min-width: 480px) {
  .partner__logo:not(.partner__logo--last) {
    width: 30%;
  }
}
.partner__logo:not(.partner__logo--last)::before {
  position: relative;
  display: block;
  content: '';
  padding-top: 63.52941%;
}
@media (min-width: 480px) {
  .partner__logo:not(.partner__logo--last)::before {
    padding-top: 63.52941%;
  }
}

.partner__logo-inner {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.partner__images {
  overflow: hidden;
}

.partner__image {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-height: 100%;
  max-width: 100%;
}

.program {
  position: relative;
  display: block;
}

.program__header {
  margin-top: 1.3rem;
  margin-bottom: 1.3rem;
}

.program__list {
  padding-right: 0.65rem;
  padding-left: 0.65rem;
  margin-top: 1.3rem;
  margin-bottom: 1.3rem;
  z-index: 10;
  display: flex;
  position: relative;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin: 0;
  list-style: none;
}
@media (min-width: 720px) {
  .program__list {
    padding-top: 1.3rem;
    padding-bottom: 1.3rem;
    padding-right: 0;
    padding-left: 0;
  }
}

.program__tab {
  margin-bottom: 0.65rem;
  display: block;
  width: 20%;
}
@media (min-width: 960px) {
  .program__tab {
    width: auto;
  }
}

.program__link {
  display: flex;
  flex-direction: column;
  text-align: center;
  line-height: 1;
}
.program__link:hover,
.program__link:active,
.program__link:focus {
  color: rgb(81, 42, 222);
  text-decoration: none;
}
[aria-selected='true'] .program__link {
  color: rgb(81, 42, 222);
}

.program__day-shortcode {
  font-size: 1.55556rem;
  font-family: sans-serif;
  font-weight: 500;
  font-style: normal;
  line-height: 1;
}
.fonts-loaded .program__day-shortcode {
  font-family: Poppins, sans-serif;
}
@media (min-width: 640px) {
  .program__day-shortcode {
    font-size: 1.77778rem;
  }
}
@media (min-width: 720px) {
  .program__day-shortcode {
    font-size: 4rem;
  }
}

.program__day-date {
  font-size: 0.77778rem;
}
@media (min-width: 640px) {
  .program__day-date {
    font-size: 1rem;
  }
}
@media (min-width: 720px) {
  .program__day-date {
    font-size: 1.55556rem;
  }
}

.program__panel {
  will-change: transform, opacity;
  transition: transform 0.3s ease-in, opacity 0.3s ease-in;
}
.program__panel[aria-hidden='false'] {
  transform: translateX(0);
}
.program__panel[aria-hidden='true'] {
  transform: translateX(110%);
  height: 0;
  overflow: hidden;
}

.section {
  position: relative;
  display: block;
  padding-bottom: 2.6rem;
  z-index: 10;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

.section--intro {
  padding-bottom: 0;
}

.section--intro > .section__inner {
  padding: 0;
}

.section--meta,
.section--news {
  background-color: #fff;
  color: #000;
  padding-bottom: 0;
  margin-bottom: 2.6rem;
  border-top: 2px solid #000;
  border-bottom: 2px solid #000;
}
@media (min-width: 640px) {
  .section--news {
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
  }
}
.section__inner {
  position: relative;
  display: block;
  z-index: 1;
  padding-right: 0.65rem;
  padding-left: 0.65rem;
}
@media (min-width: 480px) {
  .section__inner {
    padding-right: 1.3rem;
    padding-left: 1.3rem;
  }
}
@media (min-width: 640px) {
  .section__inner {
    padding-right: 2.6rem;
    padding-left: 2.6rem;
  }
}
@media (min-width: 960px) {
  .section__inner {
    padding-right: 5.2rem;
    padding-left: 5.2rem;
  }
}
@media (min-width: 1600px) {
  .section__inner {
    padding-right: 7.8rem;
    padding-left: 7.8rem;
    margin-left: auto;
    margin-right: auto;
    max-width: calc(1600px + 7.8rem);
  }
}

.section__heading {
  color: rgb(81, 42, 222);
}
@media (min-width: 720px) {
  .section__heading {
    font-size: 1.77778rem;
    margin-left: -1.3rem;
  }
}
@media (min-width: 960px) {
  .section__heading {
    font-size: 4rem;
    font-weight: 500;
  }
}

.page {
  z-index: 1;
  position: relative;
  display: block;
  overflow-x: hidden;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ub3JtYWxpemUuY3NzL25vcm1hbGl6ZS5jc3MiLCJtYWluLmNzcyIsIjQtcmVzZXQvZm9udHMuc2NzcyIsIi4uLy4uLzEtY29uZmlnL3NoYXJlZC5qc29uIiwiNC1yZXNldC9mb3Jtcy5zY3NzIiwiMi10b29scy9zcGFjaW5nLnNjc3MiLCIyLXRvb2xzL3V0aWxpdGllcy5zY3NzIiwiMi10b29scy9mb250cy5zY3NzIiwiNC1yZXNldC9oZWFkaW5ncy5zY3NzIiwiNC1yZXNldC9saW5rcy5zY3NzIiwiMi10b29scy9hdHRlbnRpb24uc2NzcyIsIjQtcmVzZXQvbGlzdHMuc2NzcyIsIjQtcmVzZXQvbWVkaWEuc2NzcyIsIjQtcmVzZXQvcm9vdC5zY3NzIiwiMi10b29scy9jb2xvcnMuc2NzcyIsIjEtY29uZmlnL2NvbG9ycy5zY3NzIiwiMS1jb25maWcvYmFzZS11bml0cy5zY3NzIiwiMi10b29scy9tZWRpYXF1ZXJ5LnNjc3MiLCI0LXJlc2V0L3RhYmxlcy5zY3NzIiwiNC1yZXNldC90ZXh0LnNjc3MiLCIuLi9wYXR0ZXJucy8xLWJhc2ljcy9pY29uL2ljb24uc2NzcyIsIi4uL3BhdHRlcm5zLzEtYmFzaWNzL2ltYWdlL2ltYWdlLnNjc3MiLCIuLi9wYXR0ZXJucy8yLWdsb2JhbHMvYnVyZ2VyL2J1cmdlci5zY3NzIiwiMi10b29scy9ibG9jay5zY3NzIiwiMi10b29scy9wb3NpdGlvbi5zY3NzIiwiMi10b29scy9hbmltYXRpb24uc2NzcyIsIjItdG9vbHMvei1pbmRleC5zY3NzIiwiMi10b29scy9jZW50ZXIuc2NzcyIsIi4uL3BhdHRlcm5zLzItZ2xvYmFscy9uYXYvbmF2LnNjc3MiLCIyLXRvb2xzL2hpZGRlbi5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL2JhY2tncm91bmQvYmFja2dyb3VuZC5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL2RheS9kYXkuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9iYWd1ZXR0ZWJveC5qcy9zcmMvYmFndWV0dGVCb3guc2NzcyIsIi4uL3BhdHRlcm5zLzMtY29tcG9uZW50cy9nYWxsZXJ5L2dhbGxlcnkuc2NzcyIsIi4uL3BhdHRlcm5zLzMtY29tcG9uZW50cy9pbnRyby9pbnRyby5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL25ld3MvbmV3cy5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL3BhcnRuZXIvcGFydG5lci5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL3Byb2dyYW0vcHJvZ3JhbS5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL3NlY3Rpb24tc3RhcnQvc2VjdGlvbi1zdGFydC5zY3NzIiwiLi4vcGF0dGVybnMvNC10ZW1wbGF0ZXMvcGFnZS9wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNEVBQTRFO0FBRTVFO2dGQUNnRjtBQUVoRjs7O0dBR0c7QUFFSDtFQUNFLGtCQUFpQjtFQUFFLE9BQU87RUFDMUIsK0JBQThCO0VBQUUsT0FBTyxFQUN4Qzs7QUFFRDtnRkFDZ0Y7QUFFaEY7O0dBRUc7QUFFSDtFQUNFLFVBQVMsRUFDVjs7QUFFRDs7R0FFRztBQUVIO0VBQ0UsZUFBYyxFQUNmOztBQUVEOzs7R0FHRztBQUVIO0VBQ0UsZUFBYztFQUNkLGlCQUFnQixFQUNqQjs7QUFFRDtnRkFDZ0Y7QUFFaEY7OztHQUdHO0FBRUg7RUFDRSx3QkFBdUI7RUFBRSxPQUFPO0VBQ2hDLFVBQVM7RUFBRSxPQUFPO0VBQ2xCLGtCQUFpQjtFQUFFLE9BQU8sRUFDM0I7O0FBRUQ7OztHQUdHO0FBRUg7RUFDRSxrQ0FBaUM7RUFBRSxPQUFPO0VBQzFDLGVBQWM7RUFBRSxPQUFPLEVBQ3hCOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0UsOEJBQTZCLEVBQzlCOztBQUVEOzs7R0FHRztBQUVIO0VB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QixtQkFBa0I7RUFDbEIsK0JBQThCO0VBQzlCLGlCQUFnQjtFQUNoQix5QkFBZ0I7S0FBaEIsc0JBQWdCO1VBQWhCLGlCQUFnQixFQUNqQjs7QUoyT0Q7RUl2T0UsaUJBQWdCO0VBQ2hCLG9CQUFtQixFQUNwQjs7QUFFRDtFQUNFLG1CQUFrQjtFQUNsQixlQUFjLEVBQ2Y7O0FKZ01EO0VLeE1RLFVDSEs7RURhTCxzQkNMeUI7RUZRL0IsV0FBVTtFQUNWLFVBQVMsRUFDVjs7QUFJRDtFQUNFLHNCQUFxQixFQUt0QjtFQU5EO0lBSUksZ0JBQWUsRUFDaEI7O0FINlRIO0VHeFRFLDBCQUFpQjtNQUFqQixzQkFBaUI7VUFBakIsa0JBQWlCLEVBQ2xCOztBSDBURDtFR3ZURSxvQkFBbUIsRUFDcEI7O0FKdkJEO0VPeEJFLGdCREh5RCxFRVYxRDs7QUFFRDtFRFdFLHNCREh5RCxFRU4xRDs7QUFFRDtFRE9FLHNCREh5RCxFRUYxRDs7QUFFRDtFREdFLHNCREh5RCxFRUUxRDs7QUFFRDtFRERFLGdCREh5RCxFRU0xRDs7QUFFRDtFRExFLHNCREh5RCxFRVUxRDs7QUFFRDs7Ozs7O0VISVEsVUNISztFRGFMLHNCQ0x5QjtFQzRCL0IsaUJKNUQrSyxFSytCaEw7O0FSMkNEO0VTMUVFLHNCQUFxQjtFQUNyQixlQUFjLEVBS2Y7RUNMQztJREdFLHNCQUFxQixFQ0N0Qjs7QUNOSDs7O0VONEJRLFVDSEs7RURhTCxzQkNMeUI7RUQ0QnpCLFdDcENLO0VEOENMLHFCQ3RDeUIsRUt4QmhDO0VBVEQ7Ozs7Ozs7Ozs7Ozs7SU5zQ1EsaUJDYkssRUtqQlY7O0FBSUg7Ozs7RU5pRFEsV0NwQ0s7RUtSVCxpQkFBZ0IsRUFDakI7O0FDaEJIOzs7Ozs7RUFNRSx1QkFBc0IsRUFDdkI7O0FBR0Q7Ozs7RUFJRSxnQkFBZTtFQUNmLGFBQVksRUFDYjs7QUFFRDtFUFFRLFVDSEs7RURhTCxzQkNMeUIsRU1YaEM7O0FDdEJEO0VDZUUsWUNYZ0I7RURlaEIsdUJDZGdCO0VGRmhCLHVCQUFzQjtFQUN0QixnQkdIbUI7RUhJbkIsNkJBQW9CO1VBQXBCLHFCQUFvQjtFQUNwQixvREFBbUQ7RUFDbkQsc0RBQXFEO0VBQ3JELGlCR05vQjtFSE9wQiwrQkFBc0I7TUFBdEIsMkJBQXNCO1VBQXRCLHVCQUFzQixFQVN2QjtFSWVLO0lKakNOO01BWUksa0JBQWdDLEVBTW5DLEVBQUE7RUllSztJSmpDTjtNQWdCSSxrQkFBZ0MsRUFFbkMsRUFBQTs7QUFFRDtFQUlJLG9CQUFtQixFQUNwQjs7QWJISDtFT2lCSSx3Qkp0Q21EO0VJNERyRCxpQko1RGlFO0VJMkVqRSxtQkozRStFO0VXa0IvRSx1QkNkZ0IsRUZzQ2pCO0VORkc7SUFDRSxpQ0p6Q2lELEVJMENsRDtFVXJDRDtJSnVCSjtNQU9NLGNBQWEsRUFDZDtJQVJMO01BV00sNERBQTJELEVBQzVELEVBQUE7O0FBS0w7RUMzQkUsMEJDWjBCO0VEUTFCLFlDVmdCO0VGNENoQixrQkFBaUIsRUFDbEI7O0FLakREO0ViMkJRLFVDSEs7RURhTCxzQkNMeUI7RVk5Qi9CLFlBQVc7RUFDWCwwQkFBeUIsRUFDMUI7O0FBR0Q7O0VBRUUsV0FBVTtFQUNWLG9CQUFtQixFQUNwQjs7QUFHRDtFQUNFLGlCQUFnQixFQUNqQjs7QWxCbUNEO0VLbkJRLG1CYzlCZ0I7RWQrQmhCLGtCYy9CZ0I7RWRtQ2hCLHNCQ0x5QjtFREt6QixjQ2JLO0VhckJYLGVBQWM7RUFDZCxXQUFVO0VBQ1YsVUFBUztFQUNULHNDQUFxQyxFQUN0Qzs7QUFFRDs7RWRrQlEsVUNISztFRGFMLHNCQ0x5QixFYXBCaEM7O0FuQitHRDs7RW1CM0dFLG1CQUFrQjtFQUNsQix5QkFBd0I7RUFDeEIsZUFBYztFQUNkLGVBQWMsRUFDZjs7QW5CK0dEO0VtQjVHRSxnQkFBZSxFQUNoQjs7QW5CK0dEO0VtQjVHRSxZQUFXLEVBQ1o7O0FDekJEO0VBQ0UsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxzQkFBcUI7RUFDckIsV0FBVTtFQUNWLFlBQVc7RUFDWCxtQkFBa0IsRUFDbkI7O0FDWEQ7RUFDRSxVQUFTLEVBQ1Y7O0FDR0Q7RUNIRSxtQkFBa0I7RUFDbEIsZUFBYztFQ0VkLGdCQXdDdUI7RUFYakIsZ0JsQkR5QjtFa0JDekIsY2xCRHlCO0VRZC9CLDBCQ1owQjtFVWUxQixpQkFBYTtFQUNiLDZCQUFZO0VDQVosWUFWUztFSkZULFlBQVc7RUFDWCxhQUFZO0VBQ1osV0FBVTtFQUNWLFVBQVM7RUFDVCxVQUFTO0VBQ1QsV0FBVTtFQUNWLG9CQUFtQixFQWdCcEI7RVovQkM7SUlpQkEsMEJDWjBCLEVMRHpCO0VPMkJHO0lLNUJOO01BbUJJLGFBQVk7TUFDWixhQUFxQjtNQUNyQixZQUFXO01BQ1gsYUFBWSxFQU1mLEVBQUE7RUxBSztJSzVCTjtNQTBCSSxZTnZCd0IsRU15QjNCLEVBQUE7O0FBRUQ7RUU5QkUsbUJBb0MwQjtFQVBwQixTR3pCbUI7RUh5Qm5CLFVHekIwQjtFQUM5QixpQ0FBZ0M7RUwyQmxDLGVBQWM7RUFDZCxZQXRDaUI7RUF1Q2pCLGFBdENrQjtFQXVDbEIsd0JBQXVCO0VBQ3ZCLGlCQUFnQjtFQUNoQixXQUFVO0VBQ1YsVUFBUztFQUNULFVBQVM7RUFDVCxXQUFVLEVBS1g7RUFIQztJQUNFLGlCQUFnQixFQUNqQjs7QUFHSDtFUmpDRSx1QkNkZ0I7RVVpQmhCLDZDQUFhO0VBQ2IsZ0dBQVk7RUhnQ1osZUFBYztFQUNkLFlBeERpQjtFQXlEakIsWUFBVztFQUNYLG1CQUFrQjtFQUNsQixnQ0FBK0IsRUFhaEM7RUFwQkQ7SUUvQ0UsbUJBb0MwQjtJQWhDdEIsT0FBTTtJQUNOLFFBQU8sRUZxRFY7RUFYSDtJRS9DRSxtQkFvQzBCO0lBUHBCLFNHNUJtQjtJQUN2Qiw0QkFBMkIsRUw0RDVCO0VBZkg7SUUvQ0UsbUJBb0MwQjtJQVBwQixVbEJUSztJa0JTTCxRbEJUSyxFZ0I4Q1Y7O0FBSUg7RUFDRSw2QkFBa0MsRUFnQ25DO0VMM0VLO0lLMENOO01BSUksNkJBQWtDLEVBNkJyQyxFQUFBO0VMM0VLO0lLMENOO01BUUksNkJBQWtDLEVBeUJyQyxFQUFBO0VMM0VLO0lLMENOO01BWUksNkJBQWtDLEVBcUJyQyxFQUFBO0VBakNEO0lBZ0JJLFlBekZrQjtJQTBGbEIsVUFBMEMsRUFlM0M7SUFoQ0g7TUFvQk0seUJBQW1DO01BQ25DLDJCQUEwQixFQUMzQjtJQXRCTDtNQXlCTSxXQUFVLEVBQ1g7SUExQkw7TUE2Qk0sMEJBQXFDO01BQ3JDLDhCQUE2QixFQUM5Qjs7QU0xR0w7RUpLRSxnQkF3Q3VCO0VBWGpCLE9sQlRLO0VrQlNMLFVsQlRLO0VrQlNMLFNsQlRLO0VRTlgsMEJDWjBCO0VEUTFCLFlDVmdCO0VXa0JoQixZQVhTO0VEVVQsZ0NBQWE7RUFDYix5REFBWTtFcEJzQ04saUJDNUJ5QjtFc0IxQi9CLGFBQVk7RUFDWiw0QkFBMkIsRUFjNUI7RVhXSztJV2pDTjtNdkJzRE0sZ0JXbEQ4QjtNWVFoQyxhQUFZLEVBVWYsRUFBQTtFWFdLO0lXakNOO01BZ0JJLGFBQVksRUFNZixFQUFBO0VYV0s7SVdqQ047TUFvQkksYUFBWSxFQUVmLEVBQUE7O0FBRUQ7RUFDRSx5QkFBd0IsRUFDekI7O0FBRUQ7RXJCYkUsc0JESHlEO0VDaUR6RCxpQko1RCtLLEV5QnNDaEw7RVhOSztJV0xOO01yQmJFLGdCREh5RCxFc0IyQjFELEVBQUE7RVhOSztJV0xOO01yQmJFLHNCREh5RCxFc0IyQjFELEVBQUE7O0FBRUQ7RUN2Q0UsbUJBQWtCO0VBQ2xCLFdBQVU7RUFDVixZQUFXO0VBQ1gsYUFBWTtFQUNaLFdBQVU7RUFDVixVQUFTO0VBQ1QsaUJBQWdCO0VBQ2hCLG9CQUFtQixFRGtDcEI7RUMvQkc7SUFFRSxpQkFBZ0I7SUFDaEIsWUFBVztJQUNYLGFBQVk7SUFDWixVQUFTO0lBQ1Qsa0JBQWlCO0lBQ2pCLFdBQVUsRUFDWDs7QUR5Qkw7RWQ5QkUsWUNWZ0I7RVJrQ2Qsd0JKdENpSztFSTREbkssaUJKNUQrSztFSTJFL0ssbUJKM0U2TDtFSWM3TCxzQkRIeUQsRXNCaUQxRDtFckJwQkc7SUFDRSxpQ0p6QytKLEVJMENoSztFR3pDSDtJSWFBLGVDUjBCLEVMRHpCO0VPMkJHO0lXWU47TXJCOUJFLHNCREh5RCxFc0JpRDFELEVBQUE7RUFIQztJckIzQ0EsZ0JESHlELEVzQmdEeEQ7O0FBR0g7RXZCakNRLG1CQ0d5QjtFREZ6QixzQkNFeUIsRXNCZ0NoQzs7QUFFRDtFZHBERSxZQ1ZnQjtFVmlDVixzQkNMeUI7RXNCcUMvQixzQkFBcUIsRUFNdEI7RWxCMUVDO0lJYUEsZUNSMEI7SWFtRXhCLHNCQUFxQixFbEJwRXRCOztBa0J3RUg7RUFDRSxhQUFZO0VBQ1osY0FBYSxFQUNkOztBRWpGRDtFTktFLG1CQW9DMEI7RUFwQnBCLE9sQklLO0VrQkhMLFNsQkdLO0VrQkZMLFVsQkVLO0VrQkRMLFFsQkNLO0VvQkZYLFdBUlU7RUlaVixnQkFBZTtFQUNmLGNBQWE7RUFDYix3QkFBdUI7RUFDdkIsb0JBQW1CO0VBQ25CLHNCQUFxQjtFQUNyQixhQUFZLEVBQ2I7O0FBRUQ7O0VBRUUsYUFBWTtFQUNaLGNBQWE7RUFDYixvQkFBbUI7RUFDbkIseUJBQXdCLEVBTXpCO0ViV0s7SWF0Qk47O01BUUksYUFBWTtNQUNaLGNBQWEsRUFFaEIsRUFBQTs7QUFFRDtFRENFLGNBQWE7RUFDYixtQkFBa0IsRUNJbkI7RWJHSztJYVROO01ETUUsZUFBUztNQUNULG9CQUFtQixFQ0RwQixFQUFBOztBQUVEO0VBQ0UsZ0JBQWU7RUFDZixpQkFBZ0IsRUFLakI7RWJOSztJYUROO01EUEUsY0FBYTtNQUNiLG1CQUFrQixFQ2FuQixFQUFBOztBQ3ZDRDtFUkVFLG1CQUFrQjtFQUNsQixlQUFjLEVRR2Y7RWQyQks7SWNqQ047TXhCZUUsc0JESHlELEV5Qk4xRCxFQUFBOztBQUVEOzs7Ozs7RWpCT0UsZUNSMEIsRWdCT3pCOztBQU5IOzs7O0V4QnFERSxpQko1RDhSLEU0QmtCN1I7O0FBWEg7O0VqQk9FLGVDUjBCLEVnQm9CekI7RXJCekJEOzs7O0lJYUEsWUNYZ0IsRUxFZjs7QXFCd0JIO0V4QmZFLHNCREh5RCxFeUJ5QjFEO0VkSks7SWNITjtNeEJmRSxzQkRIeUQ7TUNpRHpELGlCSjVEaUUsRTRCb0NsRSxFQUFBOztBQUVEO0UxQmxCTSxzQldqQjhCLEVlcUNuQzs7QWRSSztFY1VOOztJMUI0QlEsa0IwQnpCa0IsRUFFekIsRUFBQTs7QUM3Q0Q7RUFDRTtJbEJXQSxlQ1IwQixFQUFBO0VpQkYxQjtJbEJVQSxZQ1hnQixFQUFBO0VpQkVoQjtJbEJTQSxZQ1hnQixFQUFBO0VpQkdoQjtJbEJRQSxlQ1IwQixFQUFBLEVBQUE7O0FpQkc1QjtFVFJFLG1CQUFrQjtFQUNsQixlQUFjLEVTU2Y7O0FBRUQ7RXpCQ0Usc0JESHlEO0VEa0JuRCxtQkNHeUI7RURGekIsc0JDRXlCO0UwQmhCL0IsaUJBQWdCO0VBQ2hCLHdCQUF1QjtFQUN2QixzQkFBcUIsRUFpQnRCO0VBdEJEO0lSVEUsbUJBNEMwQjtJQWZwQixjUVp1QjtJQUMzQixzQkFBcUI7SUFDckIsbUJBQWtCO0lBQ2xCLDRCQUEyQixFQUM1QjtFZk9HO0llbkJOO01BZUksZUFBYztNQUNkLGFBOUIwQixFQW9DN0IsRUFBQTtFZkhLO0llbkJOO01Bb0JJLGFBakNnQyxFQW1DbkMsRUFBQTs7QUFFRDtFM0JBUSx1QkNMeUI7RURLekIsb0JDTHlCLEUwQmtCaEM7RWZsQks7SWVLTjtNQUdJLG1DQUE4RCxFQVVqRTtNQWJEO1EzQkFRLHFCQ0x5QixFMEJZNUIsRUFBQTtFZlpDO0llS047TUFXSSxtQ0FBb0UsRUFFdkUsRUFBQTs7QUFFRDtFbEJ0Q0UsZUNSMEI7RVJzRDFCLGlCSjVEOFI7RUVxQ3hSLGlCQ2JLO0UwQmdDWCxpQkFBZ0I7RUFDaEIsc0JBQWE7TUFBYixrQkFBYTtVQUFiLGNBQWEsRUFLZDtFZjlCSztJZW9CTjtNekJ0Q0Usc0JESHlELEUwQm1EMUQsRUFBQTs7QUFFRDtFekJKRSxpQko1RGlFO0VJY2pFLGdCREh5RDtFRDBCbkQsaUJDYkssRTBCZ0RaO0VmeENLO0llZ0NOO016QmxERSxzQkRIeUQsRTBCNkQxRCxFQUFBOztBQUVEO0UzQnJDUSx3QkNMeUIsRTBCNENoQzs7QUFFRDtFM0JiUSxpQkN6Q0s7RUQwQ0wsZ0JDMUNLO0VEc0NMLHFCQzlCeUI7RUQrQnpCLHdCQy9CeUI7RTBCZ0QvQixjQUFhO0VBQ2IsWUFBVztFQUNYLGdCQUFlO0VBQ2YsVUFBUztFQUNULFdBQVU7RUFDVixVQUFTO0VBQ1Qsd0JBQXVCO0VBQ3ZCLGlCQUFnQixFQUtqQjtFdEIzRkM7SXNCeUZFLGlFQUFnRSxFdEJyRmpFOztBc0J5Rkg7RUFDRSxzQkFBcUI7RUFDckIsV0FBVSxFQWVYO0VmL0VLO0llOEROO00zQnhCUSxpQjJCNkJrQixFQVl6QixFQUFBO0VmL0VLO0llOEROO00zQnhCUSxzQkN0Q3lCO01Ec0N6QixpQjJCaUN1QjtNekJ6RjdCLHNCREh5RDtNMEI4RnZELDRCQUF1RCxFQU0xRCxFQUFBO0VmL0VLO0llOEROO01BZUksNEJBQTZELEVBRWhFLEVBQUE7O0FBRUQ7RXpCckRFLGlCSjVEOFI7RUVxQ3hSLGlCQ2JLO0UwQjRGWCxzQkFBcUI7RUFDckIsV0FBVSxFQWNYO0VmbkdLO0llaUZOO016Qm5HRSxzQkRIeUQsRTBCd0gxRCxFQUFBO0VmbkdLO0llaUZOO016Qm5HRSxzQkRIeUQ7TTBCa0h2RCxtQ0FBOEQsRUFNakUsRUFBQTtFZm5HSztJZWlGTjtNQWdCSSxtQ0FBb0UsRUFFdkUsRUFBQTs7QUFFRDtFUGhIRSx3QkFBYTtFQUNiLG9DQUFZO0VPaUhaLGlCQUFnQixFQXNCakI7RWY3SEs7SWVxR047TUFLSSxtQ0FBOEQsRUFtQmpFLEVBQUE7RWY3SEs7SWVxR047TUFTSSxtQ0FBb0UsRUFldkUsRUFBQTtFQXhCRDtJQWFJLGNBQWEsRUFDZDtFQWRIO0kzQi9EUSxxQkN0Q3lCO0lEc0N6Qix1QkN0Q3lCO0kwQnVIN0Isa0JBQWlCLEVBQ2xCO0VBbkJIO0kzQmhHUSx1QkNMeUIsRTBCNEg5Qjs7QWY1SEc7RWUrSE47SXpCakpFLHNCREh5RCxFMEI2SjFELEVBQUE7O0FmeElLO0VlK0hOO0l6Qm5HRSxpQko1RCtLO0lJYy9LLHNCREh5RCxFMEI2SjFELEVBQUE7O0FBRUQ7O0UzQnJJUSx3QkNMeUIsRTBCOEk5Qjs7QUFHSDtFekJuS0Usc0JESHlELEUwQmlMMUQ7RWY1Sks7SWVpSk47TTNCM0dRLGtCMkIrR2tCLEVBT3pCLEVBQUE7RWY1Sks7SWVpSk47TTNC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O0VyQlVLO0lxQnpCTjtNakN1RFEsb0JDOUJ5QjtNRCtCekIsdUJDL0J5QjtNRGlDekIsaUJDekNLO01EMENMLGdCQzFDSyxFZ0NGWixFQUFBOztBQUVEO0VqQ2FRLHVCQ0x5QjtFZ0NOL0IsZUFBYztFQUNkLFdBQVUsRUFLWDtFckJBSztJcUJSTjtNQU1JLFlBQVcsRUFFZCxFQUFBOztBQUVEO0VBQ0UsY0FBYTtFQUNiLHVCQUFzQjtFQUN0QixtQkFBa0I7RUFDbEIsZUFBYyxFQVVmO0U1Qi9DQztJSWFBLGVDUjBCO0l1Qm9DeEIsc0JBQXFCLEU1QnJDdEI7RVQ4eUNEO0lhcnlDQSxlQ1IwQixFdUJ5Q3pCOztBQUlIO0UvQnJDRSxzQkRIeUQ7RUMyQnZELHdCSnRDaUs7RUk0RG5LLGlCSjVEK0s7RUkyRS9LLG1CSjNFNkw7RW1Dc0Q3TCxlQUFjLEVBU2Y7RS9CdkJHO0lBQ0UsaUNKekMrSixFSTBDaEs7RVVWQztJcUJtQk47TS9CckNFLHNCREh5RCxFZ0NvRDFELEVBQUE7RXJCL0JLO0lxQm1CTjtNL0JyQ0UsZ0JESHlELEVnQ29EMUQsRUFBQTs7QUFFRDtFL0JuREUsc0JESHlELEVnQ2dFMUQ7RXJCM0NLO0lxQmlDTjtNL0JuREUsZ0JESHlELEVnQ2dFMUQsRUFBQTtFckIzQ0s7SXFCaUNOO00vQm5ERSxzQkRIeUQsRWdDZ0UxRCxFQUFBOztBQUVEO0VieERFLGdDQUFhO0VBQ2IseURBQVksRWFtRWI7RUFaRDtJQUlJLHlCQUF3QixFQUN6QjtFQUxIO0lBUUksNEJBQTJCO0lBQzNCLFVBQVM7SUFDVCxpQkFBZ0IsRUFDakI7O0FDekZIO0VoQkVFLG1CQUFrQjtFQUNsQixlQUFjO0VsQm9FUix1QkN0Q3lCO0VvQlYvQixZQVZTO0VhVFQsNkJBQTRCO0VBQzVCLHlCQUF3QjtFQUN4Qiw0QkFBMkIsRUFDNUI7O0FBRUQ7RWxDOERRLHNCQ3RDeUIsRWlDbEJoQztFdEJrQks7SXNCeEJOO01sQzhEUSx3QkN0Q3lCLEVpQ2xCaEMsRUFBQTs7QUFFRDtFekJFRSx1QkNkZ0I7RURVaEIsWUNYZ0I7RVZtRVYsa0JDOUNLO0VEYUwsc0JDTHlCO0VES3pCLHFCQ0x5QjtFaUNYL0IsMkJ4QmxCZ0I7RXdCbUJoQiw4QnhCbkJnQixFd0I0QmpCO0V0QkNLO0lzQmhCTjtNbEM4Q1EscUJDOUJ5QjtNRCtCekIsd0JDL0J5QixFaUNEaEMsRUFBQTtFdEJDSztJc0JoQk47TWxDcUJRLHFCQ0x5QixFaUNEaEMsRUFBQTs7QUFFRDtFaEJoQ0UsbUJBQWtCO0VBQ2xCLGVBQWM7RUdvQmQsV0FUTztFckJvREQsdUJDakN5QjtFRGtDekIsc0JDbEN5QixFaUN1QmhDO0V0QnZCSztJc0JDTjtNbENnQ1Esc0JDakN5QjtNRGtDekIscUJDbEN5QixFaUN1QmhDLEVBQUE7RXRCdkJLO0lzQkNOO01sQ2dDUSxzQkNqQ3lCO01Ea0N6QixxQkNsQ3lCLEVpQ3VCaEMsRUFBQTtFdEJ2Qks7SXNCQ047TWxDZ0NRLHNCQ2pDeUI7TURrQ3pCLHFCQ2xDeUIsRWlDdUJoQyxFQUFBO0V0QnZCSztJc0JDTjtNbENnQ1Esc0JDakN5QjtNRGtDekIscUJDbEN5QjtNcUJuQjdCLGtCQUFpQjtNQUNqQixtQkFBa0I7TVl1Q2xCLGlDQUEyQyxFQUU5QyxFQUFBOztBQUVEO0V6QjNDRSxlQ1IwQixFd0IrRDNCO0V0QnJDSztJc0J5Qk47TWhDM0NFLHNCREh5RDtNRDBCbkQscUJDTHlCLEVpQ3FDaEMsRUFBQTtFdEJyQ0s7SXNCeUJOO01oQzNDRSxnQkRIeUQ7TUNpRHpELGlCSjVEK0ssRW9DcUVoTCxFQUFBOztBQ3RFRDtFZHVCRSxXQVRPO0VIWlAsbUJBQWtCO0VBQ2xCLGVBQWM7RWlCQWQsbUJBQWtCLEVBQ25CIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqLyB9XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9wb3BwaW5zLXJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL3BvcHBpbnMtcmVndWxhci53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtZmFtaWx5OiBQb3BwaW5zO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9wb3BwaW5zLW1lZGl1bS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvcG9wcGlucy1tZWRpdW0ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LWZhbWlseTogUG9wcGlucztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7IH1cblxuQGZvbnQtZmFjZSB7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvcG9wcGlucy1zZW1pYm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvcG9wcGlucy1zZW1pYm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtZmFtaWx5OiBQb3BwaW5zO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDsgfVxuXG5bdHlwZT0ndGV4dCddLFxuW3R5cGU9J3RlbCddLFxuW3R5cGU9J2VtYWlsJ10sXG5bdHlwZT0nc2VhcmNoJ10sXG5bdHlwZT0nbnVtYmVyJ10sXG5bdHlwZT0ndXJsJ10sXG5bdHlwZT0ncGFzc3dvcmQnXSxcblt0eXBlPSdkYXRlJ10sXG50ZXh0YXJlYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7IH1cblxuYnV0dG9uLFxuW3R5cGU9J3N1Ym1pdCddIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7IH1cblxudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbnNlbGVjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuZmllbGRzZXQge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEuM3JlbTtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIGxhYmVsW2Zvcl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5bdW5zZWxlY3RhYmxlXSB7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbmgxIHtcbiAgZm9udC1zaXplOiA0cmVtOyB9XG5cbmgyIHtcbiAgZm9udC1zaXplOiAxLjc3Nzc4cmVtOyB9XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjU1NTU2cmVtOyB9XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjIyMjIycmVtOyB9XG5cbmg1IHtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG5cbmg2IHtcbiAgZm9udC1zaXplOiAwLjc3Nzc4cmVtOyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS4zcmVtO1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG4gIGE6aG92ZXIsIGE6YWN0aXZlLCBhOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxudWwsXG5kbCxcbm9sIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjNyZW07XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctbGVmdDogMS4zcmVtOyB9XG4gIHVsIHVsLFxuICBkbCB1bCxcbiAgb2wgdWwsIHVsXG4gIGRsLFxuICBkbFxuICBkbCxcbiAgb2xcbiAgZGwsIHVsXG4gIG9sLFxuICBkbFxuICBvbCxcbiAgb2xcbiAgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxubmF2IHVsLFxubmF2IG9sLFxuZmllbGRzZXQgdWwsXG5maWVsZHNldCBvbCB7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuYXVkaW8sXG5jYW52YXMsXG5pZnJhbWUsXG5pbWcsXG5zdmcsXG52aWRlbyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuYXVkaW8sXG5pZnJhbWUsXG5pbWcsXG52aWRlbyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS4zcmVtOyB9XG5cbjpyb290IHtcbiAgY29sb3I6ICMwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC1rZXJuaW5nOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IGNvbW1vbi1saWdhdHVyZXMgY29udGV4dHVhbDtcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAna2VybicsICdsaWdhJywgJ2NsaWcnLCAnY2FsdCc7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExMDBweCkge1xuICAgIDpyb290IHtcbiAgICAgIGZvbnQtc2l6ZTogMjEuNnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAgIDpyb290IHtcbiAgICAgIGZvbnQtc2l6ZTogMjUuMnB4OyB9IH1cblxuKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgLmZvbnRzLWxvYWRlZCBib2R5IHtcbiAgICBmb250LWZhbWlseTogUG9wcGlucywgc2Fucy1zZXJpZjsgfVxuICBAbWVkaWEgcHJpbnQge1xuICAgIGJvZHkgKiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgYm9keTo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1BsZWFzZSwgZG8gbm90IHdhc3RlIHBhcGVyIGJ5IHByaW50aW5nIHdlYnBhZ2VzLic7IH0gfVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMjYxMjY7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTsgfVxuXG50YWJsZSB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS4zcmVtO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgfVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuaHIge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAxLjNyZW07XG4gIG1hcmdpbi10b3A6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogOTAlO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7IH1cblxucHJlLFxucCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS4zcmVtOyB9XG5cbnN1YixcbnN1cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi5pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0wLjA2MjVlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgZmlsbDogY3VycmVudENvbG9yOyB9XG5cbi5pbWFnZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4uYnVyZ2VyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDEuOTVyZW07XG4gIHJpZ2h0OiAxLjNyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMjYxMjY7XG4gIHdpbGwtY2hhbmdlOiBhbGw7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW47XG4gIHotaW5kZXg6IDEwO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTsgfVxuICAuYnVyZ2VyOmhvdmVyLCAuYnVyZ2VyOmFjdGl2ZSwgLmJ1cmdlcjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyNjEyNjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAuYnVyZ2VyIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIHRvcDogMS45NXJlbTtcbiAgICAgIHdpZHRoOiA2NXB4O1xuICAgICAgaGVpZ2h0OiA2NXB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAgIC5idXJnZXIge1xuICAgICAgdG9wOiAyLjZyZW07IH0gfVxuXG4uYnVyZ2VyX19pbm5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7IH1cbiAgLmJ1cmdlclthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLmJ1cmdlcl9faW5uZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAycHg7IH1cblxuLmJ1cmdlcl9fbGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHksIGxlZnQsIHdpZHRoO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLWluLCBvcGFjaXR5IDAuM3MgZWFzZS1pbiwgbGVmdCAwLjNzIGVhc2UtaW4sIHdpZHRoIDAuM3MgZWFzZS1pbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5idXJnZXJfX2xpbmU6bnRoLW9mLXR5cGUoMSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDsgfVxuICAuYnVyZ2VyX19saW5lOm50aC1vZi10eXBlKDIpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIC5idXJnZXJfX2xpbmU6bnRoLW9mLXR5cGUoMykge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDsgfVxuXG4uYnVyZ2VyW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gIHJpZ2h0OiBjYWxjKDI0MHB4ICsgMC42NXJlbSk7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgLmJ1cmdlclthcmlhLWV4cGFuZGVkPSd0cnVlJ10ge1xuICAgICAgcmlnaHQ6IGNhbGMoMzIwcHggKyAwLjY1cmVtKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMTAwcHgpIHtcbiAgICAuYnVyZ2VyW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgICByaWdodDogY2FsYygzODBweCArIDAuNjVyZW0pOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAgIC5idXJnZXJbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIHtcbiAgICAgIHJpZ2h0OiBjYWxjKDQ0MHB4ICsgMC42NXJlbSk7IH0gfVxuICAuYnVyZ2VyW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSAuYnVyZ2VyX19saW5lIHtcbiAgICB3aWR0aDogMjhweDtcbiAgICBsZWZ0OiA0cHg7IH1cbiAgICAuYnVyZ2VyW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSAuYnVyZ2VyX19saW5lOm50aC1vZi10eXBlKDEpIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0OyB9XG4gICAgLmJ1cmdlclthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLmJ1cmdlcl9fbGluZTpudGgtb2YtdHlwZSgyKSB7XG4gICAgICBvcGFjaXR5OiAwOyB9XG4gICAgLmJ1cmdlclthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLmJ1cmdlcl9fbGluZTpudGgtb2YtdHlwZSgzKSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7IH1cblxuLm5hdiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjI2MTI2O1xuICBjb2xvcjogI2ZmZjtcbiAgei1pbmRleDogMjA7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4sIG9wYWNpdHkgMC4zcyBlYXNlLWluO1xuICBwYWRkaW5nOiAwLjY1cmVtO1xuICB3aWR0aDogMjQwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMTAlKTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICAubmF2IHtcbiAgICAgIHBhZGRpbmc6IDEuM3JlbTtcbiAgICAgIHdpZHRoOiAzMjBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMTAwcHgpIHtcbiAgICAubmF2IHtcbiAgICAgIHdpZHRoOiAzODBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgICAubmF2IHtcbiAgICAgIHdpZHRoOiA0NDBweDsgfSB9XG5cbi5uYXYtLW9wZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLm5hdl9fdGl0bGUge1xuICBmb250LXNpemU6IDIuNzc3NzhyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgLm5hdl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiA0cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgLm5hdl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAzLjc3Nzc4cmVtOyB9IH1cblxuLm5hdl9fdGl0bGUtLXZpc3VhbGx5aGlkZGVuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7IH1cbiAgLm5hdl9fdGl0bGUtLXZpc3VhbGx5aGlkZGVuLmZvY3VzYWJsZTphY3RpdmUsIC5uYXZfX3RpdGxlLS12aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6Zm9jdXMge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBjbGlwOiBhdXRvOyB9XG5cbi5uYXZfX2xpbmsge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxLjU1NTU2cmVtOyB9XG4gIC5mb250cy1sb2FkZWQgLm5hdl9fbGluayB7XG4gICAgZm9udC1mYW1pbHk6IFBvcHBpbnMsIHNhbnMtc2VyaWY7IH1cbiAgLm5hdl9fbGluazpob3ZlciwgLm5hdl9fbGluazphY3RpdmUsIC5uYXZfX2xpbms6Zm9jdXMge1xuICAgIGNvbG9yOiAjZjI2MTI2OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIC5uYXZfX2xpbmsge1xuICAgICAgZm9udC1zaXplOiAxLjc3Nzc4cmVtOyB9IH1cbiAgLm5hdl9fbGlzdC0tbWV0YSAubmF2X19saW5rIHtcbiAgICBmb250LXNpemU6IDFyZW07IH1cblxuLm5hdl9fbGlzdC0tbWV0YSB7XG4gIG1hcmdpbi10b3A6IDIuNnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi42cmVtOyB9XG5cbi5uYXZfX3NvY2lhbC1saW5rIHtcbiAgY29sb3I6ICNmZmY7XG4gIG1hcmdpbi1yaWdodDogMC42NXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5uYXZfX3NvY2lhbC1saW5rOmhvdmVyLCAubmF2X19zb2NpYWwtbGluazphY3RpdmUsIC5uYXZfX3NvY2lhbC1saW5rOmZvY3VzIHtcbiAgICBjb2xvcjogI2YyNjEyNjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLm5hdl9fc29jaWFsLWljb24ge1xuICB3aWR0aDogMS40ZW07XG4gIGhlaWdodDogMS40ZW07IH1cblxuLmJhY2tncm91bmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBvcGFjaXR5OiAwLjg7IH1cblxuLmJhY2tncm91bmRfX2ltYWdlLFxuLmJhY2tncm91bmRfX3ZpZGVvIHtcbiAgd2lkdGg6IDIwMHZ3O1xuICBoZWlnaHQ6IDIwMHZoO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBvYmplY3QtcG9zaXRpb246IDUwJSA1MCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmJhY2tncm91bmRfX2ltYWdlLFxuICAgIC5iYWNrZ3JvdW5kX192aWRlbyB7XG4gICAgICB3aWR0aDogMzAwdnc7XG4gICAgICBoZWlnaHQ6IDMwMHZoOyB9IH1cblxuLmJhY2tncm91bmRfX3ZpZGVvIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5iYWNrZ3JvdW5kX192aWRlbyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH0gfVxuXG4uYmFja2dyb3VuZF9faW1hZ2Uge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1heC1oZWlnaHQ6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmJhY2tncm91bmRfX2ltYWdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH0gfVxuXG4uY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDcyMHB4KSB7XG4gICAgLmNvbnRlbnQge1xuICAgICAgZm9udC1zaXplOiAxLjIyMjIycmVtOyB9IH1cblxuLmNvbnRlbnRfX2FkZGl0aW9uYWwgaDIsXG4uY29udGVudF9fYWRkaXRpb25hbCBoMyxcbi5jb250ZW50X19hZGRpdGlvbmFsIGg0LFxuLmNvbnRlbnRfX3RleHQgaDIsXG4uY29udGVudF9fdGV4dCBoMyxcbi5jb250ZW50X190ZXh0IGg0IHtcbiAgY29sb3I6ICNmMjYxMjY7IH1cblxuLmNvbnRlbnRfX2FkZGl0aW9uYWwgaDMsXG4uY29udGVudF9fYWRkaXRpb25hbCBoNCxcbi5jb250ZW50X190ZXh0IGgzLFxuLmNvbnRlbnRfX3RleHQgaDQge1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbi5jb250ZW50X19hZGRpdGlvbmFsIGEsXG4uY29udGVudF9fdGV4dCBhIHtcbiAgY29sb3I6ICNmMjYxMjY7IH1cbiAgLmNvbnRlbnRfX2FkZGl0aW9uYWwgYTpob3ZlciwgLmNvbnRlbnRfX2FkZGl0aW9uYWwgYTphY3RpdmUsIC5jb250ZW50X19hZGRpdGlvbmFsIGE6Zm9jdXMsXG4gIC5jb250ZW50X190ZXh0IGE6aG92ZXIsXG4gIC5jb250ZW50X190ZXh0IGE6YWN0aXZlLFxuICAuY29udGVudF9fdGV4dCBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzAwMDsgfVxuXG4uY29udGVudC0tbGFyZ2Uge1xuICBmb250LXNpemU6IDEuMjIyMjJyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDcyMHB4KSB7XG4gICAgLmNvbnRlbnQtLWxhcmdlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41NTU1NnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH0gfVxuXG4uY29udGVudF9faW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiAxLjNyZW07IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDcyMHB4KSB7XG4gIC5jb250ZW50X19pbWFnZSxcbiAgLmNvbnRlbnRfX2ltYWdlcyB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMCU7IH0gfVxuXG5Aa2V5ZnJhbWVzIGRheS1ldmVudC1oZWFkZXItYW5pbWF0aW9uIHtcbiAgMCUge1xuICAgIGNvbG9yOiAjZjI2MTI2OyB9XG4gIDQ1JSB7XG4gICAgY29sb3I6ICMwMDA7IH1cbiAgNTUlIHtcbiAgICBjb2xvcjogIzAwMDsgfVxuICAxMDAlIHtcbiAgICBjb2xvcjogI2YyNjEyNjsgfSB9XG5cbi5kYXkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5kYXlfX2RhdGUge1xuICBmb250LXNpemU6IDguODg4ODlyZW07XG4gIG1hcmdpbi10b3A6IDEuM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4zcmVtO1xuICBsaW5lLWhlaWdodDogMC45O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5kYXlfX2RhdGUgZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMC4wNWVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsIHNlcmlmOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5kYXlfX2RhdGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMzUwcHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gICAgLmRheV9fZGF0ZSB7XG4gICAgICB3aWR0aDogNDIwcHg7IH0gfVxuXG4uZGF5X19ldmVudHMtaGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMC42NXJlbTtcbiAgbWFyZ2luLXRvcDogMS45NXJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAuZGF5X19ldmVudHMtaGVhZGVyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogY2FsYygzNTBweCArIDEuM3JlbSk7IH1cbiAgICAgIC5kYXlfX2V2ZW50cy1oZWFkZXI6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IC01Ljg1cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAgIC5kYXlfX2V2ZW50cy1oZWFkZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKDQyMHB4ICsgMS4zcmVtKTsgfSB9XG5cbi5kYXlfX2V2ZW50cy1zdWJ0aXRsZSB7XG4gIGNvbG9yOiAjZjI2MTI2O1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBoeXBoZW5zOiBhdXRvOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5kYXlfX2V2ZW50cy1zdWJ0aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuNzc3NzhyZW07IH0gfVxuXG4uZGF5X19ldmVudHMtY2F0ZWdvcnkge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmRheV9fZXZlbnRzLWNhdGVnb3J5IHtcbiAgICAgIGZvbnQtc2l6ZTogMS41NTU1NnJlbTsgfSB9XG5cbi5kYXlfX2V2ZW50IHtcbiAgbWFyZ2luLWJvdHRvbTogMC4zMjVyZW07IH1cblxuLmRheV9fZXZlbnQtaGVhZGVyIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXRvcDogMC4yNnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMjZyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuZGF5X19ldmVudC1oZWFkZXI6aG92ZXIsIC5kYXlfX2V2ZW50LWhlYWRlcjphY3RpdmUsIC5kYXlfX2V2ZW50LWhlYWRlcjpmb2N1cyB7XG4gICAgYW5pbWF0aW9uOiBkYXktZXZlbnQtaGVhZGVyLWFuaW1hdGlvbiAzcyBsaW5lYXIgaW5maW5pdGUgcnVubmluZzsgfVxuXG4uZGF5X19ldmVudC10aW1lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMjAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgIC5kYXlfX2V2ZW50LXRpbWUge1xuICAgICAgcGFkZGluZy10b3A6IDRweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5kYXlfX2V2ZW50LXRpbWUge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMC40cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDJweDtcbiAgICAgIGZvbnQtc2l6ZTogMS41NTU1NnJlbTtcbiAgICAgIHdpZHRoOiBjYWxjKDM1MHB4ICsgMS4zcmVtKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgICAuZGF5X19ldmVudC10aW1lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDQyMHB4ICsgMS4zcmVtKTsgfSB9XG5cbi5kYXlfX2V2ZW50LXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogODAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgIC5kYXlfX2V2ZW50LXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yMjIyMnJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5kYXlfX2V2ZW50LXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS43Nzc3OHJlbTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzNTBweCAtIDEuM3JlbSk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gICAgLmRheV9fZXZlbnQtdGl0bGUge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQyMHB4IC0gMS4zcmVtKTsgfSB9XG5cbi5kYXlfX2V2ZW50LWluZm8ge1xuICB3aWxsLWNoYW5nZTogbWF4LWhlaWdodDtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzIGVhc2UtaW47XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmRheV9fZXZlbnQtaW5mbyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMzUwcHggKyAxLjNyZW0pOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAgIC5kYXlfX2V2ZW50LWluZm8ge1xuICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKDQyMHB4ICsgMS4zcmVtKTsgfSB9XG4gIC5kYXlfX2V2ZW50LWluZm9bYXJpYS1oaWRkZW49J3RydWUnXSB7XG4gICAgbWF4LWhlaWdodDogMDsgfVxuICAuZGF5X19ldmVudC1pbmZvW2FyaWEtaGlkZGVuPSdmYWxzZSddIHtcbiAgICBwYWRkaW5nLXRvcDogMC42NXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4zcmVtO1xuICAgIG1heC1oZWlnaHQ6IDIwMHZoOyB9XG4gIC5kYXlfX2V2ZW50LWluZm8gcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC42NXJlbTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmRheV9fZXZlbnQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjIyMjIycmVtOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDExMDBweCkge1xuICAuZGF5X19ldmVudC10ZXh0IHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMS41NTU1NnJlbTsgfSB9XG5cbi5kYXlfX2V2ZW50LXRleHQgcCxcbi5kYXlfX2V2ZW50LWF1dGhvciBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMC4zMjVyZW07IH1cblxuLmRheV9fZXZlbnQtYXV0aG9yIHtcbiAgZm9udC1zaXplOiAwLjc3Nzc4cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIC5kYXlfX2V2ZW50LWF1dGhvciB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5kYXlfX2V2ZW50LWF1dGhvciB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBmb250LXNpemU6IDFyZW07IH0gfVxuXG4uZGF5X19ldmVudC1saXZlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMjYxMjY7XG4gIHBhZGRpbmctcmlnaHQ6IDAuMzI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuMzI1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmRheV9fZXZlbnQtYWRkaXRpb25hbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4uZGF5X19jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMS4zcmVtO1xuICBmb250LXNpemU6IDEuMjIyMjJyZW07IH1cbiAgLmRheV9fY29udGVudCBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjY1cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5kYXlfX2NvbnRlbnQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMC40cmVtOyB9IH1cblxuLyohXG4gKiBiYWd1ZXR0ZUJveC5qc1xuICogQGF1dGhvciAgZmVpbW9zaVxuICogQHZlcnNpb24gJSVJTkpFQ1RfVkVSU0lPTiUlXG4gKiBAdXJsIGh0dHBzOi8vZ2l0aHViLmNvbS9mZWltb3NpL2JhZ3VldHRlQm94LmpzXG4gKi9cbiNiYWd1ZXR0ZUJveC1vdmVybGF5IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDAwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZTsgfVxuICAjYmFndWV0dGVCb3gtb3ZlcmxheS52aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gICNiYWd1ZXR0ZUJveC1vdmVybGF5IC5mdWxsLWltYWdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAjYmFndWV0dGVCb3gtb3ZlcmxheSAuZnVsbC1pbWFnZSBmaWd1cmUge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgI2JhZ3VldHRlQm94LW92ZXJsYXkgLmZ1bGwtaW1hZ2UgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICAgICNiYWd1ZXR0ZUJveC1vdmVybGF5IC5mdWxsLWltYWdlIGZpZ2NhcHRpb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgY29sb3I6ICNjY2M7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IH1cbiAgICAjYmFndWV0dGVCb3gtb3ZlcmxheSAuZnVsbC1pbWFnZTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGhlaWdodDogNTAlO1xuICAgICAgd2lkdGg6IDFweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTFweDsgfVxuXG4jYmFndWV0dGVCb3gtc2xpZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IGxlZnQgLjRzIGVhc2UsIHRyYW5zZm9ybSAuNHMgZWFzZTsgfVxuICAjYmFndWV0dGVCb3gtc2xpZGVyLmJvdW5jZS1mcm9tLXJpZ2h0IHtcbiAgICBhbmltYXRpb246IGJvdW5jZUZyb21SaWdodCAuNHMgZWFzZS1vdXQ7IH1cbiAgI2JhZ3VldHRlQm94LXNsaWRlci5ib3VuY2UtZnJvbS1sZWZ0IHtcbiAgICBhbmltYXRpb246IGJvdW5jZUZyb21MZWZ0IC40cyBlYXNlLW91dDsgfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUZyb21SaWdodCB7XG4gIDAlIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICA1MCUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMzBweDsgfVxuICAxMDAlIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbkBrZXlmcmFtZXMgYm91bmNlRnJvbUxlZnQge1xuICAwJSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgNTAlIHtcbiAgICBtYXJnaW4tbGVmdDogMzBweDsgfVxuICAxMDAlIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbi5iYWd1ZXR0ZUJveC1idXR0b24jbmV4dC1idXR0b24sIC5iYWd1ZXR0ZUJveC1idXR0b24jcHJldmlvdXMtYnV0dG9uIHtcbiAgdG9wOiA1MCU7XG4gIHRvcDogY2FsYyg1MCUgLSAzMHB4KTtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNjBweDsgfVxuXG4uYmFndWV0dGVCb3gtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxNSU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMjMyMzI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTAsIDUwLCA1MCwgMC41KTtcbiAgY29sb3I6ICNkZGQ7XG4gIGZvbnQ6IDEuNmVtIHNhbnMtc2VyaWY7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjRzIGVhc2U7IH1cbiAgLmJhZ3VldHRlQm94LWJ1dHRvbjpmb2N1cywgLmJhZ3VldHRlQm94LWJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MCwgNTAsIDUwLCAwLjkpOyB9XG4gIC5iYWd1ZXR0ZUJveC1idXR0b24jbmV4dC1idXR0b24ge1xuICAgIHJpZ2h0OiAyJTsgfVxuICAuYmFndWV0dGVCb3gtYnV0dG9uI3ByZXZpb3VzLWJ1dHRvbiB7XG4gICAgbGVmdDogMiU7IH1cbiAgLmJhZ3VldHRlQm94LWJ1dHRvbiNjbG9zZS1idXR0b24ge1xuICAgIHRvcDogMjBweDtcbiAgICByaWdodDogMiU7XG4gICAgcmlnaHQ6IGNhbGMoMiUgKyA2cHgpO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDsgfVxuICAuYmFndWV0dGVCb3gtYnV0dG9uIHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwOyB9XG5cbi8qXG4gICAgUHJlbG9hZGVyXG4gICAgQm9ycm93ZWQgZnJvbSBodHRwOi8vdG9iaWFzYWhsaW4uY29tL3NwaW5raXQvXG4qL1xuLmJhZ3VldHRlQm94LXNwaW5uZXIge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMjBweDsgfVxuXG4uYmFndWV0dGVCb3gtZG91YmxlLWJvdW5jZTEsXG4uYmFndWV0dGVCb3gtZG91YmxlLWJvdW5jZTIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IC42O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYW5pbWF0aW9uOiBib3VuY2UgMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IH1cblxuLmJhZ3VldHRlQm94LWRvdWJsZS1ib3VuY2UyIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMXM7IH1cblxuQGtleWZyYW1lcyBib3VuY2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuXG4uZ2FsbGVyeSB7XG4gIG1hcmdpbi1ib3R0b206IDEuM3JlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5nYWxsZXJ5X19saW5rIHtcbiAgICBwYWRkaW5nOiAwLjMyNXJlbTtcbiAgICB3aWR0aDogNTAlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uaW50cm8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB3aWR0aDogOTB2dzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzIwcHgpIHtcbiAgICAuaW50cm8ge1xuICAgICAgcGFkZGluZy10b3A6IDV2aDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1dmg7IH0gfVxuXG4uaW50cm9fX2ltYWdlIHtcbiAgbWFyZ2luLXRvcDogMi42cmVtO1xuICB3aWR0aDogOTB2dzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzIwcHgpIHtcbiAgICAuaW50cm9fX2ltYWdlIHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTYwMHB4IC0gNy44cmVtKTsgfSB9XG5cbi5pbnRyb19faGVhZGxpbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTsgfVxuICAuaW50cm9fX2hlYWRsaW5lLmZvY3VzYWJsZTphY3RpdmUsIC5pbnRyb19faGVhZGxpbmUuZm9jdXNhYmxlOmZvY3VzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bzsgfVxuXG4ubmV3cyB7XG4gIHBhZGRpbmctdG9wOiAwLjY1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC42NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuM3JlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICAubmV3cyB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1heC13aWR0aDogODYwcHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAubmV3cyB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1heC13aWR0aDogMTE0MHB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5uZXdzX19hcnRpY2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9IH1cblxuLm5ld3NfX2FydGljbGU6bGFzdC1jaGlsZCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLm5ld3NfX2RhdGV0aW1lIHtcbiAgICBmb250LXNpemU6IDEuNTU1NTZyZW07XG4gICAgd2lkdGg6IDIwJTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAubmV3c19fY29udGVudCB7XG4gICAgd2lkdGg6IDgwJTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAubmV3c19fY29udGVudCB7XG4gICAgZm9udC1zaXplOiAxLjIyMjIycmVtOyB9IH1cblxuLm5ld3NfX2RhdGUge1xuICBtYXJnaW4tcmlnaHQ6IDEuM3JlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIC5uZXdzX19kYXRlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLm5ld3NfX2hlYWRsaW5lIHtcbiAgZm9udC1zaXplOiAxLjIyMjIycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAgIC5uZXdzX19oZWFkbGluZSB7XG4gICAgICBmb250LXNpemU6IDEuNTU1NTZyZW07IH0gfVxuXG4ubmV3c19fdGV4dCBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLnBhcnRuZXJfX2hlYWRsaW5lIHtcbiAgZm9udC1zaXplOiAxLjIyMjIycmVtO1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4ucGFydG5lcl9fbG9nbzpub3QoLnBhcnRuZXJfX2xvZ28tLWxhc3QpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDQ3JTtcbiAgbWFyZ2luOiAwIDMlIDMlIDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgLnBhcnRuZXJfX2xvZ286bm90KC5wYXJ0bmVyX19sb2dvLS1sYXN0KSB7XG4gICAgICB3aWR0aDogMzAlOyB9IH1cbiAgLnBhcnRuZXJfX2xvZ286bm90KC5wYXJ0bmVyX19sb2dvLS1sYXN0KTo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogJyc7XG4gICAgcGFkZGluZy10b3A6IDYzLjUyOTQxJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgICAgLnBhcnRuZXJfX2xvZ286bm90KC5wYXJ0bmVyX19sb2dvLS1sYXN0KTo6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDYzLjUyOTQxJTsgfSB9XG5cbi5wYXJ0bmVyX19sb2dvLWlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7IH1cblxuLnBhcnRuZXJfX2ltYWdlcyB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnBhcnRuZXJfX2ltYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5wcm9ncmFtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucHJvZ3JhbV9faGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMS4zcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjNyZW07IH1cblxuLnByb2dyYW1fX2xpc3Qge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjY1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjVyZW07XG4gIG1hcmdpbi10b3A6IDEuM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4zcmVtO1xuICB6LWluZGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAgIC5wcm9ncmFtX19saXN0IHtcbiAgICAgIHBhZGRpbmctdG9wOiAxLjNyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMS4zcmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG5cbi5wcm9ncmFtX190YWIge1xuICBtYXJnaW4tYm90dG9tOiAwLjY1cmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAucHJvZ3JhbV9fdGFiIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9IH1cblxuLnByb2dyYW1fX2xpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5wcm9ncmFtX19saW5rOmhvdmVyLCAucHJvZ3JhbV9fbGluazphY3RpdmUsIC5wcm9ncmFtX19saW5rOmZvY3VzIHtcbiAgICBjb2xvcjogI2YyNjEyNjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSAucHJvZ3JhbV9fbGluayB7XG4gICAgY29sb3I6ICNmMjYxMjY7IH1cblxuLnByb2dyYW1fX2RheS1zaG9ydGNvZGUge1xuICBmb250LXNpemU6IDEuNTU1NTZyZW07XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5mb250cy1sb2FkZWQgLnByb2dyYW1fX2RheS1zaG9ydGNvZGUge1xuICAgIGZvbnQtZmFtaWx5OiBQb3BwaW5zLCBzYW5zLXNlcmlmOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIC5wcm9ncmFtX19kYXktc2hvcnRjb2RlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS43Nzc3OHJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAgIC5wcm9ncmFtX19kYXktc2hvcnRjb2RlIHtcbiAgICAgIGZvbnQtc2l6ZTogNHJlbTsgfSB9XG5cbi5wcm9ncmFtX19kYXktZGF0ZSB7XG4gIGZvbnQtc2l6ZTogMC43Nzc3OHJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICAucHJvZ3JhbV9fZGF5LWRhdGUge1xuICAgICAgZm9udC1zaXplOiAxcmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDcyMHB4KSB7XG4gICAgLnByb2dyYW1fX2RheS1kYXRlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41NTU1NnJlbTsgfSB9XG5cbi5wcm9ncmFtX19wYW5lbCB7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4sIG9wYWNpdHkgMC4zcyBlYXNlLWluOyB9XG4gIC5wcm9ncmFtX19wYW5lbFthcmlhLWhpZGRlbj0nZmFsc2UnXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIC5wcm9ncmFtX19wYW5lbFthcmlhLWhpZGRlbj0ndHJ1ZSddIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTEwJSk7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnNlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWJvdHRvbTogMi42cmVtO1xuICB6LWluZGV4OiAxMDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IH1cblxuLnNlY3Rpb24tLWludHJvIHtcbiAgcGFkZGluZy1ib3R0b206IDEzcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAgIC5zZWN0aW9uLS1pbnRybyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTkuNXJlbTsgfSB9XG5cbi5zZWN0aW9uLS1uZXdzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICMwMDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBtYXJnaW4tYm90dG9tOiAyLjZyZW07XG4gIG1hcmdpbi10b3A6IC0xMC40cmVtO1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzAwMDtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgLnNlY3Rpb24tLW5ld3Mge1xuICAgICAgcGFkZGluZy10b3A6IDAuNjVyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMC42NXJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAgIC5zZWN0aW9uLS1uZXdzIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xNi45cmVtOyB9IH1cblxuLnNlY3Rpb25fX2lubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgei1pbmRleDogMTtcbiAgcGFkZGluZy1yaWdodDogMC42NXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjY1cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgIC5zZWN0aW9uX19pbm5lciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuM3JlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIC5zZWN0aW9uX19pbm5lciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyLjZyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIuNnJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5zZWN0aW9uX19pbm5lciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1LjJyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDUuMnJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgICAuc2VjdGlvbl9faW5uZXIge1xuICAgICAgcGFkZGluZy1yaWdodDogNy44cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiA3LjhyZW07XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1heC13aWR0aDogY2FsYygxNjAwcHggKyA3LjhyZW0pOyB9IH1cblxuLnNlY3Rpb25fX2hlYWRpbmcge1xuICBjb2xvcjogI2YyNjEyNjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzIwcHgpIHtcbiAgICAuc2VjdGlvbl9faGVhZGluZyB7XG4gICAgICBmb250LXNpemU6IDEuNzc3NzhyZW07XG4gICAgICBtYXJnaW4tbGVmdDogLTEuM3JlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5zZWN0aW9uX19oZWFkaW5nIHtcbiAgICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH0gfVxuXG4ucGFnZSB7XG4gIHotaW5kZXg6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuIiwiLy8gY3VzdG9tIEBmb250LWZhY2UgcnVsZXMgYXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gZm9udC1jb25maWdcbkBpZiB2YXJpYWJsZS1leGlzdHMoZm9udHMpIHtcbiAgQGVhY2ggJGZvbnQtaWQsICRmb250LWRlZmluaXRpb24gaW4gJGZvbnRzIHtcbiAgICBAaWYgbWFwLWdldCgkZm9udC1kZWZpbml0aW9uLCBmb250ZmFjZSkgPT0gdHJ1ZSB7XG4gICAgICAkZm9udGZpbGU6IG1hcC1nZXQoJGZvbnQtZGVmaW5pdGlvbiwgZmlsZSk7XG5cbiAgICAgIEBmb250LWZhY2Uge1xuICAgICAgICBzcmM6IHVybCgnLi4vZm9udHMvI3skZm9udGZpbGV9LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uL2ZvbnRzLyN7JGZvbnRmaWxlfS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRmb250LWRlZmluaXRpb24sIGZhbWlseSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRmb250LWRlZmluaXRpb24sIHdlaWdodCk7XG4gICAgICAgIGZvbnQtc3R5bGU6IHVucXVvdGUobWFwLWdldCgkZm9udC1kZWZpbml0aW9uLCBzdHlsZSkpO1xuICAgICAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIkYnJlYWtwb2ludHM6IChzOiA0ODAsbTogNjQwLGw6IDcyMCx4bDogOTYwLHh4bDogMTEwMCx4eHhsOiAxNjAwKTtcbiRmb250czogKGRlZmF1bHQ6IChmYW1pbHk6IFBvcHBpbnMsZmFsbGJhY2s6IHNhbnMtc2VyaWYsd2VpZ2h0OiA0MDAsc3R5bGU6IG5vcm1hbCxmb250ZmFjZTogdHJ1ZSxmaWxlOiBwb3BwaW5zLXJlZ3VsYXIpLG1lZGl1bTogKGZhbWlseTogUG9wcGlucyxmYWxsYmFjazogc2Fucy1zZXJpZix3ZWlnaHQ6IDUwMCxzdHlsZTogbm9ybWFsLGZvbnRmYWNlOiB0cnVlLGZpbGU6IHBvcHBpbnMtbWVkaXVtKSxzZW1pYm9sZDogKGZhbWlseTogUG9wcGlucyxmYWxsYmFjazogc2Fucy1zZXJpZix3ZWlnaHQ6IDYwMCxzdHlsZTogbm9ybWFsLGZvbnRmYWNlOiB0cnVlLGZpbGU6IHBvcHBpbnMtc2VtaWJvbGQpKTsiLCIvLyBkZWZhdWx0IHN0eWxlcyBmb3IgdGV4dC1pbnB1dCBmb3JtcyBmaWVsZHNcblt0eXBlPSd0ZXh0J10sXG5bdHlwZT0ndGVsJ10sXG5bdHlwZT0nZW1haWwnXSxcblt0eXBlPSdzZWFyY2gnXSxcblt0eXBlPSdudW1iZXInXSxcblt0eXBlPSd1cmwnXSxcblt0eXBlPSdwYXNzd29yZCddLFxuW3R5cGU9J2RhdGUnXSxcbnRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7IC8vIHdyYXAgZ3JpZC9kaXYvcCBhcm91bmQgaW5wdXRzXG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTsgLy8gbm8gcm91bmRlZCBpbnB1dHMgZXRjLlxufVxuXG5idXR0b24sXG5bdHlwZT0nc3VibWl0J10ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy8gYWxsb3cgcmVzaXppbmcgb2YgdGV4dGFyZWFzIHZlcnRpY2FsbHlcbnRleHRhcmVhIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuc2VsZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gbm8gYm9yZGVyL3BhZGRpbmcvbWFyZ2luIGZvciB0aGUgZmllbGRzZXRcbmZpZWxkc2V0IHtcbiAgQGluY2x1ZGUgbWFyZ2luKGEgMCwgYiAxKTtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBwb3NpdGlvbiBsYWJlbHMgb24gdG9wIG9mIHRoZWlyIHJlbGF0ZWQgaW5wdXRzIGJ5IGRlZmF1bHQsXG4vLyBhbmQgZ2l2ZSB0aGVtIGEgaGludCB0byBtYWtlIHRoZW0gY2xpY2thYmxlIGJ5IHNldHRpbmcgY3Vyc29yXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAmW2Zvcl0geyAvLyBhZGQgcG9pbnRlci1jdXJzb3IgaWYgYXNzb2NpYXRlZCB0byBpbnB1dFxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vLyBkb250IGFsbG93IHVuc2VsZWN0YWJsZSBlbGVtZW50cyB0byBiZSBzZWxlY3RlZFxuW3Vuc2VsZWN0YWJsZV0ge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuW2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4iLCIvLyBjcmVhdGVzIG1hcmdpbnMsIGJ5IGRlZmF1bHQgKHdpdGhvdXQgYW55IHBhcmFtZXRlcnMpIG9ubHkgbWFyZ2luLWJvdHRvbVxuLy8gd2l0aCAkYmFzZS11bml0IC0tIGRlZmF1bHQgcmh5dGhtLCBvciBmb3IgZXZlcnkgc2lkZS92YWx1ZS1wYWlyIHdpdGhcbi8vIHRoZWlyIHNob3J0IHZhcmlhbnRzOlxuLy9cbi8vIHVzYWdlIGV4YW1wbGVzOlxuLy8gQGluY2x1ZGUgbWFyZ2luOyA9PT4gbWFyZ2luLWJvdHRvbTogJGJhc2UtdW5pdDtcbi8vIEBpbmNsdWRlIG1hcmdpbigyKSA9PT4gd2FybmluZyEsIHRoaXMgaXMgbm90IGdvbm5hIHdvcmtcbi8vIEBpbmNsdWRlIG1hcmdpbihiIDIpID09PiBtYXJnaW4tYm90dG9tOiAkYmFzZS11bml0ICogMjtcbi8vIEBpbmNsdWRlIG1hcmdpbihhIDIpID09PiBtYXJnaW46ICRiYXNlLXVuaXQgKiAyO1xuLy8gQGluY2x1ZGUgbWFyZ2luKGEgMC41LCBiIDEpID09PiBtYXJnaW46ICRiYXNlLXVuaXQgKiAwLjU7IG1hcmdpbi1ib3R0b206ICRiYXNlLXVuaXQ7XG4vLyBAaW5jbHVkZSBtYXJnaW4ociAxLCBsIDEyJSkgPT0+IG1hcmdpbi1yaWdodDogYmFzZS11bml0OyBtYXJnaW4tbGVmdDogMTIlO1xuLy8gQGluY2x1ZGUgbWFyZ2luKHIgMCwgdCBhdXRvKSA9PT4gbWFyZ2luLXJpZ2h0OiAwOyBtYXJnaW4tdG9wOiBhdXRvO1xuLy8gQGluY2x1ZGUgbWFyZ2luKHYgMSkgPT0+IG1hcmdpbi1yaWdodDogJGJhc2UtdW5pdDsgbWFyZ2luLWxlZnQ6ICRiYXNlLXVuaXQ7XG4vLyBAaW5jbHVkZSBtYXJnaW4oaCAxKSA9PT4gbWFyZ2luLXRvcDogJGJhc2UtdW5pdDsgbWFyZ2luLWJvdHRvbTogJGJhc2UtdW5pdDtcbkBtaXhpbiBtYXJnaW4oJHNwYWNpbmctYXJncy4uLikge1xuICAvLyBkZWZhdWx0IGNhc2UgZm9yIHNwYWNpbmcgLS0gbWFyZ2luIGJvdHRvbVxuICBAaWYgbGVuZ3RoKCRzcGFjaW5nLWFyZ3MpID09IDAge1xuICAgIEBpZiB2YXJpYWJsZS1leGlzdHMoYmFzZS11bml0KSA9PSBmYWxzZSB7XG4gICAgICBAd2FybiAnJGJhc2UtdW5pdCBpcyBub3Qgc2V0LCBwbGVhc2Ugc2V0IHRoaXMgdmFyaWFibGUgaW4geW91ciBjb25maWcuIERlZmF1bHRpbmcgdG8gMS41cmVtJztcbiAgICAgICRiYXNlLXVuaXQ6IDEuNXJlbTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXVuaXQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAZWFjaCAkcG9zaXRpb24ta2V5LCAkcG9zaXRpb24tdmFsdWUgaW4gJHNwYWNpbmctYXJncyB7XG4gICAgICBAaWYgbm90ICRwb3NpdGlvbi12YWx1ZSB7XG4gICAgICAgIEB3YXJuICdZb3Ugc2hvdWxkIHByb3ZpZGUgYSBsaXN0IG9mIHNpZGUvdmFsdWUgcGFpcnMgZS5nLiBcImIgMlwiIGZvciB0aGlzIG1peGluIHRvIHdvcmsnO1xuICAgICAgfSBAZWxzZSBpZiAkcG9zaXRpb24ta2V5ID09ICdhJyB7XG4gICAgICAgIG1hcmdpbjogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgfSBAZWxzZSBpZiAkcG9zaXRpb24ta2V5ID09ICd2JyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHBhcnNlLXVuaXQoJHBvc2l0aW9uLXZhbHVlKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgfSBAZWxzZSBpZiAkcG9zaXRpb24ta2V5ID09ICdoJyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgICBtYXJnaW4tbGVmdDogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzaWRlOiBwb3NpdGlvbi1tYXAoJHBvc2l0aW9uLWtleSk7XG4gICAgICAgICR2YWx1ZTogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgICBtYXJnaW4tI3skc2lkZX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gdGhpcyBwYWRkaW5nIG1peGluIGZvciBwYWRkaW5nIGJlaGF2ZXMgc2xpZ2h0bHkgZGlmZmVyZW50XG4vLyB3aGVuIHByb3ZpZGVkIHdpdGggbm8gcGFyYW1ldGVyLCBwYWRkaW5nIGlzIGFwcGxpZWQgdG8gYWxsIGZvdXJcbi8vIHNpZGVzIG9mIHRoZSBlbGVtZW50LCB1c2luZyBwYWRkaW5nLXNob3J0aGFuZFxuQG1peGluIHBhZGRpbmcoJHNwYWNpbmctYXJncy4uLikge1xuICAvLyBkZWZhdWx0IGNhc2UgZm9yIHNwYWNpbmcgLS0gbWFyZ2luIGJvdHRvbVxuICBAaWYgbGVuZ3RoKCRzcGFjaW5nLWFyZ3MpID09IDAge1xuICAgIEBpZiB2YXJpYWJsZS1leGlzdHMoYmFzZS11bml0KSA9PSBmYWxzZSB7XG4gICAgICBAd2FybiAnJGJhc2UtdW5pdCBpcyBub3Qgc2V0LCBwbGVhc2Ugc2V0IHRoaXMgdmFyaWFibGUgaW4geW91ciBjb25maWcuIERlZmF1bHRpbmcgdG8gMS41cmVtJztcbiAgICAgICRiYXNlLXVuaXQ6IDEuNXJlbTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHBhZGRpbmc6ICRiYXNlLXVuaXQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAZWFjaCAkcG9zaXRpb24ta2V5LCAkcG9zaXRpb24tdmFsdWUgaW4gJHNwYWNpbmctYXJncyB7XG4gICAgICBAaWYgbm90ICRwb3NpdGlvbi12YWx1ZSB7XG4gICAgICAgIEB3YXJuICdZb3Ugc2hvdWxkIHByb3ZpZGUgYSBsaXN0IG9mIHNpZGUvdmFsdWUgcGFpcnMgZS5nLiBcImIgMlwiIGZvciB0aGlzIG1peGluIHRvIHdvcmsnO1xuICAgICAgfSBAZWxzZSBpZiAkcG9zaXRpb24ta2V5ID09ICdhJyB7XG4gICAgICAgIHBhZGRpbmc6IHBhcnNlLXVuaXQoJHBvc2l0aW9uLXZhbHVlKTtcbiAgICAgIH0gQGVsc2UgaWYgJHBvc2l0aW9uLWtleSA9PSAndicge1xuICAgICAgICBwYWRkaW5nLXRvcDogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgfSBAZWxzZSBpZiAkcG9zaXRpb24ta2V5ID09ICdoJyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHBhcnNlLXVuaXQoJHBvc2l0aW9uLXZhbHVlKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBwYXJzZS11bml0KCRwb3NpdGlvbi12YWx1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNpZGU6IHBvc2l0aW9uLW1hcCgkcG9zaXRpb24ta2V5KTtcbiAgICAgICAgJHZhbHVlOiBwYXJzZS11bml0KCRwb3NpdGlvbi12YWx1ZSk7XG4gICAgICAgIHBhZGRpbmctI3skc2lkZX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLy8gZ2VuZXJhbCBoZWxwZXIgZnVuY3Rpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBweC10by1yZW0oJHB4dmFsdWUpIHtcbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhmb250LXNpemVzKSA9PSBmYWxzZSB7XG4gICAgQHdhcm4gJyRmb250LXNpemVzIFNhc3MtbWFwIGRvZXMgbm90IGV4aXN0LCBwbGVhc2UgcHJvdmlkZSBvbmUgaW4geW91ciBjb25maWcuIERlZmF1bHRpbmcgdG8gMTZweC1yZW0tZXF1aXZhbGVudCc7XG4gICAgQHJldHVybiAoJHB4dmFsdWUgLyAxNnB4KSAqIDFyZW07XG4gIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGZvbnQtc2l6ZXMsIGRlZmF1bHQpID09IGZhbHNlIHtcbiAgICBAd2FybiAnSW5kZXggXCJkZWZhdWx0XCIgbm90IGZvdW5kIGluICRmb250LXNpemVzIFNhc3MtbWFwIHVzaW5nIGZ1bmN0aW9uIHB4LXRvLXJlbS4gRGVmYXVsdGluZyB0byAxNnB4LXJlbS1lcXVpdmFsZW50JztcbiAgICBAcmV0dXJuICgkcHh2YWx1ZSAvIDE2cHgpICogMXJlbTtcbiAgfVxuXG4gIEByZXR1cm4gKCRweHZhbHVlIC8gbWFwLWdldCgkZm9udC1zaXplcywgZGVmYXVsdCkpICogMXJlbTtcbn1cblxuLy8gcmV0dXJucyB0cnVlIGlmIGl0IGlzIGp1c3QgYSBudW1iZXIgd2l0aG91dCB1bml0XG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyBhbmQgdW5pdGxlc3MoJHZhbHVlKTtcbn1cblxuLy8gaWYgYSB1bml0bGVzcyBudW1iZXIgaXMgZ2l2ZW4sIHRoaXMgZnVuY3Rpb24gcmV0dXJucyAkYmFzZS11bml0ICogdmFsdWVcbi8vIChleGNlcHQgZm9yIDAsIDAgd2lsbCBiZSByZXR1cm5lZCBpbnN0YW50bHkpXG4vLyBpZiBhbnl0aGluZyBlbHNlIGlzIGdpdmVuLCBpdCB3aWxsIHJldHVybiBpdHMgdW5xb3RlZCB2YWx1ZTtcbkBmdW5jdGlvbiBwYXJzZS11bml0KCR2YWx1ZSkge1xuICBAaWYgJHZhbHVlID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuXG4gIEBpZiBpcy1udW1iZXIoJHZhbHVlKSB7XG4gICAgQGlmIHZhcmlhYmxlLWV4aXN0cyhiYXNlLXVuaXQpID09IGZhbHNlIHtcbiAgICAgIEB3YXJuICckYmFzZS11bml0IGlzIG5vdCBzZXQsIHBsZWFzZSBzZXQgdGhpcyB2YXJpYWJsZSBpbiB5b3VyIGNvbmZpZy4gRGVmYXVsdGluZyB0byAxLjVyZW0nO1xuICAgICAgJGJhc2UtdW5pdDogMS41cmVtO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiAkYmFzZS11bml0ICogJHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLyByZXR1cm5zIHRoZSBmdWxsIHZhbHVlIGZvciBhbnkgb2YgdGhlIHBvc2l0aW9uL3NpZGUgc2hvcnQtZm9ybXNcbkBmdW5jdGlvbiBwb3NpdGlvbi1tYXAoJHNob3J0KSB7XG4gICRzaG9ydC1tYXA6IChcbiAgICB0OiB0b3AsXG4gICAgcjogcmlnaHQsXG4gICAgYjogYm90dG9tLFxuICAgIGw6IGxlZnRcbiAgKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJHNob3J0LW1hcCwgJHNob3J0KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRzaG9ydC1tYXAsICRzaG9ydCk7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICdTaG9ydCBrZXkgXCIjeyRzaG9ydH1cIiBub3QgYXZhaWFibGUuIEF2YWlhYmxlIGtleXMgYXJlOiB0LCByLCBiIGFuZCBsJztcblxuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIi8vIGZ1bmN0aW9uIHRvIGVhc2lseSBnZXQgdGhlIGZvbnQtc2l6ZSBhbmQgY29udmVydCBpdCB0byByZW1cbkBmdW5jdGlvbiBmb250LXNpemUoJGZvbnRzaXplLXZhbHVlOiBkZWZhdWx0KSB7XG4gIEBpZiB2YXJpYWJsZS1leGlzdHMoZm9udC1zaXplcykgPT0gZmFsc2Uge1xuICAgIEB3YXJuICckZm9udC1zaXplcyBTYXNzLW1hcCBkb2VzIG5vdCBleGlzdCwgcGxlYXNlIHByb3ZpZGUgb25lIGluIHlvdXIgY29uZmlnLiBEZWZhdWx0aW5nIHRvIDE2cHgnO1xuICAgIEByZXR1cm4gcHgtdG8tcmVtKDE2cHgpO1xuICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRmb250LXNpemVzLCAkZm9udHNpemUtdmFsdWUpID09IGZhbHNlIHtcbiAgICBAd2FybiAnSW5kZXggXCIjeyRmb250c2l6ZS12YWx1ZX1cIiBub3QgZm91bmQgaW4gJGZvbnQtc2l6ZXMgU2Fzcy1tYXAgdXNpbmcgZnVuY3Rpb24gZm9udC1zaXplLiBEZWZhdWx0aW5nIHRvIDE2cHgnO1xuICAgIEByZXR1cm4gcHgtdG8tcmVtKDE2cHgpO1xuICB9XG5cbiAgQHJldHVybiBweC10by1yZW0obWFwLWdldCgkZm9udC1zaXplcywgJGZvbnRzaXplLXZhbHVlKSk7XG59XG5cbi8vIGZvbnQtc2l6ZSBtaXhpbiB1c2luZyB0aGUgZnVuY3Rpb24gYWJvdmVcbkBtaXhpbiBmb250LXNpemUoJGZvbnRzaXplLXZhbHVlOiBkZWZhdWx0KSB7XG4gIGZvbnQtc2l6ZTogZm9udC1zaXplKCRmb250c2l6ZS12YWx1ZSk7XG59XG5cbi8vIG1peGlucyBmb3IgZm9udC1mYWNlLCBmb3IgdXNhZ2Ugd2l0aCBmb250ZmFjZW9ic2VydmVyXG5AbWl4aW4gZm9udC1mYW1pbHkoJGZhbWlseS12YWx1ZTogZGVmYXVsdCkge1xuICAkZmFsbGJhY2s6IG51bGw7XG4gICRmb250OiBudWxsO1xuXG4gIEBpZiB2YXJpYWJsZS1leGlzdHMoZm9udHMpID09IGZhbHNlIHtcbiAgICBAd2FybiAnJGZvbnRzIFNhc3MtbWFwIGRvZXMgbm90IGV4aXN0LCBwbGVhc2UgcHJvdmlkZSBvbmUgaW4geW91ciBjb25maWcuIERlZmF1bHRpbmcgdG8gc2Fucy1zZXJmJztcbiAgICAkZmFsbGJhY2s6IHNhbnMtc2VyaWY7XG4gICAgJGZvbnQ6IHNhbnMtc2VyaWY7XG4gIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGZvbnRzLCAkZmFtaWx5LXZhbHVlKSA9PSBmYWxzZSB7XG4gICAgQHdhcm4gJ0luZGV4IFwiI3skZmFtaWx5LXZhbHVlfVwiIG5vdCBmb3VuZCBpbiAkZm9udHMgU2FzcyBtYXAgdXNpbmcgbWl4aW4gZm9udC1mYW1pbHkuIERlZmF1bHRpbmcgdG8gc2Fucy1zZXJpZic7XG4gICAgJGZhbGxiYWNrOiBzYW5zLXNlcmlmO1xuICAgICRmb250OiBzYW5zLXNlcmlmO1xuICB9IEBlbHNlIHtcbiAgICAkZmFsbGJhY2s6IHVucXVvdGUobWFwLWdldChtYXAtZ2V0KCRmb250cywgJGZhbWlseS12YWx1ZSksIGZhbGxiYWNrKSk7XG4gICAgJGZvbnQ6IG1hcC1nZXQobWFwLWdldCgkZm9udHMsICRmYW1pbHktdmFsdWUpLCBmYW1pbHkpLCAkZmFsbGJhY2s7XG4gIH1cblxuICAvLyBub3cgdGhhdCB3ZSBoYXZlIHRoZSBmb250IGFuZCBmYWxsYmFjaywgaWYgd2UgdXNlXG4gIC8vIGZvbnQtZmFjZSwgYWRkIHRoZSBmb250cy1sb2FkZWQgY2xhc3MsIGlmIG5vdCwganVzdCB1c2UgYWxsXG4gIEBpZiBtYXAtZ2V0KG1hcC1nZXQoJGZvbnRzLCAkZmFtaWx5LXZhbHVlKSwgZm9udGZhY2UpID09IHRydWUge1xuICAgIGZvbnQtZmFtaWx5OiAkZmFsbGJhY2s7XG5cbiAgICAuZm9udHMtbG9hZGVkICYge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250O1xuICB9XG59XG5cbi8vIG1peGluIGZvciBmb250LXdlaWdodFxuQG1peGluIGZvbnQtd2VpZ2h0KCRmYW1pbHktdmFsdWU6IGRlZmF1bHQpIHtcbiAgJHRoaXMtZm9udC13ZWlnaHQ6IDQwMDtcblxuICBAaWYgdmFyaWFibGUtZXhpc3RzKGZvbnRzKSA9PSBmYWxzZSB7XG4gICAgQHdhcm4gJyRmb250cyBTYXNzLW1hcCBkb2VzIG5vdCBleGlzdCwgcGxlYXNlIHByb3ZpZGUgb25lIGluIHlvdXIgY29uZmlnLiBEZWZhdWx0aW5nIHRvIDQwMCc7XG4gIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGZvbnRzLCAkZmFtaWx5LXZhbHVlKSA9PSBmYWxzZSB7XG4gICAgQHdhcm4gJ0luZGV4IFwiI3skZmFtaWx5LXZhbHVlfVwiIG5vdCBmb3VuZCBpbiAkZm9udHMgU2FzcyBtYXAgdXNpbmcgbWl4aW4gZm9udC13ZWlnaHQuIERlZmF1bHRpbmcgdG8gNDAwJztcbiAgfSBAZWxzZSB7XG4gICAgJHRoaXMtZm9udC13ZWlnaHQ6IG1hcC1nZXQobWFwLWdldCgkZm9udHMsICRmYW1pbHktdmFsdWUpLCB3ZWlnaHQpO1xuICB9XG5cbiAgZm9udC13ZWlnaHQ6ICR0aGlzLWZvbnQtd2VpZ2h0O1xufVxuXG4vLyBtaXhpbiBmb3IgZm9udC1zdHlsZVxuQG1peGluIGZvbnQtc3R5bGUoJGZhbWlseS12YWx1ZTogZGVmYXVsdCkge1xuICAkdGhpcy1mb250LXN0eWxlOiBub3JtYWw7XG5cbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhmb250cykgPT0gZmFsc2Uge1xuICAgIEB3YXJuICckZm9udHMgU2Fzcy1tYXAgZG9lcyBub3QgZXhpc3QsIHBsZWFzZSBwcm92aWRlIG9uZSBpbiB5b3VyIGNvbmZpZy4gRGVmYXVsdGluZyB0byBub3JtYWwnO1xuICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRmb250cywgJGZhbWlseS12YWx1ZSkgPT0gZmFsc2Uge1xuICAgIEB3YXJuICdJbmRleCBcIiN7JGZhbWlseS12YWx1ZX1cIiBub3QgZm91bmQgaW4gJGZvbnRzIFNhc3MgbWFwIHVzaW5nIG1peGluIGZvbnQtc3R5bGUuIERlZmF1bHRpbmcgdG8gbm9ybWFsJztcbiAgfSBAZWxzZSB7XG4gICAgJHRoaXMtZm9udC1zdHlsZTogdW5xdW90ZShtYXAtZ2V0KG1hcC1nZXQoJGZvbnRzLCAkZmFtaWx5LXZhbHVlKSwgc3R5bGUpKTtcbiAgfVxuXG4gIGZvbnQtc3R5bGU6ICR0aGlzLWZvbnQtc3R5bGU7XG59XG5cbi8vIG5vdyBhbGwgdG9nZXRoZXIsIGZvbnQtc2hvcnRoYW5kIG1peGluXG5AbWl4aW4gZm9udCgkZmFtaWx5LXZhbHVlOiBkZWZhdWx0KSB7XG4gIEBpbmNsdWRlIGZvbnQtZmFtaWx5KCRmYW1pbHktdmFsdWUpO1xuICBAaW5jbHVkZSBmb250LXdlaWdodCgkZmFtaWx5LXZhbHVlKTtcbiAgQGluY2x1ZGUgZm9udC1zdHlsZSgkZmFtaWx5LXZhbHVlKTtcbn1cbiIsImgxIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGgxKTtcbn1cblxuaDIge1xuICBAaW5jbHVkZSBmb250LXNpemUoaDIpO1xufVxuXG5oMyB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShoMyk7XG59XG5cbmg0IHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGg0KTtcbn1cblxuaDUge1xuICBAaW5jbHVkZSBmb250LXNpemUoaDUpO1xufVxuXG5oNiB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShoNik7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIEBpbmNsdWRlIG1hcmdpbihhIDAsIGIgMSk7XG4gIEBpbmNsdWRlIGZvbnQtd2VpZ2h0KG1lZGl1bSk7XG59XG4iLCJhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICBAaW5jbHVkZSBhdHRlbnRpb24ge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuIiwiLy8gYXR0ZW50aW9uIG1peGluIGZvciBob3Zlci0sIGZvY3VzLSBhbmQgYWN0aXZlLXN0YXRlc1xuQG1peGluIGF0dGVudGlvbiB7XG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwidWwsXG5kbCxcbm9sIHtcbiAgQGluY2x1ZGUgbWFyZ2luKGEgMCwgYiAxKTtcbiAgQGluY2x1ZGUgcGFkZGluZyhhIDAsIGwgMSk7XG5cbiAgJiAmIHsgLy8gbm8gbWFyZ2luIGZvciBzdWJsaXN0c1xuICAgIEBpbmNsdWRlIG1hcmdpbihiIDApO1xuICB9XG59XG5cbi8vIG5ldmVyIGV2ZXIgc2hvdyBsaXN0cyBpbiBuYXZpZ2F0aW9uIG9yIGZpZWxkc2V0cyBibG9ja3MgYXMgbGlzdHNcbm5hdixcbmZpZWxkc2V0IHtcbiAgdWwsXG4gIG9sIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKGEgMCk7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxufVxuXG4iLCIvLyBSZW1vdmUgdGhlIGdhcCBiZXR3ZWVuIG1lZGlhIGVsZW1lbnRzIHN1Y2ggYXMgYXVkaW8sIGltYWdlcywgdmlkZW9zIGV0Yy5cbi8vIGFuZCB0aGUgYm90dG9tIG9mIHRoZWlyIGNvbnRhaW5lcnNcbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vLyBtYWtlIHVzZXIgY29udGVudCBtZWRpYSBlbGVtZW50cyByZXNwb25zaXZlIChtYXgtd2lkdGgpXG5hdWRpbyxcbmlmcmFtZSxcbmltZyxcbnZpZGVvIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmZpZ3VyZSB7XG4gIEBpbmNsdWRlIG1hcmdpbihhIDAsIGIgMSk7XG59XG4iLCI6cm9vdCB7XG4gIEBpbmNsdWRlIGNvbG9yKGRlZmF1bHQpO1xuICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWNvbG9yKGJhY2tncm91bmQpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyBzYW5lIGJveC1zaXppbmcgZXZlcnl3aGVyZVxuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTsgLy8gYXMgcmVmZXJlbmNlIGZvciByZW1cbiAgZm9udC1rZXJuaW5nOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IGNvbW1vbi1saWdhdHVyZXMgY29udGV4dHVhbDtcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAna2VybicsICdsaWdhJywgJ2NsaWcnLCAnY2FsdCc7XG4gIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcbiAgdGV4dC1zaXplLWFkanVzdDogMTAwJTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHh4bCkge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICogMS4yO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4eHhsKSB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiAxLjQ7XG4gIH1cbn1cblxuKiB7XG4gICYsXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cbn1cblxuXG5ib2R5IHtcbiAgQGluY2x1ZGUgZm9udChkZWZhdWx0KTtcbiAgQGluY2x1ZGUgYmFja2dyb3VuZC1jb2xvcihiYWNrZ3JvdW5kKTtcblxuICAvLyByZW1vdmUgdGhpcyBpZiB5b3Ugd2FudCBjdXN0b20gcHJpbnQtc3R5bGVzXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkocHJpbnQpIHtcbiAgICAqIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1BsZWFzZSwgZG8gbm90IHdhc3RlIHBhcGVyIGJ5IHByaW50aW5nIHdlYnBhZ2VzLic7XG4gICAgfVxuICB9XG59XG5cbi8vIHRleHQgc2VsZWN0aW9uIHN0eWxlc1xuOjpzZWxlY3Rpb24ge1xuICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWNvbG9yKHNlY29uZCk7XG4gIEBpbmNsdWRlIGNvbG9yKGludmVydGVkKTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4iLCIvLyBhIGZ1bmN0aW9uIHRvIGVhc2lseSBnZXQgdGhlIGNvbG9yIHZhbHVlIG9mIHRoZSBjb2xvcnMtbWFwXG5AZnVuY3Rpb24gY29sb3IoJGNvbG9yLXZhbHVlOiBkZWZhdWx0KSB7XG4gIEBpZiB2YXJpYWJsZS1leGlzdHMoY29sb3JzKSA9PSBmYWxzZSB7XG4gICAgQHdhcm4gJyRjb2xvcnMgU2Fzcy1tYXAgZG9lcyBub3QgZXhpc3QsIHBsZWFzZSBwcm92aWRlIG9uZSBpbiB5b3VyIGNvbmZpZy4gRGVmYXVsdGluZyB0byByZWQnO1xuICAgIEByZXR1cm4gI2YwMDtcbiAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkY29sb3JzLCAkY29sb3ItdmFsdWUpID09IGZhbHNlIHtcbiAgICBAd2FybiAnSW5kZXggXCIjeyRjb2xvci12YWx1ZX1cIiBub3QgZm91bmQgaW4gJGNvbG9ycyBTYXNzLW1hcCB1c2luZyBmdW5jdGlvbiBjb2xvci4gRGVmYXVsdGluZyB0byByZWQnO1xuICAgIEByZXR1cm4gI2YwMDtcbiAgfVxuXG4gIEByZXR1cm4gbWFwLWdldCgkY29sb3JzLCAkY29sb3ItdmFsdWUpO1xufVxuXG4vLyBtaXhpbnMgdXNpbmcgdGhlIGZ1bmN0aW9uIGFib3ZlXG5AbWl4aW4gY29sb3IoJGNvbG9yLXZhbHVlOiBkZWZhdWx0KSB7XG4gIGNvbG9yOiBjb2xvcigkY29sb3ItdmFsdWUpO1xufVxuXG5AbWl4aW4gYmFja2dyb3VuZC1jb2xvcigkY29sb3ItdmFsdWU6IGRlZmF1bHQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJGNvbG9yLXZhbHVlKTtcbn1cblxuQG1peGluIGJvcmRlci1jb2xvcigkY29sb3ItdmFsdWU6IGRlZmF1bHQpIHtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvcigkY29sb3ItdmFsdWUpO1xufVxuXG5AbWl4aW4gZmlsbCgkY29sb3ItdmFsdWU6IGRlZmF1bHQpIHtcbiAgZmlsbDogY29sb3IoJGNvbG9yLXZhbHVlKTtcbn1cbiIsIi8vIGRlZmluZSB5b3VyIGNvbG9ycyBoZXJlLCBhbmQgZmVlbCBmcmVlIHRvIHVzZSAncmVhbCcgbmFtZXMsIGp1c3Rcbi8vIGxpa2UgYmVsb3cgLS0+IGNvbG9yLXJlZDogI2ZmZjsgYnV0IG5ldmVyIHVzZSB0aG9zZSBjb2xvcnMgaW4geW91clxuLy8gcHJvamVjdCwgb25seSB1c2UgdGhlIG1hcCArIG1peGlucywgd2hlcmUgeW91IGFzc2luZyB0aGUgY29sb3JzIGluXG5cbiRjb2xvci1ibGFjazogIzAwMDtcbiRjb2xvci13aGl0ZTogI2ZmZjtcbiRjb2xvci1ncmVlbjogcmdiKDYxLCAxNzAsIDE0MSk7XG4kY29sb3ItcmVkOiByZ2IoMjQyLCA5NywgMzgpO1xuJGNvbG9yLXR1cnFvaXNlOiByZ2IoMTI0LCAyMDQsIDE5Myk7XG4kY29sb3IteWVsbG93OiByZ2IoMjQyLCAyMTEsIDYyKTtcbiRjb2xvci1ibGFlaDogI2YyZTQ4MjtcbiRjb2xvci1ibHVlOiByZ2IoMzcsIDEyMCwgMTY5KTtcblxuJGNvbG9yczogKFxuICBkZWZhdWx0OiAkY29sb3ItYmxhY2ssXG4gIG1haW46ICRjb2xvci1yZWQsXG4gIHNlY29uZDogJGNvbG9yLXJlZCxcbiAgaW52ZXJ0ZWQ6ICRjb2xvci13aGl0ZSxcbiAgYm9yZGVyOiAkY29sb3ItYmxhY2ssXG4gIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZVxuKTtcbiIsIi8vIGJhc2UgdW5pdCBkZWZpbml0aW9uIGFuZCB3aWR0aC9oZWlnaHRzIGZvciBvdGhlciBzdHVmZlxuJGJhc2UtZm9udC1zaXplOiAxOHB4O1xuJGJhc2UtbGluZS1oZWlnaHQ6IDEuMztcblxuJGJhc2UtdW5pdDogMXJlbSAqICRiYXNlLWxpbmUtaGVpZ2h0O1xuJGJhc2UtaGFsZjogJGJhc2UtdW5pdCAvIDI7XG4kYmFzZS10aGlyZDogJGJhc2UtdW5pdCAvIDM7XG4kYmFzZS1xdWFydDogJGJhc2UtdW5pdCAvIDQ7XG4kYmFzZS1kb3VibGU6ICRiYXNlLXVuaXQgKiAyO1xuJGJhc2UtdHJpcGxlOiAkYmFzZS11bml0ICogMztcbiRiYXNlLXF1YWQ6ICRiYXNlLXVuaXQgKiA0O1xuIiwiLy8gYSBzbWFsbCBoZWxwZXIgZm9yIGVhc2llciBtZWRpYXF1ZXJpZXMgLSBqdXN0IGRlZmluZSB0aGVcbi8vIGJyZWFrcG9pbnRzIGluIHlvdXIgY29uZmlnIGFzIGEgbWFwIGFuZCB5b3UgYXJlIHJlYWR5IHRvIGdvXG4vLyBieSBkZWZhdWx0IHdlIHVzZSB0aGUgbW9iaWxlLWZpcnN0IGlkZWEsIG5vIG1xID09IG1vYmlsZVxuLy8geW91IGNhbiBzZXQgdGhlIHNlY29uZCBwYXJhbWV0ZXIgdG8gdHJ1ZSBhbiBwcm92aWRlIGEgY3VzdG9tIG1lZGlhcXVlcnlcbkBtaXhpbiBtZWRpYXF1ZXJ5KCRicmVha3BvaW50LXZhbHVlLCAkY3VzdG9tLXF1ZXJ5OiBmYWxzZSkge1xuICBAaWYgJGJyZWFrcG9pbnQtdmFsdWUgPT0gcHJpbnQgeyAvLyBwcmludCBzdHlsZXNcbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRicmVha3BvaW50LXZhbHVlID09IGxhbmRzY2FwZSB7IC8vIGxhbmRzY2FwZSBhbmQgcG9ydHJhaXQgbWVkaWFxdWVyaWVzXG4gICAgQG1lZGlhIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQtdmFsdWUgPT0gcG9ydHJhaXQge1xuICAgIEBtZWRpYSAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGN1c3RvbS1xdWVyeSB7IC8vIGN1c3RvbSBtZWRpYXF1ZXJpZXNcbiAgICBAaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFrcG9pbnRzKSA9PSBmYWxzZSB7XG4gICAgICBAd2FybiAnJGJyZWFrcG9pbnRzIFNhc3MtbWFwIGRvZXMgbm90IGV4aXN0LCBwbGVhc2UgcHJvdmlkZSBvbmUgaW4geW91ciBjb25maWcnO1xuICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC12YWx1ZSkgPT0gZmFsc2Uge1xuICAgICAgQHdhcm4gJ0luZGV4IFwiI3skYnJlYWtwb2ludC12YWx1ZX1cIiBub3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzIFNhc3MtbWFwIHVzaW5nIG1peGluIG1lZGlhcXVlcnknO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQG1lZGlhICN7bWFwLWdldCgkYnJlYWtwb2ludHMsICRicmVha3BvaW50LXZhbHVlKX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH0gQGVsc2UgeyAvLyBkZWZhdWx0OiBtb2JpbGUtZmlyc3QgbWVkaWFxdWVyaWVzIGFzIGRlZmluZWQgaW4gYnJlYWtwb2ludHMsIHRoZXkgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gZW1cbiAgICBAaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFrcG9pbnRzKSA9PSBmYWxzZSB7XG4gICAgICBAd2FybiAnJGJyZWFrcG9pbnRzIFNhc3MtbWFwIGRvZXMgbm90IGV4aXN0LCBwbGVhc2UgcHJvdmlkZSBvbmUgaW4geW91ciBjb25maWcnO1xuICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC12YWx1ZSkgPT0gZmFsc2Uge1xuICAgICAgQHdhcm4gJ0luZGV4IFwiI3skYnJlYWtwb2ludC12YWx1ZX1cIiBub3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzIFNhc3MtbWFwIHVzaW5nIG1peGluIG1lZGlhcXVlcnknO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7bWFwLWdldCgkYnJlYWtwb2ludHMsICRicmVha3BvaW50LXZhbHVlKSAqIDFweH0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyB1c2UgdGhlIGZ1bGwgYXZhaWFibGUgd2lkdGggYnkgZGVmYXVsdGpcbnRhYmxlIHtcbiAgQGluY2x1ZGUgbWFyZ2luKGEgMCwgYiAxKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbi8vIGFsaWduIGNvbnRlbnQgaW4gdGFibGUgY2VsbHMgdG8gdGhlIHRvcCBieSBkZWZhdWx0XG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLy8gYWxpZ24gY29udGVudCB0byB0aGUgbGVmdCBmb3IgdGFibGUgaGVhZGluZ3NcbnRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuIiwiLy8gVGV4dCBhbmQgb3RoZXIgaW5saW5lIGVsZW1lbnRzXG4vLyBkZWZhdWx0IGhyIGlzIGp1c3QgYSBzaW5nbGUgbGluZSAxcHggaGlnaCwgZmVlbCBmcmVlIHRvIG92ZXJyaWRlXG5ociB7XG4gIEBpbmNsdWRlIG1hcmdpbihoIGF1dG8sIGIgMSwgdCAwKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA5MCU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbn1cblxucHJlLFxucCB7XG4gIEBpbmNsdWRlIG1hcmdpbihhIDAsIGIgMSk7XG59XG5cbnN1YixcbnN1cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG4iLCIvLyBzdmcgaWNvbnMgYW5kIGN1c3RvbSBpY29uIHN0eWxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBkZWZhdWx0IGljb24gc3R5bGVzIC0gaW5saW5lLCBzYW1lIGNvbG9yLCAxZW0vMWVtXG4uaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMC4wNjI1ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDFlbTtcbiAgaGVpZ2h0OiAxZW07XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cblxuIiwiLmltYWdlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4iLCIkYnVyZ2VyLXdpZHRoOiAzMHB4O1xuJGJ1cmdlci1oZWlnaHQ6IDIycHg7XG4kYnVyZ2VyLWRpYWdvbmFsOiAyOHB4O1xuJGJ1cmdlci1hbmdsZTogNDVkZWc7XG5cbi5idXJnZXIge1xuICBAaW5jbHVkZSBibG9jaztcbiAgQGluY2x1ZGUgZml4ZWQoYiAxLjUsIHIgMSk7XG4gIEBpbmNsdWRlIGJhY2tncm91bmQtY29sb3IobWFpbik7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsKTtcbiAgQGluY2x1ZGUgei1pbmRleChrbmVlcyk7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuXG4gIEBpbmNsdWRlIGF0dGVudGlvbiB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1jb2xvcihzZWNvbmQpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6ICRiYXNlLXVuaXQgKiAxLjU7XG4gICAgd2lkdGg6IDY1cHg7XG4gICAgaGVpZ2h0OiA2NXB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4eHhsKSB7XG4gICAgdG9wOiAkYmFzZS1kb3VibGU7XG4gIH1cbn1cblxuLmJ1cmdlcl9faW5uZXIge1xuICBAaW5jbHVkZSBjZW50ZXIoYm90aCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJGJ1cmdlci13aWR0aDtcbiAgaGVpZ2h0OiAkYnVyZ2VyLWhlaWdodDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuXG4gIC5idXJnZXJbYXJpYS1leHBhbmRlZD0ndHJ1ZSddICYge1xuICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gIH1cbn1cblxuLmJ1cmdlcl9fbGluZSB7XG4gIEBpbmNsdWRlIGJhY2tncm91bmQtY29sb3IoaW52ZXJ0ZWQpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSBvcGFjaXR5IGxlZnQgd2lkdGgpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6ICRidXJnZXItd2lkdGg7XG4gIGhlaWdodDogM3B4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG5cbiAgJjpudGgtb2YtdHlwZSgxKSB7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gIH1cblxuICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICBAaW5jbHVkZSBjZW50ZXIodmVydGljYWwpO1xuICB9XG5cbiAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGUoYiAwLCBsIDApO1xuICB9XG59XG5cbi8vIGF0IHRoZSBib3R0b20gb2YgdGhpcyBmaWxlLCBmb3IgYmV0dGVyIGNhc2NhZGVcbi5idXJnZXJbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIHtcbiAgcmlnaHQ6IGNhbGMoMjQwcHggKyAjeyRiYXNlLWhhbGZ9KTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KG0pIHtcbiAgICByaWdodDogY2FsYygzMjBweCArICN7JGJhc2UtaGFsZn0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4eGwpIHtcbiAgICByaWdodDogY2FsYygzODBweCArICN7JGJhc2UtaGFsZn0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4eHhsKSB7XG4gICAgcmlnaHQ6IGNhbGMoNDQwcHggKyAjeyRiYXNlLWhhbGZ9KTtcbiAgfVxuXG4gIC5idXJnZXJfX2xpbmUge1xuICAgIHdpZHRoOiAkYnVyZ2VyLWRpYWdvbmFsO1xuICAgIGxlZnQ6ICgkYnVyZ2VyLXdpZHRoIC0gJGJ1cmdlci1oZWlnaHQpIC8gMjtcblxuICAgICY6bnRoLW9mLXR5cGUoMSkge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoI3skYnVyZ2VyLWFuZ2xlfSk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtI3skYnVyZ2VyLWFuZ2xlfSk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuIiwiLy8gbWl4aW4gZm9yIHNldHRpbmcgZGlzcGxheSBibG9jayBhbmQgb3RoZXIgb2Z0ZW4gdXNlZCBjb21iaW5hdGlvbnNcbkBtaXhpbiBibG9jaygkYmxvY2stdmFsdWU6IGRlZmF1bHQpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAaWYgJGJsb2NrLXZhbHVlID09IHBzZXVkbyB7XG4gICAgY29udGVudDogJyc7XG4gIH0gQGVsc2UgaWYgJGJsb2NrLXZhbHVlID09IGJsb2NrIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG4iLCIvLyB0aGFua3MgdG8gaHVnbyBnaXJhdWRlbDogaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNC8wNS8xOS9uZXctb2Zmc2V0cy1zYXNzLW1peGluL1xuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbiwgJHBvc2l0aW9uLWFyZ3MuLi4pIHtcbiAgLy8gZGVmYXVsdCBjYXNlIGZvciBwb3NpdGlvbnM6XG4gIC8vIGZpeGVkLCBhYnNvbHV0ZSA9PT4gdG9wOiAwOyBsZWZ0OiAwO1xuICAvLyBzdGF0aWMsIHJlbGF0aXZlOiB0b3A6IGF1dG87IGxlZnQ6IGF1dG87XG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGlmIGxlbmd0aCgkcG9zaXRpb24tYXJncykgPT0gMCB7XG4gICAgQGlmICRwb3NpdGlvbiA9PSBhYnNvbHV0ZSBvciBwb3NpdGlvbiA9PSBmaXhlZCB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdG9wOiBhdXRvO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBlYWNoICRwb3NpdGlvbi1rZXksICRwb3NpdGlvbi12YWx1ZSBpbiAkcG9zaXRpb24tYXJncyB7XG4gICAgICBAaWYgbm90ICRwb3NpdGlvbi12YWx1ZSB7XG4gICAgICAgIEB3YXJuICdZb3Ugc2hvdWxkIHByb3ZpZGUgYSBsaXN0IG9mIHNpZGUvdmFsdWUgcGFpcnMgZS5nLiBcImIgMlwiIGZvciB0aGlzIG1peGluIHRvIHdvcmsnO1xuICAgICAgfSBAZWxzZSBpZiAkcG9zaXRpb24ta2V5ID09ICdhJyB7XG4gICAgICAgICR2YWx1ZTogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgICB0b3A6ICR2YWx1ZTtcbiAgICAgICAgcmlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgYm90dG9tOiAkdmFsdWU7XG4gICAgICAgIGxlZnQ6ICR2YWx1ZTtcbiAgICAgIH0gQGVsc2UgaWYgJHBvc2l0aW9uLWtleSA9PSAndicge1xuICAgICAgICB0b3A6IHBhcnNlLXVuaXQoJHBvc2l0aW9uLXZhbHVlKTtcbiAgICAgICAgYm90dG9tOiBwYXJzZS11bml0KCRwb3NpdGlvbi12YWx1ZSk7XG4gICAgICB9IEBlbHNlIGlmICRwb3NpdGlvbi1rZXkgPT0gJ2gnIHtcbiAgICAgICAgcmlnaHQ6IHBhcnNlLXVuaXQoJHBvc2l0aW9uLXZhbHVlKTtcbiAgICAgICAgbGVmdDogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzaWRlOiBwb3NpdGlvbi1tYXAoJHBvc2l0aW9uLWtleSk7XG4gICAgICAgICR2YWx1ZTogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgICAjeyRzaWRlfTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYWJzb2x1dGUoJGFyZ3MuLi4pIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsICRhcmdzLi4uKTtcbn1cblxuQG1peGluIGZpeGVkKCRhcmdzLi4uKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAkYXJncy4uLik7XG59XG5cbkBtaXhpbiByZWxhdGl2ZSgkYXJncy4uLikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgJGFyZ3MuLi4pO1xufVxuXG5AbWl4aW4gc3RhdGljKCRhcmdzLi4uKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKHN0YXRpYywgJGFyZ3MuLi4pO1xufVxuIiwiJGFuaW1hdGlvbi1lYXNlLWRlZmF1bHQ6IGVhc2UtaW47XG4kYW5pbWF0aW9uLXRyYW5zaXRpb24tcHJvcGVydGllczogdHJhbnNmb3JtIG9wYWNpdHk7XG5cbiRhbmltYXRpb24tdGltZS1mYXN0OiAwLjE1cztcbiRhbmltYXRpb24tdGltZS1kZWZhdWx0OiAwLjNzO1xuJGFuaW1hdGlvbi10aW1lLXNsb3c6IDAuNnM7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wczogJGFuaW1hdGlvbi10cmFuc2l0aW9uLXByb3BlcnRpZXMsICR0aW1lOiAkYW5pbWF0aW9uLXRpbWUtZGVmYXVsdCwgJGVhc2U6ICRhbmltYXRpb24tZWFzZS1kZWZhdWx0KSB7XG4gICR0cmFuc2l0aW9uOiAnJztcbiAgJHdpbGwtY2hhbmdlOiAnJztcblxuICBAZWFjaCAkcCBpbiAkcHJvcHMge1xuICAgIC8vIHdlIGRvIG5vdCBuZWVkIHRoZSBjb21tYSwgaWYgd2UgYXJlIGp1c3Qgc3RhcnRpbmcgdG8gY29tYmluZSB0aGUgc3RyaW5nXG4gICAgQGlmICR0cmFuc2l0aW9uID09ICcnIHtcbiAgICAgICR0cmFuc2l0aW9uOiAnI3skcH0gI3skdGltZX0gI3skZWFzZX0nO1xuICAgICAgJHdpbGwtY2hhbmdlOiAnI3skcH0nO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHRyYW5zaXRpb246ICcjeyR0cmFuc2l0aW9ufSwgI3skcH0gI3skdGltZX0gI3skZWFzZX0nO1xuICAgICAgJHdpbGwtY2hhbmdlOiAnI3skd2lsbC1jaGFuZ2V9LCAjeyRwfSc7XG4gICAgfVxuICB9XG5cbiAgd2lsbC1jaGFuZ2U6ICN7JHdpbGwtY2hhbmdlfTtcbiAgdHJhbnNpdGlvbjogI3skdHJhbnNpdGlvbn07XG59XG5cbiIsIi8vIHotaW5kZXggbWl4aW4gZm9yIHVzZSB3aXRoIHRoZSBtYXAgaW4gdmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIHByb3ZpZGUgYSBkZWZhdWx0IG1hcCBmb3Igei1pbmRleGVzIHVzZWQgdGhyb3VnaG91dCB0aGUgcHJvamVjdFxuLy8gd2l0aCBhbiBlYXN5IHRvIHJlbWVtYmVyIHN0YWNraW5nIGhpZXJhcmNoeSDigJTCoGp1c3QgbG9vayBkb3duIHlvdXIgYm9keSFcbi8vIElmIHlvdSB3YW50IHRvIHVzZSB5b3VyIG93biBtYXAsIGp1c3QgcHJvdmlkZSBvbmUgd2l0aCB0aGUgdmFyaWFibGUgJHotaW5kZXhlc1xuLy8gYmVmb3JlIGluY2x1ZGluZyB0aGlzIGZpbGUgaW4geW91ciBtYWluIFNhc3MgZmlsZVxuJHotaW5kZXhlczogKFxuICBza3k6IDEwMDAsXG4gIGhhaXI6IDUwLFxuICBoZWFkOiA0MCxcbiAgYnJlYXN0OiAzMCxcbiAgYmVsbHk6IDIwLFxuICBrbmVlczogMTAsXG4gIGZlZXQ6IDEsXG4gIGRlZmF1bHQ6IDAsXG4gIGdyb3VuZDogLTFcbikgIWRlZmF1bHQ7XG5cbi8vIGFuZCBhbiBlYXN5IHRvIHVzZSBtaXhpbiB0byB1c2UgYSB2YWx1ZSBmcm9tIHRoZSBtYXAgYWJvdmUgdXNlIGxpa2UgdGhpczpcbi8vIEBpbmNsdWRlIHotaW5kZXgoa25lZXMpOyA9PT4gei1pbmRleDogMTA7XG5cbkBtaXhpbiB6LWluZGV4KCR6LXZhbHVlOiBkZWZhdWx0KSB7XG4gIHotaW5kZXg6IHotaW5kZXgoJHotdmFsdWUpO1xufVxuXG4vLyBhbmQgaWYgbmVlZGVkIGEgZnVuY3Rpb24gdG8gZ2V0IHRoZSB2YWx1ZSBmcm9tIHRoZSBtYXAgd2l0aCxcbi8vIHRoaXMgaXMgYmFzaWNhbGx5IGp1c3QgYW4gYWxpYXMgZm9yIG1hcC1nZXQoJHotaW5kZXhlcy4uLilcbkBmdW5jdGlvbiB6LWluZGV4KCR6LXZhbHVlOiBkZWZhdWx0KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkei1pbmRleGVzLCAkei12YWx1ZSkgPT0gZmFsc2Uge1xuICAgIEB3YXJuICdJbmRleCBcIiN7JHotdmFsdWV9XCIgbm90IGZvdW5kIGluICR6LWluZGV4ZXMgU2Fzcy1tYXAgdXNpbmcgbWl4aW4gei1pbmRleC4gRGVmYXVsdGluZyB0byAwJztcbiAgICBAcmV0dXJuIDA7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1nZXQoJHotaW5kZXhlcywgJHotdmFsdWUpO1xufVxuIiwiLy8gYSBtaXhpbiBmb3IgY2VudGVyaW5nIHdpdGggZGlmZmVyZW50IG1ldGhvZHNcbkBtaXhpbiBjZW50ZXIoJGNvbnRleHQ6IGRlZmF1bHQpIHtcbiAgQGlmICRjb250ZXh0ID09IGhvcml6b250YWwge1xuICAgIEBpbmNsdWRlIGFic29sdXRlKGwgNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH0gQGVsc2UgaWYgJGNvbnRleHQgPT0gdmVydGljYWwge1xuICAgIEBpbmNsdWRlIGFic29sdXRlKHQgNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH0gQGVsc2UgaWYgJGNvbnRleHQgPT0gYm90aCB7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGUodCA1MCUsIGwgNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgfSBAZWxzZSBpZiAkY29udGV4dCA9PSBjb3ZlciB7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGUoYSAwKTtcbiAgfSBAZWxzZSB7IC8vIGFzc3VtaW5nIGRlZmF1bHQgY2FzZSAtIG9sZHNjaG9vbCBob3Jpem9udGFsIGNlbnRlcmluZ1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuIiwiLm5hdiB7XG4gIEBpbmNsdWRlIGZpeGVkKHQgMCwgYiAwLCByIDApO1xuICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWNvbG9yKG1haW4pO1xuICBAaW5jbHVkZSBjb2xvcihpbnZlcnRlZCk7XG4gIEBpbmNsdWRlIHotaW5kZXgoYmVsbHkpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuICBAaW5jbHVkZSBwYWRkaW5nKGEgMS8yKTtcbiAgd2lkdGg6IDI0MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTEwJSk7XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShtKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZztcbiAgICB3aWR0aDogMzIwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHh4bCkge1xuICAgIHdpZHRoOiAzODBweDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeHh4bCkge1xuICAgIHdpZHRoOiA0NDBweDtcbiAgfVxufVxuXG4ubmF2LS1vcGVuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4ubmF2X190aXRsZSB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShtaWRkbGUpO1xuICBAaW5jbHVkZSBmb250LXdlaWdodChtZWRpdW0pO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkocykge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShoMSk7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KG0pIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoc2VtaWh1Z2UpO1xuICB9XG59XG5cbi5uYXZfX3RpdGxlLS12aXN1YWxseWhpZGRlbiB7XG4gIEBpbmNsdWRlIHZpc3VhbGx5aGlkZGVuO1xufVxuXG4ubmF2X19saW5rIHtcbiAgQGluY2x1ZGUgY29sb3IoaW52ZXJ0ZWQpO1xuICBAaW5jbHVkZSBmb250KG1lZGl1bSk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShoMyk7XG5cbiAgQGluY2x1ZGUgYXR0ZW50aW9uIHtcbiAgICBAaW5jbHVkZSBjb2xvcihzZWNvbmQpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShtKSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKGgyKTtcbiAgfVxuXG4gIC5uYXZfX2xpc3QtLW1ldGEgJiB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKGRlZmF1bHQpO1xuICB9XG59XG5cbi5uYXZfX2xpc3QtLW1ldGEge1xuICBAaW5jbHVkZSBtYXJnaW4odiAyKTtcbn1cblxuLm5hdl9fc29jaWFsLWxpbmsge1xuICBAaW5jbHVkZSBjb2xvcihpbnZlcnRlZCk7XG4gIEBpbmNsdWRlIG1hcmdpbihyIDEvMik7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBAaW5jbHVkZSBhdHRlbnRpb24ge1xuICAgIEBpbmNsdWRlIGNvbG9yKHNlY29uZCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi5uYXZfX3NvY2lhbC1pY29uIHtcbiAgd2lkdGg6IDEuNGVtO1xuICBoZWlnaHQ6IDEuNGVtO1xufVxuXG5cbiIsIi8vIGhlbHBlcnMgdG8gaGlkZSBlbGVtZW50cyBpbiB2YXJpb3VzIHdheXNcbkBtaXhpbiB2aXN1YWxseWhpZGRlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuXG4gICYuZm9jdXNhYmxlIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgY2xpcDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuQG1peGluIHVuaGlkZGVuKCRkaXNwbGF5OiBibG9jaykge1xuICBkaXNwbGF5OiAjeyRkaXNwbGF5fTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbiIsIi5iYWNrZ3JvdW5kIHtcbiAgQGluY2x1ZGUgY2VudGVyKGNvdmVyKTtcbiAgQGluY2x1ZGUgei1pbmRleChkZWZhdWx0KTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5iYWNrZ3JvdW5kX19pbWFnZSxcbi5iYWNrZ3JvdW5kX192aWRlbyB7XG4gIHdpZHRoOiAyMDB2dztcbiAgaGVpZ2h0OiAyMDB2aDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgb2JqZWN0LXBvc2l0aW9uOiA1MCUgNTAlO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeGwpIHtcbiAgICB3aWR0aDogMzAwdnc7XG4gICAgaGVpZ2h0OiAzMDB2aDtcbiAgfVxufVxuXG4uYmFja2dyb3VuZF9fdmlkZW8ge1xuICBAaW5jbHVkZSBoaWRkZW47XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIEBpbmNsdWRlIHVuaGlkZGVuO1xuICB9XG59XG5cbi5iYWNrZ3JvdW5kX19pbWFnZSB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWF4LWhlaWdodDogbm9uZTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgQGluY2x1ZGUgaGlkZGVuO1xuICB9XG59XG4iLCIuY29udGVudCB7XG4gIEBpbmNsdWRlIGJsb2NrO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobCkge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShoNCk7XG4gIH1cbn1cblxuLmNvbnRlbnRfX2FkZGl0aW9uYWwsXG4uY29udGVudF9fdGV4dCB7XG4gIGgyLFxuICBoMyxcbiAgaDQge1xuICAgIEBpbmNsdWRlIGNvbG9yKG1haW4pO1xuICB9XG5cbiAgaDMsXG4gIGg0IHtcbiAgICBAaW5jbHVkZSBmb250LXdlaWdodChzZW1pYm9sZCk7XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBjb2xvcihtYWluKTtcblxuICAgIEBpbmNsdWRlIGF0dGVudGlvbiB7XG4gICAgICBAaW5jbHVkZSBjb2xvcihkZWZhdWx0KTtcbiAgICB9XG4gIH1cbn1cblxuLmNvbnRlbnQtLWxhcmdlIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGg0KTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoaDMpO1xuICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0KGRlZmF1bHQpO1xuICB9XG59XG5cbi5jb250ZW50X19pbWFnZSB7XG4gIEBpbmNsdWRlIG1hcmdpbjtcbn1cblxuLmNvbnRlbnRfX2ltYWdlLFxuLmNvbnRlbnRfX2ltYWdlcyB7XG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobCkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcobCAyMCUpO1xuICB9XG59XG4iLCIkZGF5LWRhdGUtd2lkdGgtZGVza3RvcDogMzUwcHg7XG4kZGF5LWRhdGUtd2lkdGgtZGVza3RvcC1sYXJnZTogNDIwcHg7XG5cbkBrZXlmcmFtZXMgZGF5LWV2ZW50LWhlYWRlci1hbmltYXRpb24ge1xuICAwJSB7IEBpbmNsdWRlIGNvbG9yKHNlY29uZCk7IH1cbiAgNDUlIHsgQGluY2x1ZGUgY29sb3IoZGVmYXVsdCk7IH1cbiAgNTUlIHsgQGluY2x1ZGUgY29sb3IoZGVmYXVsdCk7IH1cbiAgMTAwJSB7IEBpbmNsdWRlIGNvbG9yKHNlY29uZCk7IH1cbn1cblxuLmRheSB7XG4gIEBpbmNsdWRlIGJsb2NrO1xufVxuXG4uZGF5X19kYXRlIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGh1Z2UpO1xuICBAaW5jbHVkZSBtYXJnaW4odiAxKTtcbiAgbGluZS1oZWlnaHQ6IDAuOTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBlbSB7XG4gICAgQGluY2x1ZGUgcmVsYXRpdmUobCAtMC4wNWVtKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBzZXJpZjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeGwpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogJGRheS1kYXRlLXdpZHRoLWRlc2t0b3A7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHh4eGwpIHtcbiAgICB3aWR0aDogJGRheS1kYXRlLXdpZHRoLWRlc2t0b3AtbGFyZ2U7XG4gIH1cbn1cblxuLmRheV9fZXZlbnRzLWhlYWRlciB7XG4gIEBpbmNsdWRlIG1hcmdpbihiIDEvMiwgdCAxLjUpO1xuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKCN7JGRheS1kYXRlLXdpZHRoLWRlc2t0b3B9ICsgI3skYmFzZS11bml0fSk7XG5cbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKHQgLTQuNSk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4eHhsKSB7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKCN7JGRheS1kYXRlLXdpZHRoLWRlc2t0b3AtbGFyZ2V9ICsgI3skYmFzZS11bml0fSk7XG4gIH1cbn1cblxuLmRheV9fZXZlbnRzLXN1YnRpdGxlIHtcbiAgQGluY2x1ZGUgY29sb3Ioc2Vjb25kKTtcbiAgQGluY2x1ZGUgZm9udC13ZWlnaHQoc2VtaWJvbGQpO1xuICBAaW5jbHVkZSBtYXJnaW4oYiAwKTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgaHlwaGVuczogYXV0bztcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKGgyKTtcbiAgfVxufVxuXG4uZGF5X19ldmVudHMtY2F0ZWdvcnkge1xuICBAaW5jbHVkZSBmb250LXdlaWdodChkZWZhdWx0KTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGRlZmF1bHQpO1xuICBAaW5jbHVkZSBtYXJnaW4oYiAwKTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKGgzKTtcbiAgfVxufVxuXG4uZGF5X19ldmVudCB7XG4gIEBpbmNsdWRlIG1hcmdpbihiIDEvNCk7XG59XG5cbi5kYXlfX2V2ZW50LWhlYWRlciB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoaCAwLCB2IDEvNSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICBAaW5jbHVkZSBhdHRlbnRpb24ge1xuICAgIGFuaW1hdGlvbjogZGF5LWV2ZW50LWhlYWRlci1hbmltYXRpb24gM3MgbGluZWFyIGluZmluaXRlIHJ1bm5pbmc7XG4gIH1cbn1cblxuLmRheV9fZXZlbnQtdGltZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDIwJTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHMpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKHQgNHB4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeGwpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKGwgOCwgdCAycHgpO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShoMyk7XG4gICAgd2lkdGg6IGNhbGMoI3skZGF5LWRhdGUtd2lkdGgtZGVza3RvcH0gKyAjeyRiYXNlLXVuaXR9KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeHh4bCkge1xuICAgIHdpZHRoOiBjYWxjKCN7JGRheS1kYXRlLXdpZHRoLWRlc2t0b3AtbGFyZ2V9ICsgI3skYmFzZS11bml0fSk7XG4gIH1cbn1cblxuLmRheV9fZXZlbnQtdGl0bGUge1xuICBAaW5jbHVkZSBmb250LXdlaWdodChzZW1pYm9sZCk7XG4gIEBpbmNsdWRlIG1hcmdpbihiIDApO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA4MCU7XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShzKSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKGg0KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeGwpIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoaDIpO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRkYXktZGF0ZS13aWR0aC1kZXNrdG9wfSAtICN7JGJhc2UtdW5pdH0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4eHhsKSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JGRheS1kYXRlLXdpZHRoLWRlc2t0b3AtbGFyZ2V9IC0gI3skYmFzZS11bml0fSk7XG4gIH1cbn1cblxuLmRheV9fZXZlbnQtaW5mbyB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24obWF4LWhlaWdodCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygjeyRkYXktZGF0ZS13aWR0aC1kZXNrdG9wfSArICN7JGJhc2UtdW5pdH0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4eHhsKSB7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKCN7JGRheS1kYXRlLXdpZHRoLWRlc2t0b3AtbGFyZ2V9ICsgI3skYmFzZS11bml0fSk7XG4gIH1cblxuICAmW2FyaWEtaGlkZGVuPSd0cnVlJ10ge1xuICAgIG1heC1oZWlnaHQ6IDA7XG4gIH1cblxuICAmW2FyaWEtaGlkZGVuPSdmYWxzZSddIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKHQgMS8yLCBiIDEpO1xuICAgIG1heC1oZWlnaHQ6IDIwMHZoO1xuICB9XG5cbiAgcCB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKGIgMS8yKTtcbiAgfVxufVxuXG4uZGF5X19ldmVudC10ZXh0IHtcbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShtKSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKGg0KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeHhsKSB7XG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQobWVkaXVtKTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoaDMpO1xuICB9XG59XG5cbi5kYXlfX2V2ZW50LXRleHQsXG4uZGF5X19ldmVudC1hdXRob3Ige1xuICBwIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oYiAxLzQpO1xuICB9XG59XG5cbi5kYXlfX2V2ZW50LWF1dGhvciB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShoNik7XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShtKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhsIDIwJSk7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhsIDApO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShoNSk7XG4gIH1cbn1cblxuLmRheV9fZXZlbnQtbGl2ZSB7XG4gIEBpbmNsdWRlIGNvbG9yKGludmVydGVkKTtcbiAgQGluY2x1ZGUgYmFja2dyb3VuZC1jb2xvcihtYWluKTtcbiAgQGluY2x1ZGUgcGFkZGluZyhoIDEvNCk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmRheV9fZXZlbnQtYWRkaXRpb25hbCB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShoNSk7XG59XG5cbi5kYXlfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBtYXJnaW4odCAxKTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGg0KTtcblxuICBwIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oYiAxLzIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcobCA4KTtcbiAgfVxufVxuIiwiLyohXG4gKiBiYWd1ZXR0ZUJveC5qc1xuICogQGF1dGhvciAgZmVpbW9zaVxuICogQHZlcnNpb24gJSVJTkpFQ1RfVkVSU0lPTiUlXG4gKiBAdXJsIGh0dHBzOi8vZ2l0aHViLmNvbS9mZWltb3NpL2JhZ3VldHRlQm94LmpzXG4gKi9cblxuI2JhZ3VldHRlQm94LW92ZXJsYXkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogMTAwMDAwMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjgpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjVzIGVhc2U7XG5cbiAgICAmLnZpc2libGUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIC5mdWxsLWltYWdlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBmaWd1cmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgbWFyZ2luOiAwOyAgICAgIC8vIG5lZWRlZCBmb3IgbW9iaWxlXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7ICAgLy8gT3BlcmEgMTIgaW1hZ2Ugc3RyZXRjaGluZyBmaXhcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICAvLyBJRTggZml4XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwwLDAsLjYpO1xuICAgICAgICB9XG5cbiAgICAgICAgZmlnY2FwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC42KTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogNTAlO1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDotMXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jYmFndWV0dGVCb3gtc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAuNHMgZWFzZSwgdHJhbnNmb3JtIC40cyBlYXNlO1xuXG4gICAgJi5ib3VuY2UtZnJvbS1yaWdodCB7XG4gICAgICAgIGFuaW1hdGlvbjogYm91bmNlRnJvbVJpZ2h0IC40cyBlYXNlLW91dDtcbiAgICB9XG5cbiAgICAmLmJvdW5jZS1mcm9tLWxlZnQge1xuICAgICAgICBhbmltYXRpb246IGJvdW5jZUZyb21MZWZ0IC40cyBlYXNlLW91dDtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlRnJvbVJpZ2h0e1xuICAgIDAlIHsgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICA1MCUgeyBtYXJnaW4tbGVmdDogLTMwcHg7IH1cbiAgICAxMDAlIHsgbWFyZ2luLWxlZnQ6IDA7IH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VGcm9tTGVmdHtcbiAgICAwJSB7IG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgNTAlIHsgbWFyZ2luLWxlZnQ6IDMwcHg7IH1cbiAgICAxMDAlIHsgbWFyZ2luLWxlZnQ6IDA7IH1cbn1cblxuJWFycm93LWJ1dHRvbiB7XG4gICAgdG9wOiA1MCU7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDMwcHgpO1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNjBweDtcbn1cblxuLmJhZ3VldHRlQm94LWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAxNSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzIzMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDUwLDUwLDUwLC41KTtcbiAgICBjb2xvcjogI2RkZDtcbiAgICBmb250OiAxLjZlbSBzYW5zLXNlcmlmO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjRzIGVhc2U7XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDUwLDUwLDUwLC45KTtcbiAgICB9XG5cbiAgICAmI25leHQtYnV0dG9uIHtcbiAgICAgICAgQGV4dGVuZCAlYXJyb3ctYnV0dG9uO1xuICAgICAgICByaWdodDogMiU7XG4gICAgfVxuXG4gICAgJiNwcmV2aW91cy1idXR0b24ge1xuICAgICAgICBAZXh0ZW5kICVhcnJvdy1idXR0b247XG4gICAgICAgIGxlZnQ6IDIlO1xuICAgIH1cblxuICAgICYjY2xvc2UtYnV0dG9uIHtcbiAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICByaWdodDogMiU7XG4gICAgICAgIHJpZ2h0OiBjYWxjKDIlICsgNnB4KTtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICB9XG5cbiAgICAvLyBGaXJlZm94IGZpeFxuICAgIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgIH1cbn1cblxuLypcbiAgICBQcmVsb2FkZXJcbiAgICBCb3Jyb3dlZCBmcm9tIGh0dHA6Ly90b2JpYXNhaGxpbi5jb20vc3BpbmtpdC9cbiovXG5cbi5iYWd1ZXR0ZUJveC1zcGlubmVyIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xufVxuXG4uYmFndWV0dGVCb3gtZG91YmxlLWJvdW5jZTEsXG4uYmFndWV0dGVCb3gtZG91YmxlLWJvdW5jZTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBvcGFjaXR5OiAuNjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYW5pbWF0aW9uOiBib3VuY2UgMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG59XG5cbi5iYWd1ZXR0ZUJveC1kb3VibGUtYm91bmNlMiB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMXM7XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlIHtcbiAgICAwJSwgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgfSA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWd1ZXR0ZWJveC5qcy9zcmMvYmFndWV0dGVCb3gnO1xuXG4uZ2FsbGVyeSB7XG4gIEBpbmNsdWRlIG1hcmdpbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gICZfX2xpbmsge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoYSAxLzQpO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG4iLCIkaW50cm8tc2l6ZTogOTB2dztcblxuLmludHJvIHtcbiAgQGluY2x1ZGUgYmxvY2s7XG4gIEBpbmNsdWRlIGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgd2lkdGg6ICRpbnRyby1zaXplO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobCkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcodiA1dmgpO1xuICB9XG59XG5cbi5pbnRyb19faW1hZ2Uge1xuICBAaW5jbHVkZSBtYXJnaW4odCAyKTtcbiAgd2lkdGg6ICRpbnRyby1zaXplO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobCkge1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDE2MDBweCAtICN7JGJhc2UtdW5pdCAqIDZ9KTtcbiAgfVxufVxuXG4uaW50cm9fX2hlYWRsaW5lIHtcbiAgQGluY2x1ZGUgdmlzdWFsbHloaWRkZW47XG59XG5cbiIsIi5uZXdzIHtcbiAgQGluY2x1ZGUgcGFkZGluZyh2IDEvMiwgYiAxLzIpO1xuICBAaW5jbHVkZSBtYXJnaW47XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShtKSB7XG4gICAgQGluY2x1ZGUgY2VudGVyO1xuICAgIG1heC13aWR0aDogODYwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgQGluY2x1ZGUgY2VudGVyO1xuICAgIG1heC13aWR0aDogMTE0MHB4O1xuICB9XG59XG5cbi5uZXdzX19hcnRpY2xlIHtcbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShtKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG4ubmV3c19fZGF0ZXRpbWUge1xuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KG0pIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoaDMpO1xuICAgIHdpZHRoOiAyMCU7XG4gIH1cbn1cblxuLm5ld3NfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KG0pIHtcbiAgICB3aWR0aDogODAlO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsKSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKGg0KTtcbiAgfVxufVxuXG4ubmV3c19fZGF0ZSB7XG4gIEBpbmNsdWRlIG1hcmdpbihyIDEpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShtKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLm5ld3NfX2hlYWRsaW5lIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGg0KTtcbiAgQGluY2x1ZGUgbWFyZ2luKGIgMCk7XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsKSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKGgzKTtcbiAgfVxufVxuXG4ubmV3c19fdGV4dCB7XG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG4iLCIucGFydG5lcl9faGVhZGxpbmUge1xuICBAaW5jbHVkZSBmb250LXNpemUoaDQpO1xuICBAaW5jbHVkZSBjb2xvcihkZWZhdWx0KTtcbiAgQGluY2x1ZGUgZm9udC13ZWlnaHQoc2VtaWJvbGQpO1xufVxuXG4ucGFydG5lcl9fbG9nbzpub3QoLnBhcnRuZXJfX2xvZ28tLWxhc3QpIHtcbiAgQGluY2x1ZGUgYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA0NyU7XG4gIG1hcmdpbjogMCAzJSAzJSAwO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkocykge1xuICAgIHdpZHRoOiAzMCU7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGJsb2NrKHBzZXVkbyk7XG4gICAgcGFkZGluZy10b3A6ICgzNjAgLyAxNzApICogMzAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWFxdWVyeShzKSB7XG4gICAgICBwYWRkaW5nLXRvcDogKDM2MCAvIDE3MCkgKiAgMzAlO1xuICAgIH1cbiAgfVxufVxuXG4ucGFydG5lcl9fbG9nby1pbm5lciB7XG4gIEBpbmNsdWRlIGNlbnRlcihjb3Zlcik7XG59XG5cbi5wYXJ0bmVyX19pbWFnZXMge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucGFydG5lcl9faW1hZ2Uge1xuICBAaW5jbHVkZSBjZW50ZXIoYm90aCk7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbiIsIi5wcm9ncmFtIHtcbiAgQGluY2x1ZGUgYmxvY2s7XG59XG5cbi5wcm9ncmFtX19oZWFkZXIge1xuICBAaW5jbHVkZSBtYXJnaW4odiAxKTtcbn1cblxuLnByb2dyYW1fX2xpc3Qge1xuICBAaW5jbHVkZSBwYWRkaW5nKGggMS8yKTtcbiAgQGluY2x1ZGUgbWFyZ2luKHYgMSk7XG4gIEBpbmNsdWRlIHotaW5kZXgoa25lZXMpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyh2IDEsIGggMCk7XG4gIH1cbn1cblxuLnByb2dyYW1fX3RhYiB7XG4gIEBpbmNsdWRlIG1hcmdpbihiIDEvMik7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjAlO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeGwpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4ucHJvZ3JhbV9fbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgQGluY2x1ZGUgYXR0ZW50aW9uIHtcbiAgICBAaW5jbHVkZSBjb2xvcihzZWNvbmQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIFthcmlhLXNlbGVjdGVkPSd0cnVlJ10gJiB7XG4gICAgQGluY2x1ZGUgY29sb3Ioc2Vjb25kKTtcbiAgfVxufVxuXG5cbi5wcm9ncmFtX19kYXktc2hvcnRjb2RlIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGgzKTtcbiAgQGluY2x1ZGUgZm9udChtZWRpdW0pO1xuICBsaW5lLWhlaWdodDogMTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KG0pIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoaDIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsKSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKGgxKTtcbiAgfVxufVxuXG4ucHJvZ3JhbV9fZGF5LWRhdGUge1xuICBAaW5jbHVkZSBmb250LXNpemUoaDYpO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobSkge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShoNSk7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoaDMpO1xuICB9XG59XG5cbi5wcm9ncmFtX19wYW5lbCB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb247XG5cbiAgJlthcmlhLWhpZGRlbj0nZmFsc2UnXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgJlthcmlhLWhpZGRlbj0ndHJ1ZSddIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTEwJSk7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cbiIsIi5zZWN0aW9uIHtcbiAgQGluY2x1ZGUgYmxvY2s7XG4gIEBpbmNsdWRlIHBhZGRpbmcoYiAyKTtcbiAgQGluY2x1ZGUgei1pbmRleChrbmVlcyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xufVxuXG4uc2VjdGlvbi0taW50cm8ge1xuICBAaW5jbHVkZSBwYWRkaW5nKGIgMTApO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobCkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoYiAxNSk7XG4gIH1cbn1cblxuLnNlY3Rpb24tLW5ld3Mge1xuICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWNvbG9yKGludmVydGVkKTtcbiAgQGluY2x1ZGUgY29sb3IoZGVmYXVsdCk7XG4gIEBpbmNsdWRlIHBhZGRpbmcoYiAwKTtcbiAgQGluY2x1ZGUgbWFyZ2luKGIgMiwgdCAtOCk7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCBjb2xvcihkZWZhdWx0KTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGNvbG9yKGRlZmF1bHQpO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobSkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcodiAxLzIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsKSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKHQgLTEzKTtcbiAgfVxufVxuXG4uc2VjdGlvbl9faW5uZXIge1xuICBAaW5jbHVkZSBibG9jaztcbiAgQGluY2x1ZGUgei1pbmRleChmZWV0KTtcbiAgQGluY2x1ZGUgcGFkZGluZyhoIDEvMik7XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShzKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhoIDEpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShtKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhoIDIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoaCA0KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeHh4bCkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoaCA2KTtcbiAgICBAaW5jbHVkZSBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDE2MDBweCArICN7JGJhc2UtdW5pdCAqIDZ9KTtcbiAgfVxufVxuXG4uc2VjdGlvbl9faGVhZGluZyB7XG4gIEBpbmNsdWRlIGNvbG9yKG1haW4pO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobCkge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShoMik7XG4gICAgQGluY2x1ZGUgbWFyZ2luKGwgLTEpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShoMSk7XG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQobWVkaXVtKTtcbiAgfVxufVxuXG4iLCIucGFnZSB7XG4gIEBpbmNsdWRlIHotaW5kZXgoZmVldCk7XG4gIEBpbmNsdWRlIGJsb2NrO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbiJdLCJzb3VyY2VSb290IjoiLi8ifQ== */
