@charset "UTF-8";
/** Глобальные переменные темы ----------------------**/
/** Mixin  ---------------------------**/
/** Styles ------------------------------**/
/** Foundation -------------------------------**/
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal; }

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

meta.foundation-version {
  font-family: "/{{VERSION}}/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40.063em)/";
  width: 40.063em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64.063em)/";
  width: 64.063em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.063em)/";
  width: 90.063em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120.063em)/";
  width: 120.063em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html,
body {
  font-size: 100%; }

body {
  background: #fff;
  color: #222;
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object {
  max-width: none !important; }

.left {
  float: left !important; }

.right {
  float: right !important; }

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

.clearfix:after {
  clear: both; }

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

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

meta.foundation-version {
  font-family: "/{{VERSION}}/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40.063em)/";
  width: 40.063em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64.063em)/";
  width: 64.063em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.063em)/";
  width: 90.063em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120.063em)/";
  width: 120.063em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html,
body {
  font-size: 100%; }

body {
  background: #fff;
  color: #222;
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object {
  max-width: none !important; }

.left {
  float: left !important; }

.right {
  float: right !important; }

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

.clearfix:after {
  clear: both; }

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

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

meta.foundation-version {
  font-family: "/{{VERSION}}/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40.063em)/";
  width: 40.063em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64.063em)/";
  width: 64.063em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.063em)/";
  width: 90.063em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120.063em)/";
  width: 120.063em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html,
body {
  font-size: 100%; }

body {
  background: #fff;
  color: #222;
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object {
  max-width: none !important; }

.left {
  float: left !important; }

.right {
  float: right !important; }

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

.clearfix:after {
  clear: both; }

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

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

meta.foundation-version {
  font-family: "/{{VERSION}}/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40.063em)/";
  width: 40.063em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64.063em)/";
  width: 64.063em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.063em)/";
  width: 90.063em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120.063em)/";
  width: 120.063em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html,
body {
  font-size: 100%; }

body {
  background: #fff;
  color: #222;
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object {
  max-width: none !important; }

.left {
  float: left !important; }

.right {
  float: right !important; }

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

.clearfix:after {
  clear: both; }

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

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

meta.foundation-version {
  font-family: "/{{VERSION}}/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40.063em)/";
  width: 40.063em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64.063em)/";
  width: 64.063em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.063em)/";
  width: 90.063em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120.063em)/";
  width: 120.063em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html,
body {
  font-size: 100%; }

body {
  background: #fff;
  color: #222;
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object {
  max-width: none !important; }

.left {
  float: left !important; }

.right {
  float: right !important; }

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

.clearfix:after {
  clear: both; }

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

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

.reveal-modal-bg {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #000000;
  background: rgba(0, 0, 0, 0.45);
  z-index: 1004;
  display: none;
  left: 0; }

.reveal-modal, dialog {
  visibility: hidden;
  display: none;
  position: absolute;
  z-index: 1005;
  width: 100vw;
  top: 0;
  border-radius: 3px;
  left: 0;
  background-color: #FFFFFF;
  padding: 1.25rem;
  border: solid 1px #666666;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
  padding: 1.875rem; }
  @media only screen and (max-width: 40em) {
    .reveal-modal, dialog {
      min-height: 100vh; } }
  .reveal-modal .column, dialog .column, .reveal-modal .columns, dialog .columns {
    min-width: 0; }
  .reveal-modal > :first-child, dialog > :first-child {
    margin-top: 0; }
  .reveal-modal > :last-child, dialog > :last-child {
    margin-bottom: 0; }
  @media only screen and (min-width: 40.063em) {
    .reveal-modal, dialog {
      width: 80%;
      max-width: 62.5rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40.063em) {
    .reveal-modal, dialog {
      top: 6.25rem; } }
  .reveal-modal.radius, dialog.radius {
    border-radius: 3px; }
  .reveal-modal.round, dialog.round {
    border-radius: 1000px; }
  .reveal-modal.collapse, dialog.collapse {
    padding: 0; }
  @media only screen and (min-width: 40.063em) {
    .reveal-modal.tiny, dialog.tiny {
      width: 30%;
      max-width: 62.5rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40.063em) {
    .reveal-modal.small, dialog.small {
      width: 40%;
      max-width: 62.5rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40.063em) {
    .reveal-modal.medium, dialog.medium {
      width: 60%;
      max-width: 62.5rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40.063em) {
    .reveal-modal.large, dialog.large {
      width: 70%;
      max-width: 62.5rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40.063em) {
    .reveal-modal.xlarge, dialog.xlarge {
      width: 95%;
      max-width: 62.5rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  .reveal-modal.full, dialog.full {
    top: 0;
    left: 0;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    max-width: none !important;
    margin-left: 0 !important; }
    @media only screen and (min-width: 40.063em) {
      .reveal-modal.full, dialog.full {
        width: 100vw;
        max-width: 62.5rem;
        left: 0;
        right: 0;
        margin: 0 auto; } }
  .reveal-modal .close-reveal-modal, dialog .close-reveal-modal {
    font-size: 2.5rem;
    line-height: 1;
    position: absolute;
    top: 0.5rem;
    right: 0.6875rem;
    color: #AAAAAA;
    font-weight: bold;
    cursor: pointer; }

dialog {
  display: none; }
  dialog::backdrop, dialog + .backdrop {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #000000;
    background: rgba(0, 0, 0, 0.45);
    z-index: auto;
    display: none;
    left: 0; }
  dialog[open] {
    display: block; }

@media print {
  dialog, .reveal-modal, dialog {
    display: none;
    background: #FFFFFF !important; } }

meta.foundation-version {
  font-family: "/{{VERSION}}/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40.063em)/";
  width: 40.063em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64.063em)/";
  width: 64.063em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.063em)/";
  width: 90.063em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120.063em)/";
  width: 120.063em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html,
body {
  font-size: 100%; }

body {
  background: #fff;
  color: #222;
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object {
  max-width: none !important; }

.left {
  float: left !important; }

.right {
  float: right !important; }

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

.clearfix:after {
  clear: both; }

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

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

meta.foundation-version {
  font-family: "/{{VERSION}}/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40.063em)/";
  width: 40.063em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64.063em)/";
  width: 64.063em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.063em)/";
  width: 90.063em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120.063em)/";
  width: 120.063em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html,
body {
  font-size: 100%; }

body {
  background: #fff;
  color: #222;
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object {
  max-width: none !important; }

.left {
  float: left !important; }

.right {
  float: right !important; }

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

.clearfix:after {
  clear: both; }

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

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

/* Standard Forms */
form {
  margin: 0 0 1rem; }

/* Using forms within rows, we need to set some defaults */
form .row .row {
  margin: 0 -0.5rem; }
  form .row .row .column,
  form .row .row .columns {
    padding: 0 0.5rem; }
  form .row .row.collapse {
    margin: 0; }
    form .row .row.collapse .column,
    form .row .row.collapse .columns {
      padding: 0; }
    form .row .row.collapse input {
      -webkit-border-bottom-right-radius: 0;
      -webkit-border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      border-top-right-radius: 0; }

form .row input.column,
form .row input.columns,
form .row textarea.column,
form .row textarea.columns {
  padding-left: 0.5rem; }

/* Label Styles */
label {
  font-size: 0.875rem;
  color: #4d4d4d;
  cursor: pointer;
  display: block;
  font-weight: normal;
  line-height: 1.5;
  margin-bottom: 0;
  /* Styles for required inputs */ }
  label.right {
    float: none !important;
    text-align: right; }
  label.inline {
    margin: 0 0 1rem 0;
    padding: 0.5625rem 0; }
  label small {
    text-transform: capitalize;
    color: #676767; }

/* Attach elements to the beginning or end of an input */
.prefix,
.postfix {
  display: block;
  position: relative;
  z-index: 2;
  text-align: center;
  width: 100%;
  padding-top: 0;
  padding-bottom: 0;
  border-style: solid;
  border-width: 1px;
  overflow: hidden;
  font-size: 0.875rem;
  height: 2.3125rem;
  line-height: 2.3125rem; }

/* Adjust padding, alignment and radius if pre/post element is a button */
.postfix.button {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  line-height: 2.125rem;
  border: none; }

.prefix.button {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  line-height: 2.125rem;
  border: none; }

.prefix.button.radius {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px; }

.postfix.button.radius {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px; }

.prefix.button.round {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

.postfix.button.round {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

/* Separate prefix and postfix styles when on span or label so buttons keep their own */
span.prefix, label.prefix {
  background: #f2f2f2;
  border-right: none;
  color: #333333;
  border-color: #cccccc; }

span.postfix, label.postfix {
  background: #f2f2f2;
  border-left: none;
  color: #333333;
  border-color: #cccccc; }

/* We use this to get basic styling on all basic form elements */
input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
input[type="color"],
textarea {
  -webkit-appearance: none;
  -webkit-border-radius: 0px;
  background-color: #FFFFFF;
  font-family: inherit;
  border-style: solid;
  border-width: 1px;
  border-color: #cccccc;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  color: rgba(0, 0, 0, 0.75);
  display: block;
  font-size: 0.875rem;
  margin: 0 0 1rem 0;
  padding: 0.5rem;
  height: 2.3125rem;
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transition: box-shadow 0.45s, border-color 0.45s ease-in-out; }
  input[type="text"]:focus,
  input[type="password"]:focus,
  input[type="date"]:focus,
  input[type="datetime"]:focus,
  input[type="datetime-local"]:focus,
  input[type="month"]:focus,
  input[type="week"]:focus,
  input[type="email"]:focus,
  input[type="number"]:focus,
  input[type="search"]:focus,
  input[type="tel"]:focus,
  input[type="time"]:focus,
  input[type="url"]:focus,
  input[type="color"]:focus,
  textarea:focus {
    box-shadow: 0 0 5px #999999;
    border-color: #999999; }
  input[type="text"]:focus,
  input[type="password"]:focus,
  input[type="date"]:focus,
  input[type="datetime"]:focus,
  input[type="datetime-local"]:focus,
  input[type="month"]:focus,
  input[type="week"]:focus,
  input[type="email"]:focus,
  input[type="number"]:focus,
  input[type="search"]:focus,
  input[type="tel"]:focus,
  input[type="time"]:focus,
  input[type="url"]:focus,
  input[type="color"]:focus,
  textarea:focus {
    background: #fafafa;
    border-color: #999999;
    outline: none; }
  input[type="text"]:disabled,
  input[type="password"]:disabled,
  input[type="date"]:disabled,
  input[type="datetime"]:disabled,
  input[type="datetime-local"]:disabled,
  input[type="month"]:disabled,
  input[type="week"]:disabled,
  input[type="email"]:disabled,
  input[type="number"]:disabled,
  input[type="search"]:disabled,
  input[type="tel"]:disabled,
  input[type="time"]:disabled,
  input[type="url"]:disabled,
  input[type="color"]:disabled,
  textarea:disabled {
    background-color: #DDDDDD;
    cursor: default; }
  input[type="text"][disabled], input[type="text"][readonly],
  fieldset[disabled] input[type="text"],
  input[type="password"][disabled],
  input[type="password"][readonly],
  fieldset[disabled]
  input[type="password"],
  input[type="date"][disabled],
  input[type="date"][readonly],
  fieldset[disabled]
  input[type="date"],
  input[type="datetime"][disabled],
  input[type="datetime"][readonly],
  fieldset[disabled]
  input[type="datetime"],
  input[type="datetime-local"][disabled],
  input[type="datetime-local"][readonly],
  fieldset[disabled]
  input[type="datetime-local"],
  input[type="month"][disabled],
  input[type="month"][readonly],
  fieldset[disabled]
  input[type="month"],
  input[type="week"][disabled],
  input[type="week"][readonly],
  fieldset[disabled]
  input[type="week"],
  input[type="email"][disabled],
  input[type="email"][readonly],
  fieldset[disabled]
  input[type="email"],
  input[type="number"][disabled],
  input[type="number"][readonly],
  fieldset[disabled]
  input[type="number"],
  input[type="search"][disabled],
  input[type="search"][readonly],
  fieldset[disabled]
  input[type="search"],
  input[type="tel"][disabled],
  input[type="tel"][readonly],
  fieldset[disabled]
  input[type="tel"],
  input[type="time"][disabled],
  input[type="time"][readonly],
  fieldset[disabled]
  input[type="time"],
  input[type="url"][disabled],
  input[type="url"][readonly],
  fieldset[disabled]
  input[type="url"],
  input[type="color"][disabled],
  input[type="color"][readonly],
  fieldset[disabled]
  input[type="color"],
  textarea[disabled],
  textarea[readonly],
  fieldset[disabled]
  textarea {
    background-color: #DDDDDD;
    cursor: default; }
  input[type="text"].radius,
  input[type="password"].radius,
  input[type="date"].radius,
  input[type="datetime"].radius,
  input[type="datetime-local"].radius,
  input[type="month"].radius,
  input[type="week"].radius,
  input[type="email"].radius,
  input[type="number"].radius,
  input[type="search"].radius,
  input[type="tel"].radius,
  input[type="time"].radius,
  input[type="url"].radius,
  input[type="color"].radius,
  textarea.radius {
    border-radius: 3px; }

form .row .prefix-radius.row.collapse input,
form .row .prefix-radius.row.collapse textarea,
form .row .prefix-radius.row.collapse select {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px; }

form .row .prefix-radius.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px; }

form .row .postfix-radius.row.collapse input,
form .row .postfix-radius.row.collapse textarea,
form .row .postfix-radius.row.collapse select {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px; }

form .row .postfix-radius.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px; }

form .row .prefix-round.row.collapse input,
form .row .prefix-round.row.collapse textarea,
form .row .prefix-round.row.collapse select {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

form .row .prefix-round.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

form .row .postfix-round.row.collapse input,
form .row .postfix-round.row.collapse textarea,
form .row .postfix-round.row.collapse select {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

form .row .postfix-round.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

input[type="submit"] {
  -webkit-appearance: none;
  -webkit-border-radius: 0px; }

/* Respect enforced amount of rows for textarea */
textarea[rows] {
  height: auto; }

/* Not allow resize out of parent */
textarea {
  max-width: 100%; }

/* Add height value for select elements to match text input height */
select {
  -webkit-appearance: none !important;
  -webkit-border-radius: 0px;
  background-color: #FAFAFA;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
  background-position: 100% center;
  background-repeat: no-repeat;
  border-style: solid;
  border-width: 1px;
  border-color: #cccccc;
  padding: 0.5rem;
  font-size: 0.875rem;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  color: rgba(0, 0, 0, 0.75);
  line-height: normal;
  border-radius: 0;
  height: 2.3125rem; }
  select::-ms-expand {
    display: none; }
  select.radius {
    border-radius: 3px; }
  select:hover {
    background-color: #f3f3f3;
    border-color: #999999; }
  select:disabled {
    background-color: #DDDDDD;
    cursor: default; }

/* Adjust margin for form elements below */
input[type="file"],
input[type="checkbox"],
input[type="radio"],
select {
  margin: 0 0 1rem 0; }

input[type="checkbox"] + label,
input[type="radio"] + label {
  display: inline-block;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0;
  vertical-align: baseline; }

/* Normalize file input width */
input[type="file"] {
  width: 100%; }

/* HTML5 Number spinners settings */
/* We add basic fieldset styling */
fieldset {
  border: 1px solid #DDDDDD;
  padding: 1.25rem;
  margin: 1.125rem 0; }
  fieldset legend {
    font-weight: bold;
    background: #FFFFFF;
    padding: 0 0.1875rem;
    margin: 0;
    margin-left: -0.1875rem; }

/* Error Handling */
[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #f04124;
  color: #FFFFFF; }

[data-abide] span.error, [data-abide] small.error {
  display: none; }

span.error, small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #f04124;
  color: #FFFFFF; }

.error input,
.error textarea,
.error select {
  margin-bottom: 0; }

.error input[type="checkbox"],
.error input[type="radio"] {
  margin-bottom: 1rem; }

.error label,
.error label.error {
  color: #f04124; }

.error small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #f04124;
  color: #FFFFFF; }

.error > label > small {
  color: #676767;
  background: transparent;
  padding: 0;
  text-transform: capitalize;
  font-style: normal;
  font-size: 60%;
  margin: 0;
  display: inline; }

.error span.error-message {
  display: block; }

input.error,
textarea.error,
select.error {
  margin-bottom: 0; }

label.error {
  color: #f04124; }

meta.foundation-version {
  font-family: "/{{VERSION}}/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40.063em)/";
  width: 40.063em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64.063em)/";
  width: 64.063em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.063em)/";
  width: 90.063em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120.063em)/";
  width: 120.063em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html,
body {
  font-size: 100%; }

body {
  background: #fff;
  color: #222;
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object {
  max-width: none !important; }

.left {
  float: left !important; }

.right {
  float: right !important; }

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

.clearfix:after {
  clear: both; }

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

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

.text-left {
  text-align: left !important; }

.text-right {
  text-align: right !important; }

.text-center {
  text-align: center !important; }

.text-justify {
  text-align: justify !important; }

@media only screen and (max-width: 40em) {
  .small-only-text-left {
    text-align: left !important; }
  .small-only-text-right {
    text-align: right !important; }
  .small-only-text-center {
    text-align: center !important; }
  .small-only-text-justify {
    text-align: justify !important; } }

@media only screen {
  .small-text-left {
    text-align: left !important; }
  .small-text-right {
    text-align: right !important; }
  .small-text-center {
    text-align: center !important; }
  .small-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  .medium-only-text-left {
    text-align: left !important; }
  .medium-only-text-right {
    text-align: right !important; }
  .medium-only-text-center {
    text-align: center !important; }
  .medium-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 40.063em) {
  .medium-text-left {
    text-align: left !important; }
  .medium-text-right {
    text-align: right !important; }
  .medium-text-center {
    text-align: center !important; }
  .medium-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 64.063em) and (max-width: 90em) {
  .large-only-text-left {
    text-align: left !important; }
  .large-only-text-right {
    text-align: right !important; }
  .large-only-text-center {
    text-align: center !important; }
  .large-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 64.063em) {
  .large-text-left {
    text-align: left !important; }
  .large-text-right {
    text-align: right !important; }
  .large-text-center {
    text-align: center !important; }
  .large-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 90.063em) and (max-width: 120em) {
  .xlarge-only-text-left {
    text-align: left !important; }
  .xlarge-only-text-right {
    text-align: right !important; }
  .xlarge-only-text-center {
    text-align: center !important; }
  .xlarge-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 90.063em) {
  .xlarge-text-left {
    text-align: left !important; }
  .xlarge-text-right {
    text-align: right !important; }
  .xlarge-text-center {
    text-align: center !important; }
  .xlarge-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 120.063em) and (max-width: 99999999em) {
  .xxlarge-only-text-left {
    text-align: left !important; }
  .xxlarge-only-text-right {
    text-align: right !important; }
  .xxlarge-only-text-center {
    text-align: center !important; }
  .xxlarge-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 120.063em) {
  .xxlarge-text-left {
    text-align: left !important; }
  .xxlarge-text-right {
    text-align: right !important; }
  .xxlarge-text-center {
    text-align: center !important; }
  .xxlarge-text-justify {
    text-align: justify !important; } }

/* Typography resets */
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

/* Default Link Styles */
a {
  color: #008CBA;
  text-decoration: none;
  line-height: inherit; }
  a:hover, a:focus {
    color: #0078a0; }
  a img {
    border: none; }

/* Default paragraph styles */
p {
  font-family: inherit;
  font-weight: normal;
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 1.25rem;
  text-rendering: optimizeLegibility; }
  p.lead {
    font-size: 1.21875rem;
    line-height: 1.6; }
  p aside {
    font-size: 0.875rem;
    line-height: 1.35;
    font-style: italic; }

/* Default header styles */
h1, h2, h3, h4, h5, h6 {
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  color: #222222;
  text-rendering: optimizeLegibility;
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  line-height: 1.4; }
  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
    font-size: 60%;
    color: #6f6f6f;
    line-height: 0; }

h1 {
  font-size: 2.125rem; }

h2 {
  font-size: 1.6875rem; }

h3 {
  font-size: 1.375rem; }

h4 {
  font-size: 1.125rem; }

h5 {
  font-size: 1.125rem; }

h6 {
  font-size: 1rem; }

.subheader {
  line-height: 1.4;
  color: #6f6f6f;
  font-weight: normal;
  margin-top: 0.2rem;
  margin-bottom: 0.5rem; }

hr {
  border: solid #DDDDDD;
  border-width: 1px 0 0;
  clear: both;
  margin: 1.25rem 0 1.1875rem;
  height: 0; }

/* Helpful Typography Defaults */
em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: bold;
  line-height: inherit; }

small {
  font-size: 60%;
  line-height: inherit; }

code {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #333333;
  background-color: #f8f8f8;
  border-width: 1px;
  border-style: solid;
  border-color: #dfdfdf;
  padding: 0.125rem 0.3125rem 0.0625rem; }

/* Lists */
ul,
ol,
dl {
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 1.25rem;
  list-style-position: outside;
  font-family: inherit; }

ul {
  margin-left: 1.1rem; }
  ul.no-bullet {
    margin-left: 0; }
    ul.no-bullet li ul,
    ul.no-bullet li ol {
      margin-left: 1.25rem;
      margin-bottom: 0;
      list-style: none; }

/* Unordered Lists */
ul li ul,
ul li ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

ul.square li ul, ul.circle li ul, ul.disc li ul {
  list-style: inherit; }

ul.square {
  list-style-type: square;
  margin-left: 1.1rem; }

ul.circle {
  list-style-type: circle;
  margin-left: 1.1rem; }

ul.disc {
  list-style-type: disc;
  margin-left: 1.1rem; }

ul.no-bullet {
  list-style: none; }

/* Ordered Lists */
ol {
  margin-left: 1.4rem; }
  ol li ul,
  ol li ol {
    margin-left: 1.25rem;
    margin-bottom: 0; }

/* Definition Lists */
dl dt {
  margin-bottom: 0.3rem;
  font-weight: bold; }

dl dd {
  margin-bottom: 0.75rem; }

/* Abbreviations */
abbr,
acronym {
  text-transform: uppercase;
  font-size: 90%;
  color: #222;
  cursor: help; }

abbr {
  text-transform: none; }
  abbr[title] {
    border-bottom: 1px dotted #DDDDDD; }

/* Blockquotes */
blockquote {
  margin: 0 0 1.25rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #DDDDDD; }
  blockquote cite {
    display: block;
    font-size: 0.8125rem;
    color: #555555; }
    blockquote cite:before {
      content: "\2014 \0020"; }
    blockquote cite a,
    blockquote cite a:visited {
      color: #555555; }

blockquote,
blockquote p {
  line-height: 1.6;
  color: #6f6f6f; }

/* Microformats */
.vcard {
  display: inline-block;
  margin: 0 0 1.25rem 0;
  border: 1px solid #DDDDDD;
  padding: 0.625rem 0.75rem; }
  .vcard li {
    margin: 0;
    display: block; }
  .vcard .fn {
    font-weight: bold;
    font-size: 0.9375rem; }

.vevent .summary {
  font-weight: bold; }

.vevent abbr {
  cursor: default;
  text-decoration: none;
  font-weight: bold;
  border: none;
  padding: 0 0.0625rem; }

@media only screen and (min-width: 40.063em) {
  h1, h2, h3, h4, h5, h6 {
    line-height: 1.4; }
  h1 {
    font-size: 2.75rem; }
  h2 {
    font-size: 2.3125rem; }
  h3 {
    font-size: 1.6875rem; }
  h4 {
    font-size: 1.4375rem; }
  h5 {
    font-size: 1.125rem; }
  h6 {
    font-size: 1rem; } }

/*
       * Print styles.
       *
       * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
       * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
      */
.print-only {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    color: #000000 !important;
    /* Black prints faster: h5bp.com/s */
    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) ")"; }
  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group;
    /* h5bp.com/t */ }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .hide-on-print {
    display: none !important; }
  .print-only {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  .show-for-print {
    display: inherit !important; } }

.block__content {
  padding: 1.5625rem;
  width: 100%;
  max-width: 62.5rem;
  margin: 0 auto; }

.block_light {
  background: #f9f9f9; }

.block_header {
  background: url("/img/headerBg.jpg") center no-repeat;
  background-color: #a47a42;
  border-bottom: 3px solid black; }

.block_white {
  background: white; }

.block_bubbles {
  background: url("/img/bubblesBg.jpg") center no-repeat;
  height: 590px;
  border-bottom: 2px solid #a39c98;
  border-top: 1px solid #a39c98; }

.block_copyright {
  background: #4b2d01; }

.block_callForm {
  background: url("/img/callformBg.jpg") center; }

.block__content_copyright {
  padding: 0.3125rem 1.5625rem; }

@media only screen and (max-width: 40em) {
  .block_header {
    background: #a47a42; }
  .block_bubbles {
    height: auto;
    background: #a47a42; }
  .block_callForm {
    background: #a47a42; } }

/* Настройки блока -------------------------------------------- */
/* Cтили блока -------------------------------------------------*/
.header {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none;
  padding: 70px 0; }
  .header:before, .header:after {
    content: " ";
    display: table; }
  .header:after {
    clear: both; }
  .header .header__left {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 58.33333%;
    float: left; }
  .header .header__right {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 41.66667%;
    float: left; }

@media only screen and (max-width: 40.063em) {
  .header {
    width: auto;
    margin-left: -0.9375rem;
    margin-right: -0.9375rem;
    margin-top: 0;
    margin-bottom: 0;
    max-width: none; }
    .header:before, .header:after {
      content: " ";
      display: table; }
    .header:after {
      clear: both; }
    .header .header__left {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      width: 100%;
      float: left;
      margin-bottom: 1.25rem; }
    .header .header__right {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      width: 100%;
      float: left; } }

.header__head {
  color: white;
  line-height: 1.1;
  font-size: 2.625rem;
  font-weight: bold;
  text-align: right;
  padding-right: 20px;
  position: relative;
  top: 100px;
  text-shadow: black 0px 2px 3px; }

.header__desc {
  font-size: 1.125rem;
  color: #cdcccc;
  font-weight: normal;
  text-shadow: none;
  margin-bottom: 20px; }

.header__text {
  text-shadow: none;
  font-size: 0.875rem; }

@media only screen and (max-width: 40em) {
  .header {
    padding-top: 0px;
    padding-bottom: 0px; }
  .header__head {
    top: 0px;
    font-size: 1.875rem;
    text-align: center; } }

.callForm {
  border-radius: 10px;
  padding: 25px;
  background: rgba(255, 255, 255, 0.2);
  max-width: 455px;
  margin: 0 auto; }

.block_callForm .callForm {
  background: none; }

#callForm_modal .callForm {
  background: #a47a42; }

.callForm__success, .callForm__error {
  border: 5px solid #a47a42;
  border-radius: 20px;
  max-width: 600px; }

.callForm__head {
  text-align: center;
  line-height: 1.3;
  margin-top: 0;
  margin-bottom: 25px;
  color: white;
  font-size: 1.6875rem;
  font-weight: bold; }

.callForm__desc {
  margin-bottom: 15px;
  font-size: 0.6875rem;
  color: #cac5c0;
  text-indent: 30px;
  line-height: 1.3; }

.callForm__phones {
  margin-bottom: 15px;
  padding-left: 80px;
  background: url("/img/formPhone.png") no-repeat;
  background-size: 70px 70px;
  color: white;
  font-size: 1.5rem;
  font-weight: bold;
  line-height: 1.1; }

.simpleCallFor__submit {
  text-align: center; }

.simpleCallFor__submit__button {
  color: white;
  display: inline-block;
  padding: 0.625rem 0.9375rem;
  font-size: 1.375rem;
  font-weight: bold;
  border: none;
  border-radius: 4px;
  background: #fed136;
  text-decoration: none;
  width: 100%; }
  .simpleCallFor__submit__button:hover, .simpleCallFor__submit__button:focus {
    color: white; }

input.callForm__input {
  border-radius: 4px;
  font-weight: bold;
  font-size: 0.875rem;
  padding: 7px 10px; }

#callForm_modal {
  box-shadow: none;
  background: transparent;
  border: none;
  max-width: 600px; }

.callForm__desc_bottom {
  text-align: center;
  font-weight: bold;
  font-size: 1rem;
  color: #FED136;
  padding-top: 15px;
  margin-bottom: 0;
  text-indent: 0; }
  .callForm__desc_bottom a, .callForm__desc_bottom a:hover {
    color: #FED136; }

@media only screen and (max-width: 40em) {
  .callForm__phones {
    font-size: 0.875rem;
    padding-bottom: 25px;
    padding-top: 10px; } }

.simpleTextBlocks__head {
  text-align: center;
  color: #808080; }

.simpleTextBlocks__items {
  display: block;
  padding: 0;
  margin: 0 -0.625rem; }
  .simpleTextBlocks__items:before, .simpleTextBlocks__items:after {
    content: " ";
    display: table; }
  .simpleTextBlocks__items:after {
    clear: both; }
  .simpleTextBlocks__items > li {
    display: block;
    height: auto;
    float: left;
    padding: 0 0.625rem 1.25rem; }
  .simpleTextBlocks__items > li {
    width: 50%;
    padding: 0 0.625rem 1.25rem;
    list-style: none; }
    .simpleTextBlocks__items > li:nth-of-type(1n) {
      clear: none; }
    .simpleTextBlocks__items > li:nth-of-type(2n+1) {
      clear: both; }

@media only screen and (max-width: 40em) {
  .simpleTextBlocks__items {
    display: block;
    padding: 0;
    margin: 0 -0.625rem; }
    .simpleTextBlocks__items:before, .simpleTextBlocks__items:after {
      content: " ";
      display: table; }
    .simpleTextBlocks__items:after {
      clear: both; }
    .simpleTextBlocks__items > li {
      display: block;
      height: auto;
      float: left;
      padding: 0 0.625rem 1.25rem; }
    .simpleTextBlocks__items > li {
      width: 100%;
      padding: 0 0.625rem 1.25rem;
      list-style: none; }
      .simpleTextBlocks__items > li:nth-of-type(1n) {
        clear: none; }
      .simpleTextBlocks__items > li:nth-of-type(1n+1) {
        clear: both; } }

.simpleTextBlock {
  margin-bottom: 0.625rem; }

.simpleTextBlock__img {
  float: left;
  width: 90px; }

.simpleTextBlock__head {
  margin: 0.3125rem 0;
  margin-left: 105px;
  color: #fed136; }

.simpleTextBlock__desc {
  margin-left: 105px; }

.simpleTextBlock__desc p {
  margin: 0.3125rem 0; }

.callToAction {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  .callToAction:before, .callToAction:after {
    content: " ";
    display: table; }
  .callToAction:after {
    clear: both; }
  .callToAction .callToAction__text {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 66.66667%;
    float: left; }
  .callToAction .callToAction__action {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 33.33333%;
    float: left; }
  .callToAction .callToAction__img {
    display: none; }

@media only screen and (max-width: 40em) {
  .callToAction {
    width: auto;
    margin-left: -0.9375rem;
    margin-right: -0.9375rem;
    margin-top: 0;
    margin-bottom: 0;
    max-width: none; }
    .callToAction:before, .callToAction:after {
      content: " ";
      display: table; }
    .callToAction:after {
      clear: both; }
    .callToAction .callToAction__text {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      width: 100%;
      float: left; }
    .callToAction .callToAction__action {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      width: 100%;
      float: left; }
    .callToAction .callToAction__img {
      display: none; } }

.callToAction__head {
  color: #2a0a00;
  font-size: 2.5rem;
  font-style: italic;
  margin: 0.3125rem 0;
  margin-bottom: 0px; }

.callToAction__desc {
  margin: 0.3125rem 0;
  color: #040404;
  font-size: 0.75rem;
  font-weight: bold; }

.callToAction__button {
  color: white;
  display: inline-block;
  padding: 0.625rem 0.9375rem;
  font-size: 1.375rem;
  font-weight: bold;
  border: none;
  border-radius: 4px;
  background: #fed136;
  text-decoration: none;
  color: white;
  border-color: white;
  margin-top: 0.9375rem;
  width: 100%;
  text-align: center; }
  .callToAction__button:hover, .callToAction__button:focus {
    color: white; }

@media only screen and (max-width: 40em) {
  .callToAction__head {
    font-size: 1.875rem; }
  .callToAction__text {
    text-align: center; } }

.imageTextBlock {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  .imageTextBlock:before, .imageTextBlock:after {
    content: " ";
    display: table; }
  .imageTextBlock:after {
    clear: both; }
  .imageTextBlock .imageTextBlock__img {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 50%;
    float: left; }
  .imageTextBlock .imageTextBlock__text {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 50%;
    float: left;
    padding-top: 4.0625rem; }

.imageTextBlock__text_left {
  text-align: left; }

.imageTextBlock__text_right {
  text-align: right; }

.imageTextBlock__img_left {
  text-align: right; }

.imageTextBlock__img_right {
  text-align: left; }

.imageTextBlock__text__link {
  color: white;
  display: inline-block;
  padding: 0.625rem 0.9375rem;
  font-size: 1.375rem;
  font-weight: bold;
  border: none;
  border-radius: 4px;
  background: #fed136;
  text-decoration: none; }
  .imageTextBlock__text__link:hover, .imageTextBlock__text__link:focus {
    color: white; }

.imageTextBlock__text__head {
  color: #808080; }

.imageTextBlock__text__desc {
  color: gray;
  font-style: italic; }

@media only screen and (max-width: 40em) {
  .imageTextBlock {
    width: auto;
    margin-left: -0.9375rem;
    margin-right: -0.9375rem;
    margin-top: 0;
    margin-bottom: 0;
    max-width: none; }
    .imageTextBlock:before, .imageTextBlock:after {
      content: " ";
      display: table; }
    .imageTextBlock:after {
      clear: both; }
    .imageTextBlock .imageTextBlock__img {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      width: 100%;
      float: left; }
    .imageTextBlock .imageTextBlock__text {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      width: 100%;
      float: left;
      padding-top: 0.3125rem; }
  .imageTextBlock__text_right,
  .imageTextBlock__text_left,
  .imageTextBlock__img_left,
  .imageTextBlock__img_right {
    text-align: center; } }

.slideReviews__item {
  padding: 0 10px;
  text-align: center; }

.slideReviews__item__photo {
  width: 220px;
  display: block;
  margin: 0 auto; }

.simpleReview__item__photo__img {
  padding: 2px;
  border: 1px solid white;
  border-radius: 140px; }

.slideReviews__item__head {
  color: #222222;
  font-weight: bold;
  font-size: 1rem;
  padding-top: 20px; }

.slideReviews__item__head__small {
  color: #808080;
  font-size: 0.8125rem;
  font-weight: normal;
  color: black;
  font-style: italic; }

.slideReviews__item__review {
  color: #808080;
  padding-top: 10px;
  margin-top: 0; }

.slideReviews__item__review p {
  padding: 0;
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.3; }

.slideReviews__head {
  text-align: center;
  color: #222222;
  margin-bottom: 0px; }

.slideReviews__head__small {
  text-align: center;
  color: #808080;
  font-size: 1rem;
  margin-bottom: 50px; }

.slick-prev, .slick-prev:hover, .slick-prev:focus {
  background: url("/img/prevbt.png") no-repeat;
  left: -80px; }
  .slick-prev:before, .slick-prev:hover:before, .slick-prev:focus:before {
    content: ''; }

.slick-next, .slick-next:hover, .slick-next:focus {
  background: url("/img/nextbt.png") no-repeat;
  right: -80px; }
  .slick-next:before, .slick-next:hover:before, .slick-next:focus:before {
    content: ''; }

.slick-next, .slick-prev {
  height: 41px;
  width: 41px;
  top: 102px; }

.slick-slider {
  margin-bottom: 85px; }

.UnderSlideText {
  color: #808080;
  font-size: 1rem;
  text-align: center;
  margin-bottom: 20px; }

@media only screen and (max-width: 40em) {
  .slideReviews__item {
    padding: 0; }
  .slick-slider {
    margin-bottom: 30px; }
  .slideReviews__item__photo {
    float: none;
    width: 120px; }
  .slideReviews__head__small {
    margin-bottom: 30px; }
  .slideReviews__item__review, .slideReviews__item__head {
    border: none;
    margin-left: 0; } }

.faq__head {
  text-align: center;
  color: #808080; }

.map {
  position: relative; }

.map__address {
  display: inline-block;
  padding: 5px  25px 5px 60px;
  color: #ffffff;
  background: #4b2d01;
  top: 40px;
  position: absolute; }

.copyright {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  .copyright:before, .copyright:after {
    content: " ";
    display: table; }
  .copyright:after {
    clear: both; }
  .copyright .copyrigh__site {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 50%;
    float: left;
    text-align: left; }
  .copyright .copyrigh__doSites {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 50%;
    float: left;
    text-align: right; }

@media only screen and (max-width: 40em) {
  .copyright {
    width: auto;
    margin-left: -0.9375rem;
    margin-right: -0.9375rem;
    margin-top: 0;
    margin-bottom: 0;
    max-width: none; }
    .copyright:before, .copyright:after {
      content: " ";
      display: table; }
    .copyright:after {
      clear: both; }
    .copyright .copyrigh__site {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      width: 100%;
      float: left;
      text-align: center; }
    .copyright .copyrigh__doSites {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      width: 100%;
      float: left;
      text-align: center; } }

.copyrigh__doSites__link, .copyright__site__link, .copyrigh__site__text {
  font-size: 0.75rem;
  color: #ffffff; }
  .copyrigh__doSites__link:hover, .copyright__site__link:hover, .copyrigh__site__text:hover {
    color: #ffffff; }

.services__item {
  width: 50%;
  position: relative;
  padding-left: 3.75rem;
  padding-right: 3.75rem;
  float: left;
  border-left: 3px solid #fed33f;
  text-align: center;
  margin-bottom: 20px;
  min-height: 475px; }
  .services__item:last-child {
    border-right: 3px solid #fed33f; }

.services__head {
  text-align: center;
  color: #222222;
  margin-bottom: 0px; }

.services__head__small {
  text-align: center;
  color: #808080;
  font-size: 1rem;
  margin-bottom: 50px; }

.services__item__review {
  color: #808080; }

.services__item__review p {
  font-size: 0.875rem; }

.services__item__head {
  color: #3f3f3f;
  font-size: 1.5rem;
  font-weight: bold; }

.services__item__photo {
  padding-top: 50px; }

@media only screen and (max-width: 40em) {
  .services__item {
    width: 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    border-right: 3px solid #fed33f; }
  .services__item__photo {
    padding-top: 10px; }
  .services__item__head {
    line-height: 1.3; } }

.portfolio__head {
  text-align: center;
  color: #222222;
  margin-bottom: 0px; }

.portfolio__head__small {
  text-align: center;
  color: #808080;
  font-size: 1rem;
  margin-bottom: 50px; }

.portfolio__block {
  width: 50%;
  position: relative;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  float: left; }

.portfolio__block__list {
  margin-left: 0;
  list-style-type: none; }

.portfolio__item__text {
  color: #201600;
  font-weight: bold;
  font-size: 1.375rem;
  margin-left: 65px; }

.portfolio__item {
  padding-bottom: 15px; }

.portfolio__item__img {
  float: left; }

@media only screen and (max-width: 40em) {
  .portfolio__block {
    width: 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; }
  .portfolio__item__text {
    font-size: 1rem;
    display: block; }
  .portfolio__item__img {
    float: left;
    padding-right: 10px; } }

.bubbles {
  text-align: center;
  margin-top: 10px; }

.bubbles__head {
  color: white;
  font-size: 2rem;
  text-align: center; }

.bubble {
  border: 7px solid #f1f1f1;
  overflow: hidden;
  border-radius: 50%;
  background: #fed136;
  width: 207px;
  height: 207px;
  margin: 0 auto 20px; }

.bubble__number {
  color: #fff;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 3.125rem;
  font-weight: bold;
  text-shadow: 1px 1px 0 #e69e1a;
  margin-top: 30px; }
  .bubble__number small {
    font-size: 1.5rem;
    font-weight: normal; }

.bubble__text {
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.3);
  text-transform: uppercase;
  color: #465a8b;
  font-size: 0.6875rem;
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; }

@media only screen and (min-width: 40.063em) {
  .bubbles__head {
    text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.7); }
  .bubbles {
    overflow: auto;
    margin-top: 20px; }
  .bubble {
    display: inline-block; }
  .bubble__wr {
    width: 50%;
    float: left;
    text-align: center; } }

@media only screen and (min-width: 64.063em) {
  .bubbles {
    overflow: auto;
    margin-top: 100px; }
  .bubble__wr {
    width: 25%; } }

.about__head {
  text-align: center;
  color: #222222;
  margin-bottom: 0px;
  margin-bottom: 2.5rem; }

.about__head__small {
  text-align: center;
  color: #808080;
  font-size: 1rem;
  margin-bottom: 50px; }

.about__item__button {
  color: white;
  display: inline-block;
  padding: 0.625rem 0.9375rem;
  font-size: 1.375rem;
  font-weight: bold;
  border: none;
  border-radius: 4px;
  background: #fed136;
  text-decoration: none;
  text-align: center;
  width: auto;
  margin-left: 341px; }
  .about__item__button:hover, .about__item__button:focus {
    color: white; }

.about {
  margin-bottom: 110px; }

.about__item {
  margin: 0 auto; }

.about__item__photo {
  float: left; }

.about__item__photo__img {
  padding: 2px;
  border: 5px solid #f1f1f1;
  border-radius: 140px;
  height: 281px;
  width: 281px; }

.about__item__head {
  color: #777777;
  font-weight: bold;
  font-size: 1.5rem;
  line-height: 1.2;
  margin-left: 341px; }

.about__item__preheader {
  color: #3f3f3f;
  font-size: 1.125rem;
  margin-bottom: 10px;
  margin-left: 341px; }

.about__item__review {
  margin-left: 341px; }

.about__item__review p {
  font-size: 0.875rem;
  color: #777777;
  margin-bottom: 5px;
  text-indent: 0.9375rem; }

@media only screen and (max-width: 40em) {
  .about {
    margin-bottom: 20px; }
  .about__item__photo {
    float: none;
    padding-right: 0; }
  .about__item__photo__img {
    height: auto;
    width: auto; }
  .about__item__button {
    width: 100%;
    margin-left: 0; }
  .about__item__head {
    margin-left: 0; }
  .about__item__preheader {
    margin-left: 0; }
  .about__item__review {
    margin-left: 0; }
  .about__item {
    width: auto;
    text-align: center; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwidGhlbWUuc2NzcyIsIi4uLy4uL19mcmFtZXdvcmtfdjAuNS9mb3VuZGF0aW9uLTUuNC43L19mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL19mcmFtZXdvcmtfdjAuNS9mb3VuZGF0aW9uLTUuNC43L19ub3JtYWxpemUuc2NzcyIsIi4uLy4uL19mcmFtZXdvcmtfdjAuNS9mb3VuZGF0aW9uLTUuNC43L2NvbXBvbmVudHMvX2dyaWQuc2NzcyIsIi4uLy4uL19mcmFtZXdvcmtfdjAuNS9mb3VuZGF0aW9uLTUuNC43L2NvbXBvbmVudHMvX2dsb2JhbC5zY3NzIiwiLi4vLi4vX2ZyYW1ld29ya192MC41L2ZvdW5kYXRpb24tNS40LjcvY29tcG9uZW50cy9fYmxvY2stZ3JpZC5zY3NzIiwiLi4vLi4vX2ZyYW1ld29ya192MC41L2ZvdW5kYXRpb24tNS40LjcvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vX2ZyYW1ld29ya192MC41L2ZvdW5kYXRpb24tNS40LjcvY29tcG9uZW50cy9fcmV2ZWFsLnNjc3MiLCIuLi8uLi9fZnJhbWV3b3JrX3YwLjUvZm91bmRhdGlvbi01LjQuNy9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiLi4vLi4vX2ZyYW1ld29ya192MC41L2ZvdW5kYXRpb24tNS40LjcvY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vX2ZyYW1ld29ya192MC41L2ZvdW5kYXRpb24tNS40LjcvY29tcG9uZW50cy9fdHlwZS5zY3NzIiwiYmxvY2tzL2Jsb2Nrcy9fYmxvY2suc2NzcyIsImJsb2Nrcy9oZWFkZXIvX2hlYWRlci5zY3NzIiwiYmxvY2tzL2NhbGxGb3JtL19jYWxsRm9ybS5zY3NzIiwiYmxvY2tzL3RleHRCbG9ja3MvX3NpbXBsZVRleHRCbG9ja3Muc2NzcyIsImJsb2Nrcy9jYWxsRm9ybS9fY2FsbFRvQWN0aW9uLnNjc3MiLCJibG9ja3MvdGV4dEJsb2Nrcy9faW1hZ2VUZXh0QmxvY2suc2NzcyIsImJsb2Nrcy9yZXZpZXdzL19zbGlkZVJldmlld3Muc2NzcyIsImJsb2Nrcy9mYXEvX2ZhcS5zY3NzIiwiYmxvY2tzL2NvbnRhY3RzL19tYXAuc2NzcyIsImJsb2Nrcy9jb3B5cmlnaHQvX2NvcHlyaWdodC5zY3NzIiwiYmxvY2tzL3NlcnZpY2VzL19zZXJ2aWNlcy5zY3NzIiwiYmxvY2tzL3BvcnRmb2xpby9fcG9ydGZvbGlvLnNjc3MiLCJibG9ja3MvYnViYmxlcy9fYnViYmxlcy5zY3NzIiwiYmxvY2tzL2Fib3V0L19hYm91dC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIlxyXG5AaW1wb3J0IFwidGhlbWVcIjtcclxuQGltcG9ydCBcImJsb2Nrcy9ibG9ja3MvYmxvY2tcIjtcclxuQGltcG9ydCBcImJsb2Nrcy9oZWFkZXIvaGVhZGVyXCI7XHJcbkBpbXBvcnQgXCJibG9ja3MvY2FsbEZvcm0vY2FsbEZvcm1cIjtcclxuQGltcG9ydCBcImJsb2Nrcy90ZXh0QmxvY2tzL3NpbXBsZVRleHRCbG9ja3NcIjtcclxuQGltcG9ydCBcImJsb2Nrcy9jYWxsRm9ybS9jYWxsVG9BY3Rpb25cIjtcclxuQGltcG9ydCBcImJsb2Nrcy90ZXh0QmxvY2tzL2ltYWdlVGV4dEJsb2NrXCI7XHJcbkBpbXBvcnQgXCJibG9ja3MvcmV2aWV3cy9zbGlkZVJldmlld3NcIjtcclxuQGltcG9ydCBcImJsb2Nrcy9mYXEvX2ZhcVwiO1xyXG5AaW1wb3J0IFwiYmxvY2tzL2NvbnRhY3RzL21hcFwiO1xyXG5AaW1wb3J0IFwiYmxvY2tzL2NvcHlyaWdodC9jb3B5cmlnaHRcIjtcclxuQGltcG9ydCBcImJsb2Nrcy9zZXJ2aWNlcy9fc2VydmljZXNcIjtcclxuQGltcG9ydCBcImJsb2Nrcy9wb3J0Zm9saW8vX3BvcnRmb2xpb1wiO1xyXG5AaW1wb3J0IFwiYmxvY2tzL2J1YmJsZXMvX2J1YmJsZXNcIjtcclxuQGltcG9ydCBcImJsb2Nrcy9hYm91dC9fYWJvdXRcIjsiLCIvLyDQsdCw0LfQvtCy0LDRjyDRhNGD0L3QutGG0LjQvtC90LDQu9GM0L3QvtGB0YLRjFxyXG5AaW1wb3J0IFwiLi4vLi4vX2ZyYW1ld29ya192MC41L2ZvdW5kYXRpb24tNS40LjcvZnVuY3Rpb25zXCI7XHJcblxyXG5cclxuLyoqINCT0LvQvtCx0LDQu9GM0L3Ri9C1INC/0LXRgNC10LzQtdC90L3Ri9C1INGC0LXQvNGLIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qKi9cclxuJHRfaGVhZGVyX2NvbG9yOiAjMjIyMjIyO1xyXG4kdF9wcmltYXJ5X2NvbG9yOiAjODA4MDgwICFkZWZhdWx0O1xyXG4kdF9zZWNvbmRhcnlfY29sb3I6ICNmZWQxMzYgIWRlZmF1bHQ7XHJcbiR0X3ZlcnRpY2FsX3NwYWNlOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XHJcbiR0X3JhZGl1czogNHB4ICFkZWZhdWx0O1xyXG4kdF9iYXNlX2ZvbnQ6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiR0X3Jvd193aWR0aDogcmVtLWNhbGMoMTAwMCkgIWRlZmF1bHQ7XHJcblxyXG4vKiogTWl4aW4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSoqL1xyXG5AbWl4aW4gdF9idXR0b24oKXtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBhZGRpbmc6IHJlbS1jYWxjKDEwKSAgcmVtLWNhbGMoMTUpO1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBib3JkZXItcmFkaXVzOiAkdF9yYWRpdXM7XHJcbiAgYmFja2dyb3VuZDogJHRfc2Vjb25kYXJ5X2NvbG9yO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAmOmhvdmVyLFxyXG4gICY6Zm9jdXN7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gdF9oZWFkKCl7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGNvbG9yOiAkdF9oZWFkZXJfY29sb3I7XHJcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG59XHJcbkBtaXhpbiB0X3NtYWxsSGVhZGVyKCl7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGNvbG9yOiAkdF9wcmltYXJ5X2NvbG9yO1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xyXG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbn1cclxuLyoqIFN0eWxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qKi9cclxuXHJcblxyXG4vKiogRm91bmRhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiovXHJcbiRpbmNsdWRlLWh0bWwtY2xhc3NlczpmYWxzZTsgLy8g0JjRgdC/0L7Qu9GM0LfRg9C10Lwg0KLQntCb0KzQmtCeINGB0LLQvtC4INC60LvQsNGB0YHRi1xyXG4kaW5jbHVkZS1odG1sLWdsb2JhbC1jbGFzc2VzOnRydWU7XHJcbiRpbmNsdWRlLWh0bWwtZm9ybS1jbGFzc2VzOnRydWU7XHJcbiRpbmNsdWRlLWh0bWwtdHlwZS1jbGFzc2VzOnRydWU7XHJcbiRpbmNsdWRlLWh0bWwtcmV2ZWFsLWNsYXNzZXM6dHJ1ZTtcclxuJHJvdy13aWR0aDokdF9yb3dfd2lkdGg7XHJcblxyXG5cclxuXHJcbkBpbXBvcnQgXCIuLi8uLi9fZnJhbWV3b3JrX3YwLjUvZm91bmRhdGlvbi01LjQuNy9ub3JtYWxpemVcIjtcclxuQGltcG9ydCBcIi4uLy4uL19mcmFtZXdvcmtfdjAuNS9mb3VuZGF0aW9uLTUuNC43L2NvbXBvbmVudHMvZ3JpZFwiO1xyXG5AaW1wb3J0IFwiLi4vLi4vX2ZyYW1ld29ya192MC41L2ZvdW5kYXRpb24tNS40LjcvY29tcG9uZW50cy9ibG9jay1ncmlkXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9fZnJhbWV3b3JrX3YwLjUvZm91bmRhdGlvbi01LjQuNy9jb21wb25lbnRzL3Zpc2liaWxpdHlcIjtcclxuQGltcG9ydCBcIi4uLy4uL19mcmFtZXdvcmtfdjAuNS9mb3VuZGF0aW9uLTUuNC43L2NvbXBvbmVudHMvcmV2ZWFsXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9fZnJhbWV3b3JrX3YwLjUvZm91bmRhdGlvbi01LjQuNy9jb21wb25lbnRzL2Zvcm1zXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9fZnJhbWV3b3JrX3YwLjUvZm91bmRhdGlvbi01LjQuNy9jb21wb25lbnRzL3R5cGVcIjtcclxuXHJcbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIFRoaXMgaXMgdGhlIGRlZmF1bHQgaHRtbCBhbmQgYm9keSBmb250LXNpemUgZm9yIHRoZSBiYXNlIHJlbSB2YWx1ZS5cbiRyZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcblxuLy8gSU1QT1JUIE9OQ0Vcbi8vIFdlIHVzZSB0aGlzIHRvIHByZXZlbnQgc3R5bGVzIGZyb20gYmVpbmcgbG9hZGVkIG11bHRpcGxlIHRpbWVzIGZvciBjb21wZW5lbnRzIHRoYXQgcmVseSBvbiBvdGhlciBjb21wb25lbnRzLiBcbiRtb2R1bGVzOiAoKSAhZGVmYXVsdDtcbkBtaXhpbiBleHBvcnRzKCRuYW1lKSB7XG4gICRtb2R1bGVfaW5kZXg6IGluZGV4KCRtb2R1bGVzLCAkbmFtZSk7XG4gIEBpZiAoKCRtb2R1bGVfaW5kZXggPT0gbnVsbCkgb3IgKCRtb2R1bGVfaW5kZXggPT0gZmFsc2UpKSB7XG4gICAgJG1vZHVsZXM6IGFwcGVuZCgkbW9kdWxlcywgJG5hbWUpO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vXG4vLyBAZnVuY3Rpb25zXG4vL1xuXG5cbi8vIFJBTkdFU1xuLy8gV2UgdXNlIHRoZXNlIGZ1bmN0aW9ucyB0byBkZWZpbmUgcmFuZ2VzIGZvciB2YXJpb3VzIHRoaW5ncywgbGlrZSBtZWRpYSBxdWVyaWVzLiBcbkBmdW5jdGlvbiBsb3dlci1ib3VuZCgkcmFuZ2Upe1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPD0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwxKTtcbn1cblxuQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcbiAgICBAcmV0dXJuIDk5OTk5OTk5OTk5OTtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufVxuXG4vLyBTVFJJUCBVTklUXG4vLyBJdCBzdHJpcHMgdGhlIHVuaXQgb2YgbWVhc3VyZSBhbmQgcmV0dXJucyBpdFxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8gQ09OVkVSVCBUTyBSRU1cbkBmdW5jdGlvbiBjb252ZXJ0LXRvLXJlbSgkdmFsdWUsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpICB7XG4gICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZS12YWx1ZSkgKiAxcmVtO1xuICBAaWYgKCR2YWx1ZSA9PSAwcmVtKSB7ICR2YWx1ZTogMDsgfSAvLyBUdXJuIDByZW0gaW50byAwXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gZGF0YSgkYXR0cikge1xuICBAaWYgJG5hbWVzcGFjZSB7XG4gICAgQHJldHVybiAnW2RhdGEtJyArICRuYW1lc3BhY2UgKyAnLScgKyAkYXR0ciArICddJztcbiAgfVxuXG4gIEByZXR1cm4gJ1tkYXRhLScgKyAkYXR0ciArICddJztcbn1cblxuLy8gUkVNIENBTEMgXG5cbi8vIE5ldyBTeW50YXgsIGFsbG93cyB0byBvcHRpb25hbGx5IGNhbGN1bGF0ZSBvbiBhIGRpZmZlcmVudCBiYXNlIHZhbHVlIHRvIGNvdW50ZXIgY29tcG91bmRpbmcgZWZmZWN0IG9mIHJlbSdzLlxuLy8gQ2FsbCB3aXRoIDEsIDIsIDMgb3IgNCBwYXJhbWV0ZXJzLCAncHgnIGlzIG5vdCByZXF1aXJlZCBidXQgc3VwcG9ydGVkOlxuLy8gXG4vLyAgIHJlbS1jYWxjKDEwIDIwIDMwcHggNDApO1xuLy8gXG4vLyBTcGFjZSBkZWxpbWl0ZWQsIGlmIHlvdSB3YW50IHRvIGRlbGltaXQgdXNpbmcgY29tbWEncywgd3JhcCBpdCBpbiBhbm90aGVyIHBhaXIgb2YgYnJhY2tldHNcbi8vIFxuLy8gICByZW0tY2FsYygoMTAsIDIwLCAzMCwgNDBweCkpO1xuLy8gXG4vLyBPcHRpb25hbGx5IGNhbGwgd2l0aCBhIGRpZmZlcmVudCBiYXNlIChlZzogOHB4KSB0byBjYWxjdWxhdGUgcmVtLlxuLy8gXG4vLyAgIHJlbS1jYWxjKDE2cHggMzJweCA0OHB4LCA4cHgpO1xuLy8gXG4vLyBJZiB5b3UgcmVxdWlyZSB0byBjb21tYSBzZXBhcmF0ZSB5b3VyIGxpc3Rcbi8vIFxuLy8gICByZW0tY2FsYygoMTZweCwgMzJweCwgNDgpLCA4cHgpO1xuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkge1xuICAkbWF4OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgQGlmICRtYXggPT0gMSB7IEByZXR1cm4gY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsIDEpLCAkYmFzZS12YWx1ZSk7IH1cblxuICAkcmVtVmFsdWVzOiAoKTtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAkcmVtVmFsdWVzOiBhcHBlbmQoJHJlbVZhbHVlcywgY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcbiAgfVxuICBAcmV0dXJuICRyZW1WYWx1ZXM7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW1DYWxjKCR2YWx1ZXMpe1xuICBAcmV0dXJuIHJlbS1jYWxjKCR2YWx1ZXMpO1xufVxuXG4vLyBPTEQgRU0gQ0FMQ1xuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMS4wLCB1c2UgcmVtLWNhbGMoKVxuQGZ1bmN0aW9uIGVtLWNhbGMoJHZhbHVlcyl7XG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEwMDApICFkZWZhdWx0O1xuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4kbGFzdC1jaGlsZC1mbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbiAhZGVmYXVsdDtcblxuLy9cbi8vIEdyaWQgRnVuY3Rpb25zXG4vL1xuXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLCB1c2UgZ3JpZC1jYWxjKClcbkBmdW5jdGlvbiBncmlkQ2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XG4gIEB3YXJuIFwiZ3JpZENhbGMoKSBpcyBkZXByZWNhdGVkLCB1c2UgZ3JpZC1jYWxjKClcIjtcbiAgQHJldHVybiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucyk7XG59XG5cbi8vIEBGVU5DVElPTlxuLy8gJGNvbE51bWJlciAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbi8vICR0b3RhbENvbHVtbnMgLSBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG5AZnVuY3Rpb24gZ3JpZC1jYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcbiAgQHJldHVybiBwZXJjZW50YWdlKCgkY29sTnVtYmVyIC8gJHRvdGFsQ29sdW1ucykpO1xufVxuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gRm9yIGNyZWF0aW5nIGNvbnRhaW5lciwgbmVzdGVkLCBhbmQgY29sbGFwc2VkIHJvd3MuXG4vL1xuLy9cbi8vICRiZWhhdmlvciAtIEFueSBzcGVjaWFsIGJlaGF2aW9yIGZvciB0aGlzIHJvdz8gRGVmYXVsdDogZmFsc2UuIE9wdGlvbnM6IG5lc3QsIGNvbGxhcHNlLCBuZXN0LWNvbGxhcHNlLCBmYWxzZS5cbkBtaXhpbiBncmlkLXJvdygkYmVoYXZpb3I6IGZhbHNlKSB7XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KG5lc3QpOyB0byBpbmNsdWRlIGEgbmVzdGVkIHJvd1xuICBAaWYgJGJlaGF2aW9yID09IG5lc3Qge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLSgkY29sdW1uLWd1dHRlci8yKTtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogLSgkY29sdW1uLWd1dHRlci8yKTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KGNvbGxhcHNlKTsgdG8gY29sbGFwc2VkIGEgY29udGFpbmVyIHJvdyBtYXJnaW5zXG4gIEBlbHNlIGlmICRiZWhhdmlvciA9PSBjb2xsYXBzZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogJHJvdy13aWR0aDtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhuZXN0LWNvbGxhcHNlKTsgdG8gY29sbGFwc2Ugb3V0ZXIgbWFyZ2lucyBvbiBhIG5lc3RlZCByb3dcbiAgQGVsc2UgaWYgJGJlaGF2aW9yID09IG5lc3QtY29sbGFwc2Uge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3c7IHRvIHVzZSBhIGNvbnRhaW5lciByb3dcbiAgQGVsc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuICB9XG5cbiAgLy8gQ2xlYXJmaXggZm9yIGFsbCByb3dzXG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbi8vIENyZWF0ZXMgYSBjb2x1bW4sIHNob3VsZCBiZSB1c2VkIGluc2lkZSBvZiBhIG1lZGlhIHF1ZXJ5IHRvIGNvbnRyb2wgbGF5b3V0c1xuLy9cbi8vICRjb2x1bW5zIC0gVGhlIG51bWJlciBvZiBjb2x1bW5zIHRoaXMgc2hvdWxkIGJlXG4vLyAkbGFzdC1jb2x1bW4gLSBJcyB0aGlzIHRoZSBsYXN0IGNvbHVtbj8gRGVmYXVsdDogZmFsc2UuXG4vLyAkY2VudGVyIC0gQ2VudGVyIHRoZXNlIGNvbHVtbnM/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJG9mZnNldCAtICMgb2YgY29sdW1ucyB0byBvZmZzZXQuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJHB1c2ggLSAjIG9mIGNvbHVtbnMgdG8gcHVzaC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVsbCAtICMgb2YgY29sdW1ucyB0byBwdWxsLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRjb2xsYXBzZSAtIEdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmcgb24gY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRmbG9hdCAtIFNob3VsZCB0aGlzIGZsb2F0PyBEZWZhdWx0OiB0cnVlLiBPcHRpb25zOiB0cnVlLCBmYWxzZSwgbGVmdCwgcmlnaHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOmZhbHNlLFxuICAkbGFzdC1jb2x1bW46ZmFsc2UsXG4gICRjZW50ZXI6ZmFsc2UsXG4gICRvZmZzZXQ6ZmFsc2UsXG4gICRwdXNoOmZhbHNlLFxuICAkcHVsbDpmYWxzZSxcbiAgJGNvbGxhcHNlOmZhbHNlLFxuICAkZmxvYXQ6dHJ1ZSxcbiAgJHBvc2l0aW9uOmZhbHNlKSB7XG5cbiAgLy8gSWYgcG9zaXRpb25lZCBmb3IgZGVmYXVsdCAuY29sdW1uLCBpbmNsdWRlIHJlbGF0aXZlIHBvc2l0aW9uXG4gIC8vIHB1c2ggYW5kIHB1bGwgcmVxdWlyZSBwb3NpdGlvbiBzZXRcbiAgQGlmICRwb3NpdGlvbiBvciAkcHVzaCBvciAkcHVsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy8gSWYgY29sbGFwc2VkLCBnZXQgcmlkIG9mIGd1dHRlciBwYWRkaW5nXG4gIEBpZiAkY29sbGFwc2Uge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLy8gR3V0dGVyIHBhZGRpbmcgd2hlbmV2ZXIgYSBjb2x1bW4gaXNuJ3Qgc2V0IHRvIGNvbGxhcHNlXG4gIC8vICh1c2UgJGNvbGxhcHNlOm51bGwgdG8gZG8gbm90aGluZylcbiAgQGVsc2UgaWYgJGNvbGxhcHNlID09IGZhbHNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyIC8gMjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlciAvIDI7XG4gIH1cblxuICAvLyBJZiBhIGNvbHVtbiBudW1iZXIgaXMgZ2l2ZW4sIGNhbGN1bGF0ZSB3aWR0aFxuICBAaWYgJGNvbHVtbnMge1xuICAgIHdpZHRoOiBncmlkLWNhbGMoJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zKTtcblxuICAgIC8vIElmIGxhc3QgY29sdW1uLCBmbG9hdCBuYXR1cmFsbHkgaW5zdGVhZCBvZiB0byB0aGUgcmlnaHRcbiAgICBAaWYgJGxhc3QtY29sdW1uIHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBPcmRlcmluZywgYWRkcyBsZWZ0L3JpZ2h0IGRlcGVuZGluZyBvbiB3aGljaCB5b3UgdXNlLlxuICBAaWYgJHB1c2ggeyAjeyRkZWZhdWx0LWZsb2F0fTogZ3JpZC1jYWxjKCRwdXNoLCAkdG90YWwtY29sdW1ucyk7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87IH1cbiAgQGlmICRwdWxsIHsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogZ3JpZC1jYWxjKCRwdWxsLCAkdG90YWwtY29sdW1ucyk7ICN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvOyB9XG5cbiAgQGlmICRmbG9hdCB7XG4gICAgQGlmICRmbG9hdCA9PSBsZWZ0IG9yICRmbG9hdCA9PSB0cnVlIHsgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0OyB9XG4gICAgQGVsc2UgaWYgJGZsb2F0ID09IHJpZ2h0IHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgICBAZWxzZSB7IGZsb2F0OiBub25lOyB9XG4gIH1cblxuICAvLyBJZiBjZW50ZXJlZCwgZ2V0IHJpZCBvZiBmbG9hdCBhbmQgYWRkIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRjZW50ZXIge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIElmIG9mZnNldCwgY2FsY3VsYXRlIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRvZmZzZXQgeyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkb2Zmc2V0LCAkdG90YWwtY29sdW1ucykgIWltcG9ydGFudDsgfVxuXG59XG5cbi8vIENyZWF0ZSBwcmVzZW50YXRpb25hbCBjbGFzc2VzIGZvciBncmlkXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtMSwgLmxhcmdlLTIsIGV0Yy5cbkBtaXhpbiBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZSkge1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tcHVzaC0jeyRpfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxuICAgIC4jeyRzaXplfS1wdWxsLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAuY29sdW1uLFxuICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOmZhbHNlLCAkcG9zaXRpb246dHJ1ZSk7IH1cblxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMge1xuICAgIC4jeyRzaXplfS0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiRpLCRjb2xsYXBzZTpudWxsLCRmbG9hdDpmYWxzZSk7IH1cbiAgfVxuXG5cblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgLiN7JHNpemV9LW9mZnNldC0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRvZmZzZXQ6JGksICRjb2xsYXBzZTpudWxsLCRmbG9hdDpmYWxzZSk7IH1cbiAgfVxuICAuI3skc2l6ZX0tcmVzZXQtb3JkZXIge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LWNlbnRlcmVkIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNlbnRlcjp0cnVlLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTsgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZCB7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC8vIEZpZ2h0aW5nIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGRcbiAgLmNvbHVtbi4jeyRzaXplfS1jZW50ZXJlZDpsYXN0LWNoaWxkLFxuICAuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZDpsYXN0LWNoaWxke1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gRmlnaHRpbmcgLmNvbHVtbi48cHJldmlvdXMtc2l6ZT4tY2VudGVyZWQ6bGFzdC1jaGlsZFxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQ6bGFzdC1jaGlsZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQub3Bwb3NpdGUsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQub3Bwb3NpdGUge1xuICAgIGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJncmlkXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzIHtcbiAgICAucm93IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuXG4gICAgICAmLmNvbGxhcHNlIHtcbiAgICAgICAgID4gLmNvbHVtbixcbiAgICAgICAgID4gLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sbGFwc2U6dHJ1ZSwgJGZsb2F0OmZhbHNlKTsgfVxuXG4gICAgICAgIC5yb3cge21hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowO31cbiAgICAgIH1cblxuICAgICAgLnJvdyB7IEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0KTtcbiAgICAgICAgJi5jb2xsYXBzZSB7IEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0LWNvbGxhcHNlKTsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5jb2x1bW4sXG4gICAgLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczokdG90YWwtY29sdW1ucyk7IH1cblxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGQgeyBmbG9hdDogJGxhc3QtY2hpbGQtZmxvYXQ7IH1cbiAgICBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXS5lbmQgeyBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7IH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6c21hbGwpO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOm1lZGl1bSk7XG4gICAgICAvLyBPbGQgcHVzaCBhbmQgcHVsbCBjbGFzc2VzXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgICAgIC5wdXNoLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLnB1bGwtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOmxhcmdlKTtcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAgICAgLnB1c2gtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAucHVsbC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlcyB7XG4gICAgQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eGxhcmdlKTtcbiAgICB9XG4gICAgQG1lZGlhICN7JHh4bGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnh4bGFyZ2UpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuLy9cbi8vIEZvdW5kYXRpb24gVmFyaWFibGVzXG4vL1xuXG4vLyBEYXRhIGF0dHJpYnV0ZSBuYW1lc3BhY2Vcbi8vIHN0eWxlcyBnZXQgYXBwbGllZCB0byBbZGF0YS1teXNpdGUtcGx1Z2luXSwgZXRjXG4kbmFtZXNwYWNlOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udC1zaXplIGlzIHNldCB0byAxMDAlIG9mIHRoZSBicm93c2VyIHN0eWxlIHNoZWV0ICh1c3VhbGx5IDE2cHgpXG4vLyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGJyb3dzZXItYmFzZWQgdGV4dCB6b29tIG9yIHVzZXItc2V0IGRlZmF1bHRzLlxuXG4vLyBTaW5jZSB0aGUgdHlwaWNhbCBkZWZhdWx0IGJyb3dzZXIgZm9udC1zaXplIGlzIDE2cHgsIHRoYXQgbWFrZXMgdGhlIGNhbGN1bGF0aW9uIGZvciBncmlkIHNpemUuXG4vLyBJZiB5b3Ugd2FudCB5b3VyIGJhc2UgZm9udC1zaXplIHRvIGJlIGRpZmZlcmVudCBhbmQgbm90IGhhdmUgaXQgYWZmZWN0IHRoZSBncmlkIGJyZWFrcG9pbnRzLFxuLy8gc2V0ICRyZW0tYmFzZSB0byAkYmFzZS1mb250LXNpemUgYW5kIG1ha2Ugc3VyZSAkYmFzZS1mb250LXNpemUgaXMgYSBweCB2YWx1ZS5cbiRiYXNlLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8gJGJhc2UtbGluZS1oZWlnaHQgaXMgMjRweCB3aGlsZSAkYmFzZS1mb250LXNpemUgaXMgMTZweFxuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy9cbi8vIEdsb2JhbCBGb3VuZGF0aW9uIE1peGluc1xuLy9cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYm9yZGVyIHJhZGl1cy5cbi8vICRyYWRpdXMgLSBEZWZhdWx0OiAkZ2xvYmFsLXJhZGl1cyB8fCA0cHhcbkBtaXhpbiByYWRpdXMoJHJhZGl1czokZ2xvYmFsLXJhZGl1cykge1xuICBAaWYgJHJhZGl1cyB7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGVxdWFsIHNpZGUgYm9yZGVyIHJhZGl1cyBvbiBlbGVtZW50cy5cbi8vICRzaWRlIC0gT3B0aW9uczogbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tXG5AbWl4aW4gc2lkZS1yYWRpdXMoJHNpZGUsICRyYWRpdXM6JGdsb2JhbC1yYWRpdXMpIHtcbiAgQGlmICgkc2lkZSA9PSBsZWZ0IG9yICRzaWRlID09IHJpZ2h0KSB7XG4gICAgLXdlYmtpdC1ib3JkZXItYm90dG9tLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcbiAgICAtd2Via2l0LWJvcmRlci10b3AtI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci10b3AtI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICB9IEBlbHNlIHtcbiAgICAtd2Via2l0LSN7JHNpZGV9LWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIC13ZWJraXQtI3skc2lkZX0tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci0jeyRzaWRlfS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItI3skc2lkZX0tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB3ZSBoYXZlIGluc2V0IHNoYWRvd3MgZWRnZXMuXG4vLyAkYWN0aXZlIC0gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2VcbkBtaXhpbiBpbnNldC1zaGFkb3coJGFjdGl2ZTp0cnVlKSB7XG4gIGJveC1zaGFkb3c6ICRzaGlueS1lZGdlLXNpemUgJHNoaW55LWVkZ2UtY29sb3IgaW5zZXQ7XG5cbiAgQGlmICRhY3RpdmUgeyAmOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogJHNoaW55LWVkZ2Utc2l6ZSAkc2hpbnktZWRnZS1hY3RpdmUtY29sb3IgaW5zZXQ7IH0gfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIHRyYW5zaXRpb25zIHRvIGVsZW1lbnRzXG4vLyAkcHJvcGVydHkgLSBEZWZhdWx0OiBhbGwsIE9wdGlvbnM6IGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdHJhbnNpdGlvbnMvI2FuaW1hdGFibGUtcHJvcGVydGllc1xuLy8gJHNwZWVkIC0gRGVmYXVsdDogMzAwbXNcbi8vICRlYXNlIC0gRGVmYXVsdDplYXNlLW91dCwgT3B0aW9uczogaHR0cDovL2Nzcy10cmlja3MuY29tL2FsbWFuYWMvcHJvcGVydGllcy90L3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uL1xuQG1peGluIHNpbmdsZS10cmFuc2l0aW9uKCRwcm9wZXJ0eTphbGwsICRzcGVlZDozMDBtcywgJGVhc2U6ZWFzZS1vdXQpIHtcbiAgdHJhbnNpdGlvbjogJHByb3BlcnR5ICRzcGVlZCAkZWFzZTtcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCBib3gtc2l6aW5nIGFjcm9zcyBicm93c2VyIHByZWZpeGVzXG5AbWl4aW4gYm94LXNpemluZygkdHlwZTpib3JkZXItYm94KSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHR5cGU7IC8vIEFuZHJvaWQgPCAyLjMsIGlPUyA8IDRcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkdHlwZTsgLy8gRmlyZWZveCA8IDI5XG4gICAgICAgICAgYm94LXNpemluZzogJHR5cGU7IC8vIENocm9tZSwgSUUgOCssIE9wZXJhLCBTYWZhcmkgNS4xXG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgaXNvc2NlbGVzIHRyaWFuZ2xlc1xuLy8gJHRyaWFuZ2xlLXNpemUgLSBVc2VkIHRvIHNldCBib3JkZXItc2l6ZS4gTm8gZGVmYXVsdCwgc2V0IGEgcHggb3IgZW0gc2l6ZS5cbi8vICR0cmlhbmdsZS1jb2xvciAtIFVzZWQgdG8gc2V0IGJvcmRlci1jb2xvciB3aGljaCBtYWtlcyB1cCB0cmlhbmdsZS4gTm8gZGVmYXVsdFxuLy8gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIFVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIGRpcmVjdGlvbiB0cmlhbmdsZSBwb2ludHMuIE9wdGlvbnM6IHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodFxuQG1peGluIGNzcy10cmlhbmdsZSgkdHJpYW5nbGUtc2l6ZSwgJHRyaWFuZ2xlLWNvbG9yLCAkdHJpYW5nbGUtZGlyZWN0aW9uKSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdG9wKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGJvdHRvbSkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgaWNvbiB3aXRoIHRocmVlIGxpbmVzIGFrYSB0aGUgaGFtYnVyZ2VyIGljb24sIHRoZSBtZW51LWljb24gb3IgdGhlIG5hdmljb25cbi8vICR3aWR0aCAtIFdpZHRoIG9mIGhhbWJ1cmdlciBpY29uIGluIHJlbVxuLy8gJGxlZnQgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIGhvcml6b250YWxseSB8fCBleHBsaWNpdGx5IHNldCB2YWx1ZSBpbiByZW1cbi8vICR0b3AgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIHZlcnRpY2FsbHkgfHwgZXhwbGljaXRseSBzZXQgdmFsdWUgaW4gcmVtXG4vLyAkdGhpY2tuZXNzIC0gdGhpY2tuZXNzIG9mIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbi8vICRnYXAgLSBzcGFjaW5nIGJldHdlZW4gdGhlIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbi8vICRjb2xvciAtIGljb24gY29sb3Jcbi8vICRob3Zlci1jb2xvciAtIGljb24gY29sb3IgZHVyaW5nIGhvdmVyXG4vLyAkb2ZmY2FudmFzIC0gU2V0IHRvIHRydWUgb2YgQGluY2x1ZGUgaW4gb2ZmY2FudmFzXG5AbWl4aW4gaGFtYnVyZ2VyKCR3aWR0aCwgJGxlZnQsICR0b3AsICR0aGlja25lc3MsICRnYXAsICRjb2xvciwgJGhvdmVyLWNvbG9yLCAkb2ZmY2FudmFzKSB7XG4gIHNwYW46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG5cbiAgICBAaWYgJG9mZmNhbnZhcyB7XG4gICAgICBAaWYgJHRvcCB7XG4gICAgICAgIHRvcDogJHRvcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0kd2lkdGgvMjtcbiAgICAgIH1cbiAgICAgIEBpZiAkbGVmdCB7XG4gICAgICAgIGxlZnQ6ICRsZWZ0O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiAoJHRhYmJhci1tZW51LWljb24td2lkdGggLSAkd2lkdGgpLzI7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLSgkd2lkdGgvMik7XG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OlxuICAgICAgMCAwcHggMCAkdGhpY2tuZXNzICRjb2xvcixcbiAgICAgIDAgJGdhcCArICR0aGlja25lc3MgMCAkdGhpY2tuZXNzICRjb2xvcixcbiAgICAgIDAgKDIgKiAkZ2FwICsgMiokdGhpY2tuZXNzKSAwICR0aGlja25lc3MgJGNvbG9yO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH1cbiAgc3Bhbjpob3ZlcjphZnRlciB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMHB4IDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3IsXG4gICAgICAwICRnYXAgKyAkdGhpY2tuZXNzIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3IsXG4gICAgICAwICgyICogJGdhcCArIDIqJHRoaWNrbmVzcykgMCAkdGhpY2tuZXNzICRob3Zlci1jb2xvcjtcbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBkbyBjbGVhciBmbG9hdHNcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YmVmb3JlLCAmOmFmdGVyIHsgY29udGVudDogXCIgXCI7IGRpc3BsYXk6IHRhYmxlOyB9XG4gICY6YWZ0ZXIgeyBjbGVhcjogYm90aDsgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIGEgZ2xvd2luZyBlZmZlY3QgdG8gYmxvY2sgZWxlbWVudHNcbi8vICRzZWxlY3RvciAtIFVzZWQgZm9yIHNlbGVjdG9yIHN0YXRlLiBEZWZhdWx0OiBmb2N1cywgT3B0aW9uczogaG92ZXIsIGFjdGl2ZSwgdmlzaXRlZFxuLy8gJGZhZGUtdGltZSAtIERlZmF1bHQ6IDMwMG1zXG4vLyAkZ2xvd2luZy1lZmZlY3QtY29sb3IgLSBEZWZhdWx0OiBmYWRlLW91dCgkcHJpbWFyeS1jb2xvciwgLjI1KVxuQG1peGluIGJsb2NrLWdsb3dpbmctZWZmZWN0KCRzZWxlY3Rvcjpmb2N1cywgJGZhZGUtdGltZTozMDBtcywgJGdsb3dpbmctZWZmZWN0LWNvbG9yOmZhZGUtb3V0KCRwcmltYXJ5LWNvbG9yLCAuMjUpKSB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgJGZhZGUtdGltZSwgYm9yZGVyLWNvbG9yICRmYWRlLXRpbWUgZWFzZS1pbi1vdXQ7XG5cbiAgJjojeyRzZWxlY3Rvcn0ge1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggJGdsb3dpbmctZWZmZWN0LWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGdsb3dpbmctZWZmZWN0LWNvbG9yO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byB0cmFuc2xhdGUgZWxlbWVudHMgaW4gMkRcbi8vICRob3Jpem9udGFsOiBEZWZhdWx0OiAwXG4vLyAkdmVydGljYWw6IERlZmF1bHQ6IDBcbkBtaXhpbiB0cmFuc2xhdGUyZCgkaG9yaXpvbnRhbDowLCAkdmVydGljYWw6MCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkaG9yaXpvbnRhbCwkdmVydGljYWwpXG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IGFjY2Vzc2libGUuXG4vLyBAc2VlIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gVHVybnMgb2ZmIHRoZSBlbGVtZW50LWludmlzaWJsZSBlZmZlY3QuXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbn1cblxuJHdoaXRlICAgICAgICAgOiAjRkZGRkZGICFkZWZhdWx0O1xuJGdob3N0ICAgICAgICAgOiAjRkFGQUZBICFkZWZhdWx0O1xuJHNub3cgICAgICAgICAgOiAjRjlGOUY5ICFkZWZhdWx0O1xuJHZhcG9yICAgICAgICAgOiAjRjZGNkY2ICFkZWZhdWx0O1xuJHdoaXRlLXNtb2tlICAgOiAjRjVGNUY1ICFkZWZhdWx0O1xuJHNpbHZlciAgICAgICAgOiAjRUZFRkVGICFkZWZhdWx0O1xuJHNtb2tlICAgICAgICAgOiAjRUVFRUVFICFkZWZhdWx0O1xuJGdhaW5zYm9ybyAgICAgOiAjREREREREICFkZWZhdWx0O1xuJGlyb24gICAgICAgICAgOiAjQ0NDQ0NDICFkZWZhdWx0O1xuJGJhc2UgICAgICAgICAgOiAjQUFBQUFBICFkZWZhdWx0O1xuJGFsdW1pbnVtICAgICAgOiAjOTk5OTk5ICFkZWZhdWx0O1xuJGp1bWJvICAgICAgICAgOiAjODg4ODg4ICFkZWZhdWx0O1xuJG1vbnNvb24gICAgICAgOiAjNzc3Nzc3ICFkZWZhdWx0O1xuJHN0ZWVsICAgICAgICAgOiAjNjY2NjY2ICFkZWZhdWx0O1xuJGNoYXJjb2FsICAgICAgOiAjNTU1NTU1ICFkZWZhdWx0O1xuJHR1YXRhcmEgICAgICAgOiAjNDQ0NDQ0ICFkZWZhdWx0O1xuJG9pbCAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuJGpldCAgICAgICAgICAgOiAjMjIyMjIyICFkZWZhdWx0O1xuJGJsYWNrICAgICAgICAgOiAjMDAwMDAwICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgYXMgZGVmYXVsdCBjb2xvcnMgdGhyb3VnaG91dFxuJHByaW1hcnktY29sb3I6ICMwMDhDQkEgIWRlZmF1bHQ7ICAgLy8gYm9uZGktYmx1ZVxuJHNlY29uZGFyeS1jb2xvcjogI2U3ZTdlNyAhZGVmYXVsdDsgLy8gd2hpdGUtbGlsYWNcbiRhbGVydC1jb2xvcjogI2YwNDEyNCAhZGVmYXVsdDsgICAgIC8vIGNpbm5hYmFyXG4kc3VjY2Vzcy1jb2xvcjogIzQzQUM2QSAhZGVmYXVsdDsgICAvLyBzZWEtZ3JlZW5cbiR3YXJuaW5nLWNvbG9yOiAjZjA4YTI0ICFkZWZhdWx0OyAgIC8vIGNhcnJvdFxuJGluZm8tY29sb3I6ICNhMGQzZTggIWRlZmF1bHQ7ICAgICAgLy8gY29ybmZsb3dlclxuXG4vLyBXZSB1c2UgdGhlc2UgdG8gZGVmaW5lIGRlZmF1bHQgZm9udCBzdGFja3NcbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1zZXJpZjogR2VvcmdpYSwgQ2FtYnJpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGRlZmluZSBkZWZhdWx0IGZvbnQgd2VpZ2h0c1xuJGZvbnQtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHZhcmlvdXMgZ2xvYmFsIHN0eWxlc1xuJGJvZHktYmc6ICNmZmYgIWRlZmF1bHQ7XG4kYm9keS1mb250LWNvbG9yOiAjMjIyICFkZWZhdWx0O1xuJGJvZHktZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmICFkZWZhdWx0O1xuJGJvZHktZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kYm9keS1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgZm9udC1zbW9vdGhpbmdcbiRmb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRleHQgZGlyZWN0aW9uIHNldHRpbmdzXG4kdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcbiRkZWZhdWx0LWZsb2F0OiBsZWZ0ICFkZWZhdWx0O1xuJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQgIWRlZmF1bHQ7XG5AaWYgJHRleHQtZGlyZWN0aW9uID09IGx0ciB7XG4gICRkZWZhdWx0LWZsb2F0OiBsZWZ0O1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiByaWdodDtcbn0gQGVsc2Uge1xuICAkZGVmYXVsdC1mbG9hdDogcmlnaHQ7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XG59XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBtYWtlIHN1cmUgYm9yZGVyIHJhZGl1cyBtYXRjaGVzIHVubGVzcyB3ZSB3YW50IGl0IGRpZmZlcmVudC5cbiRnbG9iYWwtcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4kZ2xvYmFsLXJvdW5kZWQ6IDEwMDBweCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaW5zZXQgc2hhZG93IHNoaW55IGVkZ2VzIGFuZCBkZXByZXNzaW9ucy5cbiRzaGlueS1lZGdlLXNpemU6IDAgMXB4IDAgIWRlZmF1bHQ7XG4kc2hpbnktZWRnZS1jb2xvcjogcmdiYSgjZmZmLCAuNSkgIWRlZmF1bHQ7XG4kc2hpbnktZWRnZS1hY3RpdmUtY29sb3I6IHJnYmEoIzAwMCwgLjIpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHdoZXRoZXIgb3Igbm90IENTUyBjbGFzc2VzIGNvbWUgdGhyb3VnaCBpbiB0aGUgZ2VtIGZpbGVzLlxuJGluY2x1ZGUtaHRtbC1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtcHJpbnQtc3R5bGVzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtaHRtbC1nbG9iYWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4kY29sdW1uLWd1dHRlcjogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuXG4vLyBNZWRpYSBRdWVyeSBSYW5nZXNcbiRzbWFsbC1yYW5nZTogKDBlbSwgNDBlbSkgIWRlZmF1bHQ7XG4kbWVkaXVtLXJhbmdlOiAoNDAuMDYzZW0sIDY0ZW0pICFkZWZhdWx0O1xuJGxhcmdlLXJhbmdlOiAoNjQuMDYzZW0sIDkwZW0pICFkZWZhdWx0O1xuJHhsYXJnZS1yYW5nZTogKDkwLjA2M2VtLCAxMjBlbSkgIWRlZmF1bHQ7XG4keHhsYXJnZS1yYW5nZTogKDEyMC4wNjNlbSwgOTk5OTk5OTllbSkgIWRlZmF1bHQ7XG5cblxuJHNjcmVlbjogXCJvbmx5IHNjcmVlblwiICFkZWZhdWx0O1xuXG4kbGFuZHNjYXBlOiBcIiN7JHNjcmVlbn0gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKVwiICFkZWZhdWx0O1xuJHBvcnRyYWl0OiBcIiN7JHNjcmVlbn0gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpXCIgIWRlZmF1bHQ7XG5cbiRzbWFsbC11cDogJHNjcmVlbiAhZGVmYXVsdDtcbiRzbWFsbC1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiRtZWRpdW0tdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiRtZWRpdW0tb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuJGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiRsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuJHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJHhsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4keHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiR4eGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuLy8gTGVnYWN5XG4kc21hbGw6ICRtZWRpdW0tdXA7XG4kbWVkaXVtOiAkbWVkaXVtLXVwO1xuJGxhcmdlOiAkbGFyZ2UtdXA7XG5cblxuLy9XZSB1c2UgdGhpcyBhcyBjdXJzb3JzIHZhbHVlcyBmb3IgZW5hYmxpbmcgdGhlIG9wdGlvbiBvZiBoYXZpbmcgY3VzdG9tIGN1cnNvcnMgaW4gdGhlIHdob2xlIHNpdGUncyBzdHlsZXNoZWV0XG4kY3Vyc29yLWF1dG8tdmFsdWU6IGF1dG8gIWRlZmF1bHQ7XG4kY3Vyc29yLWNyb3NzaGFpci12YWx1ZTogY3Jvc3NoYWlyICFkZWZhdWx0O1xuJGN1cnNvci1kZWZhdWx0LXZhbHVlOiBkZWZhdWx0ICFkZWZhdWx0O1xuJGN1cnNvci1wb2ludGVyLXZhbHVlOiBwb2ludGVyICFkZWZhdWx0O1xuJGN1cnNvci1oZWxwLXZhbHVlOiBoZWxwICFkZWZhdWx0O1xuJGN1cnNvci10ZXh0LXZhbHVlOiB0ZXh0ICFkZWZhdWx0O1xuXG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJnbG9iYWxcIikge1xuXG4gIC8vIE1ldGEgc3R5bGVzIGFyZSBpbmNsdWRlZCBpbiBhbGwgYnVpbGRzLCBhcyB0aGV5IGFyZSBhIGRlcGVuZGFuY3kgb2YgdGhlIEphdmFzY3JpcHQuXG4gIC8vIFVzZWQgdG8gcHJvdmlkZSBtZWRpYSBxdWVyeSB2YWx1ZXMgZm9yIGphdmFzY3JpcHQgY29tcG9uZW50cy5cbiAgLy8gRm9yd2FyZCBzbGFzaCBwbGFjZWQgYXJvdW5kIGV2ZXJ5dGhpbmcgdG8gY29udmluY2UgUGhhbnRvbUpTIHRvIHJlYWQgdGhlIHZhbHVlLlxuXG4gIG1ldGEuZm91bmRhdGlvbi12ZXJzaW9uIHtcbiAgICBmb250LWZhbWlseTogXCIve3tWRVJTSU9OfX0vXCI7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtc21hbGwge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHNtYWxsLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkc21hbGwtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLW1lZGl1bSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbWVkaXVtLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1sYXJnZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbGFyZ2UtdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEteGxhcmdlIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCR4bGFyZ2UtdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXh4bGFyZ2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHh4bGFyZ2UtdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1kYXRhLWF0dHJpYnV0ZS1uYW1lc3BhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAjeyRuYW1lc3BhY2V9O1xuICB9XG5cbiAgQGlmICRpbmNsdWRlLWh0bWwtZ2xvYmFsLWNsYXNzZXMge1xuXG4gICAgLy8gTXVzdCBiZSAxMDAlIGZvciBvZmYgY2FudmFzIHRvIHdvcmtcbiAgICBodG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XG5cbiAgICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIH1cblxuICAgIGh0bWwsXG4gICAgYm9keSB7IGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplOyB9XG5cbiAgICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gICAgYm9keSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYm9keS1iZztcbiAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9keS1mb250LXdlaWdodDtcbiAgICAgIGZvbnQtc3R5bGU6ICRib2R5LWZvbnQtc3R5bGU7XG4gICAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7IC8vIFNldCB0byAkYmFzZS1saW5lLWhlaWdodCB0byB0YWtlIG9uIGJyb3dzZXIgZGVmYXVsdCBvZiAxNTAlXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItYXV0by12YWx1ZTtcbiAgICB9XG5cbiAgYTpob3ZlciB7IGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlOyB9XG5cbiAgICAvLyBHcmlkIERlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH1cblxuICAgIGltZyB7IC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxuICAgICNtYXBfY2FudmFzLFxuICAgIC5tYXBfY2FudmFzIHtcbiAgICAgIGltZyxcbiAgICAgIGVtYmVkLFxuICAgICAgb2JqZWN0IHsgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWlzY2VsbGFuZW91cyB1c2VmdWwgSFRNTCBjbGFzc2VzXG4gICAgLmxlZnQgeyBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgLnJpZ2h0IHsgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgICAuY2xlYXJmaXggeyBAaW5jbHVkZSBjbGVhcmZpeDsgfVxuXG4gICAgLy8gSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVyc1xuICAgIC5oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAvLyBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XG4gICAgLmludmlzaWJsZSB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4gICAgLy8gRm9udCBzbW9vdGhpbmdcbiAgICAvLyBBbnRpYWxpYXNlZCBmb250IHNtb290aGluZyB3b3JrcyBiZXN0IGZvciBsaWdodCB0ZXh0IG9uIGEgZGFyayBiYWNrZ3JvdW5kLlxuICAgIC8vIEFwcGx5IHRvIHNpbmdsZSBlbGVtZW50cyBpbnN0ZWFkIG9mIGdsb2JhbGx5IHRvIGJvZHkuXG4gICAgLy8gTm90ZSB0aGlzIG9ubHkgYXBwbGllcyB0byB3ZWJraXQtYmFzZWQgZGVza3RvcCBicm93c2VycyBhbmQgRmlyZWZveCAyNSAoYW5kIGxhdGVyKSBvbiB0aGUgTWFjLlxuICAgIC5hbnRpYWxpYXNlZCB7IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBHbG9iYWwgcmVzZXRzIGZvciBmb3Jtc1xuICAgIC8vXG5cbiAgICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgICB0ZXh0YXJlYSB7IGhlaWdodDogYXV0bzsgbWluLWhlaWdodDogNTBweDsgfVxuXG4gICAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gICAgc2VsZWN0IHsgd2lkdGg6IDEwMCU7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQmxvY2sgR3JpZCBWYXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWJsb2NrLWdyaWQtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuJGluY2x1ZGUteGwtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBtYXhpbXVtIG51bWJlciBvZiBibG9jayBncmlkIGVsZW1lbnRzIHBlciByb3dcbiRibG9jay1ncmlkLWVsZW1lbnRzOiAxMiAhZGVmYXVsdDtcbiRibG9jay1ncmlkLWRlZmF1bHQtc3BhY2luZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4kYWxpZ24tYmxvY2stZ3JpZC10by1ncmlkOiBmYWxzZSAhZGVmYXVsdDtcbkBpZiAkYWxpZ24tYmxvY2stZ3JpZC10by1ncmlkIHtcbiAgJGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nOiAkY29sdW1uLWd1dHRlcjtcbn1cblxuLy8gRW5hYmxlcyBtZWRpYSBxdWVyaWVzIGZvciBibG9jay1ncmlkIGNsYXNzZXMuIFNldCB0byBmYWxzZSBpZiB3cml0aW5nIHNlbWFudGljIEhUTUwuXG4kYmxvY2stZ3JpZC1tZWRpYS1xdWVyaWVzOiB0cnVlICFkZWZhdWx0O1xuXG4vL1xuLy8gQmxvY2sgR3JpZCBNaXhpbnNcbi8vXG5cbi8vIENyZWF0ZSBhIGN1c3RvbSBibG9jayBncmlkXG4vL1xuLy8gJHBlci1yb3cgLSAjIG9mIGl0ZW1zIHRvIGRpc3BsYXkgcGVyIHJvdy4gRGVmYXVsdDogZmFsc2UuXG4vLyAkc3BhY2luZyAtICMgb2YgZW1zIHRvIHVzZSBhcyBwYWRkaW5nIG9uIGVhY2ggYmxvY2sgaXRlbS4gRGVmYXVsdDogcmVtLWNhbGMoMjApLlxuLy8gJGJhc2Utc3R5bGUgLSBBcHBseSBhIGJhc2Ugc3R5bGUgdG8gYmxvY2sgZ3JpZC4gRGVmYXVsdDogdHJ1ZS5cbkBtaXhpbiBibG9jay1ncmlkKFxuICAkcGVyLXJvdzpmYWxzZSxcbiAgJHNwYWNpbmc6JGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nLFxuICAkaW5jbHVkZS1zcGFjaW5nOnRydWUsXG4gICRiYXNlLXN0eWxlOnRydWUpIHtcblxuICBAaWYgJGJhc2Utc3R5bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luOiAwICgtJHNwYWNpbmcvMik7XG4gICAgfVxuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gICAgJj5saSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgIEBpZiAkaW5jbHVkZS1zcGFjaW5nIHtcbiAgICAgICAgcGFkZGluZzogMCAoJHNwYWNpbmcvMikgJHNwYWNpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRwZXItcm93IHtcbiAgICAmPmxpIHtcbiAgICAgIHdpZHRoOiAxMDAlLyRwZXItcm93O1xuICAgICAgQGlmICRpbmNsdWRlLXNwYWNpbmcge1xuICAgICAgICBwYWRkaW5nOiAwICgkc3BhY2luZy8yKSAkc3BhY2luZztcbiAgICAgIH1cbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICY6bnRoLW9mLXR5cGUoMW4pIHsgY2xlYXI6IG5vbmU7IH1cbiAgICAgICY6bnRoLW9mLXR5cGUoI3skcGVyLXJvd31uKzEpIHsgY2xlYXI6IGJvdGg7IH1cbiAgICAgIEBpZiAkYWxpZ24tYmxvY2stZ3JpZC10by1ncmlkIHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1hbGlnbmVkKCRwZXItcm93LCAkc3BhY2luZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBibG9jay1ncmlkLWFsaWduZWQoJHBlci1yb3csICRzcGFjaW5nKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtZWxlbWVudHMge1xuICAgIEBpZiAkcGVyLXJvdyA+PSAkaSB7XG4gICAgICAkZ3JpZC1jb2x1bW46ICcrJyArICRpO1xuICAgICAgQGlmICRwZXItcm93ID09ICRpIHtcbiAgICAgICAgJGdyaWQtY29sdW1uOiAnJztcbiAgICAgIH1cbiAgICAgICY6bnRoLW9mLXR5cGUoI3skcGVyLXJvd31uI3t1bnF1b3RlKCRncmlkLWNvbHVtbil9KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogKCRzcGFjaW5nIC0gKCgkc3BhY2luZyAvICRwZXItcm93KSAqICgkcGVyLXJvdyAtICgkaSAtIDEpKSkpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAoJHNwYWNpbmcgLSAoKCRzcGFjaW5nIC8gJHBlci1yb3cpICogJGkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gR2VuZXJhdGUgcHJlc2VudGF0aW9uYWwgbWFya3VwIGZvciBibG9jayBncmlkLlxuLy9cbi8vICRzaXplIC0gTmFtZSBvZiBjbGFzcyB0byB1c2UsIGkuZS4gXCJsYXJnZVwiIHdpbGwgZ2VuZXJhdGUgLmxhcmdlLWJsb2NrLWdyaWQtMSwgLmxhcmdlLWJsb2NrLWdyaWQtMiwgZXRjLlxuQG1peGluIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplLCRpbmNsdWRlLXNwYWNpbmcpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1lbGVtZW50cyB7XG4gICAgLiN7JHNpemV9LWJsb2NrLWdyaWQtI3soJGkpfSB7XG4gICAgICBAaW5jbHVkZSBibG9jay1ncmlkKCRpLCRibG9jay1ncmlkLWRlZmF1bHQtc3BhY2luZywkaW5jbHVkZS1zcGFjaW5nLGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImJsb2NrLWdyaWRcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXMge1xuXG4gICAgW2NsYXNzKj1cImJsb2NrLWdyaWQtXCJdIHsgQGluY2x1ZGUgYmxvY2stZ3JpZDsgfVxuXG4gICAgQGlmICRibG9jay1ncmlkLW1lZGlhLXF1ZXJpZXMge1xuICAgICAgQG1lZGlhICN7JHNtYWxsLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnNtYWxsLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOm1lZGl1bSwkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOmxhcmdlLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJGluY2x1ZGUteGwtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXMge1xuICAgICAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eGxhcmdlLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICN7JHh4bGFyZ2UtdXB9IHtcbiAgICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4eGxhcmdlLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBGb3VuZGF0aW9uIFZpc2liaWxpdHkgQ2xhc3Nlc1xuLy9cbiRpbmNsdWRlLWh0bWwtdmlzaWJpbGl0eS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS1hY2Nlc3NpYmlsaXR5LWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS10YWJsZS12aXNpYmlsaXR5LWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuXG4vL1xuLy8gTWVkaWEgQ2xhc3MgTmFtZXNcbi8vXG4vLyBWaXNpYmlsaXR5IEJyZWFrcG9pbnRzXG4kdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzOlxuICBzbWFsbCxcbiAgbWVkaXVtLFxuICBsYXJnZSxcbiAgeGxhcmdlLFxuICB4eGxhcmdlO1xuXG4kdmlzaWJpbGl0eS1icmVha3BvaW50LXF1ZXJpZXM6XG4gIHVucXVvdGUoJHNtYWxsLXVwKSxcbiAgdW5xdW90ZSgkbWVkaXVtLXVwKSxcbiAgdW5xdW90ZSgkbGFyZ2UtdXApLFxuICB1bnF1b3RlKCR4bGFyZ2UtdXApLFxuICB1bnF1b3RlKCR4eGxhcmdlLXVwKTtcblxuQG1peGluIHZpc2liaWxpdHktbG9vcCB7XG4gIEBlYWNoICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCBpbiAkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzIHtcbiAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogKCk7XG5cbiAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiAoKTtcblxuICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogKCk7XG5cbiAgICBAZWFjaCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQgaW4gJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcyB7XG4gICAgICBAaWYgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSA8IGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCkge1xuICAgICAgICAvLyBTbWFsbGVyIHRoYW4gY3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICB9IEBlbHNlIGlmIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgPiBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgLy8gTGFyZ2VyIHRoYW4gY3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gQ3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qICN7JGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50fSBkaXNwbGF5cyAqL1xuICAgIEBtZWRpYSAje250aCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXF1ZXJpZXMsIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCkpfSB7XG4gICAgICAjeyR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdH0ge1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAjeyR2aXNpYmlsaXR5LW5vbmUtbGlzdH0ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBAaWYgJGluY2x1ZGUtYWNjZXNzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcbiAgICAgICAgI3skdmlzaWJpbGl0eS12aXNpYmxlLWxpc3R9IHtcbiAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS1oaWRkZW4tbGlzdH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaWYgJGluY2x1ZGUtdGFibGUtdmlzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtcm93LWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbkBpZiAkaW5jbHVkZS1odG1sLXZpc2liaWxpdHktY2xhc3NlcyAhPSBmYWxzZSB7XG5cbiAgQGluY2x1ZGUgdmlzaWJpbGl0eS1sb29wO1xuXG4gIC8qIE9yaWVudGF0aW9uIHRhcmdldGluZyAqL1xuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gIHRhYmxlIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB9XG4gIHRoZWFkIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0Ym9keSB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdHIge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB9XG4gIHRkLFxuICB0aCB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB9XG5cbiAgQG1lZGlhICN7JGxhbmRzY2FwZX0ge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICAgIHRhYmxlIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGhlYWQge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGJvZHkge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdHIge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGQsXG4gICAgdGgge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhICN7JHBvcnRyYWl0fSB7XG4gICAgLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQsXG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gICAgdGFibGUge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0aGVhZCB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0Ym9keSB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ciB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICAvKiBUb3VjaC1lbmFibGVkIGRldmljZSB0YXJnZXRpbmcgKi9cbiAgLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAudG91Y2ggLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCAuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgdGFibGUuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0YWJsZS5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGhlYWQuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0Ym9keS5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0Ym9keS5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRyLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRkLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0aC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG5cbiAgLyogUHJpbnQgdmlzaWJpbGl0eSAqL1xuICBAbWVkaWEgcHJpbnQge1xuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gIH1cblxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImdyaWRcIjtcblxuLy9cbi8vIEBuYW1lIF9yZXZlYWwuc2Nzc1xuLy8gQGRlcGVuZGVuY2llcyBfZ2xvYmFsLnNjc3Ncbi8vXG5cbiRpbmNsdWRlLWh0bWwtcmV2ZWFsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHN0eWxlIG9mIHRoZSByZXZlYWwgb3ZlcmxheS5cbiRyZXZlYWwtb3ZlcmxheS1iZzogcmdiYSgkYmxhY2ssIC40NSkgIWRlZmF1bHQ7XG4kcmV2ZWFsLW92ZXJsYXktYmctb2xkOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBzdHlsZSBvZiB0aGUgbW9kYWwgaXRzZWxmLlxuJHJldmVhbC1tb2RhbC1iZzogJHdoaXRlICFkZWZhdWx0O1xuJHJldmVhbC1wb3NpdGlvbi10b3A6IHJlbS1jYWxjKDEwMCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWRlZmF1bHQtd2lkdGg6IDgwJSAhZGVmYXVsdDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkcm93LXdpZHRoICFkZWZhdWx0O1xuJHJldmVhbC1tb2RhbC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLC40KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSByZXZlYWwgY2xvc2UgYnV0dG9uXG4kcmV2ZWFsLWNsb3NlLWZvbnQtc2l6ZTogcmVtLWNhbGMoNDApICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS10b3A6IHJlbS1jYWxjKDgpICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS1zaWRlOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWNsb3NlLWNvbG9yOiAkYmFzZSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2Utd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBkZWZhdWx0IHJhZGl1cyB1c2VkIHRocm91Z2hvdXQgdGhlIGNvcmUuXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG4kcmV2ZWFsLXJvdW5kOiAkZ2xvYmFsLXJvdW5kZWQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBtb2RhbCBib3JkZXJcbiRyZXZlYWwtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRyZXZlYWwtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kcmV2ZWFsLWJvcmRlci1jb2xvcjogJHN0ZWVsICFkZWZhdWx0O1xuXG4kcmV2ZWFsLW1vZGFsLWNsYXNzOiBcInJldmVhbC1tb2RhbFwiICFkZWZhdWx0O1xuJGNsb3NlLXJldmVhbC1tb2RhbC1jbGFzczogXCJjbG9zZS1yZXZlYWwtbW9kYWxcIiAhZGVmYXVsdDtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgcmV2ZWFsIGJhY2tncm91bmQgb3ZlcmxheSBzdHlsZXNcbkBtaXhpbiByZXZlYWwtYmcoICRpbmNsdWRlLXotaW5kZXgtdmFsdWU6IHRydWUgKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmctb2xkOyAvLyBBdXRvcHJlZml4ZXIgc2hvdWxkIGJlIHVzZWQgdG8gYXZvaWQgc3VjaCB2YXJpYWJsZXMgbmVlZGVkIHdoZW4gRm91bmRhdGlvbiBmb3IgU2l0ZXMgY2FuIGRvIHNvIGluIHRoZSBuZWFyIGZ1dHVyZS5cbiAgYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJnO1xuICB6LWluZGV4OiBpZiggJGluY2x1ZGUtei1pbmRleC12YWx1ZSwgMTAwNCwgYXV0byApO1xuICBkaXNwbGF5OiBub25lO1xuICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHRoZSBzdHJ1Y3R1cmUgb2YgYSByZXZlYWwgbW9kYWxcbi8vXG4vLyAkYmFzZS1zdHlsZSAtIFByb3ZpZGVzIHJldmVhbCBiYXNlIHN0eWxlcywgY2FuIGJlIHNldCB0byBmYWxzZSB0byBvdmVycmlkZS4gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2Vcbi8vICR3aWR0aCAtIFNldHMgcmV2ZWFsIHdpZHRoIERlZmF1bHQ6ICRyZXZlYWwtZGVmYXVsdC13aWR0aCB8fCA4MCVcbi8vXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2UoICRiYXNlLXN0eWxlOiB0cnVlLCAkd2lkdGg6JHJldmVhbC1kZWZhdWx0LXdpZHRoLCAkbWF4LXdpZHRoOiRyZXZlYWwtbWF4LXdpZHRoLCAkYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXMpIHtcbiAgQGlmICRiYXNlLXN0eWxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTAwNTtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgdG9wOjA7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG5cbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgbWluLWhlaWdodDoxMDB2aDtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cbiAgICAuY29sdW1uLCAuY29sdW1ucyB7IG1pbi13aWR0aDogMDsgfVxuXG4gICAgLy8gR2V0IHJpZCBvZiBtYXJnaW4gZnJvbSBmaXJzdCBhbmQgbGFzdCBlbGVtZW50IGluc2lkZSBtb2RhbFxuICAgICYgPiA6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbiAgICAmID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIH1cblxuICBAaWYgJHdpZHRoIHtcbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSByZXZlYWwgbW9kYWwgZGVmYXVsdHNcbi8vXG4vLyAkYmcgLSBTZXRzIGJhY2tncm91bmQgY29sb3Igb2YgcmV2ZWFsIG1vZGFsLiBEZWZhdWx0OiAkcmV2ZWFsLW1vZGFsLWJnIHx8ICR3aGl0ZVxuLy8gJHBhZGRpbmcgLSBQYWRkaW5nIHRvIGFwcGx5IHRvIHJldmVhbCBtb2RhbC4gRGVmYXVsdDogJHJldmVhbC1tb2RhbC1wYWRkaW5nLlxuLy8gJGJvcmRlciAtIENob29zZSB3aGV0aGVyIHJldmVhbCB1c2VzIGEgYm9yZGVyLiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJGJvcmRlci1zdHlsZSAtIFNldCByZXZlYWwgYm9yZGVyIHN0eWxlLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci1zdHlsZSB8fCBzb2xpZFxuLy8gJGJvcmRlci13aWR0aCAtIFdpZHRoIG9mIGJvcmRlciAoaS5lLiAxcHgpLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci13aWR0aC5cbi8vICRib3JkZXItY29sb3IgLSBDb2xvciBvZiBib3JkZXIuIERlZmF1bHQ6ICRyZXZlYWwtYm9yZGVyLWNvbG9yLlxuLy8gJGJveC1zaGFkb3cgLSBDaG9vc2Ugd2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0aGUgZGVmYXVsdCBib3gtc2hhZG93LiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBtb2RhbCByYWRpdXMgd2hpY2ggaXMgJGdsb2JhbC1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6IGZhbHNlXG4vLyAkdG9wLW9mZnNldCAtIERlZmF1bHQ6ICRyZXZlYWwtcG9zaXRpb24tdG9wIHx8IDUwcHhcbkBtaXhpbiByZXZlYWwtbW9kYWwtc3R5bGUoXG4gICRiZzpmYWxzZSxcbiAgJHBhZGRpbmc6ZmFsc2UsXG4gICRib3JkZXI6ZmFsc2UsXG4gICRib3JkZXItc3R5bGU6JHJldmVhbC1ib3JkZXItc3R5bGUsXG4gICRib3JkZXItd2lkdGg6JHJldmVhbC1ib3JkZXItd2lkdGgsXG4gICRib3JkZXItY29sb3I6JHJldmVhbC1ib3JkZXItY29sb3IsXG4gICRib3gtc2hhZG93OmZhbHNlLFxuICAkcmFkaXVzOmZhbHNlLFxuICAkdG9wLW9mZnNldDpmYWxzZSkge1xuXG4gIEBpZiAkYmcgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7IH1cbiAgQGlmICRwYWRkaW5nICE9IGZhbHNlIHsgcGFkZGluZzogJHBhZGRpbmc7IH1cblxuICBAaWYgJGJvcmRlciB7IGJvcmRlcjogJGJvcmRlci1zdHlsZSAkYm9yZGVyLXdpZHRoICRib3JkZXItY29sb3I7IH1cblxuICAvLyBXZSBjYW4gY2hvb3NlIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGRlZmF1bHQgYm94LXNoYWRvdy5cbiAgQGlmICRib3gtc2hhZG93IHtcbiAgICBib3gtc2hhZG93OiAkcmV2ZWFsLWJveC1zaGFkb3c7XG4gIH1cblxuICAvLyBXZSBjYW4gY29udHJvbCBob3cgbXVjaCByYWRpdXMgaXMgdXNlZCBvbiB0aGUgbW9kYWxcbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkcmV2ZWFsLXJhZGl1cyk7IH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxuXG4gIEBpZiAkdG9wLW9mZnNldCB7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgdG9wOiAkdG9wLW9mZnNldDtcbiAgICB9XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGEgY2xvc2UgYnV0dG9uIGZvciB0aGUgcmV2ZWFsIG1vZGFsXG4vL1xuLy8gJGNvbG9yIC0gRGVmYXVsdDogJHJldmVhbC1jbG9zZS1jb2xvciB8fCAkYmFzZVxuQG1peGluIHJldmVhbC1jbG9zZSgkY29sb3I6JHJldmVhbC1jbG9zZS1jb2xvcikge1xuICBmb250LXNpemU6ICRyZXZlYWwtY2xvc2UtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICRyZXZlYWwtY2xvc2UtdG9wO1xuICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkcmV2ZWFsLWNsb3NlLXNpZGU7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiAkcmV2ZWFsLWNsb3NlLXdlaWdodDtcbiAgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJyZXZlYWxcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1yZXZlYWwtY2xhc3NlcyB7XG5cbiAgICAvLyBSZXZlYWwgTW9kYWxzXG4gICAgLnJldmVhbC1tb2RhbC1iZyB7IEBpbmNsdWRlIHJldmVhbC1iZzsgfVxuXG4gICAgLiN7JHJldmVhbC1tb2RhbC1jbGFzc30ge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoXG4gICAgICAgICRiZzokcmV2ZWFsLW1vZGFsLWJnLFxuICAgICAgICAkcGFkZGluZzokcmV2ZWFsLW1vZGFsLXBhZGRpbmcsXG4gICAgICAgICRib3JkZXI6dHJ1ZSxcbiAgICAgICAgJGJveC1zaGFkb3c6dHJ1ZSxcbiAgICAgICAgJHJhZGl1czpmYWxzZSxcbiAgICAgICAgJHRvcC1vZmZzZXQ6JHJldmVhbC1wb3NpdGlvbi10b3BcbiAgICAgICk7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHBhZGRpbmc6JHJldmVhbC1tb2RhbC1wYWRkaW5nICogMS41KTtcblxuICAgICAgJi5yYWRpdXMgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHJhZGl1czp0cnVlKTsgfVxuICAgICAgJi5yb3VuZCAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHJhZGl1czokcmV2ZWFsLXJvdW5kKTsgfVxuICAgICAgJi5jb2xsYXBzZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1zdHlsZSgkcGFkZGluZzowKTsgfVxuICAgICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCAzMCUpOyB9XG4gICAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDQwJSk7IH1cbiAgICAgICYubWVkaXVtICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA2MCUpOyB9XG4gICAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDcwJSk7IH1cbiAgICAgICYueGxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDk1JSk7IH1cbiAgICAgICYuZnVsbCB7XG4gICAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCAxMDB2dyk7XG4gICAgICAgIHRvcDowO1xuICAgICAgICBsZWZ0OjA7XG4gICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICBtaW4taGVpZ2h0OjEwMHZoO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgLiN7JGNsb3NlLXJldmVhbC1tb2RhbC1jbGFzc30geyBAaW5jbHVkZSByZXZlYWwtY2xvc2U7IH1cbiAgICB9XG5cbiAgICBkaWFsb2cge1xuICAgICAgQGV4dGVuZCAuI3skcmV2ZWFsLW1vZGFsLWNsYXNzfTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6OmJhY2tkcm9wLCAmICsgLmJhY2tkcm9wIHtcbiAgICAgICAgQGluY2x1ZGUgcmV2ZWFsLWJnKGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgJltvcGVuXXtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV2ZWFsIFByaW50IFN0eWxlczogSXQgc2hvdWxkIGJlIGludmlzaWJsZSwgYWRkcyBubyB2YWx1ZSBiZWluZyBwcmludGVkLlxuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICBkaWFsb2csIC4jeyRyZXZlYWwtbW9kYWwtY2xhc3N9IHsgXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImJ1dHRvbnNcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWZvcm0tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGJhc2UgZm9yIGxvdHMgb2YgZm9ybSBzcGFjaW5nIGFuZCBwb3NpdGlvbmluZyBzdHlsZXNcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsYWJlbHMgaW4gZGlmZmVyZW50IHdheXNcbiRmb3JtLWxhYmVsLXBvaW50ZXI6IHBvaW50ZXIgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRibGFjaywgJGxpZ2h0bmVzczogMzAlKSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWJvdHRvbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1jb2xvcjogcmdiYSgwLDAsMCwwLjc1KSAhZGVmYXVsdDtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRpbnB1dC1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJnLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yJSkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNDAlKSAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJGlucHV0LWRpc2FibGVkLWJnOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGlucHV0LWRpc2FibGVkLWN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlICFkZWZhdWx0O1xuJGlucHV0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMSkgIWRlZmF1bHQ7XG4kaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBmaWVsZHNldCBib3JkZXIgYW5kIHNwYWNpbmcuXG4kZmllbGRzZXQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRmaWVsZHNldC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRmaWVsZHNldC1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgbGVnZW5kcyB3aGVuIHlvdSB1c2UgdGhlbVxuJGxlZ2VuZC1iZzogJHdoaXRlICFkZWZhdWx0O1xuJGxlZ2VuZC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgcHJlZml4IGFuZCBwb3N0Zml4IGlucHV0IGVsZW1lbnRzXG4kaW5wdXQtcHJlZml4LWJnOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSkgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMjAlKSAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyLXR5cGU6IHNvbGlkICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1vdmVyZmxvdzogaGlkZGVuICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1mb250LWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyBzZXR0aW5nIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVycyAodGhlIHVwL2Rvd24gYXJyb3dzKVxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBlcnJvciBzdGF0ZXMgZm9yIGlucHV0cyBhbmQgbGFiZWxzXG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1wYWRkaW5nOiByZW0tY2FsYyg2IDkgOSkgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS10b3A6IC0xcHggIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvci1hbHQ6ICRvaWwgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSBnbG93aW5nIGVmZmVjdCBvZiBpbnB1dHMgd2hlbiBmb2N1c2VkXG4kZ2xvd2luZy1lZmZlY3QtZmFkZS10aW1lOiAwLjQ1cyAhZGVmYXVsdDtcbiRnbG93aW5nLWVmZmVjdC1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuLy8gU2VsZWN0IHZhcmlhYmxlc1xuJHNlbGVjdC1iZy1jb2xvcjogJGdob3N0ICFkZWZhdWx0O1xuJHNlbGVjdC1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHNlbGVjdC1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTMlKSAhZGVmYXVsdDtcblxuLy9cbi8vIEBNSVhJTlNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGdpdmUgdXMgZm9ybSBzdHlsZXMgZm9yIHJvd3MgaW5zaWRlIG9mIGZvcm1zXG5AbWl4aW4gZm9ybS1yb3ctYmFzZSB7XG4gIC5yb3cgeyBtYXJnaW46IDAgKCgtJGZvcm0tc3BhY2luZykgLyAyKTtcblxuICAgIC5jb2x1bW4sXG4gICAgLmNvbHVtbnMgeyBwYWRkaW5nOiAwICRmb3JtLXNwYWNpbmcgLyAyOyB9XG5cbiAgICAvLyBVc2UgdGhpcyB0byBjb2xsYXBzZSB0aGUgbWFyZ2lucyBvZiBhIGZvcm0gcm93XG4gICAgJi5jb2xsYXBzZSB7IG1hcmdpbjogMDtcblxuICAgICAgLmNvbHVtbixcbiAgICAgIC5jb2x1bW5zIHsgcGFkZGluZzogMDsgfVxuICAgICAgaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAwKTtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuICBpbnB1dC5jb2x1bW4sXG4gIGlucHV0LmNvbHVtbnMsXG4gIHRleHRhcmVhLmNvbHVtbixcbiAgdGV4dGFyZWEuY29sdW1ucyB7IHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICRmb3JtLXNwYWNpbmcgLyAyOyB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGdpdmUgYWxsIGJhc2ljIGZvcm0gZWxlbWVudHMgdGhlaXIgc3R5bGVcbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmctY29sb3I7XG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGJvcmRlcjoge1xuICAgIHN0eWxlOiAkaW5wdXQtYm9yZGVyLXN0eWxlO1xuICAgIHdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoO1xuICAgIGNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICB9XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1ib3gtc2hhZG93O1xuICBjb2xvcjogJGlucHV0LWZvbnQtY29sb3I7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmcgMDtcbiAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4gIGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICBAaWYgJGlucHV0LWluY2x1ZGUtZ2xvd2luZy1lZmZlY3Qge1xuICAgIEBpbmNsdWRlIGJsb2NrLWdsb3dpbmctZWZmZWN0KGZvY3VzLCAkZ2xvd2luZy1lZmZlY3QtZmFkZS10aW1lLCAkZ2xvd2luZy1lZmZlY3QtY29sb3IpO1xuICB9XG4gIC8vIEJhc2ljIGZvY3VzIHN0eWxlc1xuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtZm9jdXMtYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbiAgLy8gRGlzYmFsZWQgU3R5bGVzXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1iZztcbiAgICBjdXJzb3I6ICRpbnB1dC1kaXNhYmxlZC1jdXJzb3I7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBiYWNrZ3JvdW5kIGlucHV0IGJhY2tncm91bmQgY29sb3JcbiAgJltkaXNhYmxlZF0sXG4gICZbcmVhZG9ubHldLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWRpc2FibGVkLWJnO1xuICAgIGN1cnNvcjogJGlucHV0LWRpc2FibGVkLWN1cnNvcjtcbiAgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgZm9ybSBsYWJlbHNcbi8vXG4vLyAkYWxpZ25tZW50IC0gQWxpZ25tZW50IG9wdGlvbnMuIERlZmF1bHQ6IGZhbHNlLiBPcHRpb25zOiBbcmlnaHQsIGlubGluZSwgZmFsc2VdXG4vLyAkYmFzZS1zdHlsZSAtIENvbnRyb2wgd2hldGhlciBvciBub3QgdGhlIGJhc2Ugc3R5bGVzIGNvbWUgdGhyb3VnaC4gRGVmYXVsdDogdHJ1ZS5cbkBtaXhpbiBmb3JtLWxhYmVsKCRhbGlnbm1lbnQ6ZmFsc2UsICRiYXNlLXN0eWxlOnRydWUpIHtcblxuICAvLyBDb250cm9sIHdoZXRoZXIgb3Igbm90IHRoZSBiYXNlIHN0eWxlcyBjb21lIHRocm91Z2guXG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gICAgY29sb3I6ICRmb3JtLWxhYmVsLWZvbnQtY29sb3I7XG4gICAgY3Vyc29yOiAkZm9ybS1sYWJlbC1wb2ludGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tbGFiZWwtYm90dG9tLW1hcmdpbjtcbiAgfVxuXG4gIC8vIEFsaWdubWVudCBvcHRpb25zXG4gIEBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gaW5saW5lIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gICAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSAwO1xuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwb3N0Zml4L3ByZWZpeCBmb3JtIExhYmVsc1xuQG1peGluIHByZWZpeC1wb3N0Zml4LWJhc2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGJvcmRlci1zdHlsZTogJGlucHV0LXByZWZpeC1ib3JkZXItdHlwZTtcbiAgYm9yZGVyLXdpZHRoOiAkaW5wdXQtcHJlZml4LWJvcmRlci1zaXplO1xuICBvdmVyZmxvdzogJGlucHV0LXByZWZpeC1vdmVyZmxvdztcbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG4gIGxpbmUtaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHByZWZpeCBsYWJlbCBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6JGlucHV0LXByZWZpeC1iZyB8fCBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSkgIWRlZmF1bHQ7XG4vLyAkaXMtYnV0dG9uIC0gVG9nZ2xlIHBvc2l0aW9uIHNldHRpbmdzIGlmIHByZWZpeCBpcyBhIGJ1dHRvbi4gRGVmYXVsdDpmYWxzZVxuLy9cbkBtaXhpbiBwcmVmaXgoJGJnOiRpbnB1dC1wcmVmaXgtYmcsICRib3JkZXI6JGlucHV0LXByZWZpeC1ib3JkZXItY29sb3IsICRpcy1idXR0b246ZmFsc2UpIHtcblxuICBAaWYgJGJnIHtcbiAgICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgICBiYWNrZ3JvdW5kOiAkYmc7XG4gICAgYm9yZGVyLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IG5vbmU7XG5cbiAgICAvLyBDb250cm9sIHRoZSBmb250IGNvbG9yIGJhc2VkIG9uIGJhY2tncm91bmQgYnJpZ2h0bmVzc1xuICAgIEBpZiAkYmctbGlnaHRuZXNzID4gNzAlIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yOyB9XG4gICAgQGVsc2UgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDsgfVxuICB9XG5cbiAgQGlmICRib3JkZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgfVxuXG4gIEBpZiAkaXMtYnV0dG9uIHtcbiAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM0KTtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcG9zdGZpeCBsYWJlbCBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6JGlucHV0LXByZWZpeC1iZyB8fCBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSkgIWRlZmF1bHQ7XG4vLyAkaXMtYnV0dG9uIC0gVG9nZ2xlIHBvc2l0aW9uIHNldHRpbmdzIGlmIHByZWZpeCBpcyBhIGJ1dHRvbi4gRGVmYXVsdDogZmFsc2VcbkBtaXhpbiBwb3N0Zml4KCRiZzokaW5wdXQtcHJlZml4LWJnLCAkYm9yZGVyOiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yLCAkaXMtYnV0dG9uOmZhbHNlKSB7XG5cbiAgQGlmICRiZyB7XG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIGJvcmRlci0jeyRkZWZhdWx0LWZsb2F0fTogbm9uZTtcblxuICAgIC8vIENvbnRyb2wgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gYmFja2dyb3VuZCBicmlnaHRuZXNzXG4gICAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yOyB9XG4gICAgQGVsc2UgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDsgfVxuICB9XG5cbiAgQGlmICRib3JkZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgfVxuXG4gIEBpZiAkaXMtYnV0dG9uIHtcbiAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM0KTtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBzdHlsZSBmaWVsZHNldHNcbkBtaXhpbiBmaWVsZHNldCB7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlci13aWR0aCAkZmllbGRzZXQtYm9yZGVyLXN0eWxlICRmaWVsZHNldC1ib3JkZXItY29sb3I7XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG5cbiAgLy8gYW5kIGxlZ2VuZCBzdHlsZXNcbiAgbGVnZW5kIHtcbiAgICBmb250LXdlaWdodDogJGxlZ2VuZC1mb250LXdlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkbGVnZW5kLWJnO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiByZW0tY2FsYygtMyk7XG4gIH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY29udHJvbCBib3JkZXIgYW5kIGJhY2tncm91bmQgY29sb3Igb2YgZXJyb3IgaW5wdXRzXG4vLyAkY29sb3IgLSBEZWZhdWx0OiAkYWxlcnQtY29sb3IgKGZvdW5kIGluIHNldHRpbmdzIGZpbGUpXG5AbWl4aW4gZm9ybS1lcnJvci1jb2xvcigkY29sb3I6JGFsZXJ0LWNvbG9yKSB7XG4gIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgMC4xKTtcblxuICAvLyBHbyBiYWNrIHRvIG5vcm1hbCBvbiBmb2N1c1xuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtZm9jdXMtYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIHNpbXBsZSBtaXhpbiB0byBzdHlsZSBsYWJlbHMgZm9yIGVycm9yIGlucHV0c1xuLy8gJGNvbG9yIC0gRGVmYXVsdDokYWxlcnQtY29sb3IuIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbkBtaXhpbiBmb3JtLWxhYmVsLWVycm9yLWNvbG9yKCRjb2xvcjokYWxlcnQtY29sb3IpIHsgY29sb3I6ICRjb2xvcjsgfVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgZXJyb3IgbWVzc2FnZSBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6ICRhbGVydC1jb2xvciAoRm91bmQgaW4gc2V0dGluZ3MgZmlsZSlcbkBtaXhpbiBmb3JtLWVycm9yLW1lc3NhZ2UoJGJnOiRhbGVydC1jb2xvcikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGlucHV0LWVycm9yLW1lc3NhZ2UtcGFkZGluZztcbiAgbWFyZ2luLXRvcDogJGlucHV0LWVycm9yLW1lc3NhZ2UtdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0O1xuICBmb250LXN0eWxlOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXN0eWxlO1xuXG4gIC8vIFdlIGNhbiBjb250cm9sIHRoZSB0ZXh0IGNvbG9yIGJhc2VkIG9uIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBiYWNrZ3JvdW5kLlxuICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgYmFja2dyb3VuZDogJGJnO1xuICBAaWYgJGJnLWxpZ2h0bmVzcyA8IDcwJSBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3I7IH1cbiAgQGVsc2UgeyBjb2xvcjogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvci1hbHQ7IH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc3R5bGUgc2VsZWN0IGVsZW1lbnRzXG5AbWl4aW4gZm9ybS1zZWxlY3QgIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJnLWNvbG9yO1xuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBUaGUgY3VzdG9tIGFycm93IGhhdmUgc29tZSBmYWtlIGhvcml6b250YWwgcGFkZGluZyBzbyB3ZSBjYW4gYWxpZ24gaXRcbiAgLy8gZnJvbSB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZWxlbWVudCB3aXRob3V0IHJlbHlpbmcgb24gQ1NTM1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhabGNuTnBiMjQ5SWpFdU1TSWdlRDBpTVRKd2VDSWdlVDBpTUhCNElpQjNhV1IwYUQwaU1qUndlQ0lnYUdWcFoyaDBQU0l6Y0hnaUlIWnBaWGRDYjNnOUlqQWdNQ0EySURNaUlHVnVZV0pzWlMxaVlXTnJaM0p2ZFc1a1BTSnVaWGNnTUNBd0lEWWdNeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK1BIQnZiSGxuYjI0Z2NHOXBiblJ6UFNJMUxqazVNaXd3SURJdU9Ua3lMRE1nTFRBdU1EQTRMREFnSWk4K1BDOXpkbWMrKTtcblxuICAvLyBXZSBjYW4gc2FmZWx5IHVzZSBsZWZ0bW9zdCBhbmQgcmlnaHRtb3N0IG5vd1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcsIDAlLCAxMDAlKSBjZW50ZXI7XG5cbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYm9yZGVyOiB7XG4gICAgc3R5bGU6ICRpbnB1dC1ib3JkZXItc3R5bGU7XG4gICAgd2lkdGg6ICRpbnB1dC1ib3JkZXItd2lkdGg7XG4gICAgY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gIH1cbiAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICBjb2xvcjogJGlucHV0LWZvbnQtY29sb3I7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIEBpbmNsdWRlIHJhZGl1cygwKTtcbiAgJi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJGdsb2JhbC1yYWRpdXMpOyB9XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaG92ZXItYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG4gIC8vIERpc2FibGVkIFN0eWxlc1xuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVyc1xuQG1peGluIGh0bWw1bnVtYmVyKCRicm93c2VyLCAkb246dHJ1ZSkge1xuICBAaWYgJG9uPT1mYWxzZSB7XG4gICAgICBAaWYgJGJyb3dzZXI9PXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfSBAZWxzZSBpZiAkYnJvd3Nlcj09bW96IHtcbiAgICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImZvcm1cIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXMge1xuICAgIC8qIFN0YW5kYXJkIEZvcm1zICovXG4gICAgZm9ybSB7IG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7IH1cblxuICAgIC8qIFVzaW5nIGZvcm1zIHdpdGhpbiByb3dzLCB3ZSBuZWVkIHRvIHNldCBzb21lIGRlZmF1bHRzICovXG4gICAgZm9ybSAucm93IHsgQGluY2x1ZGUgZm9ybS1yb3ctYmFzZTsgfVxuXG4gICAgLyogTGFiZWwgU3R5bGVzICovXG4gICAgbGFiZWwgeyBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuICAgICAgJi5yaWdodCB7IEBpbmNsdWRlIGZvcm0tbGFiZWwocmlnaHQsZmFsc2UpOyB9XG4gICAgICAmLmlubGluZSB7IEBpbmNsdWRlIGZvcm0tbGFiZWwoaW5saW5lLGZhbHNlKTsgfVxuICAgICAgLyogU3R5bGVzIGZvciByZXF1aXJlZCBpbnB1dHMgKi9cbiAgICAgIHNtYWxsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTtcbiAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRmb3JtLWxhYmVsLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDE1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQXR0YWNoIGVsZW1lbnRzIHRvIHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIGFuIGlucHV0ICovXG4gICAgLnByZWZpeCxcbiAgICAucG9zdGZpeCB7IEBpbmNsdWRlIHByZWZpeC1wb3N0Zml4LWJhc2U7IH1cblxuICAgIC8qIEFkanVzdCBwYWRkaW5nLCBhbGlnbm1lbnQgYW5kIHJhZGl1cyBpZiBwcmUvcG9zdCBlbGVtZW50IGlzIGEgYnV0dG9uICovXG4gICAgLnBvc3RmaXguYnV0dG9uIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoZmFsc2UsZmFsc2UpOyBAaW5jbHVkZSBwb3N0Zml4KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IH1cbiAgICAucHJlZml4LmJ1dHRvbiB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKGZhbHNlLGZhbHNlKTsgQGluY2x1ZGUgcHJlZml4KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IH1cblxuICAgIC5wcmVmaXguYnV0dG9uLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTsgfVxuICAgIC5wb3N0Zml4LmJ1dHRvbi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgIC5wcmVmaXguYnV0dG9uLnJvdW5kIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAucG9zdGZpeC5idXR0b24ucm91bmQgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XG5cbiAgICAvKiBTZXBhcmF0ZSBwcmVmaXggYW5kIHBvc3RmaXggc3R5bGVzIHdoZW4gb24gc3BhbiBvciBsYWJlbCBzbyBidXR0b25zIGtlZXAgdGhlaXIgb3duICovXG4gICAgc3Bhbi5wcmVmaXgsbGFiZWwucHJlZml4IHsgQGluY2x1ZGUgcHJlZml4KCk7IH1cbiAgICBzcGFuLnBvc3RmaXgsbGFiZWwucG9zdGZpeCB7IEBpbmNsdWRlIHBvc3RmaXgoKTsgfVxuXG4gICAgLyogV2UgdXNlIHRoaXMgdG8gZ2V0IGJhc2ljIHN0eWxpbmcgb24gYWxsIGJhc2ljIGZvcm0gZWxlbWVudHMgKi9cbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4gICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuICAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4gICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4gICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbiAgICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuICAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4gICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuICAgIHRleHRhcmVhIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgICAgQGlmICRpbnB1dC1pbmNsdWRlLWdsb3dpbmctZWZmZWN0ID09IGZhbHNlIHtcbiAgICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihhbGwsIDAuMTVzLCBsaW5lYXIpO1xuICAgICAgfVxuICAgICAgJi5yYWRpdXMge1xuICAgICAgICBAaW5jbHVkZSByYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvcm0ge1xuICAgICAgLnJvdyB7XG4gICAgICAgIC5wcmVmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3RmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgICAgLnBvc3RmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICB9XG4gICAgICAgIC5wcmVmaXgtcm91bmQucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XG4gICAgICAgICAgLnByZWZpeCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcm91bmQpOyB9XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3RmaXgtcm91bmQucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweDtcbiAgICB9XG5cbiAgICAvKiBSZXNwZWN0IGVuZm9yY2VkIGFtb3VudCBvZiByb3dzIGZvciB0ZXh0YXJlYSAqL1xuICAgIHRleHRhcmVhW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cblx0LyogTm90IGFsbG93IHJlc2l6ZSBvdXQgb2YgcGFyZW50ICovXG5cdHRleHRhcmVhIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cblxuICAgIC8qIEFkZCBoZWlnaHQgdmFsdWUgZm9yIHNlbGVjdCBlbGVtZW50cyB0byBtYXRjaCB0ZXh0IGlucHV0IGhlaWdodCAqL1xuICAgIHNlbGVjdCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgICAgIGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG4gICAgfVxuXG4gICAgLyogQWRqdXN0IG1hcmdpbiBmb3IgZm9ybSBlbGVtZW50cyBiZWxvdyAqL1xuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gICAgc2VsZWN0IHtcbiAgICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmcgMDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRmb3JtLXNwYWNpbmcgKiAuNTtcbiAgICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZm9ybS1zcGFjaW5nO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICAvKiBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aCAqL1xuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICAgIHdpZHRoOjEwMCU7XG4gICAgfVxuXG4gICAgLyogSFRNTDUgTnVtYmVyIHNwaW5uZXJzIHNldHRpbmdzICovXG4gICAgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgICAgIEBpbmNsdWRlIGh0bWw1bnVtYmVyKG1veiwgJGlucHV0LW51bWJlci1zcGlubmVycylcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIEBpbmNsdWRlIGh0bWw1bnVtYmVyKHdlYmtpdCwgJGlucHV0LW51bWJlci1zcGlubmVycyk7XG4gICAgfVxuXG4gICAgLyogV2UgYWRkIGJhc2ljIGZpZWxkc2V0IHN0eWxpbmcgKi9cbiAgICBmaWVsZHNldCB7XG4gICAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgICB9XG5cbiAgICAvKiBFcnJvciBIYW5kbGluZyAqL1xuXG4gICAgI3tkYXRhKCdhYmlkZScpfSB7XG4gICAgICAuZXJyb3Igc21hbGwuZXJyb3IsIC5lcnJvciBzcGFuLmVycm9yLCBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHsgZGlzcGxheTogbm9uZTsgfVxuICAgIH1cblxuICAgIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICB9XG5cbiAgICAuZXJyb3Ige1xuICAgICAgaW5wdXQsXG4gICAgICB0ZXh0YXJlYSxcbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmdcbiAgICAgIH1cblxuICAgICAgbGFiZWwsXG4gICAgICBsYWJlbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtZXJyb3ItY29sb3I7XG4gICAgICB9XG5cbiAgICAgIHNtYWxsLmVycm9yIHtcbiAgICAgICAgQGluY2x1ZGUgZm9ybS1lcnJvci1tZXNzYWdlO1xuICAgICAgfVxuXG4gICAgICA+IGxhYmVsIHtcbiAgICAgICAgPiBzbWFsbCB7XG4gICAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRmb3JtLWxhYmVsLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDE1JSk7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGZvcm0tbGFiZWwtc21hbGwtdHJhbnNmb3JtO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXNpemU6IDYwJTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNwYW4uZXJyb3ItbWVzc2FnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0LmVycm9yLFxuICAgIHRleHRhcmVhLmVycm9yLFxuICAgIHNlbGVjdC5lcnJvciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICBsYWJlbC5lcnJvciB7IEBpbmNsdWRlIGZvcm0tbGFiZWwtZXJyb3ItY29sb3I7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMuXG4kYnV0dG9uLXRueTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGJ1dHRvbi1zbWw6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRidXR0b24tbWVkOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kYnV0dG9uLWxyZzogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBkaXNwbGF5IHByb3BlcnR5LlxuJGJ1dHRvbi1kaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWRlZmF1bHQ7XG4kYnV0dG9uLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIHRleHQgc3R5bGVzLlxuJGJ1dHRvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1jb2xvci1hbHQ6ICRvaWwgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtdG55OiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtc21sOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtbWVkOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtbHJnOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHZhcmlvdXMgaG92ZXIgZWZmZWN0cy5cbiRidXR0b24tZnVuY3Rpb24tZmFjdG9yOiAtMjAlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBidXR0b24gYm9yZGVyIHN0eWxlcy5cbiRidXR0b24tYm9yZGVyLXdpZHRoOiAwcHggIWRlZmF1bHQ7XG4kYnV0dG9uLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kYnV0dG9uLWJnLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmctY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRidXR0b24tYm9yZGVyLWNvbG9yOiAkYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJHNlY29uZGFyeS1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRzZWNvbmRhcnktYnV0dG9uLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kc3VjY2Vzcy1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRzdWNjZXNzLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yOiAkc3VjY2Vzcy1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kYWxlcnQtYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkYWxlcnQtY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRhbGVydC1idXR0b24tYm9yZGVyLWNvbG9yOiAkYWxlcnQtYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkd2FybmluZy1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcjogJHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJGluZm8tYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkaW5mby1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcjogJGluZm8tYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGRlZmF1bHQgcmFkaXVzIHVzZWQgdGhyb3VnaG91dCB0aGUgY29yZS5cbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRidXR0b24tcm91bmQ6ICRnbG9iYWwtcm91bmRlZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IGRlZmF1bHQgb3BhY2l0eSBhbmQgY3Vyc29yIGZvciBkaXNhYmxlZCBidXR0b25zLlxuJGJ1dHRvbi1kaXNhYmxlZC1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XG4kYnV0dG9uLWRpc2FibGVkLWN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlICFkZWZhdWx0O1xuXG5cbi8vXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgYSBkZWZhdWx0IGJ1dHRvbiBiYXNlLlxuLy9cbi8vICRzdHlsZSAtIFNldHMgYmFzZSBzdHlsZXMuIENhbiBiZSBzZXQgdG8gZmFsc2UuIERlZmF1bHQ6IHRydWUuXG4vLyAkZGlzcGxheSAtIFVzZWQgdG8gY29udHJvbCBkaXNwbGF5IHByb3BlcnR5LiBEZWZhdWx0OiAkYnV0dG9uLWRpc3BsYXkgfHwgaW5saW5lLWJsb2NrXG5cbkBtaXhpbiBidXR0b24tYmFzZSgkc3R5bGU6dHJ1ZSwgJGRpc3BsYXk6JGJ1dHRvbi1kaXNwbGF5KSB7XG4gIEBpZiAkc3R5bGUge1xuICAgIGJvcmRlci1zdHlsZTogJGJ1dHRvbi1ib3JkZXItc3R5bGU7XG4gICAgYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWJvcmRlci13aWR0aDtcbiAgICBjdXJzb3I6ICRjdXJzb3ItcG9pbnRlci12YWx1ZTtcbiAgICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbjogMCAwICRidXR0b24tbWFyZ2luLWJvdHRvbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtYWxpZ246ICRidXR0b24tZm9udC1hbGlnbjtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjA7XG4gIH1cbiAgQGlmICRkaXNwbGF5IHsgZGlzcGxheTogJGRpc3BsYXk7IH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gYWRkIGJ1dHRvbiBzaXplIHN0eWxlc1xuLy9cbi8vICRwYWRkaW5nIC0gVXNlZCB0byBidWlsZCBwYWRkaW5nIGZvciBidXR0b25zIERlZmF1bHQ6ICRidXR0b24tbWVkIHx8PSByZW0tY2FsYygxMilcbi8vICRmdWxsLXdpZHRoIC0gV2UgY2FuIHNldCAkZnVsbC13aWR0aDp0cnVlIHRvIHJlbW92ZSBzaWRlIHBhZGRpbmcgZXh0ZW5kIHdpZHRoIC0gRGVmYXVsdDogZmFsc2VcblxuQG1peGluIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tbWVkLCAkZnVsbC13aWR0aDpmYWxzZSkge1xuXG4gIC8vIFdlIGNvbnRyb2wgd2hpY2ggcGFkZGluZyBzdHlsZXMgY29tZSB0aHJvdWdoLFxuICAvLyB0aGVzZSBjYW4gYmUgdHVybmVkIG9mZiBieSBzZXR0aW5nICRwYWRkaW5nOmZhbHNlXG4gIEBpZiAkcGFkZGluZyB7XG4gICAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHBhZGRpbmcgKiAyO1xuICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZyArIHJlbS1jYWxjKDEpO1xuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICRwYWRkaW5nICogMjtcblxuICAgIC8vIFdlIGNvbnRyb2wgdGhlIGZvbnQtc2l6ZSBiYXNlZCBvbiBtaXhpbiBpbnB1dC5cbiAgICBAaWYgICAgICAkcGFkZGluZyA9PSAkYnV0dG9uLW1lZCB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LW1lZDsgfVxuICAgIEBlbHNlIGlmICRwYWRkaW5nID09ICRidXR0b24tdG55IHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtdG55OyB9XG4gICAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gJGJ1dHRvbi1zbWwgeyBmb250LXNpemU6ICRidXR0b24tZm9udC1zbWw7IH1cbiAgICBAZWxzZSBpZiAkcGFkZGluZyA9PSAkYnV0dG9uLWxyZyB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LWxyZzsgfVxuICB9XG5cbiAgLy8gV2UgY2FuIHNldCAkZnVsbC13aWR0aDp0cnVlIHRvIHJlbW92ZSBzaWRlIHBhZGRpbmcgZXh0ZW5kIHdpZHRoLlxuICBAaWYgJGZ1bGwtd2lkdGgge1xuICAgIC8vIFdlIHN0aWxsIG5lZWQgdG8gY2hlY2sgaWYgJHBhZGRpbmcgaXMgc2V0LlxuICAgIEBpZiAkcGFkZGluZyB7XG4gICAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZyArIHJlbS1jYWxjKDEpO1xuICAgIH0gQGVsc2UgaWYgJHBhZGRpbmcgPT0gZmFsc2Uge1xuICAgICAgcGFkZGluZy10b3A6MDtcbiAgICAgIHBhZGRpbmctYm90dG9tOjA7XG4gICAgfVxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIHdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSB0aGUgYnV0dG9uIGhvdmVyIGFuZCBib3JkZXIgY29sb3JzXG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBidXR0b24gY29sb3Igc3R5bGVzXG4vL1xuLy8gJGJnIC0gUHJpbWFyeSBjb2xvciBzZXQgaW4gc2V0dGluZ3MgZmlsZS4gRGVmYXVsdDogJGJ1dHRvbi1iZy5cbi8vICRyYWRpdXMgLSBJZiB0cnVlLCBzZXQgdG8gYnV0dG9uIHJhZGl1cyB3aGljaCBpcyAkZ2xvYmFsLXJhZGl1cyB8fCBleHBsaWNpdGx5IHNldCByYWRpdXMgYW1vdW50IGluIHB4IChleC4gJHJhZGl1czoxMHB4KS4gRGVmYXVsdDogdHJ1ZVxuLy8gJGRpc2FibGVkIC0gV2UgY2FuIHNldCAkZGlzYWJsZWQ6dHJ1ZSB0byBjcmVhdGUgYSBkaXNhYmxlZCB0cmFuc3BhcmVudCBidXR0b24uIERlZmF1bHQ6IGZhbHNlXG4vLyAkYmctaG92ZXIgLSBCdXR0b24gSG92ZXIgQmFja2dyb3VuZCBDb2xvci4gRGVmYXVsdDogJGJ1dHRvbi1iZy1ob3ZlclxuLy8gJGJvcmRlci1jb2xvciAtIEJ1dHRvbiBCb3JkZXIgQ29sb3IuIERlZmF1bHQ6ICRidXR0b24tYm9yZGVyLWNvbG9yXG5AbWl4aW4gYnV0dG9uLXN0eWxlKCRiZzokYnV0dG9uLWJnLWNvbG9yLCAkcmFkaXVzOmZhbHNlLCAkZGlzYWJsZWQ6ZmFsc2UsICRiZy1ob3ZlcjpudWxsLCAkYm9yZGVyLWNvbG9yOm51bGwpIHtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgc3R5bGVzIGFyZSB1c2VkLFxuICAvLyB0aGVzZSBjYW4gYmUgcmVtb3ZlZCBieSBzZXR0aW5nICRiZzpmYWxzZVxuICBAaWYgJGJnIHtcblxuICAgIEBpZiAkYmctaG92ZXIgPT0gbnVsbCB7XG4gICAgICAkYmctaG92ZXI6IGlmKCRiZyA9PSAkYnV0dG9uLWJnLWNvbG9yLCAkYnV0dG9uLWJnLWhvdmVyLCBzY2FsZS1jb2xvcigkYmcsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSk7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItY29sb3IgPT0gbnVsbCB7XG4gICAgICAkYm9yZGVyLWNvbG9yOiBpZigkYmcgPT0gJGJ1dHRvbi1iZy1jb2xvciwgJGJ1dHRvbi1ib3JkZXItY29sb3IsIHNjYWxlLWNvbG9yKCRiZywgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZpbmQgdGhlIGxpZ2h0bmVzcyBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICAgICRiZy1ob3Zlci1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmctaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctaG92ZXI7IH1cblxuICAgIC8vIFdlIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgZm9yIHlvdSBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgICBjb2xvcjogaWYoJGJnLWxpZ2h0bmVzcyA+IDcwJSwgJGJ1dHRvbi1mb250LWNvbG9yLWFsdCwgJGJ1dHRvbi1mb250LWNvbG9yKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogaWYoJGJnLWhvdmVyLWxpZ2h0bmVzcyA+IDcwJSwgJGJ1dHRvbi1mb250LWNvbG9yLWFsdCwgJGJ1dHRvbi1mb250LWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi5cbiAgQGlmICRkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiAkYnV0dG9uLWRpc2FibGVkLWN1cnNvcjtcbiAgICBvcGFjaXR5OiAkYnV0dG9uLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7IH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBjb250cm9sIGhvdyBtdWNoIGJ1dHRvbiByYWRpdXMgaXMgdXNlZC5cbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkYnV0dG9uLXJhZGl1cyk7IH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxuXG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIHF1aWNrbHkgY3JlYXRlIGJ1dHRvbnMgd2l0aCBhIHNpbmdsZSBtaXhpbi4gQXMgQGphcmVkaGFyZHkgcHV0cyBpdCwgXCJ0aGUga2l0Y2hlbiBzaW5rIG1peGluXCJcbi8vXG4vLyAkcGFkZGluZyAtIFVzZWQgdG8gYnVpbGQgcGFkZGluZyBmb3IgYnV0dG9ucyBEZWZhdWx0OiAkYnV0dG9uLW1lZCB8fD0gcmVtLWNhbGMoMTIpXG4vLyAkYmcgLSBQcmltYXJ5IGNvbG9yIHNldCBpbiBzZXR0aW5ncyBmaWxlLiBEZWZhdWx0OiAkYnV0dG9uLWJnLlxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBidXR0b24gcmFkaXVzIHdoaWNoIGlzICRnbG9iYWwtcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OmZhbHNlLlxuLy8gJGZ1bGwtd2lkdGggLSBXZSBjYW4gc2V0ICRmdWxsLXdpZHRoOnRydWUgdG8gcmVtb3ZlIHNpZGUgcGFkZGluZyBleHRlbmQgd2lkdGguIERlZmF1bHQ6ZmFsc2UuXG4vLyAkZGlzYWJsZWQgLSBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi4gRGVmYXVsdDpmYWxzZS5cbi8vICRpcy1wcmVmaXggLSBOb3QgdXNlZD8gRGVmYXVsdDpmYWxzZS5cbi8vICRiZy1ob3ZlciAtIEJ1dHRvbiBIb3ZlciBDb2xvciAtIERlZmF1bHQgbnVsbCAtIHNlZSBidXR0b24tc3R5bGUgbWl4aW5cbi8vICRib3JkZXItY29sb3IgLSBCdXR0b24gQm9yZGVyIENvbG9yIC0gRGVmYXVsdCBudWxsIC0gc2VlIGJ1dHRvbi1zdHlsZSBtaXhpblxuLy8gJHRyYW5zaXRpb24gLSBXZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIHRyYW5zaXRpb24gcHJvcGVydHkgLSBEZWZhdWx0OnRydWUuXG5AbWl4aW4gYnV0dG9uKCRwYWRkaW5nOiRidXR0b24tbWVkLCAkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJHJhZGl1czpmYWxzZSwgJGZ1bGwtd2lkdGg6ZmFsc2UsICRkaXNhYmxlZDpmYWxzZSwgJGlzLXByZWZpeDpmYWxzZSwgJGJnLWhvdmVyOm51bGwsICRib3JkZXItY29sb3I6bnVsbCwgJHRyYW5zaXRpb246IHRydWUpIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nLCAkZnVsbC13aWR0aCk7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmcsICRyYWRpdXMsICRkaXNhYmxlZCwgJGJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yKTtcblxuICBAaWYgJHRyYW5zaXRpb24ge1xuICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuICB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcImJ1dHRvblwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzIHtcblxuICAgIC8vIERlZmF1bHQgc3R5bGVzIGFwcGxpZWQgb3V0c2lkZSBvZiBtZWRpYSBxdWVyeVxuICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlO1xuXG4gICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRiZy1ob3Zlcjokc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IsICRiZy1ob3Zlcjokc3VjY2Vzcy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHN1Y2Nlc3MtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IsICRiZy1ob3ZlcjokYWxlcnQtYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRhbGVydC1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgJi53YXJuaW5nICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiR3YXJuaW5nLWNvbG9yLCAkYmctaG92ZXI6JHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiR3YXJuaW5nLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLmluZm8gICAgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGluZm8tY29sb3IsICRiZy1ob3ZlcjokaW5mby1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cblxuICAgICAgJi5sYXJnZSAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLWxyZyk7IH1cbiAgICAgICYuc21hbGwgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1zbWwpOyB9XG4gICAgICAmLnRpbnkgICB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tdG55KTsgfVxuICAgICAgJi5leHBhbmQgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzpudWxsLCRmdWxsLXdpZHRoOnRydWUpOyB9XG5cbiAgICAgICYubGVmdC1hbGlnbiAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogcmVtLWNhbGMoMTIpOyB9XG4gICAgICAmLnJpZ2h0LWFsaWduIHsgdGV4dC1hbGlnbjogcmlnaHQ7IHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDEyKTsgfVxuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6ZmFsc2UsICRyYWRpdXM6dHJ1ZSk7IH1cbiAgICAgICYucm91bmQgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzpmYWxzZSwgJHJhZGl1czokYnV0dG9uLXJvdW5kKTsgfVxuXG4gICAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRidXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JHNlY29uZGFyeS1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLnN1Y2Nlc3MgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzdWNjZXNzLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLmFsZXJ0IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JGFsZXJ0LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokYWxlcnQtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi53YXJuaW5nIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokd2FybmluZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3Zlcjokd2FybmluZy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi5pbmZvIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokaW5mby1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokaW5mby1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL2ZpcmVmb3ggMnB4IGZpeFxuICAgIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7Ym9yZGVyOjA7IHBhZGRpbmc6MDt9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tYmFzZSgkc3R5bGU6ZmFsc2UsICRkaXNwbGF5OmlubGluZS1ibG9jayk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOmZhbHNlLCAkZnVsbC13aWR0aDpmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbiRpbmNsdWRlLWh0bWwtdHlwZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBmb250IHN0eWxlc1xuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGhlYWRlci1mb250LXN0eWxlOiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGhlYWRlci1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJGhlYWRlci1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xuJGhlYWRlci10b3AtbWFyZ2luOiAuMnJlbSAhZGVmYXVsdDtcbiRoZWFkZXItYm90dG9tLW1hcmdpbjogLjVyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBmb250IHNpemVzXG4kaDEtZm9udC1zaXplOiByZW0tY2FsYyg0NCkgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiByZW0tY2FsYygzNykgIWRlZmF1bHQ7XG4kaDMtZm9udC1zaXplOiByZW0tY2FsYygyNykgIWRlZmF1bHQ7XG4kaDQtZm9udC1zaXplOiByZW0tY2FsYygyMykgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiByZW0tY2FsYygxOCkgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkZXIgc2l6ZSByZWR1Y3Rpb24gb24gc21hbGwgc2NyZWVuc1xuJGgxLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kaDItZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRoMy1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XG4kaDQtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDUpICFkZWZhdWx0O1xuJGg1LWZvbnQtcmVkdWN0aW9uOiAwICFkZWZhdWx0O1xuJGg2LWZvbnQtcmVkdWN0aW9uOiAwICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIGhvdyBzdWJoZWFkZXJzIGFyZSBzdHlsZWQuXG4kc3ViaGVhZGVyLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMzUlKSAhZGVmYXVsdDtcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLXRvcC1tYXJnaW46IC4ycmVtICFkZWZhdWx0O1xuJHN1YmhlYWRlci1ib3R0b20tbWFyZ2luOiAuNXJlbSAhZGVmYXVsdDtcblxuLy8gQSBnZW5lcmFsIDxzbWFsbD4gc3R5bGluZ1xuJHNtYWxsLWZvbnQtc2l6ZTogNjAlICFkZWZhdWx0O1xuJHNtYWxsLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMzUlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHBhcmFncmFwaHNcbiRwYXJhZ3JhcGgtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJHBhcmFncmFwaC1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWxpbmUtaGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWFzaWRlLWxpbmUtaGVpZ2h0OiAxLjM1ICFkZWZhdWx0O1xuJHBhcmFncmFwaC1hc2lkZS1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSA8Y29kZT4gdGFnc1xuJGNvZGUtY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGNvZGUtYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogNzAlKSAhZGVmYXVsdDtcbiRjb2RlLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kY29kZS1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGNvZGUtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkY29kZS1iYWNrZ3JvdW5kLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKSAhZGVmYXVsdDtcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIpIHJlbS1jYWxjKDUpIHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgYW5jaG9yc1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcbiRhbmNob3ItZm9udC1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kYW5jaG9yLWZvbnQtY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgPGhyPiBlbGVtZW50XG4kaHItYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kaHItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRoci1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBsaXN0c1xuJGxpc3QtZm9udC1mYW1pbHk6ICRwYXJhZ3JhcGgtZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kbGlzdC1mb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplICFkZWZhdWx0O1xuJGxpc3QtbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjFyZW0gIWRlZmF1bHQ7XG4kbGlzdC1vcmRlcmVkLXNpZGUtbWFyZ2luOiAxLjRyZW0gIWRlZmF1bHQ7XG4kbGlzdC1zaWRlLW1hcmdpbi1uby1idWxsZXQ6IDAgIWRlZmF1bHQ7XG4kbGlzdC1uZXN0ZWQtbWFyZ2luOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kZGVmaW5pdGlvbi1saXN0LWhlYWRlci13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC1oZWFkZXItbWFyZ2luLWJvdHRvbTogLjNyZW0gIWRlZmF1bHQ7XG4kZGVmaW5pdGlvbi1saXN0LW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGJsb2NrcXVvdGVzXG4kYmxvY2txdW90ZS1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1jaXRlLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMjMlKSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWNpdGUtbGluay1jb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBBY3JvbnltIHN0eWxlc1xuJGFjcm9ueW0tdW5kZXJsaW5lOiAxcHggZG90dGVkICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHBhZGRpbmcgYW5kIG1hcmdpblxuJG1pY3JvZm9ybWF0LXBhZGRpbmc6IHJlbS1jYWxjKDEwIDEyKSAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1tYXJnaW46IHJlbS1jYWxjKDAgMCAyMCAwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGJvcmRlciBzdHlsZXNcbiRtaWNyb2Zvcm1hdC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgZnVsbCBuYW1lIGZvbnQgc3R5bGVzXG4kbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBzdW1tYXJ5IGZvbnQgc3R5bGVzXG4kbWljcm9mb3JtYXQtc3VtbWFyeS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYWJiciBwYWRkaW5nXG4kbWljcm9mb3JtYXQtYWJici1wYWRkaW5nOiByZW0tY2FsYygwIDEpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFiYnIgZm9udCBzdHlsZXNcbiRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8gVGV4dCBhbGlnbm1lbnQgY2xhc3MgbmFtZXNcbiRhbGlnbi1jbGFzcy1uYW1lczpcbiAgc21hbGwtb25seSxcbiAgc21hbGwsXG4gIG1lZGl1bS1vbmx5LFxuICBtZWRpdW0sXG4gIGxhcmdlLW9ubHksXG4gIGxhcmdlLFxuICB4bGFyZ2Utb25seSxcbiAgeGxhcmdlLFxuICB4eGxhcmdlLW9ubHksXG4gIHh4bGFyZ2U7XG5cbi8vIFRleHQgYWxpZ25tZW50IGJyZWFrcG9pbnRzXG4kYWxpZ24tY2xhc3MtYnJlYWtwb2ludHM6XG4gICRzbWFsbC1vbmx5LFxuICAkc21hbGwtdXAsXG4gICRtZWRpdW0tb25seSxcbiAgJG1lZGl1bS11cCxcbiAgJGxhcmdlLW9ubHksXG4gICRsYXJnZS11cCxcbiAgJHhsYXJnZS1vbmx5LFxuICAkeGxhcmdlLXVwLFxuICAkeHhsYXJnZS1vbmx5LFxuICAkeHhsYXJnZS11cDtcblxuLy8gR2VuZXJhdGVzIHRleHQgYWxpZ24gYW5kIGp1c3RpZnkgY2xhc3Nlc1xuQG1peGluIGFsaWduLWNsYXNzZXN7XG4gIC50ZXh0LWxlZnQgICAgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgLnRleHQtcmlnaHQgICB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgLnRleHQtY2VudGVyICB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LWp1c3RpZnkgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7IH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkYWxpZ24tY2xhc3MtbmFtZXMpIHtcbiAgICBAbWVkaWEgI3sobnRoKCRhbGlnbi1jbGFzcy1icmVha3BvaW50cywgJGkpKX0ge1xuICAgICAgLiN7KG50aCgkYWxpZ24tY2xhc3MtbmFtZXMsICRpKSl9LXRleHQtbGVmdCB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAgICAgLiN7KG50aCgkYWxpZ24tY2xhc3MtbmFtZXMsICRpKSl9LXRleHQtcmlnaHQgICB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWNlbnRlciAgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAgICAgLiN7KG50aCgkYWxpZ24tY2xhc3MtbmFtZXMsICRpKSl9LXRleHQtanVzdGlmeSB7IHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuXG4vL1xuLy8gVHlwb2dyYXBoeSBQbGFjZWhvbGRlcnNcbi8vXG5cbi8vIFRoZXNlIHdpbGwgdGhyb3cgYSBkZXByZWNhdGlvbiB3YXJuaW5nIGlmIHVzZWQgd2l0aGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gbGVhZCB7XG4gIGZvbnQtc2l6ZTogJHBhcmFncmFwaC1mb250LXNpemUgKyByZW0tY2FsYygzLjUpO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG5AbWl4aW4gc3ViaGVhZGVyIHtcbiAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkc3ViaGVhZGVyLWZvbnQtY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLXRvcC1tYXJnaW47XG4gIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItYm90dG9tLW1hcmdpbjtcbn1cbkBpbmNsdWRlIGV4cG9ydHMoXCJ0eXBlXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdHlwZS1jbGFzc2VzIHtcbiAgICAvLyBSZXNwb25zaXZlIFRleHQgYWxpZ25tZW50XG4gICAgQGluY2x1ZGUgYWxpZ24tY2xhc3NlcztcblxuICAgIC8qIFR5cG9ncmFwaHkgcmVzZXRzICovXG4gICAgZGl2LFxuICAgIGRsLFxuICAgIGR0LFxuICAgIGRkLFxuICAgIHVsLFxuICAgIG9sLFxuICAgIGxpLFxuICAgIGgxLFxuICAgIGgyLFxuICAgIGgzLFxuICAgIGg0LFxuICAgIGg1LFxuICAgIGg2LFxuICAgIHByZSxcbiAgICBmb3JtLFxuICAgIHAsXG4gICAgYmxvY2txdW90ZSxcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBtYXJnaW46MDtcbiAgICAgIHBhZGRpbmc6MDtcbiAgICB9XG5cbiAgICAvKiBEZWZhdWx0IExpbmsgU3R5bGVzICovXG4gICAgYSB7XG4gICAgICBjb2xvcjogJGFuY2hvci1mb250LWNvbG9yO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3ItaG92ZXI7XG4gICAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIFx0dGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpbWcgeyBib3JkZXI6bm9uZTsgfVxuICAgIH1cblxuICAgIC8qIERlZmF1bHQgcGFyYWdyYXBoIHN0eWxlcyAqL1xuICAgIHAge1xuICAgICAgZm9udC1mYW1pbHk6ICRwYXJhZ3JhcGgtZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogJHBhcmFncmFwaC1mb250LXdlaWdodDtcbiAgICAgIGZvbnQtc2l6ZTogJHBhcmFncmFwaC1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgICAmLmxlYWQgeyBAaW5jbHVkZSBsZWFkOyB9XG5cbiAgICAgICYgYXNpZGUge1xuICAgICAgICBmb250LXNpemU6ICRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1hc2lkZS1saW5lLWhlaWdodDtcbiAgICAgICAgZm9udC1zdHlsZTogJHBhcmFncmFwaC1hc2lkZS1mb250LXN0eWxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIERlZmF1bHQgaGVhZGVyIHN0eWxlcyAqL1xuICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLWZvbnQtY29sb3I7XG4gICAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcbiAgICAgIG1hcmdpbi10b3A6ICRoZWFkZXItdG9wLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRoZWFkZXItYm90dG9tLW1hcmdpbjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWxpbmUtaGVpZ2h0O1xuXG4gICAgICBzbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRzbWFsbC1mb250LWNvbG9yO1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBoMSB7IGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZSAtICRoMS1mb250LXJlZHVjdGlvbjsgfVxuICAgIGgyIHsgZm9udC1zaXplOiAkaDItZm9udC1zaXplIC0gJGgyLWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDMgeyBmb250LXNpemU6ICRoMy1mb250LXNpemUgLSAkaDMtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoNCB7IGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZSAtICRoNC1mb250LXJlZHVjdGlvbjsgfVxuICAgIGg1IHsgZm9udC1zaXplOiAkaDUtZm9udC1zaXplIC0gJGg1LWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDYgeyBmb250LXNpemU6ICRoNi1mb250LXNpemUgLSAkaDYtZm9udC1yZWR1Y3Rpb247IH1cblxuICAgIC5zdWJoZWFkZXIgeyBAaW5jbHVkZSBzdWJoZWFkZXI7IH1cblxuICAgIGhyIHtcbiAgICAgIGJvcmRlcjogJGhyLWJvcmRlci1zdHlsZSAkaHItYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXdpZHRoOiAkaHItYm9yZGVyLXdpZHRoIDAgMDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgbWFyZ2luOiAkaHItbWFyZ2luIDAgKCRoci1tYXJnaW4gLSByZW0tY2FsYygkaHItYm9yZGVyLXdpZHRoKSk7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyogSGVscGZ1bCBUeXBvZ3JhcGh5IERlZmF1bHRzICovXG4gICAgZW0sXG4gICAgaSB7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICBzdHJvbmcsXG4gICAgYiB7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICBzbWFsbCB7XG4gICAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICBjb2RlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6ICRjb2RlLWJvcmRlci1zaXplO1xuICAgICAgYm9yZGVyLXN0eWxlOiAkY29kZS1ib3JkZXItc3R5bGU7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2RlLWJvcmRlci1jb2xvcjtcbiAgICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLyogTGlzdHMgKi9cbiAgICB1bCxcbiAgICBvbCxcbiAgICBkbCB7XG4gICAgICBmb250LXNpemU6ICRsaXN0LWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5lLWhlaWdodDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICAgIGZvbnQtZmFtaWx5OiAkbGlzdC1mb250LWZhbWlseTtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgICAgJi5uby1idWxsZXQge1xuICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luLW5vLWJ1bGxldDtcbiAgICAgICAgbGkge1xuICAgICAgICAgIHVsLFxuICAgICAgICAgIG9sIHtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3QtbmVzdGVkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qIFVub3JkZXJlZCBMaXN0cyAqL1xuICAgIHVsIHtcbiAgICAgIGxpIHtcbiAgICAgICAgdWwsXG4gICAgICAgIG9sIHtcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5zcXVhcmUsXG4gICAgICAmLmNpcmNsZSxcbiAgICAgICYuZGlzYyB7XG4gICAgICAgIGxpIHVsIHsgbGlzdC1zdHlsZTogaW5oZXJpdDsgfVxuICAgICAgfVxuXG4gICAgICAmLnNxdWFyZSB7IGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlOyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO31cbiAgICAgICYuY2lyY2xlIHsgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47fVxuICAgICAgJi5kaXNjIHsgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO31cbiAgICAgICYubm8tYnVsbGV0IHsgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAgIH1cblxuICAgIC8qIE9yZGVyZWQgTGlzdHMgKi9cbiAgICBvbCB7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW9yZGVyZWQtc2lkZS1tYXJnaW47XG4gICAgICBsaSB7XG4gICAgICAgIHVsLFxuICAgICAgICBvbCB7XG4gICAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1uZXN0ZWQtbWFyZ2luO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBEZWZpbml0aW9uIExpc3RzICovXG4gICAgZGwge1xuICAgICAgZHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGVmaW5pdGlvbi1saXN0LWhlYWRlci1tYXJnaW4tYm90dG9tO1xuICAgICAgICBmb250LXdlaWdodDogJGRlZmluaXRpb24tbGlzdC1oZWFkZXItd2VpZ2h0O1xuICAgICAgfVxuICAgICAgZGQgeyBtYXJnaW4tYm90dG9tOiAkZGVmaW5pdGlvbi1saXN0LW1hcmdpbi1ib3R0b207IH1cbiAgICB9XG5cbiAgICAvKiBBYmJyZXZpYXRpb25zICovXG4gICAgYWJicixcbiAgICBhY3JvbnltIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IDkwJTtcbiAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWhlbHAtdmFsdWU7XG4gICAgfVxuICAgIGFiYnIge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAmW3RpdGxlXSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRhY3JvbnltLXVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBCbG9ja3F1b3RlcyAqL1xuICAgIGJsb2NrcXVvdGUge1xuICAgICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICAgIGJvcmRlci0jeyRkZWZhdWx0LWZsb2F0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgICBjaXRlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJGJsb2NrcXVvdGUtY2l0ZS1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jaXRlLWZvbnQtY29sb3I7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIlxcMjAxNCBcXDAwMjBcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGEsXG4gICAgICAgIGE6dmlzaXRlZCB7XG4gICAgICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtbGluay1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBibG9ja3F1b3RlLFxuICAgIGJsb2NrcXVvdGUgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1mb250LWNvbG9yO1xuICAgIH1cblxuICAgIC8qIE1pY3JvZm9ybWF0cyAqL1xuICAgIC52Y2FyZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46ICRtaWNyb2Zvcm1hdC1tYXJnaW47XG4gICAgICBib3JkZXI6ICRtaWNyb2Zvcm1hdC1ib3JkZXItd2lkdGggJG1pY3JvZm9ybWF0LWJvcmRlci1zdHlsZSAkbWljcm9mb3JtYXQtYm9yZGVyLWNvbG9yO1xuICAgICAgcGFkZGluZzogJG1pY3JvZm9ybWF0LXBhZGRpbmc7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5mbiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtc2l6ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudmV2ZW50IHtcbiAgICAgIC5zdW1tYXJ5IHsgZm9udC13ZWlnaHQ6ICRtaWNyb2Zvcm1hdC1zdW1tYXJ5LWZvbnQtd2VpZ2h0OyB9XG5cbiAgICAgIGFiYnIge1xuICAgICAgICBjdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkbWljcm9mb3JtYXQtYWJici1mb250LWRlY29yYXRpb247XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbWljcm9mb3JtYXQtYWJici1mb250LXdlaWdodDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAkbWljcm9mb3JtYXQtYWJici1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgaDEsaDIsaDMsaDQsaDUsaDYgeyBsaW5lLWhlaWdodDogJGhlYWRlci1saW5lLWhlaWdodDsgfVxuICAgICAgaDEgeyBmb250LXNpemU6ICRoMS1mb250LXNpemU7IH1cbiAgICAgIGgyIHsgZm9udC1zaXplOiAkaDItZm9udC1zaXplOyB9XG4gICAgICBoMyB7IGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZTsgfVxuICAgICAgaDQgeyBmb250LXNpemU6ICRoNC1mb250LXNpemU7IH1cbiAgICAgIGg1IHsgZm9udC1zaXplOiAkaDUtZm9udC1zaXplOyB9XG4gICAgICBoNiB7IGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZTsgfVxuICAgIH1cblxuICAgIC8vIE9ubHkgaW5jbHVkZSB0aGVzZSBzdHlsZXMgaWYgeW91IHdhbnQgdGhlbS5cbiAgICBAaWYgJGluY2x1ZGUtcHJpbnQtc3R5bGVzIHtcbiAgICAgIC8qXG4gICAgICAgKiBQcmludCBzdHlsZXMuXG4gICAgICAgKlxuICAgICAgICogSW5saW5lZCB0byBhdm9pZCByZXF1aXJlZCBIVFRQIGNvbm5lY3Rpb246IHd3dy5waHBpZWQuY29tL2RlbGF5LWxvYWRpbmcteW91ci1wcmludC1jc3MvXG4gICAgICAgKiBDcmVkaXQgdG8gUGF1bCBJcmlzaCBhbmQgSFRNTDUgQm9pbGVycGxhdGUgKGh0bWw1Ym9pbGVycGxhdGUuY29tKVxuICAgICAgKi9cbiAgICAgIC5wcmludC1vbmx5IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAqIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgIGNvbG9yOiAkYmxhY2sgIWltcG9ydGFudDsgLyogQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vcyAqL1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgYSxcbiAgICAgICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cblxuICAgICAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuXG4gICAgICAgIC8vIERvbid0IHNob3cgbGlua3MgZm9yIGltYWdlcywgb3IgamF2YXNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgICAgICAuaXIgYTphZnRlcixcbiAgICAgICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyLFxuICAgICAgICBhW2hyZWZePVwiI1wiXTphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IH1cblxuICAgICAgICBwcmUsXG4gICAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRhbHVtaW51bTtcbiAgICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgLyogaDVicC5jb20vdCAqLyB9XG5cbiAgICAgICAgdHIsXG4gICAgICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICAgICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICAgICAgcCxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzIHtcbiAgICAgICAgICBvcnBoYW5zOiAzO1xuICAgICAgICAgIHdpZG93czogMztcbiAgICAgICAgfVxuXG4gICAgICAgIGgyLFxuICAgICAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAgICAgLmhpZGUtb24tcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLnByaW50LW9ubHkgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuIiwiXHJcblxyXG4uYmxvY2tfX2NvbnRlbnR7XHJcbiAgcGFkZGluZzogcmVtLWNhbGMoMjUpO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogJHRfcm93X3dpZHRoO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4uYmxvY2tfbGlnaHQge1xyXG4gIGJhY2tncm91bmQ6ICNmOWY5Zjk7XHJcbn1cclxuLmJsb2NrX2hlYWRlcntcclxuICBiYWNrZ3JvdW5kOiB1cmwoJy9pbWcvaGVhZGVyQmcuanBnJykgY2VudGVyIG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTQ3YTQyO1xyXG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCBibGFjaztcclxufVxyXG4uYmxvY2tfd2hpdGV7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbn1cclxuLmJsb2NrX2J1YmJsZXMge1xyXG4gIGJhY2tncm91bmQ6IHVybCgnL2ltZy9idWJibGVzQmcuanBnJykgY2VudGVyIG5vLXJlcGVhdDtcclxuICBoZWlnaHQ6IDU5MHB4O1xyXG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYTM5Yzk4O1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYTM5Yzk4O1xyXG59XHJcbi5ibG9ja19jb3B5cmlnaHR7XHJcbiAgYmFja2dyb3VuZDogIzRiMmQwMTtcclxufVxyXG4uYmxvY2tfY2FsbEZvcm0ge1xyXG4gIGJhY2tncm91bmQ6IHVybCgnL2ltZy9jYWxsZm9ybUJnLmpwZycpIGNlbnRlcjtcclxufVxyXG4uYmxvY2tfX2NvbnRlbnRfY29weXJpZ2h0e1xyXG4gIHBhZGRpbmc6IHJlbS1jYWxjKDUpIHJlbS1jYWxjKDI1KTtcclxufVxyXG5cclxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAuYmxvY2tfaGVhZGVyIHtcclxuICAgIGJhY2tncm91bmQ6ICNhNDdhNDI7XHJcbiAgfVxyXG4gIC5ibG9ja19idWJibGVzIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIGJhY2tncm91bmQ6ICNhNDdhNDI7XHJcbiAgfVxyXG4gIC5ibG9ja19jYWxsRm9ybSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjYTQ3YTQyO1xyXG4gIH1cclxufVxyXG4iLCIvKiDQndCw0YHRgtGA0L7QudC60Lgg0LHQu9C+0LrQsCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG4kdF9oZWFkZXJfbGVmdF9jb2w6IDcgIWRlZmF1bHQ7XHJcbiR0X2hlYWRlcl9yaWdodF9jb2w6IDUgIWRlZmF1bHQ7XHJcbiR0X2hlYWRlcl9mZWF0dXJlX2ltZ193aWR0aDogNTBweDtcclxuXHJcblxyXG4vKiBD0YLQuNC70Lgg0LHQu9C+0LrQsCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLmhlYWRlcntcclxuICBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6IG5lc3QpO1xyXG4gIC5oZWFkZXJfX2xlZnR7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkdF9oZWFkZXJfbGVmdF9jb2wpO1xyXG4gIH1cclxuICAuaGVhZGVyX19yaWdodHtcclxuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCR0X2hlYWRlcl9yaWdodF9jb2wpO1xyXG4gIH1cclxuICBwYWRkaW5nOiA3MHB4IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiN7bG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KSB7XHJcbiAgLmhlYWRlcntcclxuICAgIEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjogbmVzdCk7XHJcbiAgICAuaGVhZGVyX19sZWZ0e1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkdF9oZWFkZXJfbGVmdF9jb2wgKyAkdF9oZWFkZXJfcmlnaHRfY29sKTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogJHRfdmVydGljYWxfc3BhY2U7XHJcbiAgICB9XHJcbiAgICAuaGVhZGVyX19yaWdodHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHRfaGVhZGVyX2xlZnRfY29sICsgJHRfaGVhZGVyX3JpZ2h0X2NvbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcblxyXG4uaGVhZGVyX19oZWFke1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBsaW5lLWhlaWdodDogMS4xO1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoNDIpO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHRvcDogMTAwcHg7XHJcbiAgdGV4dC1zaGFkb3c6IGJsYWNrIDBweCAycHggM3B4O1xyXG5cclxufVxyXG5cclxuLmhlYWRlcl9fZGVzY3tcclxuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xyXG4gICAgY29sb3I6ICNjZGNjY2M7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4uaGVhZGVyX190ZXh0IHtcclxuICAgIHRleHQtc2hhZG93OiBub25lO1xyXG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XHJcbn1cclxuXHJcbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgLmhlYWRlciB7XHJcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcclxuICB9XHJcbiAgLmhlYWRlcl9faGVhZCB7XHJcbiAgICB0b3A6IDBweDtcclxuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuXHJcbiAgfVxyXG59XHJcblxyXG5cclxuIiwiXHJcbiR0X2NmX2JhY2tncm91bmQ6d2hpdGU7XHJcbiRjZl9yYWRpdXM6IDEwcHg7XHJcbiRjZl9jb2xvcjogd2hpdGU7XHJcblxyXG5cclxuLmNhbGxGb3JtIHtcclxuICBib3JkZXItcmFkaXVzOiAkY2ZfcmFkaXVzO1xyXG4gIHBhZGRpbmc6IDI1cHg7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xyXG4gIG1heC13aWR0aDogNDU1cHg7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuLmJsb2NrX2NhbGxGb3JtIC5jYWxsRm9ybSB7XHJcbiAgYmFja2dyb3VuZDogbm9uZTtcclxufVxyXG4jY2FsbEZvcm1fbW9kYWwgLmNhbGxGb3JtIHtcclxuICBiYWNrZ3JvdW5kOiAjYTQ3YTQyO1xyXG59XHJcbi5jYWxsRm9ybV9fc3VjY2VzcywgLmNhbGxGb3JtX19lcnJvciB7XHJcbiAgYm9yZGVyOiA1cHggc29saWQgI2E0N2E0MjtcclxuICBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gIG1heC13aWR0aDogNjAwcHg7XHJcbn1cclxuLmNhbGxGb3JtX19oZWFkIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMztcclxuICBtYXJnaW4tdG9wOjA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICBjb2xvcjogJGNmX2NvbG9yO1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjcpO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4uY2FsbEZvcm1fX2Rlc2Mge1xyXG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgZm9udC1zaXplOiByZW0tY2FsYygxMSk7XHJcbiAgY29sb3I6ICNjYWM1YzA7XHJcbiAgdGV4dC1pbmRlbnQ6IDMwcHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMztcclxufVxyXG5cclxuLmNhbGxGb3JtX19waG9uZXMge1xyXG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgcGFkZGluZy1sZWZ0OiA4MHB4O1xyXG4gIGJhY2tncm91bmQ6IHVybChcIi9pbWcvZm9ybVBob25lLnBuZ1wiKSBuby1yZXBlYXQ7XHJcbiAgYmFja2dyb3VuZC1zaXplOiA3MHB4IDcwcHg7XHJcbiAgY29sb3I6ICRjZl9jb2xvcjtcclxuICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBsaW5lLWhlaWdodDogMS4xO1xyXG59XHJcblxyXG4uc2ltcGxlQ2FsbEZvcl9fc3VibWl0IHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5zaW1wbGVDYWxsRm9yX19zdWJtaXRfX2J1dHRvbiB7XHJcbiAgQGluY2x1ZGUgdF9idXR0b24oKTtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbn1cclxuXHJcbmlucHV0LmNhbGxGb3JtX19pbnB1dCB7XHJcbiAgYm9yZGVyLXJhZGl1czogJHRfcmFkaXVzO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xyXG4gIHBhZGRpbmc6IDdweCAxMHB4O1xyXG59XHJcblxyXG4jY2FsbEZvcm1fbW9kYWx7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgbWF4LXdpZHRoOiA2MDBweDtcclxuXHJcbn1cclxuXHJcblxyXG4uY2FsbEZvcm1fX2Rlc2NfYm90dG9te1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcclxuICBjb2xvcjojRkVEMTM2O1xyXG4gIGEsYTpob3ZlcntcclxuICAgIGNvbG9yOiNGRUQxMzY7XHJcbiAgfVxyXG4gIHBhZGRpbmctdG9wOiAxNXB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgdGV4dC1pbmRlbnQ6IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgLmNhbGxGb3JtX19waG9uZXMge1xyXG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMjVweDtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4iLCJcclxuJHRfc3RiX2NvbGw6MjtcclxuJHRfc3RiX2NvbGxfc21hbGw6MTtcclxuJHRfc3RiX2ltZ193aWR0aDo5MHB4O1xyXG5cclxuXHJcbi5zaW1wbGVUZXh0QmxvY2tzX19oZWFke1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6ICR0X3ByaW1hcnlfY29sb3I7XHJcbn1cclxuXHJcbi5zaW1wbGVUZXh0QmxvY2tzX19pdGVtcyB7XHJcbiAgQGluY2x1ZGUgYmxvY2stZ3JpZCgkdF9zdGJfY29sbCk7XHJcbn1cclxuXHJcblxyXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gIC5zaW1wbGVUZXh0QmxvY2tzX19pdGVtcyB7XHJcbiAgICBAaW5jbHVkZSBibG9jay1ncmlkKCR0X3N0Yl9jb2xsX3NtYWxsKTtcclxuICB9XHJcbn1cclxuXHJcbi5zaW1wbGVUZXh0QmxvY2t7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkdF92ZXJ0aWNhbF9zcGFjZS8yO1xyXG59XHJcblxyXG4uc2ltcGxlVGV4dEJsb2NrX19pbWd7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiAkdF9zdGJfaW1nX3dpZHRoO1xyXG59XHJcblxyXG4uc2ltcGxlVGV4dEJsb2NrX19oZWFke1xyXG4gICAgbWFyZ2luOiByZW0tY2FsYyg1KSAwO1xyXG4gICAgbWFyZ2luLWxlZnQ6ICR0X3N0Yl9pbWdfd2lkdGggKzE1O1xyXG4gICAgY29sb3I6ICR0X3NlY29uZGFyeV9jb2xvcjtcclxuXHJcbn1cclxuXHJcbi5zaW1wbGVUZXh0QmxvY2tfX2Rlc2N7XHJcbiAgbWFyZ2luLWxlZnQ6ICR0X3N0Yl9pbWdfd2lkdGggKzE1O1xyXG59XHJcblxyXG4uc2ltcGxlVGV4dEJsb2NrX19kZXNjIHB7XHJcbiAgICBtYXJnaW46IHJlbS1jYWxjKDUpIDA7XHJcbn0iLCIkdF9jdGFfdGV4dF9jb2w6IDggIWRlZmF1bHQ7XHJcbiR0X2N0YV9idXR0b25fY29sOiA0ICFkZWZhdWx0O1xyXG4kdF9jdGFfaW1nX2NvbDogMCAhZGVmYXVsdDtcclxuXHJcbiR0X2N0YV90b3RhbF9jb2w6ICR0X2N0YV90ZXh0X2NvbCArICR0X2N0YV9idXR0b25fY29sICsgJHRfY3RhX2ltZ19jb2w7XHJcblxyXG4kdF9jdGFfYnV0dG9uX2NvbG9yOndoaXRlO1xyXG5cclxuXHJcblxyXG4uY2FsbFRvQWN0aW9uIHtcclxuICBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6IG5lc3QpO1xyXG4gIC5jYWxsVG9BY3Rpb25fX3RleHQge1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHRfY3RhX3RleHRfY29sKTtcclxuICB9XHJcbiAgLmNhbGxUb0FjdGlvbl9fYWN0aW9uIHtcclxuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCR0X2N0YV9idXR0b25fY29sKTtcclxuICB9XHJcbiAgLmNhbGxUb0FjdGlvbl9faW1nIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAvLyBAaW5jbHVkZSBncmlkLWNvbHVtbigkdF9jdGFfaW1nX2NvbCk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgLmNhbGxUb0FjdGlvbiB7XHJcbiAgICBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6IG5lc3QpO1xyXG4gICAgLmNhbGxUb0FjdGlvbl9fdGV4dCB7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCR0X2N0YV90b3RhbF9jb2wpO1xyXG4gICAgfVxyXG4gICAgLmNhbGxUb0FjdGlvbl9fYWN0aW9uIHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHRfY3RhX3RvdGFsX2NvbCk7XHJcbiAgICB9XHJcbiAgICAuY2FsbFRvQWN0aW9uX19pbWcge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNhbGxUb0FjdGlvbl9faGVhZCB7XHJcbiAgY29sb3I6ICMyYTBhMDA7XHJcbiAgZm9udC1zaXplOiByZW0tY2FsYyg0MCk7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIG1hcmdpbjogcmVtLWNhbGMoNSkgMDtcclxuICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbn1cclxuXHJcbi5jYWxsVG9BY3Rpb25fX2Rlc2MgIHtcclxuICBtYXJnaW46IHJlbS1jYWxjKDUpIDA7XHJcbiAgY29sb3I6ICMwNDA0MDQ7XHJcbiAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5jYWxsVG9BY3Rpb25fX2J1dHRvbiB7XHJcbiAgQGluY2x1ZGUgdF9idXR0b24oKTtcclxuICBjb2xvcjogJHRfY3RhX2J1dHRvbl9jb2xvcjtcclxuICBib3JkZXItY29sb3I6ICR0X2N0YV9idXR0b25fY29sb3I7XHJcbiAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMTUpO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gIC5jYWxsVG9BY3Rpb25fX2hlYWQge1xyXG4gICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XHJcbiAgfVxyXG4gIC5jYWxsVG9BY3Rpb25fX3RleHQge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxufSIsIiR0X2l0Yl9pbWdfY29sOiA2ICFkZWZhdWx0O1xyXG4kdF9pdGJfdGV4dF9jb2w6IDYgIWRlZmF1bHQ7XHJcblxyXG4kdF9pdGJfdG90YWxfY29sOiAkdF9pdGJfaW1nX2NvbCArICR0X2l0Yl90ZXh0X2NvbDtcclxuXHJcbi5pbWFnZVRleHRCbG9jayB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOiBuZXN0KTtcclxuICAuaW1hZ2VUZXh0QmxvY2tfX2ltZyB7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkdF9pdGJfaW1nX2NvbCk7XHJcbiAgfVxyXG4gIC5pbWFnZVRleHRCbG9ja19fdGV4dCB7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkdF9pdGJfdGV4dF9jb2wpO1xyXG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDY1KTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4uaW1hZ2VUZXh0QmxvY2tfX3RleHRfbGVmdCB7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG5cclxuLmltYWdlVGV4dEJsb2NrX190ZXh0X3JpZ2h0e1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4uaW1hZ2VUZXh0QmxvY2tfX2ltZ19sZWZ0e1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4uaW1hZ2VUZXh0QmxvY2tfX2ltZ19yaWdodHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG5cclxuLmltYWdlVGV4dEJsb2NrX190ZXh0X19saW5re1xyXG4gIEBpbmNsdWRlIHRfYnV0dG9uKCk7XHJcbn1cclxuXHJcbi5pbWFnZVRleHRCbG9ja19fdGV4dF9faGVhZHtcclxuICAgIGNvbG9yOiAkdF9wcmltYXJ5X2NvbG9yO1xyXG59XHJcblxyXG4uaW1hZ2VUZXh0QmxvY2tfX3RleHRfX2Rlc2N7XHJcbiAgICBjb2xvcjpncmF5O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG5cclxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAuaW1hZ2VUZXh0QmxvY2sge1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOiBuZXN0KTtcclxuICAgIC5pbWFnZVRleHRCbG9ja19faW1nIHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHRfaXRiX3RvdGFsX2NvbCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmltYWdlVGV4dEJsb2NrX190ZXh0IHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHRfaXRiX3RvdGFsX2NvbCk7XHJcbiAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg1KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5pbWFnZVRleHRCbG9ja19fdGV4dF9yaWdodCxcclxuICAuaW1hZ2VUZXh0QmxvY2tfX3RleHRfbGVmdCxcclxuICAuaW1hZ2VUZXh0QmxvY2tfX2ltZ19sZWZ0LFxyXG4gIC5pbWFnZVRleHRCbG9ja19faW1nX3JpZ2h0e1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiXHJcbiR0X3NyX3Bob3RvX3dpZHRoOiA4MHB4O1xyXG4kc2xpZGVIZWFkZXJfY29sb3I6ICR0X2hlYWRlcl9jb2xvcjtcclxuJHNsaWRlVGV4dF9jb2xvciA6JHRfcHJpbWFyeV9jb2xvcjtcclxuXHJcbi5zbGlkZVJldmlld3NfX2l0ZW0ge1xyXG4gIHBhZGRpbmc6IDAgMTBweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcblxyXG4uc2xpZGVSZXZpZXdzX19pdGVtX19waG90b3tcclxuICB3aWR0aDogMjIwcHg7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuLnNpbXBsZVJldmlld19faXRlbV9fcGhvdG9fX2ltZyB7XHJcbiAgcGFkZGluZzogMnB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDE0MHB4O1xyXG59XHJcblxyXG4uc2xpZGVSZXZpZXdzX19pdGVtX19oZWFke1xyXG4gIGNvbG9yOiAkc2xpZGVIZWFkZXJfY29sb3I7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XHJcbiAgcGFkZGluZy10b3A6IDIwcHg7XHJcblxyXG59XHJcbi5zbGlkZVJldmlld3NfX2l0ZW1fX2hlYWRfX3NtYWxsIHtcclxuICBjb2xvcjogJHNsaWRlVGV4dF9jb2xvcjtcclxuICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGNvbG9yOmJsYWNrO1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLnNsaWRlUmV2aWV3c19faXRlbV9fcmV2aWV3e1xyXG5cclxuICBjb2xvcjogJHNsaWRlVGV4dF9jb2xvcjtcclxuICBwYWRkaW5nLXRvcDogMTBweDtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG59XHJcblxyXG4uc2xpZGVSZXZpZXdzX19pdGVtX19yZXZpZXcgcHtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxuICBsaW5lLWhlaWdodDogMS4zO1xyXG59XHJcblxyXG4uc2xpZGVSZXZpZXdzX19oZWFke1xyXG4gIEBpbmNsdWRlIHRfaGVhZCgpO1xyXG59XHJcbi5zbGlkZVJldmlld3NfX2hlYWRfX3NtYWxsIHtcclxuICBAaW5jbHVkZSB0X3NtYWxsSGVhZGVyKCk7XHJcbn1cclxuLnNsaWNrLXByZXYsIC5zbGljay1wcmV2OmhvdmVyLCAuc2xpY2stcHJldjpmb2N1c3tcclxuICBiYWNrZ3JvdW5kOiB1cmwoJy9pbWcvcHJldmJ0LnBuZycpIG5vLXJlcGVhdDtcclxuICBsZWZ0OiAtODBweDtcclxuICAmOmJlZm9yZSB7XHJcbiAgY29udGVudDogJyc7XHJcbiAgfVxyXG59XHJcblxyXG4uc2xpY2stbmV4dCwgLnNsaWNrLW5leHQ6aG92ZXIsIC5zbGljay1uZXh0OmZvY3VzIHtcclxuICBiYWNrZ3JvdW5kOiB1cmwoJy9pbWcvbmV4dGJ0LnBuZycpIG5vLXJlcGVhdDtcclxuICByaWdodDogLTgwcHg7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG59XHJcbi5zbGljay1uZXh0LCAuc2xpY2stcHJldiB7XHJcbiAgaGVpZ2h0OiA0MXB4O1xyXG4gIHdpZHRoOiA0MXB4O1xyXG4gIHRvcDogMTAycHg7XHJcbn1cclxuLnNsaWNrLXNsaWRlciB7XHJcbiAgbWFyZ2luLWJvdHRvbTogODVweDtcclxufVxyXG4uVW5kZXJTbGlkZVRleHQge1xyXG4gIGNvbG9yOiAkc2xpZGVUZXh0X2NvbG9yO1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gIC5zbGlkZVJldmlld3NfX2l0ZW0ge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcbiAgLnNsaWNrLXNsaWRlciB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gIH1cclxuICAuc2xpZGVSZXZpZXdzX19pdGVtX19waG90b3tcclxuICAgIGZsb2F0Om5vbmU7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG4gIC5zbGlkZVJldmlld3NfX2hlYWRfX3NtYWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgfVxyXG5cclxuICAuc2xpZGVSZXZpZXdzX19pdGVtX19yZXZpZXcsIC5zbGlkZVJldmlld3NfX2l0ZW1fX2hlYWR7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBtYXJnaW4tbGVmdDowO1xyXG4gIH1cclxufSIsIi5mYXFfX2hlYWR7XHJcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuICAgIGNvbG9yOiR0X3ByaW1hcnlfY29sb3I7XHJcbn0iLCIubWFwe1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLm1hcF9fYWRkcmVzc3tcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZzogNXB4ICAyNXB4IDVweCA2MHB4O1xyXG4gIGNvbG9yOiAjZmZmZmZmO1xyXG4gIGJhY2tncm91bmQ6ICM0YjJkMDE7XHJcbiAgdG9wOiA0MHB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcbn0iLCJcclxuXHJcblxyXG4uY29weXJpZ2h0e1xyXG4gIEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjogbmVzdCk7XHJcbiAgLmNvcHlyaWdoX19zaXRle1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNik7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxuICAuY29weXJpZ2hfX2RvU2l0ZXN7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig2KTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAuY29weXJpZ2h0e1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOiBuZXN0KTtcclxuICAgIC5jb3B5cmlnaF9fc2l0ZXtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAuY29weXJpZ2hfX2RvU2l0ZXN7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNvcHlyaWdoX19kb1NpdGVzX19saW5rLCAuY29weXJpZ2h0X19zaXRlX19saW5rLCAuY29weXJpZ2hfX3NpdGVfX3RleHR7XHJcbiAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbiAgJjpob3ZlcntcclxuICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gIH1cclxufSIsIi5zZXJ2aWNlc19faXRlbSB7XHJcbiAgd2lkdGg6IDUwJTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYyg2MCk7XHJcbiAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoNjApO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2ZlZDMzZjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAmOmxhc3QtY2hpbGQge1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgI2ZlZDMzZjtcclxuICB9XHJcbiAgbWluLWhlaWdodDogNDc1cHg7XHJcbn1cclxuLnNlcnZpY2VzX19oZWFkIHtcclxuICBAaW5jbHVkZSB0X2hlYWQoKTtcclxufVxyXG4uc2VydmljZXNfX2hlYWRfX3NtYWxsIHtcclxuICBAaW5jbHVkZSB0X3NtYWxsSGVhZGVyKCk7XHJcbn1cclxuLnNlcnZpY2VzX19pdGVtX19yZXZpZXcge1xyXG4gIGNvbG9yOiAkdF9wcmltYXJ5X2NvbG9yO1xyXG59XHJcbi5zZXJ2aWNlc19faXRlbV9fcmV2aWV3IHAge1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xyXG59XHJcbi5zZXJ2aWNlc19faXRlbV9faGVhZCB7XHJcbiAgY29sb3I6ICMzZjNmM2Y7XHJcbiAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuLnNlcnZpY2VzX19pdGVtX19waG90byB7XHJcbiAgcGFkZGluZy10b3A6IDUwcHg7XHJcbn1cclxuXHJcblxyXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gIC5zZXJ2aWNlc19faXRlbSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMTUpO1xyXG4gICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTUpO1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgI2ZlZDMzZjtcclxuICB9XHJcbiAgLnNlcnZpY2VzX19pdGVtX19waG90byB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICB9XHJcbiAgLnNlcnZpY2VzX19pdGVtX19oZWFkIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgfVxyXG59XHJcbiIsIi5wb3J0Zm9saW9fX2hlYWQge1xyXG4gIEBpbmNsdWRlIHRfaGVhZCgpO1xyXG59XHJcbi5wb3J0Zm9saW9fX2hlYWRfX3NtYWxsIHtcclxuICBAaW5jbHVkZSB0X3NtYWxsSGVhZGVyKCk7XHJcbn1cclxuLnBvcnRmb2xpb19fYmxvY2sge1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMTUpO1xyXG4gIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDE1KTtcclxuICBmbG9hdDogbGVmdDtcclxufVxyXG4ucG9ydGZvbGlvX19ibG9ja19fbGlzdCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG59XHJcbi5wb3J0Zm9saW9fX2l0ZW1fX3RleHQge1xyXG4gIGNvbG9yOiAjMjAxNjAwO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xyXG4gIG1hcmdpbi1sZWZ0OiA2NXB4O1xyXG59XHJcbi5wb3J0Zm9saW9fX2l0ZW0ge1xyXG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG59XHJcbi5wb3J0Zm9saW9fX2l0ZW1fX2ltZyB7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbn1cclxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAucG9ydGZvbGlvX19ibG9jayB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMTUpO1xyXG4gICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTUpO1xyXG4gIH1cclxuICAucG9ydGZvbGlvX19pdGVtX190ZXh0IHtcclxuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG4gIC5wb3J0Zm9saW9fX2l0ZW1fX2ltZyB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgfVxyXG59IiwiLmJ1YmJsZXMge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uYnViYmxlc19faGVhZCB7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzIpO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuXHJcblxyXG4keWVsbG93OiAjZmVkMTM2O1xyXG4uYnViYmxlIHtcclxuICBib3JkZXI6IDdweCBzb2xpZCAjZjFmMWYxO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGJhY2tncm91bmQ6ICR5ZWxsb3c7XHJcbiAgd2lkdGg6IDIwN3B4O1xyXG4gIGhlaWdodDogMjA3cHg7XHJcbiAgbWFyZ2luOiAwIGF1dG8gMjBweDtcclxuXHJcbn1cclxuXHJcbi5idWJibGVfX251bWJlciB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoNTApO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHRleHQtc2hhZG93OiAxcHggMXB4IDAgI2U2OWUxYTtcclxuICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gIHNtYWxsIHtcclxuXHRmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcclxuXHRmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIH1cclxufVxyXG5cclxuLmJ1YmJsZV9fdGV4dCB7XHJcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBjb2xvcjogIzQ2NWE4YjtcclxuICBmb250LXNpemU6IHJlbS1jYWxjKDExKTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XHJcblxyXG59XHJcblxyXG5cclxuXHJcblxyXG5AbWVkaWEgI3skbWVkaXVtLXVwfXtcclxuXHJcbiAgLmJ1YmJsZXNfX2hlYWQge1xyXG4gICAgdGV4dC1zaGFkb3c6IDBweCAwcHggNnB4IHJnYmEoMCwwLDAsMC43KTtcclxuICB9XHJcbiAgLmJ1YmJsZXMge1xyXG5cdG92ZXJmbG93OiBhdXRvO1xyXG5cdG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgfVxyXG4gIC5idWJibGUge1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB9XHJcbiAgLmJ1YmJsZV9fd3Ige1xyXG5cdHdpZHRoOiA1MCU7XHJcblx0ZmxvYXQ6IGxlZnQ7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhICN7JGxhcmdlLXVwfXtcclxuICAuYnViYmxlcyB7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIG1hcmdpbi10b3A6IDEwMHB4O1xyXG4gIH1cclxuICAuYnViYmxlX193ciB7XHJcbiAgICB3aWR0aDogMjUlO1xyXG4gIH1cclxufSIsIi5hYm91dF9faGVhZCB7XHJcbiAgQGluY2x1ZGUgdF9oZWFkKCk7XHJcbiAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xyXG59XHJcbi5hYm91dF9faGVhZF9fc21hbGwge1xyXG4gIEBpbmNsdWRlIHRfc21hbGxIZWFkZXIoKTtcclxufVxyXG4uYWJvdXRfX2l0ZW1fX2J1dHRvbiB7XHJcbiAgQGluY2x1ZGUgdF9idXR0b24oKTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgbWFyZ2luLWxlZnQ6IDM0MXB4O1xyXG59XHJcbi5hYm91dCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTEwcHg7XHJcbn1cclxuLmFib3V0X19pdGVtIHtcclxuICBtYXJnaW46IDAgYXV0bztcclxuXHJcbn1cclxuLmFib3V0X19pdGVtX19waG90byB7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcblxyXG59XHJcbi5hYm91dF9faXRlbV9fcGhvdG9fX2ltZyB7XHJcbiAgcGFkZGluZzogMnB4O1xyXG4gIGJvcmRlcjogNXB4IHNvbGlkICNmMWYxZjE7XHJcbiAgYm9yZGVyLXJhZGl1czogMTQwcHg7XHJcbiAgaGVpZ2h0OiAyODFweDtcclxuICB3aWR0aDogMjgxcHg7XHJcbn1cclxuLmFib3V0X19pdGVtX19oZWFkIHtcclxuICBjb2xvcjogIzc3Nzc3NztcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcclxuICBsaW5lLWhlaWdodDogMS4yO1xyXG4gIG1hcmdpbi1sZWZ0OiAzNDFweDtcclxufVxyXG4uYWJvdXRfX2l0ZW1fX3ByZWhlYWRlciB7XHJcbiAgY29sb3I6ICMzZjNmM2Y7XHJcbiAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICBtYXJnaW4tbGVmdDogMzQxcHg7XHJcbn1cclxuLmFib3V0X19pdGVtX19yZXZpZXcge1xyXG4gIG1hcmdpbi1sZWZ0OiAzNDFweDtcclxufVxyXG5cclxuLmFib3V0X19pdGVtX19yZXZpZXcgcHtcclxuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxuICBjb2xvcjogIzc3Nzc3NztcclxuICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgdGV4dC1pbmRlbnQ6IHJlbS1jYWxjKDE1KTtcclxufVxyXG5cclxuXHJcblxyXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gIC5hYm91dCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIH1cclxuICAuYWJvdXRfX2l0ZW1fX3Bob3RvIHtcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICB9XHJcbiAgLmFib3V0X19pdGVtX19waG90b19faW1nIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gIH1cclxuICAuYWJvdXRfX2l0ZW1fX2J1dHRvbiB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG5cclxuICB9XHJcblxyXG4gIC5hYm91dF9faXRlbV9faGVhZHtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gIH1cclxuXHJcbiAgLmFib3V0X19pdGVtX19wcmVoZWFkZXJ7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICB9XHJcblxyXG4gIC5hYm91dF9faXRlbV9fcmV2aWV3e1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgfVxyXG5cclxuICAuYWJvdXRfX2l0ZW0ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG59Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUNJQSxnRkFBZ0Y7QUFTaEYseUNBQXlDO0FBNEJ6Qyw0Q0FBNEM7QUFHNUMsaURBQWlEO0FFNUNqRCw0REFBNEQ7QUFFNUQ7Ozs7R0FJRztBQUVILEFBQUEsSUFBSSxDQUFDO0VBQ0gsV0FBVyxFQUFFLFVBQVU7RUFBRyxPQUFPO0VBQ2pDLG9CQUFvQixFQUFFLElBQUk7RUFBRyxPQUFPO0VBQ3BDLHdCQUF3QixFQUFFLElBQUk7RUFBRyxPQUFPLEVBQ3pDOztBQUVEOztHQUVH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 */
