@import url("https://fonts.googleapis.com/css?family=Raleway:100,200,400,700");
/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Prevent adjustments of font size after orientation changes in IE and iOS.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 * 2. Add the correct display in IE.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
  /* 1 */
  display: block;
}

/**
 * Add the correct display in IE 9-.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}

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

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

/* Links
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */
}

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */
a:active,
a:hover {
  outline-width: 0;
}

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

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit;
}

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

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
}

/**
 * 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;
}

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
}

/**
 * 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;
}

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
}

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

/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
}

/**
 * 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 */
}

/* Forms
   ========================================================================== */
/**
 * 1. Change font properties to `inherit` in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
select,
textarea {
  font: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
 * Restore the font weight unset by the previous rule.
 */
optgroup {
  font-weight: bold;
}

/**
 * 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;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
}

/**
 * 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;
}

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 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 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */
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 and cancel buttons in Chrome and Safari on OS X.
 */
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * Correct the text style of placeholders in Chrome, Edge, and Safari.
 */
::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}

/**
 * 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 */
}

html {
  box-sizing: border-box;
}

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

::-moz-selection {
  background: #b3d4fc;
  text-shadow: none;
}

::selection {
  background: #b3d4fc;
  text-shadow: none;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

.fancy-hr {
  height: 6px;
  background: url(images/fancy-hr.png) repeat-x 0 0;
  border: 0;
}

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

fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

textarea {
  resize: vertical;
}

.browserupgrade {
  margin: 0.2em 0;
  background: #ccc;
  color: #000;
  padding: 0.2em 0;
}

html {
  -webkit-font-smoothing: antialiased;
}

/* default OS fonts */
body {
  font-family: 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
}

/* fonts now loaded */
.home-slide--tag {
  margin-top: 0;
  font-family: "Raleway", sans-serif;
  color: #fff;
  font-size: 1.5rem;
  text-align: center;
  font-weight: 400;
  top: 1.2em;
  position: relative;
}

.home-slide--name {
  text-align: center;
  text-transform: uppercase;
  color: #fff;
  font-family: "Raleway", sans-serif;
}

@media (min-width: 300px) {
  .home-slide--name {
    margin-top: 15vh;
  }
}

@media (min-width: 1024px) {
  .home-slide--name {
    margin-top: 23vh;
  }
}

.home-slide--name .name__first {
  font-weight: 100;
  letter-spacing: 15px;
}

@media (min-width: 300px) {
  .home-slide--name .name__first {
    font-size: 3.5rem;
  }
}

@media (min-width: 1024px) {
  .home-slide--name .name__first {
    font-size: 6.875rem;
  }
}

.home-slide--name .name__last {
  font-weight: 400;
  display: block;
  letter-spacing: 1px;
}

@media (min-width: 300px) {
  .home-slide--name .name__last {
    font-size: 3.875rem;
    margin-top: -13px;
  }
}

@media (min-width: 1024px) {
  .home-slide--name .name__last {
    font-size: 7.125rem;
    margin-top: -31px;
  }
}

.slide-number {
  font-size: 2.25rem;
  color: #fff;
  font-weight: 200;
  font-family: "Raleway", sans-serif;
  margin-bottom: 0em;
}

.number__area p, .link__area p {
  margin: .0 0 1em 0;
}

.number__area p a:link, .number__area p a:visited, .link__area p a:link, .link__area p a:visited {
  color: #fff;
  text-decoration: none;
  font-family: "Raleway", sans-serif;
  position: relative;
}

.number__area p a:hover, .number__area p a:active, .link__area p a:hover, .link__area p a:active {
  color: #fff;
  position: relative;
}

.number__area p a:before, .link__area p a:before, .contact__list--item a:before, .nav-list li a:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  bottom: 0;
  left: 0;
  background-color: #fff;
  visibility: hidden;
  -webkit-transform: scaleX(0);
  -ms-transform: scaleX(0);
      transform: scaleX(0);
  transition: all 0.3s ease-in-out 0s;
}

.number__area p a:hover:before, .link__area p a:hover:before, .contact__list--item a:hover:before, .nav-list li a:hover:before {
  visibility: visible;
  -webkit-transform: scaleX(1);
  -ms-transform: scaleX(1);
      transform: scaleX(1);
}

.about-header {
  font-family: "Raleway", sans-serif;
  color: #000;
  text-transform: uppercase;
  font-weight: 200;
}

@media (min-width: 300px) {
  .about-header {
    font-size: 1.5625rem;
    margin: 1.5em 0 .5em 0;
  }
}

@media (min-width: 1024px) {
  .about-header {
    font-size: 3.25rem;
    margin: 1em 0 .25em 0;
  }
}

@media (min-width: 1600px) {
  .about-header {
    font-size: 4rem;
    margin: 1.5em 0 .5em 0;
  }
}

.about-slide p {
  font-family: "Raleway", sans-serif;
}

@media (min-width: 300px) {
  .about-slide p {
    font-size: 1rem;
    line-height: 1.3125rem;
  }
}

@media (min-width: 1024px) {
  .about-slide p {
    font-size: 1rem;
    line-height: 1.25rem;
  }
}

@media (min-width: 1280px) {
  .about-slide p {
    font-size: 1.0625rem;
    line-height: 1.4375rem;
  }
}

@media (min-width: 1600px) {
  .about-slide p {
    font-size: 1.125rem;
    line-height: 1.5rem;
  }
}

.contact__list--item {
  font-family: "Raleway", sans-serif;
  font-weight: 200;
  position: relative;
}

@media (min-width: 300px) {
  .contact__list--item {
    font-size: 1.125rem;
  }
}

@media (min-width: 768px) {
  .contact__list--item {
    font-size: 1.625rem;
  }
}

@media (min-width: 820px) {
  .contact__list--item {
    font-size: 2rem;
  }
}

@media (min-width: 1024px) {
  .contact__list--item {
    font-size: 2.75rem;
  }
}

@media (min-width: 1600px) {
  .contact__list--item {
    font-size: 3.875rem;
  }
}

.contact__list--item a {
  color: #000;
  text-decoration: none;
}

.contact__list--item a:before {
  background-color: #000;
  width: 75%;
}

.contact__type li {
  font-weight: bold;
  text-transform: uppercase;
}

.image-header {
  color: #fff;
  margin: 0 0 .5em 0;
  font-family: "Raleway", sans-serif;
  font-weight: 400;
  text-transform: uppercase;
}

@media (min-width: 300px) {
  .image-header {
    font-size: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .image-header {
    font-size: 2rem;
  }
}

.page-wrapper {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.page-wrapper:after {
  content: " ";
  display: block;
  clear: both;
}

@media (min-width: 300px) {
  .global-nav {
    width: 100%;
    margin-left: 3em;
  }
}

@media (min-width: 1024px) {
  .global-nav {
    width: 66.14951%;
    float: left;
    margin-right: 1.55148%;
    margin-left: 16.92525%;
    margin-right: 16.92525%;
  }
}

@media (min-width: 300px) {
  .feature-slide .number__area {
    width: 100%;
  }
}

@media (min-width: 1024px) {
  .feature-slide .number__area {
    width: 15.37377%;
    float: left;
    margin-right: 1.55148%;
  }
}

@media (min-width: 300px) {
  .feature-slide .image__area {
    width: 100%;
  }
}

@media (min-width: 1024px) {
  .feature-slide .image__area {
    width: 66.14951%;
    float: left;
    margin-right: 1.55148%;
  }
}

@media (min-width: 1024px) {
  .feature-slide .link__area {
    width: 15.37377%;
    float: right;
    margin-right: 0;
  }
}

@media (min-width: 300px) {
  .about-text {
    width: 83.07475%;
    float: left;
    margin-right: 1.55148%;
    margin-left: 8.46262%;
    margin-right: 8.46262%;
  }
}

@media (min-width: 1024px) {
  .about-text {
    width: 49.22426%;
    float: right;
    margin-left: 1.55148%;
    margin-left: 8.46262%;
    margin-right: 0%;
  }
}

@media (min-width: 300px) {
  .about-photo {
    width: 83.07475%;
    float: left;
    margin-right: 1.55148%;
    margin-left: 8.46262%;
    margin-right: 8.46262%;
  }
}

@media (min-width: 480px) {
  .about-photo {
    width: 66.14951%;
    float: left;
    margin-right: 1.55148%;
    margin-left: 16.92525%;
    margin-right: 16.92525%;
  }
}

@media (min-width: 640px) {
  .about-photo {
    width: 49.22426%;
    float: left;
    margin-right: 1.55148%;
    margin-left: 25.38787%;
    margin-right: 25.38787%;
  }
}

@media (min-width: 1024px) {
  .about-photo {
    width: 32.29901%;
    float: right;
    margin-left: 1.55148%;
    margin-right: 0%;
    margin-left: 8.46262%;
    margin-top: 1em;
  }
}

.contact__type {
  text-align: right;
}

@media (min-width: 375px) {
  .contact__type {
    width: 49.22426%;
    float: left;
    margin-right: 1.55148%;
  }
}

@media (min-width: 1024px) {
  .contact__type {
    width: 40.76164%;
    float: left;
    margin-right: 1.55148%;
  }
}

@media (min-width: 375px) {
  .contact__list {
    width: 49.22426%;
    float: right;
    margin-right: 0;
  }
}

@media (min-width: 1024px) {
  .contact__list {
    width: 57.68688%;
    float: right;
    margin-right: 0;
  }
}

/* ==========================================================================
   Print styles
   ========================================================================== */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
}

/* @author: Xavier Damman (@xdamman) - http://github.com/xdamman/selection-sharer - @license: MIT */
@-webkit-keyframes selectionSharerPopover-animation {
  0% {
    -webkit-transform: matrix(0.97, 0, 0, 1, 0, 12);
            transform: matrix(0.97, 0, 0, 1, 0, 12);
    filter: alpha(opacity=0);
    opacity: 0;
  }
  20% {
    -webkit-transform: matrix(0.99, 0, 0, 1, 0, 2);
            transform: matrix(0.99, 0, 0, 1, 0, 2);
    filter: alpha(opacity=70);
    opacity: .7;
  }
  40% {
    -webkit-transform: matrix(1, 0, 0, 1, 0, -1);
            transform: matrix(1, 0, 0, 1, 0, -1);
    filter: alpha(opacity=100);
    opacity: 1;
  }
  100%, 70% {
    -webkit-transform: matrix(1, 0, 0, 1, 0, 0);
            transform: matrix(1, 0, 0, 1, 0, 0);
    filter: alpha(opacity=100);
    opacity: 1;
  }
}
@keyframes selectionSharerPopover-animation {
  0% {
    -webkit-transform: matrix(0.97, 0, 0, 1, 0, 12);
            transform: matrix(0.97, 0, 0, 1, 0, 12);
    filter: alpha(opacity=0);
    opacity: 0;
  }
  20% {
    -webkit-transform: matrix(0.99, 0, 0, 1, 0, 2);
            transform: matrix(0.99, 0, 0, 1, 0, 2);
    filter: alpha(opacity=70);
    opacity: .7;
  }
  40% {
    -webkit-transform: matrix(1, 0, 0, 1, 0, -1);
            transform: matrix(1, 0, 0, 1, 0, -1);
    filter: alpha(opacity=100);
    opacity: 1;
  }
  100%, 70% {
    -webkit-transform: matrix(1, 0, 0, 1, 0, 0);
            transform: matrix(1, 0, 0, 1, 0, 0);
    filter: alpha(opacity=100);
    opacity: 1;
  }
}

#selectionSharerPopover {
  display: none;
  position: absolute;
  top: -100px;
  left: -100px;
  z-index: 1010;
}

#selectionSharerPopover:after {
  content: '';
  display: block;
  position: absolute;
  bottom: -3px;
  left: 50%;
  margin-left: -4px;
  width: 8px;
  height: 8px;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
      transform: rotate(45deg);
  background: #262625;
  box-shadow: 0 0 2px #262625;
}

#selectionSharerPopover.anim {
  transition: top .075s ease-out;
  animation: selectionSharerPopover-animation 180ms forwards linear;
  -webkit-animation: selectionSharerPopover-animation 180ms forwards linear;
}

#selectionSharerPopover-inner {
  position: relative;
  overflow: hidden;
  border-radius: 5px;
  border: 1px solid;
  border-color: #262625 #1c1c1b #121211;
  box-shadow: 0 1px 3px -1px rgba(0, 0, 0, 0.7), inset 0 0 1px rgba(255, 255, 255, 0.07), inset 0 0 2px rgba(255, 255, 255, 0.15);
  background-image: linear-gradient(to bottom, rgba(49, 49, 47, 0.97), #262625);
  background-repeat: repeat-x;
}

#selectionSharerPopover .selectionSharerPopover-clip {
  position: absolute;
  bottom: -11px;
  display: block;
  left: 50%;
  clip: rect(12px 24px 24px 0);
  margin-left: -12px;
  width: 24px;
  height: 24px;
  line-height: 24px;
}

#selectionSharerPopover .selectionSharerPopover-arrow {
  display: block;
  width: 20px;
  height: 20px;
  -webkit-transform: rotate(45deg) scale(0.5);
  -ms-transform: rotate(45deg) scale(0.5);
      transform: rotate(45deg) scale(0.5);
  background-color: #454543;
  border: 2px solid #121211;
  box-sizing: content-box;
}

.selectionSharer ul {
  padding: 0;
  display: inline;
}

.selectionSharer ul li {
  float: left;
  list-style: none;
  background: 0 0;
  margin: 0;
}

.selectionSharer a.action {
  display: block;
  text-indent: -200px;
  margin: 5px 7px;
  width: 20px;
  height: 20px;
  border: 0;
}

.selectionSharer a:hover {
  color: #ccc;
}

.selectionSharer a.tweet {
  background: url("data:image/svg+xml;charset=utf8,%3csvg xmlns='http://www.w3.org/2000/svg' width='171' height='139'%3e%3cg transform='translate(-282.32053,-396.30734)'%3e%3cpath style='fill:white' d='m 453.82593,412.80619 c -6.3097,2.79897 -13.09189,4.68982 -20.20852,5.54049 7.26413,-4.35454 12.84406,-11.24992 15.47067,-19.46675 -6.79934,4.03295 -14.3293,6.96055 -22.34461,8.53841 -6.41775,-6.83879 -15.56243,-11.111 -25.68298,-11.111 -19.43159,0 -35.18696,15.75365 -35.18696,35.18525 0,2.75781 0.31128,5.44359 0.91155,8.01875 -29.24344,-1.46723 -55.16995,-15.47582 -72.52461,-36.76396 -3.02879,5.19662 -4.76443,11.24048 -4.76443,17.6891 0,12.20777 6.21194,22.97747 15.65332,29.28716 -5.76773,-0.18265 -11.19331,-1.76565 -15.93716,-4.40083 -0.004,0.14663 -0.004,0.29412 -0.004,0.44248 0,17.04767 12.12889,31.26806 28.22555,34.50266 -2.95247,0.80436 -6.06101,1.23398 -9.26989,1.23398 -2.2673,0 -4.47114,-0.22124 -6.62011,-0.63114 4.47801,13.97857 17.47214,24.15143 32.86992,24.43441 -12.04227,9.43796 -27.21366,15.06335 -43.69965,15.06335 -2.84014,0 -5.64082,-0.16722 -8.39349,-0.49223 15.57186,9.98421 34.06703,15.8094 53.93768,15.8094 64.72024,0 100.11301,-53.61524 100.11301,-100.11387 0,-1.52554 -0.0343,-3.04251 -0.10204,-4.55261 6.87394,-4.95995 12.83891,-11.15646 17.55618,-18.21305 z' /%3e%3c/g%3e%3c/svg%3e") no-repeat;
  background-size: 18px;
  background-position: 2px 4px;
}

.selectionSharer a.facebook {
  background: url("data:image/svg+xml;charset=utf8,%3csvg viewBox='0 0 33 33' width='25' height='25' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cg%3e%3cpath style='fill:white' d='M 17.996,32L 12,32 L 12,16 l-4,0 l0-5.514 l 4-0.002l-0.006-3.248C 11.993,2.737, 13.213,0, 18.512,0l 4.412,0 l0,5.515 l-2.757,0 c-2.063,0-2.163,0.77-2.163,2.209l-0.008,2.76l 4.959,0 l-0.585,5.514L 18,16L 17.996,32z'%3e%3c/path%3e%3c/g%3e%3c/svg%3e") no-repeat;
  background-size: 18px;
  background-position: 0 2px;
  display: none;
}

.selectionSharer a.email {
  background: url("data:image/svg+xml;charset=utf8,%3csvg xmlns='http://www.w3.org/2000/svg' width='94' height='64'%3e%3cg transform='translate(-10, -10)' fill='transparent'%3e%3crect x='0' y='0' width='114' height='114'%3e%3c/rect%3e%3cpath d='M12,12 L102,12 L102,72 L12,72 L12,12 Z M16,12 L53,49 C55.6666667,51 58.3333333,51 61,49 L98,12 L16,12 Z M15,72 L45,42 L15,72 Z M69,42 L99,72 L69,42 Z' stroke='white' stroke-width='5'%3e%3c/path%3e%3c/g%3e%3c/svg%3e") no-repeat;
  background-size: 20px;
  background-position: 0 4px;
}

#selectionSharerPopunder.fixed {
  transition: bottom .5s ease-in-out;
  width: 100%;
  position: fixed;
  left: 0;
  bottom: -50px;
}

.selectionSharer {
  transition: -webkit-transform .6s ease-in-out;
}

.selectionSharer.moveDown {
  -webkit-transform: translate3d(0, 60px, 0);
}

#selectionSharerPopunder {
  position: absolute;
  left: 0;
  width: 100%;
  height: 0;
  transition: height .5s ease-in-out;
  background: #ccc;
  border: 0;
  box-shadow: inset 0 10px 5px -10px rgba(0, 0, 0, 0.5), inset 0 -10px 5px -10px rgba(0, 0, 0, 0.5);
  border-radius: 0;
  overflow: hidden;
}

#selectionSharerPopunder.show {
  height: 50px;
}

.selectionSharerPlaceholder {
  height: 1em;
  margin-bottom: -2em;
  transition: height .5s ease-in-out;
}

.selectionSharerPlaceholder.show {
  height: 50px !important;
}

#selectionSharerPopunder-inner ul {
  overflow: hidden;
  float: right;
  margin: 0;
}

#selectionSharerPopunder-inner ul li {
  padding: 5px;
  overflow: hidden;
}

#selectionSharerPopunder-inner label {
  color: #fff;
  font-weight: 300;
  line-height: 50px;
  margin: 0 20px 0 10px;
}

#selectionSharerPopunder-inner a {
  width: 30px;
  height: 30px;
  background-size: 30px;
}

#selectionSharerPopunder-inner a.tweet {
  background-position: 0 2px;
}

img {
  max-width: 100%;
}

.list__inline {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
}

.list__inline li {
  float: left;
  position: relative;
  width: auto;
}

.list__style {
  list-style: none;
  margin: 0;
  padding: 0;
}

.home-slide--list {
  background-color: rgba(255, 255, 255, 0.4);
  width: 100%;
  min-height: 130px;
}

@media (min-width: 300px) {
  .home-slide--list {
    margin-top: 3em;
  }
}

@media (min-width: 1024px) {
  .home-slide--list {
    margin-top: 5em;
  }
}

@media (min-width: 1600px) {
  .home-slide--list {
    margin-top: 10em;
  }
}

.home-slide--list li {
  width: 33%;
  margin-top: 10px;
}

@media (min-width: 300px) {
  .home-slide--list li {
    padding: 0 8vw;
  }
}

@media (min-width: 1024px) {
  .home-slide--list li {
    padding: 0 11vw;
  }
}

@media (min-width: 1280px) {
  .home-slide--list li {
    padding: 0 13vw;
  }
}

.home-slide--list li a {
  text-align: center;
  text-decoration: none;
  line-height: 4.5em;
}

.home-slide--list li a span {
  display: block;
}

.nav-list--number {
  border-bottom: 2px solid #4A4A4A;
}

.nav-list--number {
  font-family: "Raleway", sans-serif;
}

@media (min-width: 300px) {
  .nav-list--number {
    font-size: 3.1875rem;
  }
}

@media (min-width: 1024px) {
  .nav-list--number {
    font-size: 4rem;
  }
}

.home-slide--list a:link, .home-slide--list a:visited {
  color: #fff;
}

.home-slide--list a:hover, .home-slide--list a:active {
  color: #000;
}

.nav-list--label {
  font-family: "Raleway", sans-serif;
  text-transform: uppercase;
  line-height: 1.5em;
}

@media (min-width: 300px) {
  .nav-list--label {
    font-size: 0.875rem;
  }
}

@media (min-width: 480px) {
  .nav-list--label {
    font-size: 1.125rem;
  }
}

@media (min-width: 640px) {
  .nav-list--label {
    font-size: 1.3125rem;
  }
}

@media (min-width: 1024px) {
  .nav-list--label {
    font-size: 1.5rem;
  }
}

.email-icon {
  margin-top: -8px;
}

@media (min-width: 375px) {
  .email-icon {
    max-width: 15%;
  }
}

@media (min-width: 1024px) {
  .email-icon {
    max-width: 100%;
  }
}

@media (min-width: 1600px) {
  .email-icon {
    max-width: 120%;
  }
}

.twitter-icon {
  margin-top: -8px;
}

@media (min-width: 375px) {
  .twitter-icon {
    max-width: 15%;
  }
}

@media (min-width: 1024px) {
  .twitter-icon {
    max-width: 100%;
  }
}

.instagram-icon {
  margin-top: -6px;
}

@media (min-width: 375px) {
  .instagram-icon {
    max-width: 15%;
  }
}

@media (min-width: 1024px) {
  .instagram-icon {
    max-width: 100%;
  }
}

.contact__list--item {
  margin: 1.5em 0;
  line-height: 2em;
}

@media (min-width: 300px) {
  .nav-list li {
    margin: 0 .5em 0 0;
  }
}

@media (min-width: 1024px) {
  .nav-list li {
    margin: 0 1em;
  }
}

.nav-list li a {
  font-family: "Raleway", sans-serif;
  font-weight: 400;
  color: #fff;
  text-transform: uppercase;
  text-decoration: none;
}

@media (min-width: 375px) {
  .nav-list li a {
    font-size: 1rem;
  }
}

@media (min-width: 1024px) {
  .nav-list li a {
    font-size: 1.3125rem;
  }
}

.banner {
  background-color: #333;
  z-index: 9999;
  position: fixed;
  width: 100%;
}

.site-name {
  float: left;
  font-size: 1.5rem;
  font-family: "Raleway", sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  margin-bottom: 5px;
}

.site-name a {
  color: #fff;
  text-decoration: none;
}

.site-name a span {
  font-weight: bold;
}

.nav-list {
  display: block;
  width: auto;
}

@media (min-width: 300px) {
  .nav-list {
    float: none;
    margin-top: -12px;
    margin-right: 0;
    margin-bottom: 12px;
    padding-bottom: 12px;
    clear: both;
  }
}

@media (min-width: 540px) {
  .nav-list {
    margin-top: 21px;
    margin-left: 1em;
    float: left;
    clear: none;
  }
}

@media (min-width: 1024px) {
  .nav-list {
    float: right;
    margin-top: 18px;
    margin-bottom: 0;
    margin-left: 0;
  }
}

#menu {
  display: none;
}

main {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

main:after {
  content: " ";
  display: block;
  clear: both;
}

footer {
  margin-left: 2.5em;
  font-size: .8em;
}

.home-slide {
  background: url(../img/baloons.jpg) no-repeat bottom center;
  width: 100%;
  z-index: 500;
  position: relative;
  background-size: cover;
  background-origin: content-box;
}

@media (min-width: 300px) {
  .home-slide {
    background-attachment: local;
  }
}

@media (min-width: 300px) {
  .home-slide {
    height: 550px;
  }
}

@media (min-width: 640px) {
  .home-slide {
    height: 600px;
  }
}

@media (min-width: 768px) {
  .home-slide {
    height: 800px;
  }
}

@media (min-width: 820px) {
  .home-slide {
    height: 100vh;
  }
}

@media (min-width: 1024px) {
  .home-slide {
    height: 100vh;
  }
}

@media (min-width: 1025px) {
  .home-slide {
    background-attachment: fixed;
  }
}

.feature-slide {
  width: 100%;
  background-color: #000;
}

@media (min-width: 300px) {
  .feature-slide {
    padding: 10vh 6vw;
    height: auto;
  }
}

@media (min-width: 640px) {
  .feature-slide {
    padding: 10vh 12vw;
  }
}

@media (min-width: 768px) {
  .feature-slide {
    padding: 10vh 12vw;
  }
}

@media (min-width: 820px) {
  .feature-slide {
    padding: 1vh 15vw;
  }
}

@media (min-width: 1024px) {
  .feature-slide {
    padding: 8vh 2vw;
    height: 100vh;
  }
}

@media (min-width: 1400px) {
  .feature-slide {
    padding: 15vh 6vw;
  }
}

@media (min-width: 1600px) {
  .feature-slide {
    padding: 15vh 12vw;
  }
}

.feature-slide.alt {
  background-color: #666;
}

.about-slide {
  width: 100%;
  background-color: #eee;
}

@media (min-width: 300px) {
  .about-slide {
    padding: 0vw;
    height: auto;
    overflow: hidden;
  }
}

@media (min-width: 1024px) {
  .about-slide {
    padding: 0vh 10vw;
    height: 100vh;
    overflow: inherit;
  }
}

@media (min-width: 1600px) {
  .about-slide {
    padding: 13vh 10vw;
  }
}

.contact-slide {
  width: 100%;
  height: 100vh;
  margin-top: 7em;
  background-color: #fff;
}

@media (min-width: 300px) {
  .contact-slide {
    padding: 10vh 10vw;
    height: 79vh;
  }
}

@media (min-width: 1024px) {
  .contact-slide {
    padding: 0vh 10vw;
    height: 80vh;
  }
}

@media (min-width: 1600px) {
  .contact-slide {
    padding: 1vh 10vw;
  }
}

.number__area {
  text-align: right;
}

.image__area {
  text-align: center;
}

.link__area {
  text-align: left;
  height: 100%;
  position: relative;
}

.link__area .link__area--link {
  vertical-align: bottom;
}

@media (min-width: 300px) {
  .link__area .link__area--link {
    position: relative;
    bottom: 0em;
  }
}

@media (min-width: 1024px) {
  .link__area .link__area--link {
    position: absolute;
    bottom: 3em;
  }
}

@media (min-width: 1200px) {
  .link__area .link__area--link {
    position: absolute;
    bottom: 0em;
  }
}

@media (min-width: 1600px) {
  .link__area .link__area--link {
    position: absolute;
    bottom: 9em;
  }
}

.portrait--img {
  border-radius: 50%;
  margin-top: 8em;
}

.hidden {
  display: none !important;
  visibility: hidden;
}

.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}

.invisible {
  visibility: hidden;
}

.clearfix:before,
.clearfix:after {
  content: " ";
  display: table;
}

.clearfix:after {
  clear: both;
}

.clearfix {
  *zoom: 1;
  clear: both;
}

.widget-logo-container {
  display: none;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjAwLXNldHRpbmdzL19mb250LWZhY2VzLnNjc3MiLCIxMC1nbG9iYWwvX25vcm1hbGl6ZS5zY3NzIiwic3R5bGVzLmNzcyIsIjEwLWdsb2JhbC9fYm94LXNpemluZy5zY3NzIiwiMTAtZ2xvYmFsL19tYWluLnNjc3MiLCIxMC1nbG9iYWwvX3R5cG9ncmFwaHkuc2NzcyIsIjAwLXNldHRpbmdzL19mb250cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsIjEwLWdsb2JhbC9fZ3JpZHMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX3JlbS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19jb250YWluZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX3NwYW4uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fZGlyZWN0aW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2d1dHRlcnMuc2NzcyIsIjEwLWdsb2JhbC9fcHJpbnQuc2NzcyIsIjEwLWdsb2JhbC9fc2VsZWN0aW9uLXNoYXJlci5zY3NzIiwiMzAtb2JqZWN0cy9fbWVkaWEuc2NzcyIsIjMwLW9iamVjdHMvX2xpc3RzLnNjc3MiLCI0MC1jb21wb25lbnRzL19oZWFkZXIuc2NzcyIsIjQwLWNvbXBvbmVudHMvX21lZGlhYmxvY2suc2NzcyIsIjQwLWNvbXBvbmVudHMvX3NsaWRlcy5zY3NzIiwiNjAtb3ZlcnJpZGVzL191dGlsaXRpZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSwrRUFBWTtBQ0RaLDRFQUE0RTtBQUU1RTs7O0dBR0c7QUFFSDtFQUNFLHdCQUF3QjtFQUFFLE9BQU87RUFDakMsMkJBQTJCO0VBQUUsT0FBTztFQUNwQywrQkFBK0I7RUFBRSxPQUFPO0NBQ3pDOztBQUVEOztHQUVHO0FBRUg7RUFDRSxVQUFVO0NBQ1g7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOzs7O0dBSUc7QUFFSDs7Ozs7Ozs7Ozs7O0VBV1UsT0FBTztFQUNmLGVBQWU7Q0FDaEI7O0FBRUQ7O0dBRUc7QUFFSDs7OztFQUlFLHNCQUFzQjtDQUN2Qjs7QUFFRDs7R0FFRztBQUVIO0VBQ0UsY0FBYztFQUNkLFVBQVU7Q0FDWDs7QUFFRDs7R0FFRztBQUVIO0VBQ0UseUJBQXlCO0NBQzFCOztBQUVEOzs7R0FHRztBQUVIOztFQUVFLGNBQWM7Q0FDZjs7QUFFRDtnRkFDZ0Y7QUFFaEY7OztHQUdHO0FBRUg7RUFDRSw4QkFBOEI7RUFBRSxPQUFPO0VBQ3ZDLHNDQUFzQztFQUFFLE9BQU87Q0FDaEQ7O0FBRUQ7OztHQUdHO0FBRUY7O0VBRUMsaUJBQWlCO0NBQ2xCOztBQUVEO2dGQUNnRjtBQUVoRjs7O0dBR0c7QUFFSDtFQUNFLG9CQUFvQjtFQUFFLE9BQU87RUFDN0IsMkJBQTJCO0VBQUUsT0FBTztFQUNwQyxrQ0FBa0M7RUFBRSxPQUFPO0NBQzVDOztBQUVEOztHQUVHO0FBRUg7O0VBRUUscUJBQXFCO0NBQ3RCOztBQUVEOztHQUVHO0FBRUg7O0VBRUUsb0JBQW9CO0NBQ3JCOztBQUVEOztHQUVHO0FBRUg7RUFDRSxtQkFBbUI7Q0FDcEI7O0FBRUQ7OztHQUdHO0FBRUg7RUFDRSxlQUFlO0VBQ2YsaUJBQWlCO0NBQ2xCOztBQUVEOztHQUVHO0FBRUg7RUFD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O0VBQ0Usb0JBQW9CO0VBQ3BCLDZCQUF5QjtFQUN6Qix5QkFBaUI7TUFBakIscUJBQWlCO0NBQ2xCOztBQUVEO0VBQ0UsbUNDdkcrQjtFRHdHL0IsWUFBWTtFQUNaLDBCQUEwQjtFQUMxQixpQkFBaUI7Q0FjbEI7O0FHOURHO0VINENKO0lBTUkscUJFckdhO0lGc0diLHVCQUF1QjtHQVcxQjtDSDBkQTs7QU14aEJHO0VINENKO0lBVUksbUJFekdhO0lGMEdiLHNCQUFzQjtHQU96QjtDSGllQTs7QU0vaEJHO0VINENKO0lBY0ksZ0JFN0dhO0lGOEdiLHVCQUF1QjtHQUcxQjtDSHdlQTs7QUd0ZVk7RUFDWCxtQ0MzSCtCO0NENEloQzs7QUdsRkc7RUhnRVM7SUFHVCxnQkV0SGE7SUZ1SGIsdUJFdkhhO0dGcUloQjtDSCtkQTs7QU1qakJHO0VIZ0VTO0lBT1QsZ0JFMUhhO0lGMkhiLHFCRTNIYTtHRnFJaEI7Q0hzZUE7O0FNeGpCRztFSGdFSjtJQVdJLHFCRTlIYTtJRitIYix1QkUvSGE7R0ZxSWhCO0NINmVBOztBTS9qQkc7RUhnRVM7SUFlVCxvQkVsSWE7SUZtSWIsb0JFbklhO0dGcUloQjtDSG9mQTs7QUdsZkQ7RUFDRSxtQ0MvSStCO0VEZ0ovQixpQkFBaUI7RUFFakIsbUJBQW1CO0NBcUJwQjs7QUc3R0c7RUhvRko7SUFPSSxvQkU5SWE7R0ZnS2hCO0NIcWVBOztBTWxsQkc7RUhvRko7SUFVSSxvQkVqSmE7R0ZnS2hCO0NIMmVBOztBTXhsQkc7RUhvRko7SUFhSSxnQkVwSmE7R0ZnS2hCO0NIaWZBOztBTTlsQkc7RUhvRko7SUFnQkksbUJFdkphO0dGZ0toQjtDSHVmQTs7QU1wbUJHO0VIb0ZKO0lBbUJJLG9CRTFKYTtHRmdLaEI7Q0g2ZkE7O0FHdGhCRDtFQXNCSSxZQUFXO0VBQ1gsc0JBQXNCO0NBQ3ZCOztBQUdIO0VBQ0ksdUJBQXVCO0VBQ3ZCLFdBQVU7Q0FDYjs7QUFJRDtFQUNFLGtCQUFrQjtFQUNsQiwwQkFBMEI7Q0FDM0I7O0FBRUQ7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLG1DQ3hMK0I7RUR5TC9CLGlCQUFpQjtFQUNqQiwwQkFBMEI7Q0FRM0I7O0FHeElHO0VIMkhKO0lBT0ksa0JFckxhO0dGMkxoQjtDSCtmQTs7QU12b0JHO0VIMkhKO0lBVUksZ0JFeExhO0dGMkxoQjtDSHFnQkE7O0FPN3NCRDtFQ21CSSxnQkN1Q2U7RUR2Q2Ysa0JDcURvQztFRHJEcEMsbUJDcURtRTtDRnRFdEU7O0FBRkQ7RUdZTSxhQUFhO0VBQ2IsZUFBZTtFQUNmLFlBQVk7Q0FDYjs7QUppREQ7RUM1REo7SUFFSSxZQUFXO0lBQ1gsaUJBQWdCO0dBUW5CO0NQaXRCQTs7QU1ocUJHO0VDNURKO0lDZUksaUJHd0lvQjtJSHhJcEIsWUlBNEQ7SUpBNUQsdUJLNER3QjtJTDVEeEIsdUJHd0lvQjtJSHhJcEIsd0JHd0lvQjtHSjVJdkI7Q1AydEJBOztBTTFxQkc7RUM5Q0Y7SUFFTSxZQUFXO0dBS2hCO0NQdXRCRjs7QU1ockJHO0VDOUNGO0lDQ0UsaUJHd0lvQjtJSHhJcEIsWUlBNEQ7SUpBNUQsdUJLNER3QjtHTnREekI7Q1ArdEJGOztBTXhyQkc7RUMvQ0o7SUFZTSxZQUFXO0dBTWQ7Q1AydEJGOztBTTlyQkc7RUMvQ0o7SUNFSSxpQkd3SW9CO0lIeElwQixZSUE0RDtJSkE1RCx1Qks0RHdCO0dONUN6QjtDUG11QkY7O0FNdHNCRztFQy9DSjtJQ0VJLGlCR3dJb0I7SUh4SXBCLGFJQXVFO0lKQXZFLGdCR2tGb0I7R0ozRHJCO0NQb3VCRjs7QU05c0JHO0VDbkJKO0lDMUJJLGlCR3dJb0I7SUh4SXBCLFlJQTREO0lKQTVELHVCSzREd0I7SUw1RHhCLHNCR3dJb0I7SUh4SXBCLHVCR3dJb0I7R0pqR3ZCO0NQOHRCQTs7QU14dEJHO0VDbkJKO0lDMUJJLGlCR3dJb0I7SUh4SXBCLGFJQW9DO0lKQXBDLHNCSzREd0I7SUw1RHhCLHNCR3dJb0I7SUh4SXBCLGlCR3dJb0I7R0pqR3ZCO0NQd3VCQTs7QU1sdUJHO0VDTEo7SUN4Q0ksaUJHd0lvQjtJSHhJcEIsWUlBNEQ7SUpBNUQsdUJLNER3QjtJTDVEeEIsc0JHd0lvQjtJSHhJcEIsdUJHd0lvQjtHSnpFdkI7Q1AwdEJBOztBTTV1Qkc7RUNMSjtJQ3hDSSxpQkd3SW9CO0lIeElwQixZSUE0RDtJSkE1RCx1Qks0RHdCO0lMNUR4Qix1Qkd3SW9CO0lIeElwQix3Qkd3SW9CO0dKekV2QjtDUG91QkE7O0FNdHZCRztFQ0xKO0lDeENJLGlCR3dJb0I7SUh4SXBCLFlJQTREO0lKQTVELHVCSzREd0I7SUw1RHhCLHVCR3dJb0I7SUh4SXBCLHdCR3dJb0I7R0p6RXZCO0NQOHVCQTs7QU1od0JHO0VDTEo7SUN4Q0ksaUJHd0lvQjtJSHhJcEIsYUlBb0M7SUpBcEMsc0JLNER3QjtJTDVEeEIsaUJHd0lvQjtJSHhJcEIsc0JHd0lvQjtJSjVFcEIsZ0JBQWdCO0dBR25CO0NQeXZCQTs7QU92dkJEO0VBQ0Usa0JBQWtCO0NBT25COztBRDVCRztFQ29CSjtJQ2pFSSxpQkd3SW9CO0lIeElwQixZSUE0RDtJSkE1RCx1Qks0RHdCO0dOYTNCO0NQMnZCQTs7QU12eEJHO0VDb0JKO0lDakVJLGlCR3dJb0I7SUh4SXBCLFlJQTREO0lKQTVELHVCSzREd0I7R05hM0I7Q1Btd0JBOztBTS94Qkc7RUM2Qko7SUMxRUksaUJHd0lvQjtJSHhJcEIsYUlBdUU7SUpBdkUsZ0JHa0ZvQjtHSkF2QjtDUGt3QkE7O0FNdnlCRztFQzZCSjtJQzFFSSxpQkd3SW9CO0lIeElwQixhSUF1RTtJSkF2RSxnQkdrRm9CO0dKQXZCO0NQMHdCQTs7QWMvMkJEOztnRkFFZ0Y7QUFFaEY7RUFDSTs7O0lBR0ksbUNBQW1DO0lBQ25DLHVCQUF1QjtJQUN2Qiw0QkFBNEI7SUFDNUIsNkJBQTZCO0dBQ2hDO0VBRUQ7O0lBRUksMkJBQTJCO0dBQzlCO0VBRUQ7SUFDSSw2QkFBNEI7R0FDL0I7RUFFRDtJQUNJLDhCQUE2QjtHQUNoQztFQUVEOztJQUVJLFlBQVk7R0FDZjtFQUVEOztJQUVJLHVCQUF1QjtJQUN2Qix5QkFBeUI7R0FDNUI7RUFFRDtJQUNJLDRCQUE0QjtHQUMvQjtFQUVEOztJQUVJLHlCQUF5QjtHQUM1QjtF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RDtFQUNFLG1DYjlEK0I7Q2F1RWhDOztBWGJHO0VXR0o7SUFHSSxxQlp6RGE7R1lnRWhCO0NqQmdvQ0E7O0FNN29DRztFV0dKO0lBTUksZ0JaNURhO0dZZ0VoQjtDakJzb0NBOztBaUJyb0NEO0VBQ0UsWUFBWTtDQUNiOztBQUNrQjtFQUNqQixZQUFZO0NBQ2I7O0FBR0Q7RUFDRSxtQ2JqRitCO0Vha0YvQiwwQkFBMEI7RUFDMUIsbUJBQW1CO0NBYXBCOztBWHRDRztFV3NCSjtJQUtJLG9CWjlFYTtHWXlGaEI7Q2pCaW9DQTs7QU12cUNHO0VXc0JKO0lBUUksb0JaakZhO0dZeUZoQjtDakJ1b0NBOztBTTdxQ0c7RVdzQko7SUFXSSxxQlpwRmE7R1l5RmhCO0NqQjZvQ0E7O0FNbnJDRztFV3NCSjtJQWNJLGtCWnZGYTtHWXlGaEI7Q2pCbXBDQTs7QWlCOWxDRDtFQUNFLGlCQUFpQjtDQVVsQjs7QVh0R0c7RVcyRko7SUFHSSxlQUFlO0dBUWxCO0NqQjZsQ0E7O0FNbnNDRztFVzJGSjtJQU1JLGdCQUFnQjtHQUtuQjtDakJtbUNBOztBTXpzQ0c7RVcyRko7SUFTSSxnQkFBZ0I7R0FFbkI7Q2pCeW1DQTs7QWlCeG1DRDtFQUNFLGlCQUFpQjtDQU9sQjs7QVgvR0c7RVd1R0o7SUFHSSxlQUFlO0dBS2xCO0NqQjBtQ0E7O0FNenRDRztFV3VHSjtJQU1JLGdCQUFnQjtHQUVuQjtDakJnbkNBOztBaUIvbUNEO0VBQ0UsaUJBQWlCO0NBT2xCOztBWHhIRztFV2dISjtJQUdJLGVBQWU7R0FLbEI7Q2pCaW5DQTs7QU16dUNHO0VXZ0hKO0lBTUksZ0JBQWdCO0dBRW5CO0NqQnVuQ0E7O0FpQnJuQ0Q7RUFDRSxnQkFBZTtFQUNmLGlCQUFpQjtDQUNsQjs7QVg3SEc7RVdnSUY7SUFFSSxtQkFBbUI7R0FvQnRCO0NqQm9tQ0Y7O0FNMXZDRztFV2dJRjtJQUtJLGNBQWM7R0FpQmpCO0NqQjBtQ0Y7O0FpQmpvQ0Q7RUFVTSxtQ2JuTTJCO0Vhb00zQixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLDBCQUEwQjtFQUMxQixzQkFBc0I7Q0FRdkI7O0FYckpEO0VXd0lBO0lBUUksZ0Jabk1TO0dZd01aO0NqQnluQ0o7O0FNOXdDRztFV3dJQTtJQVdJLHFCWnRNUztHWXdNWjtDakIrbkNKOztBa0JuMUNEO0VBQ0UsdUJBQXVCO0VBQ3ZCLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsWUFBWTtDQUNiOztBQU1EO0VBQ0UsWUFBVztFQUNYLGtCYkRlO0VhRWYsbUNkVCtCO0VjVS9CLGlCQUFpQjtFQUNqQiwwQkFBMEI7RUFDMUIsbUJBQW1CO0NBUXBCOztBQWREO0VBUU0sWUFBWTtFQUNaLHNCQUFzQjtDQUl2Qjs7QUFIQztFQUNFLGtCQUFrQjtDQUNuQjs7QUFJUDtFQUNFLGVBQWU7RUFDZixZQUFZO0NBOEJiOztBWklHO0VZcENKO0lBS00sWUFBWTtJQUNaLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixZQUFZO0dBc0JqQjtDbEJpMENBOztBTTd6Q0c7RVlwQ0o7SUFnQk0saUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osWUFBWTtHQWFqQjtDbEIwMENBOztBTXQwQ0c7RVlwQ0o7SUEwQk0sYUFBYTtJQUNiLGlCQUFpQjtJQUVqQixpQkFBaUI7SUFDakIsZUFBZTtHQUVwQjtDbEJtMUNBOztBa0JqMUNEO0VBQ0UsY0FBYztDQUNmOztBQ2hFRDtFWG1CSSxnQkN1Q2U7RUR2Q2Ysa0JDcURvQztFRHJEcEMsbUJDcURtRTtDVXRFdEU7O0FBRkQ7RVRZTSxhQUFhO0VBQ2IsZUFBZTtFQUNmLFlBQVk7Q0FDYjs7QVNFTDtFQUNFLG1CQUFtQjtFQUNuQixnQkFBZ0I7Q0FDakI7O0FDcEJEO0VBRUUsNERBQTJEO0VBRTNELFlBQVk7RUFDWixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QiwrQkFBK0I7Q0E4QmhDOztBZDBCRztFY2hFSjtJQWFFLDZCQUE2QjtHQXlCOUI7Q3BCNjRDQTs7QU1uM0NHO0VjaEVKO0lBb0JFLGNBQWM7R0FrQmY7Q3BCbTVDQTs7QU16M0NHO0VjaEVKO0lBdUJFLGNBQWM7R0FlZjtDcEJ5NUNBOztBTS8zQ0c7RWNoRUo7SUEwQkUsY0FBYztHQVlmO0NwQis1Q0E7O0FNcjRDRztFY2hFSjtJQThCRSxjQUFjO0dBUWY7Q3BCcTZDQTs7QU0zNENHO0VjaEVKO0lBaUNFLGNBQWM7R0FLZjtDcEIyNkNBOztBTWo1Q0c7RWNoRUo7SUFvQ0UsNkJBQTZCO0dBRTlCO0NwQmk3Q0E7O0FvQi82Q0Q7RUFDRSxZQUFXO0VBQ1gsdUJBQXVCO0NBd0J4Qjs7QWRGRztFY3hCSjtJQUlJLGtCQUFrQjtJQUNsQixhQUFZO0dBcUJmO0NwQmk2Q0E7O0FNbjZDRztFY3hCSjtJQVFJLG1CQUFtQjtHQWtCdEI7Q3BCdTZDQTs7QU16NkNHO0VjeEJKO0lBV0ksbUJBQW1CO0dBZXRCO0NwQjY2Q0E7O0FNLzZDRztFY3hCSjtJQWNJLGtCQUFrQjtHQVlyQjtDcEJtN0NBOztBTXI3Q0c7RWN4Qko7SUFpQkksaUJBQWlCO0lBQ2pCLGNBQWE7R0FRaEI7Q3BCMDdDQTs7QU01N0NHO0VjeEJKO0lBcUJJLGtCQUFrQjtHQUtyQjtDcEJnOENBOztBTWw4Q0c7RWN4Qko7SUF3QkksbUJBQW1CO0dBRXRCO0NwQnM4Q0E7O0FvQnI4Q0Q7RUFDRSx1QkFBdUI7Q0FDeEI7O0FBRUQ7RUFDRSxZQUFXO0VBQ1gsdUJBQXVCO0NBY3hCOztBZHZCRztFY09KO0lBSU0sYUFBYTtJQUNiLGFBQWE7SUFDYixpQkFBaUI7R0FVdEI7Q3BCazhDQTs7QU16OUNHO0VjT0o7SUFTTSxrQkFBa0I7SUFDbEIsY0FBYTtJQUNiLGtCQUFrQjtHQUt2QjtDcEIwOENBOztBTWorQ0c7RWNPSjtJQWNNLG1CQUFtQjtHQUV4QjtDcEJnOUNBOztBb0IvOENEO0VBQ0UsWUFBVztFQUNYLGNBQWE7RUFDYixnQkFBZ0I7RUFDaEIsdUJBQXVCO0NBYXhCOztBZHpDRztFY3dCSjtJQU9JLG1CQUFtQjtJQUNuQixhQUFZO0dBU2Y7Q3BCNDhDQTs7QU1yL0NHO0Vjd0JKO0lBV0ksa0JBQWlCO0lBQ2pCLGFBQVk7R0FLZjtDcEJtOUNBOztBTTUvQ0c7RWN3Qko7SUFlSSxrQkFBa0I7R0FFckI7Q3BCeTlDQTs7QW9CdjlDRDtFQUNFLGtCQUFrQjtDQUNuQjs7QUFDRDtFQUNFLG1CQUFtQjtDQUNwQjs7QUFHRDtFQUNFLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2IsbUJBQW1CO0NBcUJwQjs7QUF4QkQ7RUFNSSx1QkFBdUI7Q0FpQnhCOztBZDFFQztFY3dERjtJQUdNLG1CQUFtQjtJQUNuQixZQUFZO0dBY2pCO0NwQmk5Q0Y7O0FNM2hERztFY3dERjtJQU9NLG1CQUFtQjtJQUNuQixZQUFZO0dBVWpCO0NwQnc5Q0Y7O0FNbGlERztFY21ESjtJQWdCUSxtQkFBbUI7SUFDbkIsWUFBWTtHQU1qQjtDcEIrOUNGOztBTXppREc7RWNtREo7SUFvQlEsbUJBQW1CO0lBQ25CLFlBQVk7R0FFakI7Q3BCcytDRjs7QW9CbitDRDtFQUNFLG1CQUFtQjtFQUNuQixnQkFBZ0I7Q0FDakI7O0FDaEpEO0VBQ0kseUJBQXlCO0VBQ3pCLG1CQUFtQjtDQUN0Qjs7QUFFRDtFQUNJLFVBQVU7RUFDVixvQkFBVTtFQUNWLFlBQVk7RUFDWixhQUFhO0VBQ2IsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsV0FBVztDQUNkOztBQUV3Qjs7RUFFckIsV0FBVztFQUNYLGFBQWE7RUFDYixVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixZQUFZO0NBQ2Y7O0FBRUQ7RUFDSSxtQkFBbUI7Q0FDdEI7O0FBRVE7O0VBRUwsYUFBYTtFQUNiLGVBQWU7Q0FDbEI7O0FBRUQ7RUFDSSxZQUFZO0NBQ2Y7O0FBRUQ7R0FDSSxRQUFTO0VBQ1QsWUFBWTtDQUNmOztBQUVEO0VBQ0UsY0FBYztDQUNmIiwiZmlsZSI6InN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSQUxFV0FZIC0gTWFpbiBGT05UXG5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJhbGV3YXk6MTAwLDIwMCw0MDAsNzAwJyk7XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2NC4xLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBJRSBhbmQgaU9TLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscywgLyogMSAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbm1haW4sIC8qIDIgKi9cbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7IC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxudGVtcGxhdGUsIC8qIDEgKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4gKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lLXdpZHRoOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9udCB3ZWlnaHQgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgdGV4dCBzdHlsZSBvZiBwbGFjZWhvbGRlcnMgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjU0O1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn0iLCJAaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1SYWxld2F5OjEwMCwyMDAsNDAwLDcwMFwiKTtcbi8qISBub3JtYWxpemUuY3NzIHY0LjEuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBJRSBhbmQgaU9TLlxuICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cbnRlbXBsYXRlLFxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmUtd2lkdGg6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi9cbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb250IHdlaWdodCB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHRleHQgc3R5bGUgb2YgcGxhY2Vob2xkZXJzIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IDAuNTQ7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbn1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuOjotbW96LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICNiM2Q0ZmM7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICNiM2Q0ZmM7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuXG5ociB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgbWFyZ2luOiAxZW0gMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmZhbmN5LWhyIHtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJhY2tncm91bmQ6IHVybChpbWFnZXMvZmFuY3ktaHIucG5nKSByZXBlYXQteCAwIDA7XG4gIGJvcmRlcjogMDtcbn1cblxuYXVkaW8sXG5jYW52YXMsXG5pZnJhbWUsXG5pbWcsXG5zdmcsXG52aWRlbyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuLmJyb3dzZXJ1cGdyYWRlIHtcbiAgbWFyZ2luOiAwLjJlbSAwO1xuICBiYWNrZ3JvdW5kOiAjY2NjO1xuICBjb2xvcjogIzAwMDtcbiAgcGFkZGluZzogMC4yZW0gMDtcbn1cblxuaHRtbCB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG4vKiBkZWZhdWx0IE9TIGZvbnRzICovXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2FOZXVlLUxpZ2h0JywgJ0hlbHZldGljYSBOZXVlIExpZ2h0JywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgJ0x1Y2lkYSBHcmFuZGUnLCBzYW5zLXNlcmlmO1xufVxuXG4vKiBmb250cyBub3cgbG9hZGVkICovXG4uaG9tZS1zbGlkZS0tdGFnIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdG9wOiAxLjJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaG9tZS1zbGlkZS0tbmFtZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgc2Fucy1zZXJpZjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDMwMHB4KSB7XG4gIC5ob21lLXNsaWRlLS1uYW1lIHtcbiAgICBtYXJnaW4tdG9wOiAxNXZoO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmhvbWUtc2xpZGUtLW5hbWUge1xuICAgIG1hcmdpbi10b3A6IDIzdmg7XG4gIH1cbn1cblxuLmhvbWUtc2xpZGUtLW5hbWUgLm5hbWVfX2ZpcnN0IHtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDE1cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzMDBweCkge1xuICAuaG9tZS1zbGlkZS0tbmFtZSAubmFtZV9fZmlyc3Qge1xuICAgIGZvbnQtc2l6ZTogMy41cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmhvbWUtc2xpZGUtLW5hbWUgLm5hbWVfX2ZpcnN0IHtcbiAgICBmb250LXNpemU6IDYuODc1cmVtO1xuICB9XG59XG5cbi5ob21lLXNsaWRlLS1uYW1lIC5uYW1lX19sYXN0IHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzMDBweCkge1xuICAuaG9tZS1zbGlkZS0tbmFtZSAubmFtZV9fbGFzdCB7XG4gICAgZm9udC1zaXplOiAzLjg3NXJlbTtcbiAgICBtYXJnaW4tdG9wOiAtMTNweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5ob21lLXNsaWRlLS1uYW1lIC5uYW1lX19sYXN0IHtcbiAgICBmb250LXNpemU6IDcuMTI1cmVtO1xuICAgIG1hcmdpbi10b3A6IC0zMXB4O1xuICB9XG59XG5cbi5zbGlkZS1udW1iZXIge1xuICBmb250LXNpemU6IDIuMjVyZW07XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogMjAwO1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuLm51bWJlcl9fYXJlYSBwLCAubGlua19fYXJlYSBwIHtcbiAgbWFyZ2luOiAuMCAwIDFlbSAwO1xufVxuXG4ubnVtYmVyX19hcmVhIHAgYTpsaW5rLCAubnVtYmVyX19hcmVhIHAgYTp2aXNpdGVkLCAubGlua19fYXJlYSBwIGE6bGluaywgLmxpbmtfX2FyZWEgcCBhOnZpc2l0ZWQge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIHNhbnMtc2VyaWY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm51bWJlcl9fYXJlYSBwIGE6aG92ZXIsIC5udW1iZXJfX2FyZWEgcCBhOmFjdGl2ZSwgLmxpbmtfX2FyZWEgcCBhOmhvdmVyLCAubGlua19fYXJlYSBwIGE6YWN0aXZlIHtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm51bWJlcl9fYXJlYSBwIGE6YmVmb3JlLCAubGlua19fYXJlYSBwIGE6YmVmb3JlLCAuY29udGFjdF9fbGlzdC0taXRlbSBhOmJlZm9yZSwgLm5hdi1saXN0IGxpIGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAycHg7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDApO1xuICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dCAwcztcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQgMHM7XG59XG5cbi5udW1iZXJfX2FyZWEgcCBhOmhvdmVyOmJlZm9yZSwgLmxpbmtfX2FyZWEgcCBhOmhvdmVyOmJlZm9yZSwgLmNvbnRhY3RfX2xpc3QtLWl0ZW0gYTpob3ZlcjpiZWZvcmUsIC5uYXYtbGlzdCBsaSBhOmhvdmVyOmJlZm9yZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xufVxuXG4uYWJvdXQtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDMwMHB4KSB7XG4gIC5hYm91dC1oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMS41NjI1cmVtO1xuICAgIG1hcmdpbjogMS41ZW0gMCAuNWVtIDA7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuYWJvdXQtaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDMuMjVyZW07XG4gICAgbWFyZ2luOiAxZW0gMCAuMjVlbSAwO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLmFib3V0LWhlYWRlciB7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICAgIG1hcmdpbjogMS41ZW0gMCAuNWVtIDA7XG4gIH1cbn1cblxuLmFib3V0LXNsaWRlIHAge1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIHNhbnMtc2VyaWY7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzMDBweCkge1xuICAuYWJvdXQtc2xpZGUgcCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMxMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuYWJvdXQtc2xpZGUgcCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgLmFib3V0LXNsaWRlIHAge1xuICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAuYWJvdXQtc2xpZGUgcCB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICB9XG59XG5cbi5jb250YWN0X19saXN0LS1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogMjAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzMDBweCkge1xuICAuY29udGFjdF9fbGlzdC0taXRlbSB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhY3RfX2xpc3QtLWl0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMS42MjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDgyMHB4KSB7XG4gIC5jb250YWN0X19saXN0LS1pdGVtIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuY29udGFjdF9fbGlzdC0taXRlbSB7XG4gICAgZm9udC1zaXplOiAyLjc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLmNvbnRhY3RfX2xpc3QtLWl0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMy44NzVyZW07XG4gIH1cbn1cblxuLmNvbnRhY3RfX2xpc3QtLWl0ZW0gYSB7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5jb250YWN0X19saXN0LS1pdGVtIGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgd2lkdGg6IDc1JTtcbn1cblxuLmNvbnRhY3RfX3R5cGUgbGkge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmltYWdlLWhlYWRlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBtYXJnaW46IDAgMCAuNWVtIDA7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDMwMHB4KSB7XG4gIC5pbWFnZS1oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmltYWdlLWhlYWRlciB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICB9XG59XG5cbi5wYWdlLXdyYXBwZXIge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5wYWdlLXdyYXBwZXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNsZWFyOiBib3RoO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzAwcHgpIHtcbiAgLmdsb2JhbC1uYXYge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAzZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuZ2xvYmFsLW5hdiB7XG4gICAgd2lkdGg6IDY2LjE0OTUxJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNTUxNDglO1xuICAgIG1hcmdpbi1sZWZ0OiAxNi45MjUyNSU7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNi45MjUyNSU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDMwMHB4KSB7XG4gIC5mZWF0dXJlLXNsaWRlIC5udW1iZXJfX2FyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmZlYXR1cmUtc2xpZGUgLm51bWJlcl9fYXJlYSB7XG4gICAgd2lkdGg6IDE1LjM3Mzc3JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNTUxNDglO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzMDBweCkge1xuICAuZmVhdHVyZS1zbGlkZSAuaW1hZ2VfX2FyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmZlYXR1cmUtc2xpZGUgLmltYWdlX19hcmVhIHtcbiAgICB3aWR0aDogNjYuMTQ5NTElO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMS41NTE0OCU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuZmVhdHVyZS1zbGlkZSAubGlua19fYXJlYSB7XG4gICAgd2lkdGg6IDE1LjM3Mzc3JTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzMDBweCkge1xuICAuYWJvdXQtdGV4dCB7XG4gICAgd2lkdGg6IDgzLjA3NDc1JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNTUxNDglO1xuICAgIG1hcmdpbi1sZWZ0OiA4LjQ2MjYyJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDguNDYyNjIlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmFib3V0LXRleHQge1xuICAgIHdpZHRoOiA0OS4yMjQyNiU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAxLjU1MTQ4JTtcbiAgICBtYXJnaW4tbGVmdDogOC40NjI2MiU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwJTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzAwcHgpIHtcbiAgLmFib3V0LXBob3RvIHtcbiAgICB3aWR0aDogODMuMDc0NzUlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMS41NTE0OCU7XG4gICAgbWFyZ2luLWxlZnQ6IDguNDYyNjIlO1xuICAgIG1hcmdpbi1yaWdodDogOC40NjI2MiU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5hYm91dC1waG90byB7XG4gICAgd2lkdGg6IDY2LjE0OTUxJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNTUxNDglO1xuICAgIG1hcmdpbi1sZWZ0OiAxNi45MjUyNSU7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNi45MjUyNSU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5hYm91dC1waG90byB7XG4gICAgd2lkdGg6IDQ5LjIyNDI2JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNTUxNDglO1xuICAgIG1hcmdpbi1sZWZ0OiAyNS4zODc4NyU7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNS4zODc4NyU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuYWJvdXQtcGhvdG8ge1xuICAgIHdpZHRoOiAzMi4yOTkwMSU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAxLjU1MTQ4JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAlO1xuICAgIG1hcmdpbi1sZWZ0OiA4LjQ2MjYyJTtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gIH1cbn1cblxuLmNvbnRhY3RfX3R5cGUge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDM3NXB4KSB7XG4gIC5jb250YWN0X190eXBlIHtcbiAgICB3aWR0aDogNDkuMjI0MjYlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMS41NTE0OCU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuY29udGFjdF9fdHlwZSB7XG4gICAgd2lkdGg6IDQwLjc2MTY0JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNTUxNDglO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNzVweCkge1xuICAuY29udGFjdF9fbGlzdCB7XG4gICAgd2lkdGg6IDQ5LjIyNDI2JTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNvbnRhY3RfX2xpc3Qge1xuICAgIHdpZHRoOiA1Ny42ODY4OCU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUHJpbnQgc3R5bGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIHByaW50IHtcbiAgKixcbiAgKjpiZWZvcmUsXG4gICo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiO1xuICB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gIH1cbiAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gIH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMztcbiAgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICB9XG59XG5cbi8qIEBhdXRob3I6IFhhdmllciBEYW1tYW4gKEB4ZGFtbWFuKSAtIGh0dHA6Ly9naXRodWIuY29tL3hkYW1tYW4vc2VsZWN0aW9uLXNoYXJlciAtIEBsaWNlbnNlOiBNSVQgKi9cbkBrZXlmcmFtZXMgc2VsZWN0aW9uU2hhcmVyUG9wb3Zlci1hbmltYXRpb24ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBtYXRyaXgoMC45NywgMCwgMCwgMSwgMCwgMTIpO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBtYXRyaXgoMC45OSwgMCwgMCwgMSwgMCwgMik7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTcwKTtcbiAgICBvcGFjaXR5OiAuNztcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogbWF0cml4KDEsIDAsIDAsIDEsIDAsIC0xKTtcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUsIDcwJSB7XG4gICAgdHJhbnNmb3JtOiBtYXRyaXgoMSwgMCwgMCwgMSwgMCwgMCk7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTEwMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4jc2VsZWN0aW9uU2hhcmVyUG9wb3ZlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTAwcHg7XG4gIGxlZnQ6IC0xMDBweDtcbiAgei1pbmRleDogMTAxMDtcbn1cblxuI3NlbGVjdGlvblNoYXJlclBvcG92ZXI6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtM3B4O1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgYmFja2dyb3VuZDogIzI2MjYyNTtcbiAgYm94LXNoYWRvdzogMCAwIDJweCAjMjYyNjI1O1xufVxuXG4jc2VsZWN0aW9uU2hhcmVyUG9wb3Zlci5hbmltIHtcbiAgdHJhbnNpdGlvbjogdG9wIC4wNzVzIGVhc2Utb3V0O1xuICBhbmltYXRpb246IHNlbGVjdGlvblNoYXJlclBvcG92ZXItYW5pbWF0aW9uIDE4MG1zIGZvcndhcmRzIGxpbmVhcjtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNlbGVjdGlvblNoYXJlclBvcG92ZXItYW5pbWF0aW9uIDE4MG1zIGZvcndhcmRzIGxpbmVhcjtcbn1cblxuI3NlbGVjdGlvblNoYXJlclBvcG92ZXItaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICMyNjI2MjUgIzFjMWMxYiAjMTIxMjExO1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuNyksIGluc2V0IDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA3KSwgaW5zZXQgMCAwIDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDQ5LCA0OSwgNDcsIDAuOTcpLCAjMjYyNjI1KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4jc2VsZWN0aW9uU2hhcmVyUG9wb3ZlciAuc2VsZWN0aW9uU2hhcmVyUG9wb3Zlci1jbGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0xMXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGVmdDogNTAlO1xuICBjbGlwOiByZWN0KDEycHggMjRweCAyNHB4IDApO1xuICBtYXJnaW4tbGVmdDogLTEycHg7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4jc2VsZWN0aW9uU2hhcmVyUG9wb3ZlciAuc2VsZWN0aW9uU2hhcmVyUG9wb3Zlci1hcnJvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSBzY2FsZSgwLjUpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoMC41KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ1NDU0MztcbiAgYm9yZGVyOiAycHggc29saWQgIzEyMTIxMTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi5zZWxlY3Rpb25TaGFyZXIgdWwge1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5zZWxlY3Rpb25TaGFyZXIgdWwgbGkge1xuICBmbG9hdDogbGVmdDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZDogMCAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5zZWxlY3Rpb25TaGFyZXIgYS5hY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1pbmRlbnQ6IC0yMDBweDtcbiAgbWFyZ2luOiA1cHggN3B4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXI6IDA7XG59XG5cbi5zZWxlY3Rpb25TaGFyZXIgYTpob3ZlciB7XG4gIGNvbG9yOiAjY2NjO1xufVxuXG4uc2VsZWN0aW9uU2hhcmVyIGEudHdlZXQge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNzEnIGhlaWdodD0nMTM5JyUzZSUzY2cgdHJhbnNmb3JtPSd0cmFuc2xhdGUoLTI4Mi4zMjA1MywtMzk2LjMwNzM0KSclM2UlM2NwYXRoIHN0eWxlPSdmaWxsOndoaXRlJyBkPSdtIDQ1My44MjU5Myw0MTIuODA2MTkgYyAtNi4zMDk3LDIuNzk4OTcgLTEzLjA5MTg5LDQuNjg5ODIgLTIwLjIwODUyLDUuNTQwNDkgNy4yNjQxMywtNC4zNTQ1NCAxMi44NDQwNiwtMTEuMjQ5OTIgMTUuNDcwNjcsLTE5LjQ2Njc1IC02Ljc5OTM0LDQuMDMyOTUgLTE0LjMyOTMsNi45NjA1NSAtMjIuMzQ0NjEsOC41Mzg0MSAtNi40MTc3NSwtNi44Mzg3OSAtMTUuNTYyNDMsLTExLjExMSAtMjUuNjgyOTgsLTExLjExMSAtMTkuNDMxNTksMCAtMzUuMTg2OTYsMTUuNzUzNjUgLTM1LjE4Njk2LDM1LjE4NTI1IDAsMi43NTc4MSAwLjMxMTI4LDUuNDQzNTkgMC45MTE1NSw4LjAxODc1IC0yOS4yNDM0NCwtMS40NjcyMyAtNTUuMTY5OTUsLTE1LjQ3NTgyIC03Mi41MjQ2MSwtMzYuNzYzOTYgLTMuMDI4NzksNS4xOTY2MiAtNC43NjQ0MywxMS4yNDA0OCAtNC43NjQ0MywxNy42ODkxIDAsMTIuMjA3NzcgNi4yMTE5NCwyMi45Nzc0NyAxNS42NTMzMiwyOS4yODcxNiAtNS43Njc3MywtMC4xODI2NSAtMTEuMTkzMzEsLTEuNzY1NjUgLTE1LjkzNzE2LC00LjQwMDgzIC0wLjAwNCwwLjE0NjYzIC0wLjAwNCwwLjI5NDEyIC0wLjAwNCwwLjQ0MjQ4IDAsMTcuMDQ3NjcgMTIuMTI4ODksMzEuMjY4MDYgMjguMjI1NTUsMzQuNTAyNjYgLTIuOTUyNDcsMC44MDQzNiAtNi4wNjEwMSwxLjIzMzk4IC05LjI2OTg5LDEuMjMzOTggLTIuMjY3MywwIC00LjQ3MTE0LC0wLjIyMTI0IC02LjYyMDExLC0wLjYzMTE0IDQuNDc4MDEsMTMuOTc4NTcgMTcuNDcyMTQsMjQuMTUxNDMgMzIuODY5OTIsMjQuNDM0NDEgLTEyLjA0MjI3LDkuNDM3OTYgLTI3LjIxMzY2LDE1LjA2MzM1IC00My42OTk2NSwxNS4wNjMzNSAtMi44NDAxNCwwIC01LjY0MDgyLC0wLjE2NzIyIC04LjM5MzQ5LC0wLjQ5MjIzIDE1LjU3MTg2LDkuOTg0MjEgMzQuMDY3MDMsMTUuODA5NCA1My45Mzc2OCwxNS44MDk0IDY0LjcyMDI0LDAgMTAwLjExMzAxLC01My42MTUyNCAxMDAuMTEzMDEsLTEwMC4xMTM4NyAwLC0xLjUyNTU0IC0wLjAzNDMsLTMuMDQyNTEgLTAuMTAyMDQsLTQuNTUyNjEgNi44NzM5NCwtNC45NTk5NSAxMi44Mzg5MSwtMTEuMTU2NDYgMTcuNTU2MTgsLTE4LjIxMzA1IHonIC8lM2UlM2MvZyUzZSUzYy9zdmclM2VcIikgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDE4cHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDJweCA0cHg7XG59XG5cbi5zZWxlY3Rpb25TaGFyZXIgYS5mYWNlYm9vayB7XG4gIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNjc3ZnIHZpZXdCb3g9JzAgMCAzMyAzMycgd2lkdGg9JzI1JyBoZWlnaHQ9JzI1JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyUzZSUzY2clM2UlM2NwYXRoIHN0eWxlPSdmaWxsOndoaXRlJyBkPSdNIDE3Ljk5NiwzMkwgMTIsMzIgTCAxMiwxNiBsLTQsMCBsMC01LjUxNCBsIDQtMC4wMDJsLTAuMDA2LTMuMjQ4QyAxMS45OTMsMi43MzcsIDEzLjIxMywwLCAxOC41MTIsMGwgNC40MTIsMCBsMCw1LjUxNSBsLTIuNzU3LDAgYy0yLjA2MywwLTIuMTYzLDAuNzctMi4xNjMsMi4yMDlsLTAuMDA4LDIuNzZsIDQuOTU5LDAgbC0wLjU4NSw1LjUxNEwgMTgsMTZMIDE3Ljk5NiwzMnonJTNlJTNjL3BhdGglM2UlM2MvZyUzZSUzYy9zdmclM2VcIikgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDE4cHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgMnB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2VsZWN0aW9uU2hhcmVyIGEuZW1haWwge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc5NCcgaGVpZ2h0PSc2NCclM2UlM2NnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKC0xMCwgLTEwKScgZmlsbD0ndHJhbnNwYXJlbnQnJTNlJTNjcmVjdCB4PScwJyB5PScwJyB3aWR0aD0nMTE0JyBoZWlnaHQ9JzExNCclM2UlM2MvcmVjdCUzZSUzY3BhdGggZD0nTTEyLDEyIEwxMDIsMTIgTDEwMiw3MiBMMTIsNzIgTDEyLDEyIFogTTE2LDEyIEw1Myw0OSBDNTUuNjY2NjY2Nyw1MSA1OC4zMzMzMzMzLDUxIDYxLDQ5IEw5OCwxMiBMMTYsMTIgWiBNMTUsNzIgTDQ1LDQyIEwxNSw3MiBaIE02OSw0MiBMOTksNzIgTDY5LDQyIFonIHN0cm9rZT0nd2hpdGUnIHN0cm9rZS13aWR0aD0nNSclM2UlM2MvcGF0aCUzZSUzYy9nJTNlJTNjL3N2ZyUzZVwiKSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMjBweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCA0cHg7XG59XG5cbiNzZWxlY3Rpb25TaGFyZXJQb3B1bmRlci5maXhlZCB7XG4gIHRyYW5zaXRpb246IGJvdHRvbSAuNXMgZWFzZS1pbi1vdXQ7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogLTUwcHg7XG59XG5cbi5zZWxlY3Rpb25TaGFyZXIge1xuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAuNnMgZWFzZS1pbi1vdXQ7XG59XG5cbi5zZWxlY3Rpb25TaGFyZXIubW92ZURvd24ge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG59XG5cbiNzZWxlY3Rpb25TaGFyZXJQb3B1bmRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IC41cyBlYXNlLWluLW91dDtcbiAgYmFja2dyb3VuZDogI2NjYztcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDEwcHggNXB4IC0xMHB4IHJnYmEoMCwgMCwgMCwgMC41KSwgaW5zZXQgMCAtMTBweCA1cHggLTEwcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4jc2VsZWN0aW9uU2hhcmVyUG9wdW5kZXIuc2hvdyB7XG4gIGhlaWdodDogNTBweDtcbn1cblxuLnNlbGVjdGlvblNoYXJlclBsYWNlaG9sZGVyIHtcbiAgaGVpZ2h0OiAxZW07XG4gIG1hcmdpbi1ib3R0b206IC0yZW07XG4gIHRyYW5zaXRpb246IGhlaWdodCAuNXMgZWFzZS1pbi1vdXQ7XG59XG5cbi5zZWxlY3Rpb25TaGFyZXJQbGFjZWhvbGRlci5zaG93IHtcbiAgaGVpZ2h0OiA1MHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNzZWxlY3Rpb25TaGFyZXJQb3B1bmRlci1pbm5lciB1bCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwO1xufVxuXG4jc2VsZWN0aW9uU2hhcmVyUG9wdW5kZXItaW5uZXIgdWwgbGkge1xuICBwYWRkaW5nOiA1cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbiNzZWxlY3Rpb25TaGFyZXJQb3B1bmRlci1pbm5lciBsYWJlbCB7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogNTBweDtcbiAgbWFyZ2luOiAwIDIwcHggMCAxMHB4O1xufVxuXG4jc2VsZWN0aW9uU2hhcmVyUG9wdW5kZXItaW5uZXIgYSB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogMzBweDtcbn1cblxuI3NlbGVjdGlvblNoYXJlclBvcHVuZGVyLWlubmVyIGEudHdlZXQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDJweDtcbn1cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4ubGlzdF9faW5saW5lIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmxpc3RfX2lubGluZSBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4ubGlzdF9fc3R5bGUge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5ob21lLXNsaWRlLS1saXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTMwcHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzMDBweCkge1xuICAuaG9tZS1zbGlkZS0tbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogM2VtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmhvbWUtc2xpZGUtLWxpc3Qge1xuICAgIG1hcmdpbi10b3A6IDVlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC5ob21lLXNsaWRlLS1saXN0IHtcbiAgICBtYXJnaW4tdG9wOiAxMGVtO1xuICB9XG59XG5cbi5ob21lLXNsaWRlLS1saXN0IGxpIHtcbiAgd2lkdGg6IDMzJTtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDMwMHB4KSB7XG4gIC5ob21lLXNsaWRlLS1saXN0IGxpIHtcbiAgICBwYWRkaW5nOiAwIDh2dztcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5ob21lLXNsaWRlLS1saXN0IGxpIHtcbiAgICBwYWRkaW5nOiAwIDExdnc7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAuaG9tZS1zbGlkZS0tbGlzdCBsaSB7XG4gICAgcGFkZGluZzogMCAxM3Z3O1xuICB9XG59XG5cbi5ob21lLXNsaWRlLS1saXN0IGxpIGEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDQuNWVtO1xufVxuXG4uaG9tZS1zbGlkZS0tbGlzdCBsaSBhIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm5hdi1saXN0LS1udW1iZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzRBNEE0QTtcbn1cblxuLm5hdi1saXN0LS1udW1iZXIge1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIHNhbnMtc2VyaWY7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzMDBweCkge1xuICAubmF2LWxpc3QtLW51bWJlciB7XG4gICAgZm9udC1zaXplOiAzLjE4NzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubmF2LWxpc3QtLW51bWJlciB7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICB9XG59XG5cbi5ob21lLXNsaWRlLS1saXN0IGE6bGluaywgLmhvbWUtc2xpZGUtLWxpc3QgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5ob21lLXNsaWRlLS1saXN0IGE6aG92ZXIsIC5ob21lLXNsaWRlLS1saXN0IGE6YWN0aXZlIHtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi5uYXYtbGlzdC0tbGFiZWwge1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIHNhbnMtc2VyaWY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDMwMHB4KSB7XG4gIC5uYXYtbGlzdC0tbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5uYXYtbGlzdC0tbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5uYXYtbGlzdC0tbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm5hdi1saXN0LS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuLmVtYWlsLWljb24ge1xuICBtYXJnaW4tdG9wOiAtOHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzc1cHgpIHtcbiAgLmVtYWlsLWljb24ge1xuICAgIG1heC13aWR0aDogMTUlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmVtYWlsLWljb24ge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC5lbWFpbC1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDEyMCU7XG4gIH1cbn1cblxuLnR3aXR0ZXItaWNvbiB7XG4gIG1hcmdpbi10b3A6IC04cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNzVweCkge1xuICAudHdpdHRlci1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDE1JTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC50d2l0dGVyLWljb24ge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uaW5zdGFncmFtLWljb24ge1xuICBtYXJnaW4tdG9wOiAtNnB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzc1cHgpIHtcbiAgLmluc3RhZ3JhbS1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDE1JTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5pbnN0YWdyYW0taWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5jb250YWN0X19saXN0LS1pdGVtIHtcbiAgbWFyZ2luOiAxLjVlbSAwO1xuICBsaW5lLWhlaWdodDogMmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzAwcHgpIHtcbiAgLm5hdi1saXN0IGxpIHtcbiAgICBtYXJnaW46IDAgLjVlbSAwIDA7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubmF2LWxpc3QgbGkge1xuICAgIG1hcmdpbjogMCAxZW07XG4gIH1cbn1cblxuLm5hdi1saXN0IGxpIGEge1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNzVweCkge1xuICAubmF2LWxpc3QgbGkgYSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm5hdi1saXN0IGxpIGEge1xuICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuICB9XG59XG5cbi5iYW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICB6LWluZGV4OiA5OTk5O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc2l0ZS1uYW1lIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnNpdGUtbmFtZSBhIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNpdGUtbmFtZSBhIHNwYW4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm5hdi1saXN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzAwcHgpIHtcbiAgLm5hdi1saXN0IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tdG9wOiAtMTJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTQwcHgpIHtcbiAgLm5hdi1saXN0IHtcbiAgICBtYXJnaW4tdG9wOiAyMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubmF2LWxpc3Qge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tdG9wOiAxOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuI21lbnUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5tYWluIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG5tYWluOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDtcbn1cblxuZm9vdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDIuNWVtO1xuICBmb250LXNpemU6IC44ZW07XG59XG5cbi5ob21lLXNsaWRlIHtcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9iYWxvb25zLmpwZykgbm8tcmVwZWF0IGJvdHRvbSBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA1MDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzAwcHgpIHtcbiAgLmhvbWUtc2xpZGUge1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogbG9jYWw7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDMwMHB4KSB7XG4gIC5ob21lLXNsaWRlIHtcbiAgICBoZWlnaHQ6IDU1MHB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAuaG9tZS1zbGlkZSB7XG4gICAgaGVpZ2h0OiA2MDBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhvbWUtc2xpZGUge1xuICAgIGhlaWdodDogODAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDgyMHB4KSB7XG4gIC5ob21lLXNsaWRlIHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmhvbWUtc2xpZGUge1xuICAgIGhlaWdodDogMTAwdmg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuaG9tZS1zbGlkZSB7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgfVxufVxuXG4uZmVhdHVyZS1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzAwcHgpIHtcbiAgLmZlYXR1cmUtc2xpZGUge1xuICAgIHBhZGRpbmc6IDEwdmggNnZ3O1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmZlYXR1cmUtc2xpZGUge1xuICAgIHBhZGRpbmc6IDEwdmggMTJ2dztcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZlYXR1cmUtc2xpZGUge1xuICAgIHBhZGRpbmc6IDEwdmggMTJ2dztcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODIwcHgpIHtcbiAgLmZlYXR1cmUtc2xpZGUge1xuICAgIHBhZGRpbmc6IDF2aCAxNXZ3O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmZlYXR1cmUtc2xpZGUge1xuICAgIHBhZGRpbmc6IDh2aCAydnc7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gIC5mZWF0dXJlLXNsaWRlIHtcbiAgICBwYWRkaW5nOiAxNXZoIDZ2dztcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC5mZWF0dXJlLXNsaWRlIHtcbiAgICBwYWRkaW5nOiAxNXZoIDEydnc7XG4gIH1cbn1cblxuLmZlYXR1cmUtc2xpZGUuYWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY2Njtcbn1cblxuLmFib3V0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzMDBweCkge1xuICAuYWJvdXQtc2xpZGUge1xuICAgIHBhZGRpbmc6IDB2dztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5hYm91dC1zbGlkZSB7XG4gICAgcGFkZGluZzogMHZoIDEwdnc7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdzogaW5oZXJpdDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC5hYm91dC1zbGlkZSB7XG4gICAgcGFkZGluZzogMTN2aCAxMHZ3O1xuICB9XG59XG5cbi5jb250YWN0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIG1hcmdpbi10b3A6IDdlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDMwMHB4KSB7XG4gIC5jb250YWN0LXNsaWRlIHtcbiAgICBwYWRkaW5nOiAxMHZoIDEwdnc7XG4gICAgaGVpZ2h0OiA3OXZoO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNvbnRhY3Qtc2xpZGUge1xuICAgIHBhZGRpbmc6IDB2aCAxMHZ3O1xuICAgIGhlaWdodDogODB2aDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC5jb250YWN0LXNsaWRlIHtcbiAgICBwYWRkaW5nOiAxdmggMTB2dztcbiAgfVxufVxuXG4ubnVtYmVyX19hcmVhIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5pbWFnZV9fYXJlYSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxpbmtfX2FyZWEge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmxpbmtfX2FyZWEgLmxpbmtfX2FyZWEtLWxpbmsge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzAwcHgpIHtcbiAgLmxpbmtfX2FyZWEgLmxpbmtfX2FyZWEtLWxpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3R0b206IDBlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5saW5rX19hcmVhIC5saW5rX19hcmVhLS1saW5rIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAzZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubGlua19fYXJlYSAubGlua19fYXJlYS0tbGluayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMGVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLmxpbmtfX2FyZWEgLmxpbmtfX2FyZWEtLWxpbmsge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDllbTtcbiAgfVxufVxuXG4ucG9ydHJhaXQtLWltZyB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luLXRvcDogOGVtO1xufVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi52aXN1YWxseWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xufVxuXG4udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSxcbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6Zm9jdXMge1xuICBjbGlwOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uY2xlYXJmaXg6YmVmb3JlLFxuLmNsZWFyZml4OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLmNsZWFyZml4IHtcbiAgKnpvb206IDE7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ud2lkZ2V0LWxvZ28tY29udGFpbmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsImh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuIiwiOjotbW96LXNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2IzZDRmYztcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcblxufVxuXG46OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2IzZDRmYztcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuaHIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5mYW5jeS1ociB7XG4gICAgaGVpZ2h0OiA2cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGltYWdlcy9mYW5jeS1oci5wbmcpIHJlcGVhdC14IDAgMDtcbiAgICBib3JkZXI6IDA7XG59XG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbmZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbnRleHRhcmVhIHtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG4uYnJvd3NlcnVwZ3JhZGUge1xuICAgIG1hcmdpbjogMC4yZW0gMDtcbiAgICBiYWNrZ3JvdW5kOiAjY2NjO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIHBhZGRpbmc6IDAuMmVtIDA7XG59XG4iLCJodG1sIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbi8qIGRlZmF1bHQgT1MgZm9udHMgKi9cbmJvZHkge1xuXHRmb250LWZhbWlseTogJ0hlbHZldGljYU5ldWUtTGlnaHQnLCAnSGVsdmV0aWNhIE5ldWUgTGlnaHQnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCAnTHVjaWRhIEdyYW5kZScsIHNhbnMtc2VyaWY7XG59XG5cbi8qIGZvbnRzIG5vdyBsb2FkZWQgKi9cbi8vIC53Zi1hY3RpdmUgYm9keSB7XG4vLyBcdCBmb250LWZhbWlseTogJGZvbnQtLWJvZHk7XG4vLyB9XG4uaG9tZS1zbGlkZS0tdGFnIHtcbiAgbWFyZ2luLXRvcDowO1xuICBmb250LWZhbWlseTogJGZvbnQtLW1haW47XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IHJlbSgyNCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdG9wOiAxLjJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaG9tZS1zbGlkZS0tbmFtZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC0tbWFpbjtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXh4c21hbGwtdXApIHtcbiAgICBtYXJnaW4tdG9wOiAxNXZoO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBtYXJnaW4tdG9wOiAyM3ZoO1xuICB9XG5cbiAgICAubmFtZV9fZmlyc3Qge1xuICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxNXB4O1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXh4c21hbGwtdXApIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oNTYpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXhsYXJnZS11cCkge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxMTApO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC5uYW1lX19sYXN0IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuICAgICAgICBmb250LXNpemU6IHJlbSg2Mik7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xM3B4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXhsYXJnZS11cCkge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxMTQpO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMzFweDtcbiAgICAgIH1cbiAgICB9XG59XG5cbi5zbGlkZS1udW1iZXIge1xuICBmb250LXNpemU6IHJlbSgzNik7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogMjAwO1xuICBmb250LWZhbWlseTogJGZvbnQtLW1haW47XG4gIC8vIG1hcmdpbi1ib3R0b206IC42ZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuLm51bWJlcl9fYXJlYSBwLCAubGlua19fYXJlYSBwIHtcbiAgLy8gbWFyZ2luOi41ZW0gMDtcbiAgbWFyZ2luOi4wIDAgMWVtIDA7XG4gICAgICBhOmxpbmssIGE6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC0tbWFpbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgICAgYTpob3ZlciwgYTphY3RpdmUge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxufVxuXG5cbi5udW1iZXJfX2FyZWEgcCBhOmJlZm9yZSwgLmxpbmtfX2FyZWEgcCBhOmJlZm9yZSwgLmNvbnRhY3RfX2xpc3QtLWl0ZW0gYTpiZWZvcmUsIC5uYXYtbGlzdCBsaSBhOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0IDBzO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0IDBzO1xufVxuXG4ubnVtYmVyX19hcmVhIHAgYTpob3ZlcjpiZWZvcmUsIC5saW5rX19hcmVhIHAgYTpob3ZlcjpiZWZvcmUsIC5jb250YWN0X19saXN0LS1pdGVtIGE6aG92ZXI6YmVmb3JlLCAubmF2LWxpc3QgbGkgYTpob3ZlcjpiZWZvcmUgIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG59XG5cbi5hYm91dC1oZWFkZXIge1xuICBmb250LWZhbWlseTogJGZvbnQtLW1haW47XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogMjAwO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuICAgIGZvbnQtc2l6ZTogcmVtKDI1KTtcbiAgICBtYXJnaW46IDEuNWVtIDAgLjVlbSAwO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBmb250LXNpemU6IHJlbSg1Mik7XG4gICAgbWFyZ2luOiAxZW0gMCAuMjVlbSAwO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHhsYXJnZS11cCkge1xuICAgIGZvbnQtc2l6ZTogcmVtKDY0KTtcbiAgICBtYXJnaW46IDEuNWVtIDAgLjVlbSAwO1xuICB9XG5cbn1cblxuLmFib3V0LXNsaWRlIHAge1xuICBmb250LWZhbWlseTogJGZvbnQtLW1haW47XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHNtYWxsLXVwKSB7XG4gICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMjEpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSgyMCk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXh4bGFyZ2UtdXApIHtcbiAgICBmb250LXNpemU6IHJlbSgxNyk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSgyMyk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXh4eGxhcmdlLXVwKSB7XG4gICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMjQpO1xuICB9XG59XG5cbi5jb250YWN0X19saXN0LS1pdGVtIHtcbiAgZm9udC1mYW1pbHk6ICRmb250LS1tYWluO1xuICBmb250LXdlaWdodDogMjAwO1xuICAvLyBtYXJnaW4tYm90dG9tOiAuNmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIHBhZGRpbmc6IC41ZW0gMDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXh4c21hbGwtdXApIHtcbiAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLWlwYWQtdXApIHtcbiAgICBmb250LXNpemU6IHJlbSgyNik7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLWxhcmdlLXVwKSB7XG4gICAgZm9udC1zaXplOiByZW0oMzIpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBmb250LXNpemU6IHJlbSg0NCk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXh4eGxhcmdlLXVwKSB7XG4gICAgZm9udC1zaXplOiByZW0oNjIpO1xuICB9XG4gIGEge1xuICAgIGNvbG9yOiMwMDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi5jb250YWN0X19saXN0LS1pdGVtIGE6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIHdpZHRoOjc1JTtcbn1cblxuXG5cbi5jb250YWN0X190eXBlIGxpIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5pbWFnZS1oZWFkZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luOiAwIDAgLjVlbSAwO1xuICBmb250LWZhbWlseTogJGZvbnQtLW1haW47XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHNtYWxsLXVwKSB7XG4gICAgZm9udC1zaXplOiByZW0oMjQpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBmb250LXNpemU6IHJlbSgzMik7XG4gIH1cblxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBmb250c1xuLy8vL1xuXG4vLyBTb21lIG9mIHRoZSBmb250IGZhbWlsaWVzIGhhdmUgdG8gYmUgcmVuYW1lZCB0byB1c2UgdGhlIHByb3BlciBvbmUgb25jZSB3ZSBoYXZlIHRoZSB3ZWIgZm9udCBwcm92aWRlciBzZXR1cC5cbi8vL1xuJGZvbnQtLW1haW46J1JhbGV3YXknLCBzYW5zLXNlcmlmO1xuXG4vLyBGb250IFNpemVzXG4vLy9cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuXG4gICRiYXNlOiAkZW0tYmFzZTtcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJEJyZWFrcG9pbnQtU2V0dGluZ3M6IChcbiAgJ2RlZmF1bHQgbWVkaWEnOiBhbGwsXG4gICdkZWZhdWx0IGZlYXR1cmUnOiBtaW4td2lkdGgsXG4gICdkZWZhdWx0IHBhaXInOiB3aWR0aCxcblxuICAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnOiBmYWxzZSxcbiAgJ3RvIGVtcyc6IGZhbHNlLFxuICAndHJhbnNmb3JtIHJlc29sdXRpb25zJzogdHJ1ZSxcblxuICAnbm8gcXVlcmllcyc6IGZhbHNlLFxuICAnbm8gcXVlcnkgZmFsbGJhY2tzJzogZmFsc2UsXG5cbiAgJ2Jhc2UgZm9udCBzaXplJzogMTZweCxcblxuICAnbGVnYWN5IHN5bnRheCc6IGZhbHNlXG4pO1xuXG4kYnJlYWtwb2ludDogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9zZXR0aW5nc1wiO1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbkBpbXBvcnQgXCJicmVha3BvaW50L2xlZ2FjeS1zZXR0aW5nc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbGVnYWN5LXNldHRpbmdzLXdhcm5pbmc7XG5cbiAgLy8gUmVzZXQgY29udGV4dHNcbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG5cbiAgJGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQoJHF1ZXJ5LCBmYWxzZSk7XG5cbiAgJHF1ZXJ5LXN0cmluZzogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5Jyk7XG4gICRxdWVyeS1mYWxsYmFjazogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2ZhbGxiYWNrJyk7XG5cbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2NvbnRleHQgaG9sZGVyJykgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5IGNvdW50JykgIWdsb2JhbDtcblxuICAvLyBBbGxvdyBmb3IgYW4gYXMtbmVlZGVkIG92ZXJyaWRlIG9yIHVzYWdlIG9mIG5vIHF1ZXJ5IGZhbGxiYWNrLlxuICBAaWYgJG5vLXF1ZXJ5ICE9IGZhbHNlIHtcbiAgICAkcXVlcnktZmFsbGJhY2s6ICRuby1xdWVyeTtcbiAgfVxuXG4gIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gIH1cblxuICAvLyBQcmludCBPdXQgUXVlcnkgU3RyaW5nXG4gIEBpZiBub3QgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQG1lZGlhICN7JHF1ZXJ5LXN0cmluZ30ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSAhPSBmYWxzZSBvciBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpID09IHRydWUge1xuXG4gICAgJHR5cGU6IHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpKTtcbiAgICAkcHJpbnQ6IGZhbHNlO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnYm9vbCcpIHtcbiAgICAgICRwcmludDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdsaXN0Jykge1xuICAgICAgQGVhY2ggJHdyYXBwZXIgaW4gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSAkd3JhcHBlciB7XG4gICAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JpdGUgRmFsbGJhY2tcbiAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkgYW5kICgkcHJpbnQgPT0gdHJ1ZSkge1xuICAgICAgJHR5cGUtZmFsbGJhY2s6IHR5cGUtb2YoJHF1ZXJ5LWZhbGxiYWNrKTtcblxuICAgICAgQGlmICgkdHlwZS1mYWxsYmFjayAhPSAnYm9vbCcpIHtcbiAgICAgICAgI3skcXVlcnktZmFsbGJhY2t9ICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xufVxuXG5cbkBtaXhpbiBtcSgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIucGFnZS13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXIoKTtcbn1cblxuLmdsb2JhbC1uYXYge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuICAgIHdpZHRoOjEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6M2VtO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBAaW5jbHVkZSBzcGFuKDggb2YgMTIpO1xuICAgIEBpbmNsdWRlIHByZSgyIG9mIDEyKTtcbiAgICBAaW5jbHVkZSBwb3N0KDIgb2YgMTIpO1xuICB9XG5cbn1cblxuLmZlYXR1cmUtc2xpZGUge1xuICAubnVtYmVyX19hcmVhIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHNtYWxsLXVwKSB7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teGxhcmdlLXVwKSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4oMiBvZiAxMik7XG4gICAgICB9XG4gIH1cblxuICAuaW1hZ2VfX2FyZWEge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHNtYWxsLXVwKSB7XG4gICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teGxhcmdlLXVwKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDggb2YgMTIpO1xuICAgIH1cblxuICB9XG4gIC5saW5rX19hcmVhIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teGxhcmdlLXVwKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDIgb2YgMTIgbGFzdCk7XG4gICAgfVxuICB9XG59XG5cbi5hYm91dC10ZXh0IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuICAgICAgQGluY2x1ZGUgc3BhbigxMCBvZiAxMik7XG4gICAgICBAaW5jbHVkZSBwcmUoMSBvZiAxMik7XG4gICAgICBAaW5jbHVkZSBwb3N0KDEgb2YgMTIgbGFzdCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHNtYWxsLXVwKSB7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oNiBvZiAxMiBydGwgKTtcbiAgICAgIEBpbmNsdWRlIHByZSgxIG9mIDEyKTtcbiAgICAgIEBpbmNsdWRlIHBvc3QoMCBvZiAxMik7XG4gICAgfVxufVxuLmFib3V0LXBob3RvIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXh4c21hbGwtdXApIHtcbiAgICBAaW5jbHVkZSBzcGFuKDEwIG9mIDEyKTtcbiAgICBAaW5jbHVkZSBwcmUoMSBvZiAxMiApO1xuICAgIEBpbmNsdWRlIHBvc3QoMSBvZiAxMiBsYXN0KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0tc21hbGwtdXApIHtcbiAgICBAaW5jbHVkZSBzcGFuKDggb2YgMTIpO1xuICAgIEBpbmNsdWRlIHByZSgyIG9mIDEyICk7XG4gICAgQGluY2x1ZGUgcG9zdCgyIG9mIDEyIGxhc3QpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS1tZWRpdW0tdXApIHtcbiAgICBAaW5jbHVkZSBzcGFuKDYgb2YgMTIpO1xuICAgIEBpbmNsdWRlIHByZSgzIG9mIDEyICk7XG4gICAgQGluY2x1ZGUgcG9zdCgzIG9mIDEyIGxhc3QpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBAaW5jbHVkZSBzcGFuKDQgb2YgMTIgcnRsKTtcbiAgICBAaW5jbHVkZSBwb3N0KDAgb2YgMTIgbGFzdCk7XG4gICAgQGluY2x1ZGUgcHJlKDEgb2YgMTIgKTtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gIH1cblxufVxuXG4uY29udGFjdF9fdHlwZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHNtYWxsLXVwKSB7XG4gICAgQGluY2x1ZGUgc3Bhbig2IG9mIDEyKTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teGxhcmdlLXVwKSB7XG4gICAgQGluY2x1ZGUgc3Bhbig1IG9mIDEyKTtcbiAgfVxufVxuLmNvbnRhY3RfX2xpc3Qge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHNtYWxsLXVwKSB7XG4gICAgQGluY2x1ZGUgc3Bhbig2IG9mIDEyIGxhc3QpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBAaW5jbHVkZSBzcGFuKDcgb2YgMTIgbGFzdCk7XG4gIH1cblxufVxuIiwiLy8gcmVtIFN1cHBvcnRcbi8vID09PT09PT09PT09XG5cbi8vIHJlbVxuLy8gLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3Igb3V0cHV0IGRpcmVjdGx5LlxuLy8gLSAkcHJvcCAgOiA8Y3NzIHByb3BlcnR5PlxuLy8gLSAkdmFsICAgOiA8Y3NzIHZhbHVlPlxuQG1peGluIHN1c3ktcmVtKFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gICRfcmVxczogKFxuICAgIHZhcmlhYmxlOiByaHl0aG0tdW5pdCByZW0td2l0aC1weC1mYWxsYmFjayxcbiAgICBtaXhpbjogcmVtLFxuICApO1xuICBAaWYgc3VzeS1zdXBwb3J0KHJlbSwgJF9yZXFzLCAkd2FybjogZmFsc2UpIGFuZCAkcmh5dGhtLXVuaXQgPT0gcmVtIHtcbiAgICBAaW5jbHVkZSByZW0oJHByb3AsICR2YWwpO1xuICB9IEBlbHNlIHtcbiAgICAjeyRwcm9wfTogJHZhbDtcbiAgfVxufVxuIiwiLy8gQ29udGFpbmVyIFN5bnRheFxuLy8gPT09PT09PT09PT09PT09PVxuXG4vLyBDb250YWluZXIgW21peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNldCBhIGNvbnRhaW5lciBlbGVtZW50XG4vLyAtIFskbGF5b3V0XSAgOiA8c2V0dGluZ3M+XG5AbWl4aW4gY29udGFpbmVyKFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICAgIDogJGxheW91dDtcbiAgJGxheW91dCAgICAgOiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuXG4gICRfd2lkdGggICAgIDogZ2V0LWNvbnRhaW5lci13aWR0aCgkbGF5b3V0KTtcbiAgJF9qdXN0aWZ5ICAgOiBwYXJzZS1jb250YWluZXItcG9zaXRpb24oc3VzeS1nZXQoY29udGFpbmVyLXBvc2l0aW9uLCAkbGF5b3V0KSk7XG4gICRfcHJvcGVydHkgIDogaWYoc3VzeS1nZXQobWF0aCwgJGxheW91dCkgPT0gc3RhdGljLCB3aWR0aCwgbWF4LXdpZHRoKTtcblxuICAkX2JveCAgICAgICA6IHN1c3ktZ2V0KGJveC1zaXppbmcsICRsYXlvdXQpO1xuXG4gIEBpZiAkX2JveCB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiAkX2JveCkpO1xuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGNvbnRhaW5lciwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBmbG9hdC1jb250YWluZXIoJF93aWR0aCwgJF9qdXN0aWZ5LCAkX3Byb3BlcnR5KTtcbiAgQGluY2x1ZGUgc2hvdy1ncmlkKCRsYXlvdXQpO1xufVxuXG4vLyBDb250YWluZXIgW2Z1bmN0aW9uXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBjb250YWluZXIgd2lkdGhcbi8vIC0gWyRsYXlvdXRdICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBjb250YWluZXIoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGxheW91dDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbiAgQHJldHVybiBnZXQtY29udGFpbmVyLXdpZHRoKCRsYXlvdXQpO1xufVxuXG4vLyBHZXQgQ29udGFpbmVyIFdpZHRoXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgdGhlIGNvbnRhaW5lciB3aWR0aFxuLy8gLSBbJGxheW91dF06IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBnZXQtY29udGFpbmVyLXdpZHRoKFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gICRsYXlvdXQgICAgICAgICA6IHBhcnNlLWdyaWQoJGxheW91dCk7XG4gICRfd2lkdGggICAgICAgICA6IHN1c3ktZ2V0KGNvbnRhaW5lciwgJGxheW91dCk7XG4gICRfY29sdW1uLXdpZHRoICA6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJGxheW91dCk7XG4gICRfbWF0aCAgICAgICAgICA6IHN1c3ktZ2V0KG1hdGgsICRsYXlvdXQpO1xuXG4gIEBpZiBub3QoJF93aWR0aCkgb3IgJF93aWR0aCA9PSBhdXRvIHtcbiAgICBAaWYgdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCkge1xuICAgICAgJF9jb2x1bW5zICAgOiBzdXN5LWdldChjb2x1bW5zLCAkbGF5b3V0KTtcbiAgICAgICRfZ3V0dGVycyAgIDogc3VzeS1nZXQoZ3V0dGVycywgJGxheW91dCk7XG4gICAgICAkX3NwcmVhZCAgICA6IGlmKGlzLXNwbGl0KCRsYXlvdXQpLCB3aWRlLCBuYXJyb3cpO1xuICAgICAgJF93aWR0aCAgICAgOiBzdXN5LXN1bSgkX2NvbHVtbnMsICRfZ3V0dGVycywgJF9zcHJlYWQpICogJF9jb2x1bW4td2lkdGg7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkX3dpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJF93aWR0aDtcbn1cblxuLy8gUGFyc2UgQ29udGFpbmVyIFBvc2l0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBhcnNlIHRoZSAkY29udGFpbmVyLXBvc2l0aW9uIGludG8gbWFyZ2luIHZhbHVlcy5cbi8vIC0gWyRqdXN0aWZ5XSAgIDogbGVmdCB8IGNlbnRlciB8IHJpZ2h0IHwgPGxlbmd0aD4gWzxsZW5ndGg+XVxuQGZ1bmN0aW9uIHBhcnNlLWNvbnRhaW5lci1wb3NpdGlvbihcbiAgJGp1c3RpZnk6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGNvbnRhaW5lci1wb3NpdGlvbilcbikge1xuICAkX3JldHVybjogaWYoJGp1c3RpZnkgPT0gbGVmdCwgMCwgYXV0bykgaWYoJGp1c3RpZnkgPT0gcmlnaHQsIDAsIGF1dG8pO1xuXG4gIEBpZiBub3QoaW5kZXgobGVmdCByaWdodCBjZW50ZXIsICRqdXN0aWZ5KSkge1xuICAgICRfcmV0dXJuOiBudGgoJGp1c3RpZnksIDEpO1xuICAgICRfcmV0dXJuOiAkX3JldHVybiBpZihsZW5ndGgoJGp1c3RpZnkpID4gMSwgbnRoKCRqdXN0aWZ5LCAyKSwgJF9yZXR1cm4pO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cbiIsIi8vIFN1c3kgRmFsbGJhY2sgQ2xlYXJmaXhcbi8vID09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBDbGVhcmZpeFxuLy8gLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuQG1peGluIHN1c3ktY2xlYXJmaXgge1xuICBAaWYgc3VzeS1zdXBwb3J0KGNsZWFyZml4LCAobWl4aW46IGNsZWFyZml4KSkge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9IEBlbHNlIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFNwYW4gU3ludGF4XG4vLyA9PT09PT09PT09PVxuXG4vLyBTcGFuIFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgc3Bhbm5pbmcgZWxlbWVudCB1c2luZyBzaG9ydGhhbmQgc3ludGF4LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0OiAkc3BhbjtcbiAgJHNwYW46IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkb3V0cHV0OiBzcGFuLW1hdGgoJHNwYW4pO1xuICAkbmVzdGluZzogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkY2xlYXI6IHN1c3ktZ2V0KGNsZWFyLCAkc3Bhbik7XG5cbiAgJGJveDogc3VzeS1nZXQoYm94LXNpemluZywgJHNwYW4pO1xuICAkY29udGVudC1ib3g6IGlmKHN1c3ktZ2V0KGdsb2JhbC1ib3gtc2l6aW5nKSAhPSAnYm9yZGVyLWJveCcsIHRydWUsIGZhbHNlKTtcbiAgJGJveDogJGJveCBvciBpZihpcy1pbnNpZGUoJHNwYW4pIGFuZCAkY29udGVudC1ib3gsIGJvcmRlci1ib3gsIG51bGwpO1xuXG4gIEBpZiAkY2xlYXIgPT0gYnJlYWsge1xuICAgIEBpbmNsdWRlIGJyZWFrO1xuICB9IEBlbHNlIGlmICRjbGVhciA9PSBub2JyZWFrIHtcbiAgICBAaW5jbHVkZSBub2JyZWFrO1xuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHNwYW4sICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiAkYm94KSk7XG4gIEBpbmNsdWRlIGZsb2F0LXNwYW4tb3V0cHV0KCRvdXRwdXQuLi4pO1xuXG4gIEBpZiB2YWxpZC1jb2x1bW5zKCRuZXN0aW5nLCBzaWxlbnQpIHtcbiAgICBAaW5jbHVkZSBuZXN0ZWQoJHNwYW4pIHsgQGNvbnRlbnQ7IH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU3BhbiBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBzcGFuLlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBmdW5jdGlvbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gIEByZXR1cm4gZ2V0LXNwYW4td2lkdGgoJHNwYW4pO1xufVxuXG4vLyBTcGFuIE1hdGhcbi8vIC0tLS0tLS0tLVxuLy8gR2V0IGFsbCB0aGUgc3BhbiByZXN1bHRzLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBzcGFuLW1hdGgoXG4gICRzcGFuXG4pIHtcbiAgJG5lc3QgICAgICAgICAgICAgOiBpZihzdXN5LWdldChyb2xlLCAkc3BhbikgPT0gbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkc3BsaXQtbmVzdCAgICAgICA6IGlmKGlzLXNwbGl0KCRzcGFuKSBhbmQgJG5lc3QsIHRydWUsIGZhbHNlKTtcbiAgJGVkZ2UgICAgICAgICAgICAgOiBnZXQtZWRnZSgkc3Bhbik7XG4gICRsb2NhdGlvbiAgICAgICAgIDogZ2V0LWxvY2F0aW9uKCRzcGFuKTtcblxuICAkZmxvYXQgICAgICAgICAgICA6IGZyb207XG4gICRwYWRkaW5nLWJlZm9yZSAgIDogbnVsbDtcbiAgJHBhZGRpbmctYWZ0ZXIgICAgOiBudWxsO1xuICAkbWFyZ2luLWJlZm9yZSAgICA6IG51bGw7XG4gICRtYXJnaW4tYWZ0ZXIgICAgIDogbnVsbDtcblxuICAvLyBjYWxjdWxhdGUgd2lkdGhzXG4gICRzcHJlYWQ6IGluZGV4KG1hcC12YWx1ZXMoJHNwYW4pLCBzcHJlYWQpO1xuICAkc3BhbjogaWYoJHNwbGl0LW5lc3QgYW5kIG5vdCgkc3ByZWFkKSwgbWFwLW1lcmdlKCRzcGFuLCAoc3ByZWFkOiB3aWRlKSksICRzcGFuKTtcbiAgJHdpZHRoOiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG4gICRndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG5cbiAgLy8gYXBwbHkgZ3V0dGVyc1xuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgQGlmIG5vdChzdXN5LWdldChyb2xlLCAkc3BhbikpIHtcbiAgICAgICRwYWRkaW5nLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRwYWRkaW5nLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlcik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaWYgbm90KCRzcGxpdC1uZXN0KSB7XG4gICAgICAkbWFyZ2luLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRtYXJnaW4tYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH1cblxuICAvLyBzcGVjaWFsIG1hcmdpbiBoYW5kbGluZ1xuICBAaWYgc3VzeS1nZXQob3V0cHV0LCAkc3BhbikgPT0gaXNvbGF0ZSBhbmQgJGxvY2F0aW9uIHtcbiAgICAkbWFyZ2luLWJlZm9yZTogZ2V0LWlzb2xhdGlvbigkc3Bhbik7XG4gICAgJG1hcmdpbi1hZnRlcjogLTEwMCU7XG4gIH0gQGVsc2UgaWYgJGVkZ2Uge1xuICAgICRpcy1zcGxpdDogaXMtc3BsaXQoJHNwYW4pO1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuXG4gICAgQGlmICRlZGdlID09IGxhc3Qge1xuICAgICAgJGZsb2F0OiBzdXN5LWdldChsYXN0LWZsb3csICRzcGFuKTtcbiAgICB9XG5cbiAgICBAaWYgbm90KCRpcy1zcGxpdCkge1xuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGZpcnN0IGFuZCAkcG9zID09IGJlZm9yZSkge1xuICAgICAgICAkbWFyZ2luLWJlZm9yZTogMDtcbiAgICAgIH1cbiAgICAgIEBpZiAkZWRnZSA9PSBmdWxsIG9yICgkZWRnZSA9PSBsYXN0IGFuZCAkcG9zID09IGFmdGVyKSB7XG4gICAgICAgICRtYXJnaW4tYWZ0ZXI6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuIChcbiAgICB3aWR0aCAgICAgICAgICAgOiAkd2lkdGgsXG4gICAgZmxvYXQgICAgICAgICAgIDogJGZsb2F0LFxuICAgIG1hcmdpbi1iZWZvcmUgICA6ICRtYXJnaW4tYmVmb3JlLFxuICAgIG1hcmdpbi1hZnRlciAgICA6ICRtYXJnaW4tYWZ0ZXIsXG4gICAgcGFkZGluZy1iZWZvcmUgIDogJHBhZGRpbmctYmVmb3JlLFxuICAgIHBhZGRpbmctYWZ0ZXIgICA6ICRwYWRkaW5nLWFmdGVyLFxuICAgIGZsb3cgICAgICAgICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKSxcbiAgKTtcbn1cblxuLy8gR2V0IFNwYW4gV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gc3BhbiB3aWR0aC5cbi8vIC0gJHNwYW46IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LXNwYW4td2lkdGgoXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG5cbiAgJG4gICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkbG9jYXRpb24gOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuICAkY29sdW1ucyAgOiBzdXN5LWdldChjb2x1bW5zLCAkc3Bhbik7XG4gICRndXR0ZXJzICA6IHN1c3ktZ2V0KGd1dHRlcnMsICRzcGFuKTtcbiAgJHNwcmVhZCAgIDogc3VzeS1nZXQoc3ByZWFkLCAkc3Bhbik7XG5cbiAgJGNvbnRleHQgIDogbnVsbDtcbiAgJHNwYW4tc3VtIDogbnVsbDtcbiAgJHdpZHRoICAgIDogbnVsbDtcblxuICBAaWYgJG4gPT0gJ2Z1bGwnIHtcbiAgICAkcG9zOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKTtcbiAgICAkcm9sZTogc3VzeS1nZXQocm9sZSwgJHNwYW4pO1xuICAgICRuOiBpZigkcG9zID09IHNwbGl0IGFuZCAkcm9sZSAhPSBuZXN0LCBzdXN5LWNvdW50KCRjb2x1bW5zKSwgMTAwJSk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbikgIT0gbnVtYmVyIHtcbiAgICBAd2FybiBcIigje3R5cGUtb2YoJG4pfSkgI3skbn0gaXMgbm90IGEgdmFsaWQgc3Bhbi5cIjtcbiAgfSBAZWxzZSBpZiB1bml0bGVzcygkbikge1xuICAgICRjb250ZXh0OiBzdXN5LXN1bSgkY29sdW1ucywgJGd1dHRlcnMsIGlmKGlzLXNwbGl0KCRzcGFuKSwgd2lkZSwgbmFycm93KSk7XG4gICAgJHNwcmVhZDogaWYoaXMtaW5zaWRlKCRzcGFuKSwgJHNwcmVhZCBvciB3aWRlLCAkc3ByZWFkKTtcbiAgICAkc3Bhbi1zdW06IHN1c3koJG4sICRsb2NhdGlvbiwgJGNvbHVtbnMsICRndXR0ZXJzLCAkc3ByZWFkKTtcblxuICAgICRfbWF0aDogc3VzeS1nZXQobWF0aCwgJHNwYW4pO1xuICAgICRfY29sdW1uLXdpZHRoOiBzdXN5LWdldChjb2x1bW4td2lkdGgsICRzcGFuKTtcbiAgICBAaWYgJF9tYXRoID09IHN0YXRpYyB7XG4gICAgICAkd2lkdGg6ICRzcGFuLXN1bSAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRzcGFuLXN1bSAvICRjb250ZXh0KTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICR3aWR0aDogJG47XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cbiIsIi8vIERpcmVjdGlvbiBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PVxuXG4vLyBTdXN5IEZsb3cgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgZmxvdzogbHRyLFxuKSk7XG5cbi8vIEdldCBEaXJlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIG9yICd0bycgZGlyZWN0aW9uIG9mIGEgbHRyIG9yIHJ0bCBmbG93LlxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuLy8gLSBbJGtleV0gICA6IGZyb20gfCB0b1xuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSxcbiAgJGtleTogZnJvbVxuKSB7XG4gICRyZXR1cm46IGlmKCRmbG93ID09IHJ0bCwgKGZyb206IHJpZ2h0LCB0bzogbGVmdCksIChmcm9tOiBsZWZ0LCB0bzogcmlnaHQpKTtcbiAgQHJldHVybiBtYXAtZ2V0KCRyZXR1cm4sICRrZXkpO1xufVxuXG4vLyBUb1xuLy8gLS1cbi8vIFJldHVybiB0aGUgJ3RvJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gdG8oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgdG8pO1xufVxuXG4vLyBGcm9tXG4vLyAtLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gZnJvbShcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCBmcm9tKTtcbn1cbiIsIi8vIEd1dHRlciBTeW50YXhcbi8vID09PT09PT09PT09PT1cblxuXG4vLyBHdXR0ZXJzXG4vLyAtLS0tLS0tXG4vLyBTZXQgZ3V0dGVycyBvbiBhbiBlbGVtZW50LlxuLy8gLSBbJHNwYW5dICAgOiA8c2V0dGluZ3M+XG5AbWl4aW4gZ3V0dGVycyhcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgIDogJHNwYW47XG4gICRzcGFuICAgICA6IHBhcnNlLWd1dHRlcnMoJHNwYW4pO1xuICAkX2d1dHRlcnMgOiBnZXQtZ3V0dGVycygkc3Bhbik7XG5cbiAgJF9vdXRwdXQ6IChcbiAgICBiZWZvcmU6IG1hcC1nZXQoJF9ndXR0ZXJzLCBiZWZvcmUpLFxuICAgIGFmdGVyOiBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpLFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRzcGFuKSxcbiAgKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZ3V0dGVycywgJGluc3BlY3QpO1xuXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nLW91dHB1dCgkX291dHB1dC4uLik7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIG1hcmdpbi1vdXRwdXQoJF9vdXRwdXQuLi4pO1xuICB9XG59XG5cbkBtaXhpbiBndXR0ZXIoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGd1dHRlcnMoJHNwYW4pO1xufVxuXG5cbi8vIEd1dHRlclxuLy8gLS0tLS0tXG4vLyBSZXR1cm4gdGhlIHdpZHRoIG9mIGEgZ3V0dGVyLlxuLy8gLSBbJHNwYW5dICAgOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ3V0dGVyKFxuICAkc3BhbjogJHN1c3lcbikge1xuICAkc3BhbjogcGFyc2UtZ3V0dGVycygkc3Bhbik7XG5cbiAgJF9ndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG4gICRfZ3V0dGVyczogbWFwLWdldCgkX2d1dHRlcnMsIGJlZm9yZSkgb3IgbWFwLWdldCgkX2d1dHRlcnMsIGFmdGVyKTtcblxuICBAcmV0dXJuICRfZ3V0dGVycztcbn1cblxuQGZ1bmN0aW9uIGd1dHRlcnMoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gIEByZXR1cm4gZ3V0dGVyKCRzcGFuKTtcbn1cblxuXG4vLyBHZXQgR3V0dGVyIFdpZHRoXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gZ3V0dGVyIHdpZHRoLlxuLy8gLSBbJGNvbnRleHRdOiA8Y29udGV4dD5cbkBmdW5jdGlvbiBnZXQtZ3V0dGVyLXdpZHRoKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkY29udGV4dCAgOiBwYXJzZS1ndXR0ZXJzKCRjb250ZXh0KTtcblxuICAkX2d1dHRlcnMgOiBzdXN5LWdldChndXR0ZXJzLCAkY29udGV4dCk7XG4gICRfZ3V0dGVyICA6IHN1c3ktZ2V0KGd1dHRlci1vdmVycmlkZSwgJGNvbnRleHQpO1xuXG4gIEBpZiAkX2d1dHRlcnMgYW5kICgkX2d1dHRlcnMgPiAwKSBhbmQgbm90KCRfZ3V0dGVyKSB7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJGNvbnRleHQpO1xuICAgICRfbWF0aDogZ3V0dGVyLW1hdGgoJGNvbnRleHQpO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICRfZ3V0dGVyOiAkX2d1dHRlcnMgKiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfY29sdW1ucyA6IHN1c3ktZ2V0KGNvbHVtbnMsICRjb250ZXh0KTtcbiAgICAgICRfc3ByZWFkICA6IGlmKGlzLXNwbGl0KCRjb250ZXh0KSwgd2lkZSwgc3VzeS1nZXQoc3ByZWFkLCAkY29udGV4dCkpO1xuICAgICAgJF9ndXR0ZXIgIDogcGVyY2VudGFnZSgkX2d1dHRlcnMgLyBzdXN5LXN1bSgkX2NvbHVtbnMsICRfZ3V0dGVycywgJF9zcHJlYWQpKTtcbiAgICB9XG4gIH1cblxuICAkX2d1dHRlcjogaWYoJF9ndXR0ZXIgPT0gJ25vLWd1dHRlcnMnIG9yICRfZ3V0dGVyID09ICduby1ndXR0ZXInLCBudWxsLCAkX2d1dHRlcik7XG5cbiAgQHJldHVybiAkX2d1dHRlcjtcbn1cblxuXG4vLyBHZXQgR3V0dGVyc1xuLy8gLS0tLS0tLS0tLS1cbi8vIFJldHVybiBiZWZvcmUgYW5kIGFmdGVyIGd1dHRlciB2YWx1ZXMuXG4vLyAtIFskY29udGV4dF06IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGdldC1ndXR0ZXJzKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkY29udGV4dCAgICAgICAgICAgIDogcGFyc2UtZ3V0dGVycygkY29udGV4dCk7XG5cbiAgJF9ndXR0ZXItcG9zaXRpb24gICA6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpO1xuICAkX2d1dHRlciAgICAgICAgICAgIDogZ2V0LWd1dHRlci13aWR0aCgkY29udGV4dCk7XG5cbiAgJF9yZXR1cm4gICAgICAgICAgICA6IChiZWZvcmU6IG51bGwsIGFmdGVyOiBudWxsKTtcblxuICBAaWYgaXMtc3BsaXQoJGNvbnRleHQpIGFuZCAkX2d1dHRlciB7XG4gICAgJF9ndXR0ZXI6ICRfZ3V0dGVyIC8gMjtcbiAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoYmVmb3JlOiAkX2d1dHRlciwgYWZ0ZXI6ICRfZ3V0dGVyKSk7XG4gIH0gQGVsc2Uge1xuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sICgkX2d1dHRlci1wb3NpdGlvbjogJF9ndXR0ZXIpKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gSXMgSW5zaWRlXG4vLyAtLS0tLS0tLS1cbi8vIFJldHVybnMgdHJ1ZSBpZiBndXR0ZXJzIGFyZSBpbnNpZGUuXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gaXMtaW5zaWRlKFxuICAkY29udGV4dFxuKSB7XG4gICRfaW5zaWRlOiBpbnNpZGUgaW5zaWRlLXN0YXRpYztcbiAgJF9ndXR0ZXItcG9zaXRpb246IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpO1xuXG4gIEByZXR1cm4gaWYoaW5kZXgoJF9pbnNpZGUsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xufVxuXG5cbi8vIElzIFNwbGl0XG4vLyAtLS0tLS0tLVxuLy8gUmV0dXJucyB0cnVlIGlmIGd1dHRlcnMgYXJlIHNwbGl0LlxuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGlzLXNwbGl0KFxuICAkY29udGV4dFxuKSB7XG4gICRfc3BsaXQ6IHNwbGl0IGluc2lkZSBpbnNpZGUtc3RhdGljO1xuICAkX2d1dHRlci1wb3NpdGlvbjogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBpZihpbmRleCgkX3NwbGl0LCAkX2d1dHRlci1wb3NpdGlvbiksIHRydWUsIGZhbHNlKTtcbn1cblxuXG4vLyBHdXR0ZXIgTWF0aFxuLy8gLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgbWF0aCB0byB1c2UgZm9yIGd1dHRlciBjYWxjdWxhdGlvbnNcbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBndXR0ZXItbWF0aChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJF9yZXR1cm4gIDogc3VzeS1nZXQobWF0aCwgJGNvbnRleHQpO1xuICAkX3JldHVybiAgOiBpZihzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KSA9PSBpbnNpZGUtc3RhdGljLCBzdGF0aWMsICRfcmV0dXJuKTtcblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFByaW50IHN0eWxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQG1lZGlhIHByaW50IHtcbiAgICAqLFxuICAgICo6YmVmb3JlLFxuICAgICo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYSxcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICBhW2hyZWZdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gICAgfVxuXG4gICAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gICAgfVxuXG4gICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICB0aGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcbiAgICB9XG5cbiAgICB0cixcbiAgICBpbWcge1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICAgIG9ycGhhbnM6IDM7XG4gICAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICBoMixcbiAgICBoMyB7XG4gICAgICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICAgIH1cbn1cbiIsIi8qIEBhdXRob3I6IFhhdmllciBEYW1tYW4gKEB4ZGFtbWFuKSAtIGh0dHA6Ly9naXRodWIuY29tL3hkYW1tYW4vc2VsZWN0aW9uLXNoYXJlciAtIEBsaWNlbnNlOiBNSVQgKi9cbkBrZXlmcmFtZXMgc2VsZWN0aW9uU2hhcmVyUG9wb3Zlci1hbmltYXRpb257MCV7dHJhbnNmb3JtOm1hdHJpeCgwLjk3LDAsMCwxLDAsMTIpO2ZpbHRlcjphbHBoYShvcGFjaXR5PTApO29wYWNpdHk6MH0yMCV7dHJhbnNmb3JtOm1hdHJpeCgwLjk5LDAsMCwxLDAsMik7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NzApO29wYWNpdHk6Ljd9NDAle3RyYW5zZm9ybTptYXRyaXgoMSwwLDAsMSwwLC0xKTtmaWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApO29wYWNpdHk6MX0xMDAlLDcwJXt0cmFuc2Zvcm06bWF0cml4KDEsMCwwLDEsMCwwKTtmaWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApO29wYWNpdHk6MX19I3NlbGVjdGlvblNoYXJlclBvcG92ZXJ7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMTAwcHg7bGVmdDotMTAwcHg7ei1pbmRleDoxMDEwfSNzZWxlY3Rpb25TaGFyZXJQb3BvdmVyOmFmdGVye2NvbnRlbnQ6Jyc7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LTNweDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotNHB4O3dpZHRoOjhweDtoZWlnaHQ6OHB4Oy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7YmFja2dyb3VuZDojMjYyNjI1O2JveC1zaGFkb3c6MCAwIDJweCAjMjYyNjI1fSNzZWxlY3Rpb25TaGFyZXJQb3BvdmVyLmFuaW17dHJhbnNpdGlvbjp0b3AgLjA3NXMgZWFzZS1vdXQ7YW5pbWF0aW9uOnNlbGVjdGlvblNoYXJlclBvcG92ZXItYW5pbWF0aW9uIDE4MG1zIGZvcndhcmRzIGxpbmVhcjstd2Via2l0LWFuaW1hdGlvbjpzZWxlY3Rpb25TaGFyZXJQb3BvdmVyLWFuaW1hdGlvbiAxODBtcyBmb3J3YXJkcyBsaW5lYXJ9I3NlbGVjdGlvblNoYXJlclBvcG92ZXItaW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7Ym9yZGVyLXJhZGl1czo1cHg7Ym9yZGVyOjFweCBzb2xpZDtib3JkZXItY29sb3I6IzI2MjYyNSAjMWMxYzFiICMxMjEyMTE7Ym94LXNoYWRvdzowIDFweCAzcHggLTFweCByZ2JhKDAsMCwwLC43KSxpbnNldCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjA3KSxpbnNldCAwIDAgMnB4IHJnYmEoMjU1LDI1NSwyNTUsLjE1KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20scmdiYSg0OSw0OSw0NywuOTcpLCMyNjI2MjUpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fSNzZWxlY3Rpb25TaGFyZXJQb3BvdmVyIC5zZWxlY3Rpb25TaGFyZXJQb3BvdmVyLWNsaXB7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0xMXB4O2Rpc3BsYXk6YmxvY2s7bGVmdDo1MCU7Y2xpcDpyZWN0KDEycHggMjRweCAyNHB4IDApO21hcmdpbi1sZWZ0Oi0xMnB4O3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6MjRweH0jc2VsZWN0aW9uU2hhcmVyUG9wb3ZlciAuc2VsZWN0aW9uU2hhcmVyUG9wb3Zlci1hcnJvd3tkaXNwbGF5OmJsb2NrO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSBzY2FsZSgwLjUpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHNjYWxlKDAuNSk7YmFja2dyb3VuZC1jb2xvcjojNDU0NTQzO2JvcmRlcjoycHggc29saWQgIzEyMTIxMTtib3gtc2l6aW5nOmNvbnRlbnQtYm94fS5zZWxlY3Rpb25TaGFyZXIgdWx7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lfS5zZWxlY3Rpb25TaGFyZXIgdWwgbGl7ZmxvYXQ6bGVmdDtsaXN0LXN0eWxlOm5vbmU7YmFja2dyb3VuZDowIDA7bWFyZ2luOjB9LnNlbGVjdGlvblNoYXJlciBhLmFjdGlvbntkaXNwbGF5OmJsb2NrO3RleHQtaW5kZW50Oi0yMDBweDttYXJnaW46NXB4IDdweDt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2JvcmRlcjowfS5zZWxlY3Rpb25TaGFyZXIgYTpob3Zlcntjb2xvcjojY2NjfS5zZWxlY3Rpb25TaGFyZXIgYS50d2VldHtiYWNrZ3JvdW5kOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE3MScgaGVpZ2h0PScxMzknJTNlJTNjZyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgtMjgyLjMyMDUzLC0zOTYuMzA3MzQpJyUzZSUzY3BhdGggc3R5bGU9J2ZpbGw6d2hpdGUnIGQ9J20gNDUzLjgyNTkzLDQxMi44MDYxOSBjIC02LjMwOTcsMi43OTg5NyAtMTMuMDkxODksNC42ODk4MiAtMjAuMjA4NTIsNS41NDA0OSA3LjI2NDEzLC00LjM1NDU0IDEyLjg0NDA2LC0xMS4yNDk5MiAxNS40NzA2NywtMTkuNDY2NzUgLTYuNzk5MzQsNC4wMzI5NSAtMTQuMzI5Myw2Ljk2MDU1IC0yMi4zNDQ2MSw4LjUzODQxIC02LjQxNzc1LC02LjgzODc5IC0xNS41NjI0MywtMTEuMTExIC0yNS42ODI5OCwtMTEuMTExIC0xOS40MzE1OSwwIC0zNS4xODY5NiwxNS43NTM2NSAtMzUuMTg2OTYsMzUuMTg1MjUgMCwyLjc1NzgxIDAuMzExMjgsNS40NDM1OSAwLjkxMTU1LDguMDE4NzUgLTI5LjI0MzQ0LC0xLjQ2NzIzIC01NS4xNjk5NSwtMTUuNDc1ODIgLTcyLjUyNDYxLC0zNi43NjM5NiAtMy4wMjg3OSw1LjE5NjYyIC00Ljc2NDQzLDExLjI0MDQ4IC00Ljc2NDQzLDE3LjY4OTEgMCwxMi4yMDc3NyA2LjIxMTk0LDIyLjk3NzQ3IDE1LjY1MzMyLDI5LjI4NzE2IC01Ljc2NzczLC0wLjE4MjY1IC0xMS4xOTMzMSwtMS43NjU2NSAtMTUuOTM3MTYsLTQuNDAwODMgLTAuMDA0LDAuMTQ2NjMgLTAuMDA0LDAuMjk0MTIgLTAuMDA0LDAuNDQyNDggMCwxNy4wNDc2NyAxMi4xMjg4OSwzMS4yNjgwNiAyOC4yMjU1NSwzNC41MDI2NiAtMi45NTI0NywwLjgwNDM2IC02LjA2MTAxLDEuMjMzOTggLTkuMjY5ODksMS4yMzM5OCAtMi4yNjczLDAgLTQuNDcxMTQsLTAuMjIxMjQgLTYuNjIwMTEsLTAuNjMxMTQgNC40NzgwMSwxMy45Nzg1NyAxNy40NzIxNCwyNC4xNTE0MyAzMi44Njk5MiwyNC40MzQ0MSAtMTIuMDQyMjcsOS40Mzc5NiAtMjcuMjEzNjYsMTUuMDYzMzUgLTQzLjY5OTY1LDE1LjA2MzM1IC0yLjg0MDE0LDAgLTUuNjQwODIsLTAuMTY3MjIgLTguMzkzNDksLTAuNDkyMjMgMTUuNTcxODYsOS45ODQyMSAzNC4wNjcwMywxNS44MDk0IDUzLjkzNzY4LDE1LjgwOTQgNjQuNzIwMjQsMCAxMDAuMTEzMDEsLTUzLjYxNTI0IDEwMC4xMTMwMSwtMTAwLjExMzg3IDAsLTEuNTI1NTQgLTAuMDM0MywtMy4wNDI1MSAtMC4xMDIwNCwtNC41NTI2MSA2Ljg3Mzk0LC00Ljk1OTk1IDEyLjgzODkxLC0xMS4xNTY0NiAxNy41NTYxOCwtMTguMjEzMDUgeicgLyUzZSUzYy9nJTNlJTNjL3N2ZyUzZVwiKSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjE4cHg7YmFja2dyb3VuZC1wb3NpdGlvbjoycHggNHB4fS5zZWxlY3Rpb25TaGFyZXIgYS5mYWNlYm9va3tiYWNrZ3JvdW5kOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNjc3ZnIHZpZXdCb3g9JzAgMCAzMyAzMycgd2lkdGg9JzI1JyBoZWlnaHQ9JzI1JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyUzZSUzY2clM2UlM2NwYXRoIHN0eWxlPSdmaWxsOndoaXRlJyBkPSdNIDE3Ljk5NiwzMkwgMTIsMzIgTCAxMiwxNiBsLTQsMCBsMC01LjUxNCBsIDQtMC4wMDJsLTAuMDA2LTMuMjQ4QyAxMS45OTMsMi43MzcsIDEzLjIxMywwLCAxOC41MTIsMGwgNC40MTIsMCBsMCw1LjUxNSBsLTIuNzU3LDAgYy0yLjA2MywwLTIuMTYzLDAuNzctMi4xNjMsMi4yMDlsLTAuMDA4LDIuNzZsIDQuOTU5LDAgbC0wLjU4NSw1LjUxNEwgMTgsMTZMIDE3Ljk5NiwzMnonJTNlJTNjL3BhdGglM2UlM2MvZyUzZSUzYy9zdmclM2VcIikgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxOHB4O2JhY2tncm91bmQtcG9zaXRpb246MCAycHg7ZGlzcGxheTpub25lfS5zZWxlY3Rpb25TaGFyZXIgYS5lbWFpbHtiYWNrZ3JvdW5kOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9Jzk0JyBoZWlnaHQ9JzY0JyUzZSUzY2cgdHJhbnNmb3JtPSd0cmFuc2xhdGUoLTEwLCAtMTApJyBmaWxsPSd0cmFuc3BhcmVudCclM2UlM2NyZWN0IHg9JzAnIHk9JzAnIHdpZHRoPScxMTQnIGhlaWdodD0nMTE0JyUzZSUzYy9yZWN0JTNlJTNjcGF0aCBkPSdNMTIsMTIgTDEwMiwxMiBMMTAyLDcyIEwxMiw3MiBMMTIsMTIgWiBNMTYsMTIgTDUzLDQ5IEM1NS42NjY2NjY3LDUxIDU4LjMzMzMzMzMsNTEgNjEsNDkgTDk4LDEyIEwxNiwxMiBaIE0xNSw3MiBMNDUsNDIgTDE1LDcyIFogTTY5LDQyIEw5OSw3MiBMNjksNDIgWicgc3Ryb2tlPSd3aGl0ZScgc3Ryb2tlLXdpZHRoPSc1JyUzZSUzYy9wYXRoJTNlJTNjL2clM2UlM2Mvc3ZnJTNlXCIpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MjBweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgNHB4fSNzZWxlY3Rpb25TaGFyZXJQb3B1bmRlci5maXhlZHt0cmFuc2l0aW9uOmJvdHRvbSAuNXMgZWFzZS1pbi1vdXQ7d2lkdGg6MTAwJTtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7Ym90dG9tOi01MHB4fS5zZWxlY3Rpb25TaGFyZXJ7dHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuNnMgZWFzZS1pbi1vdXR9LnNlbGVjdGlvblNoYXJlci5tb3ZlRG93bnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDYwcHgsMCl9I3NlbGVjdGlvblNoYXJlclBvcHVuZGVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDowO3RyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dDtiYWNrZ3JvdW5kOiNjY2M7Ym9yZGVyOjA7Ym94LXNoYWRvdzppbnNldCAwIDEwcHggNXB4IC0xMHB4IHJnYmEoMCwwLDAsLjUpLGluc2V0IDAgLTEwcHggNXB4IC0xMHB4IHJnYmEoMCwwLDAsLjUpO2JvcmRlci1yYWRpdXM6MDtvdmVyZmxvdzpoaWRkZW59I3NlbGVjdGlvblNoYXJlclBvcHVuZGVyLnNob3d7aGVpZ2h0OjUwcHh9LnNlbGVjdGlvblNoYXJlclBsYWNlaG9sZGVye2hlaWdodDoxZW07bWFyZ2luLWJvdHRvbTotMmVtO3RyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dH0uc2VsZWN0aW9uU2hhcmVyUGxhY2Vob2xkZXIuc2hvd3toZWlnaHQ6NTBweCFpbXBvcnRhbnR9I3NlbGVjdGlvblNoYXJlclBvcHVuZGVyLWlubmVyIHVse292ZXJmbG93OmhpZGRlbjtmbG9hdDpyaWdodDttYXJnaW46MH0jc2VsZWN0aW9uU2hhcmVyUG9wdW5kZXItaW5uZXIgdWwgbGl7cGFkZGluZzo1cHg7b3ZlcmZsb3c6aGlkZGVufSNzZWxlY3Rpb25TaGFyZXJQb3B1bmRlci1pbm5lciBsYWJlbHtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjMwMDtsaW5lLWhlaWdodDo1MHB4O21hcmdpbjowIDIwcHggMCAxMHB4fSNzZWxlY3Rpb25TaGFyZXJQb3B1bmRlci1pbm5lciBhe3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7YmFja2dyb3VuZC1zaXplOjMwcHh9I3NlbGVjdGlvblNoYXJlclBvcHVuZGVyLWlubmVyIGEudHdlZXR7YmFja2dyb3VuZC1wb3NpdGlvbjowIDJweH1cbiIsImltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbiIsIi8vIEdMT0JBTFxuLy89PT09PT09PT09PT09PT09PT09XG5cbi5saXN0X19pbmxpbmUge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOjEwMCU7XG4gICAgbGkge1xuICAgICAgZmxvYXQ6bGVmdDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOmF1dG87XG4gICAgfVxufVxuXG4ubGlzdF9fc3R5bGUge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIExPQ0FMXG4vLz09PT09PT09PT09PT09PT09PVxuXG4uaG9tZS1zbGlkZS0tbGlzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjQpO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTMwcHg7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAzZW07XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teGxhcmdlLXVwKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVlbTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHhsYXJnZS11cCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMGVtO1xuICAgICAgfVxuICBsaSB7XG4gICAgd2lkdGg6MzMlO1xuICAgIG1hcmdpbi10b3A6MTBweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuICAgICAgcGFkZGluZzogMCA4dnc7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICAgIHBhZGRpbmc6IDAgMTF2dztcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXh4bGFyZ2UtdXApIHtcbiAgICAgIHBhZGRpbmc6IDAgMTN2dztcbiAgICB9XG5cblxuICAgIGEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IDQuNWVtO1xuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi5uYXYtbGlzdC0tbnVtYmVyIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzRBNEE0QTtcbn1cblxuLm5hdi1saXN0LS1udW1iZXIge1xuICBmb250LWZhbWlseTogJGZvbnQtLW1haW47XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHNtYWxsLXVwKSB7XG4gICAgZm9udC1zaXplOiByZW0oNTEpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBmb250LXNpemU6IHJlbSg2NCk7XG4gIH1cblxuXG59XG4uaG9tZS1zbGlkZS0tbGlzdCBhOmxpbmssIC5ob21lLXNsaWRlLS1saXN0IGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmhvbWUtc2xpZGUtLWxpc3QgYTpob3ZlciwgLmhvbWUtc2xpZGUtLWxpc3QgYTphY3RpdmUge1xuICBjb2xvcjogIzAwMDtcbn1cblxuXG4ubmF2LWxpc3QtLWxhYmVsIHtcbiAgZm9udC1mYW1pbHk6ICRmb250LS1tYWluO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHNtYWxsLXVwKSB7XG4gICAgZm9udC1zaXplOiByZW0oMTQpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS1zbWFsbC11cCkge1xuICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0tbWVkaXVtLXVwKSB7XG4gICAgZm9udC1zaXplOiByZW0oMjEpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBmb250LXNpemU6IHJlbSgyNCk7XG4gIH1cbn1cblxuXG5cbi8vIC5jb250YWN0X190eXBlIC5lbWFpbC0taXRlbTpiZWZvcmUge1xuLy8gICBjb250ZW50OicnO1xuLy8gICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2VtYWlsLnBuZyk7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgd2lkdGg6IDY3cHg7XG4vLyAgIGhlaWdodDogNzBweDtcbi8vICAgZmxvYXQ6IGxlZnQ7XG4vLyAgIG1hcmdpbi1sZWZ0OiAtODBweDtcbi8vICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbi8vICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuLy8gICAgICAgdG9wOjBweDtcbi8vICAgICB9XG4vLyAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXhsYXJnZS11cCkge1xuLy8gICAgICAgdG9wOjhweDtcbi8vICAgICB9XG4vLyB9XG4vLyAuY29udGFjdF9fdHlwZSAudHdpdHRlci0taXRlbTpiZWZvcmUge1xuLy8gICBjb250ZW50OicnO1xuLy8gICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL3R3aXR0ZXIucG5nKTtcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICB3aWR0aDogNjdweDtcbi8vICAgaGVpZ2h0OiA3MHB4O1xuLy8gICBmbG9hdDogbGVmdDtcbi8vICAgbWFyZ2luLWxlZnQ6IC03NXB4O1xuLy8gICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuLy8gICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuLy8gICAgIHRvcDowcHg7XG4vLyAgIH1cbi8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXhsYXJnZS11cCkge1xuLy8gICAgIHRvcDo1cHg7XG4vLyAgIH1cbi8vIH1cbi8vIC5jb250YWN0X190eXBlIC5pbnN0YWdyYW0tLWl0ZW06YmVmb3JlIHtcbi8vICAgY29udGVudDonJztcbi8vICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9pbnN0YWdyYW0ucG5nKTtcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICB3aWR0aDogNjdweDtcbi8vICAgaGVpZ2h0OiA3MHB4O1xuLy8gICBmbG9hdDogbGVmdDtcbi8vICAgbWFyZ2luLWxlZnQ6IC03NXB4O1xuLy8gICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuLy8gICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuLy8gICAgIHRvcDowcHg7XG4vLyAgIH1cbi8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXhsYXJnZS11cCkge1xuLy8gICAgIHRvcDo1cHg7XG4vLyAgIH1cbi8vIH1cblxuLmVtYWlsLWljb24ge1xuICBtYXJnaW4tdG9wOiAtOHB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHNtYWxsLXVwKSB7XG4gICAgbWF4LXdpZHRoOiAxNSU7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXhsYXJnZS11cCkge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHh4bGFyZ2UtdXApIHtcbiAgICBtYXgtd2lkdGg6IDEyMCU7XG4gIH1cbn1cbi50d2l0dGVyLWljb24ge1xuICBtYXJnaW4tdG9wOiAtOHB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHNtYWxsLXVwKSB7XG4gICAgbWF4LXdpZHRoOiAxNSU7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXhsYXJnZS11cCkge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuLmluc3RhZ3JhbS1pY29uIHtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXhzbWFsbC11cCkge1xuICAgIG1heC13aWR0aDogMTUlO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmNvbnRhY3RfX2xpc3QtLWl0ZW0ge1xuICBtYXJnaW46MS41ZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDJlbTtcbn1cblxuLm5hdi1saXN0IHtcbiAgbGkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHNtYWxsLXVwKSB7XG4gICAgICBtYXJnaW46IDAgLjVlbSAwIDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICAgIG1hcmdpbjogMCAxZW07XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtLW1haW47XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHNtYWxsLXVwKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9NQUlOICBNRU5VXG4uYmFubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgei1pbmRleDogOTk5OTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmdsb2JhbC1uYXYge1xuXG59XG5cbi5zaXRlLW5hbWUge1xuICBmbG9hdDpsZWZ0O1xuICBmb250LXNpemU6IHJlbSgyNCk7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC0tbWFpbjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxufVxuXG4ubmF2LWxpc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGF1dG87XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tdG9wOiAtMTJweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0tc21hbGwtdXApIHtcblxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDU0MHB4KSB7XG4gICAgICBtYXJnaW4tdG9wOiAyMXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS1sYXJnZS11cCkge1xuXG5cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXhsYXJnZS11cCkge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogMThweDtcbiAgICAgIC8vIG1hcmdpbi1yaWdodDogcmVtKDEzMCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxufVxuXG4jbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJtYWluIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXIoKTtcbn1cblxuLnRyYWNrLWNvbnRlbnQge1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6IDtcblxuXG59XG5cblxuXG5cblxuXG5cblxuZm9vdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDIuNWVtO1xuICBmb250LXNpemU6IC44ZW07XG59XG4iLCIuaG9tZS1zbGlkZSB7XG4gIC8vIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvcjtcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9iYWxvb25zLmpwZykgbm8tcmVwZWF0IGJvdHRvbSBjZW50ZXI7XG4gIC8vIHdpZHRoOiAxMDB2dztcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDUwMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gIC8vIGJhY2tncm91bmQtcG9zaXRpb24teTogODAlO1xuXG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXh4c21hbGwtdXApIHtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBsb2NhbDtcbiAgfVxuICAvLyBAaW5jbHVkZSBicmVha3BvaW50KCRicC0tbWVkaXVtLXVwKSB7XG4gIC8vIC8vIGJhY2tncm91bmQtcG9zaXRpb24teDogLTgwcHg7XG4gIC8vIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuICBoZWlnaHQ6IDU1MHB4O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS1tZWRpdW0tdXApIHtcbiAgaGVpZ2h0OiA2MDBweDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0taXBhZC11cCkge1xuICBoZWlnaHQ6IDgwMHB4O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS1sYXJnZS11cCkge1xuICAvLyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teGxhcmdlLWZpeGVkKSB7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIH1cbn1cblxuLmZlYXR1cmUtc2xpZGUge1xuICB3aWR0aDoxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHhzbWFsbC11cCkge1xuICAgIHBhZGRpbmc6IDEwdmggNnZ3O1xuICAgIGhlaWdodDphdXRvO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS1tZWRpdW0tdXApIHtcbiAgICBwYWRkaW5nOiAxMHZoIDEydnc7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLWlwYWQtdXApIHtcbiAgICBwYWRkaW5nOiAxMHZoIDEydnc7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLWxhcmdlLXVwKSB7XG4gICAgcGFkZGluZzogMXZoIDE1dnc7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXhsYXJnZS11cCkge1xuICAgIHBhZGRpbmc6IDh2aCAydnc7XG4gICAgaGVpZ2h0OjEwMHZoO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTQwMHB4KSB7XG4gICAgcGFkZGluZzogMTV2aCA2dnc7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXh4eGxhcmdlLXVwKSB7XG4gICAgcGFkZGluZzogMTV2aCAxMnZ3O1xuICB9XG59XG4uZmVhdHVyZS1zbGlkZS5hbHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2O1xufVxuXG4uYWJvdXQtc2xpZGUge1xuICB3aWR0aDoxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHNtYWxsLXVwKSB7XG4gICAgICBwYWRkaW5nOiAwdnc7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teGxhcmdlLXVwKSB7XG4gICAgICBwYWRkaW5nOiAwdmggMTB2dztcbiAgICAgIGhlaWdodDoxMDB2aDtcbiAgICAgIG92ZXJmbG93OiBpbmhlcml0O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHh4bGFyZ2UtdXApIHtcbiAgICAgIHBhZGRpbmc6IDEzdmggMTB2dztcbiAgICB9XG59XG4uY29udGFjdC1zbGlkZSB7XG4gIHdpZHRoOjEwMCU7XG4gIGhlaWdodDoxMDB2aDtcbiAgbWFyZ2luLXRvcDogN2VtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHNtYWxsLXVwKSB7XG4gICAgcGFkZGluZzogMTB2aCAxMHZ3O1xuICAgIGhlaWdodDo3OXZoO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICBwYWRkaW5nOjB2aCAxMHZ3O1xuICAgIGhlaWdodDo4MHZoO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14eHhsYXJnZS11cCkge1xuICAgIHBhZGRpbmc6IDF2aCAxMHZ3O1xuICB9XG59XG5cbi5udW1iZXJfX2FyZWEge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5pbWFnZV9fYXJlYSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuXG4ubGlua19fYXJlYSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5saW5rX19hcmVhLS1saW5rIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXh4c21hbGwtdXApIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3R0b206IDBlbTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLS14bGFyZ2UtdXApIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDNlbTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTIwMHB4KSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwZW07XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0teHh4bGFyZ2UtdXApIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDllbTtcbiAgICAgIH1cbiAgfVxufVxuXG4ucG9ydHJhaXQtLWltZyB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luLXRvcDogOGVtO1xufVxuIiwiLmhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnZpc3VhbGx5aGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xufVxuXG4udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSxcbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6Zm9jdXMge1xuICAgIGNsaXA6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4uaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5jbGVhcmZpeDpiZWZvcmUsXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4uY2xlYXJmaXgge1xuICAgICp6b29tOiAxO1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4ud2lkZ2V0LWxvZ28tY29udGFpbmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiJdfQ== */
