@charset "UTF-8";
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after {
  content: "";
  content: none; }

q:before, q:after {
  content: "";
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS and IE text size adjust after device 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.
   */
[hidden] {
  display: none; }

/**
* Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
*/
template {
  display: none; }

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

/**
* Improve readability of focused elements when they are also in an
* active/hover state.
*/
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.666667em 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 {
  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.
*/
input[type='search'] {
  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; }

.old-browsers {
  z-index: 9999;
  position: relative;
  background: #fff;
  width: 100%;
  height: 100%;
  color: black;
  font-family: sans-serif;
  font-size: 20px;
  text-align: center;
  padding: 0;
  margin: 0; }
  .old-browsers h2 {
    padding: 20px 0 20px 0; }
  .old-browsers p, .old-browsers ul {
    margin: 0 auto; }
  .old-browsers p {
    max-width: 700px;
    padding-bottom: 50px;
    line-height: 1.4em; }
  .old-browsers ul li {
    display: inline-block;
    padding: 0 25px; }
    .old-browsers ul li img {
      width: 115px; }
    .old-browsers ul li p {
      padding-top: 15px;
      color: #249AE1; }

body {
  margin: 0;
  padding: 0; }

/*  Syntax Quick Reference
  --------------------------
  column($ratios: 1, $offset: 0, $cycle: 0, $uncycle: 0, $gutter: $jeet-gutter)
  span($ratio: 1, $offset: 0)
  shift($ratios: 0, $col_or_span: column, $gutter: $jeet-gutter)
  unshift()
  edit()
  center($max_width: 1410px, $pad: 0)
  stack($pad: 0, $align: false)
  unstack()
  align($direction: both)
  cf()
*/
/**
 * Grid settings.
 * All values are defaults and can therefore be easily overidden.
 */
/**
 * List functions courtesy of the wonderful folks at Team Sass.
 * Check out their awesome grid: Singularity.
 */
/**
 * Get  percentage from a given ratio.
 * @param {number} [$ratio=1] - The column ratio of the element.
 * @returns {number} - The percentage value.
 */
/**
 * Work out the column widths based on the ratio and gutter sizes.
 * @param {number} [$ratios=1] - The column ratio of the element.
 * @param {number} [$gutter=$jeet-gutter] - The gutter for the column.
 * @returns {list} $width $gutter - A list containing the with and gutter for the element.
 */
/**
 * Get the set layout direction for the project.
 * @returns {string} $direction - The layout direction.
 */
/**
 * Replace a specified list value with a new value (uses built in set-nth() if available)
 * @param {list} $list - The list of values you want to alter.
 * @param {number} $index - The index of the list item you want to replace.
 * @param {*} $value - The value you want to replace $index with.
 * @returns {list} $list - The list with the value replaced or removed.
 * @warn if an invalid index is supplied.
 */
/**
 * Reverse a list (progressively enhanced for Sass 3.3)
 * @param {list} $list - The list of values you want to reverse.
 * @returns {list} $result - The reversed list.
 */
/**
 * Get the opposite direction to a given value.
 * @param {string} $dir - The direction you want the opposite of.
 * @returns {string} - The opposite direction to $dir.
 * @warn if an incorrect string is provided.
 */
/**
 * Style an element as a column with a gutter.
 * @param {number} [$ratios=1] - A width relative to its container as a fraction.
 * @param {number} [$offset=0] - A offset specified as a fraction (see $ratios).
 * @param {number} [$cycle=0] - Easily create an nth column grid where $cycle equals the number of columns.
 * @param {number} [$uncycle=0] - Undo a previous cycle value to allow for a new one.
 * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width.
 */
/**
 * An alias for the column mixin.
 * @param [$args...] - All arguments get passed through to column().
 */
/**
 * Get the width of a column and nothing else.
 * @param {number} [$ratios=1] - A width relative to its container as a fraction.
 * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width.
 */
/**
 * Get the gutter size of a column and nothing else.
 * @param {number} [ratios=1] - A width relative to its container as a fraction.
 * @param {number} [gutter=jeet.gutter] - Specify the gutter width as a percentage of the containers width.
 */
/**
 * An alias for the column-width function.
 * @param [$args...] - All arguments get passed through to column().
 */
/**
 * An alias for the column-gutter function.
 * @param [$args...] - All arguments get passed through to column().
 */
/**
 * Style an element as a column without any gutters for a seamless row.
 * @param {number} [$ratios=1] - A width relative to its container as a fraction.
 * @param {number} [$offset=0] - A offset specified as a fraction (see $ratios).
 * @param {number} [cycle=0] - Easily create an nth column grid where cycle equals the number of columns.
 * @param {number} [uncycle=0] - Undo a previous cycle value to allow for a new one.
 */
/**
 * Reorder columns without altering the HTML.
 * @param {number} [$ratios=0] - Specify how far along you want the element to move.
 * @param {string} [$col-or-span=column] - Specify whether the element has a gutter or not.
 * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width.
 */
/**
 * Reset an element that has had shift() applied to it.
 */
/**
 * View the grid and its layers for easy debugging.
 * @param {string} [$color=black] - The background tint applied.
 * @param {boolean} [$important=false] - Whether to apply the style as !important.
 */
/**
 *  Alias for edit().
 */
/**
 * Horizontally center an element.
 * @param {number} [$max-width=1410px] - The max width the element can be.
 * @param {number} [$pad=0] - Specify the element's left and right padding.
 */
/**
 * Uncenter an element.
 */
/**
 * Stack an element so that nothing is either side of it.
 * @param {number} [$pad=0] - Specify the element's left and right padding.
 * @param {boolean/string} [$align=false] - Specify the text align for the element.
 */
/**
 * Unstack an element.
 */
/**
 * Center an element on either or both axes.
 * @requires A parent container with relative positioning.
 * @param {string} [$direction=both] - Specify which axes to center the element on.
 */
/**
 * Apply a clearfix to an element.
 */
p a {
  color: deepskyblue;
  -webkit-transition: all .3s ease;
          transition: all .3s ease; }
  p a:hover {
    text-decoration: underline;
    color: #0099cc; }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

/* Slider */
.slick-loading .slick-list {
  background: #fff url(".//img/ajax-loader.gif") center center no-repeat; }

/* Icons */
@font-face {
  font-family: "slick";
  src: url("./fonts/slick.eot");
  src: url("./fonts/slick.eot?#iefix") format("embedded-opentype"), url("./fonts/slick.woff") format("woff"), url("./fonts/slick.ttf") format("truetype"), url("./fonts/slick.svg#slick") format("svg");
  font-weight: normal;
  font-style: normal; }

/* Arrows */
.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  margin-top: -10px;
  padding: 0;
  border: none;
  outline: none; }
  .slick-prev:hover, .slick-prev:focus,
  .slick-next:hover,
  .slick-next:focus {
    outline: none;
    background: transparent;
    color: transparent; }
    .slick-prev:hover:before, .slick-prev:focus:before,
    .slick-next:hover:before,
    .slick-next:focus:before {
      opacity: 1; }
  .slick-prev.slick-disabled:before,
  .slick-next.slick-disabled:before {
    opacity: 0.25; }

.slick-prev:before, .slick-next:before {
  font-family: "slick";
  font-size: 20px;
  line-height: 1;
  color: white;
  opacity: 0.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.slick-prev {
  left: -25px; }
  [dir="rtl"] .slick-prev {
    left: auto;
    right: -25px; }
  .slick-prev:before {
    content: "←"; }
    [dir="rtl"] .slick-prev:before {
      content: "→"; }

.slick-next {
  right: -25px; }
  [dir="rtl"] .slick-next {
    left: -25px;
    right: auto; }
  .slick-next:before {
    content: "→"; }
    [dir="rtl"] .slick-next:before {
      content: "←"; }

/* Dots */
.slick-slider {
  margin-bottom: 30px; }

.slick-dots {
  position: absolute;
  bottom: -45px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  width: 100%; }
  .slick-dots li {
    position: relative;
    display: inline-block;
    height: 20px;
    width: 20px;
    margin: 0 5px;
    padding: 0;
    cursor: pointer; }
    .slick-dots li button {
      border: 0;
      background: transparent;
      display: block;
      height: 20px;
      width: 20px;
      outline: none;
      line-height: 0px;
      font-size: 0px;
      color: transparent;
      padding: 5px;
      cursor: pointer; }
      .slick-dots li button:hover, .slick-dots li button:focus {
        outline: none; }
        .slick-dots li button:hover:before, .slick-dots li button:focus:before {
          opacity: 1; }
      .slick-dots li button:before {
        position: absolute;
        top: 0;
        left: 0;
        content: "•";
        width: 20px;
        height: 20px;
        font-family: "slick";
        font-size: 6px;
        line-height: 20px;
        text-align: center;
        color: black;
        opacity: 0.25;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
    .slick-dots li.slick-active button:before {
      color: black;
      opacity: 0.75; }

.default-type, body, p, a, h1, h2, h3, h4, h5, h6,
small, em, strong, input, button {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #444;
  font-weight: normal;
  font-style: normal;
  -webkit-font-smoothing: antialiased; }

h1, h2, h3, h4, h5, h6 {
  display: block;
  margin: 1rem 0;
  font-family: "FranklinGothic URW Cond", sans-serif;
  font-weight: normal; }
  h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child {
    margin-top: 0; }
  h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    color: inherit; }

h3 {
  font-family: "proxima-nova", "Proxima Nova", sans-serif;
  font-weight: 600; }

h4 {
  font-family: "proxima-nova", "Proxima Nova", sans-serif;
  font-weight: 400; }

p {
  font-family: "proxima-nova", "Proxima Nova", sans-serif; }

h1 {
  font-size: -webkit-calc(36px + 20 * ((100vw - 420px) / 604));
  font-size: calc(36px + 20 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h1 {
      font-size: 36px; } }
  @media screen and (min-width: 1024px) {
    h1 {
      font-size: 56px; } }

h2 {
  font-size: -webkit-calc(36px + 6 * ((100vw - 420px) / 604));
  font-size: calc(36px + 6 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h2 {
      font-size: 36px; } }
  @media screen and (min-width: 1024px) {
    h2 {
      font-size: 42px; } }

h3 {
  font-size: -webkit-calc(24px + 0 * ((100vw - 420px) / 604));
  font-size: calc(24px + 0 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h3 {
      font-size: 24px; } }
  @media screen and (min-width: 1024px) {
    h3 {
      font-size: 24px; } }

h4 {
  font-size: -webkit-calc(24px + 4 * ((100vw - 420px) / 604));
  font-size: calc(24px + 4 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h4 {
      font-size: 24px; } }
  @media screen and (min-width: 1024px) {
    h4 {
      font-size: 28px; } }

h5 {
  font-size: -webkit-calc(20px + 6 * ((100vw - 420px) / 604));
  font-size: calc(20px + 6 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h5 {
      font-size: 20px; } }
  @media screen and (min-width: 1024px) {
    h5 {
      font-size: 26px; } }

h6 {
  font-size: -webkit-calc(18px + 6 * ((100vw - 420px) / 604));
  font-size: calc(18px + 6 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h6 {
      font-size: 18px; } }
  @media screen and (min-width: 1024px) {
    h6 {
      font-size: 24px; } }

p, ul, li, ol {
  font-size: -webkit-calc(15px + 3 * ((100vw - 420px) / 480));
  font-size: calc(15px + 3 * ((100vw - 420px) / 480)); }
  @media screen and (max-width: 420px) {
    p, ul, li, ol {
      font-size: 15px; } }
  @media screen and (min-width: 900px) {
    p, ul, li, ol {
      font-size: 18px; } }

p {
  line-height: 1.5em;
  margin: 1em 0; }

a {
  text-decoration: none; }

.container {
  width: auto;
  max-width: 1920px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 0;
  padding-right: 0;
  background: #FFFFFF;
  border: 1px solid #C8CBCD; }
  .container:after {
    clear: both;
    content: '';
    display: table; }

.inner-container {
  width: auto;
  max-width: 1280px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 5%;
  padding-right: 5%; }
  .inner-container:after {
    clear: both;
    content: '';
    display: table; }
  @media (max-width: 767px) {
    .inner-container {
      padding: 0 4%; }
      .inner-container.inner-container-mobile-break {
        padding: 0%;
        max-width: 100%; } }

body.category-marketing .blog-post-overlay, body.category-research .blog-post-overlay, body.category-design .blog-post-overlay, body.category-product .blog-post-overlay, body.category-cx .blog-post-overlay {
  display: none !important; }

.cf:after {
  clear: both;
  content: '';
  display: table; }

html {
  box-sizing: border-box; }

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

button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  font: inherit;
  -webkit-font-smoothing: antialiased;
  margin: 0;
  padding: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  width: auto; }
  button::-moz-focus-inner,
  input[type="button"]::-moz-focus-inner,
  input[type="submit"]::-moz-focus-inner,
  input[type="reset"]::-moz-focus-inner {
    border: 0;
    padding: 0; }

figure {
  margin: 0; }

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

textarea {
  resize: vertical; }

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

p:first-of-type {
  margin-top: 0; }

p:last-of-type {
  margin-bottom: 0; }

a,
label,
select,
option,
button {
  cursor: pointer; }

input {
  -webkit-appearance: none;
  border-radius: 0;
  outline: none; }

code {
  padding: 3px 4px;
  color: #2196F3;
  background-color: #eff1f2;
  border: 1px solid #d3d8dc;
  border-radius: 3px;
  font-family: Menlo, Monaco, monospace; }

pre {
  display: block;
  padding: 7px;
  background-color: #eff1f2;
  border: 1px solid #d3d8dc;
  border-radius: 3px;
  white-space: pre-wrap;
  word-break: break-all;
  font-family: Menlo, Monaco, monospace;
  line-height: 160%; }

hr {
  border: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
  height: 0;
  padding: 0;
  margin: 1.5em 0; }

nav ul {
  margin: 0;
  padding: 0; }
  nav ul li {
    float: none;
    list-style-type: none;
    margin: 0;
    padding: 0; }

ul.text {
  margin: .32rem .94rem;
  padding-left: 1rem; }
  ul.text li {
    list-style-type: disc;
    padding: .125rem 0; }

ol.text {
  margin: .32rem .94rem;
  padding-left: 1rem; }
  ol.text li {
    list-style-type: decimal;
    padding: .125rem 0; }

ul.text ul, ul.text ol, ol.text ol, ol.text ul {
  margin: .3rem 1rem 0; }

strong {
  font-weight: bold; }

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

#wpadminbar {
  display: none; }

.blog-brb .blog-post-hero {
  height: 99vh; }
  .blog-brb .blog-post-hero p {
    max-width: 80%;
    margin: 0 auto;
    color: #FFFFFF;
    font-size: 1.375rem;
    margin-bottom: 1.5625rem; }

.blog-brb header, .blog-brb footer {
  position: fixed !important;
  z-index: 99 !important;
  width: 100%; }

.blog-brb header {
  top: 0px; }

.blog-brb footer {
  bottom: 0px; }

.blog-brb .header-item {
  text-align: left !important; }

.blog-brb .bottom-header {
  height: 73px; }

.general {
  padding: 7.8125rem 0;
  text-align: center; }
  .general .btn {
    margin-top: 3.125rem;
    padding: 0.625rem 3.125rem; }

.nc_socialPanelSide {
  display: none; }
  @media (max-width: 767px) {
    .nc_socialPanelSide {
      top: initial !important;
      bottom: 0px !important;
      left: 0px !important;
      width: 100% !important;
      text-align: center;
      z-index: 90 !important; } }

.nc_tweetContainer {
  max-width: 40px !important;
  width: 40px !important;
  height: 40px !important;
  float: none !important;
  border-radius: 50% !important; }

div.nc_socialPanel .nc_tweetContainer {
  margin: 20px auto !important; }
  @media (max-width: 767px) {
    div.nc_socialPanel .nc_tweetContainer {
      margin: 0px 10px !important;
      display: inline-block !important; } }

.nc_socialPanel a .sw_count {
  padding: 0 !important; }

.nc_socialPanel .iconFiller {
  max-width: 30px !important; }

.sw {
  width: auto !important;
  margin: 4px 8px !important; }

.sw_share {
  display: none !important; }

.sw:before {
  color: #444; }

.slice {
  display: table;
  table-layout: fixed;
  width: 100%; }

.slice-item {
  display: table-cell;
  vertical-align: top; }

a.btn,
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  padding: 10px 22px;
  border-radius: 3px;
  background-color: #8ABF51;
  color: #FFF;
  cursor: pointer;
  line-height: 1em;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  border: none;
  -webkit-transition: all .2s ease;
          transition: all .2s ease;
  border-radius: 0px !important;
  font-weight: bold;
  text-transform: uppercase; }
  a.btn:hover,
  button:hover,
  input[type="button"]:hover,
  input[type="submit"]:hover,
  input[type="reset"]:hover {
    background-color: #70a23b; }
  a.btn.btn-white,
  button.btn-white,
  input[type="button"].btn-white,
  input[type="submit"].btn-white,
  input[type="reset"].btn-white {
    background-color: transparent;
    border: 2px solid #FFFFFF;
    border-color: #FFFFFF; }
    a.btn.btn-white:hover,
    button.btn-white:hover,
    input[type="button"].btn-white:hover,
    input[type="submit"].btn-white:hover,
    input[type="reset"].btn-white:hover {
      background: #FFFFFF;
      color: #0082CA; }
  a.btn.btn-orange,
  button.btn-orange,
  input[type="button"].btn-orange,
  input[type="submit"].btn-orange,
  input[type="reset"].btn-orange {
    background-color: #F58220;
    border: 2px solid #FFFFFF;
    border-color: #FFFFFF; }
    a.btn.btn-orange:hover,
    button.btn-orange:hover,
    input[type="button"].btn-orange:hover,
    input[type="submit"].btn-orange:hover,
    input[type="reset"].btn-orange:hover {
      background: #CD6632;
      color: #FFFFFF; }

.blog-hero-carousel {
  position: relative;
  width: 100%;
  background: #1984bc;
  /* test */ }
  @media (max-width: 1023px) {
    .blog-hero-carousel {
      min-height: auto; } }
  .blog-hero-carousel .slide {
    position: relative;
    height: 43vh;
    min-height: 350px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat; }
    @media (max-width: 767px) {
      .blog-hero-carousel .slide {
        min-height: auto; } }
    .blog-hero-carousel .slide h2, .blog-hero-carousel .slide h5, .blog-hero-carousel .slide p, .blog-hero-carousel .slide a {
      color: #FFFFFF; }
    .blog-hero-carousel .slide h2 {
      font-weight: 500; }
    .blog-hero-carousel .slide h5 {
      width: 90%;
      line-height: 2rem;
      font-family: "proxima-nova", "Proxima Nova", sans-serif; }
    .blog-hero-carousel .slide a {
      margin-top: 0.625rem; }
    .blog-hero-carousel .slide img {
      float: left;
      clear: none;
      text-align: inherit;
      width: 22.75%;
      margin-left: 0%;
      margin-right: 3%;
      width: 24.5%; }
      .blog-hero-carousel .slide img:after {
        clear: both;
        content: '';
        display: table; }
      .blog-hero-carousel .slide img:last-child {
        margin-right: 0%; }
      @media (max-width: 1023px) {
        .blog-hero-carousel .slide img {
          float: left;
          clear: none;
          text-align: inherit;
          width: 31.333333%;
          margin-left: 0%;
          margin-right: 3%; }
          .blog-hero-carousel .slide img:after {
            clear: both;
            content: '';
            display: table; }
          .blog-hero-carousel .slide img:last-child {
            margin-right: 0%; } }
    @media (max-width: 767px) {
      .blog-hero-carousel .slide:first-child {
        display: none; } }
  .blog-hero-carousel .slide-cta, .blog-hero-carousel .slide-article {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }
  .blog-hero-carousel .slick-dots {
    bottom: 1.5625rem; }
    .blog-hero-carousel .slick-dots li {
      margin: 0 0.625rem; }
      .blog-hero-carousel .slick-dots li.slick-active button:before {
        color: #FFFFFF; }
    .blog-hero-carousel .slick-dots button:before {
      color: #FFFFFF;
      font-size: 1.875rem; }

input.blog-email {
  float: left;
  clear: none;
  text-align: inherit;
  width: 60%;
  margin-left: 0%;
  margin-right: 0%;
  max-width: 18.75rem;
  padding: 0.625rem 1.375rem;
  border: 0rem; }
  input.blog-email:after {
    clear: both;
    content: '';
    display: table; }
  @media (max-width: 767px) {
    input.blog-email {
      max-width: initial;
      padding: 0.6875rem 1.375rem; } }
  @media (max-width: 771px) {
    input.blog-email {
      float: left;
      clear: none;
      text-align: inherit;
      width: 50%;
      margin-left: 0%;
      margin-right: 0%;
      height: 2.625rem; }
      input.blog-email:after {
        clear: both;
        content: '';
        display: table; } }

button.blog-submit {
  float: left;
  clear: none;
  text-align: inherit;
  width: 40%;
  margin-left: 0%;
  margin-right: 0%;
  padding: 0.75rem 1.375rem;
  font-weight: bold;
  text-transform: uppercase;
  text-align: center; }
  button.blog-submit:after {
    clear: both;
    content: '';
    display: table; }
  @media (max-width: 767px) {
    button.blog-submit {
      text-align: center; } }
  @media (max-width: 771px) {
    button.blog-submit {
      float: left;
      clear: none;
      text-align: inherit;
      width: 50%;
      margin-left: 0%;
      margin-right: 0%;
      text-align: center;
      height: 2.625rem; }
      button.blog-submit:after {
        clear: both;
        content: '';
        display: table; } }

.hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(35, 31, 32, 0.38); }

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

.slide-article {
  z-index: 3;
  text-align: center; }
  .slide-article input, .slide-article img {
    display: none; }

.slide-cta .slide-center {
  margin: 0 auto;
  width: 100%; }
  .slide-cta .slide-center:after {
    clear: both;
    content: '';
    display: table; }

.slide-cta .slide-split {
  float: left;
  clear: none;
  text-align: inherit;
  width: 74.25%;
  margin-left: 0%;
  margin-right: 3%;
  max-width: 45.625rem;
  padding-left: 4%;
  padding-top: 0; }
  .slide-cta .slide-split:after {
    clear: both;
    content: '';
    display: table; }
  .slide-cta .slide-split:last-child {
    margin-right: 0%; }
  @media (max-width: 1023px) {
    .slide-cta .slide-split {
      float: left;
      clear: none;
      text-align: inherit;
      width: 65.666667%;
      margin-left: 0%;
      margin-right: 3%; }
      .slide-cta .slide-split:after {
        clear: both;
        content: '';
        display: table; }
      .slide-cta .slide-split:last-child {
        margin-right: 0%; } }
  .slide-cta .slide-split .blog-email {
    height: 42px;
    padding: 10px 15px; }

.mobile-signup-slide {
  display: none;
  padding: 1.5625rem 0;
  background: #444; }
  .mobile-signup-slide:after {
    clear: both;
    content: '';
    display: table; }
  .mobile-signup-slide h5 {
    color: #FFFFFF;
    text-align: center;
    font-size: 1.0625rem;
    font-family: "proxima-nova", "Proxima Nova", sans-serif; }
  @media (max-width: 767px) {
    .mobile-signup-slide {
      display: block; } }

.thanksstuff {
  display: none; }
  .thanksstuff h5 {
    font-weight: bold;
    color: white; }
  .thanksstuff p {
    margin: 1.5625rem 0;
    font-size: 0.875rem;
    color: white; }

.blog-nav {
  padding: 0.625rem 0;
  background: #E8E9EA;
  display: block; }
  @media (max-width: 767px) {
    .blog-nav {
      display: none; } }

.blog-filters {
  display: block;
  text-align: center;
  width: 100%; }
  .blog-filters li {
    position: relative;
    display: inline-block;
    padding: 0 2.5%;
    border-right: 2px solid #C8CBCD; }
    .blog-filters li:after {
      clear: both;
      content: '';
      display: table; }
    .blog-filters li:last-child {
      border-right: none; }
    .blog-filters li span {
      display: none;
      width: 0;
      height: 0;
      border-left: 10px solid transparent;
      border-right: 10px solid transparent;
      border-top: 10px solid #E8E9EA;
      position: absolute;
      bottom: -20px;
      left: 40%; }
      .blog-filters li span.is-active {
        display: block; }
    .blog-filters li a {
      font-size: 1rem;
      text-transform: capitalize; }
      .blog-filters li a.is-active {
        color: #0082CA;
        font-weight: bold; }
  @media (max-width: 767px) {
    .blog-filters {
      display: none; }
      .blog-filters li {
        display: block;
        padding: 0;
        border-right: 0px; }
        .blog-filters li a {
          display: block;
          padding: 1.125rem 5%;
          border-bottom: 2px solid #FFFFFF; } }

.blog-footer {
  width: 100%;
  display: table;
  margin-bottom: 1.5625rem; }
  @media (max-width: 767px) {
    .blog-footer {
      padding: 0 !important;
      margin: 0 !important;
      width: 100%; } }

.blog-footer-item {
  position: relative;
  display: table-cell;
  overflow: auto;
  zoom: 1; }
  .blog-footer-item:first-child {
    width: 60%; }
    .blog-footer-item:first-child .blog-footer-item-inner {
      margin-right: 1.5625rem;
      background-color: #E8E9EA; }
      .blog-footer-item:first-child .blog-footer-item-inner h5 {
        margin-bottom: 0.625rem;
        font-weight: bold; }
      .blog-footer-item:first-child .blog-footer-item-inner ul {
        margin: 0.625rem 0 1.5625rem 0; }
      .blog-footer-item:first-child .blog-footer-item-inner li {
        display: inline;
        padding: 0 0.625rem 0.625rem 0;
        font-weight: bold; }
      .blog-footer-item:first-child .blog-footer-item-inner span {
        color: #8ABF51;
        padding-right: 0.3125rem; }
    @media (max-width: 767px) {
      .blog-footer-item:first-child {
        text-align: center; }
        .blog-footer-item:first-child p {
          font-size: 0.875rem; }
        .blog-footer-item:first-child li {
          font-size: 0.875rem;
          padding-right: 0.3125rem; } }
    @media (max-width: 639px) {
      .blog-footer-item:first-child li {
        float: left;
        clear: none;
        text-align: inherit;
        width: 100%;
        margin-left: 0%;
        margin-right: 0%; }
        .blog-footer-item:first-child li:after {
          clear: both;
          content: '';
          display: table; }
        .blog-footer-item:first-child li:last-child {
          margin-bottom: 0.625rem; } }
  .blog-footer-item:last-child {
    width: 40%;
    background-size: cover;
    background-position: top center;
    background-repeat: no-repeat;
    position: relative; }
    .blog-footer-item:last-child .blog-footer-item-inner {
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%;
      padding: 0; }
  @media (max-width: 767px) {
    .blog-footer-item {
      display: block;
      width: 100% !important; }
      .blog-footer-item:last-child {
        min-height: 14.0625rem; }
      .blog-footer-item .blog-footer-item-inner {
        margin-right: 0 !important; } }

.blog-footer-item-inner {
  padding: 1.25rem; }

.blog-footer-item-bottom {
  position: absolute;
  bottom: 0.625rem;
  text-align: center;
  padding: 0 3%; }
  .blog-footer-item-bottom h5 {
    font-size: 1.125rem;
    margin-botom: 0.5rem; }
  .blog-footer-item-bottom h5, .blog-footer-item-bottom .blog-footer-title {
    color: #FFFFFF;
    font-weight: 500; }

.blog-footer-title {
  font-size: 0.875rem; }

.blog-modal {
  display: none;
  position: fixed;
  z-index: 98;
  top: 0;
  width: 100%;
  height: 100vh;
  background: rgba(68, 68, 68, 0.7); }

.blog-modal-signup {
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  position: relative;
  z-index: 99;
  max-width: 28.125rem;
  width: 80%;
  margin: 0 auto;
  padding: 3.125rem;
  background: #FFFFFF;
  text-align: center;
  border-radius: 0.3125rem;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19) !important; }
  .blog-modal-signup h5 {
    font-weight: bold;
    font-family: "proxima-nova", "Proxima Nova", sans-serif; }
  .blog-modal-signup p {
    margin: 1.5625rem 0;
    font-size: 0.875rem; }
  .blog-modal-signup span {
    font-weight: bold; }
  .blog-modal-signup input, .blog-modal-signup button {
    width: 80%;
    max-width: 17.1875rem;
    float: none; }
    .blog-modal-signup input[type="email"], .blog-modal-signup button[type="email"] {
      margin-bottom: 0.625rem;
      font-weight: bold;
      padding: 0.5rem;
      text-align: center;
      border: 2px inset; }
  .blog-modal-signup .thanksstuff h5, .blog-modal-signup .thanksstuff p {
    color: #444; }

.blog-modal-close {
  position: absolute;
  padding: 1.5625rem;
  top: 0;
  right: 0;
  cursor: pointer; }
  .blog-modal-close svg {
    width: 0.75rem;
    height: 0.75rem;
    fill: #444; }

.blog-post-footer-cta, .blog-post-author, .related-title {
  margin: 0 auto; }
  @media (max-width: 767px) {
    .blog-post-footer-cta, .blog-post-author, .related-title {
      max-width: 100%; } }

.blog-post-footer-cta, .blog-post-author {
  margin: 1.5625rem auto; }

.blog-post-footer-cta-signup {
  text-align: center; }
  .blog-post-footer-cta-signup h5 {
    margin-bottom: 0px; }
  .blog-post-footer-cta-signup p {
    margin-bottom: 1.5625rem; }
  .blog-post-footer-cta-signup form {
    padding: 0 12%; }
    .blog-post-footer-cta-signup form:after {
      clear: both;
      content: '';
      display: table; }
  .blog-post-footer-cta-signup input[type="email"] {
    padding: 0.5rem;
    outline: none;
    border: none;
    text-align: left;
    height: 2.5rem; }
  @media (min-width: 1025px) {
    .blog-post-footer-cta-signup input[type="email"] {
      float: left;
      clear: none;
      text-align: inherit;
      width: 60%;
      margin-left: 0%;
      margin-right: 0%; }
      .blog-post-footer-cta-signup input[type="email"]:after {
        clear: both;
        content: '';
        display: table; }
    .blog-post-footer-cta-signup button[type="submit"] {
      float: left;
      clear: none;
      text-align: inherit;
      width: 40%;
      margin-left: 0%;
      margin-right: 0%; }
      .blog-post-footer-cta-signup button[type="submit"]:after {
        clear: both;
        content: '';
        display: table; } }
  @media (max-width: 1023px) {
    .blog-post-footer-cta-signup form {
      padding: 0; }
    .blog-post-footer-cta-signup input[type="email"] {
      float: left;
      clear: none;
      text-align: inherit;
      width: 100%;
      margin-left: 0%;
      margin-right: 0%;
      margin-bottom: 0.625rem;
      max-width: 100%;
      text-align: center; }
      .blog-post-footer-cta-signup input[type="email"]:after {
        clear: both;
        content: '';
        display: table; }
    .blog-post-footer-cta-signup button[type="submit"] {
      float: left;
      clear: none;
      text-align: inherit;
      width: 100%;
      margin-left: 0%;
      margin-right: 0%; }
      .blog-post-footer-cta-signup button[type="submit"]:after {
        clear: both;
        content: '';
        display: table; } }

.cta-signup.link-active, .cta-signup.download-active {
  display: none !important; }

.cta-signup.signup-active {
  display: block; }

.cta-link.link-active {
  display: block; }

.cta-download.download-active {
  display: block; }

.blog-post-footer-cta {
  display: block;
  overflow: auto;
  zoom: 1;
  background: #444;
  padding: 6% 8%;
  position: relative; }
  .blog-post-footer-cta .blog-footer-cta-content {
    width: 65%;
    float: left;
    padding-right: 3.125rem; }
  .blog-post-footer-cta h5, .blog-post-footer-cta p {
    color: #FFFFFF; }
  .blog-post-footer-cta h5 {
    font-weight: 500 !important; }
  .blog-post-footer-cta a {
    margin-top: 1.5625rem; }
  .blog-post-footer-cta img {
    width: 35%;
    float: left; }
  @media (max-width: 767px) {
    .blog-post-footer-cta {
      padding: 15%;
      text-align: center; }
      .blog-post-footer-cta .blog-footer-cta-content {
        position: relative;
        width: 100%;
        padding: 0px;
        margin-bottom: 1.5625rem;
        text-align: center; }
        .blog-post-footer-cta .blog-footer-cta-content .btn {
          position: relative;
          float: right;
          bottom: -2.8125rem;
          right: 0px; }
          .blog-post-footer-cta .blog-footer-cta-content .btn:hover {
            border-left-color: #70a23b;
            border-right-color: #70a23b; }
            .blog-post-footer-cta .blog-footer-cta-content .btn:hover:before {
              border-bottom-color: #70a23b; }
            .blog-post-footer-cta .blog-footer-cta-content .btn:hover:after {
              border-top-color: #70a23b; }
          .blog-post-footer-cta .blog-footer-cta-content .btn:before, .blog-post-footer-cta .blog-footer-cta-content .btn:after {
            content: '';
            position: absolute;
            left: -18px;
            -webkit-transition: all 0.2s ease;
                    transition: all 0.2s ease; }
          .blog-post-footer-cta .blog-footer-cta-content .btn:after {
            top: 0;
            width: 0;
            height: 0;
            border-left: 18px solid transparent;
            border-right: 18px solid transparent;
            border-top: 18px solid #8ABF51; }
          .blog-post-footer-cta .blog-footer-cta-content .btn:before {
            bottom: 0px;
            width: 0;
            height: 0;
            border-bottom: 18px solid #8ABF51;
            border-left: 18px solid transparent;
            border-right: 18px solid transparent; }
      .blog-post-footer-cta img {
        width: 100%;
        float: none; } }

.blog-post-footer-cta:after {
  position: absolute;
  content: '';
  top: 0;
  left: -webkit-calc(50% - (40px / 2));
  left: calc(50% - (40px / 2));
  width: 0;
  height: 0;
  border-left: 40px solid transparent;
  border-right: 40px solid transparent;
  border-top: 40px solid #fff;
  -webkit-transform: skewX(55deg);
      -ms-transform: skewX(55deg);
          transform: skewX(55deg); }

.blog-post-author img {
  max-height: 7.8125rem;
  margin: 0 1.5625rem 0 3.125rem;
  float: left;
  clear: both;
  border-radius: 50%;
  -webkit-transition: box-shadow ease-in-out .3s;
          transition: box-shadow ease-in-out .3s; }
  .blog-post-author img:hover {
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }

.blog-post-author p {
  display: block;
  overflow: auto;
  padding: 1.375rem 0;
  font-style: italic; }

.blog-post-author span {
  font-weight: bold; }

@media (max-width: 767px) {
  .blog-post-author {
    text-align: center; }
    .blog-post-author p {
      width: 90%;
      margin: 0 auto;
      text-align: center; }
    .blog-post-author img {
      float: none; } }

.related-title {
  height: 40px;
  padding: 0.9375rem 0;
  margin-bottom: 1.5625rem !important;
  line-height: 0.5;
  text-align: center;
  text-transform: uppercase;
  overflow: hidden; }
  .related-title span {
    display: inline-block;
    position: relative;
    font-weight: 500; }
    .related-title span:before, .related-title span:after {
      content: "";
      position: absolute;
      height: 5px;
      border-bottom: 2px solid #E8E9EA;
      top: 0;
      width: 800px; }
    .related-title span:before {
      right: 100%;
      margin-right: 15px; }
    .related-title span:after {
      left: 100%;
      margin-left: 15px; }
  @media (max-width: 767px) {
    .related-title span:before, .related-title span:after {
      border-width: 3px; } }

.blog-menu {
  display: none; }
  @media (max-width: 767px) {
    .blog-menu {
      display: block;
      z-index: 100;
      background: #F0F1F1; }
      .blog-menu.is-active {
        width: 100%;
        background: transparent;
        position: absolute; }
        .blog-menu.is-active .nav-container {
          left: 0; } }

.blog-mobile-filter {
  display: none;
  text-align: left;
  cursor: pointer;
  border-bottom: none;
  padding-top: 0.3125rem; }
  .blog-mobile-filter svg {
    display: none;
    height: 1.125rem;
    width: 1.125rem;
    margin: 3px 0.625rem 0;
    float: left;
    fill: #444; }
    .blog-mobile-filter svg:first-child {
      display: inline-block; }
  .blog-mobile-filter h5 {
    float: left;
    margin: 0;
    margin-top: 5px;
    text-transform: uppercase;
    font-size: 1rem;
    font-family: "proxima-nova", "Proxima Nova", sans-serif; }
  @media (max-width: 767px) {
    .blog-mobile-filter {
      display: block; } }

.nav-container {
  position: absolute;
  top: 34px;
  width: 85%;
  background: white;
  text-align: left;
  left: -85%;
  -webkit-transition: left .3s ease-in-out;
          transition: left .3s ease-in-out; }
  .nav-container div.category-container {
    display: block;
    background: #E6E7E8;
    padding-left: 0.5rem;
    padding-top: 2px;
    cursor: pointer; }
  .nav-container .arrow {
    display: inline-block;
    width: 0;
    height: 0;
    border-bottom: 9px solid transparent;
    border-left: 9px solid black;
    border-top: 9px solid transparent;
    margin-right: 0.0625rem;
    -webkit-transform: all .2s ease;
        -ms-transform: all .2s ease;
            transform: all .2s ease; }
    .nav-container .arrow.is-active {
      width: 0;
      height: 0;
      border-left: 9px solid transparent;
      border-right: 9px solid transparent;
      border-top: 9px solid black; }
  .nav-container p:nth-child(2) {
    display: inline-block;
    font-size: 1.125rem;
    background: #E6E7E8;
    text-transform: uppercase; }

.blog-categories {
  width: 100%;
  background: white;
  text-align: left;
  display: block; }
  .blog-categories li a {
    text-transform: uppercase;
    padding: 1.125rem 0 1.125rem 2.8125rem;
    font-size: 1.125rem;
    opacity: 0;
    -webkit-transform: translateX(-200px);
        -ms-transform: translateX(-200px);
            transform: translateX(-200px);
    width: 100%; }
    .blog-categories li a.is-resolved {
      -webkit-transform: translateX(0);
          -ms-transform: translateX(0);
              transform: translateX(0);
      opacity: 1; }
    .blog-categories li a.is-active {
      color: #0082CA;
      font-weight: bold; }
  .blog-categories li {
    display: block;
    padding: 0.625rem 0 0.625rem 0; }
    .blog-categories li.expand {
      display: none; }
    .blog-categories li:first-child a {
      -webkit-transition: opacity .2s, -webkit-transform .2s;
              transition: opacity .2s, transform .2s; }
    .blog-categories li:nth-child(2) a {
      -webkit-transition: opacity .25s, -webkit-transform .25s;
              transition: opacity .25s, transform .25s; }
    .blog-categories li:nth-child(2) a {
      -webkit-transition: opacity .5s, -webkit-transform .5s;
              transition: opacity .5s, transform .5s; }
    .blog-categories li:nth-child(3) a {
      -webkit-transition: opacity .75s, -webkit-transform .75s;
              transition: opacity .75s, transform .75s; }
    .blog-categories li:nth-child(4) a {
      -webkit-transition: opacity 1s, -webkit-transform 1s;
              transition: opacity 1s, transform 1s; }
    .blog-categories li:nth-child(5) a {
      -webkit-transition: opacity 1.25s, -webkit-transform 1.25s;
              transition: opacity 1.25s, transform 1.25s; }
    .blog-categories li:nth-child(6) a {
      -webkit-transition: opacity 1.50s, -webkit-transform 1.50s;
              transition: opacity 1.50s, transform 1.50s; }
    .blog-categories li:nth-child(7) a {
      -webkit-transition: opacity 1.75s, -webkit-transform 1.75s;
              transition: opacity 1.75s, transform 1.75s; }
    .blog-categories li:hover a {
      color: #0082CA; }

.blog-global-nav-list {
  display: block;
  text-align: left;
  text-transform: uppercase; }
  .blog-global-nav-list li {
    background: #F0F1F1;
    padding: 0.625rem 0 0.625rem 1.875rem !important;
    border-bottom: 1px solid #C8CBCD; }
    .blog-global-nav-list li:hover a {
      color: #0082CA; }
    .blog-global-nav-list li:first-child {
      background: #E6E7E8 !important;
      border-top: 1px solid #C8CBCD; }
    .blog-global-nav-list li:last-child {
      border-bottom: none; }
  .blog-global-nav-list li a {
    font-size: 1.125rem; }

footer[role="contentinfo"] {
  background: #0082CA;
  padding: 3.125rem; }
  footer[role="contentinfo"] .inner-container {
    text-align: center; }
  @media (max-width: 767px) {
    footer[role="contentinfo"] {
      padding: 1.875rem 0;
      position: relative; } }

.footer-logo {
  width: 10.9375rem;
  margin-bottom: 1.5625rem; }

.footer-nav, .footer-social {
  text-align: center; }
  .footer-nav li, .footer-social li {
    display: inline-block; }
  .footer-nav a, .footer-social a {
    fill: #FFFFFF;
    color: #FFFFFF;
    font-size: 1rem;
    font-weight: bold;
    text-transform: uppercase; }

.footer-nav li {
  margin-bottom: 0.625rem; }
  .footer-nav li:last-child a {
    border-right: 0; }

.footer-nav a {
  padding: 0 0.5rem;
  border-right: 2px solid #FFFFFF;
  -webkit-transition: color ease-in-out .2s;
          transition: color ease-in-out .2s; }
  .footer-nav a:hover {
    color: #31b6ff; }

@media (max-width: 767px) {
  .footer-nav {
    display: none; } }

.footer-social {
  padding: 1.5625rem 0; }
  .footer-social li {
    padding: 0 0.3125rem; }
  .footer-social a {
    display: block;
    height: 2.8125rem;
    width: 2.8125rem;
    border: 2px solid #FFFFFF;
    border-radius: 50%; }
    .footer-social a:hover {
      background: #FFFFFF; }
      .footer-social a:hover svg {
        fill: #0082CA; }
  .footer-social svg {
    position: relative;
    top: 0.28125rem;
    height: 1.875rem;
    width: 1.875rem;
    padding: 0.3125rem; }
  @media (max-width: 767px) {
    .footer-social {
      padding: 1.875rem 0 0; } }

.footer-disclosure {
  color: #FFFFFF;
  font-size: 0.75rem;
  text-align: center;
  text-transform: uppercase; }
  .footer-disclosure a {
    color: #FFFFFF; }
    .footer-disclosure a:hover {
      color: #FFFFFF;
      text-decoration: underline; }
  @media (max-width: 767px) {
    .footer-disclosure {
      position: absolute;
      top: 90px;
      left: 0;
      right: 0;
      margin-left: auto;
      margin-right: auto; } }

header[role="banner"] {
  position: relative;
  z-index: 99;
  background: #FFFFFF; }
  header[role="banner"] .st2 {
    fill: #0082CA !important; }

.top-header {
  background: #F0F1F1;
  width: 100%; }
  .top-header .inner-container {
    padding: 0 4% 0.9375rem 4%;
    font-size: 0.875rem;
    font-weight: 300;
    width: 100%;
    width: auto;
    max-width: 1280px;
    float: none;
    display: block;
    margin-right: auto;
    margin-left: auto;
    padding-left: 0;
    padding-right: 0; }
    .top-header .inner-container:after {
      clear: both;
      content: '';
      display: table; }
    .top-header .inner-container:after {
      clear: both;
      content: '';
      display: table; }
    .top-header .inner-container .blog-menu {
      float: left; }
    .top-header .inner-container .top-item {
      float: right;
      padding-right: 4%; }
  .top-header.is-stuck {
    position: fixed;
    top: 0;
    z-index: 2; }
  @media (max-width: 767px) {
    .top-header .inner-container {
      padding-top: 0.3125rem;
      text-align: left; } }

.top-logo {
  position: relative;
  top: 0.5625rem;
  width: 5.625rem;
  height: 1.375rem; }

.top-item {
  display: inline-block; }
  @media (max-width: 767px) {
    .top-item {
      display: none; } }

.mobile-search {
  display: none !important;
  float: right;
  top: 0.3125rem; }
  @media (max-width: 767px) {
    .mobile-search {
      display: inline-block !important;
      right: 5px; }
      .mobile-search input {
        margin-right: 0px !important; } }

.bottom-header {
  width: 100%;
  background: #FFFFFF;
  border-bottom: 0.0625rem solid #E8E9EA; }
  .bottom-header .inner-container {
    height: 7rem;
    padding: 1.25rem 4%;
    width: 100%;
    width: auto;
    max-width: 1280px;
    float: none;
    display: block;
    margin-right: auto;
    margin-left: auto;
    padding-left: 0;
    padding-right: 0; }
    .bottom-header .inner-container:after {
      clear: both;
      content: '';
      display: table; }
  .bottom-header a {
    display: block;
    margin-top: 7px; }
  .bottom-header .logo-svg {
    height: 60px; }
  .bottom-header.is-stuck {
    position: fixed;
    top: 0;
    z-index: 2; }
    .bottom-header.is-stuck .inner-container {
      height: 3.5rem;
      padding: 0.625rem 4%;
      -webkit-transition: height .3s;
              transition: height .3s; }
    .bottom-header.is-stuck a {
      margin-top: 0; }
    .bottom-header.is-stuck .logo-svg {
      height: 35px;
      -webkit-transition: height .3s;
              transition: height .3s; }
    .bottom-header.is-stuck .header-item {
      padding: 0; }
  @media (max-width: 767px) {
    .bottom-header {
      height: auto; } }

.header-item {
  padding: 0 4%;
  float: left;
  clear: none;
  text-align: inherit;
  width: 50%;
  margin-left: 0%;
  margin-right: 0%; }
  .header-item:after {
    clear: both;
    content: '';
    display: table; }
  @media (max-width: 767px) {
    .header-item {
      float: left;
      clear: none;
      text-align: inherit;
      width: 100%;
      margin-left: 0%;
      margin-right: 0%;
      text-align: center; }
      .header-item:after {
        clear: both;
        content: '';
        display: table; }
      .header-item p {
        width: 100%;
        font-size: 0.875rem; } }
  .header-item:last-child {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    text-align: right; }
    @media (max-width: 767px) {
      .header-item:last-child {
        display: none; } }

.search-wrap {
  display: inline-block;
  position: relative; }
  .search-wrap svg {
    z-index: 1;
    margin-top: -3px; }
  .search-wrap form input {
    display: none; }
  .search-wrap form {
    margin: 0 4.375rem 0 0;
    position: relative;
    top: -0.125rem; }
    @media (max-width: 767px) {
      .search-wrap form {
        margin: 0; } }
  .search-wrap form label span {
    display: none !important; }
  .search-wrap form label input.search-field {
    width: 110px;
    display: block;
    border: 1px solid rgba(128, 128, 128, 0.6);
    padding: 0.3125rem 0 0.3125rem 1.5625rem;
    border-radius: 0.9375rem;
    font-size: 0.75rem; }
  .search-wrap form label ::-webkit-input-placeholder {
    color: #333B41;
    text-transform: uppercase; }
  .search-wrap form label :-moz-placeholder {
    color: #333B41;
    text-transform: uppercase; }
  .search-wrap form label ::-moz-placeholder {
    color: #333B41;
    text-transform: uppercase; }
  .search-wrap form label :-ms-input-placeholder {
    color: #333B41;
    text-transform: uppercase; }

.mag-svg {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  height: 0.75rem;
  width: 0.75rem; }

.blog-posts {
  padding: 3.125rem 5%;
  text-align: center; }
  @media (max-width: 767px) {
    .blog-posts {
      padding: 1.875rem 0; } }

.blog-container {
  width: 100%;
  margin: 0 auto;
  max-width: 1200px;
  padding: 0 1.875rem; }
  .blog-container:after {
    clear: both;
    content: '';
    display: table; }
  @media (max-width: 767px) {
    .blog-container {
      padding: 0; } }

@media (max-width: 767px) {
  .blog-post-overlay {
    display: none; } }

.blog-post {
  width: 33.3333333333%;
  float: left;
  position: relative;
  margin-bottom: 1.5625rem; }
  .blog-post:hover .blog-post-overlay {
    opacity: 1;
    background-color: rgba(0, 130, 202, 0.8); }
    .blog-post:hover .blog-post-overlay.Marketing {
      background-color: rgba(190, 206, 49, 0.8); }
    .blog-post:hover .blog-post-overlay.Research {
      background-color: rgba(90, 172, 163, 0.8); }
    .blog-post:hover .blog-post-overlay.Design {
      background-color: rgba(255, 131, 0, 0.8); }
    .blog-post:hover .blog-post-overlay.Product {
      background-color: rgba(25, 139, 179, 0.8); }
    .blog-post:hover .blog-post-overlay.CX {
      background-color: rgba(138, 191, 81, 0.8); }
  .blog-post p.blog-post-title {
    display: block;
    /* Fallback for non-webkit */
    display: -webkit-box;
    height: 67.2px;
    /* Fallback for non-webkit */
    margin-top: 0.9375rem;
    padding: 0 0.625rem;
    text-align: center;
    font-size: 16px;
    line-height: 1.4;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis; }
  @media (max-width: 767px) {
    .blog-post {
      width: 100%; }
      .blog-post .blog-post-inner {
        margin: 0 0.3125rem; } }

.blog-post-inner {
  margin: 0 15px; }

.blog-footer-post {
  float: left;
  clear: none;
  text-align: inherit;
  width: 33.333333%;
  margin-left: 0%;
  margin-right: 0%;
  margin-bottom: 1.5625rem; }
  .blog-footer-post:after {
    clear: both;
    content: '';
    display: table; }
  .blog-footer-post p {
    margin-top: 0.9375rem;
    padding: 0 0.625rem;
    font-size: 1rem;
    text-align: center; }
  .blog-footer-post:hover .blog-post-overlay {
    opacity: 1;
    background-color: rgba(0, 130, 202, 0.8); }
    .blog-footer-post:hover .blog-post-overlay.Marketing {
      background-color: rgba(190, 206, 49, 0.8); }
    .blog-footer-post:hover .blog-post-overlay.Research {
      background-color: rgba(90, 172, 163, 0.8); }
    .blog-footer-post:hover .blog-post-overlay.Design {
      background-color: rgba(255, 131, 0, 0.8); }
    .blog-footer-post:hover .blog-post-overlay.Product {
      background-color: rgba(25, 139, 179, 0.8); }
    .blog-footer-post:hover .blog-post-overlay.CX {
      background-color: rgba(138, 191, 81, 0.8); }
  @media (max-width: 767px) {
    .blog-footer-post {
      float: left;
      clear: none;
      text-align: inherit;
      width: 100%;
      margin-left: 0%;
      margin-right: 0%; }
      .blog-footer-post:after {
        clear: both;
        content: '';
        display: table; } }

.blog-post-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  background-color: rgba(0, 130, 202, 0);
  -webkit-transition: all ease-in .2s;
          transition: all ease-in .2s; }
  .blog-post-overlay.Marketing, .blog-post-overlay.Research, .blog-post-overlay.Design, .blog-post-overlay.Product, .blog-post-overlay.CX {
    opacity: 0; }
  .blog-post-overlay.Marketing {
    background-color: rgba(190, 206, 49, 0); }
  .blog-post-overlay.Research {
    background-color: rgba(90, 172, 163, 0); }
  .blog-post-overlay.Design {
    background-color: rgba(255, 131, 0, 0); }
  .blog-post-overlay.Product {
    background-color: rgba(25, 139, 179, 0); }
  .blog-post-overlay.CX {
    background-color: rgba(138, 191, 81, 0); }
  .blog-post-overlay div {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    text-align: center; }
    .blog-post-overlay div p {
      color: #FFFFFF;
      font-size: 0.875rem;
      font-weight: bold;
      letter-spacing: 0px;
      text-align: center;
      text-transform: uppercase; }
    .blog-post-overlay div svg {
      padding: 0.625rem;
      width: 5.125rem;
      height: 5.125rem;
      stroke: #FFFFFF;
      fill: none;
      border: 0.1875rem solid #FFFFFF;
      border-radius: 50%; }
      @media (max-width: 767px) {
        .blog-post-overlay div svg {
          width: 4.6875rem;
          height: 4.6875rem;
          margin-bottom: 0px; } }

.ajax-no-hide .alm-reveal:first-child {
  display: block !important; }

.alm-reveal:first-child {
  display: none !important; }

.blog-image {
  position: relative;
  width: 100%;
  overflow: hidden;
  position: relative;
  background-size: cover;
  background-position: center;
  background-color: rgba(0, 130, 202, 0.8); }
  .blog-image:before {
    content: '';
    display: block;
    height: 0;
    padding-top: 75%; }
  .blog-image.Marketing {
    background-color: rgba(190, 206, 49, 0.8); }
  .blog-image.Research {
    background-color: rgba(90, 172, 163, 0.8); }
  .blog-image.Design {
    background-color: rgba(255, 131, 0, 0.8); }
  .blog-image.Product {
    background-color: rgba(25, 139, 179, 0.8); }
  .blog-image.CX {
    background-color: rgba(138, 191, 81, 0.8); }

.alm-btn-wrap {
  overflow: auto;
  zoom: 1;
  width: 100%;
  text-align: center; }
  .alm-btn-wrap button {
    outline: none;
    background-color: #FFFFFF;
    color: #8ABF51;
    border: 2px solid #8ABF51; }
    .alm-btn-wrap button:hover {
      background: #8ABF51;
      color: #FFFFFF; }
    .alm-btn-wrap button.done {
      display: none; }
    @media (max-width: 767px) {
      .alm-btn-wrap button:hover {
        background: transparent;
        color: #8ABF51; } }

.blog-post-hero {
  position: relative;
  height: 55vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #0082CA; }
  .blog-post-hero .inner-container {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    z-index: 2;
    text-align: center; }
    .blog-post-hero .inner-container h1, .blog-post-hero .inner-container h5 {
      color: #FFFFFF; }
    .blog-post-hero .inner-container h1 {
      margin-bottom: 1.5625rem; }
    .blog-post-hero .inner-container h5 {
      text-transform: uppercase; }
  @media (max-width: 767px) {
    .blog-post-hero {
      height: auto;
      padding-bottom: 40%; }
      .blog-post-hero .inner-container {
        position: relative;
        top: 0;
        -webkit-transform: translateY(0);
            -ms-transform: translateY(0);
                transform: translateY(0);
        padding: 30% 5% 0; } }

.blog-post-hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(35, 31, 32, 0.36); }

.blog-post-page {
  max-width: 75%;
  margin: 0 auto;
  padding: 3.125rem 0; }
  .blog-post-page .wp-caption-text {
    margin-top: 0.625rem;
    font-style: italic; }
  .blog-post-page .intro-text {
    margin-bottom: 1.5625rem;
    font-size: 1.375rem; }
  .blog-post-page em {
    font-style: italic; }
  .blog-post-page:after {
    clear: both;
    content: '';
    display: table; }
  .blog-post-page h5 {
    font-weight: 300;
    line-height: 2rem; }
  .blog-post-page h6 {
    font-weight: bold; }
  .blog-post-page img {
    max-width: 100% !important; }
    .blog-post-page img.size-half {
      float: left;
      clear: none;
      text-align: inherit;
      width: 48.5%;
      margin-left: 0%;
      margin-right: 3%; }
      .blog-post-page img.size-half:after {
        clear: both;
        content: '';
        display: table; }
      .blog-post-page img.size-half:last-child {
        margin-right: 0%; }
  .blog-post-page iframe, .blog-post-page .wp-caption {
    max-width: 100% !important; }
  .blog-post-page p:after {
    clear: both;
    content: '';
    display: table; }
  .blog-post-page blockquote {
    color: #ff8300;
    border-left: 0.25rem solid #ff8300;
    margin-top: 30px;
    margin-bottom: 30px; }
    .blog-post-page blockquote p {
      padding-left: 0.9375rem;
      color: #ff8300;
      font-size: 32px;
      line-height: 40px;
      font-family: "franklin-gothic-urw"; }
    .blog-post-page blockquote a {
      font-size: 32px;
      line-height: 40px;
      font-family: "franklin-gothic-urw"; }
  .blog-post-page ol {
    margin-left: 2.1875rem;
    counter-reset: countme; }
    .blog-post-page ol li {
      position: relative;
      margin-bottom: 0.9375rem;
      line-height: 1.375rem; }
      .blog-post-page ol li:before {
        position: absolute;
        left: -2.1875rem;
        content: counter(countme);
        counter-increment: countme;
        padding: 0.125rem 0.5rem;
        border: 0.0625rem solid #444;
        border-radius: 50%; }
  .blog-post-page ul {
    margin-left: 2.1875rem;
    list-style-type: disc; }
    .blog-post-page ul li {
      margin-bottom: 0.625rem;
      line-height: 1.375rem; }
  .blog-post-page h1, .blog-post-page h2, .blog-post-page h3, .blog-post-page h4, .blog-post-page h5, .blog-post-page h6 {
    margin-top: 3.125rem; }
    .blog-post-page h1:first-child, .blog-post-page h2:first-child, .blog-post-page h3:first-child, .blog-post-page h4:first-child, .blog-post-page h5:first-child, .blog-post-page h6:first-child {
      margin-top: 0; }
  .blog-post-page a {
    color: #198BB3 !important; }
  .blog-post-page h2 {
    font-size: 42px !important; }
  .blog-post-page h3 {
    font-size: 24px !important; }
  .blog-post-page h4 {
    font-size: 28px !important; }
  .blog-post-page h5 {
    font-size: 26px !important; }
  .blog-post-page h6 {
    font-size: 24px !important; }
  .blog-post-page p {
    font-size: 18px; }
  .blog-post-page ul, .blog-post-page ol {
    margin-bottom: 3.125rem; }
    .blog-post-page ul a, .blog-post-page ol a {
      color: #198BB3; }
      .blog-post-page ul a:hover, .blog-post-page ol a:hover {
        text-decoration: underline; }
  .blog-post-page .aligncenter {
    display: block;
    margin: 0px auto; }
  .blog-post-page img.aligncenter {
    display: block;
    margin: 0px auto; }
  @media (max-width: 767px) {
    .blog-post-page {
      max-width: 100%; }
      .blog-post-page blockquote {
        position: relative;
        left: -4.5%;
        border-width: 0.375rem; } }

section.auth-hero {
  width: 100%;
  min-height: 25rem;
  height: 55vh;
  background: #198BB3;
  display: inline-block;
  padding-top: 2.1875rem;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat; }
  section.auth-hero div.copy {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }
  section.auth-hero figure {
    width: 10.9375rem;
    height: 10.9375rem;
    background: gray;
    border-radius: 50%;
    border: 4px solid #FFFFFF;
    margin: 0 auto;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat; }
  section.auth-hero h1 {
    color: #FFFFFF;
    text-align: center;
    margin-top: 0.9375rem; }
  section.auth-hero ul.auth-social {
    margin: 2.5rem auto 0 auto;
    text-align: center; }
    section.auth-hero ul.auth-social li {
      width: 2.1875rem;
      height: 2.1875rem;
      border-radius: 50%;
      margin: 0 5px;
      background: #d7d5d5;
      display: inline-block;
      -webkit-transition: background 300ms;
              transition: background 300ms; }
      section.auth-hero ul.auth-social li:hover {
        background: #bebbbb; }
      section.auth-hero ul.auth-social li:last-child {
        margin-right: 0; }
        section.auth-hero ul.auth-social li:last-child a svg {
          width: 100%;
          left: 0.1875rem;
          top: 0.1875rem; }
      section.auth-hero ul.auth-social li a {
        width: 100%;
        height: 100%;
        padding: 1.25rem 1.0625rem 0 0; }
        section.auth-hero ul.auth-social li a svg {
          width: 50%;
          height: inherit;
          position: relative;
          left: 0.625rem; }
          section.auth-hero ul.auth-social li a svg path, section.auth-hero ul.auth-social li a svg polygon {
            fill: #414042 !important; }

section.auth-info {
  width: 100%;
  padding: 3.125rem 20% 0 20%;
  width: auto;
  max-width: 1280px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 11.5%;
  padding-right: 11.5%; }
  section.auth-info:after {
    clear: both;
    content: '';
    display: table; }
  @media (max-width: 767px) {
    section.auth-info {
      padding: 3.125rem 10% 0 10%; } }
  section.auth-info div.line {
    height: 1px;
    background: rgba(0, 0, 0, 0.15);
    text-align: center;
    margin-top: 5rem; }
    section.auth-info div.line span {
      background-color: white;
      position: relative;
      top: -9px;
      padding: 0 0.625rem;
      text-transform: uppercase; }

section.xp {
  width: auto;
  max-width: 1280px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 11.5%;
  padding-right: 11.5%;
  margin-bottom: 3.125rem; }
  section.xp:after {
    clear: both;
    content: '';
    display: table; }
  @media (max-width: 767px) {
    section.xp {
      padding: 0 4%; } }

section.blog-posts div.view-more a {
  width: 9.375rem;
  height: 2.8125rem;
  display: block;
  margin: 0 auto;
  padding-top: 0.75rem;
  background: #FFFFFF;
  text-align: center;
  border: 2px solid #69A958;
  font-weight: bold;
  color: #69A958;
  clear: both;
  -webkit-transition: background 300ms, color 300ms;
          transition: background 300ms, color 300ms; }
  section.blog-posts div.view-more a:hover {
    background: #69A958;
    color: #FFFFFF; }

.pencil-icon {
  margin: 0 auto;
  width: 7.8125rem;
  height: 7.8125rem;
  background: #FFFFFF;
  border-radius: 50%;
  border: 0.25rem solid #444; }

.contribute-pencil {
  position: relative;
  width: 7.1875rem;
  height: 7.1875rem;
  fill: #444; }

.contribute-down-arrow {
  width: 1.5625rem;
  fill: #FFFFFF; }

.contribute-form {
  margin: 3.125rem 0; }
  .contribute-form input[type="email"], .contribute-form input[type="text"], .contribute-form textarea {
    margin-bottom: 1.5625rem;
    padding: 0.625rem;
    width: 100%;
    outline: none;
    border: 1px solid #C8CBCD; }
  .contribute-form textarea {
    height: 15.625rem;
    border: 0.0625rem solid #C8CBCD; }
  .contribute-form input[type="submit"] {
    float: right; }
  .contribute-form input.invalid, .contribute-form textarea.invalid {
    border: 1px solid #D35852; }

section.search-results {
  height: 100%;
  overflow: auto;
  zoom: 1; }
  section.search-results div.results-wrap {
    width: 900px;
    height: 100%;
    padding: 3.125rem 0;
    margin: 0 auto; }
    section.search-results div.results-wrap .result {
      width: 100%;
      display: inline-block;
      overflow: hidden;
      position: relative;
      margin-bottom: 1.875rem; }
      section.search-results div.results-wrap .result div.blog-image {
        width: 20%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0; }
        section.search-results div.results-wrap .result div.blog-image p {
          color: #FFFFFF; }
      section.search-results div.results-wrap .result:hover .blog-post-overlay {
        opacity: 1; }
        section.search-results div.results-wrap .result:hover .blog-post-overlay.marketing {
          background: rgba(190, 206, 49, 0.8); }
        section.search-results div.results-wrap .result:hover .blog-post-overlay.research {
          background: rgba(90, 172, 163, 0.8); }
        section.search-results div.results-wrap .result:hover .blog-post-overlay.design {
          background: rgba(255, 131, 0, 0.8); }
        section.search-results div.results-wrap .result:hover .blog-post-overlay.product {
          background: rgba(25, 139, 179, 0.8); }
        section.search-results div.results-wrap .result:hover .blog-post-overlay.CX {
          background: rgba(138, 191, 81, 0.8); }
      section.search-results div.results-wrap .result div.right {
        float: right;
        display: inline-block;
        width: 75%; }
        section.search-results div.results-wrap .result div.right h5 {
          color: #0082CA;
          padding-right: 3.75rem;
          margin: 0 0 0.4375rem 0;
          font-weight: bold; }
        section.search-results div.results-wrap .result div.right p {
          color: rgba(0, 0, 0, 0.7);
          font-size: 1.0625rem;
          margin: 0; }
          section.search-results div.results-wrap .result div.right p:nth-of-type(2) {
            font-size: 0.9375rem;
            padding: 0.625rem 0; }
          section.search-results div.results-wrap .result div.right p:last-child {
            font-style: italic;
            font-size: 0.9375rem;
            color: #858c90;
            position: relative;
            top: 0.3125rem; }
    @media (max-width: 1023px) {
      section.search-results div.results-wrap {
        width: 100%; } }
    @media (max-width: 767px) {
      section.search-results div.results-wrap div.result .blog-image {
        width: 30%; }
      section.search-results div.results-wrap div.result .right {
        width: 65%;
        padding: 1.25rem 0 1.875rem 0; }
        section.search-results div.results-wrap div.result .right h5 {
          padding-right: 0; }
        section.search-results div.results-wrap div.result .right p:nth-of-type(2), section.search-results div.results-wrap div.result .right p:last-child {
          display: none; }
      section.search-results div.results-wrap div.result:active {
        background: #edeeef; } }

section.not-found {
  width: 100%;
  height: 80vh;
  position: relative;
  -webkit-transition: height .5s ease;
          transition: height .5s ease; }
  section.not-found .alert-info {
    width: 100%;
    height: 200px;
    display: block;
    position: relative;
    width: auto;
    max-width: 650px;
    float: none;
    display: block;
    margin-right: auto;
    margin-left: auto;
    padding-left: 0;
    padding-right: 0;
    top: 25%;
    -webkit-transition: top .5s ease;
            transition: top .5s ease;
    padding: 0 5%; }
    section.not-found .alert-info:after {
      clear: both;
      content: '';
      display: table; }
    section.not-found .alert-info h2 {
      text-align: center;
      -webkit-font-smoothing: subpixel-antialiased;
      font-weight: normal; }
    section.not-found .alert-info p {
      text-align: center;
      margin-bottom: 50px;
      -webkit-animation-delay: 1s;
              animation-delay: 1s; }
  @media (max-width: 767px) {
    section.not-found {
      height: 65vh; }
      section.not-found .alert-info {
        top: 30%; } }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWV5ZXItcmVzZXQvc3R5bGVzaGVldHMvX21leWVyLXJlc2V0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25vcm1hbGl6ZS1saWJzYXNzL19ub3JtYWxpemUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvb2xkLWJyb3dzZXJzL3Njc3Mvb2xkLWJyb3dzZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvamVldC9zY3NzL2plZXQvaW5kZXguc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvamVldC9zY3NzL2plZXQvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2plZXQvc2Nzcy9qZWV0L19mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvamVldC9zY3NzL2plZXQvX2dyaWQuc2NzcyIsImluY2x1ZGVzL19jb2xvcnMuc2NzcyIsImluY2x1ZGVzL19zbGlkZXIuc2NzcyIsImJhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMva25hcHNhY2sva25hcHNhY2svX3R5cG9ncmFwaHkuc2NzcyIsImJhc2UvX2Jhc2Uuc2NzcyIsImluY2x1ZGVzL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMva25hcHNhY2sva25hcHNhY2svX2xheW91dC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMva25hcHNhY2sva25hcHNhY2svX3Jlc2V0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2tuYXBzYWNrL2tuYXBzYWNrL19jb2RlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2tuYXBzYWNrL2tuYXBzYWNrL19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9rbmFwc2Fjay9rbmFwc2Fjay9fdXRpbGl0aWVzLnNjc3MiLCJiYXNlL19zbGljZS5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9rbmFwc2Fjay9rbmFwc2Fjay9fdWkuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2ctaGVyby1jYXJvdXNlbC5zY3NzIiwiY29tcG9uZW50cy9fYmxvZy1maWx0ZXIuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2ctZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19ibG9nLW1vZGFsLnNjc3MiLCJjb21wb25lbnRzL19ibG9nLXBvc3QtZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19ibG9nLW1lbnUuc2NzcyIsIm1vZHVsZXMvX2Zvb3Rlci5zY3NzIiwibW9kdWxlcy9faGVhZGVyLnNjc3MiLCJtb2R1bGVzL19ibG9nLnNjc3MiLCJtb2R1bGVzL19hdXRob3Iuc2NzcyIsIm1vZHVsZXMvX2NvbnRyaWJ1dGUuc2NzcyIsIm1vZHVsZXMvX3NlYXJjaC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0tmO0VBQ0UsVUFBVTtFQUNWLFdBQVc7RUFDWCxVQUFVO0VBQ1YsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCx5QkFBeUIsRUFDMUI7O0FBR0Q7RUFDRSxlQUFlLEVBQ2hCOztBQUNEO0VBQ0UsZUFBZSxFQUNoQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGFBQWEsRUFDZDs7QUFDRDtFQUVJLFlBQVk7RUFDWixjQUFjLEVBQ2Y7O0FBRUg7RUFFSSxZQUFZO0VBQ1osY0FBYyxFQUNmOztBQUVIO0VBQ0UsMEJBQTBCO0VBQzFCLGtCQUFrQixFQUNuQjs7QUMyREg7Ozs7O0VBS0U7QUFDRjtFQUNFLHdCQWhGMkI7RUFnRmUsT0FBTztFQUNqRCwyQkFBMkI7RUFBRSxPQUFPO0VBQ3BDLCtCQUErQjtFQUFFLE9BQU8sRUFDekM7O0FBRUQ7O0VBRUU7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TUFDbkIsb0JBQW9CO01BQ3BCLDRCQUFvQjtjQUFwQixvQkFBb0IsRUFDckI7RW5CMGJEO0ltQnBkRztNQThCSCxhQUFhLEVBTWhCO01BcENEO1FBaUNNLFNBQVMsRUFDVixFQUFBIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSwgY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLCBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LCB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250OiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbm9sLCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTsgfVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGNvbnRlbnQ6IG5vbmU7IH1cblxucTpiZWZvcmUsIHE6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBjb250ZW50OiBub25lOyB9XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxuLyoqXG4qIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4qIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvblxuKiAgICBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4qICAgIHVzZXIgem9vbS5cbiovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyoqXG4qIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiogYW5kIEZpcmVmb3guXG4qIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4qL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4qIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4qIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4qIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4qIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4qL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gICAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qKlxuKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4qL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcbiogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4qL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4qL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyB9XG5cbi8qKlxuKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4qL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKlxuKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4qL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4qIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjY2NjY3ZW0gMDsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4qIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4qIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICAgKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcbiAgICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gICAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gICAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4qIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiovXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuKi9cbi8qKlxuKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4qICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAgICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4qL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4qIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4qICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4qIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4qICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9J2J1dHRvbiddLFxuaW5wdXRbdHlwZT0ncmVzZXQnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLyoqXG4qIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4qL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qKlxuKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4qL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4qIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiogdGhlIFVBIHN0eWxlc2hlZXQuXG4qL1xuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi8qKlxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gICAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gICAqXG4gICAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gICAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gICAqL1xuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSxcbmlucHV0W3R5cGU9J3JhZGlvJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuKi9cbmlucHV0W3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4qIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKi9cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cblxuLyoqXG4qIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4qIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiovXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4qL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4qIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4qL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDsgfVxuXG4ub2xkLWJyb3dzZXJzIHtcbiAgei1pbmRleDogOTk5OTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG4gIC5vbGQtYnJvd3NlcnMgaDIge1xuICAgIHBhZGRpbmc6IDIwcHggMCAyMHB4IDA7IH1cbiAgLm9sZC1icm93c2VycyBwLCAub2xkLWJyb3dzZXJzIHVsIHtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAub2xkLWJyb3dzZXJzIHAge1xuICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNGVtOyB9XG4gIC5vbGQtYnJvd3NlcnMgdWwgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwIDI1cHg7IH1cbiAgICAub2xkLWJyb3dzZXJzIHVsIGxpIGltZyB7XG4gICAgICB3aWR0aDogMTE1cHg7IH1cbiAgICAub2xkLWJyb3dzZXJzIHVsIGxpIHAge1xuICAgICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgICBjb2xvcjogIzI0OUFFMTsgfVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qICBTeW50YXggUXVpY2sgUmVmZXJlbmNlXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNvbHVtbigkcmF0aW9zOiAxLCAkb2Zmc2V0OiAwLCAkY3ljbGU6IDAsICR1bmN5Y2xlOiAwLCAkZ3V0dGVyOiAkamVldC1ndXR0ZXIpXG4gIHNwYW4oJHJhdGlvOiAxLCAkb2Zmc2V0OiAwKVxuICBzaGlmdCgkcmF0aW9zOiAwLCAkY29sX29yX3NwYW46IGNvbHVtbiwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKVxuICB1bnNoaWZ0KClcbiAgZWRpdCgpXG4gIGNlbnRlcigkbWF4X3dpZHRoOiAxNDEwcHgsICRwYWQ6IDApXG4gIHN0YWNrKCRwYWQ6IDAsICRhbGlnbjogZmFsc2UpXG4gIHVuc3RhY2soKVxuICBhbGlnbigkZGlyZWN0aW9uOiBib3RoKVxuICBjZigpXG4qL1xuLyoqXG4gKiBHcmlkIHNldHRpbmdzLlxuICogQWxsIHZhbHVlcyBhcmUgZGVmYXVsdHMgYW5kIGNhbiB0aGVyZWZvcmUgYmUgZWFzaWx5IG92ZXJpZGRlbi5cbiAqL1xuLyoqXG4gKiBMaXN0IGZ1bmN0aW9ucyBjb3VydGVzeSBvZiB0aGUgd29uZGVyZnVsIGZvbGtzIGF0IFRlYW0gU2Fzcy5cbiAqIENoZWNrIG91dCB0aGVpciBhd2Vzb21lIGdyaWQ6IFNpbmd1bGFyaXR5LlxuICovXG4vKipcbiAqIEdldCAgcGVyY2VudGFnZSBmcm9tIGEgZ2l2ZW4gcmF0aW8uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRyYXRpbz0xXSAtIFRoZSBjb2x1bW4gcmF0aW8gb2YgdGhlIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSAtIFRoZSBwZXJjZW50YWdlIHZhbHVlLlxuICovXG4vKipcbiAqIFdvcmsgb3V0IHRoZSBjb2x1bW4gd2lkdGhzIGJhc2VkIG9uIHRoZSByYXRpbyBhbmQgZ3V0dGVyIHNpemVzLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gVGhlIGNvbHVtbiByYXRpbyBvZiB0aGUgZWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGd1dHRlcj0kamVldC1ndXR0ZXJdIC0gVGhlIGd1dHRlciBmb3IgdGhlIGNvbHVtbi5cbiAqIEByZXR1cm5zIHtsaXN0fSAkd2lkdGggJGd1dHRlciAtIEEgbGlzdCBjb250YWluaW5nIHRoZSB3aXRoIGFuZCBndXR0ZXIgZm9yIHRoZSBlbGVtZW50LlxuICovXG4vKipcbiAqIEdldCB0aGUgc2V0IGxheW91dCBkaXJlY3Rpb24gZm9yIHRoZSBwcm9qZWN0LlxuICogQHJldHVybnMge3N0cmluZ30gJGRpcmVjdGlvbiAtIFRoZSBsYXlvdXQgZGlyZWN0aW9uLlxuICovXG4vKipcbiAqIFJlcGxhY2UgYSBzcGVjaWZpZWQgbGlzdCB2YWx1ZSB3aXRoIGEgbmV3IHZhbHVlICh1c2VzIGJ1aWx0IGluIHNldC1udGgoKSBpZiBhdmFpbGFibGUpXG4gKiBAcGFyYW0ge2xpc3R9ICRsaXN0IC0gVGhlIGxpc3Qgb2YgdmFsdWVzIHlvdSB3YW50IHRvIGFsdGVyLlxuICogQHBhcmFtIHtudW1iZXJ9ICRpbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgbGlzdCBpdGVtIHlvdSB3YW50IHRvIHJlcGxhY2UuXG4gKiBAcGFyYW0geyp9ICR2YWx1ZSAtIFRoZSB2YWx1ZSB5b3Ugd2FudCB0byByZXBsYWNlICRpbmRleCB3aXRoLlxuICogQHJldHVybnMge2xpc3R9ICRsaXN0IC0gVGhlIGxpc3Qgd2l0aCB0aGUgdmFsdWUgcmVwbGFjZWQgb3IgcmVtb3ZlZC5cbiAqIEB3YXJuIGlmIGFuIGludmFsaWQgaW5kZXggaXMgc3VwcGxpZWQuXG4gKi9cbi8qKlxuICogUmV2ZXJzZSBhIGxpc3QgKHByb2dyZXNzaXZlbHkgZW5oYW5jZWQgZm9yIFNhc3MgMy4zKVxuICogQHBhcmFtIHtsaXN0fSAkbGlzdCAtIFRoZSBsaXN0IG9mIHZhbHVlcyB5b3Ugd2FudCB0byByZXZlcnNlLlxuICogQHJldHVybnMge2xpc3R9ICRyZXN1bHQgLSBUaGUgcmV2ZXJzZWQgbGlzdC5cbiAqL1xuLyoqXG4gKiBHZXQgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiB0byBhIGdpdmVuIHZhbHVlLlxuICogQHBhcmFtIHtzdHJpbmd9ICRkaXIgLSBUaGUgZGlyZWN0aW9uIHlvdSB3YW50IHRoZSBvcHBvc2l0ZSBvZi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIG9wcG9zaXRlIGRpcmVjdGlvbiB0byAkZGlyLlxuICogQHdhcm4gaWYgYW4gaW5jb3JyZWN0IHN0cmluZyBpcyBwcm92aWRlZC5cbiAqL1xuLyoqXG4gKiBTdHlsZSBhbiBlbGVtZW50IGFzIGEgY29sdW1uIHdpdGggYSBndXR0ZXIuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRyYXRpb3M9MV0gLSBBIHdpZHRoIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXIgYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJG9mZnNldD0wXSAtIEEgb2Zmc2V0IHNwZWNpZmllZCBhcyBhIGZyYWN0aW9uIChzZWUgJHJhdGlvcykuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRjeWNsZT0wXSAtIEVhc2lseSBjcmVhdGUgYW4gbnRoIGNvbHVtbiBncmlkIHdoZXJlICRjeWNsZSBlcXVhbHMgdGhlIG51bWJlciBvZiBjb2x1bW5zLlxuICogQHBhcmFtIHtudW1iZXJ9IFskdW5jeWNsZT0wXSAtIFVuZG8gYSBwcmV2aW91cyBjeWNsZSB2YWx1ZSB0byBhbGxvdyBmb3IgYSBuZXcgb25lLlxuICogQHBhcmFtIHtudW1iZXJ9IFskZ3V0dGVyPSRqZWV0LWd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG4vKipcbiAqIEFuIGFsaWFzIGZvciB0aGUgY29sdW1uIG1peGluLlxuICogQHBhcmFtIFskYXJncy4uLl0gLSBBbGwgYXJndW1lbnRzIGdldCBwYXNzZWQgdGhyb3VnaCB0byBjb2x1bW4oKS5cbiAqL1xuLyoqXG4gKiBHZXQgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGFuZCBub3RoaW5nIGVsc2UuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRyYXRpb3M9MV0gLSBBIHdpZHRoIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXIgYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGd1dHRlcj0kamVldC1ndXR0ZXJdIC0gU3BlY2lmeSB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY29udGFpbmVycyB3aWR0aC5cbiAqL1xuLyoqXG4gKiBHZXQgdGhlIGd1dHRlciBzaXplIG9mIGEgY29sdW1uIGFuZCBub3RoaW5nIGVsc2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3JhdGlvcz0xXSAtIEEgd2lkdGggcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lciBhcyBhIGZyYWN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFtndXR0ZXI9amVldC5ndXR0ZXJdIC0gU3BlY2lmeSB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY29udGFpbmVycyB3aWR0aC5cbiAqL1xuLyoqXG4gKiBBbiBhbGlhcyBmb3IgdGhlIGNvbHVtbi13aWR0aCBmdW5jdGlvbi5cbiAqIEBwYXJhbSBbJGFyZ3MuLi5dIC0gQWxsIGFyZ3VtZW50cyBnZXQgcGFzc2VkIHRocm91Z2ggdG8gY29sdW1uKCkuXG4gKi9cbi8qKlxuICogQW4gYWxpYXMgZm9yIHRoZSBjb2x1bW4tZ3V0dGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIFskYXJncy4uLl0gLSBBbGwgYXJndW1lbnRzIGdldCBwYXNzZWQgdGhyb3VnaCB0byBjb2x1bW4oKS5cbiAqL1xuLyoqXG4gKiBTdHlsZSBhbiBlbGVtZW50IGFzIGEgY29sdW1uIHdpdGhvdXQgYW55IGd1dHRlcnMgZm9yIGEgc2VhbWxlc3Mgcm93LlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRvZmZzZXQ9MF0gLSBBIG9mZnNldCBzcGVjaWZpZWQgYXMgYSBmcmFjdGlvbiAoc2VlICRyYXRpb3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IFtjeWNsZT0wXSAtIEVhc2lseSBjcmVhdGUgYW4gbnRoIGNvbHVtbiBncmlkIHdoZXJlIGN5Y2xlIGVxdWFscyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuXG4gKiBAcGFyYW0ge251bWJlcn0gW3VuY3ljbGU9MF0gLSBVbmRvIGEgcHJldmlvdXMgY3ljbGUgdmFsdWUgdG8gYWxsb3cgZm9yIGEgbmV3IG9uZS5cbiAqL1xuLyoqXG4gKiBSZW9yZGVyIGNvbHVtbnMgd2l0aG91dCBhbHRlcmluZyB0aGUgSFRNTC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHJhdGlvcz0wXSAtIFNwZWNpZnkgaG93IGZhciBhbG9uZyB5b3Ugd2FudCB0aGUgZWxlbWVudCB0byBtb3ZlLlxuICogQHBhcmFtIHtzdHJpbmd9IFskY29sLW9yLXNwYW49Y29sdW1uXSAtIFNwZWNpZnkgd2hldGhlciB0aGUgZWxlbWVudCBoYXMgYSBndXR0ZXIgb3Igbm90LlxuICogQHBhcmFtIHtudW1iZXJ9IFskZ3V0dGVyPSRqZWV0LWd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG4vKipcbiAqIFJlc2V0IGFuIGVsZW1lbnQgdGhhdCBoYXMgaGFkIHNoaWZ0KCkgYXBwbGllZCB0byBpdC5cbiAqL1xuLyoqXG4gKiBWaWV3IHRoZSBncmlkIGFuZCBpdHMgbGF5ZXJzIGZvciBlYXN5IGRlYnVnZ2luZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGNvbG9yPWJsYWNrXSAtIFRoZSBiYWNrZ3JvdW5kIHRpbnQgYXBwbGllZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gWyRpbXBvcnRhbnQ9ZmFsc2VdIC0gV2hldGhlciB0byBhcHBseSB0aGUgc3R5bGUgYXMgIWltcG9ydGFudC5cbiAqL1xuLyoqXG4gKiAgQWxpYXMgZm9yIGVkaXQoKS5cbiAqL1xuLyoqXG4gKiBIb3Jpem9udGFsbHkgY2VudGVyIGFuIGVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRtYXgtd2lkdGg9MTQxMHB4XSAtIFRoZSBtYXggd2lkdGggdGhlIGVsZW1lbnQgY2FuIGJlLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcGFkPTBdIC0gU3BlY2lmeSB0aGUgZWxlbWVudCdzIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcuXG4gKi9cbi8qKlxuICogVW5jZW50ZXIgYW4gZWxlbWVudC5cbiAqL1xuLyoqXG4gKiBTdGFjayBhbiBlbGVtZW50IHNvIHRoYXQgbm90aGluZyBpcyBlaXRoZXIgc2lkZSBvZiBpdC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHBhZD0wXSAtIFNwZWNpZnkgdGhlIGVsZW1lbnQncyBsZWZ0IGFuZCByaWdodCBwYWRkaW5nLlxuICogQHBhcmFtIHtib29sZWFuL3N0cmluZ30gWyRhbGlnbj1mYWxzZV0gLSBTcGVjaWZ5IHRoZSB0ZXh0IGFsaWduIGZvciB0aGUgZWxlbWVudC5cbiAqL1xuLyoqXG4gKiBVbnN0YWNrIGFuIGVsZW1lbnQuXG4gKi9cbi8qKlxuICogQ2VudGVyIGFuIGVsZW1lbnQgb24gZWl0aGVyIG9yIGJvdGggYXhlcy5cbiAqIEByZXF1aXJlcyBBIHBhcmVudCBjb250YWluZXIgd2l0aCByZWxhdGl2ZSBwb3NpdGlvbmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGRpcmVjdGlvbj1ib3RoXSAtIFNwZWNpZnkgd2hpY2ggYXhlcyB0byBjZW50ZXIgdGhlIGVsZW1lbnQgb24uXG4gKi9cbi8qKlxuICogQXBwbHkgYSBjbGVhcmZpeCB0byBhbiBlbGVtZW50LlxuICovXG5wIGEge1xuICBjb2xvcjogZGVlcHNreWJsdWU7XG4gIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTsgfVxuICBwIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGNvbG9yOiAjMDA5OWNjOyB9XG5cbi8qIFNsaWRlciAqL1xuLnNsaWNrLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5zbGljay1saXN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5zbGljay1saXN0LmRyYWdnaW5nIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY3Vyc29yOiBoYW5kOyB9XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLXRyYWNrOmJlZm9yZSwgLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5zbGljay10cmFjazphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBkaXNwbGF5OiBub25lOyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWcge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBTbGlkZXIgKi9cbi5zbGljay1sb2FkaW5nIC5zbGljay1saXN0IHtcbiAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCIuLy9pbWcvYWpheC1sb2FkZXIuZ2lmXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0OyB9XG5cbi8qIEljb25zICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgc3JjOiB1cmwoXCIuL2ZvbnRzL3NsaWNrLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuL2ZvbnRzL3NsaWNrLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4vZm9udHMvc2xpY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuL2ZvbnRzL3NsaWNrLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi9mb250cy9zbGljay5zdmcjc2xpY2tcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLyogQXJyb3dzICovXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDBweDtcbiAgZm9udC1zaXplOiAwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7IH1cbiAgLnNsaWNrLXByZXY6aG92ZXIsIC5zbGljay1wcmV2OmZvY3VzLFxuICAuc2xpY2stbmV4dDpob3ZlcixcbiAgLnNsaWNrLW5leHQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLCAuc2xpY2stcHJldjpmb2N1czpiZWZvcmUsXG4gICAgLnNsaWNrLW5leHQ6aG92ZXI6YmVmb3JlLFxuICAgIC5zbGljay1uZXh0OmZvY3VzOmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkOmJlZm9yZSxcbiAgLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjI1OyB9XG5cbi5zbGljay1wcmV2OmJlZm9yZSwgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjc1O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4uc2xpY2stcHJldiB7XG4gIGxlZnQ6IC0yNXB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IC0yNXB4OyB9XG4gIC5zbGljay1wcmV2OmJlZm9yZSB7XG4gICAgY29udGVudDogXCLihpBcIjsgfVxuICAgIFtkaXI9XCJydGxcIl0gLnNsaWNrLXByZXY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwi4oaSXCI7IH1cblxuLnNsaWNrLW5leHQge1xuICByaWdodDogLTI1cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stbmV4dCB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgcmlnaHQ6IGF1dG87IH1cbiAgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKGklwiOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stbmV4dDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCLihpBcIjsgfVxuXG4vKiBEb3RzICovXG4uc2xpY2stc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4uc2xpY2stZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtNDVweDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNsaWNrLWRvdHMgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIG1hcmdpbjogMCA1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuc2xpY2stZG90cyBsaSBidXR0b24ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgICBmb250LXNpemU6IDBweDtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyLCAuc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lOyB9XG4gICAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpob3ZlcjpiZWZvcmUsIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogXCLigKJcIjtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgICAgICAgZm9udC1zaXplOiA2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cbiAgICAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICBvcGFjaXR5OiAwLjc1OyB9XG5cbi5kZWZhdWx0LXR5cGUsIGJvZHksIHAsIGEsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG5zbWFsbCwgZW0sIHN0cm9uZywgaW5wdXQsIGJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjNDQ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIGZvbnQtZmFtaWx5OiBcIkZyYW5rbGluR290aGljIFVSVyBDb25kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgaDE6Zmlyc3QtY2hpbGQsIGgyOmZpcnN0LWNoaWxkLCBoMzpmaXJzdC1jaGlsZCwgaDQ6Zmlyc3QtY2hpbGQsIGg1OmZpcnN0LWNoaWxkLCBoNjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICBoMSBhLCBoMiBhLCBoMyBhLCBoNCBhLCBoNSBhLCBoNiBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuXG5oMyB7XG4gIGZvbnQtZmFtaWx5OiBcInByb3hpbWEtbm92YVwiLCBcIlByb3hpbWEgTm92YVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbmg0IHtcbiAgZm9udC1mYW1pbHk6IFwicHJveGltYS1ub3ZhXCIsIFwiUHJveGltYSBOb3ZhXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IH1cblxucCB7XG4gIGZvbnQtZmFtaWx5OiBcInByb3hpbWEtbm92YVwiLCBcIlByb3hpbWEgTm92YVwiLCBzYW5zLXNlcmlmOyB9XG5cbmgxIHtcbiAgZm9udC1zaXplOiBjYWxjKDM2cHggKyAyMCAqICgoMTAwdncgLSA0MjBweCkgLyA2MDQpKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogNTZweDsgfSB9XG5cbmgyIHtcbiAgZm9udC1zaXplOiBjYWxjKDM2cHggKyA2ICogKCgxMDB2dyAtIDQyMHB4KSAvIDYwNCkpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiAzNnB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiA0MnB4OyB9IH1cblxuaDMge1xuICBmb250LXNpemU6IGNhbGMoMjRweCArIDAgKiAoKDEwMHZ3IC0gNDIwcHgpIC8gNjA0KSk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICBoMyB7XG4gICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBoMyB7XG4gICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogY2FsYygyNHB4ICsgNCAqICgoMTAwdncgLSA0MjBweCkgLyA2MDQpKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgIGg0IHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGg0IHtcbiAgICAgIGZvbnQtc2l6ZTogMjhweDsgfSB9XG5cbmg1IHtcbiAgZm9udC1zaXplOiBjYWxjKDIwcHggKyA2ICogKCgxMDB2dyAtIDQyMHB4KSAvIDYwNCkpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gICAgaDUge1xuICAgICAgZm9udC1zaXplOiAyMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgaDUge1xuICAgICAgZm9udC1zaXplOiAyNnB4OyB9IH1cblxuaDYge1xuICBmb250LXNpemU6IGNhbGMoMThweCArIDYgKiAoKDEwMHZ3IC0gNDIwcHgpIC8gNjA0KSk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICBoNiB7XG4gICAgICBmb250LXNpemU6IDE4cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBoNiB7XG4gICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuXG5wLCB1bCwgbGksIG9sIHtcbiAgZm9udC1zaXplOiBjYWxjKDE1cHggKyAzICogKCgxMDB2dyAtIDQyMHB4KSAvIDQ4MCkpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gICAgcCwgdWwsIGxpLCBvbCB7XG4gICAgICBmb250LXNpemU6IDE1cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIHAsIHVsLCBsaSwgb2wge1xuICAgICAgZm9udC1zaXplOiAxOHB4OyB9IH1cblxucCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgbWFyZ2luOiAxZW0gMDsgfVxuXG5hIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5jb250YWluZXIge1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxOTIwcHg7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXI6IDFweCBzb2xpZCAjQzhDQkNEOyB9XG4gIC5jb250YWluZXI6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi5pbm5lci1jb250YWluZXIge1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMjgwcHg7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiA1JTtcbiAgcGFkZGluZy1yaWdodDogNSU7IH1cbiAgLmlubmVyLWNvbnRhaW5lcjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmlubmVyLWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nOiAwIDQlOyB9XG4gICAgICAuaW5uZXItY29udGFpbmVyLmlubmVyLWNvbnRhaW5lci1tb2JpbGUtYnJlYWsge1xuICAgICAgICBwYWRkaW5nOiAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cblxuYm9keS5jYXRlZ29yeS1tYXJrZXRpbmcgLmJsb2ctcG9zdC1vdmVybGF5LCBib2R5LmNhdGVnb3J5LXJlc2VhcmNoIC5ibG9nLXBvc3Qtb3ZlcmxheSwgYm9keS5jYXRlZ29yeS1kZXNpZ24gLmJsb2ctcG9zdC1vdmVybGF5LCBib2R5LmNhdGVnb3J5LXByb2R1Y3QgLmJsb2ctcG9zdC1vdmVybGF5LCBib2R5LmNhdGVnb3J5LWN4IC5ibG9nLXBvc3Qtb3ZlcmxheSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uY2Y6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJ1dHRvbixcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aWR0aDogYXV0bzsgfVxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIGlucHV0W3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIGlucHV0W3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsOyB9XG5cbmltZyxcbnZpZGVvIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxucDpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG5wOmxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuYSxcbmxhYmVsLFxuc2VsZWN0LFxub3B0aW9uLFxuYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmlucHV0IHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvdXRsaW5lOiBub25lOyB9XG5cbmNvZGUge1xuICBwYWRkaW5nOiAzcHggNHB4O1xuICBjb2xvcjogIzIxOTZGMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmZjFmMjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QzZDhkYztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgbW9ub3NwYWNlOyB9XG5cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA3cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmYxZjI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkM2Q4ZGM7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBtb25vc3BhY2U7XG4gIGxpbmUtaGVpZ2h0OiAxNjAlOyB9XG5cbmhyIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDEuNWVtIDA7IH1cblxubmF2IHVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIG5hdiB1bCBsaSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbnVsLnRleHQge1xuICBtYXJnaW46IC4zMnJlbSAuOTRyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTsgfVxuICB1bC50ZXh0IGxpIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gICAgcGFkZGluZzogLjEyNXJlbSAwOyB9XG5cbm9sLnRleHQge1xuICBtYXJnaW46IC4zMnJlbSAuOTRyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTsgfVxuICBvbC50ZXh0IGxpIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG4gICAgcGFkZGluZzogLjEyNXJlbSAwOyB9XG5cbnVsLnRleHQgdWwsIHVsLnRleHQgb2wsIG9sLnRleHQgb2wsIG9sLnRleHQgdWwge1xuICBtYXJnaW46IC4zcmVtIDFyZW0gMDsgfVxuXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuI3dwYWRtaW5iYXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5ibG9nLWJyYiAuYmxvZy1wb3N0LWhlcm8ge1xuICBoZWlnaHQ6IDk5dmg7IH1cbiAgLmJsb2ctYnJiIC5ibG9nLXBvc3QtaGVybyBwIHtcbiAgICBtYXgtd2lkdGg6IDgwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTsgfVxuXG4uYmxvZy1icmIgaGVhZGVyLCAuYmxvZy1icmIgZm9vdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDk5ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5ibG9nLWJyYiBoZWFkZXIge1xuICB0b3A6IDBweDsgfVxuXG4uYmxvZy1icmIgZm9vdGVyIHtcbiAgYm90dG9tOiAwcHg7IH1cblxuLmJsb2ctYnJiIC5oZWFkZXItaXRlbSB7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuXG4uYmxvZy1icmIgLmJvdHRvbS1oZWFkZXIge1xuICBoZWlnaHQ6IDczcHg7IH1cblxuLmdlbmVyYWwge1xuICBwYWRkaW5nOiA3LjgxMjVyZW0gMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5nZW5lcmFsIC5idG4ge1xuICAgIG1hcmdpbi10b3A6IDMuMTI1cmVtO1xuICAgIHBhZGRpbmc6IDAuNjI1cmVtIDMuMTI1cmVtOyB9XG5cbi5uY19zb2NpYWxQYW5lbFNpZGUge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5uY19zb2NpYWxQYW5lbFNpZGUge1xuICAgICAgdG9wOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICBib3R0b206IDBweCAhaW1wb3J0YW50O1xuICAgICAgbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgei1pbmRleDogOTAgIWltcG9ydGFudDsgfSB9XG5cbi5uY190d2VldENvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7IH1cblxuZGl2Lm5jX3NvY2lhbFBhbmVsIC5uY190d2VldENvbnRhaW5lciB7XG4gIG1hcmdpbjogMjBweCBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgZGl2Lm5jX3NvY2lhbFBhbmVsIC5uY190d2VldENvbnRhaW5lciB7XG4gICAgICBtYXJnaW46IDBweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi5uY19zb2NpYWxQYW5lbCBhIC5zd19jb3VudCB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgfVxuXG4ubmNfc29jaWFsUGFuZWwgLmljb25GaWxsZXIge1xuICBtYXgtd2lkdGg6IDMwcHggIWltcG9ydGFudDsgfVxuXG4uc3cge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBtYXJnaW46IDRweCA4cHggIWltcG9ydGFudDsgfVxuXG4uc3dfc2hhcmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnN3OmJlZm9yZSB7XG4gIGNvbG9yOiAjNDQ0OyB9XG5cbi5zbGljZSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uc2xpY2UtaXRlbSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuYS5idG4sXG5idXR0b24sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSB7XG4gIHBhZGRpbmc6IDEwcHggMjJweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEFCRjUxO1xuICBjb2xvcjogI0ZGRjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIGEuYnRuOmhvdmVyLFxuICBidXR0b246aG92ZXIsXG4gIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIsXG4gIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzcwYTIzYjsgfVxuICBhLmJ0bi5idG4td2hpdGUsXG4gIGJ1dHRvbi5idG4td2hpdGUsXG4gIGlucHV0W3R5cGU9XCJidXR0b25cIl0uYnRuLXdoaXRlLFxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLmJ0bi13aGl0ZSxcbiAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLmJ0bi13aGl0ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgI0ZGRkZGRjtcbiAgICBib3JkZXItY29sb3I6ICNGRkZGRkY7IH1cbiAgICBhLmJ0bi5idG4td2hpdGU6aG92ZXIsXG4gICAgYnV0dG9uLmJ0bi13aGl0ZTpob3ZlcixcbiAgICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLmJ0bi13aGl0ZTpob3ZlcixcbiAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLmJ0bi13aGl0ZTpob3ZlcixcbiAgICBpbnB1dFt0eXBlPVwicmVzZXRcIl0uYnRuLXdoaXRlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgICBjb2xvcjogIzAwODJDQTsgfVxuICBhLmJ0bi5idG4tb3JhbmdlLFxuICBidXR0b24uYnRuLW9yYW5nZSxcbiAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXS5idG4tb3JhbmdlLFxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLmJ0bi1vcmFuZ2UsXG4gIGlucHV0W3R5cGU9XCJyZXNldFwiXS5idG4tb3JhbmdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjU4MjIwO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNGRkZGRkY7XG4gICAgYm9yZGVyLWNvbG9yOiAjRkZGRkZGOyB9XG4gICAgYS5idG4uYnRuLW9yYW5nZTpob3ZlcixcbiAgICBidXR0b24uYnRuLW9yYW5nZTpob3ZlcixcbiAgICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLmJ0bi1vcmFuZ2U6aG92ZXIsXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5idG4tb3JhbmdlOmhvdmVyLFxuICAgIGlucHV0W3R5cGU9XCJyZXNldFwiXS5idG4tb3JhbmdlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNDRDY2MzI7XG4gICAgICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4uYmxvZy1oZXJvLWNhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzE5ODRiYztcbiAgLyogdGVzdCAqLyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAuYmxvZy1oZXJvLWNhcm91c2VsIHtcbiAgICAgIG1pbi1oZWlnaHQ6IGF1dG87IH0gfVxuICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogNDN2aDtcbiAgICBtaW4taGVpZ2h0OiAzNTBweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87IH0gfVxuICAgIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlIGgyLCAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZSBoNSwgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpZGUgcCwgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpZGUgYSB7XG4gICAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlIGgyIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZSBoNSB7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICBmb250LWZhbWlseTogXCJwcm94aW1hLW5vdmFcIiwgXCJQcm94aW1hIE5vdmFcIiwgc2Fucy1zZXJpZjsgfVxuICAgIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlIGEge1xuICAgICAgbWFyZ2luLXRvcDogMC42MjVyZW07IH1cbiAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZSBpbWcge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICB3aWR0aDogMjIuNzUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzJTtcbiAgICAgIHdpZHRoOiAyNC41JTsgfVxuICAgICAgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpZGUgaW1nOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpZGUgaW1nOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlIGltZyB7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgICAgICB3aWR0aDogMzEuMzMzMzMzJTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzJTsgfVxuICAgICAgICAgIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlIGltZzphZnRlciB7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAgICAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZSBpbWc6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlLWN0YSwgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpZGUtYXJ0aWNsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGljay1kb3RzIHtcbiAgICBib3R0b206IDEuNTYyNXJlbTsgfVxuICAgIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWNrLWRvdHMgbGkge1xuICAgICAgbWFyZ2luOiAwIDAuNjI1cmVtOyB9XG4gICAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGljay1kb3RzIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgY29sb3I6ICNGRkZGRkY7XG4gICAgICBmb250LXNpemU6IDEuODc1cmVtOyB9XG5cbmlucHV0LmJsb2ctZW1haWwge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiA2MCU7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwJTtcbiAgbWF4LXdpZHRoOiAxOC43NXJlbTtcbiAgcGFkZGluZzogMC42MjVyZW0gMS4zNzVyZW07XG4gIGJvcmRlcjogMHJlbTsgfVxuICBpbnB1dC5ibG9nLWVtYWlsOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBpbnB1dC5ibG9nLWVtYWlsIHtcbiAgICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICAgIHBhZGRpbmc6IDAuNjg3NXJlbSAxLjM3NXJlbTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NzFweCkge1xuICAgIGlucHV0LmJsb2ctZW1haWwge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwJTtcbiAgICAgIGhlaWdodDogMi42MjVyZW07IH1cbiAgICAgIGlucHV0LmJsb2ctZW1haWw6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9IH1cblxuYnV0dG9uLmJsb2ctc3VibWl0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICB3aWR0aDogNDAlO1xuICBtYXJnaW4tbGVmdDogMCU7XG4gIG1hcmdpbi1yaWdodDogMCU7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMS4zNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgYnV0dG9uLmJsb2ctc3VibWl0OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBidXR0b24uYmxvZy1zdWJtaXQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc3MXB4KSB7XG4gICAgYnV0dG9uLmJsb2ctc3VibWl0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDIuNjI1cmVtOyB9XG4gICAgICBidXR0b24uYmxvZy1zdWJtaXQ6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9IH1cblxuLmhlcm8tb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDM1LCAzMSwgMzIsIDAuMzgpOyB9XG5cbi5zbGljay1zbGlkZXIge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cblxuLnNsaWRlLWFydGljbGUge1xuICB6LWluZGV4OiAzO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnNsaWRlLWFydGljbGUgaW5wdXQsIC5zbGlkZS1hcnRpY2xlIGltZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uc2xpZGUtY3RhIC5zbGlkZS1jZW50ZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNsaWRlLWN0YSAuc2xpZGUtY2VudGVyOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuXG4uc2xpZGUtY3RhIC5zbGlkZS1zcGxpdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgd2lkdGg6IDc0LjI1JTtcbiAgbWFyZ2luLWxlZnQ6IDAlO1xuICBtYXJnaW4tcmlnaHQ6IDMlO1xuICBtYXgtd2lkdGg6IDQ1LjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiA0JTtcbiAgcGFkZGluZy10b3A6IDA7IH1cbiAgLnNsaWRlLWN0YSAuc2xpZGUtc3BsaXQ6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5zbGlkZS1jdGEgLnNsaWRlLXNwbGl0Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIC5zbGlkZS1jdGEgLnNsaWRlLXNwbGl0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDY1LjY2NjY2NyU7XG4gICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMlOyB9XG4gICAgICAuc2xpZGUtY3RhIC5zbGlkZS1zcGxpdDphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAgIC5zbGlkZS1jdGEgLnNsaWRlLXNwbGl0Omxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9IH1cbiAgLnNsaWRlLWN0YSAuc2xpZGUtc3BsaXQgLmJsb2ctZW1haWwge1xuICAgIGhlaWdodDogNDJweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7IH1cblxuLm1vYmlsZS1zaWdudXAtc2xpZGUge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxLjU2MjVyZW0gMDtcbiAgYmFja2dyb3VuZDogIzQ0NDsgfVxuICAubW9iaWxlLXNpZ251cC1zbGlkZTphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLm1vYmlsZS1zaWdudXAtc2xpZGUgaDUge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICBmb250LWZhbWlseTogXCJwcm94aW1hLW5vdmFcIiwgXCJQcm94aW1hIE5vdmFcIiwgc2Fucy1zZXJpZjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAubW9iaWxlLXNpZ251cC1zbGlkZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi50aGFua3NzdHVmZiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnRoYW5rc3N0dWZmIGg1IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgLnRoYW5rc3N0dWZmIHAge1xuICAgIG1hcmdpbjogMS41NjI1cmVtIDA7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuLmJsb2ctbmF2IHtcbiAgcGFkZGluZzogMC42MjVyZW0gMDtcbiAgYmFja2dyb3VuZDogI0U4RTlFQTtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmJsb2ctbmF2IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uYmxvZy1maWx0ZXJzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmJsb2ctZmlsdGVycyBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwIDIuNSU7XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgI0M4Q0JDRDsgfVxuICAgIC5ibG9nLWZpbHRlcnMgbGk6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLmJsb2ctZmlsdGVycyBsaTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTsgfVxuICAgIC5ibG9nLWZpbHRlcnMgbGkgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci10b3A6IDEwcHggc29saWQgI0U4RTlFQTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogLTIwcHg7XG4gICAgICBsZWZ0OiA0MCU7IH1cbiAgICAgIC5ibG9nLWZpbHRlcnMgbGkgc3Bhbi5pcy1hY3RpdmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5ibG9nLWZpbHRlcnMgbGkgYSB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuICAgICAgLmJsb2ctZmlsdGVycyBsaSBhLmlzLWFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjMDA4MkNBO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYmxvZy1maWx0ZXJzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5ibG9nLWZpbHRlcnMgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwcHg7IH1cbiAgICAgICAgLmJsb2ctZmlsdGVycyBsaSBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwYWRkaW5nOiAxLjEyNXJlbSA1JTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0ZGRkZGRjsgfSB9XG5cbi5ibG9nLWZvb3RlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWFyZ2luLWJvdHRvbTogMS41NjI1cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ibG9nLWZvb3RlciB7XG4gICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLmJsb2ctZm9vdGVyLWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB6b29tOiAxOyB9XG4gIC5ibG9nLWZvb3Rlci1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gICAgLmJsb2ctZm9vdGVyLWl0ZW06Zmlyc3QtY2hpbGQgLmJsb2ctZm9vdGVyLWl0ZW0taW5uZXIge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjU2MjVyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRThFOUVBOyB9XG4gICAgICAuYmxvZy1mb290ZXItaXRlbTpmaXJzdC1jaGlsZCAuYmxvZy1mb290ZXItaXRlbS1pbm5lciBoNSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgICAgLmJsb2ctZm9vdGVyLWl0ZW06Zmlyc3QtY2hpbGQgLmJsb2ctZm9vdGVyLWl0ZW0taW5uZXIgdWwge1xuICAgICAgICBtYXJnaW46IDAuNjI1cmVtIDAgMS41NjI1cmVtIDA7IH1cbiAgICAgIC5ibG9nLWZvb3Rlci1pdGVtOmZpcnN0LWNoaWxkIC5ibG9nLWZvb3Rlci1pdGVtLWlubmVyIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNjI1cmVtIDAuNjI1cmVtIDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgICAuYmxvZy1mb290ZXItaXRlbTpmaXJzdC1jaGlsZCAuYmxvZy1mb290ZXItaXRlbS1pbm5lciBzcGFuIHtcbiAgICAgICAgY29sb3I6ICM4QUJGNTE7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMzEyNXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgLmJsb2ctZm9vdGVyLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgICAgLmJsb2ctZm9vdGVyLWl0ZW06Zmlyc3QtY2hpbGQgcCB7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuICAgICAgICAuYmxvZy1mb290ZXItaXRlbTpmaXJzdC1jaGlsZCBsaSB7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjMxMjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MzlweCkge1xuICAgICAgLmJsb2ctZm9vdGVyLWl0ZW06Zmlyc3QtY2hpbGQgbGkge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMCU7IH1cbiAgICAgICAgLmJsb2ctZm9vdGVyLWl0ZW06Zmlyc3QtY2hpbGQgbGk6YWZ0ZXIge1xuICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgICAgIC5ibG9nLWZvb3Rlci1pdGVtOmZpcnN0LWNoaWxkIGxpOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtOyB9IH1cbiAgLmJsb2ctZm9vdGVyLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDQwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuYmxvZy1mb290ZXItaXRlbTpsYXN0LWNoaWxkIC5ibG9nLWZvb3Rlci1pdGVtLWlubmVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmJsb2ctZm9vdGVyLWl0ZW0ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gICAgICAuYmxvZy1mb290ZXItaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWluLWhlaWdodDogMTQuMDYyNXJlbTsgfVxuICAgICAgLmJsb2ctZm9vdGVyLWl0ZW0gLmJsb2ctZm9vdGVyLWl0ZW0taW5uZXIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG5cbi5ibG9nLWZvb3Rlci1pdGVtLWlubmVyIHtcbiAgcGFkZGluZzogMS4yNXJlbTsgfVxuXG4uYmxvZy1mb290ZXItaXRlbS1ib3R0b20ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMC42MjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMCAzJTsgfVxuICAuYmxvZy1mb290ZXItaXRlbS1ib3R0b20gaDUge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbWFyZ2luLWJvdG9tOiAwLjVyZW07IH1cbiAgLmJsb2ctZm9vdGVyLWl0ZW0tYm90dG9tIGg1LCAuYmxvZy1mb290ZXItaXRlbS1ib3R0b20gLmJsb2ctZm9vdGVyLXRpdGxlIHtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBmb250LXdlaWdodDogNTAwOyB9XG5cbi5ibG9nLWZvb3Rlci10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLmJsb2ctbW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk4O1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDY4LCA2OCwgNjgsIDAuNyk7IH1cblxuLmJsb2ctbW9kYWwtc2lnbnVwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk5O1xuICBtYXgtd2lkdGg6IDI4LjEyNXJlbTtcbiAgd2lkdGg6IDgwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDMuMTI1cmVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbTtcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDZweCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE5KSAhaW1wb3J0YW50OyB9XG4gIC5ibG9nLW1vZGFsLXNpZ251cCBoNSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1mYW1pbHk6IFwicHJveGltYS1ub3ZhXCIsIFwiUHJveGltYSBOb3ZhXCIsIHNhbnMtc2VyaWY7IH1cbiAgLmJsb2ctbW9kYWwtc2lnbnVwIHAge1xuICAgIG1hcmdpbjogMS41NjI1cmVtIDA7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuICAuYmxvZy1tb2RhbC1zaWdudXAgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmJsb2ctbW9kYWwtc2lnbnVwIGlucHV0LCAuYmxvZy1tb2RhbC1zaWdudXAgYnV0dG9uIHtcbiAgICB3aWR0aDogODAlO1xuICAgIG1heC13aWR0aDogMTcuMTg3NXJlbTtcbiAgICBmbG9hdDogbm9uZTsgfVxuICAgIC5ibG9nLW1vZGFsLXNpZ251cCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIC5ibG9nLW1vZGFsLXNpZ251cCBidXR0b25bdHlwZT1cImVtYWlsXCJdIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXI6IDJweCBpbnNldDsgfVxuICAuYmxvZy1tb2RhbC1zaWdudXAgLnRoYW5rc3N0dWZmIGg1LCAuYmxvZy1tb2RhbC1zaWdudXAgLnRoYW5rc3N0dWZmIHAge1xuICAgIGNvbG9yOiAjNDQ0OyB9XG5cbi5ibG9nLW1vZGFsLWNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwYWRkaW5nOiAxLjU2MjVyZW07XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuYmxvZy1tb2RhbC1jbG9zZSBzdmcge1xuICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgIGhlaWdodDogMC43NXJlbTtcbiAgICBmaWxsOiAjNDQ0OyB9XG5cbi5ibG9nLXBvc3QtZm9vdGVyLWN0YSwgLmJsb2ctcG9zdC1hdXRob3IsIC5yZWxhdGVkLXRpdGxlIHtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmJsb2ctcG9zdC1mb290ZXItY3RhLCAuYmxvZy1wb3N0LWF1dGhvciwgLnJlbGF0ZWQtdGl0bGUge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cblxuLmJsb2ctcG9zdC1mb290ZXItY3RhLCAuYmxvZy1wb3N0LWF1dGhvciB7XG4gIG1hcmdpbjogMS41NjI1cmVtIGF1dG87IH1cblxuLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEtc2lnbnVwIGg1IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjU2MjVyZW07IH1cbiAgLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCBmb3JtIHtcbiAgICBwYWRkaW5nOiAwIDEyJTsgfVxuICAgIC5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAgZm9ybTphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCBpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGhlaWdodDogMi41cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEtc2lnbnVwIGlucHV0W3R5cGU9XCJlbWFpbFwiXSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiA2MCU7XG4gICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9XG4gICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEtc2lnbnVwIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEtc2lnbnVwIGJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDQwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMCU7IH1cbiAgICAgIC5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl06YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIC5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAgZm9ybSB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCBpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAgICAgLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCBidXR0b25bdHlwZT1cInN1Ym1pdFwiXTphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7IH0gfVxuXG4uY3RhLXNpZ251cC5saW5rLWFjdGl2ZSwgLmN0YS1zaWdudXAuZG93bmxvYWQtYWN0aXZlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5jdGEtc2lnbnVwLnNpZ251cC1hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uY3RhLWxpbmsubGluay1hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uY3RhLWRvd25sb2FkLmRvd25sb2FkLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5ibG9nLXBvc3QtZm9vdGVyLWN0YSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgem9vbTogMTtcbiAgYmFja2dyb3VuZDogIzQ0NDtcbiAgcGFkZGluZzogNiUgOCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IHtcbiAgICB3aWR0aDogNjUlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMuMTI1cmVtOyB9XG4gIC5ibG9nLXBvc3QtZm9vdGVyLWN0YSBoNSwgLmJsb2ctcG9zdC1mb290ZXItY3RhIHAge1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5ibG9nLXBvc3QtZm9vdGVyLWN0YSBoNSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50OyB9XG4gIC5ibG9nLXBvc3QtZm9vdGVyLWN0YSBhIHtcbiAgICBtYXJnaW4tdG9wOiAxLjU2MjVyZW07IH1cbiAgLmJsb2ctcG9zdC1mb290ZXItY3RhIGltZyB7XG4gICAgd2lkdGg6IDM1JTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEge1xuICAgICAgcGFkZGluZzogMTUlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjU2MjVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IC5idG4ge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgYm90dG9tOiAtMi44MTI1cmVtO1xuICAgICAgICAgIHJpZ2h0OiAwcHg7IH1cbiAgICAgICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IC5idG46aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICM3MGEyM2I7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3MGEyM2I7IH1cbiAgICAgICAgICAgIC5ibG9nLXBvc3QtZm9vdGVyLWN0YSAuYmxvZy1mb290ZXItY3RhLWNvbnRlbnQgLmJ0bjpob3ZlcjpiZWZvcmUge1xuICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjNzBhMjNiOyB9XG4gICAgICAgICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IC5idG46aG92ZXI6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjNzBhMjNiOyB9XG4gICAgICAgICAgLmJsb2ctcG9zdC1mb290ZXItY3RhIC5ibG9nLWZvb3Rlci1jdGEtY29udGVudCAuYnRuOmJlZm9yZSwgLmJsb2ctcG9zdC1mb290ZXItY3RhIC5ibG9nLWZvb3Rlci1jdGEtY29udGVudCAuYnRuOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogLTE4cHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgICAgICAgLmJsb2ctcG9zdC1mb290ZXItY3RhIC5ibG9nLWZvb3Rlci1jdGEtY29udGVudCAuYnRuOmFmdGVyIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDE4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDE4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxOHB4IHNvbGlkICM4QUJGNTE7IH1cbiAgICAgICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IC5idG46YmVmb3JlIHtcbiAgICAgICAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxOHB4IHNvbGlkICM4QUJGNTE7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMThweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMThweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAgICAgLmJsb2ctcG9zdC1mb290ZXItY3RhIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbm9uZTsgfSB9XG5cbi5ibG9nLXBvc3QtZm9vdGVyLWN0YTphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMDtcbiAgbGVmdDogY2FsYyg1MCUgLSAoNDBweCAvIDIpKTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IDQwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogNDBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogNDBweCBzb2xpZCAjZmZmO1xuICB0cmFuc2Zvcm06IHNrZXdYKDU1ZGVnKTsgfVxuXG4uYmxvZy1wb3N0LWF1dGhvciBpbWcge1xuICBtYXgtaGVpZ2h0OiA3LjgxMjVyZW07XG4gIG1hcmdpbjogMCAxLjU2MjVyZW0gMCAzLjEyNXJlbTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBib3RoO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjNzOyB9XG4gIC5ibG9nLXBvc3QtYXV0aG9yIGltZzpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE2KSwgMCAycHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLmJsb2ctcG9zdC1hdXRob3IgcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZzogMS4zNzVyZW0gMDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5ibG9nLXBvc3QtYXV0aG9yIHNwYW4ge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmJsb2ctcG9zdC1hdXRob3Ige1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5ibG9nLXBvc3QtYXV0aG9yIHAge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmJsb2ctcG9zdC1hdXRob3IgaW1nIHtcbiAgICAgIGZsb2F0OiBub25lOyB9IH1cblxuLnJlbGF0ZWQtdGl0bGUge1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDAuOTM3NXJlbSAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjU2MjVyZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDAuNTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZWxhdGVkLXRpdGxlIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAgIC5yZWxhdGVkLXRpdGxlIHNwYW46YmVmb3JlLCAucmVsYXRlZC10aXRsZSBzcGFuOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6IDVweDtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRThFOUVBO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDgwMHB4OyB9XG4gICAgLnJlbGF0ZWQtdGl0bGUgc3BhbjpiZWZvcmUge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH1cbiAgICAucmVsYXRlZC10aXRsZSBzcGFuOmFmdGVyIHtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogMTVweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAucmVsYXRlZC10aXRsZSBzcGFuOmJlZm9yZSwgLnJlbGF0ZWQtdGl0bGUgc3BhbjphZnRlciB7XG4gICAgICBib3JkZXItd2lkdGg6IDNweDsgfSB9XG5cbi5ibG9nLW1lbnUge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ibG9nLW1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB6LWluZGV4OiAxMDA7XG4gICAgICBiYWNrZ3JvdW5kOiAjRjBGMUYxOyB9XG4gICAgICAuYmxvZy1tZW51LmlzLWFjdGl2ZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgICAgIC5ibG9nLW1lbnUuaXMtYWN0aXZlIC5uYXYtY29udGFpbmVyIHtcbiAgICAgICAgICBsZWZ0OiAwOyB9IH1cblxuLmJsb2ctbW9iaWxlLWZpbHRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgcGFkZGluZy10b3A6IDAuMzEyNXJlbTsgfVxuICAuYmxvZy1tb2JpbGUtZmlsdGVyIHN2ZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDEuMTI1cmVtO1xuICAgIHdpZHRoOiAxLjEyNXJlbTtcbiAgICBtYXJnaW46IDNweCAwLjYyNXJlbSAwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZpbGw6ICM0NDQ7IH1cbiAgICAuYmxvZy1tb2JpbGUtZmlsdGVyIHN2ZzpmaXJzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmJsb2ctbW9iaWxlLWZpbHRlciBoNSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LWZhbWlseTogXCJwcm94aW1hLW5vdmFcIiwgXCJQcm94aW1hIE5vdmFcIiwgc2Fucy1zZXJpZjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYmxvZy1tb2JpbGUtZmlsdGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLm5hdi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzRweDtcbiAgd2lkdGg6IDg1JTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGxlZnQ6IC04NSU7XG4gIHRyYW5zaXRpb246IGxlZnQgLjNzIGVhc2UtaW4tb3V0OyB9XG4gIC5uYXYtY29udGFpbmVyIGRpdi5jYXRlZ29yeS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICNFNkU3RTg7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgcGFkZGluZy10b3A6IDJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm5hdi1jb250YWluZXIgLmFycm93IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogOXB4IHNvbGlkIGJsYWNrO1xuICAgIGJvcmRlci10b3A6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMDYyNXJlbTtcbiAgICB0cmFuc2Zvcm06IGFsbCAuMnMgZWFzZTsgfVxuICAgIC5uYXYtY29udGFpbmVyIC5hcnJvdy5pcy1hY3RpdmUge1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItbGVmdDogOXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wOiA5cHggc29saWQgYmxhY2s7IH1cbiAgLm5hdi1jb250YWluZXIgcDpudGgtY2hpbGQoMikge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGJhY2tncm91bmQ6ICNFNkU3RTg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uYmxvZy1jYXRlZ29yaWVzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAuYmxvZy1jYXRlZ29yaWVzIGxpIGEge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcGFkZGluZzogMS4xMjVyZW0gMCAxLjEyNXJlbSAyLjgxMjVyZW07XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwcHgpO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmJsb2ctY2F0ZWdvcmllcyBsaSBhLmlzLXJlc29sdmVkIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuYmxvZy1jYXRlZ29yaWVzIGxpIGEuaXMtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjMDA4MkNBO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmJsb2ctY2F0ZWdvcmllcyBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC42MjVyZW0gMCAwLjYyNXJlbSAwOyB9XG4gICAgLmJsb2ctY2F0ZWdvcmllcyBsaS5leHBhbmQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5ibG9nLWNhdGVnb3JpZXMgbGk6Zmlyc3QtY2hpbGQgYSB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycywgdHJhbnNmb3JtIC4yczsgfVxuICAgIC5ibG9nLWNhdGVnb3JpZXMgbGk6bnRoLWNoaWxkKDIpIGEge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzLCB0cmFuc2Zvcm0gLjI1czsgfVxuICAgIC5ibG9nLWNhdGVnb3JpZXMgbGk6bnRoLWNoaWxkKDIpIGEge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMsIHRyYW5zZm9ybSAuNXM7IH1cbiAgICAuYmxvZy1jYXRlZ29yaWVzIGxpOm50aC1jaGlsZCgzKSBhIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjc1cywgdHJhbnNmb3JtIC43NXM7IH1cbiAgICAuYmxvZy1jYXRlZ29yaWVzIGxpOm50aC1jaGlsZCg0KSBhIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXMsIHRyYW5zZm9ybSAxczsgfVxuICAgIC5ibG9nLWNhdGVnb3JpZXMgbGk6bnRoLWNoaWxkKDUpIGEge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxLjI1cywgdHJhbnNmb3JtIDEuMjVzOyB9XG4gICAgLmJsb2ctY2F0ZWdvcmllcyBsaTpudGgtY2hpbGQoNikgYSB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEuNTBzLCB0cmFuc2Zvcm0gMS41MHM7IH1cbiAgICAuYmxvZy1jYXRlZ29yaWVzIGxpOm50aC1jaGlsZCg3KSBhIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMS43NXMsIHRyYW5zZm9ybSAxLjc1czsgfVxuICAgIC5ibG9nLWNhdGVnb3JpZXMgbGk6aG92ZXIgYSB7XG4gICAgICBjb2xvcjogIzAwODJDQTsgfVxuXG4uYmxvZy1nbG9iYWwtbmF2LWxpc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuYmxvZy1nbG9iYWwtbmF2LWxpc3QgbGkge1xuICAgIGJhY2tncm91bmQ6ICNGMEYxRjE7XG4gICAgcGFkZGluZzogMC42MjVyZW0gMCAwLjYyNXJlbSAxLjg3NXJlbSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQzhDQkNEOyB9XG4gICAgLmJsb2ctZ2xvYmFsLW5hdi1saXN0IGxpOmhvdmVyIGEge1xuICAgICAgY29sb3I6ICMwMDgyQ0E7IH1cbiAgICAuYmxvZy1nbG9iYWwtbmF2LWxpc3QgbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgYmFja2dyb3VuZDogI0U2RTdFOCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNDOENCQ0Q7IH1cbiAgICAuYmxvZy1nbG9iYWwtbmF2LWxpc3QgbGk6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gIC5ibG9nLWdsb2JhbC1uYXYtbGlzdCBsaSBhIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtOyB9XG5cbmZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0ge1xuICBiYWNrZ3JvdW5kOiAjMDA4MkNBO1xuICBwYWRkaW5nOiAzLjEyNXJlbTsgfVxuICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5pbm5lci1jb250YWluZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIHtcbiAgICAgIHBhZGRpbmc6IDEuODc1cmVtIDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH0gfVxuXG4uZm9vdGVyLWxvZ28ge1xuICB3aWR0aDogMTAuOTM3NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41NjI1cmVtOyB9XG5cbi5mb290ZXItbmF2LCAuZm9vdGVyLXNvY2lhbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZm9vdGVyLW5hdiBsaSwgLmZvb3Rlci1zb2NpYWwgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuZm9vdGVyLW5hdiBhLCAuZm9vdGVyLXNvY2lhbCBhIHtcbiAgICBmaWxsOiAjRkZGRkZGO1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5mb290ZXItbmF2IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07IH1cbiAgLmZvb3Rlci1uYXYgbGk6bGFzdC1jaGlsZCBhIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cblxuLmZvb3Rlci1uYXYgYSB7XG4gIHBhZGRpbmc6IDAgMC41cmVtO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjRkZGRkZGO1xuICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlLWluLW91dCAuMnM7IH1cbiAgLmZvb3Rlci1uYXYgYTpob3ZlciB7XG4gICAgY29sb3I6ICMzMWI2ZmY7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5mb290ZXItbmF2IHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmZvb3Rlci1zb2NpYWwge1xuICBwYWRkaW5nOiAxLjU2MjVyZW0gMDsgfVxuICAuZm9vdGVyLXNvY2lhbCBsaSB7XG4gICAgcGFkZGluZzogMCAwLjMxMjVyZW07IH1cbiAgLmZvb3Rlci1zb2NpYWwgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAyLjgxMjVyZW07XG4gICAgd2lkdGg6IDIuODEyNXJlbTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjRkZGRkZGO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgIC5mb290ZXItc29jaWFsIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRjsgfVxuICAgICAgLmZvb3Rlci1zb2NpYWwgYTpob3ZlciBzdmcge1xuICAgICAgICBmaWxsOiAjMDA4MkNBOyB9XG4gIC5mb290ZXItc29jaWFsIHN2ZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC4yODEyNXJlbTtcbiAgICBoZWlnaHQ6IDEuODc1cmVtO1xuICAgIHdpZHRoOiAxLjg3NXJlbTtcbiAgICBwYWRkaW5nOiAwLjMxMjVyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmZvb3Rlci1zb2NpYWwge1xuICAgICAgcGFkZGluZzogMS44NzVyZW0gMCAwOyB9IH1cblxuLmZvb3Rlci1kaXNjbG9zdXJlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5mb290ZXItZGlzY2xvc3VyZSBhIHtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgIC5mb290ZXItZGlzY2xvc3VyZSBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmZvb3Rlci1kaXNjbG9zdXJlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogOTBweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cblxuaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk5O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGOyB9XG4gIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIC5zdDIge1xuICAgIGZpbGw6ICMwMDgyQ0EgIWltcG9ydGFudDsgfVxuXG4udG9wLWhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICNGMEYxRjE7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC50b3AtaGVhZGVyIC5pbm5lci1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDAgNCUgMC45Mzc1cmVtIDQlO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEyODBweDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAudG9wLWhlYWRlciAuaW5uZXItY29udGFpbmVyOmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC50b3AtaGVhZGVyIC5pbm5lci1jb250YWluZXI6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLnRvcC1oZWFkZXIgLmlubmVyLWNvbnRhaW5lciAuYmxvZy1tZW51IHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLnRvcC1oZWFkZXIgLmlubmVyLWNvbnRhaW5lciAudG9wLWl0ZW0ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgcGFkZGluZy1yaWdodDogNCU7IH1cbiAgLnRvcC1oZWFkZXIuaXMtc3R1Y2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAudG9wLWhlYWRlciAuaW5uZXItY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwLjMxMjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cblxuLnRvcC1sb2dvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDAuNTYyNXJlbTtcbiAgd2lkdGg6IDUuNjI1cmVtO1xuICBoZWlnaHQ6IDEuMzc1cmVtOyB9XG5cbi50b3AtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAudG9wLWl0ZW0ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5tb2JpbGUtc2VhcmNoIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICBmbG9hdDogcmlnaHQ7XG4gIHRvcDogMC4zMTI1cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5tb2JpbGUtc2VhcmNoIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgICAgcmlnaHQ6IDVweDsgfVxuICAgICAgLm1vYmlsZS1zZWFyY2ggaW5wdXQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweCAhaW1wb3J0YW50OyB9IH1cblxuLmJvdHRvbS1oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyLWJvdHRvbTogMC4wNjI1cmVtIHNvbGlkICNFOEU5RUE7IH1cbiAgLmJvdHRvbS1oZWFkZXIgLmlubmVyLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiA3cmVtO1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gNCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMjgwcHg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgLmJvdHRvbS1oZWFkZXIgLmlubmVyLWNvbnRhaW5lcjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmJvdHRvbS1oZWFkZXIgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogN3B4OyB9XG4gIC5ib3R0b20taGVhZGVyIC5sb2dvLXN2ZyB7XG4gICAgaGVpZ2h0OiA2MHB4OyB9XG4gIC5ib3R0b20taGVhZGVyLmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgICAuYm90dG9tLWhlYWRlci5pcy1zdHVjayAuaW5uZXItY29udGFpbmVyIHtcbiAgICAgIGhlaWdodDogMy41cmVtO1xuICAgICAgcGFkZGluZzogMC42MjVyZW0gNCU7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgLjNzOyB9XG4gICAgLmJvdHRvbS1oZWFkZXIuaXMtc3R1Y2sgYSB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgLmJvdHRvbS1oZWFkZXIuaXMtc3R1Y2sgLmxvZ28tc3ZnIHtcbiAgICAgIGhlaWdodDogMzVweDtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAuM3M7IH1cbiAgICAuYm90dG9tLWhlYWRlci5pcy1zdHVjayAuaGVhZGVyLWl0ZW0ge1xuICAgICAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYm90dG9tLWhlYWRlciB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH0gfVxuXG4uaGVhZGVyLWl0ZW0ge1xuICBwYWRkaW5nOiAwIDQlO1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAuaGVhZGVyLWl0ZW06YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5oZWFkZXItaXRlbSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmhlYWRlci1pdGVtOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgLmhlYWRlci1pdGVtIHAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfSB9XG4gIC5oZWFkZXItaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAuaGVhZGVyLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uc2VhcmNoLXdyYXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuc2VhcmNoLXdyYXAgc3ZnIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLnNlYXJjaC13cmFwIGZvcm0gaW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNlYXJjaC13cmFwIGZvcm0ge1xuICAgIG1hcmdpbjogMCA0LjM3NXJlbSAwIDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTAuMTI1cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAuc2VhcmNoLXdyYXAgZm9ybSB7XG4gICAgICAgIG1hcmdpbjogMDsgfSB9XG4gIC5zZWFyY2gtd3JhcCBmb3JtIGxhYmVsIHNwYW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc2VhcmNoLXdyYXAgZm9ybSBsYWJlbCBpbnB1dC5zZWFyY2gtZmllbGQge1xuICAgIHdpZHRoOiAxMTBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuNik7XG4gICAgcGFkZGluZzogMC4zMTI1cmVtIDAgMC4zMTI1cmVtIDEuNTYyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjkzNzVyZW07XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5zZWFyY2gtd3JhcCBmb3JtIGxhYmVsIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICMzMzNCNDE7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuc2VhcmNoLXdyYXAgZm9ybSBsYWJlbCA6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICMzMzNCNDE7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuc2VhcmNoLXdyYXAgZm9ybSBsYWJlbCA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjMzMzQjQxO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnNlYXJjaC13cmFwIGZvcm0gbGFiZWwgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICMzMzNCNDE7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ubWFnLXN2ZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjVyZW07XG4gIGxlZnQ6IDAuNXJlbTtcbiAgaGVpZ2h0OiAwLjc1cmVtO1xuICB3aWR0aDogMC43NXJlbTsgfVxuXG4uYmxvZy1wb3N0cyB7XG4gIHBhZGRpbmc6IDMuMTI1cmVtIDUlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmJsb2ctcG9zdHMge1xuICAgICAgcGFkZGluZzogMS44NzVyZW0gMDsgfSB9XG5cbi5ibG9nLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIHBhZGRpbmc6IDAgMS44NzVyZW07IH1cbiAgLmJsb2ctY29udGFpbmVyOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYmxvZy1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuYmxvZy1wb3N0LW92ZXJsYXkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uYmxvZy1wb3N0IHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAxLjU2MjVyZW07IH1cbiAgLmJsb2ctcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMzAsIDIwMiwgMC44KTsgfVxuICAgIC5ibG9nLXBvc3Q6aG92ZXIgLmJsb2ctcG9zdC1vdmVybGF5Lk1hcmtldGluZyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5MCwgMjA2LCA0OSwgMC44KTsgfVxuICAgIC5ibG9nLXBvc3Q6aG92ZXIgLmJsb2ctcG9zdC1vdmVybGF5LlJlc2VhcmNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTAsIDE3MiwgMTYzLCAwLjgpOyB9XG4gICAgLmJsb2ctcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkuRGVzaWduIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMzEsIDAsIDAuOCk7IH1cbiAgICAuYmxvZy1wb3N0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheS5Qcm9kdWN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUsIDEzOSwgMTc5LCAwLjgpOyB9XG4gICAgLmJsb2ctcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkuQ1gge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzgsIDE5MSwgODEsIDAuOCk7IH1cbiAgLmJsb2ctcG9zdCBwLmJsb2ctcG9zdC10aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLyogRmFsbGJhY2sgZm9yIG5vbi13ZWJraXQgKi9cbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBoZWlnaHQ6IDY3LjJweDtcbiAgICAvKiBGYWxsYmFjayBmb3Igbm9uLXdlYmtpdCAqL1xuICAgIG1hcmdpbi10b3A6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nOiAwIDAuNjI1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ibG9nLXBvc3Qge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5ibG9nLXBvc3QgLmJsb2ctcG9zdC1pbm5lciB7XG4gICAgICAgIG1hcmdpbjogMCAwLjMxMjVyZW07IH0gfVxuXG4uYmxvZy1wb3N0LWlubmVyIHtcbiAgbWFyZ2luOiAwIDE1cHg7IH1cblxuLmJsb2ctZm9vdGVyLXBvc3Qge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiAzMy4zMzMzMzMlO1xuICBtYXJnaW4tbGVmdDogMCU7XG4gIG1hcmdpbi1yaWdodDogMCU7XG4gIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTsgfVxuICAuYmxvZy1mb290ZXItcG9zdDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmJsb2ctZm9vdGVyLXBvc3QgcCB7XG4gICAgbWFyZ2luLXRvcDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmc6IDAgMC42MjVyZW07XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYmxvZy1mb290ZXItcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMzAsIDIwMiwgMC44KTsgfVxuICAgIC5ibG9nLWZvb3Rlci1wb3N0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheS5NYXJrZXRpbmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOTAsIDIwNiwgNDksIDAuOCk7IH1cbiAgICAuYmxvZy1mb290ZXItcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkuUmVzZWFyY2gge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5MCwgMTcyLCAxNjMsIDAuOCk7IH1cbiAgICAuYmxvZy1mb290ZXItcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkuRGVzaWduIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMzEsIDAsIDAuOCk7IH1cbiAgICAuYmxvZy1mb290ZXItcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkuUHJvZHVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1LCAxMzksIDE3OSwgMC44KTsgfVxuICAgIC5ibG9nLWZvb3Rlci1wb3N0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheS5DWCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEzOCwgMTkxLCA4MSwgMC44KTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYmxvZy1mb290ZXItcG9zdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAgICAgLmJsb2ctZm9vdGVyLXBvc3Q6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9IH1cblxuLmJsb2ctcG9zdC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTMwLCAyMDIsIDApO1xuICB0cmFuc2l0aW9uOiBhbGwgZWFzZS1pbiAuMnM7IH1cbiAgLmJsb2ctcG9zdC1vdmVybGF5Lk1hcmtldGluZywgLmJsb2ctcG9zdC1vdmVybGF5LlJlc2VhcmNoLCAuYmxvZy1wb3N0LW92ZXJsYXkuRGVzaWduLCAuYmxvZy1wb3N0LW92ZXJsYXkuUHJvZHVjdCwgLmJsb2ctcG9zdC1vdmVybGF5LkNYIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5ibG9nLXBvc3Qtb3ZlcmxheS5NYXJrZXRpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTkwLCAyMDYsIDQ5LCAwKTsgfVxuICAuYmxvZy1wb3N0LW92ZXJsYXkuUmVzZWFyY2gge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTAsIDE3MiwgMTYzLCAwKTsgfVxuICAuYmxvZy1wb3N0LW92ZXJsYXkuRGVzaWduIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTMxLCAwLCAwKTsgfVxuICAuYmxvZy1wb3N0LW92ZXJsYXkuUHJvZHVjdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNSwgMTM5LCAxNzksIDApOyB9XG4gIC5ibG9nLXBvc3Qtb3ZlcmxheS5DWCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzgsIDE5MSwgODEsIDApOyB9XG4gIC5ibG9nLXBvc3Qtb3ZlcmxheSBkaXYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmJsb2ctcG9zdC1vdmVybGF5IGRpdiBwIHtcbiAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuYmxvZy1wb3N0LW92ZXJsYXkgZGl2IHN2ZyB7XG4gICAgICBwYWRkaW5nOiAwLjYyNXJlbTtcbiAgICAgIHdpZHRoOiA1LjEyNXJlbTtcbiAgICAgIGhlaWdodDogNS4xMjVyZW07XG4gICAgICBzdHJva2U6ICNGRkZGRkY7XG4gICAgICBmaWxsOiBub25lO1xuICAgICAgYm9yZGVyOiAwLjE4NzVyZW0gc29saWQgI0ZGRkZGRjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIC5ibG9nLXBvc3Qtb3ZlcmxheSBkaXYgc3ZnIHtcbiAgICAgICAgICB3aWR0aDogNC42ODc1cmVtO1xuICAgICAgICAgIGhlaWdodDogNC42ODc1cmVtO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsgfSB9XG5cbi5hamF4LW5vLWhpZGUgLmFsbS1yZXZlYWw6Zmlyc3QtY2hpbGQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5hbG0tcmV2ZWFsOmZpcnN0LWNoaWxkIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5ibG9nLWltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTMwLCAyMDIsIDAuOCk7IH1cbiAgLmJsb2ctaW1hZ2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG4gICAgcGFkZGluZy10b3A6IDc1JTsgfVxuICAuYmxvZy1pbWFnZS5NYXJrZXRpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTkwLCAyMDYsIDQ5LCAwLjgpOyB9XG4gIC5ibG9nLWltYWdlLlJlc2VhcmNoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDkwLCAxNzIsIDE2MywgMC44KTsgfVxuICAuYmxvZy1pbWFnZS5EZXNpZ24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMzEsIDAsIDAuOCk7IH1cbiAgLmJsb2ctaW1hZ2UuUHJvZHVjdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNSwgMTM5LCAxNzksIDAuOCk7IH1cbiAgLmJsb2ctaW1hZ2UuQ1gge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTM4LCAxOTEsIDgxLCAwLjgpOyB9XG5cbi5hbG0tYnRuLXdyYXAge1xuICBvdmVyZmxvdzogYXV0bztcbiAgem9vbTogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYWxtLWJ0bi13cmFwIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgIGNvbG9yOiAjOEFCRjUxO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICM4QUJGNTE7IH1cbiAgICAuYWxtLWJ0bi13cmFwIGJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjOEFCRjUxO1xuICAgICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgICAuYWxtLWJ0bi13cmFwIGJ1dHRvbi5kb25lIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5hbG0tYnRuLXdyYXAgYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAjOEFCRjUxOyB9IH1cblxuLmJsb2ctcG9zdC1oZXJvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDU1dmg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwODJDQTsgfVxuICAuYmxvZy1wb3N0LWhlcm8gLmlubmVyLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5ibG9nLXBvc3QtaGVybyAuaW5uZXItY29udGFpbmVyIGgxLCAuYmxvZy1wb3N0LWhlcm8gLmlubmVyLWNvbnRhaW5lciBoNSB7XG4gICAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgIC5ibG9nLXBvc3QtaGVybyAuaW5uZXItY29udGFpbmVyIGgxIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTsgfVxuICAgIC5ibG9nLXBvc3QtaGVybyAuaW5uZXItY29udGFpbmVyIGg1IHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmJsb2ctcG9zdC1oZXJvIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0MCU7IH1cbiAgICAgIC5ibG9nLXBvc3QtaGVybyAuaW5uZXItY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgcGFkZGluZzogMzAlIDUlIDA7IH0gfVxuXG4uYmxvZy1wb3N0LWhlcm8tb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDM1LCAzMSwgMzIsIDAuMzYpOyB9XG5cbi5ibG9nLXBvc3QtcGFnZSB7XG4gIG1heC13aWR0aDogNzUlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMy4xMjVyZW0gMDsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgLndwLWNhcHRpb24tdGV4dCB7XG4gICAgbWFyZ2luLXRvcDogMC42MjVyZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gIC5ibG9nLXBvc3QtcGFnZSAuaW50cm8tdGV4dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41NjI1cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07IH1cbiAgLmJsb2ctcG9zdC1wYWdlIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLmJsb2ctcG9zdC1wYWdlOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgaDUge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6IDJyZW07IH1cbiAgLmJsb2ctcG9zdC1wYWdlIGg2IHtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgIC5ibG9nLXBvc3QtcGFnZSBpbWcuc2l6ZS1oYWxmIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDQ4LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzJTsgfVxuICAgICAgLmJsb2ctcG9zdC1wYWdlIGltZy5zaXplLWhhbGY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgICAuYmxvZy1wb3N0LXBhZ2UgaW1nLnNpemUtaGFsZjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgaWZyYW1lLCAuYmxvZy1wb3N0LXBhZ2UgLndwLWNhcHRpb24ge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC5ibG9nLXBvc3QtcGFnZSBwOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgYmxvY2txdW90ZSB7XG4gICAgY29sb3I6ICNmZjgzMDA7XG4gICAgYm9yZGVyLWxlZnQ6IDAuMjVyZW0gc29saWQgI2ZmODMwMDtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgICAuYmxvZy1wb3N0LXBhZ2UgYmxvY2txdW90ZSBwIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICAgICAgY29sb3I6ICNmZjgzMDA7XG4gICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcImZyYW5rbGluLWdvdGhpYy11cndcIjsgfVxuICAgIC5ibG9nLXBvc3QtcGFnZSBibG9ja3F1b3RlIGEge1xuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICBmb250LWZhbWlseTogXCJmcmFua2xpbi1nb3RoaWMtdXJ3XCI7IH1cbiAgLmJsb2ctcG9zdC1wYWdlIG9sIHtcbiAgICBtYXJnaW4tbGVmdDogMi4xODc1cmVtO1xuICAgIGNvdW50ZXItcmVzZXQ6IGNvdW50bWU7IH1cbiAgICAuYmxvZy1wb3N0LXBhZ2Ugb2wgbGkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMzc1cmVtOyB9XG4gICAgICAuYmxvZy1wb3N0LXBhZ2Ugb2wgbGk6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAtMi4xODc1cmVtO1xuICAgICAgICBjb250ZW50OiBjb3VudGVyKGNvdW50bWUpO1xuICAgICAgICBjb3VudGVyLWluY3JlbWVudDogY291bnRtZTtcbiAgICAgICAgcGFkZGluZzogMC4xMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCAjNDQ0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgLmJsb2ctcG9zdC1wYWdlIHVsIHtcbiAgICBtYXJnaW4tbGVmdDogMi4xODc1cmVtO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgfVxuICAgIC5ibG9nLXBvc3QtcGFnZSB1bCBsaSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM3NXJlbTsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgaDEsIC5ibG9nLXBvc3QtcGFnZSBoMiwgLmJsb2ctcG9zdC1wYWdlIGgzLCAuYmxvZy1wb3N0LXBhZ2UgaDQsIC5ibG9nLXBvc3QtcGFnZSBoNSwgLmJsb2ctcG9zdC1wYWdlIGg2IHtcbiAgICBtYXJnaW4tdG9wOiAzLjEyNXJlbTsgfVxuICAgIC5ibG9nLXBvc3QtcGFnZSBoMTpmaXJzdC1jaGlsZCwgLmJsb2ctcG9zdC1wYWdlIGgyOmZpcnN0LWNoaWxkLCAuYmxvZy1wb3N0LXBhZ2UgaDM6Zmlyc3QtY2hpbGQsIC5ibG9nLXBvc3QtcGFnZSBoNDpmaXJzdC1jaGlsZCwgLmJsb2ctcG9zdC1wYWdlIGg1OmZpcnN0LWNoaWxkLCAuYmxvZy1wb3N0LXBhZ2UgaDY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgYSB7XG4gICAgY29sb3I6ICMxOThCQjMgIWltcG9ydGFudDsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgaDIge1xuICAgIGZvbnQtc2l6ZTogNDJweCAhaW1wb3J0YW50OyB9XG4gIC5ibG9nLXBvc3QtcGFnZSBoMyB7XG4gICAgZm9udC1zaXplOiAyNHB4ICFpbXBvcnRhbnQ7IH1cbiAgLmJsb2ctcG9zdC1wYWdlIGg0IHtcbiAgICBmb250LXNpemU6IDI4cHggIWltcG9ydGFudDsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgaDUge1xuICAgIGZvbnQtc2l6ZTogMjZweCAhaW1wb3J0YW50OyB9XG4gIC5ibG9nLXBvc3QtcGFnZSBoNiB7XG4gICAgZm9udC1zaXplOiAyNHB4ICFpbXBvcnRhbnQ7IH1cbiAgLmJsb2ctcG9zdC1wYWdlIHAge1xuICAgIGZvbnQtc2l6ZTogMThweDsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgdWwsIC5ibG9nLXBvc3QtcGFnZSBvbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMy4xMjVyZW07IH1cbiAgICAuYmxvZy1wb3N0LXBhZ2UgdWwgYSwgLmJsb2ctcG9zdC1wYWdlIG9sIGEge1xuICAgICAgY29sb3I6ICMxOThCQjM7IH1cbiAgICAgIC5ibG9nLXBvc3QtcGFnZSB1bCBhOmhvdmVyLCAuYmxvZy1wb3N0LXBhZ2Ugb2wgYTpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5ibG9nLXBvc3QtcGFnZSAuYWxpZ25jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMHB4IGF1dG87IH1cbiAgLmJsb2ctcG9zdC1wYWdlIGltZy5hbGlnbmNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwcHggYXV0bzsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYmxvZy1wb3N0LXBhZ2Uge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICAuYmxvZy1wb3N0LXBhZ2UgYmxvY2txdW90ZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGVmdDogLTQuNSU7XG4gICAgICAgIGJvcmRlci13aWR0aDogMC4zNzVyZW07IH0gfVxuXG5zZWN0aW9uLmF1dGgtaGVybyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyNXJlbTtcbiAgaGVpZ2h0OiA1NXZoO1xuICBiYWNrZ3JvdW5kOiAjMTk4QkIzO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAyLjE4NzVyZW07XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICBzZWN0aW9uLmF1dGgtaGVybyBkaXYuY29weSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICBzZWN0aW9uLmF1dGgtaGVybyBmaWd1cmUge1xuICAgIHdpZHRoOiAxMC45Mzc1cmVtO1xuICAgIGhlaWdodDogMTAuOTM3NXJlbTtcbiAgICBiYWNrZ3JvdW5kOiBncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDRweCBzb2xpZCAjRkZGRkZGO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cbiAgc2VjdGlvbi5hdXRoLWhlcm8gaDEge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAwLjkzNzVyZW07IH1cbiAgc2VjdGlvbi5hdXRoLWhlcm8gdWwuYXV0aC1zb2NpYWwge1xuICAgIG1hcmdpbjogMi41cmVtIGF1dG8gMCBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIHNlY3Rpb24uYXV0aC1oZXJvIHVsLmF1dGgtc29jaWFsIGxpIHtcbiAgICAgIHdpZHRoOiAyLjE4NzVyZW07XG4gICAgICBoZWlnaHQ6IDIuMTg3NXJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZDdkNWQ1O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAzMDBtczsgfVxuICAgICAgc2VjdGlvbi5hdXRoLWhlcm8gdWwuYXV0aC1zb2NpYWwgbGk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjYmViYmJiOyB9XG4gICAgICBzZWN0aW9uLmF1dGgtaGVybyB1bC5hdXRoLXNvY2lhbCBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAgIHNlY3Rpb24uYXV0aC1oZXJvIHVsLmF1dGgtc29jaWFsIGxpOmxhc3QtY2hpbGQgYSBzdmcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IDAuMTg3NXJlbTtcbiAgICAgICAgICB0b3A6IDAuMTg3NXJlbTsgfVxuICAgICAgc2VjdGlvbi5hdXRoLWhlcm8gdWwuYXV0aC1zb2NpYWwgbGkgYSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gMS4wNjI1cmVtIDAgMDsgfVxuICAgICAgICBzZWN0aW9uLmF1dGgtaGVybyB1bC5hdXRoLXNvY2lhbCBsaSBhIHN2ZyB7XG4gICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGxlZnQ6IDAuNjI1cmVtOyB9XG4gICAgICAgICAgc2VjdGlvbi5hdXRoLWhlcm8gdWwuYXV0aC1zb2NpYWwgbGkgYSBzdmcgcGF0aCwgc2VjdGlvbi5hdXRoLWhlcm8gdWwuYXV0aC1zb2NpYWwgbGkgYSBzdmcgcG9seWdvbiB7XG4gICAgICAgICAgICBmaWxsOiAjNDE0MDQyICFpbXBvcnRhbnQ7IH1cblxuc2VjdGlvbi5hdXRoLWluZm8ge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMy4xMjVyZW0gMjAlIDAgMjAlO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMjgwcHg7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxMS41JTtcbiAgcGFkZGluZy1yaWdodDogMTEuNSU7IH1cbiAgc2VjdGlvbi5hdXRoLWluZm86YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIHNlY3Rpb24uYXV0aC1pbmZvIHtcbiAgICAgIHBhZGRpbmc6IDMuMTI1cmVtIDEwJSAwIDEwJTsgfSB9XG4gIHNlY3Rpb24uYXV0aC1pbmZvIGRpdi5saW5lIHtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiA1cmVtOyB9XG4gICAgc2VjdGlvbi5hdXRoLWluZm8gZGl2LmxpbmUgc3BhbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogLTlweDtcbiAgICAgIHBhZGRpbmc6IDAgMC42MjVyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbnNlY3Rpb24ueHAge1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMjgwcHg7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxMS41JTtcbiAgcGFkZGluZy1yaWdodDogMTEuNSU7XG4gIG1hcmdpbi1ib3R0b206IDMuMTI1cmVtOyB9XG4gIHNlY3Rpb24ueHA6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIHNlY3Rpb24ueHAge1xuICAgICAgcGFkZGluZzogMCA0JTsgfSB9XG5cbnNlY3Rpb24uYmxvZy1wb3N0cyBkaXYudmlldy1tb3JlIGEge1xuICB3aWR0aDogOS4zNzVyZW07XG4gIGhlaWdodDogMi44MTI1cmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmctdG9wOiAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM2OUE5NTg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzY5QTk1ODtcbiAgY2xlYXI6IGJvdGg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXMsIGNvbG9yIDMwMG1zOyB9XG4gIHNlY3Rpb24uYmxvZy1wb3N0cyBkaXYudmlldy1tb3JlIGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM2OUE5NTg7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cblxuLnBlbmNpbC1pY29uIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiA3LjgxMjVyZW07XG4gIGhlaWdodDogNy44MTI1cmVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAjNDQ0OyB9XG5cbi5jb250cmlidXRlLXBlbmNpbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDcuMTg3NXJlbTtcbiAgaGVpZ2h0OiA3LjE4NzVyZW07XG4gIGZpbGw6ICM0NDQ7IH1cblxuLmNvbnRyaWJ1dGUtZG93bi1hcnJvdyB7XG4gIHdpZHRoOiAxLjU2MjVyZW07XG4gIGZpbGw6ICNGRkZGRkY7IH1cblxuLmNvbnRyaWJ1dGUtZm9ybSB7XG4gIG1hcmdpbjogMy4xMjVyZW0gMDsgfVxuICAuY29udHJpYnV0ZS1mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgLmNvbnRyaWJ1dGUtZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSwgLmNvbnRyaWJ1dGUtZm9ybSB0ZXh0YXJlYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41NjI1cmVtO1xuICAgIHBhZGRpbmc6IDAuNjI1cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0M4Q0JDRDsgfVxuICAuY29udHJpYnV0ZS1mb3JtIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IDE1LjYyNXJlbTtcbiAgICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCAjQzhDQkNEOyB9XG4gIC5jb250cmlidXRlLWZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5jb250cmlidXRlLWZvcm0gaW5wdXQuaW52YWxpZCwgLmNvbnRyaWJ1dGUtZm9ybSB0ZXh0YXJlYS5pbnZhbGlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRDM1ODUyOyB9XG5cbnNlY3Rpb24uc2VhcmNoLXJlc3VsdHMge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB6b29tOiAxOyB9XG4gIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCB7XG4gICAgd2lkdGg6IDkwMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAzLjEyNXJlbSAwO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0cy13cmFwIC5yZXN1bHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07IH1cbiAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCAucmVzdWx0IGRpdi5ibG9nLWltYWdlIHtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDsgfVxuICAgICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgLnJlc3VsdCBkaXYuYmxvZy1pbWFnZSBwIHtcbiAgICAgICAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0cy13cmFwIC5yZXN1bHQ6aG92ZXIgLmJsb2ctcG9zdC1vdmVybGF5IHtcbiAgICAgICAgb3BhY2l0eTogMTsgfVxuICAgICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgLnJlc3VsdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkubWFya2V0aW5nIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE5MCwgMjA2LCA0OSwgMC44KTsgfVxuICAgICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgLnJlc3VsdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkucmVzZWFyY2gge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoOTAsIDE3MiwgMTYzLCAwLjgpOyB9XG4gICAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCAucmVzdWx0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheS5kZXNpZ24ge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxMzEsIDAsIDAuOCk7IH1cbiAgICAgICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0cy13cmFwIC5yZXN1bHQ6aG92ZXIgLmJsb2ctcG9zdC1vdmVybGF5LnByb2R1Y3Qge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjUsIDEzOSwgMTc5LCAwLjgpOyB9XG4gICAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCAucmVzdWx0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheS5DWCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMzgsIDE5MSwgODEsIDAuOCk7IH1cbiAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCAucmVzdWx0IGRpdi5yaWdodCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogNzUlOyB9XG4gICAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCAucmVzdWx0IGRpdi5yaWdodCBoNSB7XG4gICAgICAgICAgY29sb3I6ICMwMDgyQ0E7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMy43NXJlbTtcbiAgICAgICAgICBtYXJnaW46IDAgMCAwLjQzNzVyZW0gMDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgLnJlc3VsdCBkaXYucmlnaHQgcCB7XG4gICAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICAgICAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgLnJlc3VsdCBkaXYucmlnaHQgcDpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNjI1cmVtIDA7IH1cbiAgICAgICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgLnJlc3VsdCBkaXYucmlnaHQgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICM4NThjOTA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IDAuMzEyNXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCBkaXYucmVzdWx0IC5ibG9nLWltYWdlIHtcbiAgICAgICAgd2lkdGg6IDMwJTsgfVxuICAgICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0cy13cmFwIGRpdi5yZXN1bHQgLnJpZ2h0IHtcbiAgICAgICAgd2lkdGg6IDY1JTtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSAwIDEuODc1cmVtIDA7IH1cbiAgICAgICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0cy13cmFwIGRpdi5yZXN1bHQgLnJpZ2h0IGg1IHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCBkaXYucmVzdWx0IC5yaWdodCBwOm50aC1vZi10eXBlKDIpLCBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgZGl2LnJlc3VsdCAucmlnaHQgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgZGl2LnJlc3VsdDphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRlZWVmOyB9IH1cblxuc2VjdGlvbi5ub3QtZm91bmQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA4MHZoO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGhlaWdodCAuNXMgZWFzZTsgfVxuICBzZWN0aW9uLm5vdC1mb3VuZCAuYWxlcnQtaW5mbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiA2NTBweDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgdG9wOiAyNSU7XG4gICAgdHJhbnNpdGlvbjogdG9wIC41cyBlYXNlO1xuICAgIHBhZGRpbmc6IDAgNSU7IH1cbiAgICBzZWN0aW9uLm5vdC1mb3VuZCAuYWxlcnQtaW5mbzphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICBzZWN0aW9uLm5vdC1mb3VuZCAuYWxlcnQtaW5mbyBoMiB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICBzZWN0aW9uLm5vdC1mb3VuZCAuYWxlcnQtaW5mbyBwIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDFzOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIHNlY3Rpb24ubm90LWZvdW5kIHtcbiAgICAgIGhlaWdodDogNjV2aDsgfVxuICAgICAgc2VjdGlvbi5ub3QtZm91bmQgLmFsZXJ0LWluZm8ge1xuICAgICAgICB0b3A6IDMwJTsgfSB9XG4iLCIvLyBodHRwOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY3NzL3Jlc2V0L1xuLy8gdjIuMCB8IDIwMTEwMTI2XG4vLyBMaWNlbnNlOiBub25lIChwdWJsaWMgZG9tYWluKVxuXG5AbWl4aW4gbWV5ZXItcmVzZXQge1xuICBodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksIGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2Vyc1xuICBhcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIGJvZHkge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIG9sLCB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuICBibG9ja3F1b3RlLCBxIHtcbiAgICBxdW90ZXM6IG5vbmU7XG4gIH1cbiAgYmxvY2txdW90ZSB7XG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuICB9XG4gIHEge1xuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBjb250ZW50OiBub25lO1xuICAgIH1cbiAgfVxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgfVxufVxuXG5AaW5jbHVkZSBtZXllci1yZXNldDtcbiIsIi8vLy9cbi8vLyBub3JtYWxpemUtbGlic2FzcyAxLjAuM1xuLy8vIE1JVC9HUEx2MiBMaWNlbnNlXG4vLy8gbGIuY20vbm9ybWFsaXplLWxpYnNhc3Ncbi8vLy9cblxuLy8vIFN0cmljdCBub3JtYWxpemVcbi8vLyBAdHlwZSBCb29sZWFuIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSBmb3Igc3RyaWN0IG5vcm1hbGl6ZSBvdXRwdXQuXG4kc3RyaWN0LW5vcm1hbGl6ZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250LXNpemUgYmFzZWxpbmVcbi8vLyBAdHlwZSBMZW5ndGggWzE2cHhdXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vLyBMaW5lLWhlaWdodCBiYXNlbGluZVxuLy8vIEB0eXBlIExlbmd0aCBbMjRweF1cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLy8gSDEgaGVhZGxpbmUgc2l6ZVxuLy8vIEB0eXBlIExlbmd0aCBbMiAqIDE2cHhdXG4kaDEtZm9udC1zaXplOiAyICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLy8gUmh5dGhtIHVuaXRcbi8vLyBAdHlwZSBTdHJpbmcgW2VtXSAtIFN1cHBvcnRlZCB2YWx1ZXM6IHB4LCBlbSwgcmVtLlxuJHJoeXRobS11bml0OiAnZW0nICFkZWZhdWx0O1xuXG4vLy8gRm9udC1mYW1pbHkgYmFzZWxpbmVcbi8vLyBAdHlwZSBNYXAgW3NhbnMtc2VyaWZdXG4kYmFzZS1mb250LWZhbWlseTogc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFN1cHBvcnRlZCBCcm93c2VyIHZlcnNpb25zXG4vLy8gQHR5cGUgTWFwXG4kYnJvd3Nlci1taW4tdmVyc2lvbjogKFxuICAnY2hyb21lJzogIG51bGwsXG4gICdmaXJlZm94JzogbnVsbCxcbiAgJ2llJzogICAgICA4LFxuICAnc2FmYXJpJzogIDYsXG4gICdvcGVyYSc6ICAgbnVsbFxuKSAhZGVmYXVsdDtcblxuLy8gQXNzdXJlIG5vIHZhcmlhYmxlcyBnZXQgb3ZlcnJpZGRlbiBpZiBzdHJpY3QgaXMgb25cbiRub3JtYWxpemUtYmFzZS1mb250LXNpemU6IGlmKCRzdHJpY3Qtbm9ybWFsaXplLCAxNnB4LCAkYmFzZS1mb250LXNpemUpO1xuJG5vcm1hbGl6ZS1iYXNlLWxpbmUtaGVpZ2h0OiBpZigkc3RyaWN0LW5vcm1hbGl6ZSwgMjRweCwgJGJhc2UtbGluZS1oZWlnaHQpO1xuJG5vcm1hbGl6ZS1oMS1mb250LXNpemU6IGlmKCRzdHJpY3Qtbm9ybWFsaXplLCAyICogJGJhc2UtZm9udC1zaXplLCAkaDEtZm9udC1zaXplKTtcbiRub3JtYWxpemUtcmh5dGhtLXVuaXQ6IGlmKCRzdHJpY3Qtbm9ybWFsaXplLCAnZW0nLCAkcmh5dGhtLXVuaXQpO1xuJG5vcm1hbGl6ZS1iYXNlLWZvbnQtZmFtaWx5OiBpZigkc3RyaWN0LW5vcm1hbGl6ZSwgc2Fucy1zZXJpZiwgJGJhc2UtZm9udC1mYW1pbHkpO1xuXG4vLy8gTm9ybWFsaXplIExlZ2FjeSBCcm93c2VyIFN1cHBvcnQgZnVuY3Rpb25cbi8vL1xuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGJyb3dzZXJcbi8vLyBAcmVxdWlyZXMge3ZhcmlhYmxlfSB2ZXJzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyb3dzZXIgLSBBIHZhbGlkIGJyb3dzZXIgbmFtZSBmcm9tICRicm93c2VyLW1pbmltdW0tdmVyc2lvbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2ZXJzaW9uIC0gQSBicm93c2VyIHZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfSAtIElmIGJyb3dzZXIgaXMgbnVsbCBvciB2YWxpZCByZXR1cm5zIHRydWUuXG5AZnVuY3Rpb24gbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgkYnJvd3NlciwgJHZlcnNpb24pIHtcbiAgLy8gSWYgYnJvd3NlciBpcyBub3QgbnVsbCB0aGVuIGNoZWNrIGZvciBzdXBwb3J0XG4gIEBpZiBtYXAtZ2V0KCRicm93c2VyLW1pbi12ZXJzaW9uLCAkYnJvd3Nlcikge1xuICAgICRzdXBwb3J0ZWQtdmVyc2lvbjogbWFwLWdldCgkYnJvd3Nlci1taW4tdmVyc2lvbiwgJGJyb3dzZXIpO1xuICAgIC8vIFBhc3MgaWYgYnJvd3NlciBpcyBzdXBwb3J0ZWQgb3Igc3RyaWN0LW5vcm1hbGl6ZSBpcyBvblxuICAgIEBpZiAkc3RyaWN0LW5vcm1hbGl6ZSBvciAkc3VwcG9ydGVkLXZlcnNpb24gPD0gJHZlcnNpb24ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgLy8gRmFpbCBpZiBicm93c2VyIGlzIHVuc3VwcG9ydGVkXG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIFBhc3MgaWYgYnJvd3NlciBpcyBudWxsXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vIENvbnZlcnQgb25lIHVuaXQgaW50byBhbm90aGVyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gSW5pdGlhbCB2YWx1ZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIERlc2lyZWQgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vIEB0aHJvdyBFcnJvciBpZiBgJHVuaXRgIGRvZXMgbm90IGV4aXN0IG9yIGlmIHVuaXRzIGFyZSBpbmNvbXBhdGlibGUuXG5AZnVuY3Rpb24gbm9ybWFsaXplLWNvbnZlcnQtdW5pdCgkdmFsdWUsICR1bml0KSB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICR1bml0czogKFxuICAgICdweCc6IDBweCxcbiAgICAnY20nOiAwY20sXG4gICAgJ21tJzogMG1tLFxuICAgICclJzogMCUsXG4gICAgJ2luJzogMGluLFxuICAgICdlbSc6IDBlbSxcbiAgICAncmVtJzogMHJlbSxcbiAgICAncHQnOiAwcHRcbiAgKTtcbiAgLy8gc2Nzcy1saW50OmVuYWJsZSBaZXJvVW5pdFxuXG4gIEBpZiBtYXAtaGFzLWtleSgkdW5pdHMsICR1bml0KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpICsgJHZhbHVlO1xuICB9XG5cbiAgQGVycm9yIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG59XG5cbi8qKlxuKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb25cbiogICAgY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuKiAgICB1c2VyIHpvb20uXG4qL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiAkbm9ybWFsaXplLWJhc2UtZm9udC1mYW1pbHk7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4qL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiogYW5kIEZpcmVmb3guXG4qIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4qL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4qIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4qIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIEBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDkpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgfVxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4qIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4qIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4qL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDEwKSB7XG4gIC8qKlxuICAgKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gICAqL1xuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8qKlxuKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4qL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgnaWUnLCAxMCkge1xuICAvKipcbiAgICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAqL1xuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8qKlxuKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4qIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4qL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLWNvbnZlcnQtdW5pdCgoJG5vcm1hbGl6ZS1oMS1mb250LXNpemUgLyAkbm9ybWFsaXplLWJhc2UtZm9udC1zaXplKSwgJG5vcm1hbGl6ZS1yaHl0aG0tdW5pdCk7XG4gIG1hcmdpbjogbm9ybWFsaXplLWNvbnZlcnQtdW5pdCgoJG5vcm1hbGl6ZS1iYXNlLWZvbnQtc2l6ZSAvICRub3JtYWxpemUtYmFzZS1saW5lLWhlaWdodCksICRub3JtYWxpemUtcmh5dGhtLXVuaXQpIDA7XG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDkpIHtcbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gICAqL1xuXG4gIG1hcmsge1xuICAgIGJhY2tncm91bmQ6ICNmZjA7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cbn1cblxuLyoqXG4qIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4qIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDEwKSB7XG4gIC8qKlxuICAgKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW1nIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuQGlmIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoJ2llJywgMTEpIHtcbiAgLyoqXG4gICAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICAgKi9cblxuICBzdmc6bm90KDpyb290KSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgnaWUnLCA5KSBvciBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdzYWZhcmknLCA2KSB7XG4gIC8qKlxuICAgKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAgICovXG5cbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xuICB9XG59XG5cbi8qKlxuKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4qL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4qIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4qIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiovXG5cbi8qKlxuKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4qICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDExKSB7XG4gIC8qKlxuICAgKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAgICovXG5cbiAgYnV0dG9uIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxufVxuXG4vKipcbiogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4qL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4qIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4qICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4qIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4qICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT0nYnV0dG9uJ10sIC8qIDEgKi9cbmlucHV0W3R5cGU9J3Jlc2V0J10sXG5pbnB1dFt0eXBlPSdzdWJtaXQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4qIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuKiB0aGUgVUEgc3R5bGVzaGVldC5cbiovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuQGlmIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoJ2llJywgMTApIHtcbiAgLyoqXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAgICpcbiAgICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSxcbiAgaW5wdXRbdHlwZT0ncmFkaW8nXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgfVxufVxuXG4vKipcbiogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuKi9cblxuaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4qIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKi9cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4qIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4qIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiovXG5cbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4qL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4qIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuKi9cblxubGVnZW5kIHtcbiAgQGlmIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoJ2llJywgMTEpIHtcbiAgICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgfVxuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDExKSB7XG4gIC8qKlxuICAgKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICAgKi9cblxuICB0ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cbn1cblxuLyoqXG4qIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4qL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4qL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi5vbGQtYnJvd3NlcnMge1xuICB6LWluZGV4OiA5OTk5O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIFxuICBoMiB7IHBhZGRpbmc6IDIwcHggMCAyMHB4IDA7IH1cbiAgcCwgdWwgeyBtYXJnaW46IDAgYXV0bzsgfVxuICBwIHtcbiAgICBtYXgtd2lkdGg6IDcwMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTsgICAgXG4gIH1cbiAgdWwge1xuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDAgMjVweDtcbiAgICAgIGltZyB7IHdpZHRoOiAxMTVweDsgfVxuICAgICAgcCB7IHBhZGRpbmctdG9wOiAxNXB4OyBjb2xvcjogIzI0OUFFMTt9XG4gICAgfVxuICB9XG59XG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufSIsIi8qICBTeW50YXggUXVpY2sgUmVmZXJlbmNlXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNvbHVtbigkcmF0aW9zOiAxLCAkb2Zmc2V0OiAwLCAkY3ljbGU6IDAsICR1bmN5Y2xlOiAwLCAkZ3V0dGVyOiAkamVldC1ndXR0ZXIpXG4gIHNwYW4oJHJhdGlvOiAxLCAkb2Zmc2V0OiAwKVxuICBzaGlmdCgkcmF0aW9zOiAwLCAkY29sX29yX3NwYW46IGNvbHVtbiwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKVxuICB1bnNoaWZ0KClcbiAgZWRpdCgpXG4gIGNlbnRlcigkbWF4X3dpZHRoOiAxNDEwcHgsICRwYWQ6IDApXG4gIHN0YWNrKCRwYWQ6IDAsICRhbGlnbjogZmFsc2UpXG4gIHVuc3RhY2soKVxuICBhbGlnbigkZGlyZWN0aW9uOiBib3RoKVxuICBjZigpXG4qL1xuXG5AaW1wb3J0ICdfc2V0dGluZ3MnO1xuQGltcG9ydCAnX2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICdfZ3JpZCc7XG4iLCIvKipcbiAqIEdyaWQgc2V0dGluZ3MuXG4gKiBBbGwgdmFsdWVzIGFyZSBkZWZhdWx0cyBhbmQgY2FuIHRoZXJlZm9yZSBiZSBlYXNpbHkgb3ZlcmlkZGVuLlxuICovXG5cbiRqZWV0LWd1dHRlcjogICAgICAgICAgIDMgICAgICAhZGVmYXVsdDtcbiRqZWV0LXBhcmVudC1maXJzdDogICAgIGZhbHNlICAhZGVmYXVsdDtcbiRqZWV0LWxheW91dC1kaXJlY3Rpb246IFwiTFRSXCIgICFkZWZhdWx0O1xuJGplZXQtbWF4LXdpZHRoOiAgICAgICAgMTQxMHB4ICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBMaXN0IGZ1bmN0aW9ucyBjb3VydGVzeSBvZiB0aGUgd29uZGVyZnVsIGZvbGtzIGF0IFRlYW0gU2Fzcy5cbiAqIENoZWNrIG91dCB0aGVpciBhd2Vzb21lIGdyaWQ6IFNpbmd1bGFyaXR5LlxuICovXG5cbi8qKlxuICogR2V0ICBwZXJjZW50YWdlIGZyb20gYSBnaXZlbiByYXRpby5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHJhdGlvPTFdIC0gVGhlIGNvbHVtbiByYXRpbyBvZiB0aGUgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IC0gVGhlIHBlcmNlbnRhZ2UgdmFsdWUuXG4gKi9cbkBmdW5jdGlvbiBqZWV0LWdldC1zcGFuKCRyYXRpbzogMSkge1xuICBAcmV0dXJuICRyYXRpbyAqIDEwMDtcbn1cblxuLyoqXG4gKiBXb3JrIG91dCB0aGUgY29sdW1uIHdpZHRocyBiYXNlZCBvbiB0aGUgcmF0aW8gYW5kIGd1dHRlciBzaXplcy5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHJhdGlvcz0xXSAtIFRoZSBjb2x1bW4gcmF0aW8gb2YgdGhlIGVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRndXR0ZXI9JGplZXQtZ3V0dGVyXSAtIFRoZSBndXR0ZXIgZm9yIHRoZSBjb2x1bW4uXG4gKiBAcmV0dXJucyB7bGlzdH0gJHdpZHRoICRndXR0ZXIgLSBBIGxpc3QgY29udGFpbmluZyB0aGUgd2l0aCBhbmQgZ3V0dGVyIGZvciB0aGUgZWxlbWVudC5cbiAqL1xuQGZ1bmN0aW9uIGplZXQtZ2V0LWNvbHVtbigkcmF0aW9zOiAxLCAkZ3V0dGVyOiAkamVldC1ndXR0ZXIpIHtcbiAgJHJhdGlvczogaWYobm90ICRqZWV0LXBhcmVudC1maXJzdCwgamVldC1yZXZlcnNlKCRyYXRpb3MpLCAkcmF0aW9zKTtcbiAgJHdpZHRoOiAxMDA7XG5cbiAgQGVhY2ggJHJhdGlvIGluICRyYXRpb3Mge1xuICAgICRndXR0ZXI6ICRndXR0ZXIgLyAkd2lkdGggKiAxMDA7XG4gICAgJHdpZHRoOiAxMDAgKiAkcmF0aW8gLSAkZ3V0dGVyICsgJHJhdGlvICogJGd1dHRlcjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoICRndXR0ZXI7XG59XG5cbi8qKlxuICogR2V0IHRoZSBzZXQgbGF5b3V0IGRpcmVjdGlvbiBmb3IgdGhlIHByb2plY3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAkZGlyZWN0aW9uIC0gVGhlIGxheW91dCBkaXJlY3Rpb24uXG4gKi9cbkBmdW5jdGlvbiBqZWV0LWdldC1sYXlvdXQtZGlyZWN0aW9uKCkge1xuICAkZGlyZWN0aW9uOiBpZigkamVldC1sYXlvdXQtZGlyZWN0aW9uID09IFwiUlRMXCIsIHJpZ2h0LCBsZWZ0KTtcblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbi8qKlxuICogUmVwbGFjZSBhIHNwZWNpZmllZCBsaXN0IHZhbHVlIHdpdGggYSBuZXcgdmFsdWUgKHVzZXMgYnVpbHQgaW4gc2V0LW50aCgpIGlmIGF2YWlsYWJsZSlcbiAqIEBwYXJhbSB7bGlzdH0gJGxpc3QgLSBUaGUgbGlzdCBvZiB2YWx1ZXMgeW91IHdhbnQgdG8gYWx0ZXIuXG4gKiBAcGFyYW0ge251bWJlcn0gJGluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBsaXN0IGl0ZW0geW91IHdhbnQgdG8gcmVwbGFjZS5cbiAqIEBwYXJhbSB7Kn0gJHZhbHVlIC0gVGhlIHZhbHVlIHlvdSB3YW50IHRvIHJlcGxhY2UgJGluZGV4IHdpdGguXG4gKiBAcmV0dXJucyB7bGlzdH0gJGxpc3QgLSBUaGUgbGlzdCB3aXRoIHRoZSB2YWx1ZSByZXBsYWNlZCBvciByZW1vdmVkLlxuICogQHdhcm4gaWYgYW4gaW52YWxpZCBpbmRleCBpcyBzdXBwbGllZC5cbiAqL1xuQGZ1bmN0aW9uIGplZXQtcmVwbGFjZS1udGgoJGxpc3QsICRpbmRleCwgJHZhbHVlKSB7XG4gIC8vIEZhbGxiYWNrIGZvciBTYXNzIDMuMlxuICBAaWYgZnVuY3Rpb24tZXhpc3RzKFwic2V0LW50aFwiKSAhPSB0cnVlIHtcbiAgICAkcmVzdWx0OiAoKTtcbiAgICAkaW5kZXg6IGlmKCRpbmRleCA8IDAsIGxlbmd0aCgkbGlzdCkgKyAkaW5kZXggKyAxLCAkaW5kZXgpO1xuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGxpc3QpIHtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBpZigkaSA9PSAkaW5kZXgsICR2YWx1ZSwgbnRoKCRsaXN0LCAkaSkpKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG4gIH1cblxuICAvLyBTYXNzIDMuM1xuICAkcmVzdWx0OiBzZXQtbnRoKCRsaXN0LCAkaW5kZXgsICR2YWx1ZSk7XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vKipcbiAqIFJldmVyc2UgYSBsaXN0IChwcm9ncmVzc2l2ZWx5IGVuaGFuY2VkIGZvciBTYXNzIDMuMylcbiAqIEBwYXJhbSB7bGlzdH0gJGxpc3QgLSBUaGUgbGlzdCBvZiB2YWx1ZXMgeW91IHdhbnQgdG8gcmV2ZXJzZS5cbiAqIEByZXR1cm5zIHtsaXN0fSAkcmVzdWx0IC0gVGhlIHJldmVyc2VkIGxpc3QuXG4gKi9cbkBmdW5jdGlvbiBqZWV0LXJldmVyc2UoJGxpc3QpIHtcbiAgLy8gU2FzcyAzLjJcbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhcInNldC1udGhcIikgIT0gdHJ1ZSB7XG4gICAgJHJlc3VsdDogKCk7XG5cbiAgICBAZm9yICRpIGZyb20gbGVuZ3RoKCRsaXN0KSAqIC0xIHRocm91Z2ggLTEge1xuICAgICAgJGl0ZW06IG50aCgkbGlzdCwgYWJzKCRpKSk7XG5cbiAgICAgIEBpZiBsZW5ndGgoJGl0ZW0pID4gMSBhbmQgJHJlY3Vyc2l2ZSB7XG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBqZWV0LXJldmVyc2UoJGl0ZW0sICRyZWN1cnNpdmUpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICRpdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG4gIH1cblxuICAvLyBTYXNzIDMuMytcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBjZWlsKGxlbmd0aCgkbGlzdCkvMikge1xuICAgICR0bXA6IG50aCgkbGlzdCwgJGkpO1xuICAgICR0bXA6IGlmKGxlbmd0aCgkdG1wKSA+IDEgYW5kICRyZWN1cnNpdmUsIHJldmVyc2UoJHRtcCwgJHJlY3Vyc2l2ZSksICR0bXApO1xuXG4gICAgJGxpc3Q6IHNldC1udGgoJGxpc3QsICRpLCBudGgoJGxpc3QsIC0kaSkpO1xuICAgICRsaXN0OiBzZXQtbnRoKCRsaXN0LCAtJGksICR0bXApO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiB0byBhIGdpdmVuIHZhbHVlLlxuICogQHBhcmFtIHtzdHJpbmd9ICRkaXIgLSBUaGUgZGlyZWN0aW9uIHlvdSB3YW50IHRoZSBvcHBvc2l0ZSBvZi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIG9wcG9zaXRlIGRpcmVjdGlvbiB0byAkZGlyLlxuICogQHdhcm4gaWYgYW4gaW5jb3JyZWN0IHN0cmluZyBpcyBwcm92aWRlZC5cbiAqL1xuQGZ1bmN0aW9uIGplZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pIHtcbiAgQGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xuICAgIEByZXR1cm4gcmlnaHQ7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIge1xuICAgIEByZXR1cm4gbGVmdDtcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwidG9wXCIge1xuICAgIEByZXR1cm4gYm90dG9tO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJib3R0b21cIiB7XG4gICAgQHJldHVybiB0b3A7XG4gIH0gQGVsc2UgaWYgaW5kZXgoXCJsdHJcIiBcIkxUUlwiLCAkZGlyZWN0aW9uKSB7XG4gICAgQHJldHVybiBydGw7XG4gIH0gQGVsc2UgaWYgaW5kZXgoXCJydGxcIiBcIlJUTFwiLCAkZGlyZWN0aW9uKSB7XG4gICAgQHJldHVybiBsdHI7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGRpcmVjdGlvbn1gIGlzIG5vdCBhIGRpcmVjdGlvbjsgcGxlYXNlIG1ha2Ugc3VyZSB5b3VyIGRpcmVjdGlvbiBpcyBhbGwgbG93ZXJjYXNlLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIi8qKlxuICogU3R5bGUgYW4gZWxlbWVudCBhcyBhIGNvbHVtbiB3aXRoIGEgZ3V0dGVyLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRvZmZzZXQ9MF0gLSBBIG9mZnNldCBzcGVjaWZpZWQgYXMgYSBmcmFjdGlvbiAoc2VlICRyYXRpb3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IFskY3ljbGU9MF0gLSBFYXNpbHkgY3JlYXRlIGFuIG50aCBjb2x1bW4gZ3JpZCB3aGVyZSAkY3ljbGUgZXF1YWxzIHRoZSBudW1iZXIgb2YgY29sdW1ucy5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHVuY3ljbGU9MF0gLSBVbmRvIGEgcHJldmlvdXMgY3ljbGUgdmFsdWUgdG8gYWxsb3cgZm9yIGEgbmV3IG9uZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGd1dHRlcj0kamVldC1ndXR0ZXJdIC0gU3BlY2lmeSB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY29udGFpbmVycyB3aWR0aC5cbiAqL1xuQG1peGluIGNvbHVtbigkcmF0aW9zOiAxLCAkb2Zmc2V0OiAwLCAkY3ljbGU6IDAsICR1bmN5Y2xlOiAwLCAkZ3V0dGVyOiAkamVldC1ndXR0ZXIpIHtcbiAgJHNpZGU6IGplZXQtZ2V0LWxheW91dC1kaXJlY3Rpb24oKTtcbiAgJG9wcG9zaXRlLXNpZGU6IGplZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRzaWRlKTtcbiAgJGNvbHVtbi13aWR0aHM6IGplZXQtZ2V0LWNvbHVtbigkcmF0aW9zLCAkZ3V0dGVyKTtcbiAgJG1hcmdpbi1sYXN0OiAwO1xuICAkbWFyZ2luLWw6ICRtYXJnaW4tbGFzdDtcbiAgJG1hcmdpbi1yOiBudGgoJGNvbHVtbi13aWR0aHMsIDIpO1xuXG4gIEBpZiAkb2Zmc2V0ICE9IDAge1xuICAgIEBpZiAkb2Zmc2V0IDwgMCB7XG4gICAgICAkb2Zmc2V0OiAkb2Zmc2V0ICogLTE7XG4gICAgICAkb2Zmc2V0OiBudGgoamVldC1nZXQtY29sdW1uKCRvZmZzZXQsIG50aCgkY29sdW1uLXdpZHRocywgMikpLCAxKTtcbiAgICAgICRtYXJnaW4tbGFzdDogJG9mZnNldCArIG50aCgkY29sdW1uLXdpZHRocywgMikgKiAyO1xuICAgICAgJG1hcmdpbi1yOiAkbWFyZ2luLWxhc3Q7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkb2Zmc2V0OiBudGgoamVldC1nZXQtY29sdW1uKCRvZmZzZXQsIG50aCgkY29sdW1uLXdpZHRocywgMikpLCAxKTtcbiAgICAgICRtYXJnaW4tbDogJG9mZnNldCArIG50aCgkY29sdW1uLXdpZHRocywgMik7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgY2Y7XG4gIGZsb2F0OiAkc2lkZTtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiBudGgoJGNvbHVtbi13aWR0aHMsIDEpICogMSU7XG4gIG1hcmdpbjoge1xuICAgICN7JHNpZGV9OiAkbWFyZ2luLWwgKiAxJTtcbiAgICAjeyRvcHBvc2l0ZS1zaWRlfTogJG1hcmdpbi1yICogMSU7XG4gIH07XG5cbiAgQGlmICR1bmN5Y2xlICE9IDAge1xuICAgICY6bnRoLWNoaWxkKCN7JHVuY3ljbGV9bikge1xuICAgICAgbWFyZ2luLSN7amVldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJHNpZGUpfTogJG1hcmdpbi1yICogMSU7XG4gICAgICBmbG9hdDogJHNpZGU7XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKCN7JHVuY3ljbGV9biArIDEpIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkY3ljbGUgIT0gMCB7XG4gICAgJjpudGgtY2hpbGQoI3skY3ljbGV9bikge1xuICAgICAgbWFyZ2luLSN7amVldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJHNpZGUpfTogJG1hcmdpbi1sYXN0ICogMSU7XG4gICAgICBmbG9hdDogamVldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJHNpZGUpO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZCgjeyRjeWNsZX1uICsgMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLSN7amVldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJHNpZGUpfTogJG1hcmdpbi1sYXN0ICogMSU7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQW4gYWxpYXMgZm9yIHRoZSBjb2x1bW4gbWl4aW4uXG4gKiBAcGFyYW0gWyRhcmdzLi4uXSAtIEFsbCBhcmd1bWVudHMgZ2V0IHBhc3NlZCB0aHJvdWdoIHRvIGNvbHVtbigpLlxuICovXG5AbWl4aW4gY29sKCRhcmdzLi4uKSB7XG4gIEBpbmNsdWRlIGNvbHVtbigkYXJncy4uLik7XG59XG5cbi8qKlxuICogR2V0IHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBhbmQgbm90aGluZyBlbHNlLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRndXR0ZXI9JGplZXQtZ3V0dGVyXSAtIFNwZWNpZnkgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGNvbnRhaW5lcnMgd2lkdGguXG4gKi9cbkBmdW5jdGlvbiBjb2x1bW4td2lkdGgoJHJhdGlvczogMSwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKSB7XG4gIEByZXR1cm4gdW5xdW90ZShudGgoamVldC1nZXQtY29sdW1uKCRyYXRpb3MsICRndXR0ZXIpLCAxKSArICclJyk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBndXR0ZXIgc2l6ZSBvZiBhIGNvbHVtbiBhbmQgbm90aGluZyBlbHNlLlxuICogQHBhcmFtIHtudW1iZXJ9IFtyYXRpb3M9MV0gLSBBIHdpZHRoIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXIgYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZ3V0dGVyPWplZXQuZ3V0dGVyXSAtIFNwZWNpZnkgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGNvbnRhaW5lcnMgd2lkdGguXG4gKi9cbkBmdW5jdGlvbiBjb2x1bW4tZ3V0dGVyKCRyYXRpb3M6IDEsICRndXR0ZXI6ICRqZWV0LWd1dHRlcikge1xuICBAcmV0dXJuIHVucXVvdGUobnRoKGplZXQtZ2V0LWNvbHVtbigkcmF0aW9zLCAkZ3V0dGVyKSwgMikgKyAnJScpO1xufVxuXG4vKipcbiAqIEFuIGFsaWFzIGZvciB0aGUgY29sdW1uLXdpZHRoIGZ1bmN0aW9uLlxuICogQHBhcmFtIFskYXJncy4uLl0gLSBBbGwgYXJndW1lbnRzIGdldCBwYXNzZWQgdGhyb3VnaCB0byBjb2x1bW4oKS5cbiAqL1xuQGZ1bmN0aW9uIGN3KCRhcmdzLi4uKSB7XG4gIEByZXR1cm4gY29sdW1uLXdpZHRoKCRhcmdzLi4uKTtcbn1cblxuLyoqXG4gKiBBbiBhbGlhcyBmb3IgdGhlIGNvbHVtbi1ndXR0ZXIgZnVuY3Rpb24uXG4gKiBAcGFyYW0gWyRhcmdzLi4uXSAtIEFsbCBhcmd1bWVudHMgZ2V0IHBhc3NlZCB0aHJvdWdoIHRvIGNvbHVtbigpLlxuICovXG5AZnVuY3Rpb24gY2coJGFyZ3MuLi4pIHtcbiAgQHJldHVybiBjb2x1bW4tZ3V0dGVyKCRhcmdzLi4uKTtcbn1cblxuLyoqXG4gKiBTdHlsZSBhbiBlbGVtZW50IGFzIGEgY29sdW1uIHdpdGhvdXQgYW55IGd1dHRlcnMgZm9yIGEgc2VhbWxlc3Mgcm93LlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRvZmZzZXQ9MF0gLSBBIG9mZnNldCBzcGVjaWZpZWQgYXMgYSBmcmFjdGlvbiAoc2VlICRyYXRpb3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IFtjeWNsZT0wXSAtIEVhc2lseSBjcmVhdGUgYW4gbnRoIGNvbHVtbiBncmlkIHdoZXJlIGN5Y2xlIGVxdWFscyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuXG4gKiBAcGFyYW0ge251bWJlcn0gW3VuY3ljbGU9MF0gLSBVbmRvIGEgcHJldmlvdXMgY3ljbGUgdmFsdWUgdG8gYWxsb3cgZm9yIGEgbmV3IG9uZS5cbiAqL1xuQG1peGluIHNwYW4oJHJhdGlvOiAxLCAkb2Zmc2V0OiAwLCAkY3ljbGU6IDAsICR1bmN5Y2xlOiAwKSB7XG4gICRzaWRlOiBqZWV0LWdldC1sYXlvdXQtZGlyZWN0aW9uKCk7XG4gICRvcHBvc2l0ZS1zaWRlOiBqZWV0LW9wcG9zaXRlLWRpcmVjdGlvbigkc2lkZSk7XG4gICRzcGFuLXdpZHRoOiBqZWV0LWdldC1zcGFuKCRyYXRpbyk7XG4gICRtYXJnaW4tcjogMDtcbiAgJG1hcmdpbi1sOiAkbWFyZ2luLXI7XG4gIEBpZiAkb2Zmc2V0ICE9IDAge1xuICAgIEBpZiAkb2Zmc2V0IDwgMCB7XG4gICAgICAkb2Zmc2V0OiAkb2Zmc2V0ICogLTE7XG4gICAgICAkbWFyZ2luLXI6IGplZXQtZ2V0LXNwYW4oJG9mZnNldCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWFyZ2luLWw6IGplZXQtZ2V0LXNwYW4oJG9mZnNldCk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgY2Y7XG4gIGZsb2F0OiAkc2lkZTtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiAkc3Bhbi13aWR0aCAqIDElO1xuICBtYXJnaW46IHtcbiAgICAjeyRzaWRlfTogJG1hcmdpbi1sICogMSU7XG4gICAgI3skb3Bwb3NpdGUtc2lkZX06ICRtYXJnaW4tciAqIDElO1xuICB9O1xuXG4gIEBpZiAkY3ljbGUgIT0gMCB7XG4gICAgJjpudGgtY2hpbGQoI3skY3ljbGV9bikge1xuICAgICAgZmxvYXQ6ICRvcHBvc2l0ZS1zaWRlO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZCgjeyRjeWNsZX1uICsgMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICB9XG5cbiAgQGlmICR1bmN5Y2xlICE9IDAge1xuICAgICY6bnRoLWNoaWxkKCN7JHVuY3ljbGV9bikge1xuICAgICAgZmxvYXQ6ICRzaWRlO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZCgjeyR1bmN5Y2xlfW4gKyAxKSB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG4gIH1cblxufVxuXG4vKipcbiAqIFJlb3JkZXIgY29sdW1ucyB3aXRob3V0IGFsdGVyaW5nIHRoZSBIVE1MLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTBdIC0gU3BlY2lmeSBob3cgZmFyIGFsb25nIHlvdSB3YW50IHRoZSBlbGVtZW50IHRvIG1vdmUuXG4gKiBAcGFyYW0ge3N0cmluZ30gWyRjb2wtb3Itc3Bhbj1jb2x1bW5dIC0gU3BlY2lmeSB3aGV0aGVyIHRoZSBlbGVtZW50IGhhcyBhIGd1dHRlciBvciBub3QuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRndXR0ZXI9JGplZXQtZ3V0dGVyXSAtIFNwZWNpZnkgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGNvbnRhaW5lcnMgd2lkdGguXG4gKi9cbkBtaXhpbiBzaGlmdCgkcmF0aW9zOiAwLCAkY29sLW9yLXNwYW46IGNvbHVtbiwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKSB7XG4gICR0cmFuc2xhdGU6ICcnO1xuICAkc2lkZTogamVldC1nZXQtbGF5b3V0LWRpcmVjdGlvbigpO1xuXG4gIEBpZiAkc2lkZSA9PSByaWdodCB7XG4gICAgJHJhdGlvczogamVldC1yZXBsYWNlLW50aCgkcmF0aW9zLCAwLCBudGgoJHJhdGlvcywgMSkgKiAtMSk7XG4gIH1cblxuICBAaWYgaW5kZXgoXCJjb2x1bW5cIiBcImNvbFwiIFwiY1wiLCAkY29sLW9yLXNwYW4pIHtcbiAgICAkY29sdW1uLXdpZHRoczogamVldC1nZXQtY29sdW1uKCRyYXRpb3MsICRndXR0ZXIpO1xuICAgICR0cmFuc2xhdGU6IG50aCgkY29sdW1uLXdpZHRocywgMSkgKyBudGgoJGNvbHVtbi13aWR0aHMsIDIpO1xuICB9IEBlbHNlIHtcbiAgICAkdHJhbnNsYXRlOiBqZWV0LWdldC1zcGFuKCRyYXRpb3MpO1xuICB9XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAkdHJhbnNsYXRlICogMSU7XG59XG5cbi8qKlxuICogUmVzZXQgYW4gZWxlbWVudCB0aGF0IGhhcyBoYWQgc2hpZnQoKSBhcHBsaWVkIHRvIGl0LlxuICovXG5AbWl4aW4gdW5zaGlmdCgpIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbGVmdDogMDtcbn1cblxuLyoqXG4gKiBWaWV3IHRoZSBncmlkIGFuZCBpdHMgbGF5ZXJzIGZvciBlYXN5IGRlYnVnZ2luZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGNvbG9yPWJsYWNrXSAtIFRoZSBiYWNrZ3JvdW5kIHRpbnQgYXBwbGllZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gWyRpbXBvcnRhbnQ9ZmFsc2VdIC0gV2hldGhlciB0byBhcHBseSB0aGUgc3R5bGUgYXMgIWltcG9ydGFudC5cbiAqL1xuQG1peGluIGVkaXQoJGNvbG9yOiBibGFjaywgJGltcG9ydGFudDogZmFsc2UpIHtcbiAgQGlmICRpbXBvcnRhbnQge1xuICAgICoge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgkY29sb3IsIC4wNSkgIWltcG9ydGFudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICoge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgkY29sb3IsIC4wNSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogIEFsaWFzIGZvciBlZGl0KCkuXG4gKi9cbkBtaXhpbiBkZWJ1ZygpIHtcbiAgQGluY2x1ZGUgZWRpdDtcbn1cblxuLyoqXG4gKiBIb3Jpem9udGFsbHkgY2VudGVyIGFuIGVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRtYXgtd2lkdGg9MTQxMHB4XSAtIFRoZSBtYXggd2lkdGggdGhlIGVsZW1lbnQgY2FuIGJlLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcGFkPTBdIC0gU3BlY2lmeSB0aGUgZWxlbWVudCdzIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcuXG4gKi9cbkBtaXhpbiBjZW50ZXIoJG1heC13aWR0aDogJGplZXQtbWF4LXdpZHRoLCAkcGFkOiAwKSB7XG4gIEBpbmNsdWRlIGNmO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjoge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6ICBhdXRvO1xuICB9O1xuICBwYWRkaW5nOiB7XG4gICAgbGVmdDogICRwYWQ7XG4gICAgcmlnaHQ6ICRwYWQ7XG4gIH07XG59XG5cbi8qKlxuICogVW5jZW50ZXIgYW4gZWxlbWVudC5cbiAqL1xuQG1peGluIHVuY2VudGVyKCkge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLyoqXG4gKiBTdGFjayBhbiBlbGVtZW50IHNvIHRoYXQgbm90aGluZyBpcyBlaXRoZXIgc2lkZSBvZiBpdC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHBhZD0wXSAtIFNwZWNpZnkgdGhlIGVsZW1lbnQncyBsZWZ0IGFuZCByaWdodCBwYWRkaW5nLlxuICogQHBhcmFtIHtib29sZWFuL3N0cmluZ30gWyRhbGlnbj1mYWxzZV0gLSBTcGVjaWZ5IHRoZSB0ZXh0IGFsaWduIGZvciB0aGUgZWxlbWVudC5cbiAqL1xuQG1peGluIHN0YWNrKCRwYWQ6IDAsICRhbGlnbjogZmFsc2UpIHtcbiAgJHNpZGU6IGplZXQtZ2V0LWxheW91dC1kaXJlY3Rpb24oKTtcbiAgJG9wcG9zaXRlLXNpZGU6IGplZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRzaWRlKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiB7XG4gICAgbGVmdDogIGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH07XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLSN7JHNpZGV9OiBhdXRvO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtc2lkZX06IGF1dG87XG4gIH1cblxuICBAaWYgJHBhZCAhPSAwIHtcbiAgICBwYWRkaW5nOiB7XG4gICAgICBsZWZ0OiAgJHBhZDtcbiAgICAgIHJpZ2h0OiAkcGFkO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGFsaWduIGlzIG5vdCBmYWxzZSkge1xuICAgIEBpZiBpbmRleChcImNlbnRlclwiIFwiY1wiLCAkYWxpZ24pIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9IEBlbHNlIGlmIGluZGV4KFwibGVmdFwiIFwibFwiLCAkYWxpZ24pIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfSBAZWxzZSBpZiBpbmRleChcInJpZ2h0XCIgXCJyXCIsICRhbGlnbikge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVW5zdGFjayBhbiBlbGVtZW50LlxuICovXG5AbWl4aW4gdW5zdGFjaygpIHtcbiAgJHNpZGU6IGplZXQtZ2V0LWxheW91dC1kaXJlY3Rpb24oKTtcbiAgJG9wcG9zaXRlLXNpZGU6IGplZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRzaWRlKTtcblxuICB0ZXh0LWFsaWduOiAkc2lkZTtcbiAgZGlzcGxheTogaW5saW5lO1xuICBjbGVhcjogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjoge1xuICAgIGxlZnQ6ICAwO1xuICAgIHJpZ2h0OiAwO1xuICB9O1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi0jeyRzaWRlfTogMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLSN7amVldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJHNpZGUpfTogMDtcbiAgfVxufVxuXG4vKipcbiAqIENlbnRlciBhbiBlbGVtZW50IG9uIGVpdGhlciBvciBib3RoIGF4ZXMuXG4gKiBAcmVxdWlyZXMgQSBwYXJlbnQgY29udGFpbmVyIHdpdGggcmVsYXRpdmUgcG9zaXRpb25pbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gWyRkaXJlY3Rpb249Ym90aF0gLSBTcGVjaWZ5IHdoaWNoIGF4ZXMgdG8gY2VudGVyIHRoZSBlbGVtZW50IG9uLlxuICovXG5AbWl4aW4gYWxpZ24oJGRpcmVjdGlvbjogYm90aCkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cbiAgQGlmIGluZGV4KFwiaG9yaXpvbnRhbFwiIFwiaFwiLCAkZGlyZWN0aW9uKSB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfSBAZWxzZSBpZiBpbmRleChcInZlcnRpY2FsXCIgXCJ2XCIsICRkaXJlY3Rpb24pIHtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH0gQGVsc2Uge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgfVxufVxuXG4vKipcbiAqIEFwcGx5IGEgY2xlYXJmaXggdG8gYW4gZWxlbWVudC5cbiAqL1xuQG1peGluIGNmKCkge1xuICAqem9vbTogMTtcblxuICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuIiwiLy8gQ29sb3JzXG4kY29hbDogIzQ0NDtcblxuLy8gUGFyYWdyYXBoIGxpbmsgY29sb3I6XG5wIGEge1xuICBjb2xvcjogZGVlcHNreWJsdWU7XG4gIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogZGFya2VuKGRlZXBza3libHVlLCAxMCUpO1xuICB9XG59XG5cbi8vIEJyYW5kIENvbG9yc1xuJGJsdWUgICAgICAgICAgICAgICA6ICMwMDgyQ0E7XG4kYmx1ZS1ncmF5ICAgICAgICAgIDogI0UyRTdFQztcbiR5ZWxsb3cgICAgICAgICAgICAgOiAjRjhDNzQ0O1xuJGdyZWVuICAgICAgICAgICAgICA6ICM2OUE5NTg7XG4kZ3JleS1zaGFkZSAgICAgICAgIDogIzMzM0I0MTtcbiRncmV5LXRpbnQgICAgICAgICAgOiAjQzhDQkNEO1xuJGdyZXktbGlnaHRcdFx0XHRcdFx0OiAjRThFOUVBO1xuJHJlZCAgICAgICAgICAgICAgICA6ICNEMzU4NTI7XG4kd2hpdGUgICAgICAgICAgICAgIDogI0ZGRkZGRjtcbiRoZXJvLW92ZXJsYXkgICAgICAgOiAjMjMxRjIwO1xuJG9yYW5nZSAgICAgICAgICAgICA6ICNGNTgyMjA7XG4kb3JhbmdlLXRpbnQgICAgICAgIDogI0NENjYzMjtcblxuLy8gQ29sb3JzIGJ5IFVzZVxuJGJsb2cteWVsbG93XHRcdFx0XHQ6ICNCRUNFMzE7XG4kYmxvZy10ZWFsXHRcdFx0XHRcdDogIzVBQUNBMztcbiRibG9nLW9yYW5nZVx0XHRcdFx0OiAjZmY4MzAwO1xuJGJsb2ctYmx1ZVx0XHRcdFx0XHQ6ICMxOThCQjM7XG4kYmxvZy1ncmVlblx0XHRcdFx0XHQ6ICM4QUJGNTE7XG4iLCIvKiBTbGlkZXIgKi9cblxuLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjdXJzb3I6IGhhbmQ7XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gRGVmYXVsdCBWYXJpYWJsZXNcblxuJHNsaWNrLWZvbnQtcGF0aDogXCIuL2ZvbnRzL1wiICFkZWZhdWx0O1xuJHNsaWNrLWZvbnQtZmFtaWx5OiBcInNsaWNrXCIgIWRlZmF1bHQ7XG4kc2xpY2stbG9hZGVyLXBhdGg6IFwiLi9cIiAhZGVmYXVsdDtcbiRzbGljay1hcnJvdy1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNvbG9yOiBibGFjayAhZGVmYXVsdDtcbiRzbGljay1kb3QtY29sb3ItYWN0aXZlOiAkc2xpY2stZG90LWNvbG9yICFkZWZhdWx0O1xuJHNsaWNrLXByZXYtY2hhcmFjdGVyOiBcIuKGkFwiICFkZWZhdWx0O1xuJHNsaWNrLW5leHQtY2hhcmFjdGVyOiBcIuKGklwiICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jaGFyYWN0ZXI6IFwi4oCiXCIgIWRlZmF1bHQ7XG4kc2xpY2stZG90LXNpemU6IDZweCAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LWRlZmF1bHQ6IDAuNzUgIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1vbi1ob3ZlcjogMSAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU6IDAuMjUgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBzbGljay1pbWFnZS11cmwoJHVybCkge1xuICAgIEBpZiBmdW5jdGlvbi1leGlzdHMoaW1hZ2UtdXJsKSB7XG4gICAgICAgIEByZXR1cm4gaW1hZ2UtdXJsKCR1cmwpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gdXJsKCRzbGljay1sb2FkZXItcGF0aCArICR1cmwpO1xuICAgIH1cbn1cblxuQGZ1bmN0aW9uIHNsaWNrLWZvbnQtdXJsKCR1cmwpIHtcbiAgICBAaWYgZnVuY3Rpb24tZXhpc3RzKGZvbnQtdXJsKSB7XG4gICAgICAgIEByZXR1cm4gZm9udC11cmwoJHVybCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiB1cmwoJHNsaWNrLWZvbnQtcGF0aCArICR1cmwpO1xuICAgIH1cbn1cblxuLyogU2xpZGVyICovXG5cbi5zbGljay1saXN0IHtcbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZiBzbGljay1pbWFnZS11cmwoXCIvaW1nL2FqYXgtbG9hZGVyLmdpZlwiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICB9XG59XG5cbi8qIEljb25zICovXG5AaWYgJHNsaWNrLWZvbnQtZmFtaWx5ID09IFwic2xpY2tcIiB7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcInNsaWNrXCI7XG4gICAgICAgIHNyYzogc2xpY2stZm9udC11cmwoXCJzbGljay5lb3RcIik7XG4gICAgICAgIHNyYzogc2xpY2stZm9udC11cmwoXCJzbGljay5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2suc3ZnI3NsaWNrXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIH1cbn1cblxuLyogQXJyb3dzICovXG5cbi5zbGljay1wcmV2LFxuLnNsaWNrLW5leHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICBmb250LXNpemU6IDBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuICAgICYuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcbiAgICB9XG59XG5cbi5zbGljay1wcmV2OmJlZm9yZSwgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogJHNsaWNrLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHNsaWNrLWFycm93LWNvbG9yO1xuICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IC0yNXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtMjVweDtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkc2xpY2stcHJldi1jaGFyYWN0ZXI7XG4gICAgICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgICAgICBjb250ZW50OiAkc2xpY2stbmV4dC1jaGFyYWN0ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zbGljay1uZXh0IHtcbiAgICByaWdodDogLTI1cHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgbGVmdDogLTI1cHg7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogRG90cyAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4uc2xpY2stZG90cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTQ1cHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHNsaWNrLWRvdC1jaGFyYWN0ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkc2xpY2stZG90LXNpemU7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgICAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLy8gY2hhbmdlIHBlciBwcm9qZWN0XG4kYmFzZS1mb250OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udC1zdGFjazogXCJGcmFua2xpbkdvdGhpYyBVUlcgQ29uZFwiLCBzYW5zLXNlcmlmO1xuJHByb3hpbWEtbm92YTogXCJwcm94aW1hLW5vdmFcIiwgXCJQcm94aW1hIE5vdmFcIiwgc2Fucy1zZXJpZjtcblxuLmRlZmF1bHQtdHlwZSB7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250O1xuICBjb2xvcjogJGNvYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbmJvZHksIHAsIGEsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG5zbWFsbCwgZW0sIHN0cm9uZywgaW5wdXQsIGJ1dHRvbiB7XG4gIEBleHRlbmQgLmRlZmF1bHQtdHlwZTtcbn1cblxuLy8gSGVhZGVyc1xuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDFyZW0gMDtcbiAgZm9udC1mYW1pbHk6ICRmb250LXN0YWNrO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgYSB7IGNvbG9yOiBpbmhlcml0OyAgfVxufVxuXG5oM3tcblx0Zm9udC1mYW1pbHk6ICRwcm94aW1hLW5vdmE7XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbmg0e1xuXHRmb250LWZhbWlseTogJHByb3hpbWEtbm92YTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XG59XG5cbnB7XG5cdGZvbnQtZmFtaWx5OiAkcHJveGltYS1ub3ZhO1xufVxuXG4vLyBHbG9iYWwgcmVzcG9uc2l2ZSB0eXBvZ3JhcGh5IC0gZWRpdCBwZXIgcHJvamVjdFxuLy8gVHlwZSB3aWxsIGJlIGZsdWlkIGJldHdlZW4gbWluIGFuZCBtYXggc2l6ZXNcbi8vIFNlZSBtaXhpbiBmbHVpZC10eXBlKCkgaW4gS25hcHNhY2tcblxuaDEgeyBAaW5jbHVkZSBmbHVpZC10eXBlKDM2cHgsIDU2cHgsIDQyMHB4LCAxMDI0cHgpOyB9XG5oMiB7IEBpbmNsdWRlIGZsdWlkLXR5cGUoMzZweCwgNDJweCwgNDIwcHgsIDEwMjRweCk7IH1cbmgzIHsgQGluY2x1ZGUgZmx1aWQtdHlwZSgyNHB4LCAyNHB4LCA0MjBweCwgMTAyNHB4KTsgfVxuaDQgeyBAaW5jbHVkZSBmbHVpZC10eXBlKDI0cHgsIDI4cHgsIDQyMHB4LCAxMDI0cHgpOyB9XG5oNSB7IEBpbmNsdWRlIGZsdWlkLXR5cGUoMjBweCwgMjZweCwgNDIwcHgsIDEwMjRweCk7IH1cbmg2IHsgQGluY2x1ZGUgZmx1aWQtdHlwZSgxOHB4LCAyNHB4LCA0MjBweCwgMTAyNHB4KTsgfVxucCwgdWwsIGxpLCBvbCB7IEBpbmNsdWRlIGZsdWlkLXR5cGUoMTVweCwgMThweCk7fVxuXG4vLyBMZXR0ZXJzcGFjaW5nXG4kdGlnaHQtc3BhY2luZzogLS4wNDVlbTtcbiRzbnVnLXNwYWNpbmc6ICAtLjAyZW07XG4kbW9yZS1zcGFjaW5nOiAgLjFlbTtcblxuLy8gV2Via2l0IGFudGlhbGlhc2luZ1xuQG1peGluIGhlYXZ5LWFudGlhbGlhcygpIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG59XG5cbi8vIEdlbmVyaWMgU3R5bGVzXG5wIHtcbiAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICBtYXJnaW46IDFlbSAwO1xufVxuYSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuIiwiLy8gLS0tLVxuLy8gVHlwb2dyYXBoeVxuLy8gLS0tLVxuXG4vLy0gTWl4aW46IElubGluZSBMaXN0XG4vLy9cbi8vLyBGb3Igd2hlbiB5b3UgbmVlZCB5b3VyIGxpc3QgdG8gYmUgaG9yaXpvbnRhbC5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRzcGFjaW5nIFsyMHB4XSAtIEFtb3VudCBvZiBzcGFjaW5nIGJldHdlZW4gZWxlbWVudHMgLVxuLy8vIGNhbiBiZSB3aGF0ZXZlciB1bml0IHlvdSBsaWtlLlxuLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHlcbi8vLyBAZXhhbXBsZVxuLy8vICAgdWwge1xuLy8vICAgICBAaW5jbHVkZSBpbmxpbmUtbGlzdCgpO1xuLy8vICAgfVxuXG5AbWl4aW4gaW5saW5lLWxpc3QoJHNwYWNpbmc6IDIwcHgpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZztcbiAgfVxuXG4gIGxpOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4vLy0gTWl4aW46IElubGluZSBMaXN0XG4vLy9cbi8vLyBXZSB0ZW5kIHRvIHNwZW5kIGEgZ3JlYXQgZGVhbCBvZiB0aW1lIHJlc2V0dGluZyBhbGwgb2YgdGhlIHByb3BlcnRpZXMgZm9yXG4vLy8gbGlzdHMuIFRoaXMgcHV0cyB0aGVtIGJhY2sgdG8gcm91Z2hseSB0aGUgc2FtZSBzdGF0ZSBhcyBicm93c2VyIGRlZmF1bHRzLlxuLy8vIFlvdSBjYW4gcGFzcyBpdCBhbnkgb3B0aW9uIHRoYXQgW2xpc3Qtc3R5bGUtdHlwZV1cbi8vLyAoaHR0cDovL3d3dy53M3NjaG9vbHMuY29tL2Nzc3JlZi9wcl9saXN0LXN0eWxlLXR5cGUuYXNwKSB3b3VsZCBub3JtYWxseVxuLy8vIHRha2UuXG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkc3R5bGUgW2Rpc2NdIC0gQW1vdW50IG9mIHNwYWNpbmcgYmV0d2VlbiBlbGVtZW50cy5cbi8vLyBjYW4gYmUgd2hhdGV2ZXIgdW5pdCB5b3UgbGlrZS5cbi8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5XG4vLy8gQGV4YW1wbGVcbi8vLyAgIHVsIHtcbi8vLyAgICAgQGluY2x1ZGUgdGV4dC1saXN0KCk7XG4vLy8gICB9XG4vLy8gICB1bCB7XG4vLy8gICAgIEBpbmNsdWRlIHRleHQtbGlzdCgnZGlzYycpO1xuLy8vICAgfVxuXG5AbWl4aW4gdGV4dC1saXN0KCRzdHlsZTogJ2Rpc2MnKSB7XG4gIG1hcmdpbjogLjMycmVtIC45NHJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuXG4gIGxpIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IHVucXVvdGUoJHN0eWxlKTtcbiAgICBwYWRkaW5nOiAuMTI1cmVtIDA7XG4gIH1cbn1cblxuLy8tIE1peGluOiBSZXNldCBMaXN0XG4vLy9cbi8vLyAgUmVzZXRzIHRoZSBtYXJnaW5zIHBhZGRpbmcsIGFuZCBzdHlsZXMgdG8gbGlzdC5cbi8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5XG4vLy8gQGV4YW1wbGVcbi8vLyAgIHVsIHtcbi8vLyAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdCgpO1xuLy8vICAgfVxuXG5AbWl4aW4gcmVzZXQtbGlzdCgpIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gIGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuXG4vLy0gTWl4aW46IEVsbGlwc2lzXG4vLy9cbi8vLyBUcnVuY2F0ZSB0ZXh0IHRvIHRoZSB3aWR0aCBvZiBpdHMgY29udGFpbmVyLi4uXG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkd2lkdGggWzEwMCVdIC0gV2lkdGggb2YgdGhlIGNvbnRhaW5lclxuLy8vIGNhbiBiZSB3aGF0ZXZlciB1bml0IHlvdSBsaWtlLlxuLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHlcbi8vLyBAZXhhbXBsZVxuLy8vICAgaDMge1xuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcygpO1xuLy8vICAgfVxuXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cblxuXG4vLy0gTWl4aW46IEZsdWlkIFR5cGVcbi8vL1xuLy8vIE1hZ2ljIGNhbGMgKyB2aCBjb21ibyB0byBhbGxvdyB0ZXh0IHRvIGJlIGZsdWlkIGJldHdlZW4gbWluaW11bVxuLy8vIGFuZCBtYXhpbXVtIGJyZWFrcG9pbnRzLlxuLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHlcbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkbWluLWZvbnQtc2l6ZSBbMTJweF0gLSBNaW5pbXVtIGZvbnQgc2l6ZVxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRtYXgtZm9udC1zaXplIFsyNHB4XSAtIE1heGltdW0gZm9udCBzaXplXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJGxvd2VyLXJhbmdlIFs0MjBweF0gLSBTdG9wIHNjYWxpbmcgZm9udCBzbWFsbGVyIGF0IHRoaXMgc2NyZWVuIHJlc29sdXRpb25cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkdXBwZXItcmFuZ2UgWzkwMHB4XSAtIFN0b3Agc2NhbGluZyBmb250IGxhcmdlciBhdCB0aGlzIHNjcmVlbiByZXNvbHV0aW9uXG4vLy8gQGV4YW1wbGVcbi8vLyAgIGgxIHtcbi8vLyAgICAgQGluY2x1ZGUgZmx1aWQtdHlwZSgyMHB4LCA0OHB4KTtcbi8vLyAgIH1cbi8vLyBAbGluayBodHRwOi8vY29kZXBlbi5pby9kYm94L3Blbi9tZWFNYmFcblxuQG1peGluIGZsdWlkLXR5cGUoJG1pbi1mb250LXNpemU6IDEycHgsICRtYXgtZm9udC1zaXplOiAyMXB4LCAkbG93ZXItcmFuZ2U6IDQyMHB4LCAkdXBwZXItcmFuZ2U6IDkwMHB4KSB7XG4gIGZvbnQtc2l6ZTogY2FsYygjeyRtaW4tZm9udC1zaXplfSArICN7KCgkbWF4LWZvbnQtc2l6ZSAvICgkbWF4LWZvbnQtc2l6ZSAqIDAgKyAxKSkgLSAoJG1pbi1mb250LXNpemUgLyAoJG1pbi1mb250LXNpemUgKiAwICsgMSkpKX0gKiAoKDEwMHZ3IC0gI3skbG93ZXItcmFuZ2V9KSAvICN7KCgkdXBwZXItcmFuZ2UgLyAoJHVwcGVyLXJhbmdlICogMCArIDEpKSAtICgkbG93ZXItcmFuZ2UgLyAoJGxvd2VyLXJhbmdlICogMCArIDEpKSl9KSk7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLXJhbmdlKSB7XG4gICAgZm9udC1zaXplOiAkbWluLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1yYW5nZSl7XG4gICAgZm9udC1zaXplOiAkbWF4LWZvbnQtc2l6ZTtcbiAgfVxufVxuIiwiXG4vLyBSZXNwb25zaXZlIGNvbnRhaW5lclxuLmNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNlbnRlcigkbWF4KTtcbiAgYmFja2dyb3VuZDogJHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleS10aW50O1xufVxuXG4uaW5uZXItY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2VudGVyKCRkZXNrdG9wLCA1JSk7XG4gIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgcGFkZGluZzogMCA0JTtcbiAgICAmLmlubmVyLWNvbnRhaW5lci1tb2JpbGUtYnJlYWsge1xuICAgICAgcGFkZGluZzogMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbmJvZHkge1xuICAmLmNhdGVnb3J5LW1hcmtldGluZywgJi5jYXRlZ29yeS1yZXNlYXJjaCwgJi5jYXRlZ29yeS1kZXNpZ24sICYuY2F0ZWdvcnktcHJvZHVjdCwgJi5jYXRlZ29yeS1jeCB7XG4gICAgLmJsb2ctcG9zdC1vdmVybGF5IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIH1cbn1cblxuXG4vLyBVdGlsaXR5IGNsYXNzZXNcbi5jZiB7XG4gIEBpbmNsdWRlIGNmKCk7XG59XG5cbi8vIEFkZGl0aW9uYWwgcmVzZXRzIC8gYmFzZSBzdHlsaW5nIC0gc2VlIGtuYXBzYWNrOlxuQGluY2x1ZGUgcmVzZXQtZWxlbWVudHMoKTtcblxuaW5wdXQgICB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3V0bGluZTogbm9uZTtcbn1cbnRhYmxlICAge1xuICAvLyBUdXJuIHRoaXMgb24gZm9yIGRlZmF1bHQgdGFibGUgc3R5bGluZ1xuICAvLyBAaW5jbHVkZSB0YWJsZSgpO1xufVxuY29kZSAgICB7IEBpbmNsdWRlIGNvZGUoKTsgfVxucHJlICAgICB7IEBpbmNsdWRlIHByZSgpIH1cbmhyICAgICAgeyBAaW5jbHVkZSBydWxlKCk7IH1cbm5hdiB1bCAgeyBAaW5jbHVkZSByZXNldC1saXN0KCk7IH1cbnVsLnRleHQgeyBAaW5jbHVkZSB0ZXh0LWxpc3QoKTt9XG5vbC50ZXh0IHsgQGluY2x1ZGUgdGV4dC1saXN0KCdkZWNpbWFsJyk7fVxuXG51bC50ZXh0IHVsLCB1bC50ZXh0IG9sLCBvbC50ZXh0IG9sLCBvbC50ZXh0IHVsIHsgbWFyZ2luOiAuM3JlbSAxcmVtIDA7fVxuXG5zdHJvbmcgeyBmb250LXdlaWdodDogYm9sZDsgfVxuXG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuI3dwYWRtaW5iYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBoaWRlIGF1dGhvciBpbmZvcm1hdGlvbiBmb3Igbm93XG5oNSNwb3N0LXRpdGxlLCAuYmxvZy1wb3N0LWF1dGhvciwgLmF1dGgtaW5mbyB7XG4gIC8vIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5ibG9nLWJyYiB7XG4gIC5ibG9nLXBvc3QtaGVybyB7XG4gICAgaGVpZ2h0OiA5OXZoO1xuICAgIHAge1xuICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBmb250LXNpemU6IHJlbSgyMnB4KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyNXB4KTtcbiAgICB9XG4gIH1cbiAgaGVhZGVyLCBmb290ZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDk5ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgaGVhZGVyIHtcbiAgICB0b3A6IDBweDtcbiAgfVxuXG4gIGZvb3RlciB7XG4gICAgYm90dG9tOiAwcHg7XG4gIH1cbiAgLmhlYWRlci1pdGVtIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuYm90dG9tLWhlYWRlciB7XG4gICAgaGVpZ2h0OiA3M3B4O1xuICB9XG59XG5cbi5nZW5lcmFsIHtcbiAgcGFkZGluZzogcmVtKDEyNXB4KSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC5idG4ge1xuICAgIG1hcmdpbi10b3A6IHJlbSg1MHB4KTtcbiAgICBwYWRkaW5nOiByZW0oMTBweCkgcmVtKDUwcHgpO1xuICB9XG59XG5cblxuLy9zb2NpYWwgcGx1Z2luXG5cbi5uY19zb2NpYWxQYW5lbFNpZGUge1xuICBkaXNwbGF5OiBub25lO1xuICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICB0b3A6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICBib3R0b206IDBweCAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHotaW5kZXg6IDkwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLm5jX3R3ZWV0Q29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbn1cblxuZGl2Lm5jX3NvY2lhbFBhbmVsIC5uY190d2VldENvbnRhaW5lciB7XG4gIG1hcmdpbjogMjBweCBhdXRvICFpbXBvcnRhbnQ7XG4gIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgIG1hcmdpbjogMHB4IDEwcHggIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4ubmNfc29jaWFsUGFuZWwgYSAuc3dfY291bnQge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5uY19zb2NpYWxQYW5lbCAuaWNvbkZpbGxlciB7XG4gIG1heC13aWR0aDogMzBweCAhaW1wb3J0YW50O1xufVxuXG4uc3cge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBtYXJnaW46IDRweCA4cHggIWltcG9ydGFudDtcbn1cblxuLnN3X3NoYXJlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uc3c6YmVmb3JlIHtcbiAgY29sb3I6ICRjb2FsO1xufVxuIiwiLy8gR2VuZXJhbCBTZXR0aW5nc1xuJGJhc2UtZm9udC1zaXplOiAxNnB4O1xuJGdsb2JhbC1ib3JkZXItcmFkaXVzOiAzcHg7XG5cbi8vIEJyZWFrcG9pbnRzIHRvIGJlIHVzZWQgd2l0aCBpbmNsdWRlLW1lZGlhXG4vLyBFeGFtcGxlIENzczogaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tLyNmZWF0dXJlc1xuXG4kbW9iaWxlOiAzMjBweDtcbiRtb2JpbGUtbDogNjQwcHg7XG4kdGFibGV0OiA3NjhweDtcbiR0YWJsZXQtbDogMTAyNHB4O1xuJGRlc2t0b3A6IDEyODBweDtcbiRtYXg6IDE5MjBweDtcblxuJGJyZWFrcG9pbnRzOiAoXG4gICdtb2JpbGUnOiAkbW9iaWxlLFxuICAnbW9iaWxlLWwnOiAkbW9iaWxlLWwsXG4gICd0YWJsZXQnOiAkdGFibGV0LFxuICAndGFibGV0LWwnOiAkdGFibGV0LWwsXG4gICdkZXNrdG9wJzogJGRlc2t0b3Bcbik7XG4iLCIvLyAtLS0tXG4vLyBMYXlvdXRcbi8vIC0tLS1cblxuLy8tIE1peGluOiBDbGVhcmZpeFxuLy8vXG4vLy8gSnVzdCB5b3VyIHN0YW5kYXJkIGNsZWFyZml4LlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vIEBleGFtcGxlXG4vLy8gICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG5cbi8vLSBBbGlhczogY2Zcbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vLyBAZXhhbXBsZVxuLy8vICAgQGluY2x1ZGUgY2YoKTtcbi8vLyBAYWxpYXMgY2xlYXJmaXhcblxuQG1peGluIGNmKCkge1xuICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xufVxuXG4vLy0gTWl4aW46IFJhdGlvIEJveFxuLy8vXG4vLy8gVGhpcyBzZXRzIGEgc3BlY2lmaWMgd2lkdGgvaGVpZ2h0IHJhdGlvLiBVc2VmdWwgb24gYmFja2dyb3VuZCBpbWFnZXMsXG4vLy8gaWZyYW1lcyBhbmQgWW91dHViZSBlbWJlZHMuXG4vLy9cbi8vLyAqKm5vdGUqKjogQW55IGNvbnRlbnQgaW5zaWRlIGByYXRpby1ib3hgIHdpbGwgbmVlZCB0byBiZSBwb3NpdGlvbmVkXG4vLy8gYWJzb2x1dGVseSBhcyBub3QgdG8gY2hhbmdlIHRoZSBhc3BlY3QtcmF0aW8uXG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkcmF0aW8gWzEgLyAxXSAtIEFzcGVjdCByYXRpbzogaGVpZ2h0IC8gd2lkdGhcbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIGZpZ3VyZSB7XG4vLy8gICAgIEBpbmNsdWRlIHJhdGlvKDE2IC8gOSk7XG4vLy8gICB9XG4vLy8gQGxpbmsgaHR0cDovL3d3dy5tYWRlbXlkYXkuZGUvY3NzLWhlaWdodC1lcXVhbHMtd2lkdGgtd2l0aC1wdXJlLWNzcy5odG1sXG5cbkBtaXhpbiByYXRpby1ib3goJHJhdGlvOiAxIC8gMSkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogKDEgLyAkcmF0aW8pICogMTAwJTtcbiAgfVxufVxuXG4vLy0gTWl4aW46IEZ1bGwgUGFnZVxuLy8vXG4vLy8gQ3JlYXRlIGEgcmVzcG9uc2l2ZSBmdWxsIHBhZ2Ugc2VjdGlvbiB3aXRoIGludGVsbGlnZW50IGRlZmF1bHRzLlxuLy8vIFJlc2V0cyBvbiBtb2JpbGUuXG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkaGVpZ2h0IFsxMDB2aF0gLSBQYWdlIGhlaWdodFxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRtYXgtaGVpZ2h0IFs4NTBweF0gLSBNYXggcGFnZSBoZWlnaHRcbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkbWluLWhlaWdodCBbNjAwcHhdIC0gTWluIHBhZ2UgaGVpZ2h0XG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJGJyZWFrcG9pbnQgWzc2OHB4XSAtIERpc2FibGUgYmVsb3cgdGhpcyBzaXplIG9yIHBhc3Ncbi8vLyAnbnVsbCcgdG8gbm90IHVzZSBhIGJyZWFrcG9pbnQuXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vIEBleGFtcGxlXG4vLy8gICBzZWN0aW9uIHtcbi8vLyAgICAgQGluY2x1ZGUgZnVsbC1wYWdlKCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIHNlY3Rpb24ge1xuLy8vICAgICBAaW5jbHVkZSBmdWxsLXBhZ2UoY2FsYygxMDB2aCAtIDkwcHgpLCA4MDBweCwgNTAwcHgpO1xuLy8vICAgfVxuLy8vIEBsaW5rIGh0dHA6Ly9jb2RlcGVuLmlvL2Rib3gvcGVuL095enJyVlxuXG5cbkBtaXhpbiBmdWxsLXBhZ2UoJGhlaWdodDogMTAwdmgsICRtYXgtaGVpZ2h0OiA4NTBweCwgJG1pbi1oZWlnaHQ6IDYwMHB4LCAkYnJlYWtwb2ludDogNzY4cHgpIHtcbiAgLy8gRGlzYWJsZSBiZWxvdyBzZXQgYnJlYWtwb2ludFxuICBAaWYgKCRicmVha3BvaW50KSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQpIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIG1heC1oZWlnaHQ6ICRtYXgtaGVpZ2h0O1xuICAgICAgbWluLWhlaWdodDogJG1pbi1oZWlnaHQ7XG4gICAgfVxuICAvLyBTaG93IGZvciBhbGwgc2l6ZXNcbiAgfSBAZWxzZSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIG1heC1oZWlnaHQ6ICRtYXgtaGVpZ2h0O1xuICAgIG1pbi1oZWlnaHQ6ICRtaW4taGVpZ2h0O1xuICB9XG59XG5cbi8vIE1peGluOiBWZXJ0aWNhbGx5IEFsaWduXG4vLyBDcm9zcyBicm93c2VyIHZlcnRpY2FsIGFsaWduLiBXb3JrcyBkb3duIHRvIElFOS5cbi8vXG4vLyBleC4gQGluY2x1ZGUgdmVydGljYWxseS1hbGlnbigpO1xuXG4vLy0gTWl4aW46IFZlcnRpY2FsbHkgQWxpZ25cbi8vL1xuLy8vIENyb3NzIGJyb3dzZXIgdmVydGljYWwgYWxpZ24uIFdvcmtzIGRvd24gdG8gSUU5LlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJHJlc2V0IFtOdWxsXSAtIFBhc3MgYGZhbHNlYCB0byByZXNldCBvdmVycmlkZSB0byBvcmlnaW5hbFxuLy8vIHZhbHVlc1xuLy8vIEBncm91cCBsYXlvdXRcbi8vLyBAZXhhbXBsZVxuLy8vICAgYXJ0aWNsZSB7XG4vLy8gICAgIEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ24oKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaDQge1xuLy8vICAgICBAaW5jbHVkZSB2ZXJ0aWNhbGx5LWFsaWduKGZhbHNlKTtcbi8vLyAgIH1cbi8vLyBAbGluayBodHRwOi8vemVyb3NpeHRocmVlLnNlL3ZlcnRpY2FsLWFsaWduLWFueXRoaW5nLXdpdGgtanVzdC0zLWxpbmVzLW9mLWNzcy9cblxuQG1peGluIHZlcnRpY2FsbHktYWxpZ24oJHJlc2V0IDogbnVsbCkge1xuICBAaWYgKCRyZXNldCAhPSBmYWxzZSkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH0gQGVsc2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbi8vLSBNaXhpbjogSG9yaXpvbnRhbCBSdWxlXG4vLy9cbi8vLyBDbGVhbiByZXNldCBmb3IgZGl2aWRlciBsaW5lcy5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRjb2xvciBbcmdiYSgjMDAwLCAuMTUpXSAtIExpbmUgY29sb3Jcbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkc3BhY2luZyBbMS41ZW1dIC0gTWFyZ2luIGFib3ZlIGFuZCBiZWxvdyB0aGUgbGluZVxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vIEBleGFtcGxlXG4vLy8gICBociB7XG4vLy8gICAgIEBpbmNsdWRlIHJ1bGUoKTtcbi8vLyAgIH1cbi8vLyAgIGhyLmJsdWUge1xuLy8vICAgICBAaW5jbHVkZSBydWxlKGJsdWUpO1xuLy8vICAgfVxuLy8vIEB0b2RvIC0gJGJvcmRlci13aWR0aCBwYXJhbVxuXG5AbWl4aW4gcnVsZSgkY29sb3I6IHJnYmEoIzAwMCwgLjE1KSwgJHNwYWNpbmc6IDEuNWVtKSB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcjtcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46ICRzcGFjaW5nIDA7XG59XG5cblxuLy8tIE1peGluOiBUYWJsZSBMYXlvdXRcbi8vL1xuLy8vIFNldHMgZWxlbWVudCBhbmQgaXRzIGNoaWxkcmVuIHRvIHVzZSB0YWJsZSBsYXlvdXQuIEFuIG9sZCBidXQgdmVyeSBwb3dlcmZ1bFxuLy8vIGNzcyBwcm9wZXJ0eSBmb3IgZmxleGlibGUgbGF5b3V0IGNoYWxsZW5nZXMuXG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkbGF5b3V0LXR5cGUgW2ZpeGVkXSAtIGBmaXhlZGAgb3IgYGF1dG9gXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIHVsIHtcbi8vLyAgICAgQGluY2x1ZGUgdGFibGUtbGF5b3V0KCk7XG4vLy8gICB9XG4vLy8gQGxpbmsgaHR0cDovL2NvZGVwZW4uaW8vZGJveC9wZW4vcHZyWlpWXG4vLy8gQGxpbmsgaHR0cDovL2NvbGludG9oLmNvbS9ibG9nL2Rpc3BsYXktdGFibGUtYW50aS1oZXJvXG5cbkBtaXhpbiB0YWJsZS1sYXlvdXQoJGxheW91dC10eXBlOiAnZml4ZWQnKSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB0YWJsZS1sYXlvdXQ6ICRsYXlvdXQtdHlwZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcblxuICA+ICoge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIH1cbn1cblxuLy8tIE1peGluOiBBYnNvbHV0ZSBDZW50ZXJcbi8vL1xuLy8vIEZhc3RlciBjZW50ZXJpbmcgd2hlbiB5b3VyIGVsZW1lbnQgaGFzIHRvIGJlIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICR3aWR0aCBbNTAlXSAtIFdpZHRoIG9mIHlvdXIgaXRlbVxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vIEBleGFtcGxlXG4vLy8gICBkaXYge1xuLy8vICAgICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXIoNDAwcHgpO1xuLy8vICAgfVxuLy8vIEBsaW5rIGh0dHA6Ly9jb2RlcGVuLmlvL2Rib3gvcGVuL3ZMZ3BxTFxuXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyKCR3aWR0aDogNTAlKSB7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAkd2lkdGg7XG59XG4iLCJAY2hhcnNldCAnVVRGLTgnO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC4yXG4vL1xuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuXG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjFcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGxvZygnLi4nKSB7fWAgb3IgYCRfOiBsb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBsb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBsb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBsb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBsb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKSA9PSAnLSc7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICBAZm9yICRpIGZyb20gaWYoJG1pbnVzLCAyLCAxKSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7O1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgU3BhY2VBcm91bmRPcGVyYXRvclxuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gLS0tLVxuLy8gUmVzZXRcbi8vIC0tLS1cblxuLy8tIE1peGluOiBSZXNldCBjc3Ncbi8vL1xuLy8vIE1leWVyIHJlc2V0LiBVc2UgdGhpcyB3aGVuIHlvdSB3YW50IHRvIG51a2UgYWxsIHN0eWxlcy4gT3RoZXJ3aXNlIG1heWJlIHVzZVxuLy8vIG5vcm1hbGl6ZSBtaXhpbi5cbi8vLyBAZ3JvdXAgcmVzdFxuLy8vIEBleGFtcGxlXG4vLy8gICBAaW5jbHVkZSByZXNldC1jc3MoKTtcblxuQG1peGluIHJlc2V0LWNzcyB7XG4gIGh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuICBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG4gIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbiAgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbiAgYiwgdSwgaSwgY2VudGVyLFxuICBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuICBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbiAgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG4gIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLFxuICBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsXG4gIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxuICB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICBcdG1hcmdpbjogMDtcbiAgXHRwYWRkaW5nOiAwO1xuICBcdGJvcmRlcjogMDtcbiAgXHRmb250LXNpemU6IDEwMCU7XG4gIFx0Zm9udDogaW5oZXJpdDtcbiAgXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cbiAgLyogSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2VycyAqL1xuICBhcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLFxuICBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24ge1xuICBcdGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIGJvZHkge1xuICBcdGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIG9sLCB1bCB7XG4gIFx0bGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuICBibG9ja3F1b3RlLCBxIHtcbiAgXHRxdW90ZXM6IG5vbmU7XG4gIH1cbiAgYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsXG4gIHE6YmVmb3JlLCBxOmFmdGVyIHtcbiAgXHRjb250ZW50OiAnJztcbiAgXHRjb250ZW50OiBub25lO1xuICB9XG4gIHRhYmxlIHtcbiAgXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBcdGJvcmRlci1zcGFjaW5nOiAwO1xuICB9XG59XG5cbi8vLSBNaXhpbjogTm9ybWFsaXplXG4vLy9cbi8vLyBOb3JtYWxpemUgY3NzLiBLZWVwcyBzb21lIGRlZmF1bHRzLiBDYWxsIHRoaXMgb24gdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0LlxuLy8vXG4vLy8gQGdyb3VwIHJlc2V0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIEBpbmNsdWRlIG5vcm1hbGl6ZSgpO1xuXG5AbWl4aW4gbm9ybWFsaXplIHtcbiAgICAvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4gIGh0bWwge1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgfVxuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBtYWluLCBtZW51LCBuYXYsIHNlY3Rpb24sIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgYXVkaW8sIGNhbnZhcywgcHJvZ3Jlc3MsIHZpZGVvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIFtoaWRkZW5dLHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICBhOmFjdGl2ZSwgYTpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgfVxuXG4gIGIsIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICBiLCBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICBkZm4ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgbWFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgfVxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIHN1YixcbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgaW1nIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBzdmc6bm90KDpyb290KSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFdlIHN0cmF5IGEgYml0IGhlcmUuXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIHByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICBjb2RlLGtiZCwgcHJlLHNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxuXG4gIGJ1dHRvbiwgIGlucHV0LCBvcHRncm91cCwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBidXR0b24ge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgYnV0dG9uLFxuICBzZWxlY3Qge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgYnV0dG9uLCBodG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIGlucHV0W3R5cGU9XCJyZXNldFwiXSwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgYnV0dG9uW2Rpc2FibGVkXSwgaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLCBpbnB1dDotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIH1cblxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIH1cblxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICB0ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICBvcHRncm91cCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuLy8gQWRkaXRpb25hbCBlc2V0cyB2aWEgc2N1dDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXZpZHRoZWNsYXJrL3NjdXQvXG5cbi8vIENsaWNrYWJsZSBmb3JtIGVsZW1lbnRzIHNob3VsZCBoYXZlIGEgcG9pbnRlci5cbkBtaXhpbiByZXNldC1wb2ludGVyIHtcbiAgYSxcbiAgbGFiZWwsXG4gIHNlbGVjdCxcbiAgb3B0aW9uLFxuICBidXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vLyBCb3JkZXIgYm94IGlzIGp1c3QgYmV0dGVyLlxuQG1peGluIHJlc2V0LWJvcmRlci1ib3gge1xuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgKixcbiAgKjpiZWZvcmUsXG4gICo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gUmVzZXQgdGhlIGZvcm1zXG5AbWl4aW4gcmVzZXQtZm9ybSB7XG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgfVxufVxuXG4vLyBSZXNldCBkZWZhdWx0IGJ1dHRvbiBzdHlsZXMsIHdoaWNoIGFyZSBuZXZlciB1c2VkLlxuQG1peGluIHJlc2V0LWJ1dHRvbiB7XG4gIGJ1dHRvbixcbiAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbiAgaW5wdXRbdHlwZT1cInJlc2V0XCJdIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBTb21lIHBhcmFncmFwaCBtYXJnaW5zIGp1c3QgZ2V0IGluIHRoZSB3YXkuXG5AbWl4aW4gcmVzZXQtcGFyYWdyYXBoIHtcbiAgcDpmaXJzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgcDpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gWW91IHdhbnQgdGhlc2UgZWxlbWVudHMgZmx1aWQsIHByb2JhYmx5LlxuQG1peGluIHJlc2V0LW1lZGlhIHtcbiAgaW1nLFxuICB2aWRlbyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW5zLlxuQG1peGluIHJlc2V0LWZpZ3VyZSB7XG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi8vIENhbGwgdGhlbSBhbGxcbkBtaXhpbiByZXNldC1lbGVtZW50cygpIHtcbiAgQGluY2x1ZGUgcmVzZXQtYm9yZGVyLWJveDtcbiAgQGluY2x1ZGUgcmVzZXQtYnV0dG9uO1xuICBAaW5jbHVkZSByZXNldC1maWd1cmU7XG4gIEBpbmNsdWRlIHJlc2V0LWZvcm07XG4gIEBpbmNsdWRlIHJlc2V0LW1lZGlhO1xuICBAaW5jbHVkZSByZXNldC1wYXJhZ3JhcGg7XG4gIEBpbmNsdWRlIHJlc2V0LXBvaW50ZXI7XG59XG4iLCIvLyAtLS0tLS1cbi8vIENvZGVcbi8vIC0tLS0tLVxuXG4vLy0gTWl4aW46IENvZGVcbi8vL1xuLy8vIFN0eWxlcyBpbmxpbmUgY29kZSBzbmlwcGV0cyBvbiB5b3VyIHBhZ2UuIERlZmF1bHRzIHRvIGEgYmVhdXRpZnVsIHJlZCwgYnV0XG4vLy8gY2FuIGJlIHBhc3NlZCBhbnkgY29sb3IuXG4vLy9cbi8vLyBAZ3JvdXAgY29kZVxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRjb2xvciBbI0RGNUMzM10gLSBUZXh0IENvbG9yXG4vLy8gQGV4YW1wbGVcbi8vLyAgIGNvZGUge1xuLy8vICAgICBAaW5jbHVkZSBjb2RlKGJsdWUpO1xuLy8vICAgfVxuXG5AbWl4aW4gY29kZSgkY29sb3IgOiAkY29sb3ItcHJpbWFyeSkge1xuICBwYWRkaW5nOiAzcHggNHB4O1xuICBjb2xvcjogJGNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRiYXNlLWdyYXksIDQ1JSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGJhc2UtZ3JheSwgMzUlKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgbW9ub3NwYWNlO1xufVxuXG4vLy0gTWl4aW46IFByZVxuLy8vXG4vLy8gU29tZSBkZWZhdWx0IHN0eWxlcyBmb3IgY29kZSBibG9ja3Mgb24geW91ciBwYWdlLiBUYWtlcyBub3QgYXJndW1lbnRzXG4vLy9cbi8vLyBAZ3JvdXAgY29kZVxuLy8vIEBleGFtcGxlXG4vLy8gICBwcmUge1xuLy8vICAgICBAaW5jbHVkZSBwcmUoKTtcbi8vLyAgIH1cblxuQG1peGluIHByZSgpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYmFzZS1ncmF5LCA0NSUpO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCRiYXNlLWdyYXksIDM1JSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBtb25vc3BhY2U7XG4gIGxpbmUtaGVpZ2h0OiAxNjAlO1xufVxuIiwiXG4vLyBGb250IHN0YWNrc1xuXG4kc2FuczogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiT3BlbiBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kc2VyaWY6IEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZiAhZGVmYXVsdDtcbiRtb25vc3BhY2U6ICBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cblxuLy8vIFNldHMgdGhlIGJhc2UgZm9udCBzaXplIGZvciByZW0gY2FsY3VsYXRpb25zO1xuLy8vXG4vLy8gQGdyb3VwIHNldHRpbmdzXG4vLy8gQHR5cGUgTnVtYmVyIChweClcbiRiYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuXG4vLyBDb2xvciBSZXNldHMgdmlhIE1hdGVyaWFsIGRlc2lnblxuLy8gaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWwjY29sb3ItY29sb3ItcGFsZXR0ZVxuJHJlZDogICAgICAgICAjRjQ0MzM2ICFkZWZhdWx0O1xuJHBpbms6ICAgICAgICAjRTkxRTYzICFkZWZhdWx0O1xuJHB1cnBsZTogICAgICAjOUMyN0IwICFkZWZhdWx0O1xuJGRlZXAtcHVycGxlOiAjNjczQUI3ICFkZWZhdWx0O1xuJGluZGlnbzogICAgICAjM0Y1MUI1ICFkZWZhdWx0O1xuJGJsdWU6ICAgICAgICAjMjE5NkYzICFkZWZhdWx0O1xuJGxpZ2h0LWJsdWU6ICAjMDNBOUY0ICFkZWZhdWx0O1xuJGN5YW46ICAgICAgICAjMDBCQ0Q0ICFkZWZhdWx0O1xuJHRlYWw6ICAgICAgICAjMDA5Njg4ICFkZWZhdWx0O1xuJGdyZWVuOiAgICAgICAjNENBRjUwICFkZWZhdWx0O1xuJGxpZ2h0LWdyZWVuOiAjOEJDMzRBICFkZWZhdWx0O1xuJGxpbWU6ICAgICAgICAjQ0REQzM5ICFkZWZhdWx0O1xuJG9yYW5nZTogICAgICAjRkY5ODAwICFkZWZhdWx0O1xuJGRlZXAtb3JhbmdlOiAjRkY1NzIyICFkZWZhdWx0O1xuJGJyb3duOiAgICAgICAjNzk1NTQ4ICFkZWZhdWx0O1xuJGdyZXk6ICAgICAgICAjOUU5RTlFICFkZWZhdWx0O1xuJGJsdWUtZ3JheTogICAjNjA3RDhCICFkZWZhdWx0O1xuXG5cbi8vLyBCYXNlIGdyYXkgLSB0d2VhayB0aGlzIHRvIGFkZCBzbGlnaHQgY29sb3IgdGludCB0byB0aGUgZ3JheXNjYWxlLCB0aGVuIGJhc2UgYWxsIGdyYXlzIG9mZiB0aGlzIGNvbG9yLiBJZiB5b3Ugd2FudCBmbGF0IGdyYXkgdXNlICM4ODg4ODhcbi8vL1xuLy8vIEBncm91cCBzZXR0aW5nc1xuLy8vIEB0eXBlIENvbG9yIChoZXgpXG4kYmFzZS1ncmF5OiAgICM3MDdGOEMgIWRlZmF1bHQ7XG5cbi8vIENvbG9ycyBieSB1c2VcbiRjb2xvci1wcmltYXJ5OiAkYmx1ZSAhZGVmYXVsdDtcbiIsIi8vIC0tLS1cbi8vIFV0aWxpdGllc1xuLy8gLS0tLVxuXG4vLy8gUG93ZXIgZnVuY3Rpb25cbi8vLyBAcGFyYW0ge051bWJlcn0gJHhcbi8vLyBAcGFyYW0ge051bWJlcn0gJG5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy8gQGdyb3VwIHV0aWxpdGllc1xuLy8vIEBzb3VyY2UgaHR0cHM6Ly9naXRodWIuY29tL2FkYW1ib20vU2Fzcy1NYXRoL2Jsb2IvbWFzdGVyL21hdGguc2NzcyBTYXNzLU1hdGhcbkBmdW5jdGlvbiBwb3coJHgsICRuKSB7XG4gICRyZXN1bHQ6IDE7XG5cbiAgQGlmICRuID49IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG4ge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogJHg7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAgIEBmb3IgJGkgZnJvbSAkbiB0byAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAvICR4O1xuICAgICAgfVxuICAgIH1cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy9cbi8vLyBDYWxjdWxhdGVzIGFuZCByZXR1cm5zIHRoZSByZW0gdmFsdWUgYmFzZWQgb24gcHggaW5wdXQuIERlZmF1bHQgYmFzZSBmb250XG4vLy8gc2l6ZSBpcyAxNnB4LCBidXQgY2FuIGJlIGNoYW5nZWQgd2l0aCBhIGdsb2JhbCBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRzaXplIC0gU2l6ZSBpbiBwaXhlbHNcbi8vL1xuLy8vIEBncm91cCB1dGlsaXRpZXNcbi8vLyBAZXhhbXBsZVxuLy8vICAgZm9udC1zaXplOiByZW0oMzBweCk7XG4vLy8gICAvLyByZXR1cm5zIGZvbnQtc2l6ZTogMS44NzVyZW07XG5cbkBmdW5jdGlvbiByZW0oJHNpemUpIHtcbiAgJHJlbS1zaXplOiAkc2l6ZSAvICRiYXNlLWZvbnQtc2l6ZTtcbiAgQHJldHVybiAjeyRyZW0tc2l6ZX1yZW07XG59XG5cbi8vLSBGdW5jdGlvbjogU3RyaXAgVW5pdFxuLy8vXG4vLy8gU29tZXRpbWVzIGl0J3MganVzdCBlYXNpZXIgdG8gZG8gY2FsY3VsYXRpb25zIHdpdGggdGhlIHVuaXQgaXMgc3RyaXBwZWQuXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bWJlciAtIE51bWJlciB0aGF0IGhhcyBhIHVuaXRcbi8vL1xuLy8vIEBncm91cCB1dGlsaXRpZXNcbi8vLyBAZXhhbXBsZVxuLy8vICAgJGxlbmd0aDogNDJweDtcbi8vLyAgICR2YWx1ZTogc3RyaXAtdW5pdCgkbGVuZ3RoKTtcbi8vLyAgIC8vIC0+IDQyXG4vLy8gQGxpbmsgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9zYXNzL3N0cmlwLXVuaXQtZnVuY3Rpb24vXG5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW1iZXIpIHtcbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgPT0gJ251bWJlcicgYW5kIG5vdCB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgQHJldHVybiAkbnVtYmVyIC8gKCRudW1iZXIgKiAwICsgMSk7XG4gIH1cbiAgQHJldHVybiAkbnVtYmVyO1xufVxuXG4vLy0gTWl4aW46IERlYnVnXG4vLy9cbi8vLyBEZWJ1Z2dpbmcgdG9vbCAtIGFkZHMgYSBib3JkZXIgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCwgaXRzIGNoaWxkcmVuLFxuLy8vIGdyYW5kY2hpbGRyZW4sIGV0YyBzbyB5b3UgY2FuIHNlZSB3aGF0J3MgdXAg4oCTIGdyZWF0IGZvciBwcmVjaXNlIGxheW91dFxuLy8vIHR3ZWFrcy4gIEl0IHdpbGwgYWxzbyBhZGQgZmxhZ3MgaWYgeW91IG1hZGUgbWlzdGFrZXMgbGlrZSBwdXQgaW4gaW5saW5lXG4vLy8gc3R5bGVzLCBmb3Jnb3QgYW4gYWx0IG9uIGFuIGltYWdlLCBsZWZ0IHRoZSBhbHQgYmxhbmssIGV0Yy4gTm90IHRvIGJlIHVzZWRcbi8vLyBpbiBwcm9kdWN0aW9uLCBvYnZpb3VzbHkuXG4vLy9cbi8vLyBAZ3JvdXAgdXRpbGl0aWVzXG4vLy8gQGV4YW1wbGVcbi8vLyAgIC5jb250YWluZXItZWxtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZGVidWcoKTtcbi8vLyAgIH1cbi8vLyBAbGluayBodHRwOi8vY29kZXBlbi5pby9kYm94L3Blbi9HSlp6WW8/ZWRpdG9ycz0xMTBcblxuQG1peGluIGRlYnVnKCkgez4gKiB7ICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjt9ID4gKiA+ICoge2JvcmRlcjogMXB4IHNvbGlkIHRvbWF0bzsgfSA+ICogPiAqID4gKiB7IGJvcmRlcjogMXB4IHNvbGlkIERlZXBTa3lCbHVlOyB9ID4gKiA+ICogPiAqID4gKiB7IGJvcmRlcjogMXB4IHNvbGlkIERlZXBQaW5rOyB9ID4gKiA+ICogPiAqID4gKiA+ICogeyBib3JkZXI6IDFweCBzb2xpZCBNZWRpdW1TbGF0ZUJsdWU7fX1cblxuLy8gTWl4aW46IFRyaWFuZ2xlXG4vL1xuLy8gTWFrZXMgYSBsaXR0bGUgY3NzIHRyaWFuZ2xlIGZvciB5b3UuIFBhc3MgaXQgYSBkaXJlY3Rpb24gKHVwLCBkb3duLCBsZWZ0LFxuLy8gcmlnaHQpLCBzaXplIChpbiBwaXhlbHMpLCBhbmQgYSBjb2xvci5cbi8vXG4vLyBleC4gQGluY2x1ZGUgdHJpYW5nbGUoKVxuLy8gZXguIEBpbmNsdWRlIHRyaWFuZ2xlKCdkb3duJywgMTVweCwgYmx1ZSlcblxuLy8tIE1peGluOiBUcmlhbmdsZVxuLy8vXG4vLy8gTWFrZXMgYSBsaXR0bGUgY3NzIHRyaWFuZ2xlIGZvciB5b3UuXG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkZGlyZWN0aW9uIFt1cF0gLSBEaXJlY3Rpb24gb2YgdGhlIHRyaWFuZ2xlOiB1cCwgZG93biBsZWZ0XG4vLy8gb3IgcmlnaHRcbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkc2l6ZSBbMTBweF0gLSBTaXplIG9mIHRoZSB0cmlhbmdsZVxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRjb2xvciBbIzAwMF0gLSBDb2xvciBvZiB0aGUgdHJpYW5nbGVcbi8vL1xuLy8vIEBncm91cCB1dGlsaXRpZXNcbi8vLyBAZXhhbXBsZVxuLy8vICAgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgICBAaW5jbHVkZSB0cmlhbmdsZSgpO1xuLy8vICAgfVxuLy8vICAgc3BhbiB7XG4vLy8gICAgIEBpbmNsdWRlIHRyaWFuZ2xlKHJpZ2h0LCA4cHgsIHJlZCk7XG4vLy8gICB9XG5cbkBtaXhpbiB0cmlhbmdsZSgkZGlyZWN0aW9uOid1cCcsICRzaXplOjEwcHgsICRjb2xvcjojMDAwKSB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gJ3VwJyB7XG4gICAgYm9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgJGNvbG9yO1xuICAgIGJvcmRlci1sZWZ0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gJ2Rvd24nIHtcbiAgICBib3JkZXItbGVmdDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCAkY29sb3I7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSAnbGVmdCcge1xuICAgIGJvcmRlci1ib3R0b206ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgJGNvbG9yO1xuICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gJ3JpZ2h0JyB7XG4gICAgYm9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgICBib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gUmV0dXJucyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgIGFzIGEgZmxvYXQgKGJldHdlZW4gMCBhbmQgMSlcbi8vLyAxIGlzIHB1cmUgd2hpdGUsIDAgaXMgcHVyZSBibGFja1xuLy8vIEBncm91cCB1dGlsaXRpZXNcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvclxuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vLyBAbGluayBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmIFJlZmVyZW5jZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhZGVsXG5cbkBmdW5jdGlvbiBsdW1pbmFuY2UoJGNvbG9yKSB7XG4gICRjb2xvcnM6IChcbiAgICAncmVkJzogcmVkKCRjb2xvciksXG4gICAgJ2dyZWVuJzogZ3JlZW4oJGNvbG9yKSxcbiAgICAnYmx1ZSc6IGJsdWUoJGNvbG9yKVxuICApO1xuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGNvbG9ycyB7XG4gICAgJGFkanVzdGVkOiAwO1xuICAgICR2YWx1ZTogJHZhbHVlIC8gMjU1O1xuXG4gICAgQGlmICR2YWx1ZSA8IDAuMDM5Mjgge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgLyAxMi45MjtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR2YWx1ZTogKCR2YWx1ZSArIC4wNTUpIC8gMS4wNTU7XG4gICAgICAkdmFsdWU6IHBvdygkdmFsdWUsIDIpO1xuICAgIH1cblxuICAgICRjb2xvcnM6IG1hcC1tZXJnZSgkY29sb3JzLCAoJG5hbWU6ICR2YWx1ZSkpO1xuICB9XG5cbiAgQHJldHVybiAobWFwLWdldCgkY29sb3JzLCAncmVkJykgKiAuMjEyNikgKyAobWFwLWdldCgkY29sb3JzLCAnZ3JlZW4nKSAqIC43MTUyKSArIChtYXAtZ2V0KCRjb2xvcnMsICdibHVlJykgKiAuMDcyMik7XG59XG4iLCIvLyBTbGljZSBzeXN0ZW1cbi5zbGljZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDsgLy8gbWFrZXMgaXRlbXMgZXF1YWwgc2l6ZXMgYXV0b21hdGljYWxseVxuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uc2xpY2UtaXRlbSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufSIsImEuYnRuLFxuYnV0dG9uLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0ge1xuICBAaW5jbHVkZSBidXR0b24oJGJsb2ctZ3JlZW4pO1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdCYuYnRuLXdoaXRlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAkd2hpdGU7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkd2hpdGU7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0fVxuXHR9XG4gICYuYnRuLW9yYW5nZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAkd2hpdGU7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkd2hpdGU7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkb3JhbmdlLXRpbnQ7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdH1cblx0fVxufVxuIiwiLy8gLS0tLVxuLy8gVWlcbi8vIC0tLS1cblxuLy8tIE1peGluOiBCdXR0b25cbi8vL1xuLy8vIEEgc3RhcnRpbmcgcGxhY2UgZm9yIGJ1dHRvbiBzdHlsaW5nLlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJGJhY2tncm91bmQtY29sb3IgWyMwMEJGRkZdIC0gQnV0dG9uIGJhY2tncm91bmQgY29sb3Jcbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkY29sb3IgWyNGRkZdIC0gQnV0dG9uIHRleHQgY29sb3Jcbi8vL1xuLy8vIEBncm91cCB1aVxuLy8vIEBleGFtcGxlXG4vLy8gICBhLmJ0biB7XG4vLy8gICAgIEBpbmNsdWRlIGJ1dHRvbigpO1xuLy8vICAgfVxuLy8vICAgYS55ZWxsb3ctYnV0dG9uIHtcbi8vLyAgICAgQGluY2x1ZGUgYnV0dG9uKHllbGxvdywgYmxhY2spO1xuLy8vICAgfVxuXG5AbWl4aW4gYnV0dG9uKCRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeSwgJGNvbG9yOiAjRkZGKSB7XG4gICRnbG9iYWwtYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuICBwYWRkaW5nOiAxMHB4IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtYm9yZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIuYmxvZy1oZXJvLWNhcm91c2VsIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZDogIzE5ODRiYztcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXQtbFwiKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC8qIHRlc3QgKi9cblx0LnNsaWRlIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0aGVpZ2h0OiA0M3ZoO1xuICAgICAgICBtaW4taGVpZ2h0OiAzNTBweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdGgyLCBoNSwgcCwgYSB7IGNvbG9yOiAkd2hpdGU7IH1cblx0XHRoMiB7IGZvbnQtd2VpZ2h0OiA1MDA7IH1cblx0XHRoNSB7XG5cdFx0XHR3aWR0aDogOTAlO1xuXHRcdFx0bGluZS1oZWlnaHQ6IHJlbSgzMnB4KTtcblx0XHRcdGZvbnQtZmFtaWx5OiAkcHJveGltYS1ub3ZhO1xuXHRcdH1cblx0XHRhIHsgbWFyZ2luLXRvcDogcmVtKDEwcHgpOyB9XG5cdFx0aW1nIHtcblx0XHRcdEBpbmNsdWRlIGNvbCgxLzQpO1xuXHRcdFx0d2lkdGg6IDI0LjUlO1xuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0LWxcIikge1xuXHRcdFx0XHRAaW5jbHVkZSBjb2woMS8zKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcblx0XHRcdCY6Zmlyc3QtY2hpbGQgeyBkaXNwbGF5OiBub25lOyB9XG5cdFx0fVxuXHR9XG5cblx0LnNsaWRlLWN0YSwgLnNsaWRlLWFydGljbGUgeyBAaW5jbHVkZSB2ZXJ0aWNhbGx5LWFsaWduKCk7IH1cblx0LnNsaWNrLWRvdHMge1xuXHRcdGJvdHRvbTogcmVtKDI1cHgpO1xuXHRcdGxpIHtcblx0XHRcdG1hcmdpbjogMCByZW0oMTBweCk7XG5cdFx0XHQmLnNsaWNrLWFjdGl2ZSB7XG5cdFx0XHRcdGJ1dHRvbjpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0YnV0dG9uOmJlZm9yZSB7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0Zm9udC1zaXplOiByZW0oMzBweCk7XG5cdFx0fVxuXHR9XG59XG5cbmlucHV0LmJsb2ctZW1haWwge1xuXHRAaW5jbHVkZSBzcGFuKDMvNSk7XG5cdG1heC13aWR0aDogcmVtKDMwMHB4KTtcblx0cGFkZGluZzogcmVtKDEwcHgpIHJlbSgyMnB4KTtcblx0Ym9yZGVyOiByZW0oMHB4KTtcblx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcblx0XHRtYXgtd2lkdGg6IGluaXRpYWw7XG5cdFx0cGFkZGluZzogcmVtKDExcHgpIHJlbSgyMnB4KTtcblx0fVxuXHRAaW5jbHVkZSBtZWRpYSgnPDc3MnB4Jykge1xuXHRcdEBpbmNsdWRlIHNwYW4oMS8yKTtcblx0XHRoZWlnaHQ6IHJlbSg0MnB4KTtcblx0fVxufVxuXG5idXR0b24uYmxvZy1zdWJtaXQge1xuXHRAaW5jbHVkZSBzcGFuKDIvNSk7XG5cdHBhZGRpbmc6IHJlbSgxMnB4KSByZW0oMjJweCk7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXHRAaW5jbHVkZSBtZWRpYSgnPDc3MnB4Jykge1xuXHRcdEBpbmNsdWRlIHNwYW4oMS8yKTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0aGVpZ2h0OiByZW0oNDJweCk7XG5cdH1cbn1cblxuXG4uaGVyby1vdmVybGF5IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJhY2tncm91bmQ6IHJnYmEoJGhlcm8tb3ZlcmxheSwgLjM4KTtcbn1cblxuXG4uc2xpY2stc2xpZGVyIHtcblx0bWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4uc2xpZGUtYXJ0aWNsZSB7XG5cdHotaW5kZXg6IDM7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0aW5wdXQsIGltZyB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLnNsaWRlLWN0YSB7XG5cdC5zbGlkZS1jZW50ZXIge1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdEBpbmNsdWRlIGNmKCk7XG5cdH1cblx0LnNsaWRlLXNwbGl0IHtcblx0XHRAaW5jbHVkZSBjb2woMy80KTtcblx0XHRtYXgtd2lkdGg6IHJlbSg3MzBweCk7XG5cdFx0cGFkZGluZy1sZWZ0OiA0JTtcblx0XHRwYWRkaW5nLXRvcDogMDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldC1sXCIpIHtcblx0XHRcdEBpbmNsdWRlIGNvbCgyLzMpO1xuXHRcdH1cblx0XHQuYmxvZy1lbWFpbCB7XG5cdFx0XHRoZWlnaHQ6IDQycHg7XG5cdFx0XHRwYWRkaW5nOiAxMHB4IDE1cHg7XG5cdFx0fVxuXHR9XG59XG5cbi5tb2JpbGUtc2lnbnVwLXNsaWRlIHtcblx0QGluY2x1ZGUgY2YoKTtcblx0ZGlzcGxheTogbm9uZTtcblx0cGFkZGluZzogcmVtKDI1cHgpIDA7XG5cdGJhY2tncm91bmQ6ICRjb2FsO1xuXHRoNSB7XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1zaXplOiByZW0oMTdweCk7XG5cdFx0Zm9udC1mYW1pbHk6ICRwcm94aW1hLW5vdmE7XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi50aGFua3NzdHVmZiB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdGg1IHtcbiAgXHRmb250LXdlaWdodDogYm9sZDtcblx0XHRjb2xvcjogd2hpdGU7XG4gIH1cblxuICBwIHtcbiAgXHRtYXJnaW46IHJlbSgyNXB4KSAwO1xuICBcdGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xuXHRcdGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuIiwiLmJsb2ctbmF2IHtcblx0cGFkZGluZzogcmVtKDEwcHgpIDA7XG5cdGJhY2tncm91bmQ6ICRncmV5LWxpZ2h0O1xuXHRkaXNwbGF5OiBibG9jaztcblxuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5ibG9nLWZpbHRlcnMge1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR3aWR0aDogMTAwJTtcblxuXHRsaSB7XG5cdFx0QGluY2x1ZGUgY2YoKTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6IDAgMi41JTtcblx0XHRib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAkZ3JleS10aW50O1xuXG5cdFx0JjpsYXN0LWNoaWxkIHsgYm9yZGVyLXJpZ2h0OiBub25lOyB9XG5cblx0XHRzcGFuIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRAaW5jbHVkZSB0cmlhbmdsZShkb3duLCAxMHB4LCAkZ3JleS1saWdodCk7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRib3R0b206IC0yMHB4O1xuXHRcdFx0bGVmdDogNDAlO1xuXG5cdFx0XHQmLmlzLWFjdGl2ZSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0Zm9udC1zaXplOiByZW0oMTZweCk7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblxuXHRcdFx0Ji5pcy1hY3RpdmUge1xuXHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDBweDtcblxuXHRcdFx0YSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwYWRkaW5nOiByZW0oMThweCkgNSU7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkd2hpdGU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIuYmxvZy1mb290ZXIge1xuXHR3aWR0aDogMTAwJTtcblx0ZGlzcGxheTogdGFibGU7XG5cdG1hcmdpbi1ib3R0b206IHJlbSgyNXB4KTtcblxuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLmJsb2ctZm9vdGVyLWl0ZW0ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdG92ZXJmbG93OiBhdXRvO1xuICB6b29tOiAxO1xuXG5cdCY6Zmlyc3QtY2hpbGQge1xuXHRcdHdpZHRoOiA2MCU7XG5cdFx0LmJsb2ctZm9vdGVyLWl0ZW0taW5uZXIge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiByZW0oMjVweCk7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleS1saWdodDtcblx0XHRcdGg1IHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDEwcHgpO1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdH1cblx0XHRcdHVsIHtcblx0XHRcdFx0bWFyZ2luOiByZW0oMTBweCkgMCByZW0oMjVweCkgMDtcblx0XHRcdH1cblx0XHRcdGxpIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdFx0XHRwYWRkaW5nOiAwIHJlbSgxMHB4KSByZW0oMTBweCkgMDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR9XG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0Y29sb3I6ICRibG9nLWdyZWVuO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiByZW0oNXB4KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0cCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xuXHRcdFx0fVxuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiByZW0oNXB4KTtcblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhKCc8bW9iaWxlLWwnKSB7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0QGluY2x1ZGUgc3BhbigxLzEpO1xuXHRcdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgxMHB4KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCY6bGFzdC1jaGlsZCB7XG5cdFx0d2lkdGg6IDQwJTtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQuYmxvZy1mb290ZXItaXRlbS1pbm5lciB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0JjpsYXN0LWNoaWxkIHsgbWluLWhlaWdodDogcmVtKDIyNXB4KTsgfVxuXG5cdFx0LmJsb2ctZm9vdGVyLWl0ZW0taW5uZXIge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG5cbi5ibG9nLWZvb3Rlci1pdGVtLWlubmVyIHtcblx0cGFkZGluZzogcmVtKDIwcHgpO1xufVxuXG5cbi5ibG9nLWZvb3Rlci1pdGVtLWJvdHRvbSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiByZW0oMTBweCk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cGFkZGluZzogMCAzJTs7XG5cblx0aDUge1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE4cHgpO1xuXHRcdG1hcmdpbi1ib3RvbTogcmVtKDhweCk7XG5cdH1cblxuXHRoNSwgLmJsb2ctZm9vdGVyLXRpdGxlIHtcblx0XHQvLyBwYWRkaW5nLXJpZ2h0OiByZW0oMjVweCk7XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRmb250LXdlaWdodDogNTAwO1xuXHR9XG59XG5cbi5ibG9nLWZvb3Rlci10aXRsZSB7XG5cdGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xufVxuIiwiLmJsb2ctbW9kYWwge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk4O1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMHZoO1xuXHRiYWNrZ3JvdW5kOiByZ2JhKCRjb2FsLCAuNyk7XG59XG5cbi5ibG9nLW1vZGFsLXNpZ251cCB7XG5cdEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ24oKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiA5OTtcblx0bWF4LXdpZHRoOiByZW0oNDUwcHgpO1xuXHR3aWR0aDogODAlO1xuXHRtYXJnaW46IDAgYXV0bztcblx0cGFkZGluZzogcmVtKDUwcHgpO1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Ym9yZGVyLXJhZGl1czogcmVtKDVweCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCAwIHJnYmEoMCwwLDAsMC4yKSwwIDZweCAyMHB4IDAgcmdiYSgwLDAsMCwwLjE5KSAhaW1wb3J0YW50O1xuICBoNSB7XG4gIFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Zm9udC1mYW1pbHk6ICRwcm94aW1hLW5vdmE7XG4gIH1cbiAgcCB7XG4gIFx0bWFyZ2luOiByZW0oMjVweCkgMDtcbiAgXHRmb250LXNpemU6IHJlbSgxNHB4KTtcbiAgfVxuICBzcGFuIHtcbiAgXHRmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIGlucHV0LCBidXR0b24ge1xuICBcdHdpZHRoOiA4MCU7XG4gIFx0bWF4LXdpZHRoOiByZW0oMjc1cHgpO1xuXHRcdGZsb2F0OiBub25lO1xuICBcdCZbdHlwZT1cImVtYWlsXCJdIHtcbiAgXHRcdG1hcmdpbi1ib3R0b206IHJlbSgxMHB4KTtcbiAgXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuICBcdFx0cGFkZGluZzogcmVtKDhweCk7XG4gIFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRib3JkZXI6IDJweCBpbnNldDtcbiAgXHR9XG4gIH1cblxuXHQudGhhbmtzc3R1ZmYge1xuXHRcdGg1LCBwIHtcblx0XHRcdGNvbG9yOiAkY29hbDtcblx0XHR9XG5cdH1cbn1cblxuLmJsb2ctbW9kYWwtY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IHJlbSgyNXB4KTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXHRzdmcge1xuXHRcdHdpZHRoOiByZW0oMTJweCk7XG5cdFx0aGVpZ2h0OiByZW0oMTJweCk7XG4gICAgZmlsbDogJGNvYWw7XG5cdH1cbn1cbiIsIi5ibG9nLXBvc3QtZm9vdGVyLWN0YSwgLmJsb2ctcG9zdC1hdXRob3IsIC5yZWxhdGVkLXRpdGxlICB7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLmJsb2ctcG9zdC1mb290ZXItY3RhLCAuYmxvZy1wb3N0LWF1dGhvciB7XG5cdG1hcmdpbjogcmVtKDI1cHgpIGF1dG87XG59XG5cbi5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0aDUge1xuXHRcdG1hcmdpbi1ib3R0b206IDBweDtcblx0fVxuXHRwIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oMjVweCk7XG5cdH1cblxuXHRmb3JtIHtcblx0XHRwYWRkaW5nOiAwIDEyJTtcblx0XHRAaW5jbHVkZSBjZigpO1xuXHR9XG5cblx0aW5wdXRbdHlwZT1cImVtYWlsXCJdIHtcbiAgXHRwYWRkaW5nOiByZW0oOHB4KTtcbiAgXHRvdXRsaW5lOiBub25lO1xuICBcdGJvcmRlcjogbm9uZTtcbiAgXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGhlaWdodDogcmVtKDQwcHgpO1xuXHR9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQtbCcpIHtcblx0XHRpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuXHQgIFx0QGluY2x1ZGUgc3BhbigzLzUpO1xuXHQgIH1cblxuXHQgIGJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcblx0ICBcdEBpbmNsdWRlIHNwYW4oMi81KTtcblx0ICB9XG4gIH1cblxuICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQtbCcpIHtcblx0XHRmb3JtIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuICBcdGlucHV0W3R5cGU9XCJlbWFpbFwiXSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKDEvMSk7XG4gIFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTBweCk7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIFx0fVxuXG5cdFx0YnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuXHQgIFx0QGluY2x1ZGUgc3BhbigxLzEpO1xuXHQgIH1cbiAgfVxufVxuXG4uY3RhLXNpZ251cCB7XG5cdCYubGluay1hY3RpdmUsICYuZG93bmxvYWQtYWN0aXZlIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblx0Ji5zaWdudXAtYWN0aXZlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uY3RhLWxpbmsge1xuXHQmLmxpbmstYWN0aXZlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uY3RhLWRvd25sb2FkIHtcblx0Ji5kb3dubG9hZC1hY3RpdmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5ibG9nLXBvc3QtZm9vdGVyLWN0YSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogYXV0bztcbiAgem9vbTogMTtcbiAgYmFja2dyb3VuZDogJGNvYWw7XG4gIHBhZGRpbmc6IDYlIDglO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0LmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IHtcblx0XHR3aWR0aDogNjUlO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHBhZGRpbmctcmlnaHQ6IHJlbSg1MHB4KTtcblx0fVxuXG5cdGg1LCBwIHtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHR9XG5cblx0aDUge1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcblx0fVxuXG5cdGEge1xuXHRcdG1hcmdpbi10b3A6IHJlbSgyNXB4KTtcblx0fVxuXG5cdGltZyB7XG5cdFx0d2lkdGg6IDM1JTtcblx0XHRmbG9hdDogbGVmdDtcblx0fVxuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHRwYWRkaW5nOiAxNSU7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0LmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogMHB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDI1cHgpO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0LmJ0biB7XG5cdFx0XHRcdCRhcnJvdy1zaXplOiAxOHB4O1xuXG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0XHRib3R0b206IHJlbSgtNDVweCk7XG5cdFx0XHRcdHJpZ2h0OiAwcHg7XG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiAjNzBhMjNiO1xuXHRcdFx0XHRcdGJvcmRlci1yaWdodC1jb2xvcjogIzcwYTIzYjtcblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiAjNzBhMjNiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdGJvcmRlci10b3AtY29sb3I6ICM3MGEyM2I7XG5cdFx0XHRcdFx0fVxuXHRcdFx0ICB9XG5cdFx0XHRcdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdFx0ICBjb250ZW50OiAnJztcblx0XHRcdFx0ICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdCAgbGVmdDogLTE4cHg7XG5cdFx0XHRcdCAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0ICB0b3A6IDA7XG5cdFx0XHRcdFx0QGluY2x1ZGUgdHJpYW5nbGUoJ2Rvd24nLCAkYXJyb3ctc2l6ZSwgJGJsb2ctZ3JlZW4pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRib3R0b206IDBweDtcblx0XHRcdFx0XHRAaW5jbHVkZSB0cmlhbmdsZSgndXAnLCAkYXJyb3ctc2l6ZSwgJGJsb2ctZ3JlZW4pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGltZyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdH1cblxuXHR9XG59XG5cbi5ibG9nLXBvc3QtZm9vdGVyLWN0YTphZnRlciB7XG4gICRhcnJvdy1zaXplOiA0MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDA7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gKCN7JGFycm93LXNpemV9IC8gMikpO1xuICBAaW5jbHVkZSB0cmlhbmdsZSgnZG93bicsICRhcnJvdy1zaXplLCAjZmZmKTtcbiAgdHJhbnNmb3JtOiBza2V3WCg1NWRlZyk7XG59XG5cbi5ibG9nLXBvc3QtYXV0aG9yIHtcblx0aW1nIHtcblx0XHRtYXgtaGVpZ2h0OiByZW0oMTI1cHgpO1xuXHRcdG1hcmdpbjogMCByZW0oMjVweCkgMCByZW0oNTBweCk7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdHRyYW5zaXRpb246IGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjNzO1xuXHRcdCY6aG92ZXIgeyBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2JhKDAsMCwwLDAuMTYpLDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLDAuMTIpOyB9XG5cdH1cblx0cCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0b3ZlcmZsb3c6IGF1dG87XG5cdFx0cGFkZGluZzogcmVtKDIycHgpIDA7XG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHR9XG5cdHNwYW4ge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR9XG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRwIHtcblx0XHRcdHdpZHRoOiA5MCU7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cdFx0aW1nIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4ucmVsYXRlZC10aXRsZSB7XG5cdGhlaWdodDogNDBweDtcblx0cGFkZGluZzogcmVtKDE1cHgpIDAgO1xuXHRtYXJnaW4tYm90dG9tOiByZW0oMjVweCkgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDAuNTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBzcGFuIHtcbiAgXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGZvbnQtd2VpZ2h0OiA1MDA7XG4gIFx0JjpiZWZvcmUsICY6YWZ0ZXIge1xuICBcdFx0Y29udGVudDogXCJcIjtcblx0XHQgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHQgIGhlaWdodDogNXB4O1xuXHRcdCAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRncmV5LWxpZ2h0O1xuXHRcdCAgdG9wOiAwO1xuXHRcdCAgd2lkdGg6IDgwMHB4O1xuICBcdH1cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRyaWdodDogMTAwJTtcblx0XHRcdG1hcmdpbi1yaWdodDogMTVweDtcblx0XHR9XG5cdFx0JjphZnRlciB7XG5cdFx0XHRsZWZ0OiAxMDAlO1xuXHRcdCAgbWFyZ2luLWxlZnQ6IDE1cHg7XG5cdFx0fVxuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICBcdHNwYW4ge1xuICBcdFx0JjpiZWZvcmUsICY6YWZ0ZXIge1xuICBcdFx0XHRib3JkZXItd2lkdGg6IDNweDtcbiAgXHRcdH1cbiAgXHR9XG4gIH1cbn1cbiIsIi5ibG9nLW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXHRcdHotaW5kZXg6IDEwMDtcblx0XHRiYWNrZ3JvdW5kOiAjRjBGMUYxO1xuXG5cdFx0Ji5pcy1hY3RpdmUge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHRcdFx0Lm5hdi1jb250YWluZXIge1xuICAgICAgICBsZWZ0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi5ibG9nLW1vYmlsZS1maWx0ZXIge1xuXHRkaXNwbGF5OiBub25lO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHBhZGRpbmctdG9wOiByZW0oNXB4KTtcblxuXHRzdmcge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0aGVpZ2h0OiByZW0oMThweCk7XG5cdFx0d2lkdGg6IHJlbSgxOHB4KTtcblx0XHRtYXJnaW46IDNweCByZW0oMTBweCkgMDtcbiAgICBmbG9hdDogbGVmdDtcblx0XHRmaWxsOiAkY29hbDtcblx0XHQmOmZpcnN0LWNoaWxkIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cdH1cblxuXHRoNSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi10b3A6IDVweDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuICAgIGZvbnQtZmFtaWx5OiAkcHJveGltYS1ub3ZhO1xuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLm5hdi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzRweDtcbiAgd2lkdGg6IDg1JTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGxlZnQ6IC04NSU7XG4gIHRyYW5zaXRpb246IGxlZnQgLjNzIGVhc2UtaW4tb3V0O1xuXG4gIGRpdi5jYXRlZ29yeS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICNFNkU3RTg7XG4gICAgcGFkZGluZy1sZWZ0OiByZW0oOHB4KTtcbiAgICBwYWRkaW5nLXRvcDogMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC5hcnJvdyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIEBpbmNsdWRlIHRyaWFuZ2xlKHJpZ2h0LCA5cHgsIGJsYWNrKTtcbiAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxcHgpO1xuICAgIHRyYW5zZm9ybTogYWxsIC4ycyBlYXNlO1xuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoZG93biwgOXB4LCBibGFjayk7XG4gICAgfVxuICB9XG5cbiAgcDpudGgtY2hpbGQoMikge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IHJlbSgxOHB4KTtcbiAgICBiYWNrZ3JvdW5kOiAjRTZFN0U4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cbn1cblxuLmJsb2ctY2F0ZWdvcmllcyB7XG5cdHdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiB3aGl0ZTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0ZGlzcGxheTogYmxvY2s7XG5cblx0bGkgYSB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nOiByZW0oMThweCkgMCByZW0oMThweCkgcmVtKDQ1cHgpO1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE4cHgpO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDBweCk7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLmlzLXJlc29sdmVkIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG5cdFx0Ji5pcy1hY3RpdmUge1xuXHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0fVxuXHR9XG5cblx0bGkge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IHJlbSgxMHB4KSAwIHJlbSgxMHB4KSAwO1xuXG5cdFx0Ji5leHBhbmQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cbiAgICAmOmZpcnN0LWNoaWxkIGEge1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAuMnMsIHRyYW5zZm9ybSAuMnM7XG5cdFx0fVxuXG5cdFx0JjpudGgtY2hpbGQoMikgYSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IC4yNXMsIHRyYW5zZm9ybSAuMjVzO1xuXHRcdH1cblxuXHRcdCY6bnRoLWNoaWxkKDIpIGEge1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAuNXMsIHRyYW5zZm9ybSAuNXM7XG5cdFx0fVxuXG5cdFx0JjpudGgtY2hpbGQoMykgYSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IC43NXMsIHRyYW5zZm9ybSAuNzVzO1xuXHRcdH1cblxuXHRcdCY6bnRoLWNoaWxkKDQpIGEge1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAxcywgdHJhbnNmb3JtIDFzO1xuXHRcdH1cblxuXHRcdCY6bnRoLWNoaWxkKDUpIGEge1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAxLjI1cywgdHJhbnNmb3JtIDEuMjVzO1xuXHRcdH1cblxuXHRcdCY6bnRoLWNoaWxkKDYpIGEge1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAxLjUwcywgdHJhbnNmb3JtIDEuNTBzO1xuXHRcdH1cblxuXHRcdCY6bnRoLWNoaWxkKDcpIGEge1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAxLjc1cywgdHJhbnNmb3JtIDEuNzVzO1xuXHRcdH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgIH1cbiAgICB9XG5cdH1cbn1cblxuLmJsb2ctZ2xvYmFsLW5hdi1saXN0IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cblx0bGkge1xuXHRcdGJhY2tncm91bmQ6ICNGMEYxRjE7XG5cdFx0cGFkZGluZzogcmVtKDEwcHgpIDAgcmVtKDEwcHgpIHJlbSgzMHB4KSAhaW1wb3J0YW50O1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQzhDQkNEO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgfVxuICAgIH1cblxuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0YmFja2dyb3VuZDogI0U2RTdFOCAhaW1wb3J0YW50O1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNDOENCQ0Q7XG5cdFx0fVxuXG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0bGkgYSB7XG5cdFx0Zm9udC1zaXplOiByZW0oMThweCk7XG5cdH1cbn1cbiIsImZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0ge1xuICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgcGFkZGluZzogcmVtKDUwcHgpO1xuXG4gIC5pbm5lci1jb250YWluZXIgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICBwYWRkaW5nOiByZW0oMzBweCkgMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbn1cblxuLmZvb3Rlci1sb2dvIHtcblx0d2lkdGg6IHJlbSgxNzVweCk7XG5cdG1hcmdpbi1ib3R0b206IHJlbSgyNXB4KTtcbn1cblxuLmZvb3Rlci1uYXYsIC5mb290ZXItc29jaWFsIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRsaSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cdGEge1xuXHRcdGZpbGw6ICR3aGl0ZTtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdH1cbn1cblxuLmZvb3Rlci1uYXYge1xuXHRsaSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtKDEwcHgpO1xuXHRcdCY6bGFzdC1jaGlsZCB7IGEgeyBib3JkZXItcmlnaHQ6IDA7IH0gfVxuXHR9XG5cdGEge1xuXHRcdHBhZGRpbmc6IDAgcmVtKDhweCk7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAycHggc29saWQgJHdoaXRlO1xuXHRcdHRyYW5zaXRpb246IGNvbG9yIGVhc2UtaW4tb3V0IC4ycztcblx0XHQmOmhvdmVyIHsgY29sb3I6IGxpZ2h0ZW4oJGJsdWUsIDIwJSk7IH1cblx0fVxuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5mb290ZXItc29jaWFsIHtcblx0cGFkZGluZzogcmVtKDI1cHgpIDA7XG5cbiAgbGkge1xuICAgIHBhZGRpbmc6IDAgcmVtKDVweCk7XG4gIH1cblx0YSB7XG5cdFx0JHNpemU6IHJlbSg0NXB4KTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6ICRzaXplO1xuXHRcdHdpZHRoOiAkc2l6ZTtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAkd2hpdGU7XG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdFx0c3ZnIHsgZmlsbDogJGJsdWU7IH1cblx0XHR9XG5cdH1cblx0c3ZnIHtcblx0XHQkc2l6ZTogcmVtKDMwcHgpO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IHJlbSg0LjVweCk7XG5cdFx0aGVpZ2h0OiAkc2l6ZTtcblx0XHR3aWR0aDogJHNpemU7XG5cdFx0cGFkZGluZzogcmVtKDVweCk7XG5cdH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICBwYWRkaW5nOiByZW0oMzBweCkgMCAwO1xuICB9XG59XG5cbi5mb290ZXItZGlzY2xvc3VyZSB7XG5cdGNvbG9yOiAkd2hpdGU7XG5cdGZvbnQtc2l6ZTogcmVtKDEycHgpO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdGEge1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG4gIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDkwcHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsImhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiA5OTtcblx0YmFja2dyb3VuZDogJHdoaXRlO1xuXG5cdC5zdDIge1xuXHRcdGZpbGw6ICRibHVlICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLnRvcC1oZWFkZXIge1xuXHRiYWNrZ3JvdW5kOiAjRjBGMUYxO1xuXHR3aWR0aDogMTAwJTtcblxuXHQuaW5uZXItY29udGFpbmVyIHtcblx0XHRwYWRkaW5nOiAwIDQlIHJlbSgxNXB4KSA0JTtcblx0XHRmb250LXNpemU6IHJlbSgxNHB4KTtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdEBpbmNsdWRlIGNlbnRlcigkZGVza3RvcCwgMCk7XG5cdFx0QGluY2x1ZGUgY2YoKTtcblxuXHRcdC5ibG9nLW1lbnUge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0fVxuXG5cdFx0LnRvcC1pdGVtIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDQlO1xuXHRcdH1cblxuXHR9XG5cblx0Ji5pcy1zdHVjayB7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHR6LWluZGV4OiAyO1xuXHRcdC8vIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1pbi1vdXQ7XG5cdH1cblxuICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuXHRcdC5pbm5lci1jb250YWluZXIge1xuXHRcdFx0cGFkZGluZy10b3A6IHJlbSg1cHgpO1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHR9XG4gIH1cbn1cblxuLnRvcC1sb2dvIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IHJlbSg5cHgpO1xuXHR3aWR0aDogcmVtKDkwcHgpO1xuXHRoZWlnaHQ6IHJlbSgyMnB4KTtcbn1cblxuLnRvcC1pdGVtIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLm1vYmlsZS1zZWFyY2gge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdGZsb2F0OiByaWdodDtcblx0dG9wOiByZW0oNXB4KTtcblx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblx0XHRyaWdodDogNXB4O1xuXHRcdGlucHV0IHsgbWFyZ2luLXJpZ2h0OiAwcHggIWltcG9ydGFudDsgfVxuXHR9XG59XG5cbi5ib3R0b20taGVhZGVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0Ym9yZGVyLWJvdHRvbTogcmVtKDFweCkgc29saWQgJGdyZXktbGlnaHQ7XG5cblx0LmlubmVyLWNvbnRhaW5lciB7XG5cdFx0aGVpZ2h0OiByZW0oMTEycHgpO1xuXHRcdHBhZGRpbmc6IHJlbSgyMHB4KSA0JTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRAaW5jbHVkZSBjZW50ZXIoJGRlc2t0b3AsIDApO1xuXHR9XG5cblx0YSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luLXRvcDogN3B4O1xuXHR9XG5cblx0LmxvZ28tc3ZnIHtcblx0XHRoZWlnaHQ6IDYwcHg7XG5cdH1cblxuXHQmLmlzLXN0dWNrIHtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHRcdHotaW5kZXg6IDI7XG5cblx0XHQuaW5uZXItY29udGFpbmVyIHtcblx0XHRcdGhlaWdodDogcmVtKDU2cHgpO1xuXHRcdFx0cGFkZGluZzogcmVtKDEwcHgpIDQlO1xuXHRcdFx0dHJhbnNpdGlvbjogaGVpZ2h0IC4zcztcblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXG5cdFx0LmxvZ28tc3ZnIHtcblx0XHRcdGhlaWdodDogMzVweDtcblx0XHRcdHRyYW5zaXRpb246IGhlaWdodCAuM3M7XG5cdFx0fVxuXG5cdFx0LmhlYWRlci1pdGVtIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cbn1cblxuLmhlYWRlci1pdGVtIHtcblx0cGFkZGluZzogMCA0JTtcblx0QGluY2x1ZGUgc3BhbigxLzIpO1xuXHRAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuXHRcdEBpbmNsdWRlIHNwYW4oMS8xKTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0cCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xuXHRcdH1cblx0fVxuXHQmOmxhc3QtY2hpbGQge1xuXHRcdEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ24oKTtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLnNlYXJjaC13cmFwIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHN2ZyB7XG5cdFx0ei1pbmRleDogMTtcblx0XHRtYXJnaW4tdG9wOiAtM3B4O1xuXHR9XG5cblx0Ly8gd29yZHByZXNzIGlzIG91dHB1dHRpbmcgYSBjcmF6eSBleHRyYSBpbnB1dFxuXHRmb3JtIGlucHV0IHsgZGlzcGxheTogbm9uZTsgfVxuXG5cdGZvcm0ge1xuXHRcdG1hcmdpbjogMCByZW0oNzBweCkgMCAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IHJlbSgtMnB4KTtcblx0XHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cdH1cblxuXHQvLyBhY3R1YWwgc2VhcmNoIGZpZWxkXG5cdGZvcm0gbGFiZWwge1xuXHRcdHNwYW4geyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblx0XHRpbnB1dC5zZWFyY2gtZmllbGQge1xuXHRcdFx0d2lkdGg6IDExMHB4O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKGdyYXksIC42KTtcblx0XHRcdHBhZGRpbmc6IHJlbSg1cHgpIDAgcmVtKDVweCkgcmVtKDI1cHgpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogcmVtKDE1cHgpO1xuXHRcdFx0Zm9udC1zaXplOiByZW0oMTJweCk7XG5cdFx0fVxuXG5cdFx0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6ICRncmV5LXNoYWRlOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cdFx0Oi1tb3otcGxhY2Vob2xkZXIgeyBjb2xvcjogJGdyZXktc2hhZGU7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblx0XHQ6Oi1tb3otcGxhY2Vob2xkZXIgeyBjb2xvcjogJGdyZXktc2hhZGU7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblx0XHQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6ICRncmV5LXNoYWRlOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cdH1cbn1cblxuLm1hZy1zdmcge1xuXHQkcG9zaXRpb246IHJlbSg4cHgpO1xuXHQkc2l6ZTogcmVtKDEycHgpO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogJHBvc2l0aW9uO1xuXHRsZWZ0OiAkcG9zaXRpb247XG5cdGhlaWdodDogJHNpemU7XG5cdHdpZHRoOiAkc2l6ZTtcbn1cbiIsIi5ibG9nLXBvc3RzIHtcblx0cGFkZGluZzogcmVtKDUwcHgpIDUlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cdFx0cGFkZGluZzogcmVtKDMwcHgpIDA7XG5cdH1cbn1cblxuLmJsb2ctY29udGFpbmVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdEBpbmNsdWRlIGNmKCk7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRtYXgtd2lkdGg6IDEyMDBweDtcblx0cGFkZGluZzogMCByZW0oMzBweCk7XG5cblx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cdFx0cGFkZGluZzogMFxuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHQuYmxvZy1wb3N0LW92ZXJsYXkgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cblxuLmJsb2ctcG9zdCB7XG5cdHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWFyZ2luLWJvdHRvbTogcmVtKDI1cHgpO1xuXG5cdCY6aG92ZXIge1xuXHRcdC5ibG9nLXBvc3Qtb3ZlcmxheSB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmx1ZSwgMC44KTtcblx0XHRcdCYuTWFya2V0aW5nXHR7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsb2cteWVsbG93LCAwLjgpOyB9XG5cdFx0XHQmLlJlc2VhcmNoXHR7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsb2ctdGVhbCwgMC44KTsgfVxuXHRcdFx0Ji5EZXNpZ25cdFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLW9yYW5nZSwgMC44KTsgfVxuXHRcdFx0Ji5Qcm9kdWN0XHRcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy1ibHVlLCAwLjgpOyB9XG5cdFx0XHQmLkNYXHRcdFx0XHR7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsb2ctZ3JlZW4sIDAuOCk7IH1cblx0XHR9XG5cdH1cblxuXHRwLmJsb2ctcG9zdC10aXRsZSB7XG5cdFx0JGZvbnQtc2l6ZTogMTZweDtcblx0XHQkbGluZS1oZWlnaHQ6IDEuNDtcblx0XHQkbGluZXMtdG8tc2hvdzogMztcblxuXHRcdGRpc3BsYXk6IGJsb2NrOyAvKiBGYWxsYmFjayBmb3Igbm9uLXdlYmtpdCAqL1xuXHQgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHQgIGhlaWdodDogJGZvbnQtc2l6ZSokbGluZS1oZWlnaHQqJGxpbmVzLXRvLXNob3c7IC8qIEZhbGxiYWNrIGZvciBub24td2Via2l0ICovXG5cdFx0bWFyZ2luLXRvcDogcmVtKDE1cHgpO1xuXHRcdHBhZGRpbmc6IDAgcmVtKDEwcHgpO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0ICBmb250LXNpemU6ICRmb250LXNpemU7XG5cdCAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcblx0ICAtd2Via2l0LWxpbmUtY2xhbXA6ICRsaW5lcy10by1zaG93O1xuXHQgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG5cdCAgb3ZlcmZsb3c6IGhpZGRlbjtcblx0ICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0LmJsb2ctcG9zdC1pbm5lciB7XG5cdFx0XHRtYXJnaW46IDAgcmVtKDVweCk7XG5cdFx0fVxuXHR9XG59XG5cbi5ibG9nLXBvc3QtaW5uZXIge1xuXHRtYXJnaW46IDAgMTVweDtcbn1cblxuLmJsb2ctZm9vdGVyLXBvc3Qge1xuXHRAaW5jbHVkZSBzcGFuKDEvMyk7XG5cdG1hcmdpbi1ib3R0b206IHJlbSgyNXB4KTtcblx0cCB7XG5cdFx0bWFyZ2luLXRvcDogcmVtKDE1cHgpO1xuXHRcdHBhZGRpbmc6IDAgcmVtKDEwcHgpO1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXHQmOmhvdmVyIHtcblx0XHQuYmxvZy1wb3N0LW92ZXJsYXkge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsdWUsIDAuOCk7XG5cdFx0XHQmLk1hcmtldGluZ1x0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLXllbGxvdywgMC44KTsgfVxuXHRcdFx0Ji5SZXNlYXJjaFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLXRlYWwsIDAuOCk7IH1cblx0XHRcdCYuRGVzaWduXHRcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy1vcmFuZ2UsIDAuOCk7IH1cblx0XHRcdCYuUHJvZHVjdFx0XHR7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsb2ctYmx1ZSwgMC44KTsgfVxuXHRcdFx0Ji5DWFx0XHRcdFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLWdyZWVuLCAwLjgpOyB9XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdEBpbmNsdWRlIHNwYW4oMS8xKTtcblx0fVxufVxuXG4uYmxvZy1wb3N0LW92ZXJsYXkge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0b3BhY2l0eTogMDtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmx1ZSwgMCk7XG5cdHRyYW5zaXRpb246IGFsbCBlYXNlLWluIC4ycztcblx0Ji5NYXJrZXRpbmcsICYuUmVzZWFyY2gsICYuRGVzaWduLCAmLlByb2R1Y3QsICYuQ1ggeyBvcGFjaXR5OiAwOyB9XG5cdCYuTWFya2V0aW5nXHR7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsb2cteWVsbG93LCAwKTsgfVxuXHQmLlJlc2VhcmNoXHR7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsb2ctdGVhbCwgMCk7IH1cblx0Ji5EZXNpZ25cdFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLW9yYW5nZSwgMCk7IH1cblx0Ji5Qcm9kdWN0XHRcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy1ibHVlLCAwKTsgfVxuXHQmLkNYXHRcdFx0XHR7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsb2ctZ3JlZW4sIDApOyB9XG5cdGRpdiB7XG5cdFx0QGluY2x1ZGUgdmVydGljYWxseS1hbGlnbigpO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRwIHtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRmb250LXNpemU6IHJlbSgxNHB4KTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDBweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0fVxuXHRcdHN2ZyB7XG5cdFx0XHRwYWRkaW5nOiByZW0oMTBweCk7XG5cdFx0XHR3aWR0aDogcmVtKDgycHgpO1xuXHRcdFx0aGVpZ2h0OiByZW0oODJweCk7XG5cdFx0XHRzdHJva2U6ICR3aGl0ZTtcblx0XHRcdC8vIHN0cm9rZS13aWR0aDogcmVtKDRweCk7XG5cdFx0XHRmaWxsOiBub25lO1xuXHRcdFx0Ym9yZGVyOiByZW0oM3B4KSBzb2xpZCAkd2hpdGU7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG5cdFx0XHRcdHdpZHRoOiByZW0oNzVweCk7XG5cdFx0XHRcdGhlaWdodDogcmVtKDc1cHgpO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5hamF4LW5vLWhpZGUge1xuXHQuYWxtLXJldmVhbCB7XG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxufVxuXG4uYWxtLXJldmVhbCB7XG5cdCY6Zmlyc3QtY2hpbGQge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG4uYmxvZy1pbWFnZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdC8vIGhlaWdodDogcmVtKDIwMHB4KTtcblx0QGluY2x1ZGUgcmF0aW8tYm94KDQvMyk7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmx1ZSwgMC44KTtcblx0Ji5NYXJrZXRpbmdcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy15ZWxsb3csIDAuOCk7IH1cblx0Ji5SZXNlYXJjaFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLXRlYWwsIDAuOCk7IH1cblx0Ji5EZXNpZ25cdFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLW9yYW5nZSwgMC44KTsgfVxuXHQmLlByb2R1Y3RcdFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLWJsdWUsIDAuOCk7IH1cblx0Ji5DWFx0XHRcdFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLWdyZWVuLCAwLjgpOyB9XG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdC8vIGhlaWdodDogcmVtKDE1MHB4KTtcblx0XHQvLyB3aWR0aDogMjAlO1xuXG5cdH1cbn1cblxuLmFsbS1idG4td3JhcCB7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHR6b29tOiAxO1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRidXR0b24ge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHRcdGNvbG9yOiAkYmxvZy1ncmVlbjtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAkYmxvZy1ncmVlbjtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6ICRibG9nLWdyZWVuO1xuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHR9XG5cdFx0Ji5kb25lIHsgZGlzcGxheTogbm9uZTsgfVxuXHRcdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRjb2xvcjogJGJsb2ctZ3JlZW47XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5ibG9nLXBvc3QtaGVybyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0aGVpZ2h0OiA1NXZoO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuXG5cdC5pbm5lci1jb250YWluZXIge1xuXHRcdEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ24oKTtcblx0XHR6LWluZGV4OiAyO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRoMSwgaDUgeyBjb2xvcjogJHdoaXRlOyB9XG5cdFx0aDEgeyBtYXJnaW4tYm90dG9tOiByZW0oMjVweCk7IH1cblx0XHRoNSB7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Ly8gZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0cGFkZGluZy1ib3R0b206IDQwJTtcblxuXHRcdC5pbm5lci1jb250YWluZXIge1xuXHRcdFx0QGluY2x1ZGUgdmVydGljYWxseS1hbGlnbihmYWxzZSk7XG5cdFx0XHRwYWRkaW5nOiAzMCUgNSUgMDtcblx0XHR9XG5cdH1cbn1cblxuLmJsb2ctcG9zdC1oZXJvLW92ZXJsYXkge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0YmFja2dyb3VuZDogcmdiYSgkaGVyby1vdmVybGF5LCAwLjM2KTtcbn1cblxuLmJsb2ctcG9zdC1wYWdlIHtcblx0LndwLWNhcHRpb24tdGV4dCB7XG5cdFx0bWFyZ2luLXRvcDogcmVtKDEwcHgpO1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0fVxuXHQuaW50cm8tdGV4dCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtKDI1cHgpO1xuXHRcdGZvbnQtc2l6ZTogcmVtKDIycHgpO1xuXHR9XG5cdGVtIHtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdH1cblx0QGluY2x1ZGUgY2YoKTtcblx0bWF4LXdpZHRoOiA3NSU7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRwYWRkaW5nOiByZW0oNTBweCkgMDtcblx0aDUge1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0bGluZS1oZWlnaHQ6IHJlbSgzMnB4KTtcblx0fVxuXHRoNiB7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxuXHRpbWcge1xuXHRcdG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdCYuc2l6ZS1oYWxmIHtcblx0XHRcdEBpbmNsdWRlIGNvbCgxLzIpO1xuXHRcdH1cblx0fVxuXG5cdGlmcmFtZSwgLndwLWNhcHRpb24ge1xuXHRcdG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHR9XG5cblx0cCB7IEBpbmNsdWRlIGNmKCk7IH1cblxuXHRibG9ja3F1b3RlIHtcblx0XHRjb2xvcjogJGJsb2ctb3JhbmdlO1xuXHRcdGJvcmRlci1sZWZ0OiByZW0oNHB4KSBzb2xpZCAkYmxvZy1vcmFuZ2U7XG5cdFx0bWFyZ2luLXRvcDogMzBweDtcblx0XHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXHRcdHAge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiByZW0oMTVweCk7XG5cdFx0XHRjb2xvcjogJGJsb2ctb3JhbmdlO1xuXHRcdFx0Zm9udC1zaXplOiAzMnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0XHRmb250LWZhbWlseTogXCJmcmFua2xpbi1nb3RoaWMtdXJ3XCI7XG5cdFx0fVxuXHRcdGF7XG5cdFx0XHRmb250LXNpemU6IDMycHg7XG5cdFx0XHRsaW5lLWhlaWdodDogNDBweDtcblx0XHRcdGZvbnQtZmFtaWx5OiBcImZyYW5rbGluLWdvdGhpYy11cndcIjtcblx0XHR9XG5cdH1cblx0b2wge1xuXHRcdG1hcmdpbi1sZWZ0OiByZW0oMzVweCk7XG5cdFx0Ly8gbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuXHRcdGNvdW50ZXItcmVzZXQ6IGNvdW50bWU7XG5cdFx0bGkge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDE1cHgpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IHJlbSgyMnB4KTtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiByZW0oLTM1cHgpO1xuXHRcdFx0XHRjb250ZW50OiBjb3VudGVyKGNvdW50bWUpO1xuXHRcdFx0XHRjb3VudGVyLWluY3JlbWVudDogY291bnRtZTtcblx0XHRcdFx0cGFkZGluZzogcmVtKDJweCkgcmVtKDhweCk7XG5cdFx0XHRcdGJvcmRlcjogcmVtKDFweCkgc29saWQgJGNvYWw7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdH1cblxuXHRcdH1cblx0fVxuXHR1bCB7XG5cdFx0bWFyZ2luLWxlZnQ6IHJlbSgzNXB4KTtcblx0XHRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG5cdFx0bGkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDEwcHgpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IHJlbSgyMnB4KTtcblx0XHR9XG5cdH1cblx0aDEsIGgyLCBoMywgaDQgLGg1LCBoNiB7XG5cdFx0bWFyZ2luLXRvcDogcmVtKDUwcHgpO1xuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5cdH1cblx0YSB7IGNvbG9yOiAkYmxvZy1ibHVlICFpbXBvcnRhbnQ7IH1cblx0aDIgeyBmb250LXNpemU6IDQycHggIWltcG9ydGFudDsgfVxuXHRoMyB7IGZvbnQtc2l6ZTogMjRweCAhaW1wb3J0YW50OyB9XG5cdGg0IHsgZm9udC1zaXplOiAyOHB4ICFpbXBvcnRhbnQ7IH1cblx0aDUgeyBmb250LXNpemU6IDI2cHggIWltcG9ydGFudDsgfVxuXHRoNiB7IGZvbnQtc2l6ZTogMjRweCAhaW1wb3J0YW50OyB9XG5cdHAgeyBmb250LXNpemU6IDE4cHg7IH1cblx0dWwsIG9sIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oNTBweCk7XG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogJGJsb2ctYmx1ZTtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuYWxpZ25jZW50ZXIge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbjogMHB4IGF1dG87XG5cdH1cblxuXHRpbWcge1xuXHRcdCYuYWxpZ25jZW50ZXIge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW46IDBweCBhdXRvO1xuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0YmxvY2txdW90ZSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRsZWZ0OiAtNC41JTtcblx0XHRcdGJvcmRlci13aWR0aDogcmVtKDZweCk7XG5cdFx0fVxuXHR9XG59XG4iLCJzZWN0aW9uLmF1dGgtaGVybyB7XG5cdHdpZHRoOiAxMDAlO1xuXHRtaW4taGVpZ2h0OiByZW0oNDAwcHgpO1xuXHRoZWlnaHQ6IDU1dmg7XG5cdGJhY2tncm91bmQ6ICRibG9nLWJsdWU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cGFkZGluZy10b3A6IHJlbSgzNXB4KTtcblx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG5cdGRpdi5jb3B5IHtcblx0XHRAaW5jbHVkZSB2ZXJ0aWNhbGx5LWFsaWduKCk7XG5cdH1cblxuXHRmaWd1cmUge1xuXHRcdHdpZHRoOiByZW0oMTc1cHgpO1xuXHRcdGhlaWdodDogcmVtKDE3NXB4KTtcblx0XHRiYWNrZ3JvdW5kOiBncmF5O1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRib3JkZXI6IDRweCBzb2xpZCAkd2hpdGU7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0fVxuXG5cdGgxIHtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW4tdG9wOiByZW0oMTVweCk7XG5cdH1cblxuXHR1bC5hdXRoLXNvY2lhbCB7XG5cdFx0bWFyZ2luOiByZW0oNDBweCkgYXV0byAwIGF1dG87XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0bGkge1xuXHRcdFx0d2lkdGg6IHJlbSgzNXB4KTtcblx0XHRcdGhlaWdodDogcmVtKDM1cHgpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0bWFyZ2luOiAwIDVweDtcblx0XHRcdGJhY2tncm91bmQ6ICNkN2Q1ZDU7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMwMG1zO1xuXHRcdFx0Jjpob3ZlciB7IGJhY2tncm91bmQ6IGRhcmtlbigjZDdkNWQ1LCAxMCUpOyB9XG5cblx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblxuXHRcdFx0XHRhIHN2ZyB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0bGVmdDogcmVtKDNweCk7XG5cdFx0XHRcdFx0dG9wOiByZW0oM3B4KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRhIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0cGFkZGluZzogcmVtKDIwcHgpIHJlbSgxN3B4KSAwIDA7XG5cblx0XHRcdFx0c3ZnIHtcblx0XHRcdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0XHRcdGhlaWdodDogaW5oZXJpdDtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0bGVmdDogcmVtKDEwcHgpO1xuXHRcdFx0XHRcdHBhdGgsIHBvbHlnb24geyBmaWxsOiAjNDE0MDQyICFpbXBvcnRhbnQ7IH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5zZWN0aW9uLmF1dGgtaW5mbyB7XG5cdHdpZHRoOiAxMDAlO1xuXHRwYWRkaW5nOiByZW0oNTBweCkgMjAlIDAgMjAlO1xuXHRAaW5jbHVkZSBjZW50ZXIoJGRlc2t0b3AsIDExLjUlKTtcblx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHsgcGFkZGluZzogcmVtKDUwcHgpIDEwJSAwIDEwJTsgfVxuXG5cdGRpdi5saW5lIHtcblx0XHRoZWlnaHQ6IDFweDtcblx0XHRiYWNrZ3JvdW5kOiByZ2JhKCMwMDAsIC4xNSk7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbi10b3A6IHJlbSg4MHB4KTtcblxuXHRcdHNwYW4ge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR0b3A6IC05cHg7XG5cdFx0XHRwYWRkaW5nOiAwIHJlbSgxMHB4KTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0fVxuXHR9XG59XG5cbi8vIGV4dHJhIHBhZGRpbmcgZm9yIGF1dGhvciBwb3N0cyBjb250YWluZXJcbnNlY3Rpb24ueHAge1xuXHRAaW5jbHVkZSBjZW50ZXIoJGRlc2t0b3AsIDExLjUlKTtcbiAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHsgcGFkZGluZzogMCA0JTsgfVxuICBtYXJnaW4tYm90dG9tOiByZW0oNTBweCk7XG59XG5cbnNlY3Rpb24uYmxvZy1wb3N0cyBkaXYudmlldy1tb3JlIGEge1xuXHR3aWR0aDogcmVtKDE1MHB4KTtcblx0aGVpZ2h0OiByZW0oNDVweCk7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IDAgYXV0bztcblx0cGFkZGluZy10b3A6IHJlbSgxMnB4KTtcblx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJvcmRlcjogMnB4IHNvbGlkICRncmVlbjtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGNvbG9yOiAkZ3JlZW47XG5cdGNsZWFyOiBib3RoO1xuXHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMwMG1zLCBjb2xvciAzMDBtcztcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kOiAkZ3JlZW47XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0fVxufVxuIiwiLnBlbmNpbC1pY29uIHtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHdpZHRoOiByZW0oMTI1cHgpO1xuXHRoZWlnaHQ6IHJlbSgxMjVweCk7XG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRib3JkZXI6IHJlbSg0cHgpIHNvbGlkICRjb2FsO1xufVxuXG4uY29udHJpYnV0ZS1wZW5jaWwge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiByZW0oMTE1cHgpO1xuXHRoZWlnaHQ6IHJlbSgxMTVweCk7XG5cdGZpbGw6ICRjb2FsO1xufVxuXG4uY29udHJpYnV0ZS1kb3duLWFycm93IHtcblx0d2lkdGg6IHJlbSgyNXB4KTtcblx0ZmlsbDogJHdoaXRlO1xufVxuXG4uY29udHJpYnV0ZS1mb3JtIHtcblx0bWFyZ2luOiByZW0oNTBweCkgMDtcblx0aW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwidGV4dFwiXSwgdGV4dGFyZWEge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSgyNXB4KTtcblx0XHRwYWRkaW5nOiByZW0oMTBweCk7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkZ3JleS10aW50O1xuXHR9XG5cdHRleHRhcmVhIHtcblx0XHRoZWlnaHQ6IHJlbSgyNTBweCk7XG5cdFx0Ym9yZGVyOiByZW0oMXB4KSBzb2xpZCAkZ3JleS10aW50O1xuXHR9XG5cdGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRcdGZsb2F0OiByaWdodDtcblx0fVxuXG5cdGlucHV0LCB0ZXh0YXJlYSB7XG5cdFx0Ji5pbnZhbGlkIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRyZWQ7XG5cdFx0fVxuXHR9XG59Iiwic2VjdGlvbi5zZWFyY2gtcmVzdWx0cyB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHpvb206IDE7XG5cblx0ZGl2LnJlc3VsdHMtd3JhcCB7XG5cdFx0d2lkdGg6IDkwMHB4O1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRwYWRkaW5nOiByZW0oNTBweCkgMDtcblx0XHRtYXJnaW46IDAgYXV0bztcblxuXHQgIC5yZXN1bHQge1xuXHQgIFx0d2lkdGg6IDEwMCU7XG5cdCAgXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdCAgXHRvdmVyZmxvdzogaGlkZGVuO1xuXHQgIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHQgIFx0bWFyZ2luLWJvdHRvbTogcmVtKDMwcHgpO1xuXG5cdFx0XHRkaXYuYmxvZy1pbWFnZSB7XG5cdFx0XHRcdHdpZHRoOiAyMCU7XG4gICAgXHRcdGhlaWdodDogMTAwJTtcblx0XHQgICAgcG9zaXRpb246IGFic29sdXRlO1xuXHRcdCAgICBsZWZ0OiAwO1xuXHRcdCAgICB0b3A6IDA7XG5cdFx0XHRcdHAgeyBjb2xvcjogJHdoaXRlOyB9XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHQuYmxvZy1wb3N0LW92ZXJsYXkge1xuXHRcdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdFx0Ji5tYXJrZXRpbmdcdHsgYmFja2dyb3VuZDogcmdiYSgkYmxvZy15ZWxsb3csIDAuOCk7IH1cblx0XHRcdFx0XHQmLnJlc2VhcmNoXHR7IGJhY2tncm91bmQ6IHJnYmEoJGJsb2ctdGVhbCwgMC44KTsgfVxuXHRcdFx0XHRcdCYuZGVzaWduXHRcdHsgYmFja2dyb3VuZDogcmdiYSgkYmxvZy1vcmFuZ2UsIDAuOCk7IH1cblx0XHRcdFx0XHQmLnByb2R1Y3RcdFx0eyBiYWNrZ3JvdW5kOiByZ2JhKCRibG9nLWJsdWUsIDAuOCk7IH1cblx0XHRcdFx0XHQmLkNYXHRcdFx0XHR7IGJhY2tncm91bmQ6IHJnYmEoJGJsb2ctZ3JlZW4sIDAuOCk7IH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRkaXYucmlnaHQge1xuXHRcdFx0XHRmbG9hdDogcmlnaHQ7XG4gICAgXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBcdFx0d2lkdGg6IDc1JTtcblxuXHRcdFx0XHRoNSB7XG5cdFx0XHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbSg2MHB4KTtcblx0XHRcdFx0XHRtYXJnaW46IDAgMCByZW0oN3B4KSAwO1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cCB7XG5cdFx0XHRcdFx0Y29sb3I6IHJnYmEoYmxhY2ssIC43KTtcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbSgxN3B4KTtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdFx0XHQmOm50aC1vZi10eXBlKDIpIHsgZm9udC1zaXplOiByZW0oMTVweCk7IHBhZGRpbmc6IHJlbSgxMHB4KSAwOyB9XG5cdFx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDE1cHgpO1xuXHRcdFx0XHRcdFx0Y29sb3I6IGRhcmtlbigkZ3JleS10aW50LCAyNSUpO1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdFx0dG9wOiByZW0oNXB4KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0ICB9XG5cblx0XHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldC1sJykgeyB3aWR0aDogMTAwJTsgfVxuXHRcdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXG5cdFx0XHRkaXYucmVzdWx0IHtcblx0XHRcdFx0LmJsb2ctaW1hZ2UgeyB3aWR0aDogMzAlOyB9XG5cblx0XHRcdFx0LnJpZ2h0IHtcblx0XHRcdFx0XHR3aWR0aDogNjUlO1xuXHRcdFx0XHRcdHBhZGRpbmc6IHJlbSgyMHB4KSAwIHJlbSgzMHB4KSAwO1xuXHRcdFx0XHRcdGg1IHsgcGFkZGluZy1yaWdodDogMDsgfVxuXHRcdFx0XHRcdHA6bnRoLW9mLXR5cGUoMiksIHA6bGFzdC1jaGlsZCB7IGRpc3BsYXk6IG5vbmU7IH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6YWN0aXZlIHsgYmFja2dyb3VuZDogbGlnaHRlbigkZ3JleS1saWdodCwgMiUpOyB9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbnNlY3Rpb24ubm90LWZvdW5kIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogODB2aDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgLjVzIGVhc2U7XG5cbiAgLmFsZXJ0LWluZm8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIGNlbnRlcig2NTBweCk7XG4gICAgdG9wOiAyNSU7XG4gICAgdHJhbnNpdGlvbjogdG9wIC41cyBlYXNlO1xuICAgIHBhZGRpbmc6IDAgNSU7XG5cbiAgICBoMiB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBAaW5jbHVkZSBoZWF2eS1hbnRpYWxpYXMoKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxcztcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgIGhlaWdodDogNjV2aDtcblxuICAgIC5hbGVydC1pbmZvIHtcbiAgICAgIHRvcDogMzAlO1xuICAgIH1cbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */