@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; }

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 + 12 * ((100vw - 420px) / 604));
  font-size: calc(36px + 12 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h2 {
      font-size: 36px; } }
  @media screen and (min-width: 1024px) {
    h2 {
      font-size: 48px; } }

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

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

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

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

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

.blog-hero-carousel {
  position: relative;
  width: 100%;
  background: #FF8300; }
  .blog-hero-carousel .slide {
    position: relative;
    height: 55vh;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat; }
    .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%; }
      .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: 39.375rem;
  padding-left: 4%;
  padding-top: 2.5%; }
  .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: none;
  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 1.25rem 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(219, 134, 42, 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(219, 134, 42, 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(219, 134, 42, 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(219, 134, 42, 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: #DB862A;
    border-left: 0.25rem solid #DB862A; }
    .blog-post-page blockquote p {
      padding-left: 0.9375rem;
      color: #DB862A; }
  .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(219, 134, 42, 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWV5ZXItcmVzZXQvc3R5bGVzaGVldHMvX21leWVyLXJlc2V0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25vcm1hbGl6ZS1saWJzYXNzL19ub3JtYWxpemUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvb2xkLWJyb3dzZXJzL3Njc3Mvb2xkLWJyb3dzZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvamVldC9zY3NzL2plZXQvaW5kZXguc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvamVldC9zY3NzL2plZXQvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2plZXQvc2Nzcy9qZWV0L19mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvamVldC9zY3NzL2plZXQvX2dyaWQuc2NzcyIsImluY2x1ZGVzL19jb2xvcnMuc2NzcyIsImluY2x1ZGVzL19zbGlkZXIuc2NzcyIsImJhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMva25hcHNhY2sva25hcHNhY2svX3R5cG9ncmFwaHkuc2NzcyIsImJhc2UvX2Jhc2Uuc2NzcyIsImluY2x1ZGVzL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMva25hcHNhY2sva25hcHNhY2svX2xheW91dC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMva25hcHNhY2sva25hcHNhY2svX3Jlc2V0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2tuYXBzYWNrL2tuYXBzYWNrL19jb2RlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2tuYXBzYWNrL2tuYXBzYWNrL19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9rbmFwc2Fjay9rbmFwc2Fjay9fdXRpbGl0aWVzLnNjc3MiLCJiYXNlL19zbGljZS5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9rbmFwc2Fjay9rbmFwc2Fjay9fdWkuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2ctaGVyby1jYXJvdXNlbC5zY3NzIiwiY29tcG9uZW50cy9fYmxvZy1maWx0ZXIuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2ctZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19ibG9nLW1vZGFsLnNjc3MiLCJjb21wb25lbnRzL19ibG9nLXBvc3QtZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19ibG9nLW1lbnUuc2NzcyIsIm1vZHVsZXMvX2Zvb3Rlci5zY3NzIiwibW9kdWxlcy9faGVhZGVyLnNjc3MiLCJtb2R1bGVzL19ibG9nLnNjc3MiLCJtb2R1bGVzL19hdXRob3Iuc2NzcyIsIm1vZHVsZXMvX2NvbnRyaWJ1dGUuc2NzcyIsIm1vZHVsZXMvX3NlYXJjaC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0tmO0VBQ0UsVUFBVTtFQUNWLFdBQVc7RUFDWCxVQUFVO0VBQ1YsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCx5QkFBeUIsRUFDMUI7O0FBR0Q7RUFDRSxlQUFlLEVBQ2hCOztBQUNEO0VBQ0UsZUFBZSxFQUNoQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGFBQWEsRUFDZDs7QUFDRDtFQUVJLFlBQVk7RUFDWixjQUFjLEVBQ2Y7O0FBRUg7RUFFSSxZQUFZO0VBQ1osY0FBYyxFQUNmOztBQUVIO0VBQ0UsMEJBQTBCO0VBQzFCLGtCQUFrQixFQUNuQjs7QUMyREg7Ozs7O0VBS0U7QUFDRjtFQUNFLHdCQWhGMkI7RUFnRmUsT0FBTztFQUNqRCwyQkFBMkI7RUFBRSxPQUFPO0VBQ3BDLCtCQUErQjtFQUFFLE9BQU8sRUFDekM7O0FBRUQ7O0VBRUU7QUFFRjtFQUNFLFVBQVUsRUFDWDs7QUFFRDtnRkFDZ0Y7QUFFaEY7Ozs7O0VBS0U7QUFFRjs7Ozs7Ozs7Ozs7OztFQWFFLGVBQWUsRUFDaEI7O0FBRUQ7OztFQUdFO0FBRUY7Ozs7RUFLSSxzQkFBc0I7RUFBRSxPQUFPO0VBRWpDLHlCQUF5QjtFQUFFLE9BQU8sRUFDbkM7O0FBRUQ7OztFQUdFO0FBRUY7RUFDRSxjQUFjO0VBQ2QsVUFBVSxFQUNYOztBQUdDOztLQUVHO0FGM0VMO0VFOEVJLGNBQWMsRUFDZjs7QUFHSDs7RUFFRTtBQUVGO0VBQ0UsY0FBYyxFQUNmOztBQUVEO2dGQUNnRjtBQUc5RTs7S0FFRztBQUVIO0VBQ0UsOEJBQThCLEVBQy9COztBQUdIOzs7RUFHRTtBQUVGOztFQUVFLFdBQVcsRUFDWjs7QUFFRDtnRkFDZ0Y7QUFFaEY7O0VBRUU7QUFFRjtFQUNFLDBCQUEwQixFQUMzQjs7QUFFRDs7RUFFRTtBQUVGOztFQUVFLGtCQUFrQixFQUNuQjs7QUFFRDs7RUFFRTtBQUVGO0VBQ0UsbUJBQW1CLEVBQ3BCOztBQUVEOzs7RUFHRTtBQUVGO0VBQ0UsZUF4SmlCO0VBeUpqQixxQkFBbUgsRUFDcEg7O0FBR0M7O0tBRUc7QUFFSDtFQUNFLGlCQUFpQjtFQUNqQixZQUFZLEVBQ2I7O0FBR0g7O0VBRUU7QUFFRjtFQUNFLGVBQWUsRUFDaEI7O0FBRUQ7O0VBRUU7QUFFRjs7RUFFRSxlQUFlO0VBQ2YsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQix5QkFBeUIsRUFDMUI7O0FBRUQ7RUFDRSxZQUFZLEVBQ2I7O0FBRUQ7RUFDRSxnQkFBZ0IsRUFDakI7O0FBRUQ7Z0ZBQ2dGO0FBRzlFOztLQUVHO0FBRUg7RUFDRSxVQUFVLEVBQ1g7O0FBSUQ7O0tBRUc7QUFFSDtFQUNFLGlCQUFpQixFQUNsQjs7QUFHSDtnRkFDZ0Y7QUFHOUU7O0tBRUc7QUFFSDtFQUNFLGlCQUFpQixFQUNsQjs7QUFHSDs7RUFFRTtBQUVGO0VBQ0Usd0JBQXdCO0VBQ3hCLFVBQVUsRUFDWDs7QUFFRDs7RUFFRTtBQUVGO0VBQ0UsZUFBZSxFQUNoQjs7QUFFRDs7RUFFRTtBQUVGOzs7O0VBSUUsa0NBQWtDO0VBQ2xDLGVBQWUsRUFDaEI7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOzs7RUFHRTtBQUVGOzs7OztFQUtFO0FBRUY7Ozs7O0VBS0UsZUFBZTtFQUFFLE9BQU87RUFDeEIsY0FBYztFQUFFLE9BQU87RUFDdkIsVUFBVTtFQUFFLE9BQU8sRUFDcEI7O0FBR0M7O0tBRUc7QUFFSDtFQUNFLGtCQUFrQixFQUNuQjs7QUFHSDs7Ozs7RUFLRTtBQUVGOztFQUVFLHFCQUFxQixFQUN0Qjs7QUFFRDs7Ozs7O0VBTUU7QUFFRjs7OztFQUlFLDJCQUEyQjtFQUFFLE9BQU87RUFDcEMsZ0JBQWdCO0VBQUUsT0FBTyxFQUMxQjs7QUFFRDs7RUFFRTtBQUVGOztFQUVFLGdCQUFnQixFQUNqQjs7QUFFRDs7RUFFRTtBQUVGOztFQUVFLFVBQVU7RUFDVixXQUFXLEVBQ1o7O0FBRUQ7OztFQUdFO0FBRUY7RUFDRSxvQkFBb0IsRUFDckI7O0FBR0M7Ozs7OztLQU1HO0FBRUg7O0VBRUUsdUJBQXVCO0VBQUUsT0FBTztFQUNoQyxXQUFXO0VBQUUsT0FBTyxFQUNyQjs7QUFHSDs7OztFQUlFO0FBRUY7O0VBRUUsYUFBYSxFQUNkOztBQUVEOzs7RUFHRTtBQUVGO0VBQ0Usd0JBQXdCLEVBQ3pCOztBQUVEOzs7O0VBSUU7QUFFRjs7RUFFRSx5QkFBeUIsRUFDMUI7O0FBRUQ7O0VBRUU7QUFFRjtFQUNFLDBCQUEwQjtFQUMxQixjQUFjO0VBQ2QsK0JBQStCLEVBQ2hDOztBQUVEOzs7RUFHRTtBQUVGO0VBRUksVUFBVTtFQUFFLE9BQU87RUFFckIsV0FBVztFQUFFLE9BQU8sRUFDckI7O0FBR0M7O0tBRUc7QUFFSDtFQUNFLGVBQWUsRUFDaEI7O0FBR0g7OztFQUdFO0FBRUY7RUFDRSxrQkFBa0IsRUFDbkI7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztFQUVFO0FBRUY7RUFDRSwwQkFBMEI7RUFDMUIsa0JBQWtCLEVBQ25COztBQUVEOztFQUVFLFdBQVcsRUFDWjs7QUNyaUJEO0VBQ0UsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLGFBQWE7RUFDYixhQUFhO0VBQ2Isd0JBQXdCO0VBQ3hCLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsV0FBVztFQUNYLFVBQVUsRUFpQlg7RUE1QkQ7SUFhTyx1QkFBdUIsRUFBSTtFQWJsQztJQWNVLGVBQWUsRUFBSTtFQWQ3QjtJQWdCSSxpQkFBaUI7SUFDakIscUJBQXFCO0lBQ3JCLG1CQUFtQixFQUNwQjtFQW5CSDtJQXNCTSxzQkFBc0I7SUFDdEIsZ0JBQWdCLEVBR2pCO0lBMUJMO01Bd0JZLGFBQWEsRUFBSTtJQXhCN0I7TUF5QlUsa0JBQWtCO01BQUUsZUFBZSxFQUFHOztBQUloRDtFQUNFLFVBQVU7RUFDVixXQUFXLEVBQ1o7O0FDaENEOzs7Ozs7Ozs7Ozs7RUFZRTtBQ1pGOzs7R0FHRztBQ0hIOzs7R0FHRztBQUVIOzs7O0dBSUc7QUFLSDs7Ozs7R0FLRztBQWFIOzs7R0FHRztBQU9IOzs7Ozs7O0dBT0c7QUFvQkg7Ozs7R0FJRztBQWdDSDs7Ozs7R0FLRztBQzlHSDs7Ozs7OztHQU9HO0FBd0RIOzs7R0FHRztBQUtIOzs7O0dBSUc7QUFLSDs7OztHQUlHO0FBS0g7OztHQUdHO0FBS0g7OztHQUdHO0FBS0g7Ozs7OztHQU1HO0FBOENIOzs7OztHQUtHO0FBb0JIOztHQUVHO0FBTUg7Ozs7R0FJRztBQWFIOztHQUVHO0FBS0g7Ozs7R0FJRztBQWlCSDs7R0FFRztBQVNIOzs7O0dBSUc7QUF3Q0g7O0dBRUc7QUF1Qkg7Ozs7R0FJRztBQWtCSDs7R0FFRztBQy9VSDtFQUNFLG1CQUFtQjtFQUNuQixpQ0FBeUI7VUFBekIseUJBQXlCLEVBTTFCO0VBUkQ7SUFLSSwyQkFBMkI7SUFDM0IsZUFBYSxFQUNkOztBQ1hILFlBQVk7QUFFWjtFQUNJLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsdUJBQXVCO0VBQ3ZCLDRCQUE0QjtFQUM1Qiw0QkFBNEI7RUFDNUIsMEJBQTBCO0VBQzFCLHlCQUF5QjtFQUN6Qix1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQix3QkFBd0I7RUFDeEIsb0JBQW9CO0VBQ3BCLHlDQUF5QyxFQUM1Qzs7QUFDRDtFQUNJLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLFVBQVU7RUFDVixXQUFXLEVBVWQ7RUFmRDtJQVFRLGNBQWMsRUFDakI7RUFUTDtJQVlRLGdCQUFnQjtJQUNoQixhQUFhLEVBQ2hCOztBQUVMOztFQUVJLHdDQUE4QjtFQUU5QixvQ0FBMEI7RUFFMUIsZ0NBQXNCLEVBQ3pCOztBQUVEO0VBQ0ksbUJBQW1CO0VBQ25CLFFBQVE7RUFDUixPQUFPO0VBQ1AsZUFBZSxFQWVsQjtFQW5CRDtJQVFRLFlBQVk7SUFDWixlQUFlLEVBQ2xCO0VBVkw7SUFhUSxZQUFZLEVBQ2Y7RUFFRDtJQUNJLG1CQUFtQixFQUN0Qjs7QUFFTDtFQUNJLFlBQVk7RUFDWixhQUFhO0VBQ2IsZ0JBQWdCO0VBV2hCLGNBQWMsRUFtQmpCO0VUeWdCQztJU3JpQk0sYUFBYSxFQUNoQjtFQU5MO0lBUVEsZUFBZSxFQUNsQjtFQVRMO0lBV1EsY0FBYyxFQUNqQjtFQVpMO0lBaUJRLHFCQUFxQixFQUN4QjtFQUVEO0lBQ0ksZUFBZSxFQUNsQjtFQUVEO0lBQ0ksbUJBQW1CLEVBQ3RCO0VBRUQ7SUFDSSxlQUFlO0lBQ2YsYUFBYTtJQUNiLDhCQUE4QixFQUNqQzs7QUFFTDtFQUNJLGNBQWMsRUFDakI7O0FBc0NELFlBQVk7QUFHUjtFQUNJLHVFQUFnRixFQUNuRjs7QUFHTCxXQUFXO0FBRVA7RUFDSSxxQkFBcUI7RUFDckIsOEJBaEJXO0VBaUJYLHNNQUEwTTtFQUMxTSxvQkFBb0I7RUFDcEIsbUJBQW1CLEVBQUE7O0FBSTNCLFlBQVk7QUFFWjs7RUFFSSxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLGFBQWE7RUFDYixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsd0JBQXdCO0VBQ3hCLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1Qsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxhQUFhO0VBQ2IsY0FBYyxFQVlqQjtFQTNCRDs7O0lBaUJRLGNBQWM7SUFDZCx3QkFBd0I7SUFDeEIsbUJBQW1CLEVBSXRCO0lBdkJMOzs7TUFxQlksV0EvRGMsRUFnRWpCO0VBdEJUOztJQXlCUSxjQWxFdUIsRUFtRTFCOztBQUdMO0VBQ0kscUJBbEZ1QjtFQW1GdkIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixhQW5GcUI7RUFvRnJCLGNBN0V3QjtFQThFeEIsb0NBQW9DO0VBQ3BDLG1DQUFtQyxFQUN0Qzs7QUFFRDtFQUNJLFlBQVksRUFXZjtFVGtlQztJUzNlTSxXQUFXO0lBQ1gsYUFBYSxFQUNoQjtFQUxMO0lBT1EsYUE3RmUsRUFBSztJVHlrQnhCO01TMWVRLGFBOUZXLEVBQUs7O0FBbUc1QjtFQUNJLGFBQWEsRUFXaEI7RVQ4ZEM7SVN2ZU0sWUFBWTtJQUNaLFlBQVksRUFDZjtFQUxMO0lBT1EsYUExR2UsRUFBSztJVGtsQnhCO01TdGVRLGFBN0dXLEVBQUs7O0FBa0g1QixVQUFVO0FBRVY7RUFDSSxvQkFBb0IsRUFDdkI7O0FBRUQ7RUFDSSxtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2YsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxZQUFZLEVBaURmO0VBeEREO0lBU1EsbUJBQW1CO0lBQ25CLHNCQUFzQjtJQUN0QixhQUFhO0lBQ2IsWUFBWTtJQUNaLGNBQWM7SUFDZCxXQUFXO0lBQ1gsZ0JBQWdCLEVBd0NuQjtJQXZETDtNQWlCWSxVQUFVO01BQ1Ysd0JBQXdCO01BQ3hCLGVBQWU7TUFDZixhQUFhO01BQ2IsWUFBWTtNQUNaLGNBQWM7TUFDZCxpQkFBaUI7TUFDakIsZUFBZTtNQUNmLG1CQUFtQjtNQUNuQixhQUFhO01BQ2IsZ0JBQWdCLEVBdUJuQjtNQWxEVDtRQTZCZ0IsY0FBYyxFQUlqQjtRQWpDYjtVQStCb0IsV0FsSk0sRUFtSlQ7TUFoQ2pCO1FBbUNnQixtQkFBbUI7UUFDbkIsT0FBTztRQUNQLFFBQVE7UUFDUixhQTVKTTtRQTZKTixZQUFZO1FBQ1osYUFBYTtRQUNiLHFCQXRLVztRQXVLWCxlQS9KSTtRQWdLSixrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLGFBdktPO1FBd0tQLGNBaEtlO1FBaUtmLG9DQUFvQztRQUNwQyxtQ0FBbUMsRUFDdEM7SUFqRGI7TUFvRFksYUE5S1c7TUErS1gsY0F6S2dCLEVBMEtuQjs7QUN2UlQ7O0VBQ0UsNERBTHdEO0VBTXhELFlGTlM7RUVPVCxvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLG9DQUFvQyxFQUNyQzs7QUFRRDtFQUNFLGVBQWU7RUFDZixlQUFlO0VBQ2YsbURBcEJnRDtFQXFCaEQsb0JBQW9CLEVBTXJCO0VBVkQ7SUFPSSxjQUFjLEVBQ2Y7RUFSSDtJQVNNLGVBQWUsRUFBSzs7QUFPMUI7RUMyRkUsNkRBQWU7RUFBZixxREFBZSxFRDNGc0M7RUM2RnJEO0lEN0ZGO01DOEZJLGdCRDlGeUIsRUFBMEIsRUFBQTtFQ2lHckQ7SURqR0Y7TUNrR0ksZ0JEbEcrQixFQUFvQixFQUFBOztBQUN2RDtFQzBGRSw2REFBZTtFQUFmLHFEQUFlLEVEMUZzQztFQzRGckQ7SUQ1RkY7TUM2RkksZ0JEN0Z5QixFQUEwQixFQUFBO0VDZ0dyRDtJRGhHRjtNQ2lHSSxnQkRqRytCLEVBQW9CLEVBQUE7O0FBQ3ZEO0VDeUZFLDREQUFlO0VBQWYsb0RBQWUsRUR6RnNDO0VDMkZyRDtJRDNGRjtNQzRGSSxnQkQ1RnlCLEVBQTBCLEVBQUE7RUMrRnJEO0lEL0ZGO01DZ0dJLGdCRGhHK0IsRUFBb0IsRUFBQTs7QUFDdkQ7RUN3RkUsNERBQWU7RUFBZixvREFBZSxFRHhGc0M7RUMwRnJEO0lEMUZGO01DMkZJLGdCRDNGeUIsRUFBMEIsRUFBQTtFQzhGckQ7SUQ5RkY7TUMrRkksZ0JEL0YrQixFQUFvQixFQUFBOztBQUN2RDtFQ3VGRSw0REFBZTtFQUFmLG9EQUFlLEVEdkZzQztFQ3lGckQ7SUR6RkY7TUMwRkksZ0JEMUZ5QixFQUEwQixFQUFBO0VDNkZyRDtJRDdGRjtNQzhGSSxnQkQ5RitCLEVBQW9CLEVBQUE7O0FBQ3ZEO0VDc0ZFLDREQUFlO0VBQWYsb0RBQWUsRUR0RnNDO0VDd0ZyRDtJRHhGRjtNQ3lGSSxnQkR6RnlCLEVBQTBCLEVBQUE7RUM0RnJEO0lENUZGO01DNkZJLGdCRDdGK0IsRUFBb0IsRUFBQTs7QUFDdkQ7RUNxRkUsNERBQWU7RUFBZixvREFBZSxFRHJGaUM7RUN1RmhEO0lEdkZGO01Dd0ZJLGdCRHhGb0MsRUFBVSxFQUFBO0VDMkZoRDtJRDNGRjtNQzRGSSxnQkQ1RjBDLEVBQUksRUFBQTs7QUFhbEQ7RUFDRSxtQkFBbUI7RUFDbkIsY0FBYyxFQUNmOztBQUNEO0VBQUksc0JBQXNCLEVBQUk7O0FFeEQ5QjtFTDJORSxZQUFZO0VBQ1osa0JNbE5VO0VObU5WLFlBQVk7RUFDWixlQUFlO0VBQ2YsbUJBQ2M7RUFEZCxrQkFFYztFQUVkLGdCQVZnRDtFQVVoRCxpQkFWZ0Q7RUt2TmhELG9CSm1CMkI7RUlsQjNCLDBCSmUyQixFSWQ1QjtFQUpEO0lFWUksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlLEVBQ2hCOztBRlRIO0VMcU5FLFlBQVk7RUFDWixrQk1uTmM7RU5vTmQsWUFBWTtFQUNaLGVBQWU7RUFDZixtQkFDYztFQURkLGtCQUVjO0VBRWQsaUJLNU40QjtFTDRONUIsa0JLNU40QixFQVE3QjtFQVREO0lFTUksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlLEVBQ2hCO0VDeWhCQztJSGxpQko7TUFHSSxjQUFjLEVBTWpCO01BVEQ7UUFLTSxZQUFZO1FBQ1osZ0JBQWdCLEVBQ2pCLEVBQUE7O0FBSUw7RUFFeUIseUJBQXlCLEVBQUk7O0FBTXREO0VFYkksWUFBWTtFQUNaLFlBQVk7RUFDWixlQUFlLEVBQ2hCOztBRTRQRDtFQUNFLHVCQUF1QixFQUN4Qjs7QUFFRDs7O0VBR0Usb0JBQW9CLEVBQ3JCOztBQWtCRDs7OztFQUlFLHlCQUFpQjtLQUFqQixzQkFBaUI7VUFBakIsaUJBQWlCO0VBQ2pCLHdCQUF3QjtFQUN4QixVQUFVO0VBQ1YsZUFBZTtFQUNmLGNBQWM7RUFDZCxvQ0FBb0M7RUFDcEMsVUFBVTtFQUNWLFdBQVc7RUFDWCwwQkFBa0I7S0FBbEIsdUJBQWtCO01BQWxCLHNCQUFrQjtVQUFsQixrQkFBa0I7RUFDbEIsWUFBWSxFQU1iO0VBbkJEOzs7O0lBZ0JJLFVBQVU7SUFDVixXQUFXLEVBQ1o7O0FBMEJIO0VBQ0UsVUFBVSxFQUNYOztBQTNERDtFQUNFLFVBQVU7RUFDVixVQUFVO0VBQ1YsV0FBVyxFQUNaOztBQUVEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQXdDRDs7RUFFRSxhQUFhO0VBQ2IsZ0JBQWdCLEVBQ2pCOztBQWZEO0VBQ0UsY0FBYyxFQUNmOztBQUVEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQW5FRDs7Ozs7RUFLRSxnQkFBZ0IsRUFDakI7O0FKdE9IO0VBQ0UseUJBQXlCO0VBQ3pCLGlCQUFpQjtFQUNqQixjQUFjLEVBQ2Y7O0FBS0Q7RUsxQkUsaUJBQWlCO0VBQ2pCLGVDSW1CO0VESG5CLDBCQUF5QjtFQUN6QiwwQkFBeUI7RUFDekIsbUJBQW1CO0VBQ25CLHNDQUFzQyxFTHFCWDs7QUFDN0I7RUtSRSxlQUFlO0VBQ2YsYUFBYTtFQUNiLDBCQUF5QjtFQUN6QiwwQkFBeUI7RUFDekIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsc0NBQXNDO0VBQ3RDLGtCQUFrQixFTEFPOztBQUMzQjtFRXdHRSxVQUFVO0VBQ1YsNkNBRjJCO0VBRzNCLFVBQVU7RUFDVixXQUFXO0VBQ1gsZ0JBQWtCLEVGNUdTOztBQUM3QjtFRDRCRSxVQUFVO0VBQ1YsV0FBVyxFQzdCc0I7RUFBbkM7SURnQ0ksWUFBWTtJQUNaLHNCQUFzQjtJQUN0QixVQUFVO0lBQ1YsV0FBVyxFQUNaOztBQ25DSDtFRE9FLHNCQUFzQjtFQUN0QixtQkFBbUIsRUNSWTtFQUFqQztJRFdJLHNCQUF3QjtJQUN4QixtQkFBbUIsRUFDcEI7O0FDWkg7RURNRSxzQkFBc0I7RUFDdEIsbUJBQW1CLEVDUHFCO0VBQTFDO0lEVUkseUJBQXdCO0lBQ3hCLG1CQUFtQixFQUNwQjs7QUNWSDtFQUFpRCxxQkFBcUIsRUFBRzs7QUFFekU7RUFBUyxrQkFBa0IsRUFBSTs7QUFHL0I7RUFDRSxvQkFBb0IsRUFDckI7O0FBRUQ7RUFDRSxjQUFjLEVBQ2Y7O0FBT0Q7RUFFSSxhQUFhLEVBUWQ7RUFWSDtJQUlNLGVBQWU7SUFDZixlQUFlO0lBQ2YsZUpuRHVCO0lJb0R2QixvQk9yQ21CO0lQc0NuQix5Qk90Q21CLEVQdUNwQjs7QUFUTDtFQVlJLDJCQUEyQjtFQUMzQix1QkFBdUI7RUFDdkIsWUFBWSxFQUNiOztBQWZIO0VBaUJJLFNBQVMsRUFDVjs7QUFsQkg7RUFxQkksWUFBWSxFQUNiOztBQXRCSDtFQXdCSSw0QkFBNEIsRUFDN0I7O0FBekJIO0VBNEJJLGFBQWEsRUFDZDs7QUFHSDtFQUNFLHFCQUFxQjtFQUNyQixtQkFBbUIsRUFLcEI7RUFQRDtJQUlJLHFCT2xFcUI7SVBtRXJCLDJCT25FcUIsRVBvRXRCOztBQU1IO0VBQ0UsY0FBYyxFQVNmO0VHZ2JHO0lIMWJKO01BR0ksd0JBQXdCO01BQ3hCLHVCQUF1QjtNQUN2QixxQkFBcUI7TUFDckIsdUJBQXVCO01BQ3ZCLG1CQUFtQjtNQUNuQix1QkFBdUIsRUFFMUIsRUFBQTs7QUFFRDtFQUNFLDJCQUEyQjtFQUMzQix1QkFBdUI7RUFDdkIsd0JBQXdCO0VBQ3hCLHVCQUF1QjtFQUN2Qiw4QkFBOEIsRUFDL0I7O0FBRUQ7RUFDRSw2QkFBNkIsRUFLOUI7RUdnYUc7SUh0YUo7TUFHSSw0QkFBNEI7TUFDNUIsaUNBQWlDLEVBRXBDLEVBQUE7O0FBRUQ7RUFDRSxzQkFBc0IsRUFDdkI7O0FBRUQ7RUFDRSwyQkFBMkIsRUFDNUI7O0FBRUQ7RUFDRSx1QkFBdUI7RUFDdkIsMkJBQTJCLEVBQzVCOztBQUVEO0VBQ0UseUJBQXlCLEVBQzFCOztBQUVEO0VBQ0UsWUo3SlMsRUk4SlY7O0FROUpEO0VBQ0ksZUFBZTtFQUNmLG9CQUFvQjtFQUNwQixZQUFZLEVBQ2Y7O0FBRUQ7RUFDSSxvQkFBb0I7RUFDcEIsb0JBQW9CLEVBQ3ZCOztBQ1ZEOzs7OztFQ3NCRSxtQkFBbUI7RUFDbkIsbUJUckJ3QjtFU3NCeEIsMEJkT3VCO0VjTnZCLFlBTDJEO0VBTTNELGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsYUFBYTtFQUNiLGlDQUF5QjtVQUF6Qix5QkFBeUI7RUQxQnpCLDhCQUE4QjtFQUM5QixrQkFBa0I7RUFDbEIsMEJBQTBCLEVBVTNCO0VBbEJEOzs7OztJQ21DSSwwQkFBd0IsRUFDekI7RURwQ0g7Ozs7O0lBVUUsOEJBQThCO0lBQzlCLDBCYlkyQjtJYVgzQixzQmJXMkIsRWFOM0I7SUFqQkY7Ozs7O01BY0csb0JiUzBCO01hUjFCLGViQTBCLEVhQzFCOztBRWhCSDtFQUNDLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osb0JBQW9CLEVBMkNwQjtFQTlDRDtJQU1FLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2IsdUJBQXVCO0lBQ3ZCLDRCQUE0QjtJQUM1Qiw2QkFBNkIsRUFrQjdCO0lBNUJGO01BV2lCLGVmWVksRWVaSztJQVhsQztNQVlPLGlCQUFpQixFQUFJO0lBWjVCO01BY0csV0FBVztNQUNYLGtCSnVCc0I7TUl0QnRCLHdEYmJzRCxFYWN0RDtJQWpCSDtNQWtCTSxxQkpvQm1CLEVJcEJNO0lBbEIvQjtNaEI2QkUsWURRMkQ7TUNQM0QsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixjQUFVO01BQ1YsZ0JBQ3FCO01BRHJCLGlCQUU4QixFZ0JYN0I7TUF4Qkg7UVRjSSxZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsRUFDaEI7TVNqQkg7UWhCMERNLGlCQUE2RCxFQUM5RDtNUStlRDtRUTFpQko7VWhCNkJFLFlEUTJEO1VDUDNELFlBQVk7VUFDWixvQkFBb0I7VUFDcEIsa0JBQVU7VUFDVixnQkFDcUI7VUFEckIsaUJBRThCLEVnQlg3QjtVQXhCSDtZVGNJLFlBQVk7WUFDWixZQUFZO1lBQ1osZUFBZSxFQUNoQjtVU2pCSDtZaEIwRE0saUJBQTZELEVBQzlELEVBQUE7SVErZUQ7TVExaUJKO1FBMEJtQixjQUFjLEVBQUksRUFBQTtFQTFCckM7SVR5SEksbUJBQW1CO0lBQ25CLFNBQVM7SUFDVCxvQ0FBcUI7UUFBckIsZ0NBQXFCO1lBQXJCLDRCQUFxQixFUzdGb0M7RUE5QjdEO0lBZ0NFLGtCSk11QixFSU92QjtJQTdDRjtNQWtDRyxtQkpJc0IsRUlFdEI7TUF4Q0g7UUFxQ0ssZWZkd0IsRWVleEI7SUF0Q0w7TUEwQ0csZWZuQjBCO01lb0IxQixvQkpMc0IsRUlNdEI7O0FBSUg7RWhCZ0ZFLFlEM0YyRDtFQzRGM0QsWUFBWTtFQUNaLG9CQUFvQjtFQUNwQixXQUFrQjtFQUNsQixnQkFDcUI7RUFEckIsaUJBRThCO0VnQnBGL0Isb0JKWndCO0VJYXhCLDJCSmJ3QjtFSWN4QixhSmR3QixFSXVCeEI7RUFiRDtJVGxDSSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RUN5aEJDO0lRMWZKO01BTUUsbUJBQW1CO01BQ25CLDRCSmpCdUIsRUl1QnhCLEVBQUE7RVI2ZUc7SVExZko7TWhCZ0ZFLFlEM0YyRDtNQzRGM0QsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixXQUFrQjtNQUNsQixnQkFDcUI7TUFEckIsaUJBRThCO01nQjNFOUIsaUJKckJ1QixFSXVCeEI7TUFiRDtRVGxDSSxZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsRUFDaEIsRUFBQTs7QVM4Q0g7RWhCaUVFLFlEM0YyRDtFQzRGM0QsWUFBWTtFQUNaLG9CQUFvQjtFQUNwQixXQUFrQjtFQUNsQixnQkFDcUI7RUFEckIsaUJBRThCO0VnQnJFL0IsMEJKM0J3QjtFSTRCeEIsa0JBQWtCO0VBQ2xCLDBCQUEwQjtFQUMxQixtQkFBbUIsRUFTbkI7RUFkRDtJVGpESSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RUN5aEJDO0lRM2VKO01BT0UsbUJBQW1CLEVBT3BCLEVBQUE7RVI2ZEc7SVEzZUo7TWhCaUVFLFlEM0YyRDtNQzRGM0QsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixXQUFrQjtNQUNsQixnQkFDcUI7TUFEckIsaUJBRThCO01nQjVEOUIsbUJBQW1CO01BQ25CLGlCSnJDdUIsRUl1Q3hCO01BZEQ7UVRqREksWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlLEVBQ2hCLEVBQUE7O0FTK0RIO0VBQ0MsbUJBQW1CO0VBQ25CLE9BQU87RUFDUCxRQUFRO0VBQ1IsWUFBWTtFQUNaLGFBQWE7RUFDYixtQ2Y5RDRCLEVlK0Q1Qjs7QUFHRDtFQUNDLG1CQUFtQixFQUNuQjs7QUFFRDtFQUNDLFdBQVc7RUFDWCxtQkFBbUIsRUFFbkI7RUFKRDtJQUdjLGNBQWMsRUFBSTs7QUFHaEM7RUFFRSxlQUFlO0VBQ2YsWUFBWSxFQUVaO0VBTEY7SVR0RkksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlLEVBQ2hCOztBU21GSDtFaEJ2RUUsWURRMkQ7RUNQM0QsWUFBWTtFQUNaLG9CQUFvQjtFQUNwQixjQUFVO0VBQ1YsZ0JBQ3FCO0VBRHJCLGlCQUU4QjtFZ0J5RTlCLHFCSnRFdUI7RUl1RXZCLGlCQUFpQjtFQUNqQixrQkFBa0IsRUFTbEI7RUFuQkY7SVR0RkksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlLEVBQ2hCO0VTbUZIO0loQjFDTSxpQkFBNkQsRUFDOUQ7RVErZUQ7SVF0Y0o7TWhCdkVFLFlEUTJEO01DUDNELFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsa0JBQVU7TUFDVixnQkFDcUI7TUFEckIsaUJBRThCLEVnQm9GOUI7TUFuQkY7UVR0RkksWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlLEVBQ2hCO01TbUZIO1FoQjFDTSxpQkFBNkQsRUFDOUQsRUFBQTtFZ0J5Q0w7SUFnQkcsYUFBYTtJQUNiLG1CQUFtQixFQUNuQjs7QUFJSDtFQUVDLGNBQWM7RUFDZCxxQkFBb0I7RUFDcEIsaUJmN0hVLEVld0lWO0VBZkQ7SVQ1R0ksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlLEVBQ2hCO0VTeUdIO0lBTUUsZWZ6RzJCO0llMEczQixtQkFBbUI7SUFDbkIscUJKNUZ1QjtJSTZGdkIsd0RiaEl1RCxFYWlJdkQ7RVJzYUU7SVFoYko7TUFhRSxlQUFlLEVBRWhCLEVBQUE7O0FBRUQ7RUFDQyxjQUFjLEVBV2Q7RUFaRDtJQUdHLGtCQUFrQjtJQUNuQixhQUFhLEVBQ1o7RUFMSDtJQVFHLG9CQUFtQjtJQUNuQixvQko5R3NCO0lJK0d2QixhQUFhLEVBQ1o7O0FDdEpIO0VBQ0Msb0JBQW9CO0VBQ3BCLG9CaEJtQndCO0VnQmxCeEIsZUFBZSxFQUtmO0VUa2lCRztJUzFpQko7TUFNRSxjQUFjLEVBRWYsRUFBQTs7QUFFRDtFQUNDLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsWUFBWSxFQWlEWjtFQXBERDtJQU9FLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLGdDaEJBMkIsRWdCeUIzQjtJQW5DRjtNVklJLFlBQVk7TUFDWixZQUFZO01BQ1osZUFBZSxFQUNoQjtJVVBIO01BWWlCLG1CQUFtQixFQUFJO0lBWnhDO01BZUcsY0FBYztNTGdGZixTQUFTO01BQ1QsVUFBVTtNQU9SLG9DQUFvQztNQUNwQyxxQ0FBcUM7TUFDckMsK0JYOUZxQjtNZ0JNdEIsbUJBQW1CO01BQ25CLGNBQWM7TUFDZCxVQUFVLEVBS1Y7TUF4Qkg7UUFzQkksZUFBZSxFQUNmO0lBdkJKO01BMkJHLGdCTENzQjtNS0F0QiwyQkFBMkIsRUFNM0I7TUFsQ0g7UUErQkksZWhCMUJ5QjtRZ0IyQnpCLGtCQUFrQixFQUNsQjtFVCtmQTtJU2hpQko7TUFzQ0UsY0FBYyxFQWNmO01BcEREO1FBeUNHLGVBQWU7UUFDZixXQUFXO1FBQ1gsa0JBQWtCLEVBT2xCO1FBbERIO1VBOENJLGVBQWU7VUFDZixxQkFBcUI7VUFDckIsaUNoQm5DeUIsRWdCb0N6QixFQUFBOztBQzNESjtFQUNDLFlBQVk7RUFDWixlQUFlO0VBQ2YseUJObUN3QixFTTVCeEI7RVZnaUJHO0lVMWlCSjtNQU1FLHNCQUFzQjtNQUN0QixxQkFBcUI7TUFDckIsWUFBWSxFQUViLEVBQUE7O0FBRUQ7RUFDQyxtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLGVBQWU7RUFDZCxRQUFRLEVBNEVUO0VBaEZEO0lBT0UsV0FBVyxFQTZDWDtJQXBERjtNQVNHLHdCTmlCc0I7TU1oQnRCLDBCakJEc0IsRWlCa0J0QjtNQTNCSDtRQVlJLHdCTmNxQjtRTWJyQixrQkFBa0IsRUFDbEI7TUFkSjtRQWdCSSwrQkFBK0IsRUFDL0I7TUFqQko7UUFtQkksZ0JBQWdCO1FBQ2hCLCtCQUFnQztRQUNoQyxrQkFBa0IsRUFDbEI7TUF0Qko7UUF3QkksZWpCTHFCO1FpQk1yQix5Qk5DcUIsRU1BckI7SVZvZ0JBO01VOWhCSjtRQThCRyxtQkFBbUIsRUFzQnBCO1FBcERGO1VBaUNJLG9CTlBxQixFTVFyQjtRQWxDSjtVQXFDSSxvQk5YcUI7VU1ZckIseUJOWnFCLEVNYXJCLEVBQUE7SVZ1ZkE7TVU5aEJKO1FsQm9IRSxZRDNGMkQ7UUM0RjNELFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsWUFBa0I7UUFDbEIsZ0JBQ3FCO1FBRHJCLGlCQUU4QixFa0J4RTVCO1FBbERKO1VYRUksWUFBWTtVQUNaLFlBQVk7VUFDWixlQUFlLEVBQ2hCO1FXTEg7VUFnREssd0JOdEJvQixFTXVCcEIsRUFBQTtFQWpETDtJQXVERSxXQUFXO0lBQ1gsdUJBQXVCO0lBQ3ZCLGdDQUFnQztJQUNoQyw2QkFBNkI7SUFDN0IsbUJBQW1CLEVBVW5CO0lBckVGO01BOERHLG1CQUFtQjtNQUNuQixPQUFPO01BQ1AsUUFBUTtNQUNSLGFBQWE7TUFDYixZQUFZO01BQ1osV0FBVyxFQUNYO0VWMGRDO0lVOWhCSjtNQXdFRSxlQUFlO01BQ2YsdUJBQXVCLEVBT3hCO01BaEZEO1FBMEVpQix1Qk5oRFEsRU1nRGtCO01BMUUzQztRQTZFRywyQkFBMkIsRUFDM0IsRUFBQTs7QUFJSDtFQUNDLGlCTnpEd0IsRU0wRHhCOztBQUdEO0VBQ0MsbUJBQW1CO0VBQ25CLGlCTi9Ed0I7RU1nRXhCLG1CQUFtQjtFQUNuQixjQUFjLEVBWWQ7RUFoQkQ7SUFPRSxvQk5wRXVCO0lNcUV2QixxQk5yRXVCLEVNc0V2QjtFQVRGO0lBYUUsZWpCekYyQjtJaUIwRjNCLGlCQUFpQixFQUNqQjs7QUFHRjtFQUNDLG9CTmhGd0IsRU1pRnhCOztBQ3ZIRDtFQUNDLGNBQWM7RUFDZCxnQkFBZ0I7RUFDZixZQUFZO0VBQ2IsT0FBTztFQUNQLFlBQVk7RUFDWixjQUFjO0VBQ2Qsa0NsQk5VLEVrQk9WOztBQUVEO0VaK0dJLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1Qsb0NBQXFCO01BQXJCLGdDQUFxQjtVQUFyQiw0QkFBcUI7RVkvR3hCLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1oscUJQd0J3QjtFT3ZCeEIsV0FBVztFQUNYLGVBQWU7RUFDZixrQlBxQndCO0VPcEJ4QixvQmxCSzRCO0VrQko1QixtQkFBbUI7RUFDbkIseUJQa0J3QjtFT2pCdkIsd0ZBQWdGLEVBK0JqRjtFQTFDRDtJQWFHLGtCQUFrQjtJQUNuQix3RGhCckJ1RCxFZ0JzQnREO0VBZkg7SUFpQkcsb0JBQW1CO0lBQ25CLG9CUFVzQixFT1R0QjtFQW5CSDtJQXFCRyxrQkFBa0IsRUFDbEI7RUF0Qkg7SUF5QkcsV0FBVztJQUNYLHNCUEVzQjtJT0R2QixZQUFZLEVBUVg7SUFuQ0g7TUE2Qkksd0JQRHFCO01PRXJCLGtCQUFrQjtNQUNsQixnQlBIcUI7TU9JckIsbUJBQW1CO01BQ3BCLGtCQUFrQixFQUNqQjtFQWxDSjtJQXVDRyxZbEJoRFEsRWtCaURSOztBQUlIO0VBQ0UsbUJBQW1CO0VBQ25CLG1CUGxCdUI7RU9tQnZCLE9BQU87RUFDUCxTQUFTO0VBQ1QsZ0JBQWdCLEVBTWpCO0VBWEQ7SUFPRSxlUHZCdUI7SU93QnZCLGdCUHhCdUI7SU95QnJCLFdsQjlETyxFa0IrRFQ7O0FDaEVGO0VBQ0MsZUFBZSxFQUlmO0VacWlCRztJWTFpQko7TUFHRSxnQkFBZ0IsRUFFakIsRUFBQTs7QUFFRDtFQUNDLHVCQUFzQixFQUN0Qjs7QUFFRDtFQUNDLG1CQUFtQixFQStDbkI7RUFoREQ7SUFJRSxtQkFBbUIsRUFDbkI7RUFMRjtJQU9FLHlCUm9CdUIsRVFuQnZCO0VBUkY7SUFXRSxlQUFlLEVBRWY7SUFiRjtNYkdJLFlBQVk7TUFDWixZQUFZO01BQ1osZUFBZSxFQUNoQjtFYU5IO0lBZ0JHLGdCUldzQjtJUVZ0QixjQUFjO0lBQ2QsYUFBYTtJQUNiLGlCQUFpQjtJQUNsQixlUk91QixFUU52QjtFWjBnQkU7SVkvaEJKO01wQnFIRSxZRDNGMkQ7TUM0RjNELFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsV0FBa0I7TUFDbEIsZ0JBQ3FCO01BRHJCLGlCQUU4QixFb0JqRzVCO01BMUJKO1FiR0ksWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlLEVBQ2hCO0lhTkg7TXBCcUhFLFlEM0YyRDtNQzRGM0QsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixXQUFrQjtNQUNsQixnQkFDcUI7TUFEckIsaUJBRThCLEVvQjdGNUI7TUE5Qko7UWJHSSxZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsRUFDaEIsRUFBQTtFQ3loQkM7SVkvaEJKO01BbUNHLFdBQVcsRUFDWDtJQXBDSDtNcEJxSEUsWUQzRjJEO01DNEYzRCxZQUFZO01BQ1osb0JBQW9CO01BQ3BCLFlBQWtCO01BQ2xCLGdCQUNxQjtNQURyQixpQkFFOEI7TW9CcEY1Qix3QlJacUI7TVFhdEIsZ0JBQWdCO01BQ2hCLG1CQUFtQixFQUNsQjtNQTFDSjtRYkdJLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZSxFQUNoQjtJYU5IO01wQnFIRSxZRDNGMkQ7TUM0RjNELFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsWUFBa0I7TUFDbEIsZ0JBQ3FCO01BRHJCLGlCQUU4QixFb0I3RTVCO01BOUNKO1FiR0ksWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlLEVBQ2hCLEVBQUE7O0FhNENIO0VBRUUseUJBQXlCLEVBQ3pCOztBQUhGO0VBS0UsZUFBZSxFQUNmOztBQUdGO0VBRUUsZUFBZSxFQUNmOztBQUdGO0VBRUUsZUFBZSxFQUNmOztBQUdGO0VBQ0MsY0FBYztFQUNkLGVBQWU7RUFDZCxRQUFRO0VBQ1IsaUJuQnJGUztFbUJzRlQsZUFBZTtFQUNmLG1CQUFtQixFQXlFcEI7RUEvRUQ7SUFTRSxXQUFXO0lBQ1gsWUFBWTtJQUNaLHdCUnZEdUIsRVF3RHZCO0VBWkY7SUFlRSxlbkIxRTJCLEVtQjJFM0I7RUFoQkY7SUFtQkUsNEJBQTRCLEVBQzVCO0VBcEJGO0lBdUJFLHNCUm5FdUIsRVFvRXZCO0VBeEJGO0lBMkJFLFdBQVc7SUFDWCxZQUFZLEVBQ1o7RVoyYkU7SVl4ZEo7TUErQkUsYUFBYTtNQUNiLG1CQUFtQixFQStDcEI7TUEvRUQ7UUFtQ0csbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixhQUFhO1FBQ2IseUJSbEZzQjtRUW1GdEIsbUJBQW1CLEVBaUNuQjtRQXhFSDtVQTJDSSxtQkFBbUI7VUFDbkIsYUFBYTtVQUNiLG1CUnpGcUI7VVEwRnJCLFdBQVcsRUF5Qlg7VUF2RUo7WUFnREssMkJBQTJCO1lBQzNCLDRCQUE0QixFQU8zQjtZQXhETjtjQW1ETSw2QkFBNkIsRUFDN0I7WUFwRE47Y0FzRE0sMEJBQTBCLEVBQzFCO1VBdkROO1lBMERNLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsWUFBWTtZQUNaLGtDQUEwQjtvQkFBMUIsMEJBQTBCLEVBQzNCO1VBOURMO1lBZ0VNLE9BQU87WVJ6Q1gsU0FBUztZQUNULFVBQVU7WUFPUixvQ0FBb0M7WUFDcEMscUNBQXFDO1lBQ3JDLCtCWHBGcUIsRW1CcUhwQjtVQWxFTDtZQW9FSyxZQUFZO1lSN0NmLFNBQVM7WUFDVCxVQUFVO1lBR1Isa0NYOUVxQjtZVytFckIsb0NBQW9DO1lBQ3BDLHFDQUFxQyxFUXlDcEM7TUF0RUw7UUEwRUcsWUFBWTtRQUNaLFlBQVksRUFDWixFQUFBOztBQUtIO0VBRUUsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixPQUFPO0VBQ1AscUNBQVU7RUFBViw2QkFBVTtFUi9EVixTQUFTO0VBQ1QsVUFBVTtFQU9SLG9DQUFvQztFQUNwQyxxQ0FBcUM7RUFDckMsNEJRc0R5QztFQUMzQyxnQ0FBZ0I7TUFBaEIsNEJBQWdCO1VBQWhCLHdCQUFnQixFQUNqQjs7QUFFRDtFQUVFLHNCUnpJdUI7RVEwSXZCLCtCUjFJdUI7RVEySXZCLFlBQVk7RUFDWixZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLCtDQUF1QztVQUF2Qyx1Q0FBdUMsRUFFdkM7RUFURjtJQVFZLDhFQUEwRCxFQUFnQjs7QUFSdEY7RUFXRSxlQUFlO0VBQ2YsZUFBZTtFQUNmLG9CQUFvQjtFQUNwQixtQkFBbUIsRUFDbkI7O0FBZkY7RUFpQkUsa0JBQWtCLEVBQ2xCOztBWjJXRTtFWTdYSjtJQW9CRSxtQkFBbUIsRUFVcEI7SUE5QkQ7TUFzQkcsV0FBVztNQUNYLGVBQWU7TUFDZixtQkFBbUIsRUFDbkI7SUF6Qkg7TUEyQkcsWUFBWSxFQUNaLEVBQUE7O0FBSUg7RUFDQyxhQUFhO0VBQ2IscUJBQW9CO0VBQ3BCLG9DQUFtQztFQUNsQyxpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQixpQkFBaUIsRUE2QmxCO0VBcENEO0lBU0csc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQixpQkFBaUIsRUFpQmpCO0lBNUJIO01BYUksWUFBWTtNQUNaLG1CQUFtQjtNQUNuQixZQUFZO01BQ1osaUNuQnhNcUI7TW1CeU1yQixPQUFPO01BQ1AsYUFBYSxFQUNiO0lBbkJKO01BcUJHLFlBQVk7TUFDWixtQkFBbUIsRUFDbkI7SUF2Qkg7TUF5QkcsV0FBVztNQUNWLGtCQUFrQixFQUNuQjtFWmtVQztJWTdWSjtNQWdDSyxrQkFBa0IsRUFDbEIsRUFBQTs7QUM5T0w7RUFDRSxjQUFjLEVBaUJmO0Vid2hCRztJYTFpQko7TUFJSSxlQUFlO01BQ2pCLGFBQWE7TUFDYixvQkFBb0IsRUFZckI7TUFsQkQ7UUFTRyxZQUFZO1FBQ1osd0JBQXdCO1FBQ3JCLG1CQUFtQixFQUt0QjtRQWhCSDtVQWNRLFFBQVEsRUFDWixFQUFBOztBQU1KO0VBQ0MsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsb0JBQW9CO0VBQ25CLHVCVFl1QixFU1l4QjtFQTdCRDtJQVFFLGNBQWM7SUFDZCxpQlRRdUI7SVNQdkIsZ0JUT3VCO0lTTnZCLHVCQUF1QjtJQUNyQixZQUFZO0lBQ2QsV3BCakNTLEVvQm1DVDtJQWZGO01BY2tCLHNCQUFzQixFQUFJO0VBZDVDO0lBa0JJLFlBQVk7SUFDWixVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2xCLDBCQUEwQjtJQUMxQixnQlRMdUI7SVNNckIsd0RsQnpDcUQsRWtCMEN2RDtFYjZmRTtJYXJoQko7TUEyQkUsZUFBZSxFQUVoQixFQUFBOztBQUVEO0VBQ0UsbUJBQW1CO0VBQ25CLFVBQVU7RUFDVixXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gseUNBQWlDO1VBQWpDLGlDQUFpQyxFQTJCbEM7RUFsQ0Q7SUFVSSxlQUFlO0lBQ2Ysb0JBQW9CO0lBQ3BCLHFCVDFCcUI7SVMyQnJCLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFDakI7RUFmSDtJQWtCSSxzQkFBc0I7SVRtQ3hCLFNBQVM7SUFDVCxVQUFVO0lBZVIscUNBQXNDO0lBQ3RDLDZCU25EbUM7SVRvRG5DLGtDQUFtQztJU25EbkMsd0JUbENxQjtJU21DckIsZ0NBQXdCO1FBQXhCLDRCQUF3QjtZQUF4Qix3QkFBd0IsRUFLekI7SUExQkg7TVRxREUsU0FBUztNQUNULFVBQVU7TUFPUixtQ0FBb0M7TUFDcEMsb0NBQXFDO01BQ3JDLDRCU3ZDb0MsRUFDbkM7RUF6Qkw7SUE2Qkksc0JBQXNCO0lBQ3RCLG9CVDVDcUI7SVM2Q3JCLG9CQUFvQjtJQUNwQiwwQkFBMEIsRUFDM0I7O0FBR0g7RUFDQyxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixlQUFlLEVBbUVmO0VBdkVEO0lBT0UsMEJBQTBCO0lBQ3hCLHVDVDFEcUI7SVMyRHZCLG9CVDNEdUI7SVM0RHZCLFdBQVc7SUFDWCxzQ0FBcUI7UUFBckIsa0NBQXFCO1lBQXJCLDhCQUFxQjtJQUNuQixZQUFZLEVBV2Q7SUF2QkY7TUFlTSxpQ0FBcUI7VUFBckIsNkJBQXFCO2NBQXJCLHlCQUFxQjtNQUNyQixXQUFXLEVBQ1o7SUFqQkw7TUFvQkcsZXBCN0YwQjtNb0I4RjFCLGtCQUFrQixFQUNsQjtFQXRCSDtJQTBCRSxlQUFlO0lBQ2IsK0JBQWdDLEVBMkNsQztJQXRFRjtNQThCRyxjQUFjLEVBQ2Q7SUEvQkg7TUFrQ0csdURBQXVDO2NBQXZDLHVDQUF1QyxFQUN2QztJQW5DSDtNQXNDRyx5REFBeUM7Y0FBekMseUNBQXlDLEVBQ3pDO0lBdkNIO01BMENHLHVEQUF1QztjQUF2Qyx1Q0FBdUMsRUFDdkM7SUEzQ0g7TUE4Q0cseURBQXlDO2NBQXpDLHlDQUF5QyxFQUN6QztJQS9DSDtNQWtERyxxREFBcUM7Y0FBckMscUNBQXFDLEVBQ3JDO0lBbkRIO01Bc0RHLDJEQUEyQztjQUEzQywyQ0FBMkMsRUFDM0M7SUF2REg7TUEwREcsMkRBQTJDO2NBQTNDLDJDQUEyQyxFQUMzQztJQTNESDtNQThERywyREFBMkM7Y0FBM0MsMkNBQTJDLEVBQzNDO0lBL0RIO01BbUVRLGVwQjVJcUIsRW9CNkl0Qjs7QUFLUDtFQUNDLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsMEJBQTBCLEVBMEIxQjtFQTdCRDtJQU1FLG9CQUFvQjtJQUNwQixpREFBbUQ7SUFDbkQsaUNBQWlDLEVBZ0JqQztJQXhCRjtNQVlRLGVwQjlKcUIsRW9CK0p0QjtJQWJQO01BaUJHLCtCQUErQjtNQUMvQiw4QkFBOEIsRUFDOUI7SUFuQkg7TUFzQkcsb0JBQW9CLEVBQ3BCO0VBdkJIO0lBMkJFLG9CVHRKdUIsRVN1SnZCOztBQzdMRjtFQUNFLG9CckJjMkI7RXFCYjNCLGtCVm9DdUIsRVU1QnhCO0VBVkQ7SUFJcUIsbUJBQW1CLEVBQUk7RWRzaUJ4QztJYzFpQko7TUFPSSxvQkFBb0I7TUFDcEIsbUJBQW1CLEVBRXRCLEVBQUE7O0FBRUQ7RUFDQyxrQlZ5QndCO0VVeEJ4Qix5QlZ3QndCLEVVdkJ4Qjs7QUFFRDtFQUNDLG1CQUFtQixFQVduQjtFQVpEO0lBR0Usc0JBQXNCLEVBQ3RCO0VBSkY7SUFNRSxjckJBMkI7SXFCQzNCLGVyQkQyQjtJcUJFM0IsZ0JWYXVCO0lVWnZCLGtCQUFrQjtJQUNsQiwwQkFBMEIsRUFDMUI7O0FBR0Y7RUFFRSx3QlZLdUIsRVVIdkI7RUFKRjtJQUdxQixnQkFBZ0IsRUFBSTs7QUFIekM7RUFNRSxrQlZDdUI7RVVBdkIsZ0NyQmYyQjtFcUJnQjNCLDBDQUFrQztVQUFsQyxrQ0FBa0MsRUFFbEM7RUFWRjtJQVNZLGVBQWMsRUFBZ0I7O0Fka2dCdEM7RWMzZ0JKO0lBWUksY0FBYyxFQUVqQixFQUFBOztBQUVEO0VBQ0MscUJBQW9CLEVBNkJwQjtFQTlCRDtJQUlJLHFCVmJxQixFVWN0QjtFQUxIO0lBUUUsZUFBZTtJQUNmLGtCVmxCdUI7SVVtQnZCLGlCVm5CdUI7SVVvQnZCLDBCckJuQzJCO0lxQm9DM0IsbUJBQW1CLEVBS25CO0lBakJGO01BY0csb0JyQnRDMEIsRXFCd0MxQjtNQWhCSDtRQWVTLGNyQi9Db0IsRXFCK0NMO0VBZnhCO0lBb0JFLG1CQUFtQjtJQUNuQixnQlY5QnVCO0lVK0J2QixpQlYvQnVCO0lVZ0N2QixnQlZoQ3VCO0lVaUN2QixtQlZqQ3VCLEVVa0N2QjtFZGtlRTtJYzNmSjtNQTRCSSxzQkFBc0IsRUFFekIsRUFBQTs7QUFFRDtFQUNDLGVyQnpENEI7RXFCMEQ1QixtQlYzQ3dCO0VVNEN4QixtQkFBbUI7RUFDbkIsMEJBQTBCLEVBZ0IxQjtFQXBCRDtJQU1FLGVyQjlEMkIsRXFCbUUzQjtJQVhGO01BUUcsZXJCaEUwQjtNcUJpRTFCLDJCQUEyQixFQUMzQjtFZGlkQztJYzNkSjtNQWFJLG1CQUFtQjtNQUNuQixVQUFVO01BQ1YsUUFBUTtNQUNSLFNBQVM7TUFDVCxrQkFBa0I7TUFDbEIsbUJBQW1CLEVBRXRCLEVBQUE7O0FDbkdEO0VBQ0MsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixvQnRCb0I0QixFc0JmNUI7RUFSRDtJQU1FLHlCQUFzQixFQUN0Qjs7QUFHRjtFQUNDLG9CQUFvQjtFQUNwQixZQUFZLEVBa0NaO0VBcENEO0lBS0UsMkJBQTBCO0lBQzFCLG9CWHNCdUI7SVdyQnZCLGlCQUFpQjtJQUNqQixZQUFZO0l2QjJNWixZQUFZO0lBQ1osa0JNbk5jO0lOb05kLFlBQVk7SUFDWixlQUFlO0lBQ2YsbUJBQ2M7SUFEZCxrQkFFYztJQUVkLGdCdUJsTjJCO0l2QmtOM0IsaUJ1QmxOMkIsRUFZM0I7SUFyQkY7TWhCSUksWUFBWTtNQUNaLFlBQVk7TUFDWixlQUFlLEVBQ2hCO0lnQlBIO01oQklJLFlBQVk7TUFDWixZQUFZO01BQ1osZUFBZSxFQUNoQjtJZ0JQSDtNQWFHLFlBQVksRUFDWjtJQWRIO01BaUJHLGFBQWE7TUFDYixrQkFBa0IsRUFDbEI7RUFuQkg7SUF3QkUsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxXQUFXLEVBRVg7RWZvZ0JFO0llaGlCSjtNQWdDRyx1QlhKc0I7TVdLdEIsaUJBQWlCLEVBQ2pCLEVBQUE7O0FBSUg7RUFDQyxtQkFBbUI7RUFDbkIsZVhad0I7RVdheEIsZ0JYYndCO0VXY3hCLGlCWGR3QixFV2V4Qjs7QUFFRDtFQUNDLHNCQUFzQixFQUt0QjtFZjZlRztJZW5mSjtNQUlFLGNBQWMsRUFFZixFQUFBOztBQUVEO0VBQ0MseUJBQXlCO0VBQ3pCLGFBQWE7RUFDYixlWDVCd0IsRVdrQ3hCO0Vma2VHO0llM2VKO01BS0UsaUNBQWlDO01BQ2pDLFdBQVcsRUFHWjtNQVREO1FBT1UsNkJBQTZCLEVBQUksRUFBQTs7QUFJM0M7RUFDQyxZQUFZO0VBQ1osb0J0QnJENEI7RXNCc0Q1Qix1Q3RCeER3QixFc0JzR3hCO0VBakREO0lBTUUsYVgxQ3VCO0lXMkN2QixvQkFBcUI7SUFDckIsWUFBWTtJdkIySVosWUFBWTtJQUNaLGtCTW5OYztJTm9OZCxZQUFZO0lBQ1osZUFBZTtJQUNmLG1CQUNjO0lBRGQsa0JBRWM7SUFFZCxnQnVCbEoyQjtJdkJrSjNCLGlCdUJsSjJCLEVBQzNCO0lBVkY7TWhCNURJLFlBQVk7TUFDWixZQUFZO01BQ1osZUFBZSxFQUNoQjtFZ0J5REg7SUFhRSxlQUFlO0lBQ2YsZ0JBQWdCLEVBQ2hCO0VBZkY7SUFrQkUsYUFBYSxFQUNiO0VBbkJGO0lBc0JFLGdCQUFnQjtJQUNoQixPQUFPO0lBQ1AsV0FBVyxFQW9CWDtJQTVDRjtNQTJCRyxlWC9Ec0I7TVdnRXRCLHFCQUFxQjtNQUNyQiwrQkFBdUI7Y0FBdkIsdUJBQXVCLEVBQ3ZCO0lBOUJIO01BaUNHLGNBQWMsRUFDZDtJQWxDSDtNQXFDRyxhQUFhO01BQ2IsK0JBQXVCO2NBQXZCLHVCQUF1QixFQUN2QjtJQXZDSDtNQTBDRyxXQUFXLEVBQ1g7RWZxYkM7SWVoZUo7TUErQ0UsYUFBYSxFQUVkLEVBQUE7O0FBRUQ7RUFDQyxjQUFjO0V2QkViLFlEM0YyRDtFQzRGM0QsWUFBWTtFQUNaLG9CQUFvQjtFQUNwQixXQUFrQjtFQUNsQixnQkFDcUI7RUFEckIsaUJBRThCLEV1QlMvQjtFQWxCRDtJaEIvR0ksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlLEVBQ2hCO0VDeWhCQztJZTdhSjtNdkJHRSxZRDNGMkQ7TUM0RjNELFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsWUFBa0I7TUFDbEIsZ0JBQ3FCO01BRHJCLGlCQUU4QjtNdUJKOUIsbUJBQW1CLEVBYXBCO01BbEJEO1FoQi9HSSxZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsRUFDaEI7TWdCNEdIO1FBT0csWUFBWTtRQUNaLG9CWC9Gc0IsRVdnR3RCLEVBQUE7RUFUSDtJaEJKSSxtQkFBbUI7SUFDbkIsU0FBUztJQUNULG9DQUFxQjtRQUFyQixnQ0FBcUI7WUFBckIsNEJBQXFCO0lnQmV2QixrQkFBa0IsRUFJbEI7SWY0WkU7TWU3YUo7UUFlRyxjQUFjLEVBRWYsRUFBQTs7QUFHRjtFQUNDLHNCQUFzQjtFQUN0QixtQkFBbUIsRUFtQ25CO0VBckNEO0lBSUUsV0FBVztJQUNYLGlCQUFpQixFQUNqQjtFQU5GO0lBU2MsY0FBYyxFQUFJO0VBVGhDO0lBWUUsc0JBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixlWHpIdUIsRVc2SHZCO0lmdVlFO01lelpKO1FBZ0JHLFVBQVUsRUFFWCxFQUFBO0VBbEJGO0lBc0JTLHlCQUF5QixFQUFJO0VBdEJ0QztJQXdCRyxhQUFhO0lBQ2IsZUFBZTtJQUNmLDJDQUEyQjtJQUMzQix5Q1h0SXNCO0lXdUl0Qix5Qlh2SXNCO0lXd0l0QixtQlh4SXNCLEVXeUl0QjtFQTlCSDtJQWdDZ0MsZXRCOUpIO0lzQjhKdUIsMEJBQTBCLEVBQUk7RUFoQ2xGO0lBaUNzQixldEIvSk87SXNCK0phLDBCQUEwQixFQUFJO0VBakN4RTtJQWtDdUIsZXRCaEtNO0lzQmdLYywwQkFBMEIsRUFBSTtFQWxDekU7SUFtQzJCLGV0QmpLRTtJc0JpS2tCLDBCQUEwQixFQUFJOztBQUk3RTtFQUdDLG1CQUFtQjtFQUNuQixZWHRKd0I7RVd1SnhCLGFYdkp3QjtFV3dKeEIsZ0JYeEp3QjtFV3lKeEIsZVh6SndCLEVXMEp4Qjs7QUNoTUQ7RUFDQyxxQkFBcUI7RUFDckIsbUJBQW1CLEVBS25CO0VoQm1pQkc7SWdCMWlCSjtNQUtFLG9CQUFvQixFQUVyQixFQUFBOztBQUVEO0VBQ0MsWUFBWTtFQUVaLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsb0Jad0J3QixFWW5CeEI7RUFWRDtJakJLSSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RUN5aEJDO0lnQmppQko7TUFRRSxXQUNBLEVBQ0QsRUFBQTs7QWhCdWhCRztFZ0JwaEJIO0lBQXFCLGNBQWMsRUFBSSxFQUFBOztBQUl4QztFQUNDLHNCQUFzQjtFQUN0QixZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLHlCWlF3QixFWWdDeEI7RUE1Q0Q7SUFRRyxXQUFXO0lBQ1gseUN2QnBCMEIsRXVCMEIxQjtJQWZIO01BVWlCLDBDdkJUUSxFdUJTcUM7SUFWOUQ7TUFXZ0IsMEN2QlRRLEV1QlNtQztJQVgzRDtNQVllLDBDdkJUVSxFdUJTbUM7SUFaNUQ7TUFhZ0IsMEN2QlRRLEV1QlNtQztJQWIzRDtNQWNhLDBDdkJUWSxFdUJTZ0M7RUFkekQ7SUF1QkUsZUFBZTtJQUFFLDZCQUE2QjtJQUM3QyxxQkFBcUI7SUFDckIsZUFBa0I7SUFBOEIsNkJBQTZCO0lBQzlFLHNCWmR1QjtJWWV2QixvQlpmdUI7SVlnQnZCLG1CQUFtQjtJQUNsQixnQkFWZTtJQVdmLGlCQVZnQjtJQVdoQixzQkFWZ0I7SUFXaEIsNkJBQTZCO0lBQzdCLGlCQUFpQjtJQUNqQix3QkFBd0IsRUFDekI7RWhCNmVFO0lnQmhoQko7TUFzQ0UsWUFBWSxFQU1iO01BNUNEO1FBeUNHLG9CWjdCc0IsRVk4QnRCLEVBQUE7O0FBSUg7RUFDQyxlQUFlLEVBQ2Y7O0FBRUQ7RXhCb0RFLFlEM0YyRDtFQzRGM0QsWUFBWTtFQUNaLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsZ0JBQ3FCO0VBRHJCLGlCQUU4QjtFd0J4RC9CLHlCWnhDd0IsRVk2RHhCO0VBdkJEO0lqQjlESSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RWlCMkRIO0lBSUUsc0JaMUN1QjtJWTJDdkIsb0JaM0N1QjtJWTRDdkIsZ0JaNUN1QjtJWTZDdkIsbUJBQW1CLEVBQ25CO0VBUkY7SUFXRyxXQUFXO0lBQ1gseUN2QnpFMEIsRXVCK0UxQjtJQWxCSDtNQWFpQiwwQ3ZCOURRLEV1QjhEcUM7SUFiOUQ7TUFjZ0IsMEN2QjlEUSxFdUI4RG1DO0lBZDNEO01BZWUsMEN2QjlEVSxFdUI4RG1DO0lBZjVEO01BZ0JnQiwwQ3ZCOURRLEV1QjhEbUM7SUFoQjNEO01BaUJhLDBDdkI5RFksRXVCOERnQztFaEI2Y3JEO0lnQjlkSjtNeEJvREUsWUQzRjJEO01DNEYzRCxZQUFZO01BQ1osb0JBQW9CO01BQ3BCLFlBQWtCO01BQ2xCLGdCQUNxQjtNQURyQixpQkFFOEIsRXdCbkMvQjtNQXZCRDtRakI5REksWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlLEVBQ2hCLEVBQUE7O0FpQm9GSDtFQUNDLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsUUFBUTtFQUNSLFlBQVk7RUFDWixhQUFhO0VBQ2IsV0FBVztFQUNYLHVDdkI3RjRCO0V1QjhGNUIsb0NBQTRCO1VBQTVCLDRCQUE0QixFQW1DNUI7RUEzQ0Q7SUFTc0QsV0FBVyxFQUFJO0VBVHJFO0lBVWUsd0N2QnBGVSxFdUJvRmlDO0VBVjFEO0lBV2Msd0N2QnBGVSxFdUJvRitCO0VBWHZEO0lBWWEsd0N2QnBGWSxFdUJvRitCO0VBWnhEO0lBYWMsd0N2QnBGVSxFdUJvRitCO0VBYnZEO0lBY1csd0N2QnBGYyxFdUJvRjRCO0VBZHJEO0lqQm9CSSxtQkFBbUI7SUFDbkIsU0FBUztJQUNULG9DQUFxQjtRQUFyQixnQ0FBcUI7WUFBckIsNEJBQXFCO0lpQkx2QixtQkFBbUIsRUF5Qm5CO0lBMUNGO01BbUJHLGV2QmpHMEI7TXVCa0cxQixvQlpuRnNCO01Zb0Z0QixrQkFBa0I7TUFDbEIsb0JBQW9CO01BQ3BCLG1CQUFtQjtNQUNuQiwwQkFBMEIsRUFDMUI7SUF6Qkg7TUEyQkcsa0JaMUZzQjtNWTJGdEIsZ0JaM0ZzQjtNWTRGdEIsaUJaNUZzQjtNWTZGdEIsZ0J2QjVHMEI7TXVCOEcxQixXQUFXO01BQ1gsZ0N2Qi9HMEI7TXVCZ0gxQixtQkFBbUIsRUFPbkI7TWhCNFpDO1FnQnJjSjtVQXFDSSxpQlpwR3FCO1VZcUdyQixrQlpyR3FCO1VZc0dyQixtQkFBbUIsRUFFcEIsRUFBQTs7QUFJSDtFQUdHLDBCQUEwQixFQUMxQjs7QUFJSDtFQUVFLHlCQUF5QixFQUN6Qjs7QUFHRjtFQUNDLG1CQUFtQjtFQUNuQixZQUFZO0VqQmxIWCxpQkFBaUI7RUFDakIsbUJBQW1CO0VpQm9IcEIsdUJBQXVCO0VBQ3ZCLDRCQUE0QjtFQUM1Qix5Q3ZCeEo0QixFdUJtSzVCO0VBbEJEO0lqQjVHSSxZQUFZO0lBQ1osZUFBZTtJQUNmLFVBQVU7SUFDVixpQkFBZSxFQUNoQjtFaUJ3R0g7SUFRZSwwQ3ZCN0lVLEV1QjZJbUM7RUFSNUQ7SUFTYywwQ3ZCN0lVLEV1QjZJaUM7RUFUekQ7SUFVYSwwQ3ZCN0lZLEV1QjZJaUM7RUFWMUQ7SUFXYywwQ3ZCN0lVLEV1QjZJaUM7RUFYekQ7SUFZVywwQ3ZCN0ljLEV1QjZJOEI7O0FBUXZEO0VBQ0MsZUFBZTtFQUNmLFFBQVE7RUFDUixZQUFZO0VBQ1osbUJBQW1CLEVBa0JuQjtFQXRCRDtJQU1FLGNBQWM7SUFDZCwwQnZCcEsyQjtJdUJxSzNCLGV2QjdKdUI7SXVCOEp2QiwwQnZCOUp1QixFdUIwS3ZCO0lBckJGO01BV0csb0J2QmhLc0I7TXVCaUt0QixldkJ6SzBCLEV1QjBLMUI7SUFiSDtNQWNXLGNBQWMsRUFBSTtJaEJ3V3pCO01nQnRYSjtRQWlCSSx3QkFBd0I7UUFDeEIsZXZCdktxQixFdUJ3S3JCLEVBQUE7O0FBS0o7RUFDQyxtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLHVCQUF1QjtFQUN2Qiw0QkFBNEI7RUFDNUIsNkJBQTZCO0VBQzdCLDBCdkJuTTRCLEV1QjBONUI7RUE3QkQ7SWpCbkZJLG1CQUFtQjtJQUNuQixTQUFTO0lBQ1Qsb0NBQXFCO1FBQXJCLGdDQUFxQjtZQUFyQiw0QkFBcUI7SWlCMkZ2QixXQUFXO0lBQ1gsbUJBQW1CLEVBT25CO0lBbEJGO01BWVcsZXZCak1rQixFdUJpTUQ7SUFaNUI7TUFhTyx5QlpuTGtCLEVZbUxVO0lBYm5DO01BZUcsMEJBQTBCLEVBRTFCO0VoQjZVQztJZ0I5Vko7TUFxQkUsYUFBYTtNQUNiLG9CQUFvQixFQU9yQjtNQTdCRDtRakIvRUksbUJBQW1CO1FBQ25CLE9BQU87UUFDUCxpQ0FBcUI7WUFBckIsNkJBQXFCO2dCQUFyQix5QkFBcUI7UWlCdUd0QixrQkFBa0IsRUFDbEIsRUFBQTs7QUFJSDtFQUNDLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsUUFBUTtFQUNSLFlBQVk7RUFDWixhQUFhO0VBQ2IsbUN2QnpONEIsRXVCME41Qjs7QUFFRDtFQWFDLGVBQWU7RUFDZixlQUFlO0VBQ2Ysb0JBQW9CLEVBb0dwQjtFQW5IRDtJQUVFLHFCWmhOdUI7SVlpTnZCLG1CQUFtQixFQUNuQjtFQUpGO0lBTUUseUJacE51QjtJWXFOdkIsb0Jack51QixFWXNOdkI7RUFSRjtJQVVFLG1CQUFtQixFQUNuQjtFQVhGO0lqQnRPSSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RWlCbU9IO0lBaUJFLGlCQUFpQjtJQUNqQixrQlpoT3VCLEVZaU92QjtFQW5CRjtJQXFCRSxrQkFBa0IsRUFDbEI7RUF0QkY7SUF5QkUsMkJBQTJCLEVBSTNCO0lBN0JGO014QnZORSxZRFEyRDtNQ1AzRCxZQUFZO01BQ1osb0JBQW9CO01BQ3BCLGFBQVU7TUFDVixnQkFDcUI7TUFEckIsaUJBRThCLEV3QjZPN0I7TUE1Qkg7UWpCdE9JLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZSxFQUNoQjtNaUJtT0g7UXhCMUxNLGlCQUE2RCxFQUM5RDtFd0J5TEw7SUFnQ0UsMkJBQTJCLEVBQzNCO0VBakNGO0lqQnRPSSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RWlCbU9IO0lBc0NFLGV2QjdQdUI7SXVCOFB2QixtQ3ZCOVB1QixFdUJtUXZCO0lBNUNGO01BeUNHLHdCWnZQc0I7TVl3UHRCLGV2QmpRc0IsRXVCa1F0QjtFQTNDSDtJQThDRSx1Qlo1UHVCO0lZOFB2Qix1QkFBdUIsRUFnQnZCO0lBaEVGO01Ba0RHLG1CQUFtQjtNQUNuQix5QlpqUXNCO01Za1F0QixzQlpsUXNCLEVZNlF0QjtNQS9ESDtRQXNESSxtQkFBbUI7UUFDbkIsaUJaclFxQjtRWXNRckIsMEJBQWdCO1FBQ2hCLDJCQUEyQjtRQUMzQix5Qlp4UXFCO1FZeVFyQiw2QnZCOVNPO1F1QitTUCxtQkFBbUIsRUFDbkI7RUE3REo7SUFrRUUsdUJaaFJ1QjtJWWlSdkIsc0JBQXNCLEVBS3RCO0lBeEVGO01BcUVHLHdCWm5Sc0I7TVlvUnRCLHNCWnBSc0IsRVlxUnRCO0VBdkVIO0lBMEVFLHFCWnhSdUIsRVk0UnZCO0lBOUVGO01BNEVHLGNBQWMsRUFDZDtFQTdFSDtJQStFSywwQkFBNEIsRUFBSTtFQS9FckM7SUFnRk0sMkJBQTJCLEVBQUk7RUFoRnJDO0lBaUZNLDJCQUEyQixFQUFJO0VBakZyQztJQWtGTSwyQkFBMkIsRUFBSTtFQWxGckM7SUFtRk0sMkJBQTJCLEVBQUk7RUFuRnJDO0lBb0ZNLDJCQUEyQixFQUFJO0VBcEZyQztJQXFGSyxnQkFBZ0IsRUFBSTtFQXJGekI7SUF1RkUsd0JaclN1QixFWTRTdkI7SUE5RkY7TUF5RkcsZXZCL1NxQixFdUJtVHJCO01BN0ZIO1FBMkZJLDJCQUEyQixFQUMzQjtFQTVGSjtJQWlHRSxlQUFlO0lBQ2YsaUJBQWlCLEVBQ2pCO0VBbkdGO0lBdUdHLGVBQWU7SUFDZixpQkFBaUIsRUFDakI7RWhCNk1DO0lnQnRUSjtNQTRHRSxnQkFBZ0IsRUFPakI7TUFuSEQ7UUE4R0csbUJBQW1CO1FBQ25CLFlBQVk7UUFDWix1Qlo5VHNCLEVZK1R0QixFQUFBOztBQ3JXSDtFQUNDLFlBQVk7RUFDWixrQmJvQ3dCO0VhbkN4QixhQUFhO0VBQ2Isb0J4QjBCdUI7RXdCekJ2QixzQkFBc0I7RUFDdEIsdUJiZ0N3QjtFYS9CeEIsdUJBQXVCO0VBQ3ZCLDRCQUE0QjtFQUM1Qiw2QkFBNkIsRUErRDdCO0VBeEVEO0lsQnlISSxtQkFBbUI7SUFDbkIsU0FBUztJQUNULG9DQUFxQjtRQUFyQixnQ0FBcUI7WUFBckIsNEJBQXFCLEVrQjlHdkI7RUFiRjtJQWdCRSxrQmJzQnVCO0lhckJ2QixtQmJxQnVCO0lhcEJ2QixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLDBCeEJHMkI7SXdCRjNCLGVBQWU7SUFDZix1QkFBdUI7SUFDdkIsNEJBQTRCO0lBQzVCLDZCQUE2QixFQUM3QjtFQXpCRjtJQTRCRSxleEJMMkI7SXdCTTNCLG1CQUFtQjtJQUNuQixzQmJRdUIsRWFQdkI7RUEvQkY7SUFrQ0UsMkJBQTZCO0lBQzdCLG1CQUFtQixFQW9DbkI7SUF2RUY7TUFzQ0csaUJiQXNCO01hQ3RCLGtCYkRzQjtNYUV0QixtQkFBbUI7TUFDbkIsY0FBYztNQUNkLG9CQUFvQjtNQUNwQixzQkFBc0I7TUFDdEIscUNBQTZCO2NBQTdCLDZCQUE2QixFQTBCN0I7TUF0RUg7UUE2Q2Esb0JBQWtCLEVBQWtCO01BN0NqRDtRQWdESSxnQkFBZ0IsRUFPaEI7UUF2REo7VUFtREssWUFBWTtVQUNaLGdCYmRvQjtVYWVwQixlYmZvQixFYWdCcEI7TUF0REw7UUEwREksWUFBWTtRQUNaLGFBQWE7UUFDYiwrQkFBZ0MsRUFTaEM7UUFyRUo7VUErREssV0FBVztVQUNYLGdCQUFnQjtVQUNoQixtQkFBbUI7VUFDbkIsZWI1Qm9CLEVhOEJwQjtVQXBFTDtZQW1FcUIseUJBQXlCLEVBQUk7O0FBT2xEO0VBQ0MsWUFBWTtFQUNaLDRCQUE0QjtFekJpSjNCLFlBQVk7RUFDWixrQk1uTmM7RU5vTmQsWUFBWTtFQUNaLGVBQWU7RUFDZixtQkFDYztFQURkLGtCQUVjO0VBRWQsb0J5QnhKOEI7RXpCd0o5QixxQnlCeEo4QixFQWlCL0I7RUFwQkQ7SWxCNURJLFlBQVk7SUFDWixZQUFZO0lBQ1osZUFBZSxFQUNoQjtFQ3loQkM7SWlCaGVKO01BSTZCLDRCQUE0QixFQWdCeEQsRUFBQTtFQXBCRDtJQU9FLFlBQVk7SUFDWixnQ0FBcUI7SUFDckIsbUJBQW1CO0lBQ25CLGlCYjlDdUIsRWF1RHZCO0lBbkJGO01BYUcsd0JBQXdCO01BQ3hCLG1CQUFtQjtNQUNuQixVQUFVO01BQ1Ysb0JicERzQjtNYXFEdEIsMEJBQTBCLEVBQzFCOztBQUtIO0V6QjRIRSxZQUFZO0VBQ1osa0JNbk5jO0VOb05kLFlBQVk7RUFDWixlQUFlO0VBQ2YsbUJBQ2M7RUFEZCxrQkFFYztFQUVkLG9CeUJuSThCO0V6Qm1JOUIscUJ5Qm5JOEI7RUFFOUIsd0JiOUR1QixFYStEeEI7RUFKRDtJbEJuRkksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlLEVBQ2hCO0VDeWhCQztJaUJ6Y0o7TUFFOEIsY0FBYyxFQUUzQyxFQUFBOztBQUVEO0VBQ0MsZ0JibEV3QjtFYW1FeEIsa0JibkV3QjtFYW9FeEIsZUFBZTtFQUNmLGVBQWU7RUFDZixxQmJ0RXdCO0VhdUV4QixvQnhCdEY0QjtFd0J1RjVCLG1CQUFtQjtFQUNuQiwwQnhCN0Y0QjtFd0I4RjVCLGtCQUFrQjtFQUNsQixleEIvRjRCO0V3QmdHNUIsWUFBWTtFQUNaLGtEQUEwQztVQUExQywwQ0FBMEMsRUFNMUM7RUFsQkQ7SUFlRSxvQnhCcEcyQjtJd0JxRzNCLGV4QmhHMkIsRXdCaUczQjs7QUN4SEY7RUFDQyxlQUFlO0VBQ2YsaUJkb0N3QjtFY25DeEIsa0JkbUN3QjtFY2xDeEIsb0J6Qm1CNEI7RXlCbEI1QixtQkFBbUI7RUFDbkIsMkJ6QkxVLEV5Qk1WOztBQUVEO0VBQ0MsbUJBQW1CO0VBQ25CLGlCZDJCd0I7RWMxQnhCLGtCZDBCd0I7RWN6QnhCLFd6QlpVLEV5QmFWOztBQUVEO0VBQ0MsaUJkcUJ3QjtFY3BCeEIsY3pCSzRCLEV5Qko1Qjs7QUFFRDtFQUNDLG1CQUFtQixFQXFCbkI7RUF0QkQ7SUFHRSx5QmRjdUI7SWNidkIsa0JkYXVCO0ljWnZCLFlBQVk7SUFDWixjQUFjO0lBQ2QsMEJ6QlIyQixFeUJTM0I7RUFSRjtJQVVFLGtCZE91QjtJY052QixnQ3pCWjJCLEV5QmEzQjtFQVpGO0lBY0UsYUFBYSxFQUNiO0VBZkY7SUFtQkcsMEJ6QmxCMEIsRXlCbUIxQjs7QUN6Q0g7RUFDRSxhQUFhO0VBQ2IsZUFBZTtFQUNmLFFBQVEsRUFpRlQ7RUFwRkQ7SUFNRSxhQUFhO0lBQ2IsYUFBYTtJQUNiLG9CQUFvQjtJQUNwQixlQUFlLEVBMEVmO0lBbkZGO01BWUksWUFBWTtNQUNaLHNCQUFzQjtNQUN0QixpQkFBaUI7TUFDakIsbUJBQW1CO01BQ25CLHdCZnNCcUIsRWUyQnJCO01BakVKO1FBbUJJLFdBQVc7UUFDVCxhQUFhO1FBQ2IsbUJBQW1CO1FBQ25CLFFBQVE7UUFDUixPQUFPLEVBRVQ7UUF6Qko7VUF3QlEsZTFCRHFCLEUwQkNKO01BeEJ6QjtRQTZCSyxXQUFXLEVBTVg7UUFuQ0w7VUE4Qm1CLG9DMUJITSxFMEJHaUM7UUE5QjFEO1VBK0JrQixvQzFCSE0sRTBCRytCO1FBL0J2RDtVQWdDaUIsb0MxQkhRLEUwQkcrQjtRQWhDeEQ7VUFpQ2tCLG9DMUJITSxFMEJHK0I7UUFqQ3ZEO1VBa0NlLG9DMUJIVSxFMEJHNEI7TUFsQ3JEO1FBdUNJLGFBQWE7UUFDWCxzQkFBc0I7UUFDdEIsV0FBVyxFQXVCYjtRQWhFSjtVQTRDSyxlMUI3QndCO1UwQjhCeEIsdUJmUG9CO1VlUXBCLHdCQUFzQjtVQUN0QixrQkFBa0IsRUFDbEI7UUFoREw7VUFtREssMEJBQWlCO1VBQ2pCLHFCZmRvQjtVZWVwQixVQUFVLEVBVVY7VUEvREw7WUF1RHdCLHFCZmpCQztZZWlCcUIsb0JBQW9CLEVBQUk7VUF2RHRFO1lBeURNLG1CQUFtQjtZQUNuQixxQmZwQm1CO1llcUJuQixlQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLGVmdkJtQixFZXdCbkI7SW5CNGVGO01tQjFpQko7UUFtRWdDLFlBQVksRUFnQjFDLEVBQUE7SW5CdWRFO01tQjFpQko7UUF1RWtCLFdBQVcsRUFBSTtNQXZFakM7UUEwRUssV0FBVztRQUNYLDhCQUFnQyxFQUdoQztRQTlFTDtVQTRFVSxpQkFBaUIsRUFBSTtRQTVFL0I7VUE2RXNDLGNBQWMsRUFBSTtNQTdFeEQ7UUFnRmUsb0JBQW1CLEVBQXFCLEVBQUE7O0FBTXZEO0VBQ0UsWUFBWTtFQUNaLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsb0NBQTRCO1VBQTVCLDRCQUE0QixFQWdDN0I7RUFwQ0Q7SUFPSSxZQUFZO0lBQ1osY0FBYztJQUNkLGVBQWU7SUFDZixtQkFBbUI7STNCNkhyQixZQUFZO0lBQ1osaUIyQjdIdUI7STNCOEh2QixZQUFZO0lBQ1osZUFBZTtJQUNmLG1CQUNjO0lBRGQsa0JBRWM7SUFFZCxnQkFWZ0Q7SUFVaEQsaUJBVmdEO0kyQnpIOUMsU0FBUztJQUNULGlDQUF5QjtZQUF6Qix5QkFBeUI7SUFDekIsY0FBYyxFQWFmO0lBM0JIO01wQnhFSSxZQUFZO01BQ1osWUFBWTtNQUNaLGVBQWUsRUFDaEI7SW9CcUVIO01BaUJNLG1CQUFtQjtNeEJyRHZCLDZDQUE2QztNd0J1RHpDLG9CQUFvQixFQUNyQjtJQXBCTDtNQXVCTSxtQkFBbUI7TUFDbkIsb0JBQW9CO01BQ3BCLDRCQUFvQjtjQUFwQixvQkFBb0IsRUFDckI7RW5CMGJEO0ltQnBkSjtNQThCSSxhQUFhLEVBTWhCO01BcENEO1FBaUNNLFNBQVMsRUFDVixFQUFBIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSwgY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLCBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LCB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250OiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbm9sLCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTsgfVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGNvbnRlbnQ6IG5vbmU7IH1cblxucTpiZWZvcmUsIHE6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBjb250ZW50OiBub25lOyB9XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxuLyoqXG4qIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4qIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvblxuKiAgICBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4qICAgIHVzZXIgem9vbS5cbiovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyoqXG4qIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiogYW5kIEZpcmVmb3guXG4qIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4qL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4qIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4qIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4qIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4qIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4qL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gICAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qKlxuKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4qL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcbiogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4qL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4qL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyB9XG5cbi8qKlxuKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4qL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKlxuKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4qL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4qIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjY2NjY3ZW0gMDsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4qIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4qIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICAgKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcbiAgICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gICAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gICAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4qIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiovXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuKi9cbi8qKlxuKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4qICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAgICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4qL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4qIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4qICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4qIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4qICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9J2J1dHRvbiddLFxuaW5wdXRbdHlwZT0ncmVzZXQnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLyoqXG4qIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4qL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qKlxuKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4qL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4qIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiogdGhlIFVBIHN0eWxlc2hlZXQuXG4qL1xuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi8qKlxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gICAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gICAqXG4gICAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gICAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gICAqL1xuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSxcbmlucHV0W3R5cGU9J3JhZGlvJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuKi9cbmlucHV0W3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4qIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKi9cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cblxuLyoqXG4qIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4qIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiovXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4qL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4qIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4qL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDsgfVxuXG4ub2xkLWJyb3dzZXJzIHtcbiAgei1pbmRleDogOTk5OTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG4gIC5vbGQtYnJvd3NlcnMgaDIge1xuICAgIHBhZGRpbmc6IDIwcHggMCAyMHB4IDA7IH1cbiAgLm9sZC1icm93c2VycyBwLCAub2xkLWJyb3dzZXJzIHVsIHtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAub2xkLWJyb3dzZXJzIHAge1xuICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNGVtOyB9XG4gIC5vbGQtYnJvd3NlcnMgdWwgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwIDI1cHg7IH1cbiAgICAub2xkLWJyb3dzZXJzIHVsIGxpIGltZyB7XG4gICAgICB3aWR0aDogMTE1cHg7IH1cbiAgICAub2xkLWJyb3dzZXJzIHVsIGxpIHAge1xuICAgICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgICBjb2xvcjogIzI0OUFFMTsgfVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qICBTeW50YXggUXVpY2sgUmVmZXJlbmNlXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNvbHVtbigkcmF0aW9zOiAxLCAkb2Zmc2V0OiAwLCAkY3ljbGU6IDAsICR1bmN5Y2xlOiAwLCAkZ3V0dGVyOiAkamVldC1ndXR0ZXIpXG4gIHNwYW4oJHJhdGlvOiAxLCAkb2Zmc2V0OiAwKVxuICBzaGlmdCgkcmF0aW9zOiAwLCAkY29sX29yX3NwYW46IGNvbHVtbiwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKVxuICB1bnNoaWZ0KClcbiAgZWRpdCgpXG4gIGNlbnRlcigkbWF4X3dpZHRoOiAxNDEwcHgsICRwYWQ6IDApXG4gIHN0YWNrKCRwYWQ6IDAsICRhbGlnbjogZmFsc2UpXG4gIHVuc3RhY2soKVxuICBhbGlnbigkZGlyZWN0aW9uOiBib3RoKVxuICBjZigpXG4qL1xuLyoqXG4gKiBHcmlkIHNldHRpbmdzLlxuICogQWxsIHZhbHVlcyBhcmUgZGVmYXVsdHMgYW5kIGNhbiB0aGVyZWZvcmUgYmUgZWFzaWx5IG92ZXJpZGRlbi5cbiAqL1xuLyoqXG4gKiBMaXN0IGZ1bmN0aW9ucyBjb3VydGVzeSBvZiB0aGUgd29uZGVyZnVsIGZvbGtzIGF0IFRlYW0gU2Fzcy5cbiAqIENoZWNrIG91dCB0aGVpciBhd2Vzb21lIGdyaWQ6IFNpbmd1bGFyaXR5LlxuICovXG4vKipcbiAqIEdldCAgcGVyY2VudGFnZSBmcm9tIGEgZ2l2ZW4gcmF0aW8uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRyYXRpbz0xXSAtIFRoZSBjb2x1bW4gcmF0aW8gb2YgdGhlIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSAtIFRoZSBwZXJjZW50YWdlIHZhbHVlLlxuICovXG4vKipcbiAqIFdvcmsgb3V0IHRoZSBjb2x1bW4gd2lkdGhzIGJhc2VkIG9uIHRoZSByYXRpbyBhbmQgZ3V0dGVyIHNpemVzLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gVGhlIGNvbHVtbiByYXRpbyBvZiB0aGUgZWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGd1dHRlcj0kamVldC1ndXR0ZXJdIC0gVGhlIGd1dHRlciBmb3IgdGhlIGNvbHVtbi5cbiAqIEByZXR1cm5zIHtsaXN0fSAkd2lkdGggJGd1dHRlciAtIEEgbGlzdCBjb250YWluaW5nIHRoZSB3aXRoIGFuZCBndXR0ZXIgZm9yIHRoZSBlbGVtZW50LlxuICovXG4vKipcbiAqIEdldCB0aGUgc2V0IGxheW91dCBkaXJlY3Rpb24gZm9yIHRoZSBwcm9qZWN0LlxuICogQHJldHVybnMge3N0cmluZ30gJGRpcmVjdGlvbiAtIFRoZSBsYXlvdXQgZGlyZWN0aW9uLlxuICovXG4vKipcbiAqIFJlcGxhY2UgYSBzcGVjaWZpZWQgbGlzdCB2YWx1ZSB3aXRoIGEgbmV3IHZhbHVlICh1c2VzIGJ1aWx0IGluIHNldC1udGgoKSBpZiBhdmFpbGFibGUpXG4gKiBAcGFyYW0ge2xpc3R9ICRsaXN0IC0gVGhlIGxpc3Qgb2YgdmFsdWVzIHlvdSB3YW50IHRvIGFsdGVyLlxuICogQHBhcmFtIHtudW1iZXJ9ICRpbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgbGlzdCBpdGVtIHlvdSB3YW50IHRvIHJlcGxhY2UuXG4gKiBAcGFyYW0geyp9ICR2YWx1ZSAtIFRoZSB2YWx1ZSB5b3Ugd2FudCB0byByZXBsYWNlICRpbmRleCB3aXRoLlxuICogQHJldHVybnMge2xpc3R9ICRsaXN0IC0gVGhlIGxpc3Qgd2l0aCB0aGUgdmFsdWUgcmVwbGFjZWQgb3IgcmVtb3ZlZC5cbiAqIEB3YXJuIGlmIGFuIGludmFsaWQgaW5kZXggaXMgc3VwcGxpZWQuXG4gKi9cbi8qKlxuICogUmV2ZXJzZSBhIGxpc3QgKHByb2dyZXNzaXZlbHkgZW5oYW5jZWQgZm9yIFNhc3MgMy4zKVxuICogQHBhcmFtIHtsaXN0fSAkbGlzdCAtIFRoZSBsaXN0IG9mIHZhbHVlcyB5b3Ugd2FudCB0byByZXZlcnNlLlxuICogQHJldHVybnMge2xpc3R9ICRyZXN1bHQgLSBUaGUgcmV2ZXJzZWQgbGlzdC5cbiAqL1xuLyoqXG4gKiBHZXQgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiB0byBhIGdpdmVuIHZhbHVlLlxuICogQHBhcmFtIHtzdHJpbmd9ICRkaXIgLSBUaGUgZGlyZWN0aW9uIHlvdSB3YW50IHRoZSBvcHBvc2l0ZSBvZi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIG9wcG9zaXRlIGRpcmVjdGlvbiB0byAkZGlyLlxuICogQHdhcm4gaWYgYW4gaW5jb3JyZWN0IHN0cmluZyBpcyBwcm92aWRlZC5cbiAqL1xuLyoqXG4gKiBTdHlsZSBhbiBlbGVtZW50IGFzIGEgY29sdW1uIHdpdGggYSBndXR0ZXIuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRyYXRpb3M9MV0gLSBBIHdpZHRoIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXIgYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJG9mZnNldD0wXSAtIEEgb2Zmc2V0IHNwZWNpZmllZCBhcyBhIGZyYWN0aW9uIChzZWUgJHJhdGlvcykuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRjeWNsZT0wXSAtIEVhc2lseSBjcmVhdGUgYW4gbnRoIGNvbHVtbiBncmlkIHdoZXJlICRjeWNsZSBlcXVhbHMgdGhlIG51bWJlciBvZiBjb2x1bW5zLlxuICogQHBhcmFtIHtudW1iZXJ9IFskdW5jeWNsZT0wXSAtIFVuZG8gYSBwcmV2aW91cyBjeWNsZSB2YWx1ZSB0byBhbGxvdyBmb3IgYSBuZXcgb25lLlxuICogQHBhcmFtIHtudW1iZXJ9IFskZ3V0dGVyPSRqZWV0LWd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG4vKipcbiAqIEFuIGFsaWFzIGZvciB0aGUgY29sdW1uIG1peGluLlxuICogQHBhcmFtIFskYXJncy4uLl0gLSBBbGwgYXJndW1lbnRzIGdldCBwYXNzZWQgdGhyb3VnaCB0byBjb2x1bW4oKS5cbiAqL1xuLyoqXG4gKiBHZXQgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGFuZCBub3RoaW5nIGVsc2UuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRyYXRpb3M9MV0gLSBBIHdpZHRoIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXIgYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGd1dHRlcj0kamVldC1ndXR0ZXJdIC0gU3BlY2lmeSB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY29udGFpbmVycyB3aWR0aC5cbiAqL1xuLyoqXG4gKiBHZXQgdGhlIGd1dHRlciBzaXplIG9mIGEgY29sdW1uIGFuZCBub3RoaW5nIGVsc2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3JhdGlvcz0xXSAtIEEgd2lkdGggcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lciBhcyBhIGZyYWN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFtndXR0ZXI9amVldC5ndXR0ZXJdIC0gU3BlY2lmeSB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY29udGFpbmVycyB3aWR0aC5cbiAqL1xuLyoqXG4gKiBBbiBhbGlhcyBmb3IgdGhlIGNvbHVtbi13aWR0aCBmdW5jdGlvbi5cbiAqIEBwYXJhbSBbJGFyZ3MuLi5dIC0gQWxsIGFyZ3VtZW50cyBnZXQgcGFzc2VkIHRocm91Z2ggdG8gY29sdW1uKCkuXG4gKi9cbi8qKlxuICogQW4gYWxpYXMgZm9yIHRoZSBjb2x1bW4tZ3V0dGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIFskYXJncy4uLl0gLSBBbGwgYXJndW1lbnRzIGdldCBwYXNzZWQgdGhyb3VnaCB0byBjb2x1bW4oKS5cbiAqL1xuLyoqXG4gKiBTdHlsZSBhbiBlbGVtZW50IGFzIGEgY29sdW1uIHdpdGhvdXQgYW55IGd1dHRlcnMgZm9yIGEgc2VhbWxlc3Mgcm93LlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRvZmZzZXQ9MF0gLSBBIG9mZnNldCBzcGVjaWZpZWQgYXMgYSBmcmFjdGlvbiAoc2VlICRyYXRpb3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IFtjeWNsZT0wXSAtIEVhc2lseSBjcmVhdGUgYW4gbnRoIGNvbHVtbiBncmlkIHdoZXJlIGN5Y2xlIGVxdWFscyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuXG4gKiBAcGFyYW0ge251bWJlcn0gW3VuY3ljbGU9MF0gLSBVbmRvIGEgcHJldmlvdXMgY3ljbGUgdmFsdWUgdG8gYWxsb3cgZm9yIGEgbmV3IG9uZS5cbiAqL1xuLyoqXG4gKiBSZW9yZGVyIGNvbHVtbnMgd2l0aG91dCBhbHRlcmluZyB0aGUgSFRNTC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHJhdGlvcz0wXSAtIFNwZWNpZnkgaG93IGZhciBhbG9uZyB5b3Ugd2FudCB0aGUgZWxlbWVudCB0byBtb3ZlLlxuICogQHBhcmFtIHtzdHJpbmd9IFskY29sLW9yLXNwYW49Y29sdW1uXSAtIFNwZWNpZnkgd2hldGhlciB0aGUgZWxlbWVudCBoYXMgYSBndXR0ZXIgb3Igbm90LlxuICogQHBhcmFtIHtudW1iZXJ9IFskZ3V0dGVyPSRqZWV0LWd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG4vKipcbiAqIFJlc2V0IGFuIGVsZW1lbnQgdGhhdCBoYXMgaGFkIHNoaWZ0KCkgYXBwbGllZCB0byBpdC5cbiAqL1xuLyoqXG4gKiBWaWV3IHRoZSBncmlkIGFuZCBpdHMgbGF5ZXJzIGZvciBlYXN5IGRlYnVnZ2luZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGNvbG9yPWJsYWNrXSAtIFRoZSBiYWNrZ3JvdW5kIHRpbnQgYXBwbGllZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gWyRpbXBvcnRhbnQ9ZmFsc2VdIC0gV2hldGhlciB0byBhcHBseSB0aGUgc3R5bGUgYXMgIWltcG9ydGFudC5cbiAqL1xuLyoqXG4gKiAgQWxpYXMgZm9yIGVkaXQoKS5cbiAqL1xuLyoqXG4gKiBIb3Jpem9udGFsbHkgY2VudGVyIGFuIGVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRtYXgtd2lkdGg9MTQxMHB4XSAtIFRoZSBtYXggd2lkdGggdGhlIGVsZW1lbnQgY2FuIGJlLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcGFkPTBdIC0gU3BlY2lmeSB0aGUgZWxlbWVudCdzIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcuXG4gKi9cbi8qKlxuICogVW5jZW50ZXIgYW4gZWxlbWVudC5cbiAqL1xuLyoqXG4gKiBTdGFjayBhbiBlbGVtZW50IHNvIHRoYXQgbm90aGluZyBpcyBlaXRoZXIgc2lkZSBvZiBpdC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHBhZD0wXSAtIFNwZWNpZnkgdGhlIGVsZW1lbnQncyBsZWZ0IGFuZCByaWdodCBwYWRkaW5nLlxuICogQHBhcmFtIHtib29sZWFuL3N0cmluZ30gWyRhbGlnbj1mYWxzZV0gLSBTcGVjaWZ5IHRoZSB0ZXh0IGFsaWduIGZvciB0aGUgZWxlbWVudC5cbiAqL1xuLyoqXG4gKiBVbnN0YWNrIGFuIGVsZW1lbnQuXG4gKi9cbi8qKlxuICogQ2VudGVyIGFuIGVsZW1lbnQgb24gZWl0aGVyIG9yIGJvdGggYXhlcy5cbiAqIEByZXF1aXJlcyBBIHBhcmVudCBjb250YWluZXIgd2l0aCByZWxhdGl2ZSBwb3NpdGlvbmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGRpcmVjdGlvbj1ib3RoXSAtIFNwZWNpZnkgd2hpY2ggYXhlcyB0byBjZW50ZXIgdGhlIGVsZW1lbnQgb24uXG4gKi9cbi8qKlxuICogQXBwbHkgYSBjbGVhcmZpeCB0byBhbiBlbGVtZW50LlxuICovXG5wIGEge1xuICBjb2xvcjogZGVlcHNreWJsdWU7XG4gIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTsgfVxuICBwIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGNvbG9yOiAjMDA5OWNjOyB9XG5cbi8qIFNsaWRlciAqL1xuLnNsaWNrLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5zbGljay1saXN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5zbGljay1saXN0LmRyYWdnaW5nIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY3Vyc29yOiBoYW5kOyB9XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLXRyYWNrOmJlZm9yZSwgLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5zbGljay10cmFjazphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBkaXNwbGF5OiBub25lOyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWcge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBTbGlkZXIgKi9cbi5zbGljay1sb2FkaW5nIC5zbGljay1saXN0IHtcbiAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCIuLy9pbWcvYWpheC1sb2FkZXIuZ2lmXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0OyB9XG5cbi8qIEljb25zICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgc3JjOiB1cmwoXCIuL2ZvbnRzL3NsaWNrLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuL2ZvbnRzL3NsaWNrLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4vZm9udHMvc2xpY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuL2ZvbnRzL3NsaWNrLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi9mb250cy9zbGljay5zdmcjc2xpY2tcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLyogQXJyb3dzICovXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDBweDtcbiAgZm9udC1zaXplOiAwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7IH1cbiAgLnNsaWNrLXByZXY6aG92ZXIsIC5zbGljay1wcmV2OmZvY3VzLFxuICAuc2xpY2stbmV4dDpob3ZlcixcbiAgLnNsaWNrLW5leHQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLCAuc2xpY2stcHJldjpmb2N1czpiZWZvcmUsXG4gICAgLnNsaWNrLW5leHQ6aG92ZXI6YmVmb3JlLFxuICAgIC5zbGljay1uZXh0OmZvY3VzOmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkOmJlZm9yZSxcbiAgLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjI1OyB9XG5cbi5zbGljay1wcmV2OmJlZm9yZSwgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjc1O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4uc2xpY2stcHJldiB7XG4gIGxlZnQ6IC0yNXB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IC0yNXB4OyB9XG4gIC5zbGljay1wcmV2OmJlZm9yZSB7XG4gICAgY29udGVudDogXCLihpBcIjsgfVxuICAgIFtkaXI9XCJydGxcIl0gLnNsaWNrLXByZXY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwi4oaSXCI7IH1cblxuLnNsaWNrLW5leHQge1xuICByaWdodDogLTI1cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stbmV4dCB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgcmlnaHQ6IGF1dG87IH1cbiAgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKGklwiOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stbmV4dDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCLihpBcIjsgfVxuXG4vKiBEb3RzICovXG4uc2xpY2stc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4uc2xpY2stZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtNDVweDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNsaWNrLWRvdHMgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIG1hcmdpbjogMCA1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuc2xpY2stZG90cyBsaSBidXR0b24ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgICBmb250LXNpemU6IDBweDtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyLCAuc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lOyB9XG4gICAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpob3ZlcjpiZWZvcmUsIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogXCLigKJcIjtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgICAgICAgZm9udC1zaXplOiA2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cbiAgICAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICBvcGFjaXR5OiAwLjc1OyB9XG5cbi5kZWZhdWx0LXR5cGUsIGJvZHksIHAsIGEsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG5zbWFsbCwgZW0sIHN0cm9uZywgaW5wdXQsIGJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjNDQ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIGZvbnQtZmFtaWx5OiBcIkZyYW5rbGluR290aGljIFVSVyBDb25kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgaDE6Zmlyc3QtY2hpbGQsIGgyOmZpcnN0LWNoaWxkLCBoMzpmaXJzdC1jaGlsZCwgaDQ6Zmlyc3QtY2hpbGQsIGg1OmZpcnN0LWNoaWxkLCBoNjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICBoMSBhLCBoMiBhLCBoMyBhLCBoNCBhLCBoNSBhLCBoNiBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogY2FsYygzNnB4ICsgMjAgKiAoKDEwMHZ3IC0gNDIwcHgpIC8gNjA0KSk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICBoMSB7XG4gICAgICBmb250LXNpemU6IDM2cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBoMSB7XG4gICAgICBmb250LXNpemU6IDU2cHg7IH0gfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogY2FsYygzNnB4ICsgMTIgKiAoKDEwMHZ3IC0gNDIwcHgpIC8gNjA0KSk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICBoMiB7XG4gICAgICBmb250LXNpemU6IDM2cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBoMiB7XG4gICAgICBmb250LXNpemU6IDQ4cHg7IH0gfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogY2FsYygzMHB4ICsgNiAqICgoMTAwdncgLSA0MjBweCkgLyA2MDQpKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDsgfSB9XG5cbmg0IHtcbiAgZm9udC1zaXplOiBjYWxjKDI0cHggKyA2ICogKCgxMDB2dyAtIDQyMHB4KSAvIDYwNCkpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gICAgaDQge1xuICAgICAgZm9udC1zaXplOiAyNHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgaDQge1xuICAgICAgZm9udC1zaXplOiAzMHB4OyB9IH1cblxuaDUge1xuICBmb250LXNpemU6IGNhbGMoMjBweCArIDQgKiAoKDEwMHZ3IC0gNDIwcHgpIC8gNjA0KSk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICBoNSB7XG4gICAgICBmb250LXNpemU6IDIwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBoNSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogY2FsYygxOHB4ICsgMiAqICgoMTAwdncgLSA0MjBweCkgLyA2MDQpKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgIGg2IHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGg2IHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDsgfSB9XG5cbnAsIHVsLCBsaSwgb2wge1xuICBmb250LXNpemU6IGNhbGMoMTVweCArIDMgKiAoKDEwMHZ3IC0gNDIwcHgpIC8gNDgwKSk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICBwLCB1bCwgbGksIG9sIHtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgcCwgdWwsIGxpLCBvbCB7XG4gICAgICBmb250LXNpemU6IDE4cHg7IH0gfVxuXG5wIHtcbiAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICBtYXJnaW46IDFlbSAwOyB9XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmNvbnRhaW5lciB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDE5MjBweDtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNDOENCQ0Q7IH1cbiAgLmNvbnRhaW5lcjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cblxuLmlubmVyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEyODBweDtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDUlO1xuICBwYWRkaW5nLXJpZ2h0OiA1JTsgfVxuICAuaW5uZXItY29udGFpbmVyOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuaW5uZXItY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmc6IDAgNCU7IH1cbiAgICAgIC5pbm5lci1jb250YWluZXIuaW5uZXItY29udGFpbmVyLW1vYmlsZS1icmVhayB7XG4gICAgICAgIHBhZGRpbmc6IDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuXG5ib2R5LmNhdGVnb3J5LW1hcmtldGluZyAuYmxvZy1wb3N0LW92ZXJsYXksIGJvZHkuY2F0ZWdvcnktcmVzZWFyY2ggLmJsb2ctcG9zdC1vdmVybGF5LCBib2R5LmNhdGVnb3J5LWRlc2lnbiAuYmxvZy1wb3N0LW92ZXJsYXksIGJvZHkuY2F0ZWdvcnktcHJvZHVjdCAuYmxvZy1wb3N0LW92ZXJsYXksIGJvZHkuY2F0ZWdvcnktY3ggLmJsb2ctcG9zdC1vdmVybGF5IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5jZjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYnV0dG9uLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udDogaW5oZXJpdDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHdpZHRoOiBhdXRvOyB9XG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7IH1cblxuaW1nLFxudmlkZW8ge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG5wOmZpcnN0LW9mLXR5cGUge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbnA6bGFzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5hLFxubGFiZWwsXG5zZWxlY3QsXG5vcHRpb24sXG5idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuaW5wdXQge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuY29kZSB7XG4gIHBhZGRpbmc6IDNweCA0cHg7XG4gIGNvbG9yOiAjMjE5NkYzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZmMWYyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDNkOGRjO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBtb25vc3BhY2U7IH1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmZjFmMjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QzZDhkYztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIG1vbm9zcGFjZTtcbiAgbGluZS1oZWlnaHQ6IDE2MCU7IH1cblxuaHIge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMS41ZW0gMDsgfVxuXG5uYXYgdWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cbiAgbmF2IHVsIGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cblxudWwudGV4dCB7XG4gIG1hcmdpbjogLjMycmVtIC45NHJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9XG4gIHVsLnRleHQgbGkge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICBwYWRkaW5nOiAuMTI1cmVtIDA7IH1cblxub2wudGV4dCB7XG4gIG1hcmdpbjogLjMycmVtIC45NHJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9XG4gIG9sLnRleHQgbGkge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgICBwYWRkaW5nOiAuMTI1cmVtIDA7IH1cblxudWwudGV4dCB1bCwgdWwudGV4dCBvbCwgb2wudGV4dCBvbCwgb2wudGV4dCB1bCB7XG4gIG1hcmdpbjogLjNyZW0gMXJlbSAwOyB9XG5cbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG4jd3BhZG1pbmJhciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmJsb2ctYnJiIC5ibG9nLXBvc3QtaGVybyB7XG4gIGhlaWdodDogOTl2aDsgfVxuICAuYmxvZy1icmIgLmJsb2ctcG9zdC1oZXJvIHAge1xuICAgIG1heC13aWR0aDogODAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMS41NjI1cmVtOyB9XG5cbi5ibG9nLWJyYiBoZWFkZXIsIC5ibG9nLWJyYiBmb290ZXIge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgei1pbmRleDogOTkgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmJsb2ctYnJiIGhlYWRlciB7XG4gIHRvcDogMHB4OyB9XG5cbi5ibG9nLWJyYiBmb290ZXIge1xuICBib3R0b206IDBweDsgfVxuXG4uYmxvZy1icmIgLmhlYWRlci1pdGVtIHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5ibG9nLWJyYiAuYm90dG9tLWhlYWRlciB7XG4gIGhlaWdodDogNzNweDsgfVxuXG4uZ2VuZXJhbCB7XG4gIHBhZGRpbmc6IDcuODEyNXJlbSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmdlbmVyYWwgLmJ0biB7XG4gICAgbWFyZ2luLXRvcDogMy4xMjVyZW07XG4gICAgcGFkZGluZzogMC42MjVyZW0gMy4xMjVyZW07IH1cblxuLm5jX3NvY2lhbFBhbmVsU2lkZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLm5jX3NvY2lhbFBhbmVsU2lkZSB7XG4gICAgICB0b3A6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgIGJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gICAgICBsZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB6LWluZGV4OiA5MCAhaW1wb3J0YW50OyB9IH1cblxuLm5jX3R3ZWV0Q29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDsgfVxuXG5kaXYubmNfc29jaWFsUGFuZWwgLm5jX3R3ZWV0Q29udGFpbmVyIHtcbiAgbWFyZ2luOiAyMHB4IGF1dG8gIWltcG9ydGFudDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBkaXYubmNfc29jaWFsUGFuZWwgLm5jX3R3ZWV0Q29udGFpbmVyIHtcbiAgICAgIG1hcmdpbjogMHB4IDEwcHggIWltcG9ydGFudDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLm5jX3NvY2lhbFBhbmVsIGEgLnN3X2NvdW50IHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG5cbi5uY19zb2NpYWxQYW5lbCAuaWNvbkZpbGxlciB7XG4gIG1heC13aWR0aDogMzBweCAhaW1wb3J0YW50OyB9XG5cbi5zdyB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogNHB4IDhweCAhaW1wb3J0YW50OyB9XG5cbi5zd19zaGFyZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uc3c6YmVmb3JlIHtcbiAgY29sb3I6ICM0NDQ7IH1cblxuLnNsaWNlIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zbGljZS1pdGVtIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG5hLmJ0bixcbmJ1dHRvbixcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdIHtcbiAgcGFkZGluZzogMTBweCAyMnB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4QUJGNTE7XG4gIGNvbG9yOiAjRkZGO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgYS5idG46aG92ZXIsXG4gIGJ1dHRvbjpob3ZlcixcbiAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3ZlcixcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlcixcbiAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzBhMjNiOyB9XG4gIGEuYnRuLmJ0bi13aGl0ZSxcbiAgYnV0dG9uLmJ0bi13aGl0ZSxcbiAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXS5idG4td2hpdGUsXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0uYnRuLXdoaXRlLFxuICBpbnB1dFt0eXBlPVwicmVzZXRcIl0uYnRuLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjRkZGRkZGO1xuICAgIGJvcmRlci1jb2xvcjogI0ZGRkZGRjsgfVxuICAgIGEuYnRuLmJ0bi13aGl0ZTpob3ZlcixcbiAgICBidXR0b24uYnRuLXdoaXRlOmhvdmVyLFxuICAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0uYnRuLXdoaXRlOmhvdmVyLFxuICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0uYnRuLXdoaXRlOmhvdmVyLFxuICAgIGlucHV0W3R5cGU9XCJyZXNldFwiXS5idG4td2hpdGU6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICAgIGNvbG9yOiAjMDA4MkNBOyB9XG5cbi5ibG9nLWhlcm8tY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjRkY4MzAwOyB9XG4gIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA1NXZoO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cbiAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZSBoMiwgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpZGUgaDUsIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlIHAsIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlIGEge1xuICAgICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZSBoMiB7XG4gICAgICBmb250LXdlaWdodDogNTAwOyB9XG4gICAgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpZGUgaDUge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgICAgZm9udC1mYW1pbHk6IFwicHJveGltYS1ub3ZhXCIsIFwiUHJveGltYSBOb3ZhXCIsIHNhbnMtc2VyaWY7IH1cbiAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZSBhIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNjI1cmVtOyB9XG4gICAgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpZGUgaW1nIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDIyLjc1JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMyU7IH1cbiAgICAgIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlIGltZzphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAgIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlIGltZzpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZSBpbWcge1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgICAgd2lkdGg6IDMxLjMzMzMzMyU7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMyU7IH1cbiAgICAgICAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZSBpbWc6YWZ0ZXIge1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgICAgICAgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpZGUgaW1nOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGlkZS1jdGEsIC5ibG9nLWhlcm8tY2Fyb3VzZWwgLnNsaWRlLWFydGljbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpY2stZG90cyB7XG4gICAgYm90dG9tOiAxLjU2MjVyZW07IH1cbiAgICAuYmxvZy1oZXJvLWNhcm91c2VsIC5zbGljay1kb3RzIGxpIHtcbiAgICAgIG1hcmdpbjogMCAwLjYyNXJlbTsgfVxuICAgICAgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gICAgLmJsb2ctaGVyby1jYXJvdXNlbCAuc2xpY2stZG90cyBidXR0b246YmVmb3JlIHtcbiAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgZm9udC1zaXplOiAxLjg3NXJlbTsgfVxuXG5pbnB1dC5ibG9nLWVtYWlsIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICB3aWR0aDogNjAlO1xuICBtYXJnaW4tbGVmdDogMCU7XG4gIG1hcmdpbi1yaWdodDogMCU7XG4gIG1heC13aWR0aDogMTguNzVyZW07XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDEuMzc1cmVtO1xuICBib3JkZXI6IDByZW07IH1cbiAgaW5wdXQuYmxvZy1lbWFpbDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgaW5wdXQuYmxvZy1lbWFpbCB7XG4gICAgICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gICAgICBwYWRkaW5nOiAwLjY4NzVyZW0gMS4zNzVyZW07IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzcxcHgpIHtcbiAgICBpbnB1dC5ibG9nLWVtYWlsIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMCU7XG4gICAgICBoZWlnaHQ6IDIuNjI1cmVtOyB9XG4gICAgICBpbnB1dC5ibG9nLWVtYWlsOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfSB9XG5cbmJ1dHRvbi5ibG9nLXN1Ym1pdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgd2lkdGg6IDQwJTtcbiAgbWFyZ2luLWxlZnQ6IDAlO1xuICBtYXJnaW4tcmlnaHQ6IDAlO1xuICBwYWRkaW5nOiAwLjc1cmVtIDEuMzc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIGJ1dHRvbi5ibG9nLXN1Ym1pdDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgYnV0dG9uLmJsb2ctc3VibWl0IHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NzFweCkge1xuICAgIGJ1dHRvbi5ibG9nLXN1Ym1pdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgaGVpZ2h0OiAyLjYyNXJlbTsgfVxuICAgICAgYnV0dG9uLmJsb2ctc3VibWl0OmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfSB9XG5cbi5oZXJvLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgzNSwgMzEsIDMyLCAwLjM4KTsgfVxuXG4uc2xpY2stc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4OyB9XG5cbi5zbGlkZS1hcnRpY2xlIHtcbiAgei1pbmRleDogMztcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5zbGlkZS1hcnRpY2xlIGlucHV0LCAuc2xpZGUtYXJ0aWNsZSBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnNsaWRlLWN0YSAuc2xpZGUtY2VudGVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5zbGlkZS1jdGEgLnNsaWRlLWNlbnRlcjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cblxuLnNsaWRlLWN0YSAuc2xpZGUtc3BsaXQge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiA3NC4yNSU7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAzJTtcbiAgbWF4LXdpZHRoOiAzOS4zNzVyZW07XG4gIHBhZGRpbmctbGVmdDogNCU7XG4gIHBhZGRpbmctdG9wOiAyLjUlOyB9XG4gIC5zbGlkZS1jdGEgLnNsaWRlLXNwbGl0OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuc2xpZGUtY3RhIC5zbGlkZS1zcGxpdDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAuc2xpZGUtY3RhIC5zbGlkZS1zcGxpdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiA2NS42NjY2NjclO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzJTsgfVxuICAgICAgLnNsaWRlLWN0YSAuc2xpZGUtc3BsaXQ6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgICAuc2xpZGUtY3RhIC5zbGlkZS1zcGxpdDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfSB9XG4gIC5zbGlkZS1jdGEgLnNsaWRlLXNwbGl0IC5ibG9nLWVtYWlsIHtcbiAgICBoZWlnaHQ6IDQycHg7XG4gICAgcGFkZGluZzogMTBweCAxNXB4OyB9XG5cbi5tb2JpbGUtc2lnbnVwLXNsaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMS41NjI1cmVtIDA7XG4gIGJhY2tncm91bmQ6ICM0NDQ7IH1cbiAgLm1vYmlsZS1zaWdudXAtc2xpZGU6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5tb2JpbGUtc2lnbnVwLXNsaWRlIGg1IHtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgZm9udC1mYW1pbHk6IFwicHJveGltYS1ub3ZhXCIsIFwiUHJveGltYSBOb3ZhXCIsIHNhbnMtc2VyaWY7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLm1vYmlsZS1zaWdudXAtc2xpZGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4udGhhbmtzc3R1ZmYge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIC50aGFua3NzdHVmZiBoNSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gIC50aGFua3NzdHVmZiBwIHtcbiAgICBtYXJnaW46IDEuNTYyNXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgY29sb3I6IHdoaXRlOyB9XG5cbi5ibG9nLW5hdiB7XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDA7XG4gIGJhY2tncm91bmQ6ICNFOEU5RUE7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ibG9nLW5hdiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmJsb2ctZmlsdGVycyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5ibG9nLWZpbHRlcnMgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMCAyLjUlO1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICNDOENCQ0Q7IH1cbiAgICAuYmxvZy1maWx0ZXJzIGxpOmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC5ibG9nLWZpbHRlcnMgbGk6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7IH1cbiAgICAuYmxvZy1maWx0ZXJzIGxpIHNwYW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wOiAxMHB4IHNvbGlkICNFOEU5RUE7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0yMHB4O1xuICAgICAgbGVmdDogNDAlOyB9XG4gICAgICAuYmxvZy1maWx0ZXJzIGxpIHNwYW4uaXMtYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuYmxvZy1maWx0ZXJzIGxpIGEge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cbiAgICAgIC5ibG9nLWZpbHRlcnMgbGkgYS5pcy1hY3RpdmUge1xuICAgICAgICBjb2xvcjogIzAwODJDQTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmJsb2ctZmlsdGVycyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAuYmxvZy1maWx0ZXJzIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlci1yaWdodDogMHB4OyB9XG4gICAgICAgIC5ibG9nLWZpbHRlcnMgbGkgYSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcGFkZGluZzogMS4xMjVyZW0gNSU7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNGRkZGRkY7IH0gfVxuXG4uYmxvZy1mb290ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogdGFibGU7XG4gIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYmxvZy1mb290ZXIge1xuICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5ibG9nLWZvb3Rlci1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBvdmVyZmxvdzogYXV0bztcbiAgem9vbTogMTsgfVxuICAuYmxvZy1mb290ZXItaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAgIC5ibG9nLWZvb3Rlci1pdGVtOmZpcnN0LWNoaWxkIC5ibG9nLWZvb3Rlci1pdGVtLWlubmVyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMS41NjI1cmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0U4RTlFQTsgfVxuICAgICAgLmJsb2ctZm9vdGVyLWl0ZW06Zmlyc3QtY2hpbGQgLmJsb2ctZm9vdGVyLWl0ZW0taW5uZXIgaDUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAgIC5ibG9nLWZvb3Rlci1pdGVtOmZpcnN0LWNoaWxkIC5ibG9nLWZvb3Rlci1pdGVtLWlubmVyIHVsIHtcbiAgICAgICAgbWFyZ2luOiAwLjYyNXJlbSAwIDEuNTYyNXJlbSAwOyB9XG4gICAgICAuYmxvZy1mb290ZXItaXRlbTpmaXJzdC1jaGlsZCAuYmxvZy1mb290ZXItaXRlbS1pbm5lciBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgcGFkZGluZzogMCAwLjYyNXJlbSAwLjYyNXJlbSAwO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgICAgLmJsb2ctZm9vdGVyLWl0ZW06Zmlyc3QtY2hpbGQgLmJsb2ctZm9vdGVyLWl0ZW0taW5uZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiAjOEFCRjUxO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjMxMjVyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5ibG9nLWZvb3Rlci1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAgIC5ibG9nLWZvb3Rlci1pdGVtOmZpcnN0LWNoaWxkIHAge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cbiAgICAgICAgLmJsb2ctZm9vdGVyLWl0ZW06Zmlyc3QtY2hpbGQgbGkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMC4zMTI1cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgICAgIC5ibG9nLWZvb3Rlci1pdGVtOmZpcnN0LWNoaWxkIGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9XG4gICAgICAgIC5ibG9nLWZvb3Rlci1pdGVtOmZpcnN0LWNoaWxkIGxpOmFmdGVyIHtcbiAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgICAuYmxvZy1mb290ZXItaXRlbTpmaXJzdC1jaGlsZCBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTsgfSB9XG4gIC5ibG9nLWZvb3Rlci1pdGVtOmxhc3QtY2hpbGQge1xuICAgIHdpZHRoOiA0MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmJsb2ctZm9vdGVyLWl0ZW06bGFzdC1jaGlsZCAuYmxvZy1mb290ZXItaXRlbS1pbm5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ibG9nLWZvb3Rlci1pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgICAgLmJsb2ctZm9vdGVyLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE0LjA2MjVyZW07IH1cbiAgICAgIC5ibG9nLWZvb3Rlci1pdGVtIC5ibG9nLWZvb3Rlci1pdGVtLWlubmVyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH0gfVxuXG4uYmxvZy1mb290ZXItaXRlbS1pbm5lciB7XG4gIHBhZGRpbmc6IDEuMjVyZW07IH1cblxuLmJsb2ctZm9vdGVyLWl0ZW0tYm90dG9tIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDAuNjI1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgMyU7IH1cbiAgLmJsb2ctZm9vdGVyLWl0ZW0tYm90dG9tIGg1IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIG1hcmdpbi1ib3RvbTogMC41cmVtOyB9XG4gIC5ibG9nLWZvb3Rlci1pdGVtLWJvdHRvbSBoNSwgLmJsb2ctZm9vdGVyLWl0ZW0tYm90dG9tIC5ibG9nLWZvb3Rlci10aXRsZSB7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuXG4uYmxvZy1mb290ZXItdGl0bGUge1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi5ibG9nLW1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5ODtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgYmFja2dyb3VuZDogcmdiYSg2OCwgNjgsIDY4LCAwLjcpOyB9XG5cbi5ibG9nLW1vZGFsLXNpZ251cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTtcbiAgbWF4LXdpZHRoOiAyOC4xMjVyZW07XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAzLjEyNXJlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAwLjMxMjVyZW07XG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA2cHggMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xOSkgIWltcG9ydGFudDsgfVxuICAuYmxvZy1tb2RhbC1zaWdudXAgaDUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtZmFtaWx5OiBcInByb3hpbWEtbm92YVwiLCBcIlByb3hpbWEgTm92YVwiLCBzYW5zLXNlcmlmOyB9XG4gIC5ibG9nLW1vZGFsLXNpZ251cCBwIHtcbiAgICBtYXJnaW46IDEuNTYyNXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cbiAgLmJsb2ctbW9kYWwtc2lnbnVwIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5ibG9nLW1vZGFsLXNpZ251cCBpbnB1dCwgLmJsb2ctbW9kYWwtc2lnbnVwIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBtYXgtd2lkdGg6IDE3LjE4NzVyZW07XG4gICAgZmxvYXQ6IG5vbmU7IH1cbiAgICAuYmxvZy1tb2RhbC1zaWdudXAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCAuYmxvZy1tb2RhbC1zaWdudXAgYnV0dG9uW3R5cGU9XCJlbWFpbFwiXSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyOiAycHggaW5zZXQ7IH1cbiAgLmJsb2ctbW9kYWwtc2lnbnVwIC50aGFua3NzdHVmZiBoNSwgLmJsb2ctbW9kYWwtc2lnbnVwIC50aGFua3NzdHVmZiBwIHtcbiAgICBjb2xvcjogIzQ0NDsgfVxuXG4uYmxvZy1tb2RhbC1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcGFkZGluZzogMS41NjI1cmVtO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmJsb2ctbW9kYWwtY2xvc2Ugc3ZnIHtcbiAgICB3aWR0aDogMC43NXJlbTtcbiAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgZmlsbDogIzQ0NDsgfVxuXG4uYmxvZy1wb3N0LWZvb3Rlci1jdGEsIC5ibG9nLXBvc3QtYXV0aG9yLCAucmVsYXRlZC10aXRsZSB7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ibG9nLXBvc3QtZm9vdGVyLWN0YSwgLmJsb2ctcG9zdC1hdXRob3IsIC5yZWxhdGVkLXRpdGxlIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG5cbi5ibG9nLXBvc3QtZm9vdGVyLWN0YSwgLmJsb2ctcG9zdC1hdXRob3Ige1xuICBtYXJnaW46IDEuNTYyNXJlbSBhdXRvOyB9XG5cbi5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCBoNSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4OyB9XG4gIC5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41NjI1cmVtOyB9XG4gIC5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAgZm9ybSB7XG4gICAgcGFkZGluZzogMCAxMiU7IH1cbiAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEtc2lnbnVwIGZvcm06YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAgaW5wdXRbdHlwZT1cImVtYWlsXCJdIHtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBoZWlnaHQ6IDIuNXJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCBpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICB3aWR0aDogNjAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAgICAgLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiA0MCU7XG4gICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9XG4gICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEtc2lnbnVwIGJ1dHRvblt0eXBlPVwic3VibWl0XCJdOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEtc2lnbnVwIGZvcm0ge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAgaW5wdXRbdHlwZT1cImVtYWlsXCJdIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMCU7IH1cbiAgICAgIC5ibG9nLXBvc3QtZm9vdGVyLWN0YS1zaWdudXAgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl06YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9IH1cblxuLmN0YS1zaWdudXAubGluay1hY3RpdmUsIC5jdGEtc2lnbnVwLmRvd25sb2FkLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uY3RhLXNpZ251cC5zaWdudXAtYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmN0YS1saW5rLmxpbmstYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmN0YS1kb3dubG9hZC5kb3dubG9hZC1hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uYmxvZy1wb3N0LWZvb3Rlci1jdGEge1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogYXV0bztcbiAgem9vbTogMTtcbiAgYmFja2dyb3VuZDogIzQ0NDtcbiAgcGFkZGluZzogNiUgOCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IHtcbiAgICB3aWR0aDogNjUlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMuMTI1cmVtOyB9XG4gIC5ibG9nLXBvc3QtZm9vdGVyLWN0YSBoNSwgLmJsb2ctcG9zdC1mb290ZXItY3RhIHAge1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5ibG9nLXBvc3QtZm9vdGVyLWN0YSBoNSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50OyB9XG4gIC5ibG9nLXBvc3QtZm9vdGVyLWN0YSBhIHtcbiAgICBtYXJnaW4tdG9wOiAxLjU2MjVyZW07IH1cbiAgLmJsb2ctcG9zdC1mb290ZXItY3RhIGltZyB7XG4gICAgd2lkdGg6IDM1JTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEge1xuICAgICAgcGFkZGluZzogMTUlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjU2MjVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IC5idG4ge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgYm90dG9tOiAtMi44MTI1cmVtO1xuICAgICAgICAgIHJpZ2h0OiAwcHg7IH1cbiAgICAgICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IC5idG46aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICM3MGEyM2I7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3MGEyM2I7IH1cbiAgICAgICAgICAgIC5ibG9nLXBvc3QtZm9vdGVyLWN0YSAuYmxvZy1mb290ZXItY3RhLWNvbnRlbnQgLmJ0bjpob3ZlcjpiZWZvcmUge1xuICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjNzBhMjNiOyB9XG4gICAgICAgICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IC5idG46aG92ZXI6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjNzBhMjNiOyB9XG4gICAgICAgICAgLmJsb2ctcG9zdC1mb290ZXItY3RhIC5ibG9nLWZvb3Rlci1jdGEtY29udGVudCAuYnRuOmJlZm9yZSwgLmJsb2ctcG9zdC1mb290ZXItY3RhIC5ibG9nLWZvb3Rlci1jdGEtY29udGVudCAuYnRuOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogLTE4cHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgICAgICAgLmJsb2ctcG9zdC1mb290ZXItY3RhIC5ibG9nLWZvb3Rlci1jdGEtY29udGVudCAuYnRuOmFmdGVyIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDE4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDE4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxOHB4IHNvbGlkICM4QUJGNTE7IH1cbiAgICAgICAgICAuYmxvZy1wb3N0LWZvb3Rlci1jdGEgLmJsb2ctZm9vdGVyLWN0YS1jb250ZW50IC5idG46YmVmb3JlIHtcbiAgICAgICAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxOHB4IHNvbGlkICM4QUJGNTE7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMThweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMThweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAgICAgLmJsb2ctcG9zdC1mb290ZXItY3RhIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbm9uZTsgfSB9XG5cbi5ibG9nLXBvc3QtZm9vdGVyLWN0YTphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMDtcbiAgbGVmdDogY2FsYyg1MCUgLSAoNDBweCAvIDIpKTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IDQwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogNDBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogNDBweCBzb2xpZCAjZmZmO1xuICB0cmFuc2Zvcm06IHNrZXdYKDU1ZGVnKTsgfVxuXG4uYmxvZy1wb3N0LWF1dGhvciBpbWcge1xuICBtYXgtaGVpZ2h0OiA3LjgxMjVyZW07XG4gIG1hcmdpbjogMCAxLjU2MjVyZW0gMCAzLjEyNXJlbTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBib3RoO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjNzOyB9XG4gIC5ibG9nLXBvc3QtYXV0aG9yIGltZzpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE2KSwgMCAycHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLmJsb2ctcG9zdC1hdXRob3IgcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZzogMS4zNzVyZW0gMDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5ibG9nLXBvc3QtYXV0aG9yIHNwYW4ge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmJsb2ctcG9zdC1hdXRob3Ige1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5ibG9nLXBvc3QtYXV0aG9yIHAge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmJsb2ctcG9zdC1hdXRob3IgaW1nIHtcbiAgICAgIGZsb2F0OiBub25lOyB9IH1cblxuLnJlbGF0ZWQtdGl0bGUge1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDAuOTM3NXJlbSAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjU2MjVyZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDAuNTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZWxhdGVkLXRpdGxlIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAgIC5yZWxhdGVkLXRpdGxlIHNwYW46YmVmb3JlLCAucmVsYXRlZC10aXRsZSBzcGFuOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6IDVweDtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRThFOUVBO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDgwMHB4OyB9XG4gICAgLnJlbGF0ZWQtdGl0bGUgc3BhbjpiZWZvcmUge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH1cbiAgICAucmVsYXRlZC10aXRsZSBzcGFuOmFmdGVyIHtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogMTVweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAucmVsYXRlZC10aXRsZSBzcGFuOmJlZm9yZSwgLnJlbGF0ZWQtdGl0bGUgc3BhbjphZnRlciB7XG4gICAgICBib3JkZXItd2lkdGg6IDNweDsgfSB9XG5cbi5ibG9nLW1lbnUge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ibG9nLW1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB6LWluZGV4OiAxMDA7XG4gICAgICBiYWNrZ3JvdW5kOiAjRjBGMUYxOyB9XG4gICAgICAuYmxvZy1tZW51LmlzLWFjdGl2ZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgICAgIC5ibG9nLW1lbnUuaXMtYWN0aXZlIC5uYXYtY29udGFpbmVyIHtcbiAgICAgICAgICBsZWZ0OiAwOyB9IH1cblxuLmJsb2ctbW9iaWxlLWZpbHRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgcGFkZGluZy10b3A6IDAuMzEyNXJlbTsgfVxuICAuYmxvZy1tb2JpbGUtZmlsdGVyIHN2ZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDEuMTI1cmVtO1xuICAgIHdpZHRoOiAxLjEyNXJlbTtcbiAgICBtYXJnaW46IDNweCAwLjYyNXJlbSAwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZpbGw6ICM0NDQ7IH1cbiAgICAuYmxvZy1tb2JpbGUtZmlsdGVyIHN2ZzpmaXJzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmJsb2ctbW9iaWxlLWZpbHRlciBoNSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LWZhbWlseTogXCJwcm94aW1hLW5vdmFcIiwgXCJQcm94aW1hIE5vdmFcIiwgc2Fucy1zZXJpZjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYmxvZy1tb2JpbGUtZmlsdGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLm5hdi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzRweDtcbiAgd2lkdGg6IDg1JTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGxlZnQ6IC04NSU7XG4gIHRyYW5zaXRpb246IGxlZnQgLjNzIGVhc2UtaW4tb3V0OyB9XG4gIC5uYXYtY29udGFpbmVyIGRpdi5jYXRlZ29yeS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICNFNkU3RTg7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgcGFkZGluZy10b3A6IDJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm5hdi1jb250YWluZXIgLmFycm93IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogOXB4IHNvbGlkIGJsYWNrO1xuICAgIGJvcmRlci10b3A6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMDYyNXJlbTtcbiAgICB0cmFuc2Zvcm06IGFsbCAuMnMgZWFzZTsgfVxuICAgIC5uYXYtY29udGFpbmVyIC5hcnJvdy5pcy1hY3RpdmUge1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItbGVmdDogOXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wOiA5cHggc29saWQgYmxhY2s7IH1cbiAgLm5hdi1jb250YWluZXIgcDpudGgtY2hpbGQoMikge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGJhY2tncm91bmQ6ICNFNkU3RTg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uYmxvZy1jYXRlZ29yaWVzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAuYmxvZy1jYXRlZ29yaWVzIGxpIGEge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcGFkZGluZzogMS4xMjVyZW0gMCAxLjEyNXJlbSAyLjgxMjVyZW07XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwcHgpO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmJsb2ctY2F0ZWdvcmllcyBsaSBhLmlzLXJlc29sdmVkIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuYmxvZy1jYXRlZ29yaWVzIGxpIGEuaXMtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjMDA4MkNBO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmJsb2ctY2F0ZWdvcmllcyBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC42MjVyZW0gMCAwLjYyNXJlbSAwOyB9XG4gICAgLmJsb2ctY2F0ZWdvcmllcyBsaS5leHBhbmQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5ibG9nLWNhdGVnb3JpZXMgbGk6Zmlyc3QtY2hpbGQgYSB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycywgdHJhbnNmb3JtIC4yczsgfVxuICAgIC5ibG9nLWNhdGVnb3JpZXMgbGk6bnRoLWNoaWxkKDIpIGEge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzLCB0cmFuc2Zvcm0gLjI1czsgfVxuICAgIC5ibG9nLWNhdGVnb3JpZXMgbGk6bnRoLWNoaWxkKDIpIGEge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMsIHRyYW5zZm9ybSAuNXM7IH1cbiAgICAuYmxvZy1jYXRlZ29yaWVzIGxpOm50aC1jaGlsZCgzKSBhIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjc1cywgdHJhbnNmb3JtIC43NXM7IH1cbiAgICAuYmxvZy1jYXRlZ29yaWVzIGxpOm50aC1jaGlsZCg0KSBhIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXMsIHRyYW5zZm9ybSAxczsgfVxuICAgIC5ibG9nLWNhdGVnb3JpZXMgbGk6bnRoLWNoaWxkKDUpIGEge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxLjI1cywgdHJhbnNmb3JtIDEuMjVzOyB9XG4gICAgLmJsb2ctY2F0ZWdvcmllcyBsaTpudGgtY2hpbGQoNikgYSB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEuNTBzLCB0cmFuc2Zvcm0gMS41MHM7IH1cbiAgICAuYmxvZy1jYXRlZ29yaWVzIGxpOm50aC1jaGlsZCg3KSBhIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMS43NXMsIHRyYW5zZm9ybSAxLjc1czsgfVxuICAgIC5ibG9nLWNhdGVnb3JpZXMgbGk6aG92ZXIgYSB7XG4gICAgICBjb2xvcjogIzAwODJDQTsgfVxuXG4uYmxvZy1nbG9iYWwtbmF2LWxpc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuYmxvZy1nbG9iYWwtbmF2LWxpc3QgbGkge1xuICAgIGJhY2tncm91bmQ6ICNGMEYxRjE7XG4gICAgcGFkZGluZzogMC42MjVyZW0gMCAwLjYyNXJlbSAxLjg3NXJlbSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQzhDQkNEOyB9XG4gICAgLmJsb2ctZ2xvYmFsLW5hdi1saXN0IGxpOmhvdmVyIGEge1xuICAgICAgY29sb3I6ICMwMDgyQ0E7IH1cbiAgICAuYmxvZy1nbG9iYWwtbmF2LWxpc3QgbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgYmFja2dyb3VuZDogI0U2RTdFOCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNDOENCQ0Q7IH1cbiAgICAuYmxvZy1nbG9iYWwtbmF2LWxpc3QgbGk6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gIC5ibG9nLWdsb2JhbC1uYXYtbGlzdCBsaSBhIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtOyB9XG5cbmZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0ge1xuICBiYWNrZ3JvdW5kOiAjMDA4MkNBO1xuICBwYWRkaW5nOiAzLjEyNXJlbTsgfVxuICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5pbm5lci1jb250YWluZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIHtcbiAgICAgIHBhZGRpbmc6IDEuODc1cmVtIDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH0gfVxuXG4uZm9vdGVyLWxvZ28ge1xuICB3aWR0aDogMTAuOTM3NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41NjI1cmVtOyB9XG5cbi5mb290ZXItbmF2LCAuZm9vdGVyLXNvY2lhbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZm9vdGVyLW5hdiBsaSwgLmZvb3Rlci1zb2NpYWwgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuZm9vdGVyLW5hdiBhLCAuZm9vdGVyLXNvY2lhbCBhIHtcbiAgICBmaWxsOiAjRkZGRkZGO1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5mb290ZXItbmF2IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07IH1cbiAgLmZvb3Rlci1uYXYgbGk6bGFzdC1jaGlsZCBhIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cblxuLmZvb3Rlci1uYXYgYSB7XG4gIHBhZGRpbmc6IDAgMC41cmVtO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjRkZGRkZGO1xuICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlLWluLW91dCAuMnM7IH1cbiAgLmZvb3Rlci1uYXYgYTpob3ZlciB7XG4gICAgY29sb3I6ICMzMWI2ZmY7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5mb290ZXItbmF2IHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmZvb3Rlci1zb2NpYWwge1xuICBwYWRkaW5nOiAxLjU2MjVyZW0gMDsgfVxuICAuZm9vdGVyLXNvY2lhbCBsaSB7XG4gICAgcGFkZGluZzogMCAwLjMxMjVyZW07IH1cbiAgLmZvb3Rlci1zb2NpYWwgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAyLjgxMjVyZW07XG4gICAgd2lkdGg6IDIuODEyNXJlbTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjRkZGRkZGO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgIC5mb290ZXItc29jaWFsIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRjsgfVxuICAgICAgLmZvb3Rlci1zb2NpYWwgYTpob3ZlciBzdmcge1xuICAgICAgICBmaWxsOiAjMDA4MkNBOyB9XG4gIC5mb290ZXItc29jaWFsIHN2ZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC4yODEyNXJlbTtcbiAgICBoZWlnaHQ6IDEuODc1cmVtO1xuICAgIHdpZHRoOiAxLjg3NXJlbTtcbiAgICBwYWRkaW5nOiAwLjMxMjVyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmZvb3Rlci1zb2NpYWwge1xuICAgICAgcGFkZGluZzogMS44NzVyZW0gMCAwOyB9IH1cblxuLmZvb3Rlci1kaXNjbG9zdXJlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5mb290ZXItZGlzY2xvc3VyZSBhIHtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgIC5mb290ZXItZGlzY2xvc3VyZSBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmZvb3Rlci1kaXNjbG9zdXJlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogOTBweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cblxuaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk5O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGOyB9XG4gIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIC5zdDIge1xuICAgIGZpbGw6ICMwMDgyQ0EgIWltcG9ydGFudDsgfVxuXG4udG9wLWhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICNGMEYxRjE7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC50b3AtaGVhZGVyIC5pbm5lci1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDAgNCUgMC45Mzc1cmVtIDQlO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEyODBweDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAudG9wLWhlYWRlciAuaW5uZXItY29udGFpbmVyOmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC50b3AtaGVhZGVyIC5pbm5lci1jb250YWluZXI6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLnRvcC1oZWFkZXIgLmlubmVyLWNvbnRhaW5lciAuYmxvZy1tZW51IHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLnRvcC1oZWFkZXIgLmlubmVyLWNvbnRhaW5lciAudG9wLWl0ZW0ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgcGFkZGluZy1yaWdodDogNCU7IH1cbiAgLnRvcC1oZWFkZXIuaXMtc3R1Y2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAudG9wLWhlYWRlciAuaW5uZXItY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwLjMxMjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cblxuLnRvcC1sb2dvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDAuNTYyNXJlbTtcbiAgd2lkdGg6IDUuNjI1cmVtO1xuICBoZWlnaHQ6IDEuMzc1cmVtOyB9XG5cbi50b3AtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAudG9wLWl0ZW0ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5tb2JpbGUtc2VhcmNoIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICBmbG9hdDogcmlnaHQ7XG4gIHRvcDogMC4zMTI1cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5tb2JpbGUtc2VhcmNoIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgICAgcmlnaHQ6IDVweDsgfVxuICAgICAgLm1vYmlsZS1zZWFyY2ggaW5wdXQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweCAhaW1wb3J0YW50OyB9IH1cblxuLmJvdHRvbS1oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyLWJvdHRvbTogMC4wNjI1cmVtIHNvbGlkICNFOEU5RUE7IH1cbiAgLmJvdHRvbS1oZWFkZXIgLmlubmVyLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiA3cmVtO1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gNCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMjgwcHg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgLmJvdHRvbS1oZWFkZXIgLmlubmVyLWNvbnRhaW5lcjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmJvdHRvbS1oZWFkZXIgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogN3B4OyB9XG4gIC5ib3R0b20taGVhZGVyIC5sb2dvLXN2ZyB7XG4gICAgaGVpZ2h0OiA2MHB4OyB9XG4gIC5ib3R0b20taGVhZGVyLmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgICAuYm90dG9tLWhlYWRlci5pcy1zdHVjayAuaW5uZXItY29udGFpbmVyIHtcbiAgICAgIGhlaWdodDogMy41cmVtO1xuICAgICAgcGFkZGluZzogMC42MjVyZW0gNCU7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgLjNzOyB9XG4gICAgLmJvdHRvbS1oZWFkZXIuaXMtc3R1Y2sgYSB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgLmJvdHRvbS1oZWFkZXIuaXMtc3R1Y2sgLmxvZ28tc3ZnIHtcbiAgICAgIGhlaWdodDogMzVweDtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAuM3M7IH1cbiAgICAuYm90dG9tLWhlYWRlci5pcy1zdHVjayAuaGVhZGVyLWl0ZW0ge1xuICAgICAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYm90dG9tLWhlYWRlciB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH0gfVxuXG4uaGVhZGVyLWl0ZW0ge1xuICBwYWRkaW5nOiAwIDQlO1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAuaGVhZGVyLWl0ZW06YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5oZWFkZXItaXRlbSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmhlYWRlci1pdGVtOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgLmhlYWRlci1pdGVtIHAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfSB9XG4gIC5oZWFkZXItaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAuaGVhZGVyLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uc2VhcmNoLXdyYXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuc2VhcmNoLXdyYXAgc3ZnIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLnNlYXJjaC13cmFwIGZvcm0gaW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNlYXJjaC13cmFwIGZvcm0ge1xuICAgIG1hcmdpbjogMCAxLjI1cmVtIDAgMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMC4xMjVyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5zZWFyY2gtd3JhcCBmb3JtIHtcbiAgICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgLnNlYXJjaC13cmFwIGZvcm0gbGFiZWwgc3BhbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zZWFyY2gtd3JhcCBmb3JtIGxhYmVsIGlucHV0LnNlYXJjaC1maWVsZCB7XG4gICAgd2lkdGg6IDExMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI4LCAxMjgsIDEyOCwgMC42KTtcbiAgICBwYWRkaW5nOiAwLjMxMjVyZW0gMCAwLjMxMjVyZW0gMS41NjI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuOTM3NXJlbTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLnNlYXJjaC13cmFwIGZvcm0gbGFiZWwgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzMzM0I0MTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5zZWFyY2gtd3JhcCBmb3JtIGxhYmVsIDotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzMzM0I0MTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5zZWFyY2gtd3JhcCBmb3JtIGxhYmVsIDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICMzMzNCNDE7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuc2VhcmNoLXdyYXAgZm9ybSBsYWJlbCA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzMzM0I0MTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5tYWctc3ZnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAuNXJlbTtcbiAgbGVmdDogMC41cmVtO1xuICBoZWlnaHQ6IDAuNzVyZW07XG4gIHdpZHRoOiAwLjc1cmVtOyB9XG5cbi5ibG9nLXBvc3RzIHtcbiAgcGFkZGluZzogMy4xMjVyZW0gNSU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYmxvZy1wb3N0cyB7XG4gICAgICBwYWRkaW5nOiAxLjg3NXJlbSAwOyB9IH1cblxuLmJsb2ctY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgcGFkZGluZzogMCAxLjg3NXJlbTsgfVxuICAuYmxvZy1jb250YWluZXI6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ibG9nLWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5ibG9nLXBvc3Qtb3ZlcmxheSB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5ibG9nLXBvc3Qge1xuICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTsgfVxuICAuYmxvZy1wb3N0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEzMCwgMjAyLCAwLjgpOyB9XG4gICAgLmJsb2ctcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkuTWFya2V0aW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTkwLCAyMDYsIDQ5LCAwLjgpOyB9XG4gICAgLmJsb2ctcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkuUmVzZWFyY2gge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5MCwgMTcyLCAxNjMsIDAuOCk7IH1cbiAgICAuYmxvZy1wb3N0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheS5EZXNpZ24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMTksIDEzNCwgNDIsIDAuOCk7IH1cbiAgICAuYmxvZy1wb3N0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheS5Qcm9kdWN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUsIDEzOSwgMTc5LCAwLjgpOyB9XG4gICAgLmJsb2ctcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkuQ1gge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzgsIDE5MSwgODEsIDAuOCk7IH1cbiAgLmJsb2ctcG9zdCBwLmJsb2ctcG9zdC10aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLyogRmFsbGJhY2sgZm9yIG5vbi13ZWJraXQgKi9cbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBoZWlnaHQ6IDY3LjJweDtcbiAgICAvKiBGYWxsYmFjayBmb3Igbm9uLXdlYmtpdCAqL1xuICAgIG1hcmdpbi10b3A6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nOiAwIDAuNjI1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ibG9nLXBvc3Qge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5ibG9nLXBvc3QgLmJsb2ctcG9zdC1pbm5lciB7XG4gICAgICAgIG1hcmdpbjogMCAwLjMxMjVyZW07IH0gfVxuXG4uYmxvZy1wb3N0LWlubmVyIHtcbiAgbWFyZ2luOiAwIDE1cHg7IH1cblxuLmJsb2ctZm9vdGVyLXBvc3Qge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiAzMy4zMzMzMzMlO1xuICBtYXJnaW4tbGVmdDogMCU7XG4gIG1hcmdpbi1yaWdodDogMCU7XG4gIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTsgfVxuICAuYmxvZy1mb290ZXItcG9zdDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmJsb2ctZm9vdGVyLXBvc3QgcCB7XG4gICAgbWFyZ2luLXRvcDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmc6IDAgMC42MjVyZW07XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYmxvZy1mb290ZXItcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMzAsIDIwMiwgMC44KTsgfVxuICAgIC5ibG9nLWZvb3Rlci1wb3N0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheS5NYXJrZXRpbmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOTAsIDIwNiwgNDksIDAuOCk7IH1cbiAgICAuYmxvZy1mb290ZXItcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkuUmVzZWFyY2gge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5MCwgMTcyLCAxNjMsIDAuOCk7IH1cbiAgICAuYmxvZy1mb290ZXItcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkuRGVzaWduIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjE5LCAxMzQsIDQyLCAwLjgpOyB9XG4gICAgLmJsb2ctZm9vdGVyLXBvc3Q6aG92ZXIgLmJsb2ctcG9zdC1vdmVybGF5LlByb2R1Y3Qge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNSwgMTM5LCAxNzksIDAuOCk7IH1cbiAgICAuYmxvZy1mb290ZXItcG9zdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkuQ1gge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzgsIDE5MSwgODEsIDAuOCk7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmJsb2ctZm9vdGVyLXBvc3Qge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMCU7IH1cbiAgICAgIC5ibG9nLWZvb3Rlci1wb3N0OmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfSB9XG5cbi5ibG9nLXBvc3Qtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEzMCwgMjAyLCAwKTtcbiAgdHJhbnNpdGlvbjogYWxsIGVhc2UtaW4gLjJzOyB9XG4gIC5ibG9nLXBvc3Qtb3ZlcmxheS5NYXJrZXRpbmcsIC5ibG9nLXBvc3Qtb3ZlcmxheS5SZXNlYXJjaCwgLmJsb2ctcG9zdC1vdmVybGF5LkRlc2lnbiwgLmJsb2ctcG9zdC1vdmVybGF5LlByb2R1Y3QsIC5ibG9nLXBvc3Qtb3ZlcmxheS5DWCB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuYmxvZy1wb3N0LW92ZXJsYXkuTWFya2V0aW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5MCwgMjA2LCA0OSwgMCk7IH1cbiAgLmJsb2ctcG9zdC1vdmVybGF5LlJlc2VhcmNoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDkwLCAxNzIsIDE2MywgMCk7IH1cbiAgLmJsb2ctcG9zdC1vdmVybGF5LkRlc2lnbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMTksIDEzNCwgNDIsIDApOyB9XG4gIC5ibG9nLXBvc3Qtb3ZlcmxheS5Qcm9kdWN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1LCAxMzksIDE3OSwgMCk7IH1cbiAgLmJsb2ctcG9zdC1vdmVybGF5LkNYIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEzOCwgMTkxLCA4MSwgMCk7IH1cbiAgLmJsb2ctcG9zdC1vdmVybGF5IGRpdiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuYmxvZy1wb3N0LW92ZXJsYXkgZGl2IHAge1xuICAgICAgY29sb3I6ICNGRkZGRkY7XG4gICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5ibG9nLXBvc3Qtb3ZlcmxheSBkaXYgc3ZnIHtcbiAgICAgIHBhZGRpbmc6IDAuNjI1cmVtO1xuICAgICAgd2lkdGg6IDUuMTI1cmVtO1xuICAgICAgaGVpZ2h0OiA1LjEyNXJlbTtcbiAgICAgIHN0cm9rZTogI0ZGRkZGRjtcbiAgICAgIGZpbGw6IG5vbmU7XG4gICAgICBib3JkZXI6IDAuMTg3NXJlbSBzb2xpZCAjRkZGRkZGO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgLmJsb2ctcG9zdC1vdmVybGF5IGRpdiBzdmcge1xuICAgICAgICAgIHdpZHRoOiA0LjY4NzVyZW07XG4gICAgICAgICAgaGVpZ2h0OiA0LjY4NzVyZW07XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4OyB9IH1cblxuLmFqYXgtbm8taGlkZSAuYWxtLXJldmVhbDpmaXJzdC1jaGlsZCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmFsbS1yZXZlYWw6Zmlyc3QtY2hpbGQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmJsb2ctaW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMzAsIDIwMiwgMC44KTsgfVxuICAuYmxvZy1pbWFnZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogNzUlOyB9XG4gIC5ibG9nLWltYWdlLk1hcmtldGluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOTAsIDIwNiwgNDksIDAuOCk7IH1cbiAgLmJsb2ctaW1hZ2UuUmVzZWFyY2gge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTAsIDE3MiwgMTYzLCAwLjgpOyB9XG4gIC5ibG9nLWltYWdlLkRlc2lnbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMTksIDEzNCwgNDIsIDAuOCk7IH1cbiAgLmJsb2ctaW1hZ2UuUHJvZHVjdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNSwgMTM5LCAxNzksIDAuOCk7IH1cbiAgLmJsb2ctaW1hZ2UuQ1gge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTM4LCAxOTEsIDgxLCAwLjgpOyB9XG5cbi5hbG0tYnRuLXdyYXAge1xuICBvdmVyZmxvdzogYXV0bztcbiAgem9vbTogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYWxtLWJ0bi13cmFwIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgIGNvbG9yOiAjOEFCRjUxO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICM4QUJGNTE7IH1cbiAgICAuYWxtLWJ0bi13cmFwIGJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjOEFCRjUxO1xuICAgICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgICAuYWxtLWJ0bi13cmFwIGJ1dHRvbi5kb25lIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5hbG0tYnRuLXdyYXAgYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAjOEFCRjUxOyB9IH1cblxuLmJsb2ctcG9zdC1oZXJvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDU1dmg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwODJDQTsgfVxuICAuYmxvZy1wb3N0LWhlcm8gLmlubmVyLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5ibG9nLXBvc3QtaGVybyAuaW5uZXItY29udGFpbmVyIGgxLCAuYmxvZy1wb3N0LWhlcm8gLmlubmVyLWNvbnRhaW5lciBoNSB7XG4gICAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgIC5ibG9nLXBvc3QtaGVybyAuaW5uZXItY29udGFpbmVyIGgxIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTsgfVxuICAgIC5ibG9nLXBvc3QtaGVybyAuaW5uZXItY29udGFpbmVyIGg1IHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmJsb2ctcG9zdC1oZXJvIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0MCU7IH1cbiAgICAgIC5ibG9nLXBvc3QtaGVybyAuaW5uZXItY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgcGFkZGluZzogMzAlIDUlIDA7IH0gfVxuXG4uYmxvZy1wb3N0LWhlcm8tb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDM1LCAzMSwgMzIsIDAuMzYpOyB9XG5cbi5ibG9nLXBvc3QtcGFnZSB7XG4gIG1heC13aWR0aDogNzUlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMy4xMjVyZW0gMDsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgLndwLWNhcHRpb24tdGV4dCB7XG4gICAgbWFyZ2luLXRvcDogMC42MjVyZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gIC5ibG9nLXBvc3QtcGFnZSAuaW50cm8tdGV4dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41NjI1cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07IH1cbiAgLmJsb2ctcG9zdC1wYWdlIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLmJsb2ctcG9zdC1wYWdlOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgaDUge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6IDJyZW07IH1cbiAgLmJsb2ctcG9zdC1wYWdlIGg2IHtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgIC5ibG9nLXBvc3QtcGFnZSBpbWcuc2l6ZS1oYWxmIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDQ4LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzJTsgfVxuICAgICAgLmJsb2ctcG9zdC1wYWdlIGltZy5zaXplLWhhbGY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgICAuYmxvZy1wb3N0LXBhZ2UgaW1nLnNpemUtaGFsZjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgaWZyYW1lLCAuYmxvZy1wb3N0LXBhZ2UgLndwLWNhcHRpb24ge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC5ibG9nLXBvc3QtcGFnZSBwOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgYmxvY2txdW90ZSB7XG4gICAgY29sb3I6ICNEQjg2MkE7XG4gICAgYm9yZGVyLWxlZnQ6IDAuMjVyZW0gc29saWQgI0RCODYyQTsgfVxuICAgIC5ibG9nLXBvc3QtcGFnZSBibG9ja3F1b3RlIHAge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICBjb2xvcjogI0RCODYyQTsgfVxuICAuYmxvZy1wb3N0LXBhZ2Ugb2wge1xuICAgIG1hcmdpbi1sZWZ0OiAyLjE4NzVyZW07XG4gICAgY291bnRlci1yZXNldDogY291bnRtZTsgfVxuICAgIC5ibG9nLXBvc3QtcGFnZSBvbCBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjkzNzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4zNzVyZW07IH1cbiAgICAgIC5ibG9nLXBvc3QtcGFnZSBvbCBsaTpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0yLjE4NzVyZW07XG4gICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoY291bnRtZSk7XG4gICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBjb3VudG1lO1xuICAgICAgICBwYWRkaW5nOiAwLjEyNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkICM0NDQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgdWwge1xuICAgIG1hcmdpbi1sZWZ0OiAyLjE4NzVyZW07XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG4gICAgLmJsb2ctcG9zdC1wYWdlIHVsIGxpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMzc1cmVtOyB9XG4gIC5ibG9nLXBvc3QtcGFnZSBoMSwgLmJsb2ctcG9zdC1wYWdlIGgyLCAuYmxvZy1wb3N0LXBhZ2UgaDMsIC5ibG9nLXBvc3QtcGFnZSBoNCwgLmJsb2ctcG9zdC1wYWdlIGg1LCAuYmxvZy1wb3N0LXBhZ2UgaDYge1xuICAgIG1hcmdpbi10b3A6IDMuMTI1cmVtOyB9XG4gICAgLmJsb2ctcG9zdC1wYWdlIGgxOmZpcnN0LWNoaWxkLCAuYmxvZy1wb3N0LXBhZ2UgaDI6Zmlyc3QtY2hpbGQsIC5ibG9nLXBvc3QtcGFnZSBoMzpmaXJzdC1jaGlsZCwgLmJsb2ctcG9zdC1wYWdlIGg0OmZpcnN0LWNoaWxkLCAuYmxvZy1wb3N0LXBhZ2UgaDU6Zmlyc3QtY2hpbGQsIC5ibG9nLXBvc3QtcGFnZSBoNjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5ibG9nLXBvc3QtcGFnZSBhIHtcbiAgICBjb2xvcjogIzE5OEJCMyAhaW1wb3J0YW50OyB9XG4gIC5ibG9nLXBvc3QtcGFnZSBoMiB7XG4gICAgZm9udC1zaXplOiA0MnB4ICFpbXBvcnRhbnQ7IH1cbiAgLmJsb2ctcG9zdC1wYWdlIGgzIHtcbiAgICBmb250LXNpemU6IDI0cHggIWltcG9ydGFudDsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgaDQge1xuICAgIGZvbnQtc2l6ZTogMjhweCAhaW1wb3J0YW50OyB9XG4gIC5ibG9nLXBvc3QtcGFnZSBoNSB7XG4gICAgZm9udC1zaXplOiAyNnB4ICFpbXBvcnRhbnQ7IH1cbiAgLmJsb2ctcG9zdC1wYWdlIGg2IHtcbiAgICBmb250LXNpemU6IDI0cHggIWltcG9ydGFudDsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgcCB7XG4gICAgZm9udC1zaXplOiAxOHB4OyB9XG4gIC5ibG9nLXBvc3QtcGFnZSB1bCwgLmJsb2ctcG9zdC1wYWdlIG9sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTsgfVxuICAgIC5ibG9nLXBvc3QtcGFnZSB1bCBhLCAuYmxvZy1wb3N0LXBhZ2Ugb2wgYSB7XG4gICAgICBjb2xvcjogIzE5OEJCMzsgfVxuICAgICAgLmJsb2ctcG9zdC1wYWdlIHVsIGE6aG92ZXIsIC5ibG9nLXBvc3QtcGFnZSBvbCBhOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmJsb2ctcG9zdC1wYWdlIC5hbGlnbmNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwcHggYXV0bzsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgaW1nLmFsaWduY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDBweCBhdXRvOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ibG9nLXBvc3QtcGFnZSB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5ibG9nLXBvc3QtcGFnZSBibG9ja3F1b3RlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsZWZ0OiAtNC41JTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwLjM3NXJlbTsgfSB9XG5cbnNlY3Rpb24uYXV0aC1oZXJvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDI1cmVtO1xuICBoZWlnaHQ6IDU1dmg7XG4gIGJhY2tncm91bmQ6ICMxOThCQjM7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy10b3A6IDIuMTg3NXJlbTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG4gIHNlY3Rpb24uYXV0aC1oZXJvIGRpdi5jb3B5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIHNlY3Rpb24uYXV0aC1oZXJvIGZpZ3VyZSB7XG4gICAgd2lkdGg6IDEwLjkzNzVyZW07XG4gICAgaGVpZ2h0OiAxMC45Mzc1cmVtO1xuICAgIGJhY2tncm91bmQ6IGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogNHB4IHNvbGlkICNGRkZGRkY7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICBzZWN0aW9uLmF1dGgtaGVybyBoMSB7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDAuOTM3NXJlbTsgfVxuICBzZWN0aW9uLmF1dGgtaGVybyB1bC5hdXRoLXNvY2lhbCB7XG4gICAgbWFyZ2luOiAyLjVyZW0gYXV0byAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgc2VjdGlvbi5hdXRoLWhlcm8gdWwuYXV0aC1zb2NpYWwgbGkge1xuICAgICAgd2lkdGg6IDIuMTg3NXJlbTtcbiAgICAgIGhlaWdodDogMi4xODc1cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgIGJhY2tncm91bmQ6ICNkN2Q1ZDU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMwMG1zOyB9XG4gICAgICBzZWN0aW9uLmF1dGgtaGVybyB1bC5hdXRoLXNvY2lhbCBsaTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNiZWJiYmI7IH1cbiAgICAgIHNlY3Rpb24uYXV0aC1oZXJvIHVsLmF1dGgtc29jaWFsIGxpOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgICAgc2VjdGlvbi5hdXRoLWhlcm8gdWwuYXV0aC1zb2NpYWwgbGk6bGFzdC1jaGlsZCBhIHN2ZyB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbGVmdDogMC4xODc1cmVtO1xuICAgICAgICAgIHRvcDogMC4xODc1cmVtOyB9XG4gICAgICBzZWN0aW9uLmF1dGgtaGVybyB1bC5hdXRoLXNvY2lhbCBsaSBhIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSAxLjA2MjVyZW0gMCAwOyB9XG4gICAgICAgIHNlY3Rpb24uYXV0aC1oZXJvIHVsLmF1dGgtc29jaWFsIGxpIGEgc3ZnIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbGVmdDogMC42MjVyZW07IH1cbiAgICAgICAgICBzZWN0aW9uLmF1dGgtaGVybyB1bC5hdXRoLXNvY2lhbCBsaSBhIHN2ZyBwYXRoLCBzZWN0aW9uLmF1dGgtaGVybyB1bC5hdXRoLXNvY2lhbCBsaSBhIHN2ZyBwb2x5Z29uIHtcbiAgICAgICAgICAgIGZpbGw6ICM0MTQwNDIgIWltcG9ydGFudDsgfVxuXG5zZWN0aW9uLmF1dGgtaW5mbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAzLjEyNXJlbSAyMCUgMCAyMCU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEyODBweDtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDExLjUlO1xuICBwYWRkaW5nLXJpZ2h0OiAxMS41JTsgfVxuICBzZWN0aW9uLmF1dGgtaW5mbzphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgc2VjdGlvbi5hdXRoLWluZm8ge1xuICAgICAgcGFkZGluZzogMy4xMjVyZW0gMTAlIDAgMTAlOyB9IH1cbiAgc2VjdGlvbi5hdXRoLWluZm8gZGl2LmxpbmUge1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDVyZW07IH1cbiAgICBzZWN0aW9uLmF1dGgtaW5mbyBkaXYubGluZSBzcGFuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtOXB4O1xuICAgICAgcGFkZGluZzogMCAwLjYyNXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuc2VjdGlvbi54cCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEyODBweDtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDExLjUlO1xuICBwYWRkaW5nLXJpZ2h0OiAxMS41JTtcbiAgbWFyZ2luLWJvdHRvbTogMy4xMjVyZW07IH1cbiAgc2VjdGlvbi54cDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgc2VjdGlvbi54cCB7XG4gICAgICBwYWRkaW5nOiAwIDQlOyB9IH1cblxuc2VjdGlvbi5ibG9nLXBvc3RzIGRpdi52aWV3LW1vcmUgYSB7XG4gIHdpZHRoOiA5LjM3NXJlbTtcbiAgaGVpZ2h0OiAyLjgxMjVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZy10b3A6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAycHggc29saWQgIzY5QTk1ODtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNjlBOTU4O1xuICBjbGVhcjogYm90aDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAzMDBtcywgY29sb3IgMzAwbXM7IH1cbiAgc2VjdGlvbi5ibG9nLXBvc3RzIGRpdi52aWV3LW1vcmUgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzY5QTk1ODtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4ucGVuY2lsLWljb24ge1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDcuODEyNXJlbTtcbiAgaGVpZ2h0OiA3LjgxMjVyZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICM0NDQ7IH1cblxuLmNvbnRyaWJ1dGUtcGVuY2lsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNy4xODc1cmVtO1xuICBoZWlnaHQ6IDcuMTg3NXJlbTtcbiAgZmlsbDogIzQ0NDsgfVxuXG4uY29udHJpYnV0ZS1kb3duLWFycm93IHtcbiAgd2lkdGg6IDEuNTYyNXJlbTtcbiAgZmlsbDogI0ZGRkZGRjsgfVxuXG4uY29udHJpYnV0ZS1mb3JtIHtcbiAgbWFyZ2luOiAzLjEyNXJlbSAwOyB9XG4gIC5jb250cmlidXRlLWZvcm0gaW5wdXRbdHlwZT1cImVtYWlsXCJdLCAuY29udHJpYnV0ZS1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCAuY29udHJpYnV0ZS1mb3JtIHRleHRhcmVhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjU2MjVyZW07XG4gICAgcGFkZGluZzogMC42MjVyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQzhDQkNEOyB9XG4gIC5jb250cmlidXRlLWZvcm0gdGV4dGFyZWEge1xuICAgIGhlaWdodDogMTUuNjI1cmVtO1xuICAgIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkICNDOENCQ0Q7IH1cbiAgLmNvbnRyaWJ1dGUtZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLmNvbnRyaWJ1dGUtZm9ybSBpbnB1dC5pbnZhbGlkLCAuY29udHJpYnV0ZS1mb3JtIHRleHRhcmVhLmludmFsaWQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNEMzU4NTI7IH1cblxuc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHpvb206IDE7IH1cbiAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0cy13cmFwIHtcbiAgICB3aWR0aDogOTAwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDMuMTI1cmVtIDA7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgLnJlc3VsdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuICAgICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0cy13cmFwIC5yZXN1bHQgZGl2LmJsb2ctaW1hZ2Uge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwOyB9XG4gICAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCAucmVzdWx0IGRpdi5ibG9nLWltYWdlIHAge1xuICAgICAgICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgLnJlc3VsdDpob3ZlciAuYmxvZy1wb3N0LW92ZXJsYXkge1xuICAgICAgICBvcGFjaXR5OiAxOyB9XG4gICAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCAucmVzdWx0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheS5tYXJrZXRpbmcge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTkwLCAyMDYsIDQ5LCAwLjgpOyB9XG4gICAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCAucmVzdWx0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheS5yZXNlYXJjaCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg5MCwgMTcyLCAxNjMsIDAuOCk7IH1cbiAgICAgICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0cy13cmFwIC5yZXN1bHQ6aG92ZXIgLmJsb2ctcG9zdC1vdmVybGF5LmRlc2lnbiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTksIDEzNCwgNDIsIDAuOCk7IH1cbiAgICAgICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0cy13cmFwIC5yZXN1bHQ6aG92ZXIgLmJsb2ctcG9zdC1vdmVybGF5LnByb2R1Y3Qge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjUsIDEzOSwgMTc5LCAwLjgpOyB9XG4gICAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCAucmVzdWx0OmhvdmVyIC5ibG9nLXBvc3Qtb3ZlcmxheS5DWCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMzgsIDE5MSwgODEsIDAuOCk7IH1cbiAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCAucmVzdWx0IGRpdi5yaWdodCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogNzUlOyB9XG4gICAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCAucmVzdWx0IGRpdi5yaWdodCBoNSB7XG4gICAgICAgICAgY29sb3I6ICMwMDgyQ0E7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMy43NXJlbTtcbiAgICAgICAgICBtYXJnaW46IDAgMCAwLjQzNzVyZW0gMDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgLnJlc3VsdCBkaXYucmlnaHQgcCB7XG4gICAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICAgICAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgLnJlc3VsdCBkaXYucmlnaHQgcDpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNjI1cmVtIDA7IH1cbiAgICAgICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgLnJlc3VsdCBkaXYucmlnaHQgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICM4NThjOTA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IDAuMzEyNXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCBkaXYucmVzdWx0IC5ibG9nLWltYWdlIHtcbiAgICAgICAgd2lkdGg6IDMwJTsgfVxuICAgICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0cy13cmFwIGRpdi5yZXN1bHQgLnJpZ2h0IHtcbiAgICAgICAgd2lkdGg6IDY1JTtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSAwIDEuODc1cmVtIDA7IH1cbiAgICAgICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0cy13cmFwIGRpdi5yZXN1bHQgLnJpZ2h0IGg1IHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdHMtd3JhcCBkaXYucmVzdWx0IC5yaWdodCBwOm50aC1vZi10eXBlKDIpLCBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgZGl2LnJlc3VsdCAucmlnaHQgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHRzLXdyYXAgZGl2LnJlc3VsdDphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRlZWVmOyB9IH1cblxuc2VjdGlvbi5ub3QtZm91bmQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA4MHZoO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGhlaWdodCAuNXMgZWFzZTsgfVxuICBzZWN0aW9uLm5vdC1mb3VuZCAuYWxlcnQtaW5mbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiA2NTBweDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgdG9wOiAyNSU7XG4gICAgdHJhbnNpdGlvbjogdG9wIC41cyBlYXNlO1xuICAgIHBhZGRpbmc6IDAgNSU7IH1cbiAgICBzZWN0aW9uLm5vdC1mb3VuZCAuYWxlcnQtaW5mbzphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICBzZWN0aW9uLm5vdC1mb3VuZCAuYWxlcnQtaW5mbyBoMiB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICBzZWN0aW9uLm5vdC1mb3VuZCAuYWxlcnQtaW5mbyBwIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDFzOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIHNlY3Rpb24ubm90LWZvdW5kIHtcbiAgICAgIGhlaWdodDogNjV2aDsgfVxuICAgICAgc2VjdGlvbi5ub3QtZm91bmQgLmFsZXJ0LWluZm8ge1xuICAgICAgICB0b3A6IDMwJTsgfSB9XG4iLCIvLyBodHRwOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY3NzL3Jlc2V0L1xuLy8gdjIuMCB8IDIwMTEwMTI2XG4vLyBMaWNlbnNlOiBub25lIChwdWJsaWMgZG9tYWluKVxuXG5AbWl4aW4gbWV5ZXItcmVzZXQge1xuICBodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksIGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2Vyc1xuICBhcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIGJvZHkge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIG9sLCB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuICBibG9ja3F1b3RlLCBxIHtcbiAgICBxdW90ZXM6IG5vbmU7XG4gIH1cbiAgYmxvY2txdW90ZSB7XG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuICB9XG4gIHEge1xuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBjb250ZW50OiBub25lO1xuICAgIH1cbiAgfVxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgfVxufVxuXG5AaW5jbHVkZSBtZXllci1yZXNldDtcbiIsIi8vLy9cbi8vLyBub3JtYWxpemUtbGlic2FzcyAxLjAuM1xuLy8vIE1JVC9HUEx2MiBMaWNlbnNlXG4vLy8gbGIuY20vbm9ybWFsaXplLWxpYnNhc3Ncbi8vLy9cblxuLy8vIFN0cmljdCBub3JtYWxpemVcbi8vLyBAdHlwZSBCb29sZWFuIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSBmb3Igc3RyaWN0IG5vcm1hbGl6ZSBvdXRwdXQuXG4kc3RyaWN0LW5vcm1hbGl6ZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250LXNpemUgYmFzZWxpbmVcbi8vLyBAdHlwZSBMZW5ndGggWzE2cHhdXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vLyBMaW5lLWhlaWdodCBiYXNlbGluZVxuLy8vIEB0eXBlIExlbmd0aCBbMjRweF1cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLy8gSDEgaGVhZGxpbmUgc2l6ZVxuLy8vIEB0eXBlIExlbmd0aCBbMiAqIDE2cHhdXG4kaDEtZm9udC1zaXplOiAyICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLy8gUmh5dGhtIHVuaXRcbi8vLyBAdHlwZSBTdHJpbmcgW2VtXSAtIFN1cHBvcnRlZCB2YWx1ZXM6IHB4LCBlbSwgcmVtLlxuJHJoeXRobS11bml0OiAnZW0nICFkZWZhdWx0O1xuXG4vLy8gRm9udC1mYW1pbHkgYmFzZWxpbmVcbi8vLyBAdHlwZSBNYXAgW3NhbnMtc2VyaWZdXG4kYmFzZS1mb250LWZhbWlseTogc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFN1cHBvcnRlZCBCcm93c2VyIHZlcnNpb25zXG4vLy8gQHR5cGUgTWFwXG4kYnJvd3Nlci1taW4tdmVyc2lvbjogKFxuICAnY2hyb21lJzogIG51bGwsXG4gICdmaXJlZm94JzogbnVsbCxcbiAgJ2llJzogICAgICA4LFxuICAnc2FmYXJpJzogIDYsXG4gICdvcGVyYSc6ICAgbnVsbFxuKSAhZGVmYXVsdDtcblxuLy8gQXNzdXJlIG5vIHZhcmlhYmxlcyBnZXQgb3ZlcnJpZGRlbiBpZiBzdHJpY3QgaXMgb25cbiRub3JtYWxpemUtYmFzZS1mb250LXNpemU6IGlmKCRzdHJpY3Qtbm9ybWFsaXplLCAxNnB4LCAkYmFzZS1mb250LXNpemUpO1xuJG5vcm1hbGl6ZS1iYXNlLWxpbmUtaGVpZ2h0OiBpZigkc3RyaWN0LW5vcm1hbGl6ZSwgMjRweCwgJGJhc2UtbGluZS1oZWlnaHQpO1xuJG5vcm1hbGl6ZS1oMS1mb250LXNpemU6IGlmKCRzdHJpY3Qtbm9ybWFsaXplLCAyICogJGJhc2UtZm9udC1zaXplLCAkaDEtZm9udC1zaXplKTtcbiRub3JtYWxpemUtcmh5dGhtLXVuaXQ6IGlmKCRzdHJpY3Qtbm9ybWFsaXplLCAnZW0nLCAkcmh5dGhtLXVuaXQpO1xuJG5vcm1hbGl6ZS1iYXNlLWZvbnQtZmFtaWx5OiBpZigkc3RyaWN0LW5vcm1hbGl6ZSwgc2Fucy1zZXJpZiwgJGJhc2UtZm9udC1mYW1pbHkpO1xuXG4vLy8gTm9ybWFsaXplIExlZ2FjeSBCcm93c2VyIFN1cHBvcnQgZnVuY3Rpb25cbi8vL1xuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGJyb3dzZXJcbi8vLyBAcmVxdWlyZXMge3ZhcmlhYmxlfSB2ZXJzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyb3dzZXIgLSBBIHZhbGlkIGJyb3dzZXIgbmFtZSBmcm9tICRicm93c2VyLW1pbmltdW0tdmVyc2lvbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2ZXJzaW9uIC0gQSBicm93c2VyIHZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfSAtIElmIGJyb3dzZXIgaXMgbnVsbCBvciB2YWxpZCByZXR1cm5zIHRydWUuXG5AZnVuY3Rpb24gbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgkYnJvd3NlciwgJHZlcnNpb24pIHtcbiAgLy8gSWYgYnJvd3NlciBpcyBub3QgbnVsbCB0aGVuIGNoZWNrIGZvciBzdXBwb3J0XG4gIEBpZiBtYXAtZ2V0KCRicm93c2VyLW1pbi12ZXJzaW9uLCAkYnJvd3Nlcikge1xuICAgICRzdXBwb3J0ZWQtdmVyc2lvbjogbWFwLWdldCgkYnJvd3Nlci1taW4tdmVyc2lvbiwgJGJyb3dzZXIpO1xuICAgIC8vIFBhc3MgaWYgYnJvd3NlciBpcyBzdXBwb3J0ZWQgb3Igc3RyaWN0LW5vcm1hbGl6ZSBpcyBvblxuICAgIEBpZiAkc3RyaWN0LW5vcm1hbGl6ZSBvciAkc3VwcG9ydGVkLXZlcnNpb24gPD0gJHZlcnNpb24ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgLy8gRmFpbCBpZiBicm93c2VyIGlzIHVuc3VwcG9ydGVkXG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIFBhc3MgaWYgYnJvd3NlciBpcyBudWxsXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vIENvbnZlcnQgb25lIHVuaXQgaW50byBhbm90aGVyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gSW5pdGlhbCB2YWx1ZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIERlc2lyZWQgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vIEB0aHJvdyBFcnJvciBpZiBgJHVuaXRgIGRvZXMgbm90IGV4aXN0IG9yIGlmIHVuaXRzIGFyZSBpbmNvbXBhdGlibGUuXG5AZnVuY3Rpb24gbm9ybWFsaXplLWNvbnZlcnQtdW5pdCgkdmFsdWUsICR1bml0KSB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICR1bml0czogKFxuICAgICdweCc6IDBweCxcbiAgICAnY20nOiAwY20sXG4gICAgJ21tJzogMG1tLFxuICAgICclJzogMCUsXG4gICAgJ2luJzogMGluLFxuICAgICdlbSc6IDBlbSxcbiAgICAncmVtJzogMHJlbSxcbiAgICAncHQnOiAwcHRcbiAgKTtcbiAgLy8gc2Nzcy1saW50OmVuYWJsZSBaZXJvVW5pdFxuXG4gIEBpZiBtYXAtaGFzLWtleSgkdW5pdHMsICR1bml0KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpICsgJHZhbHVlO1xuICB9XG5cbiAgQGVycm9yIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG59XG5cbi8qKlxuKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb25cbiogICAgY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuKiAgICB1c2VyIHpvb20uXG4qL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiAkbm9ybWFsaXplLWJhc2UtZm9udC1mYW1pbHk7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4qL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiogYW5kIEZpcmVmb3guXG4qIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4qL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4qIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4qIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIEBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDkpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgfVxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4qIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4qIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4qL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDEwKSB7XG4gIC8qKlxuICAgKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gICAqL1xuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8qKlxuKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4qL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgnaWUnLCAxMCkge1xuICAvKipcbiAgICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAqL1xuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8qKlxuKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4qIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4qL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLWNvbnZlcnQtdW5pdCgoJG5vcm1hbGl6ZS1oMS1mb250LXNpemUgLyAkbm9ybWFsaXplLWJhc2UtZm9udC1zaXplKSwgJG5vcm1hbGl6ZS1yaHl0aG0tdW5pdCk7XG4gIG1hcmdpbjogbm9ybWFsaXplLWNvbnZlcnQtdW5pdCgoJG5vcm1hbGl6ZS1iYXNlLWZvbnQtc2l6ZSAvICRub3JtYWxpemUtYmFzZS1saW5lLWhlaWdodCksICRub3JtYWxpemUtcmh5dGhtLXVuaXQpIDA7XG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDkpIHtcbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gICAqL1xuXG4gIG1hcmsge1xuICAgIGJhY2tncm91bmQ6ICNmZjA7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cbn1cblxuLyoqXG4qIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4qIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDEwKSB7XG4gIC8qKlxuICAgKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW1nIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuQGlmIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoJ2llJywgMTEpIHtcbiAgLyoqXG4gICAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICAgKi9cblxuICBzdmc6bm90KDpyb290KSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgnaWUnLCA5KSBvciBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdzYWZhcmknLCA2KSB7XG4gIC8qKlxuICAgKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAgICovXG5cbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xuICB9XG59XG5cbi8qKlxuKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4qL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4qIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4qIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiovXG5cbi8qKlxuKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4qICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDExKSB7XG4gIC8qKlxuICAgKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAgICovXG5cbiAgYnV0dG9uIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxufVxuXG4vKipcbiogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4qL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4qIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4qICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4qIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4qICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT0nYnV0dG9uJ10sIC8qIDEgKi9cbmlucHV0W3R5cGU9J3Jlc2V0J10sXG5pbnB1dFt0eXBlPSdzdWJtaXQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4qIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuKiB0aGUgVUEgc3R5bGVzaGVldC5cbiovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuQGlmIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoJ2llJywgMTApIHtcbiAgLyoqXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAgICpcbiAgICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSxcbiAgaW5wdXRbdHlwZT0ncmFkaW8nXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgfVxufVxuXG4vKipcbiogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuKi9cblxuaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4qIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKi9cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4qIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4qIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiovXG5cbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4qL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4qIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuKi9cblxubGVnZW5kIHtcbiAgQGlmIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoJ2llJywgMTEpIHtcbiAgICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgfVxuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDExKSB7XG4gIC8qKlxuICAgKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICAgKi9cblxuICB0ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cbn1cblxuLyoqXG4qIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4qL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4qL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi5vbGQtYnJvd3NlcnMge1xuICB6LWluZGV4OiA5OTk5O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIFxuICBoMiB7IHBhZGRpbmc6IDIwcHggMCAyMHB4IDA7IH1cbiAgcCwgdWwgeyBtYXJnaW46IDAgYXV0bzsgfVxuICBwIHtcbiAgICBtYXgtd2lkdGg6IDcwMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTsgICAgXG4gIH1cbiAgdWwge1xuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDAgMjVweDtcbiAgICAgIGltZyB7IHdpZHRoOiAxMTVweDsgfVxuICAgICAgcCB7IHBhZGRpbmctdG9wOiAxNXB4OyBjb2xvcjogIzI0OUFFMTt9XG4gICAgfVxuICB9XG59XG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufSIsIi8qICBTeW50YXggUXVpY2sgUmVmZXJlbmNlXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNvbHVtbigkcmF0aW9zOiAxLCAkb2Zmc2V0OiAwLCAkY3ljbGU6IDAsICR1bmN5Y2xlOiAwLCAkZ3V0dGVyOiAkamVldC1ndXR0ZXIpXG4gIHNwYW4oJHJhdGlvOiAxLCAkb2Zmc2V0OiAwKVxuICBzaGlmdCgkcmF0aW9zOiAwLCAkY29sX29yX3NwYW46IGNvbHVtbiwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKVxuICB1bnNoaWZ0KClcbiAgZWRpdCgpXG4gIGNlbnRlcigkbWF4X3dpZHRoOiAxNDEwcHgsICRwYWQ6IDApXG4gIHN0YWNrKCRwYWQ6IDAsICRhbGlnbjogZmFsc2UpXG4gIHVuc3RhY2soKVxuICBhbGlnbigkZGlyZWN0aW9uOiBib3RoKVxuICBjZigpXG4qL1xuXG5AaW1wb3J0ICdfc2V0dGluZ3MnO1xuQGltcG9ydCAnX2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICdfZ3JpZCc7XG4iLCIvKipcbiAqIEdyaWQgc2V0dGluZ3MuXG4gKiBBbGwgdmFsdWVzIGFyZSBkZWZhdWx0cyBhbmQgY2FuIHRoZXJlZm9yZSBiZSBlYXNpbHkgb3ZlcmlkZGVuLlxuICovXG5cbiRqZWV0LWd1dHRlcjogICAgICAgICAgIDMgICAgICAhZGVmYXVsdDtcbiRqZWV0LXBhcmVudC1maXJzdDogICAgIGZhbHNlICAhZGVmYXVsdDtcbiRqZWV0LWxheW91dC1kaXJlY3Rpb246IFwiTFRSXCIgICFkZWZhdWx0O1xuJGplZXQtbWF4LXdpZHRoOiAgICAgICAgMTQxMHB4ICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBMaXN0IGZ1bmN0aW9ucyBjb3VydGVzeSBvZiB0aGUgd29uZGVyZnVsIGZvbGtzIGF0IFRlYW0gU2Fzcy5cbiAqIENoZWNrIG91dCB0aGVpciBhd2Vzb21lIGdyaWQ6IFNpbmd1bGFyaXR5LlxuICovXG5cbi8qKlxuICogR2V0ICBwZXJjZW50YWdlIGZyb20gYSBnaXZlbiByYXRpby5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHJhdGlvPTFdIC0gVGhlIGNvbHVtbiByYXRpbyBvZiB0aGUgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IC0gVGhlIHBlcmNlbnRhZ2UgdmFsdWUuXG4gKi9cbkBmdW5jdGlvbiBqZWV0LWdldC1zcGFuKCRyYXRpbzogMSkge1xuICBAcmV0dXJuICRyYXRpbyAqIDEwMDtcbn1cblxuLyoqXG4gKiBXb3JrIG91dCB0aGUgY29sdW1uIHdpZHRocyBiYXNlZCBvbiB0aGUgcmF0aW8gYW5kIGd1dHRlciBzaXplcy5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHJhdGlvcz0xXSAtIFRoZSBjb2x1bW4gcmF0aW8gb2YgdGhlIGVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRndXR0ZXI9JGplZXQtZ3V0dGVyXSAtIFRoZSBndXR0ZXIgZm9yIHRoZSBjb2x1bW4uXG4gKiBAcmV0dXJucyB7bGlzdH0gJHdpZHRoICRndXR0ZXIgLSBBIGxpc3QgY29udGFpbmluZyB0aGUgd2l0aCBhbmQgZ3V0dGVyIGZvciB0aGUgZWxlbWVudC5cbiAqL1xuQGZ1bmN0aW9uIGplZXQtZ2V0LWNvbHVtbigkcmF0aW9zOiAxLCAkZ3V0dGVyOiAkamVldC1ndXR0ZXIpIHtcbiAgJHJhdGlvczogaWYobm90ICRqZWV0LXBhcmVudC1maXJzdCwgamVldC1yZXZlcnNlKCRyYXRpb3MpLCAkcmF0aW9zKTtcbiAgJHdpZHRoOiAxMDA7XG5cbiAgQGVhY2ggJHJhdGlvIGluICRyYXRpb3Mge1xuICAgICRndXR0ZXI6ICRndXR0ZXIgLyAkd2lkdGggKiAxMDA7XG4gICAgJHdpZHRoOiAxMDAgKiAkcmF0aW8gLSAkZ3V0dGVyICsgJHJhdGlvICogJGd1dHRlcjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoICRndXR0ZXI7XG59XG5cbi8qKlxuICogR2V0IHRoZSBzZXQgbGF5b3V0IGRpcmVjdGlvbiBmb3IgdGhlIHByb2plY3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAkZGlyZWN0aW9uIC0gVGhlIGxheW91dCBkaXJlY3Rpb24uXG4gKi9cbkBmdW5jdGlvbiBqZWV0LWdldC1sYXlvdXQtZGlyZWN0aW9uKCkge1xuICAkZGlyZWN0aW9uOiBpZigkamVldC1sYXlvdXQtZGlyZWN0aW9uID09IFwiUlRMXCIsIHJpZ2h0LCBsZWZ0KTtcblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbi8qKlxuICogUmVwbGFjZSBhIHNwZWNpZmllZCBsaXN0IHZhbHVlIHdpdGggYSBuZXcgdmFsdWUgKHVzZXMgYnVpbHQgaW4gc2V0LW50aCgpIGlmIGF2YWlsYWJsZSlcbiAqIEBwYXJhbSB7bGlzdH0gJGxpc3QgLSBUaGUgbGlzdCBvZiB2YWx1ZXMgeW91IHdhbnQgdG8gYWx0ZXIuXG4gKiBAcGFyYW0ge251bWJlcn0gJGluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBsaXN0IGl0ZW0geW91IHdhbnQgdG8gcmVwbGFjZS5cbiAqIEBwYXJhbSB7Kn0gJHZhbHVlIC0gVGhlIHZhbHVlIHlvdSB3YW50IHRvIHJlcGxhY2UgJGluZGV4IHdpdGguXG4gKiBAcmV0dXJucyB7bGlzdH0gJGxpc3QgLSBUaGUgbGlzdCB3aXRoIHRoZSB2YWx1ZSByZXBsYWNlZCBvciByZW1vdmVkLlxuICogQHdhcm4gaWYgYW4gaW52YWxpZCBpbmRleCBpcyBzdXBwbGllZC5cbiAqL1xuQGZ1bmN0aW9uIGplZXQtcmVwbGFjZS1udGgoJGxpc3QsICRpbmRleCwgJHZhbHVlKSB7XG4gIC8vIEZhbGxiYWNrIGZvciBTYXNzIDMuMlxuICBAaWYgZnVuY3Rpb24tZXhpc3RzKFwic2V0LW50aFwiKSAhPSB0cnVlIHtcbiAgICAkcmVzdWx0OiAoKTtcbiAgICAkaW5kZXg6IGlmKCRpbmRleCA8IDAsIGxlbmd0aCgkbGlzdCkgKyAkaW5kZXggKyAxLCAkaW5kZXgpO1xuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGxpc3QpIHtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBpZigkaSA9PSAkaW5kZXgsICR2YWx1ZSwgbnRoKCRsaXN0LCAkaSkpKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG4gIH1cblxuICAvLyBTYXNzIDMuM1xuICAkcmVzdWx0OiBzZXQtbnRoKCRsaXN0LCAkaW5kZXgsICR2YWx1ZSk7XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vKipcbiAqIFJldmVyc2UgYSBsaXN0IChwcm9ncmVzc2l2ZWx5IGVuaGFuY2VkIGZvciBTYXNzIDMuMylcbiAqIEBwYXJhbSB7bGlzdH0gJGxpc3QgLSBUaGUgbGlzdCBvZiB2YWx1ZXMgeW91IHdhbnQgdG8gcmV2ZXJzZS5cbiAqIEByZXR1cm5zIHtsaXN0fSAkcmVzdWx0IC0gVGhlIHJldmVyc2VkIGxpc3QuXG4gKi9cbkBmdW5jdGlvbiBqZWV0LXJldmVyc2UoJGxpc3QpIHtcbiAgLy8gU2FzcyAzLjJcbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhcInNldC1udGhcIikgIT0gdHJ1ZSB7XG4gICAgJHJlc3VsdDogKCk7XG5cbiAgICBAZm9yICRpIGZyb20gbGVuZ3RoKCRsaXN0KSAqIC0xIHRocm91Z2ggLTEge1xuICAgICAgJGl0ZW06IG50aCgkbGlzdCwgYWJzKCRpKSk7XG5cbiAgICAgIEBpZiBsZW5ndGgoJGl0ZW0pID4gMSBhbmQgJHJlY3Vyc2l2ZSB7XG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBqZWV0LXJldmVyc2UoJGl0ZW0sICRyZWN1cnNpdmUpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICRpdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG4gIH1cblxuICAvLyBTYXNzIDMuMytcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBjZWlsKGxlbmd0aCgkbGlzdCkvMikge1xuICAgICR0bXA6IG50aCgkbGlzdCwgJGkpO1xuICAgICR0bXA6IGlmKGxlbmd0aCgkdG1wKSA+IDEgYW5kICRyZWN1cnNpdmUsIHJldmVyc2UoJHRtcCwgJHJlY3Vyc2l2ZSksICR0bXApO1xuXG4gICAgJGxpc3Q6IHNldC1udGgoJGxpc3QsICRpLCBudGgoJGxpc3QsIC0kaSkpO1xuICAgICRsaXN0OiBzZXQtbnRoKCRsaXN0LCAtJGksICR0bXApO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiB0byBhIGdpdmVuIHZhbHVlLlxuICogQHBhcmFtIHtzdHJpbmd9ICRkaXIgLSBUaGUgZGlyZWN0aW9uIHlvdSB3YW50IHRoZSBvcHBvc2l0ZSBvZi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIG9wcG9zaXRlIGRpcmVjdGlvbiB0byAkZGlyLlxuICogQHdhcm4gaWYgYW4gaW5jb3JyZWN0IHN0cmluZyBpcyBwcm92aWRlZC5cbiAqL1xuQGZ1bmN0aW9uIGplZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pIHtcbiAgQGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xuICAgIEByZXR1cm4gcmlnaHQ7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIge1xuICAgIEByZXR1cm4gbGVmdDtcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwidG9wXCIge1xuICAgIEByZXR1cm4gYm90dG9tO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJib3R0b21cIiB7XG4gICAgQHJldHVybiB0b3A7XG4gIH0gQGVsc2UgaWYgaW5kZXgoXCJsdHJcIiBcIkxUUlwiLCAkZGlyZWN0aW9uKSB7XG4gICAgQHJldHVybiBydGw7XG4gIH0gQGVsc2UgaWYgaW5kZXgoXCJydGxcIiBcIlJUTFwiLCAkZGlyZWN0aW9uKSB7XG4gICAgQHJldHVybiBsdHI7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGRpcmVjdGlvbn1gIGlzIG5vdCBhIGRpcmVjdGlvbjsgcGxlYXNlIG1ha2Ugc3VyZSB5b3VyIGRpcmVjdGlvbiBpcyBhbGwgbG93ZXJjYXNlLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIi8qKlxuICogU3R5bGUgYW4gZWxlbWVudCBhcyBhIGNvbHVtbiB3aXRoIGEgZ3V0dGVyLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRvZmZzZXQ9MF0gLSBBIG9mZnNldCBzcGVjaWZpZWQgYXMgYSBmcmFjdGlvbiAoc2VlICRyYXRpb3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IFskY3ljbGU9MF0gLSBFYXNpbHkgY3JlYXRlIGFuIG50aCBjb2x1bW4gZ3JpZCB3aGVyZSAkY3ljbGUgZXF1YWxzIHRoZSBudW1iZXIgb2YgY29sdW1ucy5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHVuY3ljbGU9MF0gLSBVbmRvIGEgcHJldmlvdXMgY3ljbGUgdmFsdWUgdG8gYWxsb3cgZm9yIGEgbmV3IG9uZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGd1dHRlcj0kamVldC1ndXR0ZXJdIC0gU3BlY2lmeSB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY29udGFpbmVycyB3aWR0aC5cbiAqL1xuQG1peGluIGNvbHVtbigkcmF0aW9zOiAxLCAkb2Zmc2V0OiAwLCAkY3ljbGU6IDAsICR1bmN5Y2xlOiAwLCAkZ3V0dGVyOiAkamVldC1ndXR0ZXIpIHtcbiAgJHNpZGU6IGplZXQtZ2V0LWxheW91dC1kaXJlY3Rpb24oKTtcbiAgJG9wcG9zaXRlLXNpZGU6IGplZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRzaWRlKTtcbiAgJGNvbHVtbi13aWR0aHM6IGplZXQtZ2V0LWNvbHVtbigkcmF0aW9zLCAkZ3V0dGVyKTtcbiAgJG1hcmdpbi1sYXN0OiAwO1xuICAkbWFyZ2luLWw6ICRtYXJnaW4tbGFzdDtcbiAgJG1hcmdpbi1yOiBudGgoJGNvbHVtbi13aWR0aHMsIDIpO1xuXG4gIEBpZiAkb2Zmc2V0ICE9IDAge1xuICAgIEBpZiAkb2Zmc2V0IDwgMCB7XG4gICAgICAkb2Zmc2V0OiAkb2Zmc2V0ICogLTE7XG4gICAgICAkb2Zmc2V0OiBudGgoamVldC1nZXQtY29sdW1uKCRvZmZzZXQsIG50aCgkY29sdW1uLXdpZHRocywgMikpLCAxKTtcbiAgICAgICRtYXJnaW4tbGFzdDogJG9mZnNldCArIG50aCgkY29sdW1uLXdpZHRocywgMikgKiAyO1xuICAgICAgJG1hcmdpbi1yOiAkbWFyZ2luLWxhc3Q7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkb2Zmc2V0OiBudGgoamVldC1nZXQtY29sdW1uKCRvZmZzZXQsIG50aCgkY29sdW1uLXdpZHRocywgMikpLCAxKTtcbiAgICAgICRtYXJnaW4tbDogJG9mZnNldCArIG50aCgkY29sdW1uLXdpZHRocywgMik7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgY2Y7XG4gIGZsb2F0OiAkc2lkZTtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiBudGgoJGNvbHVtbi13aWR0aHMsIDEpICogMSU7XG4gIG1hcmdpbjoge1xuICAgICN7JHNpZGV9OiAkbWFyZ2luLWwgKiAxJTtcbiAgICAjeyRvcHBvc2l0ZS1zaWRlfTogJG1hcmdpbi1yICogMSU7XG4gIH07XG5cbiAgQGlmICR1bmN5Y2xlICE9IDAge1xuICAgICY6bnRoLWNoaWxkKCN7JHVuY3ljbGV9bikge1xuICAgICAgbWFyZ2luLSN7amVldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJHNpZGUpfTogJG1hcmdpbi1yICogMSU7XG4gICAgICBmbG9hdDogJHNpZGU7XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKCN7JHVuY3ljbGV9biArIDEpIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkY3ljbGUgIT0gMCB7XG4gICAgJjpudGgtY2hpbGQoI3skY3ljbGV9bikge1xuICAgICAgbWFyZ2luLSN7amVldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJHNpZGUpfTogJG1hcmdpbi1sYXN0ICogMSU7XG4gICAgICBmbG9hdDogamVldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJHNpZGUpO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZCgjeyRjeWNsZX1uICsgMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLSN7amVldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJHNpZGUpfTogJG1hcmdpbi1sYXN0ICogMSU7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQW4gYWxpYXMgZm9yIHRoZSBjb2x1bW4gbWl4aW4uXG4gKiBAcGFyYW0gWyRhcmdzLi4uXSAtIEFsbCBhcmd1bWVudHMgZ2V0IHBhc3NlZCB0aHJvdWdoIHRvIGNvbHVtbigpLlxuICovXG5AbWl4aW4gY29sKCRhcmdzLi4uKSB7XG4gIEBpbmNsdWRlIGNvbHVtbigkYXJncy4uLik7XG59XG5cbi8qKlxuICogR2V0IHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBhbmQgbm90aGluZyBlbHNlLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRndXR0ZXI9JGplZXQtZ3V0dGVyXSAtIFNwZWNpZnkgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGNvbnRhaW5lcnMgd2lkdGguXG4gKi9cbkBmdW5jdGlvbiBjb2x1bW4td2lkdGgoJHJhdGlvczogMSwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKSB7XG4gIEByZXR1cm4gdW5xdW90ZShudGgoamVldC1nZXQtY29sdW1uKCRyYXRpb3MsICRndXR0ZXIpLCAxKSArICclJyk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBndXR0ZXIgc2l6ZSBvZiBhIGNvbHVtbiBhbmQgbm90aGluZyBlbHNlLlxuICogQHBhcmFtIHtudW1iZXJ9IFtyYXRpb3M9MV0gLSBBIHdpZHRoIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXIgYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZ3V0dGVyPWplZXQuZ3V0dGVyXSAtIFNwZWNpZnkgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGNvbnRhaW5lcnMgd2lkdGguXG4gKi9cbkBmdW5jdGlvbiBjb2x1bW4tZ3V0dGVyKCRyYXRpb3M6IDEsICRndXR0ZXI6ICRqZWV0LWd1dHRlcikge1xuICBAcmV0dXJuIHVucXVvdGUobnRoKGplZXQtZ2V0LWNvbHVtbigkcmF0aW9zLCAkZ3V0dGVyKSwgMikgKyAnJScpO1xufVxuXG4vKipcbiAqIEFuIGFsaWFzIGZvciB0aGUgY29sdW1uLXdpZHRoIGZ1bmN0aW9uLlxuICogQHBhcmFtIFskYXJncy4uLl0gLSBBbGwgYXJndW1lbnRzIGdldCBwYXNzZWQgdGhyb3VnaCB0byBjb2x1bW4oKS5cbiAqL1xuQGZ1bmN0aW9uIGN3KCRhcmdzLi4uKSB7XG4gIEByZXR1cm4gY29sdW1uLXdpZHRoKCRhcmdzLi4uKTtcbn1cblxuLyoqXG4gKiBBbiBhbGlhcyBmb3IgdGhlIGNvbHVtbi1ndXR0ZXIgZnVuY3Rpb24uXG4gKiBAcGFyYW0gWyRhcmdzLi4uXSAtIEFsbCBhcmd1bWVudHMgZ2V0IHBhc3NlZCB0aHJvdWdoIHRvIGNvbHVtbigpLlxuICovXG5AZnVuY3Rpb24gY2coJGFyZ3MuLi4pIHtcbiAgQHJldHVybiBjb2x1bW4tZ3V0dGVyKCRhcmdzLi4uKTtcbn1cblxuLyoqXG4gKiBTdHlsZSBhbiBlbGVtZW50IGFzIGEgY29sdW1uIHdpdGhvdXQgYW55IGd1dHRlcnMgZm9yIGEgc2VhbWxlc3Mgcm93LlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRvZmZzZXQ9MF0gLSBBIG9mZnNldCBzcGVjaWZpZWQgYXMgYSBmcmFjdGlvbiAoc2VlICRyYXRpb3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IFtjeWNsZT0wXSAtIEVhc2lseSBjcmVhdGUgYW4gbnRoIGNvbHVtbiBncmlkIHdoZXJlIGN5Y2xlIGVxdWFscyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuXG4gKiBAcGFyYW0ge251bWJlcn0gW3VuY3ljbGU9MF0gLSBVbmRvIGEgcHJldmlvdXMgY3ljbGUgdmFsdWUgdG8gYWxsb3cgZm9yIGEgbmV3IG9uZS5cbiAqL1xuQG1peGluIHNwYW4oJHJhdGlvOiAxLCAkb2Zmc2V0OiAwLCAkY3ljbGU6IDAsICR1bmN5Y2xlOiAwKSB7XG4gICRzaWRlOiBqZWV0LWdldC1sYXlvdXQtZGlyZWN0aW9uKCk7XG4gICRvcHBvc2l0ZS1zaWRlOiBqZWV0LW9wcG9zaXRlLWRpcmVjdGlvbigkc2lkZSk7XG4gICRzcGFuLXdpZHRoOiBqZWV0LWdldC1zcGFuKCRyYXRpbyk7XG4gICRtYXJnaW4tcjogMDtcbiAgJG1hcmdpbi1sOiAkbWFyZ2luLXI7XG4gIEBpZiAkb2Zmc2V0ICE9IDAge1xuICAgIEBpZiAkb2Zmc2V0IDwgMCB7XG4gICAgICAkb2Zmc2V0OiAkb2Zmc2V0ICogLTE7XG4gICAgICAkbWFyZ2luLXI6IGplZXQtZ2V0LXNwYW4oJG9mZnNldCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWFyZ2luLWw6IGplZXQtZ2V0LXNwYW4oJG9mZnNldCk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgY2Y7XG4gIGZsb2F0OiAkc2lkZTtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiAkc3Bhbi13aWR0aCAqIDElO1xuICBtYXJnaW46IHtcbiAgICAjeyRzaWRlfTogJG1hcmdpbi1sICogMSU7XG4gICAgI3skb3Bwb3NpdGUtc2lkZX06ICRtYXJnaW4tciAqIDElO1xuICB9O1xuXG4gIEBpZiAkY3ljbGUgIT0gMCB7XG4gICAgJjpudGgtY2hpbGQoI3skY3ljbGV9bikge1xuICAgICAgZmxvYXQ6ICRvcHBvc2l0ZS1zaWRlO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZCgjeyRjeWNsZX1uICsgMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICB9XG5cbiAgQGlmICR1bmN5Y2xlICE9IDAge1xuICAgICY6bnRoLWNoaWxkKCN7JHVuY3ljbGV9bikge1xuICAgICAgZmxvYXQ6ICRzaWRlO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZCgjeyR1bmN5Y2xlfW4gKyAxKSB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG4gIH1cblxufVxuXG4vKipcbiAqIFJlb3JkZXIgY29sdW1ucyB3aXRob3V0IGFsdGVyaW5nIHRoZSBIVE1MLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTBdIC0gU3BlY2lmeSBob3cgZmFyIGFsb25nIHlvdSB3YW50IHRoZSBlbGVtZW50IHRvIG1vdmUuXG4gKiBAcGFyYW0ge3N0cmluZ30gWyRjb2wtb3Itc3Bhbj1jb2x1bW5dIC0gU3BlY2lmeSB3aGV0aGVyIHRoZSBlbGVtZW50IGhhcyBhIGd1dHRlciBvciBub3QuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRndXR0ZXI9JGplZXQtZ3V0dGVyXSAtIFNwZWNpZnkgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGNvbnRhaW5lcnMgd2lkdGguXG4gKi9cbkBtaXhpbiBzaGlmdCgkcmF0aW9zOiAwLCAkY29sLW9yLXNwYW46IGNvbHVtbiwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKSB7XG4gICR0cmFuc2xhdGU6ICcnO1xuICAkc2lkZTogamVldC1nZXQtbGF5b3V0LWRpcmVjdGlvbigpO1xuXG4gIEBpZiAkc2lkZSA9PSByaWdodCB7XG4gICAgJHJhdGlvczogamVldC1yZXBsYWNlLW50aCgkcmF0aW9zLCAwLCBudGgoJHJhdGlvcywgMSkgKiAtMSk7XG4gIH1cblxuICBAaWYgaW5kZXgoXCJjb2x1bW5cIiBcImNvbFwiIFwiY1wiLCAkY29sLW9yLXNwYW4pIHtcbiAgICAkY29sdW1uLXdpZHRoczogamVldC1nZXQtY29sdW1uKCRyYXRpb3MsICRndXR0ZXIpO1xuICAgICR0cmFuc2xhdGU6IG50aCgkY29sdW1uLXdpZHRocywgMSkgKyBudGgoJGNvbHVtbi13aWR0aHMsIDIpO1xuICB9IEBlbHNlIHtcbiAgICAkdHJhbnNsYXRlOiBqZWV0LWdldC1zcGFuKCRyYXRpb3MpO1xuICB9XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAkdHJhbnNsYXRlICogMSU7XG59XG5cbi8qKlxuICogUmVzZXQgYW4gZWxlbWVudCB0aGF0IGhhcyBoYWQgc2hpZnQoKSBhcHBsaWVkIHRvIGl0LlxuICovXG5AbWl4aW4gdW5zaGlmdCgpIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbGVmdDogMDtcbn1cblxuLyoqXG4gKiBWaWV3IHRoZSBncmlkIGFuZCBpdHMgbGF5ZXJzIGZvciBlYXN5IGRlYnVnZ2luZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGNvbG9yPWJsYWNrXSAtIFRoZSBiYWNrZ3JvdW5kIHRpbnQgYXBwbGllZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gWyRpbXBvcnRhbnQ9ZmFsc2VdIC0gV2hldGhlciB0byBhcHBseSB0aGUgc3R5bGUgYXMgIWltcG9ydGFudC5cbiAqL1xuQG1peGluIGVkaXQoJGNvbG9yOiBibGFjaywgJGltcG9ydGFudDogZmFsc2UpIHtcbiAgQGlmICRpbXBvcnRhbnQge1xuICAgICoge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgkY29sb3IsIC4wNSkgIWltcG9ydGFudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICoge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgkY29sb3IsIC4wNSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogIEFsaWFzIGZvciBlZGl0KCkuXG4gKi9cbkBtaXhpbiBkZWJ1ZygpIHtcbiAgQGluY2x1ZGUgZWRpdDtcbn1cblxuLyoqXG4gKiBIb3Jpem9udGFsbHkgY2VudGVyIGFuIGVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRtYXgtd2lkdGg9MTQxMHB4XSAtIFRoZSBtYXggd2lkdGggdGhlIGVsZW1lbnQgY2FuIGJlLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcGFkPTBdIC0gU3BlY2lmeSB0aGUgZWxlbWVudCdzIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcuXG4gKi9cbkBtaXhpbiBjZW50ZXIoJG1heC13aWR0aDogJGplZXQtbWF4LXdpZHRoLCAkcGFkOiAwKSB7XG4gIEBpbmNsdWRlIGNmO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjoge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6ICBhdXRvO1xuICB9O1xuICBwYWRkaW5nOiB7XG4gICAgbGVmdDogICRwYWQ7XG4gICAgcmlnaHQ6ICRwYWQ7XG4gIH07XG59XG5cbi8qKlxuICogVW5jZW50ZXIgYW4gZWxlbWVudC5cbiAqL1xuQG1peGluIHVuY2VudGVyKCkge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLyoqXG4gKiBTdGFjayBhbiBlbGVtZW50IHNvIHRoYXQgbm90aGluZyBpcyBlaXRoZXIgc2lkZSBvZiBpdC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHBhZD0wXSAtIFNwZWNpZnkgdGhlIGVsZW1lbnQncyBsZWZ0IGFuZCByaWdodCBwYWRkaW5nLlxuICogQHBhcmFtIHtib29sZWFuL3N0cmluZ30gWyRhbGlnbj1mYWxzZV0gLSBTcGVjaWZ5IHRoZSB0ZXh0IGFsaWduIGZvciB0aGUgZWxlbWVudC5cbiAqL1xuQG1peGluIHN0YWNrKCRwYWQ6IDAsICRhbGlnbjogZmFsc2UpIHtcbiAgJHNpZGU6IGplZXQtZ2V0LWxheW91dC1kaXJlY3Rpb24oKTtcbiAgJG9wcG9zaXRlLXNpZGU6IGplZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRzaWRlKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiB7XG4gICAgbGVmdDogIGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH07XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLSN7JHNpZGV9OiBhdXRvO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtc2lkZX06IGF1dG87XG4gIH1cblxuICBAaWYgJHBhZCAhPSAwIHtcbiAgICBwYWRkaW5nOiB7XG4gICAgICBsZWZ0OiAgJHBhZDtcbiAgICAgIHJpZ2h0OiAkcGFkO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGFsaWduIGlzIG5vdCBmYWxzZSkge1xuICAgIEBpZiBpbmRleChcImNlbnRlclwiIFwiY1wiLCAkYWxpZ24pIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9IEBlbHNlIGlmIGluZGV4KFwibGVmdFwiIFwibFwiLCAkYWxpZ24pIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfSBAZWxzZSBpZiBpbmRleChcInJpZ2h0XCIgXCJyXCIsICRhbGlnbikge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVW5zdGFjayBhbiBlbGVtZW50LlxuICovXG5AbWl4aW4gdW5zdGFjaygpIHtcbiAgJHNpZGU6IGplZXQtZ2V0LWxheW91dC1kaXJlY3Rpb24oKTtcbiAgJG9wcG9zaXRlLXNpZGU6IGplZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRzaWRlKTtcblxuICB0ZXh0LWFsaWduOiAkc2lkZTtcbiAgZGlzcGxheTogaW5saW5lO1xuICBjbGVhcjogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjoge1xuICAgIGxlZnQ6ICAwO1xuICAgIHJpZ2h0OiAwO1xuICB9O1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi0jeyRzaWRlfTogMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLSN7amVldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJHNpZGUpfTogMDtcbiAgfVxufVxuXG4vKipcbiAqIENlbnRlciBhbiBlbGVtZW50IG9uIGVpdGhlciBvciBib3RoIGF4ZXMuXG4gKiBAcmVxdWlyZXMgQSBwYXJlbnQgY29udGFpbmVyIHdpdGggcmVsYXRpdmUgcG9zaXRpb25pbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gWyRkaXJlY3Rpb249Ym90aF0gLSBTcGVjaWZ5IHdoaWNoIGF4ZXMgdG8gY2VudGVyIHRoZSBlbGVtZW50IG9uLlxuICovXG5AbWl4aW4gYWxpZ24oJGRpcmVjdGlvbjogYm90aCkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cbiAgQGlmIGluZGV4KFwiaG9yaXpvbnRhbFwiIFwiaFwiLCAkZGlyZWN0aW9uKSB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfSBAZWxzZSBpZiBpbmRleChcInZlcnRpY2FsXCIgXCJ2XCIsICRkaXJlY3Rpb24pIHtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH0gQGVsc2Uge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgfVxufVxuXG4vKipcbiAqIEFwcGx5IGEgY2xlYXJmaXggdG8gYW4gZWxlbWVudC5cbiAqL1xuQG1peGluIGNmKCkge1xuICAqem9vbTogMTtcblxuICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuIiwiLy8gQ29sb3JzXG4kY29hbDogIzQ0NDtcblxuLy8gUGFyYWdyYXBoIGxpbmsgY29sb3I6XG5wIGEge1xuICBjb2xvcjogZGVlcHNreWJsdWU7XG4gIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogZGFya2VuKGRlZXBza3libHVlLCAxMCUpO1xuICB9XG59XG5cbi8vIEJyYW5kIENvbG9yc1xuJGJsdWUgICAgICAgICAgICAgICA6ICMwMDgyQ0E7XG4kYmx1ZS1ncmF5ICAgICAgICAgIDogI0UyRTdFQztcbiR5ZWxsb3cgICAgICAgICAgICAgOiAjRjhDNzQ0O1xuJGdyZWVuICAgICAgICAgICAgICA6ICM2OUE5NTg7XG4kZ3JleS1zaGFkZSAgICAgICAgIDogIzMzM0I0MTtcbiRncmV5LXRpbnQgICAgICAgICAgOiAjQzhDQkNEO1xuJGdyZXktbGlnaHRcdFx0XHRcdFx0OiAjRThFOUVBO1xuJHJlZCAgICAgICAgICAgICAgICA6ICNEMzU4NTI7XG4kd2hpdGUgICAgICAgICAgICAgIDogI0ZGRkZGRjtcbiRoZXJvLW92ZXJsYXkgICAgICAgOiAjMjMxRjIwO1xuXG4vLyBDb2xvcnMgYnkgVXNlXG4kYmxvZy15ZWxsb3dcdFx0XHRcdDogI0JFQ0UzMTtcbiRibG9nLXRlYWxcdFx0XHRcdFx0OiAjNUFBQ0EzO1xuJGJsb2ctb3JhbmdlXHRcdFx0XHQ6ICNEQjg2MkE7XG4kYmxvZy1ibHVlXHRcdFx0XHRcdDogIzE5OEJCMztcbiRibG9nLWdyZWVuXHRcdFx0XHRcdDogIzhBQkY1MTtcbiIsIi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYuZHJhZ2dpbmcge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGN1cnNvcjogaGFuZDtcbiAgICB9XG59XG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4uc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJi5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuZHJhZ2dpbmcgaW1nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5zbGljay12ZXJ0aWNhbCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuXG4kc2xpY2stZm9udC1wYXRoOiBcIi4vZm9udHMvXCIgIWRlZmF1bHQ7XG4kc2xpY2stZm9udC1mYW1pbHk6IFwic2xpY2tcIiAhZGVmYXVsdDtcbiRzbGljay1sb2FkZXItcGF0aDogXCIuL1wiICFkZWZhdWx0O1xuJHNsaWNrLWFycm93LWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcbiRzbGljay1kb3QtY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jb2xvci1hY3RpdmU6ICRzbGljay1kb3QtY29sb3IgIWRlZmF1bHQ7XG4kc2xpY2stcHJldi1jaGFyYWN0ZXI6IFwi4oaQXCIgIWRlZmF1bHQ7XG4kc2xpY2stbmV4dC1jaGFyYWN0ZXI6IFwi4oaSXCIgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNoYXJhY3RlcjogXCLigKJcIiAhZGVmYXVsdDtcbiRzbGljay1kb3Qtc2l6ZTogNnB4ICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktZGVmYXVsdDogMC43NSAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LW9uLWhvdmVyOiAxICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTogMC4yNSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIHNsaWNrLWltYWdlLXVybCgkdXJsKSB7XG4gICAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhpbWFnZS11cmwpIHtcbiAgICAgICAgQHJldHVybiBpbWFnZS11cmwoJHVybCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiB1cmwoJHNsaWNrLWxvYWRlci1wYXRoICsgJHVybCk7XG4gICAgfVxufVxuXG5AZnVuY3Rpb24gc2xpY2stZm9udC11cmwoJHVybCkge1xuICAgIEBpZiBmdW5jdGlvbi1leGlzdHMoZm9udC11cmwpIHtcbiAgICAgICAgQHJldHVybiBmb250LXVybCgkdXJsKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIHVybCgkc2xpY2stZm9udC1wYXRoICsgJHVybCk7XG4gICAgfVxufVxuXG4vKiBTbGlkZXIgKi9cblxuLnNsaWNrLWxpc3Qge1xuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmIHNsaWNrLWltYWdlLXVybChcIi9pbWcvYWpheC1sb2FkZXIuZ2lmXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIH1cbn1cblxuLyogSWNvbnMgKi9cbkBpZiAkc2xpY2stZm9udC1mYW1pbHkgPT0gXCJzbGlja1wiIHtcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgICAgICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdFwiKTtcbiAgICAgICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay5zdmcjc2xpY2tcIikgZm9ybWF0KFwic3ZnXCIpO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgfVxufVxuXG4vKiBBcnJvd3MgKi9cblxuLnNsaWNrLXByZXYsXG4uc2xpY2stbmV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMHB4O1xuICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktb24taG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5zbGljay1kaXNhYmxlZDpiZWZvcmUge1xuICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlO1xuICAgIH1cbn1cblxuLnNsaWNrLXByZXY6YmVmb3JlLCAuc2xpY2stbmV4dDpiZWZvcmUge1xuICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkc2xpY2stYXJyb3ctY29sb3I7XG4gICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktZGVmYXVsdDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uc2xpY2stcHJldiB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IC0yNXB4O1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNsaWNrLW5leHQge1xuICAgIHJpZ2h0OiAtMjVweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBsZWZ0OiAtMjVweDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJHNsaWNrLW5leHQtY2hhcmFjdGVyO1xuICAgICAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICAgICAgY29udGVudDogJHNsaWNrLXByZXYtY2hhcmFjdGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBEb3RzICovXG5cbi5zbGljay1zbGlkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5zbGljay1kb3RzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtNDVweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAwcHg7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktb24taG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAkc2xpY2stZG90LWNoYXJhY3RlcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRzbGljay1mb250LWZhbWlseTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRzbGljay1kb3Qtc2l6ZTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzbGljay1kb3QtY29sb3I7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuc2xpY2stYWN0aXZlIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6ICRzbGljay1kb3QtY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktZGVmYXVsdDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvLyBjaGFuZ2UgcGVyIHByb2plY3RcbiRiYXNlLWZvbnQ6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRmb250LXN0YWNrOiBcIkZyYW5rbGluR290aGljIFVSVyBDb25kXCIsIHNhbnMtc2VyaWY7XG4kcHJveGltYS1ub3ZhOiBcInByb3hpbWEtbm92YVwiLCBcIlByb3hpbWEgTm92YVwiLCBzYW5zLXNlcmlmO1xuXG4uZGVmYXVsdC10eXBlIHtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQ7XG4gIGNvbG9yOiAkY29hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuYm9keSwgcCwgYSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbnNtYWxsLCBlbSwgc3Ryb25nLCBpbnB1dCwgYnV0dG9uIHtcbiAgQGV4dGVuZCAuZGVmYXVsdC10eXBlO1xufVxuXG4vLyBIZWFkZXJzXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMXJlbSAwO1xuICBmb250LWZhbWlseTogJGZvbnQtc3RhY2s7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICBhIHsgY29sb3I6IGluaGVyaXQ7ICB9XG59XG5cbi8vIEdsb2JhbCByZXNwb25zaXZlIHR5cG9ncmFwaHkgLSBlZGl0IHBlciBwcm9qZWN0XG4vLyBUeXBlIHdpbGwgYmUgZmx1aWQgYmV0d2VlbiBtaW4gYW5kIG1heCBzaXplc1xuLy8gU2VlIG1peGluIGZsdWlkLXR5cGUoKSBpbiBLbmFwc2Fja1xuXG5oMSB7IEBpbmNsdWRlIGZsdWlkLXR5cGUoMzZweCwgNTZweCwgNDIwcHgsIDEwMjRweCk7IH1cbmgyIHsgQGluY2x1ZGUgZmx1aWQtdHlwZSgzNnB4LCA0OHB4LCA0MjBweCwgMTAyNHB4KTsgfVxuaDMgeyBAaW5jbHVkZSBmbHVpZC10eXBlKDMwcHgsIDM2cHgsIDQyMHB4LCAxMDI0cHgpOyB9XG5oNCB7IEBpbmNsdWRlIGZsdWlkLXR5cGUoMjRweCwgMzBweCwgNDIwcHgsIDEwMjRweCk7IH1cbmg1IHsgQGluY2x1ZGUgZmx1aWQtdHlwZSgyMHB4LCAyNHB4LCA0MjBweCwgMTAyNHB4KTsgfVxuaDYgeyBAaW5jbHVkZSBmbHVpZC10eXBlKDE4cHgsIDIwcHgsIDQyMHB4LCAxMDI0cHgpOyB9XG5wLCB1bCwgbGksIG9sIHsgQGluY2x1ZGUgZmx1aWQtdHlwZSgxNXB4LCAxOHB4KTt9XG5cbi8vIExldHRlcnNwYWNpbmdcbiR0aWdodC1zcGFjaW5nOiAtLjA0NWVtO1xuJHNudWctc3BhY2luZzogIC0uMDJlbTtcbiRtb3JlLXNwYWNpbmc6ICAuMWVtO1xuXG4vLyBXZWJraXQgYW50aWFsaWFzaW5nXG5AbWl4aW4gaGVhdnktYW50aWFsaWFzKCkge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcbn1cblxuLy8gR2VuZXJpYyBTdHlsZXNcbnAge1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIG1hcmdpbjogMWVtIDA7XG59XG5hIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4iLCIvLyAtLS0tXG4vLyBUeXBvZ3JhcGh5XG4vLyAtLS0tXG5cbi8vLSBNaXhpbjogSW5saW5lIExpc3Rcbi8vL1xuLy8vIEZvciB3aGVuIHlvdSBuZWVkIHlvdXIgbGlzdCB0byBiZSBob3Jpem9udGFsLlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJHNwYWNpbmcgWzIwcHhdIC0gQW1vdW50IG9mIHNwYWNpbmcgYmV0d2VlbiBlbGVtZW50cyAtXG4vLy8gY2FuIGJlIHdoYXRldmVyIHVuaXQgeW91IGxpa2UuXG4vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeVxuLy8vIEBleGFtcGxlXG4vLy8gICB1bCB7XG4vLy8gICAgIEBpbmNsdWRlIGlubGluZS1saXN0KCk7XG4vLy8gICB9XG5cbkBtaXhpbiBpbmxpbmUtbGlzdCgkc3BhY2luZzogMjBweCkge1xuICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nO1xuICB9XG5cbiAgbGk6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5cbi8vLSBNaXhpbjogSW5saW5lIExpc3Rcbi8vL1xuLy8vIFdlIHRlbmQgdG8gc3BlbmQgYSBncmVhdCBkZWFsIG9mIHRpbWUgcmVzZXR0aW5nIGFsbCBvZiB0aGUgcHJvcGVydGllcyBmb3Jcbi8vLyBsaXN0cy4gVGhpcyBwdXRzIHRoZW0gYmFjayB0byByb3VnaGx5IHRoZSBzYW1lIHN0YXRlIGFzIGJyb3dzZXIgZGVmYXVsdHMuXG4vLy8gWW91IGNhbiBwYXNzIGl0IGFueSBvcHRpb24gdGhhdCBbbGlzdC1zdHlsZS10eXBlXVxuLy8vIChodHRwOi8vd3d3Lnczc2Nob29scy5jb20vY3NzcmVmL3ByX2xpc3Qtc3R5bGUtdHlwZS5hc3ApIHdvdWxkIG5vcm1hbGx5XG4vLy8gdGFrZS5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRzdHlsZSBbZGlzY10gLSBBbW91bnQgb2Ygc3BhY2luZyBiZXR3ZWVuIGVsZW1lbnRzLlxuLy8vIGNhbiBiZSB3aGF0ZXZlciB1bml0IHlvdSBsaWtlLlxuLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHlcbi8vLyBAZXhhbXBsZVxuLy8vICAgdWwge1xuLy8vICAgICBAaW5jbHVkZSB0ZXh0LWxpc3QoKTtcbi8vLyAgIH1cbi8vLyAgIHVsIHtcbi8vLyAgICAgQGluY2x1ZGUgdGV4dC1saXN0KCdkaXNjJyk7XG4vLy8gICB9XG5cbkBtaXhpbiB0ZXh0LWxpc3QoJHN0eWxlOiAnZGlzYycpIHtcbiAgbWFyZ2luOiAuMzJyZW0gLjk0cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogdW5xdW90ZSgkc3R5bGUpO1xuICAgIHBhZGRpbmc6IC4xMjVyZW0gMDtcbiAgfVxufVxuXG4vLy0gTWl4aW46IFJlc2V0IExpc3Rcbi8vL1xuLy8vICBSZXNldHMgdGhlIG1hcmdpbnMgcGFkZGluZywgYW5kIHN0eWxlcyB0byBsaXN0LlxuLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHlcbi8vLyBAZXhhbXBsZVxuLy8vICAgdWwge1xuLy8vICAgICBAaW5jbHVkZSByZXNldC1saXN0KCk7XG4vLy8gICB9XG5cbkBtaXhpbiByZXNldC1saXN0KCkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgbGkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG5cbi8vLSBNaXhpbjogRWxsaXBzaXNcbi8vL1xuLy8vIFRydW5jYXRlIHRleHQgdG8gdGhlIHdpZHRoIG9mIGl0cyBjb250YWluZXIuLi5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICR3aWR0aCBbMTAwJV0gLSBXaWR0aCBvZiB0aGUgY29udGFpbmVyXG4vLy8gY2FuIGJlIHdoYXRldmVyIHVuaXQgeW91IGxpa2UuXG4vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeVxuLy8vIEBleGFtcGxlXG4vLy8gICBoMyB7XG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzKCk7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuXG5cbi8vLSBNaXhpbjogRmx1aWQgVHlwZVxuLy8vXG4vLy8gTWFnaWMgY2FsYyArIHZoIGNvbWJvIHRvIGFsbG93IHRleHQgdG8gYmUgZmx1aWQgYmV0d2VlbiBtaW5pbXVtXG4vLy8gYW5kIG1heGltdW0gYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeVxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRtaW4tZm9udC1zaXplIFsxMnB4XSAtIE1pbmltdW0gZm9udCBzaXplXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJG1heC1mb250LXNpemUgWzI0cHhdIC0gTWF4aW11bSBmb250IHNpemVcbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkbG93ZXItcmFuZ2UgWzQyMHB4XSAtIFN0b3Agc2NhbGluZyBmb250IHNtYWxsZXIgYXQgdGhpcyBzY3JlZW4gcmVzb2x1dGlvblxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICR1cHBlci1yYW5nZSBbOTAwcHhdIC0gU3RvcCBzY2FsaW5nIGZvbnQgbGFyZ2VyIGF0IHRoaXMgc2NyZWVuIHJlc29sdXRpb25cbi8vLyBAZXhhbXBsZVxuLy8vICAgaDEge1xuLy8vICAgICBAaW5jbHVkZSBmbHVpZC10eXBlKDIwcHgsIDQ4cHgpO1xuLy8vICAgfVxuLy8vIEBsaW5rIGh0dHA6Ly9jb2RlcGVuLmlvL2Rib3gvcGVuL21lYU1iYVxuXG5AbWl4aW4gZmx1aWQtdHlwZSgkbWluLWZvbnQtc2l6ZTogMTJweCwgJG1heC1mb250LXNpemU6IDIxcHgsICRsb3dlci1yYW5nZTogNDIwcHgsICR1cHBlci1yYW5nZTogOTAwcHgpIHtcbiAgZm9udC1zaXplOiBjYWxjKCN7JG1pbi1mb250LXNpemV9ICsgI3soKCRtYXgtZm9udC1zaXplIC8gKCRtYXgtZm9udC1zaXplICogMCArIDEpKSAtICgkbWluLWZvbnQtc2l6ZSAvICgkbWluLWZvbnQtc2l6ZSAqIDAgKyAxKSkpfSAqICgoMTAwdncgLSAjeyRsb3dlci1yYW5nZX0pIC8gI3soKCR1cHBlci1yYW5nZSAvICgkdXBwZXItcmFuZ2UgKiAwICsgMSkpIC0gKCRsb3dlci1yYW5nZSAvICgkbG93ZXItcmFuZ2UgKiAwICsgMSkpKX0pKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItcmFuZ2UpIHtcbiAgICBmb250LXNpemU6ICRtaW4tZm9udC1zaXplO1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLXJhbmdlKXtcbiAgICBmb250LXNpemU6ICRtYXgtZm9udC1zaXplO1xuICB9XG59XG4iLCJcbi8vIFJlc3BvbnNpdmUgY29udGFpbmVyXG4uY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2VudGVyKCRtYXgpO1xuICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LXRpbnQ7XG59XG5cbi5pbm5lci1jb250YWluZXIge1xuICBAaW5jbHVkZSBjZW50ZXIoJGRlc2t0b3AsIDUlKTtcbiAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICBwYWRkaW5nOiAwIDQlO1xuICAgICYuaW5uZXItY29udGFpbmVyLW1vYmlsZS1icmVhayB7XG4gICAgICBwYWRkaW5nOiAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuYm9keSB7XG4gICYuY2F0ZWdvcnktbWFya2V0aW5nLCAmLmNhdGVnb3J5LXJlc2VhcmNoLCAmLmNhdGVnb3J5LWRlc2lnbiwgJi5jYXRlZ29yeS1wcm9kdWN0LCAmLmNhdGVnb3J5LWN4IHtcbiAgICAuYmxvZy1wb3N0LW92ZXJsYXkgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgfVxufVxuXG5cbi8vIFV0aWxpdHkgY2xhc3Nlc1xuLmNmIHtcbiAgQGluY2x1ZGUgY2YoKTtcbn1cblxuLy8gQWRkaXRpb25hbCByZXNldHMgLyBiYXNlIHN0eWxpbmcgLSBzZWUga25hcHNhY2s6XG5AaW5jbHVkZSByZXNldC1lbGVtZW50cygpO1xuXG5pbnB1dCAgIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvdXRsaW5lOiBub25lO1xufVxudGFibGUgICB7XG4gIC8vIFR1cm4gdGhpcyBvbiBmb3IgZGVmYXVsdCB0YWJsZSBzdHlsaW5nXG4gIC8vIEBpbmNsdWRlIHRhYmxlKCk7XG59XG5jb2RlICAgIHsgQGluY2x1ZGUgY29kZSgpOyB9XG5wcmUgICAgIHsgQGluY2x1ZGUgcHJlKCkgfVxuaHIgICAgICB7IEBpbmNsdWRlIHJ1bGUoKTsgfVxubmF2IHVsICB7IEBpbmNsdWRlIHJlc2V0LWxpc3QoKTsgfVxudWwudGV4dCB7IEBpbmNsdWRlIHRleHQtbGlzdCgpO31cbm9sLnRleHQgeyBAaW5jbHVkZSB0ZXh0LWxpc3QoJ2RlY2ltYWwnKTt9XG5cbnVsLnRleHQgdWwsIHVsLnRleHQgb2wsIG9sLnRleHQgb2wsIG9sLnRleHQgdWwgeyBtYXJnaW46IC4zcmVtIDFyZW0gMDt9XG5cbnN0cm9uZyB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cblxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG4jd3BhZG1pbmJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIGhpZGUgYXV0aG9yIGluZm9ybWF0aW9uIGZvciBub3dcbmg1I3Bvc3QtdGl0bGUsIC5ibG9nLXBvc3QtYXV0aG9yLCAuYXV0aC1pbmZvIHtcbiAgLy8gZGlzcGxheTogbm9uZTtcbn1cblxuLmJsb2ctYnJiIHtcbiAgLmJsb2ctcG9zdC1oZXJvIHtcbiAgICBoZWlnaHQ6IDk5dmg7XG4gICAgcCB7XG4gICAgICBtYXgtd2lkdGg6IDgwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDIycHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDI1cHgpO1xuICAgIH1cbiAgfVxuICBoZWFkZXIsIGZvb3RlciB7XG4gICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogOTkgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBoZWFkZXIge1xuICAgIHRvcDogMHB4O1xuICB9XG5cbiAgZm9vdGVyIHtcbiAgICBib3R0b206IDBweDtcbiAgfVxuICAuaGVhZGVyLWl0ZW0ge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5ib3R0b20taGVhZGVyIHtcbiAgICBoZWlnaHQ6IDczcHg7XG4gIH1cbn1cblxuLmdlbmVyYWwge1xuICBwYWRkaW5nOiByZW0oMTI1cHgpIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLmJ0biB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDUwcHgpO1xuICAgIHBhZGRpbmc6IHJlbSgxMHB4KSByZW0oNTBweCk7XG4gIH1cbn1cblxuXG4vL3NvY2lhbCBwbHVnaW5cblxuLm5jX3NvY2lhbFBhbmVsU2lkZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgIHRvcDogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgei1pbmRleDogOTAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4ubmNfdHdlZXRDb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xufVxuXG5kaXYubmNfc29jaWFsUGFuZWwgLm5jX3R3ZWV0Q29udGFpbmVyIHtcbiAgbWFyZ2luOiAyMHB4IGF1dG8gIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgbWFyZ2luOiAwcHggMTBweCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5uY19zb2NpYWxQYW5lbCBhIC5zd19jb3VudCB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLm5jX3NvY2lhbFBhbmVsIC5pY29uRmlsbGVyIHtcbiAgbWF4LXdpZHRoOiAzMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5zdyB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogNHB4IDhweCAhaW1wb3J0YW50O1xufVxuXG4uc3dfc2hhcmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5zdzpiZWZvcmUge1xuICBjb2xvcjogJGNvYWw7XG59XG4iLCIvLyBHZW5lcmFsIFNldHRpbmdzXG4kYmFzZS1mb250LXNpemU6IDE2cHg7XG4kZ2xvYmFsLWJvcmRlci1yYWRpdXM6IDNweDtcblxuLy8gQnJlYWtwb2ludHMgdG8gYmUgdXNlZCB3aXRoIGluY2x1ZGUtbWVkaWFcbi8vIEV4YW1wbGUgQ3NzOiBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb20vI2ZlYXR1cmVzXG5cbiRtb2JpbGU6IDMyMHB4O1xuJG1vYmlsZS1sOiA2NDBweDtcbiR0YWJsZXQ6IDc2OHB4O1xuJHRhYmxldC1sOiAxMDI0cHg7XG4kZGVza3RvcDogMTI4MHB4O1xuJG1heDogMTkyMHB4O1xuXG4kYnJlYWtwb2ludHM6IChcbiAgJ21vYmlsZSc6ICRtb2JpbGUsXG4gICdtb2JpbGUtbCc6ICRtb2JpbGUtbCxcbiAgJ3RhYmxldCc6ICR0YWJsZXQsXG4gICd0YWJsZXQtbCc6ICR0YWJsZXQtbCxcbiAgJ2Rlc2t0b3AnOiAkZGVza3RvcFxuKTtcbiIsIi8vIC0tLS1cbi8vIExheW91dFxuLy8gLS0tLVxuXG4vLy0gTWl4aW46IENsZWFyZml4XG4vLy9cbi8vLyBKdXN0IHlvdXIgc3RhbmRhcmQgY2xlYXJmaXguXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cbkBtaXhpbiBjbGVhcmZpeCgpIHtcbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cblxuLy8tIEFsaWFzOiBjZlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vIEBleGFtcGxlXG4vLy8gICBAaW5jbHVkZSBjZigpO1xuLy8vIEBhbGlhcyBjbGVhcmZpeFxuXG5AbWl4aW4gY2YoKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbi8vLSBNaXhpbjogUmF0aW8gQm94XG4vLy9cbi8vLyBUaGlzIHNldHMgYSBzcGVjaWZpYyB3aWR0aC9oZWlnaHQgcmF0aW8uIFVzZWZ1bCBvbiBiYWNrZ3JvdW5kIGltYWdlcyxcbi8vLyBpZnJhbWVzIGFuZCBZb3V0dWJlIGVtYmVkcy5cbi8vL1xuLy8vICoqbm90ZSoqOiBBbnkgY29udGVudCBpbnNpZGUgYHJhdGlvLWJveGAgd2lsbCBuZWVkIHRvIGJlIHBvc2l0aW9uZWRcbi8vLyBhYnNvbHV0ZWx5IGFzIG5vdCB0byBjaGFuZ2UgdGhlIGFzcGVjdC1yYXRpby5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRyYXRpbyBbMSAvIDFdIC0gQXNwZWN0IHJhdGlvOiBoZWlnaHQgLyB3aWR0aFxuLy8vIEBncm91cCBsYXlvdXRcbi8vLyBAZXhhbXBsZVxuLy8vICAgZmlndXJlIHtcbi8vLyAgICAgQGluY2x1ZGUgcmF0aW8oMTYgLyA5KTtcbi8vLyAgIH1cbi8vLyBAbGluayBodHRwOi8vd3d3Lm1hZGVteWRheS5kZS9jc3MtaGVpZ2h0LWVxdWFscy13aWR0aC13aXRoLXB1cmUtY3NzLmh0bWxcblxuQG1peGluIHJhdGlvLWJveCgkcmF0aW86IDEgLyAxKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctdG9wOiAoMSAvICRyYXRpbykgKiAxMDAlO1xuICB9XG59XG5cbi8vLSBNaXhpbjogRnVsbCBQYWdlXG4vLy9cbi8vLyBDcmVhdGUgYSByZXNwb25zaXZlIGZ1bGwgcGFnZSBzZWN0aW9uIHdpdGggaW50ZWxsaWdlbnQgZGVmYXVsdHMuXG4vLy8gUmVzZXRzIG9uIG1vYmlsZS5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRoZWlnaHQgWzEwMHZoXSAtIFBhZ2UgaGVpZ2h0XG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJG1heC1oZWlnaHQgWzg1MHB4XSAtIE1heCBwYWdlIGhlaWdodFxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRtaW4taGVpZ2h0IFs2MDBweF0gLSBNaW4gcGFnZSBoZWlnaHRcbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkYnJlYWtwb2ludCBbNzY4cHhdIC0gRGlzYWJsZSBiZWxvdyB0aGlzIHNpemUgb3IgcGFzc1xuLy8vICdudWxsJyB0byBub3QgdXNlIGEgYnJlYWtwb2ludC5cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIHNlY3Rpb24ge1xuLy8vICAgICBAaW5jbHVkZSBmdWxsLXBhZ2UoKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgc2VjdGlvbiB7XG4vLy8gICAgIEBpbmNsdWRlIGZ1bGwtcGFnZShjYWxjKDEwMHZoIC0gOTBweCksIDgwMHB4LCA1MDBweCk7XG4vLy8gICB9XG4vLy8gQGxpbmsgaHR0cDovL2NvZGVwZW4uaW8vZGJveC9wZW4vT3l6cnJWXG5cblxuQG1peGluIGZ1bGwtcGFnZSgkaGVpZ2h0OiAxMDB2aCwgJG1heC1oZWlnaHQ6IDg1MHB4LCAkbWluLWhlaWdodDogNjAwcHgsICRicmVha3BvaW50OiA3NjhweCkge1xuICAvLyBEaXNhYmxlIGJlbG93IHNldCBicmVha3BvaW50XG4gIEBpZiAoJGJyZWFrcG9pbnQpIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludCkge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgbWF4LWhlaWdodDogJG1heC1oZWlnaHQ7XG4gICAgICBtaW4taGVpZ2h0OiAkbWluLWhlaWdodDtcbiAgICB9XG4gIC8vIFNob3cgZm9yIGFsbCBzaXplc1xuICB9IEBlbHNlIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbWF4LWhlaWdodDogJG1heC1oZWlnaHQ7XG4gICAgbWluLWhlaWdodDogJG1pbi1oZWlnaHQ7XG4gIH1cbn1cblxuLy8gTWl4aW46IFZlcnRpY2FsbHkgQWxpZ25cbi8vIENyb3NzIGJyb3dzZXIgdmVydGljYWwgYWxpZ24uIFdvcmtzIGRvd24gdG8gSUU5LlxuLy9cbi8vIGV4LiBAaW5jbHVkZSB2ZXJ0aWNhbGx5LWFsaWduKCk7XG5cbi8vLSBNaXhpbjogVmVydGljYWxseSBBbGlnblxuLy8vXG4vLy8gQ3Jvc3MgYnJvd3NlciB2ZXJ0aWNhbCBhbGlnbi4gV29ya3MgZG93biB0byBJRTkuXG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkcmVzZXQgW051bGxdIC0gUGFzcyBgZmFsc2VgIHRvIHJlc2V0IG92ZXJyaWRlIHRvIG9yaWdpbmFsXG4vLy8gdmFsdWVzXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vIEBleGFtcGxlXG4vLy8gICBhcnRpY2xlIHtcbi8vLyAgICAgQGluY2x1ZGUgdmVydGljYWxseS1hbGlnbigpO1xuLy8vICAgfVxuLy8vXG4vLy8gICBoNCB7XG4vLy8gICAgIEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ24oZmFsc2UpO1xuLy8vICAgfVxuLy8vIEBsaW5rIGh0dHA6Ly96ZXJvc2l4dGhyZWUuc2UvdmVydGljYWwtYWxpZ24tYW55dGhpbmctd2l0aC1qdXN0LTMtbGluZXMtb2YtY3NzL1xuXG5AbWl4aW4gdmVydGljYWxseS1hbGlnbigkcmVzZXQgOiBudWxsKSB7XG4gIEBpZiAoJHJlc2V0ICE9IGZhbHNlKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfSBAZWxzZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuLy8tIE1peGluOiBIb3Jpem9udGFsIFJ1bGVcbi8vL1xuLy8vIENsZWFuIHJlc2V0IGZvciBkaXZpZGVyIGxpbmVzLlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJGNvbG9yIFtyZ2JhKCMwMDAsIC4xNSldIC0gTGluZSBjb2xvclxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRzcGFjaW5nIFsxLjVlbV0gLSBNYXJnaW4gYWJvdmUgYW5kIGJlbG93IHRoZSBsaW5lXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIGhyIHtcbi8vLyAgICAgQGluY2x1ZGUgcnVsZSgpO1xuLy8vICAgfVxuLy8vICAgaHIuYmx1ZSB7XG4vLy8gICAgIEBpbmNsdWRlIHJ1bGUoYmx1ZSk7XG4vLy8gICB9XG4vLy8gQHRvZG8gLSAkYm9yZGVyLXdpZHRoIHBhcmFtXG5cbkBtaXhpbiBydWxlKCRjb2xvcjogcmdiYSgjMDAwLCAuMTUpLCAkc3BhY2luZzogMS41ZW0pIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogJHNwYWNpbmcgMDtcbn1cblxuXG4vLy0gTWl4aW46IFRhYmxlIExheW91dFxuLy8vXG4vLy8gU2V0cyBlbGVtZW50IGFuZCBpdHMgY2hpbGRyZW4gdG8gdXNlIHRhYmxlIGxheW91dC4gQW4gb2xkIGJ1dCB2ZXJ5IHBvd2VyZnVsXG4vLy8gY3NzIHByb3BlcnR5IGZvciBmbGV4aWJsZSBsYXlvdXQgY2hhbGxlbmdlcy5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRsYXlvdXQtdHlwZSBbZml4ZWRdIC0gYGZpeGVkYCBvciBgYXV0b2Bcbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vLyBAZXhhbXBsZVxuLy8vICAgdWwge1xuLy8vICAgICBAaW5jbHVkZSB0YWJsZS1sYXlvdXQoKTtcbi8vLyAgIH1cbi8vLyBAbGluayBodHRwOi8vY29kZXBlbi5pby9kYm94L3Blbi9wdnJaWlZcbi8vLyBAbGluayBodHRwOi8vY29saW50b2guY29tL2Jsb2cvZGlzcGxheS10YWJsZS1hbnRpLWhlcm9cblxuQG1peGluIHRhYmxlLWxheW91dCgkbGF5b3V0LXR5cGU6ICdmaXhlZCcpIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHRhYmxlLWxheW91dDogJGxheW91dC10eXBlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gKiB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgfVxufVxuXG4vLy0gTWl4aW46IEFic29sdXRlIENlbnRlclxuLy8vXG4vLy8gRmFzdGVyIGNlbnRlcmluZyB3aGVuIHlvdXIgZWxlbWVudCBoYXMgdG8gYmUgcG9zaXRpb246IGFic29sdXRlO1xuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJHdpZHRoIFs1MCVdIC0gV2lkdGggb2YgeW91ciBpdGVtXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIGRpdiB7XG4vLy8gICAgIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcig0MDBweCk7XG4vLy8gICB9XG4vLy8gQGxpbmsgaHR0cDovL2NvZGVwZW4uaW8vZGJveC9wZW4vdkxncHFMXG5cbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIoJHdpZHRoOiA1MCUpIHtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgd2lkdGg6ICR3aWR0aDtcbn1cbiIsIkBjaGFyc2V0ICdVVEYtOCc7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40LjJcbi8vXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMVxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgbG9nKCcuLicpIHt9YCBvciBgJF86IGxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFNwYWNlQXJvdW5kT3BlcmF0b3JcbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICB9IEBlbHNlIHtcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgIC8vIHJlbHkgb24gdGhlIGBsb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGxvZyguLikge31gIGluc3RlYWQuXG4gICAgJF86IGxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBsb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpID09ICctJztcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIEBmb3IgJGkgZnJvbSBpZigkbWludXMsIDIsIDEpIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTs7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyAtLS0tXG4vLyBSZXNldFxuLy8gLS0tLVxuXG4vLy0gTWl4aW46IFJlc2V0IGNzc1xuLy8vXG4vLy8gTWV5ZXIgcmVzZXQuIFVzZSB0aGlzIHdoZW4geW91IHdhbnQgdG8gbnVrZSBhbGwgc3R5bGVzLiBPdGhlcndpc2UgbWF5YmUgdXNlXG4vLy8gbm9ybWFsaXplIG1peGluLlxuLy8vIEBncm91cCByZXN0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWNzcygpO1xuXG5AbWl4aW4gcmVzZXQtY3NzIHtcbiAgaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG4gIGEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbiAgZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuICBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuICBiLCB1LCBpLCBjZW50ZXIsXG4gIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG4gIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxuICB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCxcbiAgYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsXG4gIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbiAgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG4gIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gIFx0bWFyZ2luOiAwO1xuICBcdHBhZGRpbmc6IDA7XG4gIFx0Ym9yZGVyOiAwO1xuICBcdGZvbnQtc2l6ZTogMTAwJTtcbiAgXHRmb250OiBpbmhlcml0O1xuICBcdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuICAvKiBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzICovXG4gIGFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsXG4gIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiB7XG4gIFx0ZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgYm9keSB7XG4gIFx0bGluZS1oZWlnaHQ6IDE7XG4gIH1cbiAgb2wsIHVsIHtcbiAgXHRsaXN0LXN0eWxlOiBub25lO1xuICB9XG4gIGJsb2NrcXVvdGUsIHEge1xuICBcdHF1b3Rlczogbm9uZTtcbiAgfVxuICBibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcbiAgcTpiZWZvcmUsIHE6YWZ0ZXIge1xuICBcdGNvbnRlbnQ6ICcnO1xuICBcdGNvbnRlbnQ6IG5vbmU7XG4gIH1cbiAgdGFibGUge1xuICBcdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIFx0Ym9yZGVyLXNwYWNpbmc6IDA7XG4gIH1cbn1cblxuLy8tIE1peGluOiBOb3JtYWxpemVcbi8vL1xuLy8vIE5vcm1hbGl6ZSBjc3MuIEtlZXBzIHNvbWUgZGVmYXVsdHMuIENhbGwgdGhpcyBvbiB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QuXG4vLy9cbi8vLyBAZ3JvdXAgcmVzZXRcbi8vLyBAZXhhbXBsZVxuLy8vICAgQGluY2x1ZGUgbm9ybWFsaXplKCk7XG5cbkBtaXhpbiBub3JtYWxpemUge1xuICAgIC8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbiAgaHRtbCB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICB9XG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIG1haW4sIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBhdWRpbywgY2FudmFzLCBwcm9ncmVzcywgdmlkZW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG5cbiAgW2hpZGRlbl0sdGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIGE6YWN0aXZlLCBhOmhvdmVyIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICB9XG5cbiAgYiwgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIGIsIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgfVxuXG4gIGRmbiB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICBtYXJrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICAgIGNvbG9yOiAjMDAwO1xuICB9XG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICBpbWcge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIHN2Zzpub3QoOnJvb3QpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gV2Ugc3RyYXkgYSBiaXQgaGVyZS5cbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIGNvZGUsa2JkLCBwcmUsc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICB9XG5cbiAgYnV0dG9uLCAgaW5wdXQsIG9wdGdyb3VwLCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGJ1dHRvbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICBidXR0b24sXG4gIHNlbGVjdCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICBidXR0b24sIGh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgaW5wdXRbdHlwZT1cInJlc2V0XCJdLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICBidXR0b25bZGlzYWJsZWRdLCBodG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLCBpbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBidXR0b246LW1vei1mb2N1c3JpbmcsIGlucHV0Oi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIG9wdGdyb3VwIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxufVxuXG4vLyBBZGRpdGlvbmFsIGVzZXRzIHZpYSBzY3V0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhdmlkdGhlY2xhcmsvc2N1dC9cblxuLy8gQ2xpY2thYmxlIGZvcm0gZWxlbWVudHMgc2hvdWxkIGhhdmUgYSBwb2ludGVyLlxuQG1peGluIHJlc2V0LXBvaW50ZXIge1xuICBhLFxuICBsYWJlbCxcbiAgc2VsZWN0LFxuICBvcHRpb24sXG4gIGJ1dHRvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEJvcmRlciBib3ggaXMganVzdCBiZXR0ZXIuXG5AbWl4aW4gcmVzZXQtYm9yZGVyLWJveCB7XG4gIGh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAqLFxuICAqOmJlZm9yZSxcbiAgKjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBSZXNldCB0aGUgZm9ybXNcbkBtaXhpbiByZXNldC1mb3JtIHtcbiAgZmllbGRzZXQge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIHRleHRhcmVhIHtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICB9XG59XG5cbi8vIFJlc2V0IGRlZmF1bHQgYnV0dG9uIHN0eWxlcywgd2hpY2ggYXJlIG5ldmVyIHVzZWQuXG5AbWl4aW4gcmVzZXQtYnV0dG9uIHtcbiAgYnV0dG9uLFxuICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuICBpbnB1dFt0eXBlPVwicmVzZXRcIl0ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG5cbiAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG59XG5cbi8vIFNvbWUgcGFyYWdyYXBoIG1hcmdpbnMganVzdCBnZXQgaW4gdGhlIHdheS5cbkBtaXhpbiByZXNldC1wYXJhZ3JhcGgge1xuICBwOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLyBZb3Ugd2FudCB0aGVzZSBlbGVtZW50cyBmbHVpZCwgcHJvYmFibHkuXG5AbWl4aW4gcmVzZXQtbWVkaWEge1xuICBpbWcsXG4gIHZpZGVvIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vIFJlbW92ZSBkZWZhdWx0IG1hcmdpbnMuXG5AbWl4aW4gcmVzZXQtZmlndXJlIHtcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLy8gQ2FsbCB0aGVtIGFsbFxuQG1peGluIHJlc2V0LWVsZW1lbnRzKCkge1xuICBAaW5jbHVkZSByZXNldC1ib3JkZXItYm94O1xuICBAaW5jbHVkZSByZXNldC1idXR0b247XG4gIEBpbmNsdWRlIHJlc2V0LWZpZ3VyZTtcbiAgQGluY2x1ZGUgcmVzZXQtZm9ybTtcbiAgQGluY2x1ZGUgcmVzZXQtbWVkaWE7XG4gIEBpbmNsdWRlIHJlc2V0LXBhcmFncmFwaDtcbiAgQGluY2x1ZGUgcmVzZXQtcG9pbnRlcjtcbn1cbiIsIi8vIC0tLS0tLVxuLy8gQ29kZVxuLy8gLS0tLS0tXG5cbi8vLSBNaXhpbjogQ29kZVxuLy8vXG4vLy8gU3R5bGVzIGlubGluZSBjb2RlIHNuaXBwZXRzIG9uIHlvdXIgcGFnZS4gRGVmYXVsdHMgdG8gYSBiZWF1dGlmdWwgcmVkLCBidXRcbi8vLyBjYW4gYmUgcGFzc2VkIGFueSBjb2xvci5cbi8vL1xuLy8vIEBncm91cCBjb2RlXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJGNvbG9yIFsjREY1QzMzXSAtIFRleHQgQ29sb3Jcbi8vLyBAZXhhbXBsZVxuLy8vICAgY29kZSB7XG4vLy8gICAgIEBpbmNsdWRlIGNvZGUoYmx1ZSk7XG4vLy8gICB9XG5cbkBtaXhpbiBjb2RlKCRjb2xvciA6ICRjb2xvci1wcmltYXJ5KSB7XG4gIHBhZGRpbmc6IDNweCA0cHg7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGJhc2UtZ3JheSwgNDUlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkYmFzZS1ncmF5LCAzNSUpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBtb25vc3BhY2U7XG59XG5cbi8vLSBNaXhpbjogUHJlXG4vLy9cbi8vLyBTb21lIGRlZmF1bHQgc3R5bGVzIGZvciBjb2RlIGJsb2NrcyBvbiB5b3VyIHBhZ2UuIFRha2VzIG5vdCBhcmd1bWVudHNcbi8vL1xuLy8vIEBncm91cCBjb2RlXG4vLy8gQGV4YW1wbGVcbi8vLyAgIHByZSB7XG4vLy8gICAgIEBpbmNsdWRlIHByZSgpO1xuLy8vICAgfVxuXG5AbWl4aW4gcHJlKCkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogN3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRiYXNlLWdyYXksIDQ1JSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGJhc2UtZ3JheSwgMzUlKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIG1vbm9zcGFjZTtcbiAgbGluZS1oZWlnaHQ6IDE2MCU7XG59XG4iLCJcbi8vIEZvbnQgc3RhY2tzXG5cbiRzYW5zOiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJPcGVuIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRzZXJpZjogR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmICFkZWZhdWx0O1xuJG1vbm9zcGFjZTogIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuXG4vLy8gU2V0cyB0aGUgYmFzZSBmb250IHNpemUgZm9yIHJlbSBjYWxjdWxhdGlvbnM7XG4vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3Ncbi8vLyBAdHlwZSBOdW1iZXIgKHB4KVxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG5cbi8vIENvbG9yIFJlc2V0cyB2aWEgTWF0ZXJpYWwgZGVzaWduXG4vLyBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbCNjb2xvci1jb2xvci1wYWxldHRlXG4kcmVkOiAgICAgICAgICNGNDQzMzYgIWRlZmF1bHQ7XG4kcGluazogICAgICAgICNFOTFFNjMgIWRlZmF1bHQ7XG4kcHVycGxlOiAgICAgICM5QzI3QjAgIWRlZmF1bHQ7XG4kZGVlcC1wdXJwbGU6ICM2NzNBQjcgIWRlZmF1bHQ7XG4kaW5kaWdvOiAgICAgICMzRjUxQjUgIWRlZmF1bHQ7XG4kYmx1ZTogICAgICAgICMyMTk2RjMgIWRlZmF1bHQ7XG4kbGlnaHQtYmx1ZTogICMwM0E5RjQgIWRlZmF1bHQ7XG4kY3lhbjogICAgICAgICMwMEJDRDQgIWRlZmF1bHQ7XG4kdGVhbDogICAgICAgICMwMDk2ODggIWRlZmF1bHQ7XG4kZ3JlZW46ICAgICAgICM0Q0FGNTAgIWRlZmF1bHQ7XG4kbGlnaHQtZ3JlZW46ICM4QkMzNEEgIWRlZmF1bHQ7XG4kbGltZTogICAgICAgICNDRERDMzkgIWRlZmF1bHQ7XG4kb3JhbmdlOiAgICAgICNGRjk4MDAgIWRlZmF1bHQ7XG4kZGVlcC1vcmFuZ2U6ICNGRjU3MjIgIWRlZmF1bHQ7XG4kYnJvd246ICAgICAgICM3OTU1NDggIWRlZmF1bHQ7XG4kZ3JleTogICAgICAgICM5RTlFOUUgIWRlZmF1bHQ7XG4kYmx1ZS1ncmF5OiAgICM2MDdEOEIgIWRlZmF1bHQ7XG5cblxuLy8vIEJhc2UgZ3JheSAtIHR3ZWFrIHRoaXMgdG8gYWRkIHNsaWdodCBjb2xvciB0aW50IHRvIHRoZSBncmF5c2NhbGUsIHRoZW4gYmFzZSBhbGwgZ3JheXMgb2ZmIHRoaXMgY29sb3IuIElmIHlvdSB3YW50IGZsYXQgZ3JheSB1c2UgIzg4ODg4OFxuLy8vXG4vLy8gQGdyb3VwIHNldHRpbmdzXG4vLy8gQHR5cGUgQ29sb3IgKGhleClcbiRiYXNlLWdyYXk6ICAgIzcwN0Y4QyAhZGVmYXVsdDtcblxuLy8gQ29sb3JzIGJ5IHVzZVxuJGNvbG9yLXByaW1hcnk6ICRibHVlICFkZWZhdWx0O1xuIiwiLy8gLS0tLVxuLy8gVXRpbGl0aWVzXG4vLyAtLS0tXG5cbi8vLyBQb3dlciBmdW5jdGlvblxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkblxuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vLyBAZ3JvdXAgdXRpbGl0aWVzXG4vLy8gQHNvdXJjZSBodHRwczovL2dpdGh1Yi5jb20vYWRhbWJvbS9TYXNzLU1hdGgvYmxvYi9tYXN0ZXIvbWF0aC5zY3NzIFNhc3MtTWF0aFxuQGZ1bmN0aW9uIHBvdygkeCwgJG4pIHtcbiAgJHJlc3VsdDogMTtcblxuICBAaWYgJG4gPj0gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbiB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAkeDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICAgQGZvciAkaSBmcm9tICRuIHRvIDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0IC8gJHg7XG4gICAgICB9XG4gICAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vL1xuLy8vIENhbGN1bGF0ZXMgYW5kIHJldHVybnMgdGhlIHJlbSB2YWx1ZSBiYXNlZCBvbiBweCBpbnB1dC4gRGVmYXVsdCBiYXNlIGZvbnRcbi8vLyBzaXplIGlzIDE2cHgsIGJ1dCBjYW4gYmUgY2hhbmdlZCB3aXRoIGEgZ2xvYmFsIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJHNpemUgLSBTaXplIGluIHBpeGVsc1xuLy8vXG4vLy8gQGdyb3VwIHV0aWxpdGllc1xuLy8vIEBleGFtcGxlXG4vLy8gICBmb250LXNpemU6IHJlbSgzMHB4KTtcbi8vLyAgIC8vIHJldHVybnMgZm9udC1zaXplOiAxLjg3NXJlbTtcblxuQGZ1bmN0aW9uIHJlbSgkc2l6ZSkge1xuICAkcmVtLXNpemU6ICRzaXplIC8gJGJhc2UtZm9udC1zaXplO1xuICBAcmV0dXJuICN7JHJlbS1zaXplfXJlbTtcbn1cblxuLy8tIEZ1bmN0aW9uOiBTdHJpcCBVbml0XG4vLy9cbi8vLyBTb21ldGltZXMgaXQncyBqdXN0IGVhc2llciB0byBkbyBjYWxjdWxhdGlvbnMgd2l0aCB0aGUgdW5pdCBpcyBzdHJpcHBlZC5cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtYmVyIC0gTnVtYmVyIHRoYXQgaGFzIGEgdW5pdFxuLy8vXG4vLy8gQGdyb3VwIHV0aWxpdGllc1xuLy8vIEBleGFtcGxlXG4vLy8gICAkbGVuZ3RoOiA0MnB4O1xuLy8vICAgJHZhbHVlOiBzdHJpcC11bml0KCRsZW5ndGgpO1xuLy8vICAgLy8gLT4gNDJcbi8vLyBAbGluayBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL3Nhc3Mvc3RyaXAtdW5pdC1mdW5jdGlvbi9cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bWJlcikge1xuICBAaWYgdHlwZS1vZigkbnVtYmVyKSA9PSAnbnVtYmVyJyBhbmQgbm90IHVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICBAcmV0dXJuICRudW1iZXIgLyAoJG51bWJlciAqIDAgKyAxKTtcbiAgfVxuICBAcmV0dXJuICRudW1iZXI7XG59XG5cbi8vLSBNaXhpbjogRGVidWdcbi8vL1xuLy8vIERlYnVnZ2luZyB0b29sIC0gYWRkcyBhIGJvcmRlciB0byB0aGUgY3VycmVudCBlbGVtZW50LCBpdHMgY2hpbGRyZW4sXG4vLy8gZ3JhbmRjaGlsZHJlbiwgZXRjIHNvIHlvdSBjYW4gc2VlIHdoYXQncyB1cCDigJMgZ3JlYXQgZm9yIHByZWNpc2UgbGF5b3V0XG4vLy8gdHdlYWtzLiAgSXQgd2lsbCBhbHNvIGFkZCBmbGFncyBpZiB5b3UgbWFkZSBtaXN0YWtlcyBsaWtlIHB1dCBpbiBpbmxpbmVcbi8vLyBzdHlsZXMsIGZvcmdvdCBhbiBhbHQgb24gYW4gaW1hZ2UsIGxlZnQgdGhlIGFsdCBibGFuaywgZXRjLiBOb3QgdG8gYmUgdXNlZFxuLy8vIGluIHByb2R1Y3Rpb24sIG9idmlvdXNseS5cbi8vL1xuLy8vIEBncm91cCB1dGlsaXRpZXNcbi8vLyBAZXhhbXBsZVxuLy8vICAgLmNvbnRhaW5lci1lbG1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBkZWJ1ZygpO1xuLy8vICAgfVxuLy8vIEBsaW5rIGh0dHA6Ly9jb2RlcGVuLmlvL2Rib3gvcGVuL0dKWnpZbz9lZGl0b3JzPTExMFxuXG5AbWl4aW4gZGVidWcoKSB7PiAqIHsgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuO30gPiAqID4gKiB7Ym9yZGVyOiAxcHggc29saWQgdG9tYXRvOyB9ID4gKiA+ICogPiAqIHsgYm9yZGVyOiAxcHggc29saWQgRGVlcFNreUJsdWU7IH0gPiAqID4gKiA+ICogPiAqIHsgYm9yZGVyOiAxcHggc29saWQgRGVlcFBpbms7IH0gPiAqID4gKiA+ICogPiAqID4gKiB7IGJvcmRlcjogMXB4IHNvbGlkIE1lZGl1bVNsYXRlQmx1ZTt9fVxuXG4vLyBNaXhpbjogVHJpYW5nbGVcbi8vXG4vLyBNYWtlcyBhIGxpdHRsZSBjc3MgdHJpYW5nbGUgZm9yIHlvdS4gUGFzcyBpdCBhIGRpcmVjdGlvbiAodXAsIGRvd24sIGxlZnQsXG4vLyByaWdodCksIHNpemUgKGluIHBpeGVscyksIGFuZCBhIGNvbG9yLlxuLy9cbi8vIGV4LiBAaW5jbHVkZSB0cmlhbmdsZSgpXG4vLyBleC4gQGluY2x1ZGUgdHJpYW5nbGUoJ2Rvd24nLCAxNXB4LCBibHVlKVxuXG4vLy0gTWl4aW46IFRyaWFuZ2xlXG4vLy9cbi8vLyBNYWtlcyBhIGxpdHRsZSBjc3MgdHJpYW5nbGUgZm9yIHlvdS5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRkaXJlY3Rpb24gW3VwXSAtIERpcmVjdGlvbiBvZiB0aGUgdHJpYW5nbGU6IHVwLCBkb3duIGxlZnRcbi8vLyBvciByaWdodFxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRzaXplIFsxMHB4XSAtIFNpemUgb2YgdGhlIHRyaWFuZ2xlXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJGNvbG9yIFsjMDAwXSAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZVxuLy8vXG4vLy8gQGdyb3VwIHV0aWxpdGllc1xuLy8vIEBleGFtcGxlXG4vLy8gICAuZWxlbWVudDphZnRlciB7XG4vLy8gICAgIEBpbmNsdWRlIHRyaWFuZ2xlKCk7XG4vLy8gICB9XG4vLy8gICBzcGFuIHtcbi8vLyAgICAgQGluY2x1ZGUgdHJpYW5nbGUocmlnaHQsIDhweCwgcmVkKTtcbi8vLyAgIH1cblxuQG1peGluIHRyaWFuZ2xlKCRkaXJlY3Rpb246J3VwJywgJHNpemU6MTBweCwgJGNvbG9yOiMwMDApIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBAaWYgJGRpcmVjdGlvbiA9PSAndXAnIHtcbiAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCAkY29sb3I7XG4gICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSAnZG93bicge1xuICAgIGJvcmRlci1sZWZ0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09ICdsZWZ0JyB7XG4gICAgYm9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAkc2l6ZSBzb2xpZCAkY29sb3I7XG4gICAgYm9yZGVyLXRvcDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSAncmlnaHQnIHtcbiAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogJHNpemUgc29saWQgJGNvbG9yO1xuICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBSZXR1cm5zIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAgYXMgYSBmbG9hdCAoYmV0d2VlbiAwIGFuZCAxKVxuLy8vIDEgaXMgcHVyZSB3aGl0ZSwgMCBpcyBwdXJlIGJsYWNrXG4vLy8gQGdyb3VwIHV0aWxpdGllc1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vIEBsaW5rIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFuY2VkZWYgUmVmZXJlbmNlXG4vLy8gQGF1dGhvciBIdWdvIEdpcmFkZWxcblxuQGZ1bmN0aW9uIGx1bWluYW5jZSgkY29sb3IpIHtcbiAgJGNvbG9yczogKFxuICAgICdyZWQnOiByZWQoJGNvbG9yKSxcbiAgICAnZ3JlZW4nOiBncmVlbigkY29sb3IpLFxuICAgICdibHVlJzogYmx1ZSgkY29sb3IpXG4gICk7XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkY29sb3JzIHtcbiAgICAkYWRqdXN0ZWQ6IDA7XG4gICAgJHZhbHVlOiAkdmFsdWUgLyAyNTU7XG5cbiAgICBAaWYgJHZhbHVlIDwgMC4wMzkyOCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvIDEyLjkyO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHZhbHVlOiAoJHZhbHVlICsgLjA1NSkgLyAxLjA1NTtcbiAgICAgICR2YWx1ZTogcG93KCR2YWx1ZSwgMik7XG4gICAgfVxuXG4gICAgJGNvbG9yczogbWFwLW1lcmdlKCRjb2xvcnMsICgkbmFtZTogJHZhbHVlKSk7XG4gIH1cblxuICBAcmV0dXJuIChtYXAtZ2V0KCRjb2xvcnMsICdyZWQnKSAqIC4yMTI2KSArIChtYXAtZ2V0KCRjb2xvcnMsICdncmVlbicpICogLjcxNTIpICsgKG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSAqIC4wNzIyKTtcbn1cbiIsIi8vIFNsaWNlIHN5c3RlbVxuLnNsaWNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOyAvLyBtYWtlcyBpdGVtcyBlcXVhbCBzaXplcyBhdXRvbWF0aWNhbGx5XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5zbGljZS1pdGVtIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59IiwiYS5idG4sXG5idXR0b24sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSB7XG4gIEBpbmNsdWRlIGJ1dHRvbigkYmxvZy1ncmVlbik7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Ji5idG4td2hpdGUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlcjogMnB4IHNvbGlkICR3aGl0ZTtcblx0XHRib3JkZXItY29sb3I6ICR3aGl0ZTtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIC0tLS1cbi8vIFVpXG4vLyAtLS0tXG5cbi8vLSBNaXhpbjogQnV0dG9uXG4vLy9cbi8vLyBBIHN0YXJ0aW5nIHBsYWNlIGZvciBidXR0b24gc3R5bGluZy5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRiYWNrZ3JvdW5kLWNvbG9yIFsjMDBCRkZGXSAtIEJ1dHRvbiBiYWNrZ3JvdW5kIGNvbG9yXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJGNvbG9yIFsjRkZGXSAtIEJ1dHRvbiB0ZXh0IGNvbG9yXG4vLy9cbi8vLyBAZ3JvdXAgdWlcbi8vLyBAZXhhbXBsZVxuLy8vICAgYS5idG4ge1xuLy8vICAgICBAaW5jbHVkZSBidXR0b24oKTtcbi8vLyAgIH1cbi8vLyAgIGEueWVsbG93LWJ1dHRvbiB7XG4vLy8gICAgIEBpbmNsdWRlIGJ1dHRvbih5ZWxsb3csIGJsYWNrKTtcbi8vLyAgIH1cblxuQG1peGluIGJ1dHRvbigkYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnksICRjb2xvcjogI0ZGRikge1xuICAkZ2xvYmFsLWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiAgcGFkZGluZzogMTBweCAyMnB4O1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLWJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICBjb2xvcjogJGNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZC1jb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLmJsb2ctaGVyby1jYXJvdXNlbCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6ICNGRjgzMDA7XG5cblx0LnNsaWRlIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0aGVpZ2h0OiA1NXZoO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0aDIsIGg1LCBwLCBhIHsgY29sb3I6ICR3aGl0ZTsgfVxuXHRcdGgyIHsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuXHRcdGg1IHtcblx0XHRcdHdpZHRoOiA5MCU7XG5cdFx0XHRsaW5lLWhlaWdodDogcmVtKDMycHgpO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRwcm94aW1hLW5vdmE7XG5cdFx0fVxuXHRcdGEgeyBtYXJnaW4tdG9wOiByZW0oMTBweCk7IH1cblx0XHRpbWcge1xuXHRcdFx0QGluY2x1ZGUgY29sKDEvNCk7XG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXQtbFwiKSB7XG5cdFx0XHRcdEBpbmNsdWRlIGNvbCgxLzMpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuXHRcdFx0JjpmaXJzdC1jaGlsZCB7IGRpc3BsYXk6IG5vbmU7IH1cblx0XHR9XG5cdH1cblxuXHQuc2xpZGUtY3RhLCAuc2xpZGUtYXJ0aWNsZSB7IEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ24oKTsgfVxuXHQuc2xpY2stZG90cyB7XG5cdFx0Ym90dG9tOiByZW0oMjVweCk7XG5cdFx0bGkge1xuXHRcdFx0bWFyZ2luOiAwIHJlbSgxMHB4KTtcblx0XHRcdCYuc2xpY2stYWN0aXZlIHtcblx0XHRcdFx0YnV0dG9uOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRidXR0b246YmVmb3JlIHtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRmb250LXNpemU6IHJlbSgzMHB4KTtcblx0XHR9XG5cdH1cbn1cblxuaW5wdXQuYmxvZy1lbWFpbCB7XG5cdEBpbmNsdWRlIHNwYW4oMy81KTtcblx0bWF4LXdpZHRoOiByZW0oMzAwcHgpO1xuXHRwYWRkaW5nOiByZW0oMTBweCkgcmVtKDIycHgpO1xuXHRib3JkZXI6IHJlbSgwcHgpO1xuXHRAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuXHRcdG1heC13aWR0aDogaW5pdGlhbDtcblx0XHRwYWRkaW5nOiByZW0oMTFweCkgcmVtKDIycHgpO1xuXHR9XG5cdEBpbmNsdWRlIG1lZGlhKCc8NzcycHgnKSB7XG5cdFx0QGluY2x1ZGUgc3BhbigxLzIpO1xuXHRcdGhlaWdodDogcmVtKDQycHgpO1xuXHR9XG59XG5cbmJ1dHRvbi5ibG9nLXN1Ym1pdCB7XG5cdEBpbmNsdWRlIHNwYW4oMi81KTtcblx0cGFkZGluZzogcmVtKDEycHgpIHJlbSgyMnB4KTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cdEBpbmNsdWRlIG1lZGlhKCc8NzcycHgnKSB7XG5cdFx0QGluY2x1ZGUgc3BhbigxLzIpO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRoZWlnaHQ6IHJlbSg0MnB4KTtcblx0fVxufVxuXG5cbi5oZXJvLW92ZXJsYXkge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0YmFja2dyb3VuZDogcmdiYSgkaGVyby1vdmVybGF5LCAuMzgpO1xufVxuXG5cbi5zbGljay1zbGlkZXIge1xuXHRtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5cbi5zbGlkZS1hcnRpY2xlIHtcblx0ei1pbmRleDogMztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRpbnB1dCwgaW1nIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4uc2xpZGUtY3RhIHtcblx0LnNsaWRlLWNlbnRlciB7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0QGluY2x1ZGUgY2YoKTtcblx0fVxuXHQuc2xpZGUtc3BsaXQge1xuXHRcdEBpbmNsdWRlIGNvbCgzLzQpO1xuXHRcdG1heC13aWR0aDogcmVtKDYzMHB4KTtcblx0XHRwYWRkaW5nLWxlZnQ6IDQlO1xuXHRcdHBhZGRpbmctdG9wOiAyLjUlO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0LWxcIikge1xuXHRcdFx0QGluY2x1ZGUgY29sKDIvMyk7XG5cdFx0fVxuXHRcdC5ibG9nLWVtYWlsIHtcblx0XHRcdGhlaWdodDogNDJweDtcblx0XHRcdHBhZGRpbmc6IDEwcHggMTVweDtcblx0XHR9XG5cdH1cbn1cblxuLm1vYmlsZS1zaWdudXAtc2xpZGUge1xuXHRAaW5jbHVkZSBjZigpO1xuXHRkaXNwbGF5OiBub25lO1xuXHRwYWRkaW5nOiByZW0oMjVweCkgMDtcblx0YmFja2dyb3VuZDogJGNvYWw7XG5cdGg1IHtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IHJlbSgxN3B4KTtcblx0XHRmb250LWZhbWlseTogJHByb3hpbWEtbm92YTtcblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLnRoYW5rc3N0dWZmIHtcblx0ZGlzcGxheTogbm9uZTtcblx0aDUge1xuICBcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIHAge1xuICBcdG1hcmdpbjogcmVtKDI1cHgpIDA7XG4gIFx0Zm9udC1zaXplOiByZW0oMTRweCk7XG5cdFx0Y29sb3I6IHdoaXRlO1xuICB9XG59XG4iLCIuYmxvZy1uYXYge1xuXHRwYWRkaW5nOiByZW0oMTBweCkgMDtcblx0YmFja2dyb3VuZDogJGdyZXktbGlnaHQ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLmJsb2ctZmlsdGVycyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHdpZHRoOiAxMDAlO1xuXG5cdGxpIHtcblx0XHRAaW5jbHVkZSBjZigpO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cGFkZGluZzogMCAyLjUlO1xuXHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkICRncmV5LXRpbnQ7XG5cblx0XHQmOmxhc3QtY2hpbGQgeyBib3JkZXItcmlnaHQ6IG5vbmU7IH1cblxuXHRcdHNwYW4ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdEBpbmNsdWRlIHRyaWFuZ2xlKGRvd24sIDEwcHgsICRncmV5LWxpZ2h0KTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGJvdHRvbTogLTIwcHg7XG5cdFx0XHRsZWZ0OiA0MCU7XG5cblx0XHRcdCYuaXMtYWN0aXZlIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRmb250LXNpemU6IHJlbSgxNnB4KTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuXG5cdFx0XHQmLmlzLWFjdGl2ZSB7XG5cdFx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdGxpIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGJvcmRlci1yaWdodDogMHB4O1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHBhZGRpbmc6IHJlbSgxOHB4KSA1JTtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR3aGl0ZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi5ibG9nLWZvb3RlciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiB0YWJsZTtcblx0bWFyZ2luLWJvdHRvbTogcmVtKDI1cHgpO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0XHRtYXJnaW46IDAgIWltcG9ydGFudDtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4uYmxvZy1mb290ZXItaXRlbSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0b3ZlcmZsb3c6IGF1dG87XG4gIHpvb206IDE7XG5cblx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0d2lkdGg6IDYwJTtcblx0XHQuYmxvZy1mb290ZXItaXRlbS1pbm5lciB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHJlbSgyNXB4KTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRncmV5LWxpZ2h0O1xuXHRcdFx0aDUge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTBweCk7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0fVxuXHRcdFx0dWwge1xuXHRcdFx0XHRtYXJnaW46IHJlbSgxMHB4KSAwIHJlbSgyNXB4KSAwO1xuXHRcdFx0fVxuXHRcdFx0bGkge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0XHRcdHBhZGRpbmc6IDAgcmVtKDEwcHgpIHJlbSgxMHB4KSAwO1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdH1cblx0XHRcdHNwYW4ge1xuXHRcdFx0XHRjb2xvcjogJGJsb2ctZ3JlZW47XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbSg1cHgpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRwIHtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0oMTRweCk7XG5cdFx0XHR9XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0oMTRweCk7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbSg1cHgpO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgbWVkaWEoJzxtb2JpbGUtbCcpIHtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRAaW5jbHVkZSBzcGFuKDEvMSk7XG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDEwcHgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JjpsYXN0LWNoaWxkIHtcblx0XHR3aWR0aDogNDAlO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdC5ibG9nLWZvb3Rlci1pdGVtLWlubmVyIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0XHQmOmxhc3QtY2hpbGQgeyBtaW4taGVpZ2h0OiByZW0oMjI1cHgpOyB9XG5cblx0XHQuYmxvZy1mb290ZXItaXRlbS1pbm5lciB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cblxuLmJsb2ctZm9vdGVyLWl0ZW0taW5uZXIge1xuXHRwYWRkaW5nOiByZW0oMjBweCk7XG59XG5cblxuLmJsb2ctZm9vdGVyLWl0ZW0tYm90dG9tIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3R0b206IHJlbSgxMHB4KTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwYWRkaW5nOiAwIDMlOztcblxuXHRoNSB7XG5cdFx0Zm9udC1zaXplOiByZW0oMThweCk7XG5cdFx0bWFyZ2luLWJvdG9tOiByZW0oOHB4KTtcblx0fVxuXG5cdGg1LCAuYmxvZy1mb290ZXItdGl0bGUge1xuXHRcdC8vIHBhZGRpbmctcmlnaHQ6IHJlbSgyNXB4KTtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdH1cbn1cblxuLmJsb2ctZm9vdGVyLXRpdGxlIHtcblx0Zm9udC1zaXplOiByZW0oMTRweCk7XG59XG4iLCIuYmxvZy1tb2RhbCB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTg7XG5cdHRvcDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwdmg7XG5cdGJhY2tncm91bmQ6IHJnYmEoJGNvYWwsIC43KTtcbn1cblxuLmJsb2ctbW9kYWwtc2lnbnVwIHtcblx0QGluY2x1ZGUgdmVydGljYWxseS1hbGlnbigpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDk5O1xuXHRtYXgtd2lkdGg6IHJlbSg0NTBweCk7XG5cdHdpZHRoOiA4MCU7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRwYWRkaW5nOiByZW0oNTBweCk7XG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRib3JkZXItcmFkaXVzOiByZW0oNXB4KTtcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IDAgcmdiYSgwLDAsMCwwLjIpLDAgNnB4IDIwcHggMCByZ2JhKDAsMCwwLDAuMTkpICFpbXBvcnRhbnQ7XG4gIGg1IHtcbiAgXHRmb250LXdlaWdodDogYm9sZDtcblx0XHRmb250LWZhbWlseTogJHByb3hpbWEtbm92YTtcbiAgfVxuICBwIHtcbiAgXHRtYXJnaW46IHJlbSgyNXB4KSAwO1xuICBcdGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xuICB9XG4gIHNwYW4ge1xuICBcdGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgaW5wdXQsIGJ1dHRvbiB7XG4gIFx0d2lkdGg6IDgwJTtcbiAgXHRtYXgtd2lkdGg6IHJlbSgyNzVweCk7XG5cdFx0ZmxvYXQ6IG5vbmU7XG4gIFx0Jlt0eXBlPVwiZW1haWxcIl0ge1xuICBcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDEwcHgpO1xuICBcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG4gIFx0XHRwYWRkaW5nOiByZW0oOHB4KTtcbiAgXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGJvcmRlcjogMnB4IGluc2V0O1xuICBcdH1cbiAgfVxuXG5cdC50aGFua3NzdHVmZiB7XG5cdFx0aDUsIHAge1xuXHRcdFx0Y29sb3I6ICRjb2FsO1xuXHRcdH1cblx0fVxufVxuXG4uYmxvZy1tb2RhbC1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcGFkZGluZzogcmVtKDI1cHgpO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cdHN2ZyB7XG5cdFx0d2lkdGg6IHJlbSgxMnB4KTtcblx0XHRoZWlnaHQ6IHJlbSgxMnB4KTtcbiAgICBmaWxsOiAkY29hbDtcblx0fVxufVxuIiwiLmJsb2ctcG9zdC1mb290ZXItY3RhLCAuYmxvZy1wb3N0LWF1dGhvciwgLnJlbGF0ZWQtdGl0bGUgIHtcblx0bWFyZ2luOiAwIGF1dG87XG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxufVxuXG4uYmxvZy1wb3N0LWZvb3Rlci1jdGEsIC5ibG9nLXBvc3QtYXV0aG9yIHtcblx0bWFyZ2luOiByZW0oMjVweCkgYXV0bztcbn1cblxuLmJsb2ctcG9zdC1mb290ZXItY3RhLXNpZ251cCB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRoNSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHR9XG5cdHAge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSgyNXB4KTtcblx0fVxuXG5cdGZvcm0ge1xuXHRcdHBhZGRpbmc6IDAgMTIlO1xuXHRcdEBpbmNsdWRlIGNmKCk7XG5cdH1cblxuXHRpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuICBcdHBhZGRpbmc6IHJlbSg4cHgpO1xuICBcdG91dGxpbmU6IG5vbmU7XG4gIFx0Ym9yZGVyOiBub25lO1xuICBcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0aGVpZ2h0OiByZW0oNDBweCk7XG5cdH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldC1sJykge1xuXHRcdGlucHV0W3R5cGU9XCJlbWFpbFwiXSB7XG5cdCAgXHRAaW5jbHVkZSBzcGFuKDMvNSk7XG5cdCAgfVxuXG5cdCAgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuXHQgIFx0QGluY2x1ZGUgc3BhbigyLzUpO1xuXHQgIH1cbiAgfVxuXG4gICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldC1sJykge1xuXHRcdGZvcm0ge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG4gIFx0aW5wdXRbdHlwZT1cImVtYWlsXCJdIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oMS8xKTtcbiAgXHRcdG1hcmdpbi1ib3R0b206IHJlbSgxMHB4KTtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcbiAgXHR9XG5cblx0XHRidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG5cdCAgXHRAaW5jbHVkZSBzcGFuKDEvMSk7XG5cdCAgfVxuICB9XG59XG5cbi5jdGEtc2lnbnVwIHtcblx0Ji5saW5rLWFjdGl2ZSwgJi5kb3dubG9hZC1hY3RpdmUge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQmLnNpZ251cC1hY3RpdmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5jdGEtbGluayB7XG5cdCYubGluay1hY3RpdmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5jdGEtZG93bmxvYWQge1xuXHQmLmRvd25sb2FkLWFjdGl2ZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLmJsb2ctcG9zdC1mb290ZXItY3RhIHtcblx0ZGlzcGxheTogbm9uZTtcblx0b3ZlcmZsb3c6IGF1dG87XG4gIHpvb206IDE7XG4gIGJhY2tncm91bmQ6ICRjb2FsO1xuICBwYWRkaW5nOiA2JSA4JTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC5ibG9nLWZvb3Rlci1jdGEtY29udGVudCB7XG5cdFx0d2lkdGg6IDY1JTtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRwYWRkaW5nLXJpZ2h0OiByZW0oNTBweCk7XG5cdH1cblxuXHRoNSwgcCB7XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0fVxuXG5cdGg1IHtcblx0XHRmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG5cdH1cblxuXHRhIHtcblx0XHRtYXJnaW4tdG9wOiByZW0oMjVweCk7XG5cdH1cblxuXHRpbWcge1xuXHRcdHdpZHRoOiAzNSU7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdH1cblx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cdFx0cGFkZGluZzogMTUlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdC5ibG9nLWZvb3Rlci1jdGEtY29udGVudCB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IDBweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgyNXB4KTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdC5idG4ge1xuXHRcdFx0XHQkYXJyb3ctc2l6ZTogMThweDtcblxuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdFx0Ym90dG9tOiByZW0oLTQ1cHgpO1xuXHRcdFx0XHRyaWdodDogMHB4O1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRib3JkZXItbGVmdC1jb2xvcjogIzcwYTIzYjtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQtY29sb3I6ICM3MGEyM2I7XG5cdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogIzcwYTIzYjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0XHRib3JkZXItdG9wLWNvbG9yOiAjNzBhMjNiO1xuXHRcdFx0XHRcdH1cblx0XHRcdCAgfVxuXHRcdFx0XHQmOmJlZm9yZSwgJjphZnRlciB7XG5cdFx0XHRcdCAgY29udGVudDogJyc7XG5cdFx0XHRcdCAgcG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHQgIGxlZnQ6IC0xOHB4O1xuXHRcdFx0XHQgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdCAgdG9wOiAwO1xuXHRcdFx0XHRcdEBpbmNsdWRlIHRyaWFuZ2xlKCdkb3duJywgJGFycm93LXNpemUsICRibG9nLWdyZWVuKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Ym90dG9tOiAwcHg7XG5cdFx0XHRcdFx0QGluY2x1ZGUgdHJpYW5nbGUoJ3VwJywgJGFycm93LXNpemUsICRibG9nLWdyZWVuKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpbWcge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHR9XG5cblx0fVxufVxuXG4uYmxvZy1wb3N0LWZvb3Rlci1jdGE6YWZ0ZXIge1xuICAkYXJyb3ctc2l6ZTogNDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwO1xuICBsZWZ0OiBjYWxjKDUwJSAtICgjeyRhcnJvdy1zaXplfSAvIDIpKTtcbiAgQGluY2x1ZGUgdHJpYW5nbGUoJ2Rvd24nLCAkYXJyb3ctc2l6ZSwgI2ZmZik7XG4gIHRyYW5zZm9ybTogc2tld1goNTVkZWcpO1xufVxuXG4uYmxvZy1wb3N0LWF1dGhvciB7XG5cdGltZyB7XG5cdFx0bWF4LWhlaWdodDogcmVtKDEyNXB4KTtcblx0XHRtYXJnaW46IDAgcmVtKDI1cHgpIDAgcmVtKDUwcHgpO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHR0cmFuc2l0aW9uOiBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4zcztcblx0XHQmOmhvdmVyIHsgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgwLDAsMCwwLjE2KSwwIDJweCAxMHB4IDAgcmdiYSgwLDAsMCwwLjEyKTsgfVxuXHR9XG5cdHAge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdHBhZGRpbmc6IHJlbSgyMnB4KSAwO1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0fVxuXHRzcGFuIHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0cCB7XG5cdFx0XHR3aWR0aDogOTAlO1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuXHRcdGltZyB7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLnJlbGF0ZWQtdGl0bGUge1xuXHRoZWlnaHQ6IDQwcHg7XG5cdHBhZGRpbmc6IHJlbSgxNXB4KSAwIDtcblx0bWFyZ2luLWJvdHRvbTogcmVtKDI1cHgpICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAwLjU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgc3BhbiB7XG4gIFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBcdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgXHRmb250LXdlaWdodDogNTAwO1xuICBcdCY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0ICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ICBoZWlnaHQ6IDVweDtcblx0XHQgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkZ3JleS1saWdodDtcblx0XHQgIHRvcDogMDtcblx0XHQgIHdpZHRoOiA4MDBweDtcbiAgXHR9XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0cmlnaHQ6IDEwMCU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDE1cHg7XG5cdFx0fVxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0bGVmdDogMTAwJTtcblx0XHQgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuXHRcdH1cbiAgfVxuICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgXHRzcGFuIHtcbiAgXHRcdCY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgXHRcdFx0Ym9yZGVyLXdpZHRoOiAzcHg7XG4gIFx0XHR9XG4gIFx0fVxuICB9XG59XG4iLCIuYmxvZy1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblx0XHR6LWluZGV4OiAxMDA7XG5cdFx0YmFja2dyb3VuZDogI0YwRjFGMTtcblxuXHRcdCYuaXMtYWN0aXZlIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0XHRcdC5uYXYtY29udGFpbmVyIHtcbiAgICAgICAgbGVmdDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4uYmxvZy1tb2JpbGUtZmlsdGVyIHtcblx0ZGlzcGxheTogbm9uZTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRib3JkZXItYm90dG9tOiBub25lO1xuICBwYWRkaW5nLXRvcDogcmVtKDVweCk7XG5cblx0c3ZnIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdGhlaWdodDogcmVtKDE4cHgpO1xuXHRcdHdpZHRoOiByZW0oMThweCk7XG5cdFx0bWFyZ2luOiAzcHggcmVtKDEwcHgpIDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cdFx0ZmlsbDogJGNvYWw7XG5cdFx0JjpmaXJzdC1jaGlsZCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXHR9XG5cblx0aDUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgICBmb250LWZhbWlseTogJHByb3hpbWEtbm92YTtcblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5uYXYtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDM0cHg7XG4gIHdpZHRoOiA4NSU7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsZWZ0OiAtODUlO1xuICB0cmFuc2l0aW9uOiBsZWZ0IC4zcyBlYXNlLWluLW91dDtcblxuICBkaXYuY2F0ZWdvcnktY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAjRTZFN0U4O1xuICAgIHBhZGRpbmctbGVmdDogcmVtKDhweCk7XG4gICAgcGFkZGluZy10b3A6IDJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAuYXJyb3cge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBAaW5jbHVkZSB0cmlhbmdsZShyaWdodCwgOXB4LCBibGFjayk7XG4gICAgbWFyZ2luLXJpZ2h0OiByZW0oMXB4KTtcbiAgICB0cmFuc2Zvcm06IGFsbCAuMnMgZWFzZTtcblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKGRvd24sIDlweCwgYmxhY2spO1xuICAgIH1cbiAgfVxuXG4gIHA6bnRoLWNoaWxkKDIpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiByZW0oMThweCk7XG4gICAgYmFja2dyb3VuZDogI0U2RTdFODtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG59XG5cbi5ibG9nLWNhdGVnb3JpZXMge1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdGxpIGEge1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcGFkZGluZzogcmVtKDE4cHgpIDAgcmVtKDE4cHgpIHJlbSg0NXB4KTtcblx0XHRmb250LXNpemU6IHJlbSgxOHB4KTtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwcHgpO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5pcy1yZXNvbHZlZCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuXHRcdCYuaXMtYWN0aXZlIHtcblx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdH1cblx0fVxuXG5cdGxpIHtcblx0XHRkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiByZW0oMTBweCkgMCByZW0oMTBweCkgMDtcblxuXHRcdCYuZXhwYW5kIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4gICAgJjpmaXJzdC1jaGlsZCBhIHtcblx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgLjJzLCB0cmFuc2Zvcm0gLjJzO1xuXHRcdH1cblxuXHRcdCY6bnRoLWNoaWxkKDIpIGEge1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzLCB0cmFuc2Zvcm0gLjI1cztcblx0XHR9XG5cblx0XHQmOm50aC1jaGlsZCgyKSBhIHtcblx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgLjVzLCB0cmFuc2Zvcm0gLjVzO1xuXHRcdH1cblxuXHRcdCY6bnRoLWNoaWxkKDMpIGEge1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAuNzVzLCB0cmFuc2Zvcm0gLjc1cztcblx0XHR9XG5cblx0XHQmOm50aC1jaGlsZCg0KSBhIHtcblx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMXMsIHRyYW5zZm9ybSAxcztcblx0XHR9XG5cblx0XHQmOm50aC1jaGlsZCg1KSBhIHtcblx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMS4yNXMsIHRyYW5zZm9ybSAxLjI1cztcblx0XHR9XG5cblx0XHQmOm50aC1jaGlsZCg2KSBhIHtcblx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMS41MHMsIHRyYW5zZm9ybSAxLjUwcztcblx0XHR9XG5cblx0XHQmOm50aC1jaGlsZCg3KSBhIHtcblx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMS43NXMsIHRyYW5zZm9ybSAxLjc1cztcblx0XHR9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICB9XG4gICAgfVxuXHR9XG59XG5cbi5ibG9nLWdsb2JhbC1uYXYtbGlzdCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG5cdGxpIHtcblx0XHRiYWNrZ3JvdW5kOiAjRjBGMUYxO1xuXHRcdHBhZGRpbmc6IHJlbSgxMHB4KSAwIHJlbSgxMHB4KSByZW0oMzBweCkgIWltcG9ydGFudDtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI0M4Q0JDRDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgIH1cbiAgICB9XG5cblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdGJhY2tncm91bmQ6ICNFNkU3RTggIWltcG9ydGFudDtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAjQzhDQkNEO1xuXHRcdH1cblxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdH1cblx0fVxuXG5cdGxpIGEge1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE4cHgpO1xuXHR9XG59XG4iLCJmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIHtcbiAgYmFja2dyb3VuZDogJGJsdWU7XG4gIHBhZGRpbmc6IHJlbSg1MHB4KTtcblxuICAuaW5uZXItY29udGFpbmVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgcGFkZGluZzogcmVtKDMwcHgpIDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cbi5mb290ZXItbG9nbyB7XG5cdHdpZHRoOiByZW0oMTc1cHgpO1xuXHRtYXJnaW4tYm90dG9tOiByZW0oMjVweCk7XG59XG5cbi5mb290ZXItbmF2LCAuZm9vdGVyLXNvY2lhbCB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bGkge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXHRhIHtcblx0XHRmaWxsOiAkd2hpdGU7XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRmb250LXNpemU6IHJlbSgxNnB4KTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHR9XG59XG5cbi5mb290ZXItbmF2IHtcblx0bGkge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSgxMHB4KTtcblx0XHQmOmxhc3QtY2hpbGQgeyBhIHsgYm9yZGVyLXJpZ2h0OiAwOyB9IH1cblx0fVxuXHRhIHtcblx0XHRwYWRkaW5nOiAwIHJlbSg4cHgpO1xuXHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR3aGl0ZTtcblx0XHR0cmFuc2l0aW9uOiBjb2xvciBlYXNlLWluLW91dCAuMnM7XG5cdFx0Jjpob3ZlciB7IGNvbG9yOiBsaWdodGVuKCRibHVlLCAyMCUpOyB9XG5cdH1cblx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uZm9vdGVyLXNvY2lhbCB7XG5cdHBhZGRpbmc6IHJlbSgyNXB4KSAwO1xuXG4gIGxpIHtcbiAgICBwYWRkaW5nOiAwIHJlbSg1cHgpO1xuICB9XG5cdGEge1xuXHRcdCRzaXplOiByZW0oNDVweCk7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiAkc2l6ZTtcblx0XHR3aWR0aDogJHNpemU7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgJHdoaXRlO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHRcdHN2ZyB7IGZpbGw6ICRibHVlOyB9XG5cdFx0fVxuXHR9XG5cdHN2ZyB7XG5cdFx0JHNpemU6IHJlbSgzMHB4KTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiByZW0oNC41cHgpO1xuXHRcdGhlaWdodDogJHNpemU7XG5cdFx0d2lkdGg6ICRzaXplO1xuXHRcdHBhZGRpbmc6IHJlbSg1cHgpO1xuXHR9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgcGFkZGluZzogcmVtKDMwcHgpIDAgMDtcbiAgfVxufVxuXG4uZm9vdGVyLWRpc2Nsb3N1cmUge1xuXHRjb2xvcjogJHdoaXRlO1xuXHRmb250LXNpemU6IHJlbSgxMnB4KTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRhIHtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdH1cblx0fVxuICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5MHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG4iLCJoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogOTk7XG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcblxuXHQuc3QyIHtcblx0XHRmaWxsOiAkYmx1ZSAhaW1wb3J0YW50O1xuXHR9XG59XG5cbi50b3AtaGVhZGVyIHtcblx0YmFja2dyb3VuZDogI0YwRjFGMTtcblx0d2lkdGg6IDEwMCU7XG5cblx0LmlubmVyLWNvbnRhaW5lciB7XG5cdFx0cGFkZGluZzogMCA0JSByZW0oMTVweCkgNCU7XG5cdFx0Zm9udC1zaXplOiByZW0oMTRweCk7XG5cdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRAaW5jbHVkZSBjZW50ZXIoJGRlc2t0b3AsIDApO1xuXHRcdEBpbmNsdWRlIGNmKCk7XG5cblx0XHQuYmxvZy1tZW51IHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdH1cblxuXHRcdC50b3AtaXRlbSB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiA0JTtcblx0XHR9XG5cblx0fVxuXG5cdCYuaXMtc3R1Y2sge1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0ei1pbmRleDogMjtcblx0XHQvLyB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW4tb3V0O1xuXHR9XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcblx0XHQuaW5uZXItY29udGFpbmVyIHtcblx0XHRcdHBhZGRpbmctdG9wOiByZW0oNXB4KTtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0fVxuICB9XG59XG5cbi50b3AtbG9nbyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiByZW0oOXB4KTtcblx0d2lkdGg6IHJlbSg5MHB4KTtcblx0aGVpZ2h0OiByZW0oMjJweCk7XG59XG5cbi50b3AtaXRlbSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5tb2JpbGUtc2VhcmNoIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRvcDogcmVtKDVweCk7XG5cdEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG5cdFx0cmlnaHQ6IDVweDtcblx0XHRpbnB1dCB7IG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7IH1cblx0fVxufVxuXG4uYm90dG9tLWhlYWRlciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdGJvcmRlci1ib3R0b206IHJlbSgxcHgpIHNvbGlkICRncmV5LWxpZ2h0O1xuXG5cdC5pbm5lci1jb250YWluZXIge1xuXHRcdGhlaWdodDogcmVtKDExMnB4KTtcblx0XHRwYWRkaW5nOiByZW0oMjBweCkgNCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0QGluY2x1ZGUgY2VudGVyKCRkZXNrdG9wLCAwKTtcblx0fVxuXG5cdGEge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi10b3A6IDdweDtcblx0fVxuXG5cdC5sb2dvLXN2ZyB7XG5cdFx0aGVpZ2h0OiA2MHB4O1xuXHR9XG5cblx0Ji5pcy1zdHVjayB7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHR6LWluZGV4OiAyO1xuXG5cdFx0LmlubmVyLWNvbnRhaW5lciB7XG5cdFx0XHRoZWlnaHQ6IHJlbSg1NnB4KTtcblx0XHRcdHBhZGRpbmc6IHJlbSgxMHB4KSA0JTtcblx0XHRcdHRyYW5zaXRpb246IGhlaWdodCAuM3M7XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblxuXHRcdC5sb2dvLXN2ZyB7XG5cdFx0XHRoZWlnaHQ6IDM1cHg7XG5cdFx0XHR0cmFuc2l0aW9uOiBoZWlnaHQgLjNzO1xuXHRcdH1cblxuXHRcdC5oZWFkZXItaXRlbSB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHR9XG59XG5cbi5oZWFkZXItaXRlbSB7XG5cdHBhZGRpbmc6IDAgNCU7XG5cdEBpbmNsdWRlIHNwYW4oMS8yKTtcblx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcblx0XHRAaW5jbHVkZSBzcGFuKDEvMSk7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHAge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRmb250LXNpemU6IHJlbSgxNHB4KTtcblx0XHR9XG5cdH1cblx0JjpsYXN0LWNoaWxkIHtcblx0XHRAaW5jbHVkZSB2ZXJ0aWNhbGx5LWFsaWduKCk7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi5zZWFyY2gtd3JhcCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRzdmcge1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0bWFyZ2luLXRvcDogLTNweDtcblx0fVxuXG5cdC8vIHdvcmRwcmVzcyBpcyBvdXRwdXR0aW5nIGEgY3JhenkgZXh0cmEgaW5wdXRcblx0Zm9ybSBpbnB1dCB7IGRpc3BsYXk6IG5vbmU7IH1cblxuXHRmb3JtIHtcblx0XHRtYXJnaW46IDAgcmVtKDIwcHgpIDAgMDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiByZW0oLTJweCk7XG5cdFx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHR9XG5cblx0Ly8gYWN0dWFsIHNlYXJjaCBmaWVsZFxuXHRmb3JtIGxhYmVsIHtcblx0XHRzcGFuIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cdFx0aW5wdXQuc2VhcmNoLWZpZWxkIHtcblx0XHRcdHdpZHRoOiAxMTBweDtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYShncmF5LCAuNik7XG5cdFx0XHRwYWRkaW5nOiByZW0oNXB4KSAwIHJlbSg1cHgpIHJlbSgyNXB4KTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IHJlbSgxNXB4KTtcblx0XHRcdGZvbnQtc2l6ZTogcmVtKDEycHgpO1xuXHRcdH1cblxuXHRcdDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiAkZ3JleS1zaGFkZTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXHRcdDotbW96LXBsYWNlaG9sZGVyIHsgY29sb3I6ICRncmV5LXNoYWRlOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cdFx0OjotbW96LXBsYWNlaG9sZGVyIHsgY29sb3I6ICRncmV5LXNoYWRlOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cdFx0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiAkZ3JleS1zaGFkZTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXHR9XG59XG5cbi5tYWctc3ZnIHtcblx0JHBvc2l0aW9uOiByZW0oOHB4KTtcblx0JHNpemU6IHJlbSgxMnB4KTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6ICRwb3NpdGlvbjtcblx0bGVmdDogJHBvc2l0aW9uO1xuXHRoZWlnaHQ6ICRzaXplO1xuXHR3aWR0aDogJHNpemU7XG59XG4iLCIuYmxvZy1wb3N0cyB7XG5cdHBhZGRpbmc6IHJlbSg1MHB4KSA1JTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdHBhZGRpbmc6IHJlbSgzMHB4KSAwO1xuXHR9XG59XG5cbi5ibG9nLWNvbnRhaW5lciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRAaW5jbHVkZSBjZigpO1xuXHRtYXJnaW46IDAgYXV0bztcblx0bWF4LXdpZHRoOiAxMjAwcHg7XG5cdHBhZGRpbmc6IDAgcmVtKDMwcHgpO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdHBhZGRpbmc6IDBcblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0LmJsb2ctcG9zdC1vdmVybGF5IHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG5cbi5ibG9nLXBvc3Qge1xuXHR3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG5cdGZsb2F0OiBsZWZ0O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbi1ib3R0b206IHJlbSgyNXB4KTtcblxuXHQmOmhvdmVyIHtcblx0XHQuYmxvZy1wb3N0LW92ZXJsYXkge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsdWUsIDAuOCk7XG5cdFx0XHQmLk1hcmtldGluZ1x0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLXllbGxvdywgMC44KTsgfVxuXHRcdFx0Ji5SZXNlYXJjaFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLXRlYWwsIDAuOCk7IH1cblx0XHRcdCYuRGVzaWduXHRcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy1vcmFuZ2UsIDAuOCk7IH1cblx0XHRcdCYuUHJvZHVjdFx0XHR7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsb2ctYmx1ZSwgMC44KTsgfVxuXHRcdFx0Ji5DWFx0XHRcdFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLWdyZWVuLCAwLjgpOyB9XG5cdFx0fVxuXHR9XG5cblx0cC5ibG9nLXBvc3QtdGl0bGUge1xuXHRcdCRmb250LXNpemU6IDE2cHg7XG5cdFx0JGxpbmUtaGVpZ2h0OiAxLjQ7XG5cdFx0JGxpbmVzLXRvLXNob3c6IDM7XG5cblx0XHRkaXNwbGF5OiBibG9jazsgLyogRmFsbGJhY2sgZm9yIG5vbi13ZWJraXQgKi9cblx0ICBkaXNwbGF5OiAtd2Via2l0LWJveDtcblx0ICBoZWlnaHQ6ICRmb250LXNpemUqJGxpbmUtaGVpZ2h0KiRsaW5lcy10by1zaG93OyAvKiBGYWxsYmFjayBmb3Igbm9uLXdlYmtpdCAqL1xuXHRcdG1hcmdpbi10b3A6IHJlbSgxNXB4KTtcblx0XHRwYWRkaW5nOiAwIHJlbSgxMHB4KTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdCAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuXHQgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG5cdCAgLXdlYmtpdC1saW5lLWNsYW1wOiAkbGluZXMtdG8tc2hvdztcblx0ICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuXHQgIG92ZXJmbG93OiBoaWRkZW47XG5cdCAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdC5ibG9nLXBvc3QtaW5uZXIge1xuXHRcdFx0bWFyZ2luOiAwIHJlbSg1cHgpO1xuXHRcdH1cblx0fVxufVxuXG4uYmxvZy1wb3N0LWlubmVyIHtcblx0bWFyZ2luOiAwIDE1cHg7XG59XG5cbi5ibG9nLWZvb3Rlci1wb3N0IHtcblx0QGluY2x1ZGUgc3BhbigxLzMpO1xuXHRtYXJnaW4tYm90dG9tOiByZW0oMjVweCk7XG5cdHAge1xuXHRcdG1hcmdpbi10b3A6IHJlbSgxNXB4KTtcblx0XHRwYWRkaW5nOiAwIHJlbSgxMHB4KTtcblx0XHRmb250LXNpemU6IHJlbSgxNnB4KTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblx0Jjpob3ZlciB7XG5cdFx0LmJsb2ctcG9zdC1vdmVybGF5IHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibHVlLCAwLjgpO1xuXHRcdFx0Ji5NYXJrZXRpbmdcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy15ZWxsb3csIDAuOCk7IH1cblx0XHRcdCYuUmVzZWFyY2hcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy10ZWFsLCAwLjgpOyB9XG5cdFx0XHQmLkRlc2lnblx0XHR7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsb2ctb3JhbmdlLCAwLjgpOyB9XG5cdFx0XHQmLlByb2R1Y3RcdFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLWJsdWUsIDAuOCk7IH1cblx0XHRcdCYuQ1hcdFx0XHRcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy1ncmVlbiwgMC44KTsgfVxuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHRAaW5jbHVkZSBzcGFuKDEvMSk7XG5cdH1cbn1cblxuLmJsb2ctcG9zdC1vdmVybGF5IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG9wYWNpdHk6IDA7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsdWUsIDApO1xuXHR0cmFuc2l0aW9uOiBhbGwgZWFzZS1pbiAuMnM7XG5cdCYuTWFya2V0aW5nLCAmLlJlc2VhcmNoLCAmLkRlc2lnbiwgJi5Qcm9kdWN0LCAmLkNYIHsgb3BhY2l0eTogMDsgfVxuXHQmLk1hcmtldGluZ1x0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLXllbGxvdywgMCk7IH1cblx0Ji5SZXNlYXJjaFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLXRlYWwsIDApOyB9XG5cdCYuRGVzaWduXHRcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy1vcmFuZ2UsIDApOyB9XG5cdCYuUHJvZHVjdFx0XHR7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsb2ctYmx1ZSwgMCk7IH1cblx0Ji5DWFx0XHRcdFx0eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibG9nLWdyZWVuLCAwKTsgfVxuXHRkaXYge1xuXHRcdEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ24oKTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0cCB7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0Zm9udC1zaXplOiByZW0oMTRweCk7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGxldHRlci1zcGFjaW5nOiAwcHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdH1cblx0XHRzdmcge1xuXHRcdFx0cGFkZGluZzogcmVtKDEwcHgpO1xuXHRcdFx0d2lkdGg6IHJlbSg4MnB4KTtcblx0XHRcdGhlaWdodDogcmVtKDgycHgpO1xuXHRcdFx0c3Ryb2tlOiAkd2hpdGU7XG5cdFx0XHQvLyBzdHJva2Utd2lkdGg6IHJlbSg0cHgpO1xuXHRcdFx0ZmlsbDogbm9uZTtcblx0XHRcdGJvcmRlcjogcmVtKDNweCkgc29saWQgJHdoaXRlO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuXHRcdFx0XHR3aWR0aDogcmVtKDc1cHgpO1xuXHRcdFx0XHRoZWlnaHQ6IHJlbSg3NXB4KTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uYWpheC1uby1oaWRlIHtcblx0LmFsbS1yZXZlYWwge1xuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cblxuLmFsbS1yZXZlYWwge1xuXHQmOmZpcnN0LWNoaWxkIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLmJsb2ctaW1hZ2Uge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAxMDAlO1xuXHQvLyBoZWlnaHQ6IHJlbSgyMDBweCk7XG5cdEBpbmNsdWRlIHJhdGlvLWJveCg0LzMpO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsdWUsIDAuOCk7XG5cdCYuTWFya2V0aW5nXHR7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsb2cteWVsbG93LCAwLjgpOyB9XG5cdCYuUmVzZWFyY2hcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy10ZWFsLCAwLjgpOyB9XG5cdCYuRGVzaWduXHRcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy1vcmFuZ2UsIDAuOCk7IH1cblx0Ji5Qcm9kdWN0XHRcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy1ibHVlLCAwLjgpOyB9XG5cdCYuQ1hcdFx0XHRcdHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxvZy1ncmVlbiwgMC44KTsgfVxuXHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHQvLyBoZWlnaHQ6IHJlbSgxNTBweCk7XG5cdFx0Ly8gd2lkdGg6IDIwJTtcblxuXHR9XG59XG5cbi5hbG0tYnRuLXdyYXAge1xuXHRvdmVyZmxvdzogYXV0bztcblx0em9vbTogMTtcblx0d2lkdGg6IDEwMCU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0YnV0dG9uIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRjb2xvcjogJGJsb2ctZ3JlZW47XG5cdFx0Ym9yZGVyOiAycHggc29saWQgJGJsb2ctZ3JlZW47XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkYmxvZy1ncmVlbjtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0fVxuXHRcdCYuZG9uZSB7IGRpc3BsYXk6IG5vbmU7IH1cblx0XHRAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0Y29sb3I6ICRibG9nLWdyZWVuO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uYmxvZy1wb3N0LWhlcm8ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGhlaWdodDogNTV2aDtcblx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcblxuXHQuaW5uZXItY29udGFpbmVyIHtcblx0XHRAaW5jbHVkZSB2ZXJ0aWNhbGx5LWFsaWduKCk7XG5cdFx0ei1pbmRleDogMjtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0aDEsIGg1IHsgY29sb3I6ICR3aGl0ZTsgfVxuXHRcdGgxIHsgbWFyZ2luLWJvdHRvbTogcmVtKDI1cHgpOyB9XG5cdFx0aDUge1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdC8vIGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdHBhZGRpbmctYm90dG9tOiA0MCU7XG5cblx0XHQuaW5uZXItY29udGFpbmVyIHtcblx0XHRcdEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ24oZmFsc2UpO1xuXHRcdFx0cGFkZGluZzogMzAlIDUlIDA7XG5cdFx0fVxuXHR9XG59XG5cbi5ibG9nLXBvc3QtaGVyby1vdmVybGF5IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJhY2tncm91bmQ6IHJnYmEoJGhlcm8tb3ZlcmxheSwgMC4zNik7XG59XG5cbi5ibG9nLXBvc3QtcGFnZSB7XG5cdC53cC1jYXB0aW9uLXRleHQge1xuXHRcdG1hcmdpbi10b3A6IHJlbSgxMHB4KTtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdH1cblx0LmludHJvLXRleHQge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSgyNXB4KTtcblx0XHRmb250LXNpemU6IHJlbSgyMnB4KTtcblx0fVxuXHRlbSB7XG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHR9XG5cdEBpbmNsdWRlIGNmKCk7XG5cdG1heC13aWR0aDogNzUlO1xuXHRtYXJnaW46IDAgYXV0bztcblx0cGFkZGluZzogcmVtKDUwcHgpIDA7XG5cdGg1IHtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdGxpbmUtaGVpZ2h0OiByZW0oMzJweCk7XG5cdH1cblx0aDYge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR9XG5cblx0aW1nIHtcblx0XHRtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0XHQmLnNpemUtaGFsZiB7XG5cdFx0XHRAaW5jbHVkZSBjb2woMS8yKTtcblx0XHR9XG5cdH1cblxuXHRpZnJhbWUsIC53cC1jYXB0aW9uIHtcblx0XHRtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0fVxuXG5cdHAgeyBAaW5jbHVkZSBjZigpOyB9XG5cblx0YmxvY2txdW90ZSB7XG5cdFx0Y29sb3I6ICRibG9nLW9yYW5nZTtcblx0XHRib3JkZXItbGVmdDogcmVtKDRweCkgc29saWQgJGJsb2ctb3JhbmdlO1xuXHRcdHAge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiByZW0oMTVweCk7XG5cdFx0XHRjb2xvcjogJGJsb2ctb3JhbmdlO1xuXHRcdH1cblx0fVxuXHRvbCB7XG5cdFx0bWFyZ2luLWxlZnQ6IHJlbSgzNXB4KTtcblx0XHQvLyBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG5cdFx0Y291bnRlci1yZXNldDogY291bnRtZTtcblx0XHRsaSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTVweCk7XG5cdFx0XHRsaW5lLWhlaWdodDogcmVtKDIycHgpO1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IHJlbSgtMzVweCk7XG5cdFx0XHRcdGNvbnRlbnQ6IGNvdW50ZXIoY291bnRtZSk7XG5cdFx0XHRcdGNvdW50ZXItaW5jcmVtZW50OiBjb3VudG1lO1xuXHRcdFx0XHRwYWRkaW5nOiByZW0oMnB4KSByZW0oOHB4KTtcblx0XHRcdFx0Ym9yZGVyOiByZW0oMXB4KSBzb2xpZCAkY29hbDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG5cdHVsIHtcblx0XHRtYXJnaW4tbGVmdDogcmVtKDM1cHgpO1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcblx0XHRsaSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTBweCk7XG5cdFx0XHRsaW5lLWhlaWdodDogcmVtKDIycHgpO1xuXHRcdH1cblx0fVxuXHRoMSwgaDIsIGgzLCBoNCAsaDUsIGg2IHtcblx0XHRtYXJnaW4tdG9wOiByZW0oNTBweCk7XG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblx0fVxuXHRhIHsgY29sb3I6ICRibG9nLWJsdWUgIWltcG9ydGFudDsgfVxuXHRoMiB7IGZvbnQtc2l6ZTogNDJweCAhaW1wb3J0YW50OyB9XG5cdGgzIHsgZm9udC1zaXplOiAyNHB4ICFpbXBvcnRhbnQ7IH1cblx0aDQgeyBmb250LXNpemU6IDI4cHggIWltcG9ydGFudDsgfVxuXHRoNSB7IGZvbnQtc2l6ZTogMjZweCAhaW1wb3J0YW50OyB9XG5cdGg2IHsgZm9udC1zaXplOiAyNHB4ICFpbXBvcnRhbnQ7IH1cblx0cCB7IGZvbnQtc2l6ZTogMThweDsgfVxuXHR1bCwgb2wge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSg1MHB4KTtcblx0XHRhIHtcblx0XHRcdGNvbG9yOiAkYmxvZy1ibHVlO1xuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5hbGlnbmNlbnRlciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luOiAwcHggYXV0bztcblx0fVxuXG5cdGltZyB7XG5cdFx0Ji5hbGlnbmNlbnRlciB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbjogMHB4IGF1dG87XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRibG9ja3F1b3RlIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGxlZnQ6IC00LjUlO1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiByZW0oNnB4KTtcblx0XHR9XG5cdH1cbn1cbiIsInNlY3Rpb24uYXV0aC1oZXJvIHtcblx0d2lkdGg6IDEwMCU7XG5cdG1pbi1oZWlnaHQ6IHJlbSg0MDBweCk7XG5cdGhlaWdodDogNTV2aDtcblx0YmFja2dyb3VuZDogJGJsb2ctYmx1ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nLXRvcDogcmVtKDM1cHgpO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cblx0ZGl2LmNvcHkge1xuXHRcdEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ24oKTtcblx0fVxuXG5cdGZpZ3VyZSB7XG5cdFx0d2lkdGg6IHJlbSgxNzVweCk7XG5cdFx0aGVpZ2h0OiByZW0oMTc1cHgpO1xuXHRcdGJhY2tncm91bmQ6IGdyYXk7XG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdGJvcmRlcjogNHB4IHNvbGlkICR3aGl0ZTtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHR9XG5cblx0aDEge1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbi10b3A6IHJlbSgxNXB4KTtcblx0fVxuXG5cdHVsLmF1dGgtc29jaWFsIHtcblx0XHRtYXJnaW46IHJlbSg0MHB4KSBhdXRvIDAgYXV0bztcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRsaSB7XG5cdFx0XHR3aWR0aDogcmVtKDM1cHgpO1xuXHRcdFx0aGVpZ2h0OiByZW0oMzVweCk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRtYXJnaW46IDAgNXB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2Q3ZDVkNTtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXM7XG5cdFx0XHQmOmhvdmVyIHsgYmFja2dyb3VuZDogZGFya2VuKCNkN2Q1ZDUsIDEwJSk7IH1cblxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXG5cdFx0XHRcdGEgc3ZnIHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRsZWZ0OiByZW0oM3B4KTtcblx0XHRcdFx0XHR0b3A6IHJlbSgzcHgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGEge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRwYWRkaW5nOiByZW0oMjBweCkgcmVtKDE3cHgpIDAgMDtcblxuXHRcdFx0XHRzdmcge1xuXHRcdFx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRcdFx0aGVpZ2h0OiBpbmhlcml0O1xuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRsZWZ0OiByZW0oMTBweCk7XG5cdFx0XHRcdFx0cGF0aCwgcG9seWdvbiB7IGZpbGw6ICM0MTQwNDIgIWltcG9ydGFudDsgfVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbnNlY3Rpb24uYXV0aC1pbmZvIHtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IHJlbSg1MHB4KSAyMCUgMCAyMCU7XG5cdEBpbmNsdWRlIGNlbnRlcigkZGVza3RvcCwgMTEuNSUpO1xuXHRAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikgeyBwYWRkaW5nOiByZW0oNTBweCkgMTAlIDAgMTAlOyB9XG5cblx0ZGl2LmxpbmUge1xuXHRcdGhlaWdodDogMXB4O1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoIzAwMCwgLjE1KTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0bWFyZ2luLXRvcDogcmVtKDgwcHgpO1xuXG5cdFx0c3BhbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHRvcDogLTlweDtcblx0XHRcdHBhZGRpbmc6IDAgcmVtKDEwcHgpO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHR9XG5cdH1cbn1cblxuLy8gZXh0cmEgcGFkZGluZyBmb3IgYXV0aG9yIHBvc3RzIGNvbnRhaW5lclxuc2VjdGlvbi54cCB7XG5cdEBpbmNsdWRlIGNlbnRlcigkZGVza3RvcCwgMTEuNSUpO1xuICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikgeyBwYWRkaW5nOiAwIDQlOyB9XG4gIG1hcmdpbi1ib3R0b206IHJlbSg1MHB4KTtcbn1cblxuc2VjdGlvbi5ibG9nLXBvc3RzIGRpdi52aWV3LW1vcmUgYSB7XG5cdHdpZHRoOiByZW0oMTUwcHgpO1xuXHRoZWlnaHQ6IHJlbSg0NXB4KTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRwYWRkaW5nLXRvcDogcmVtKDEycHgpO1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Ym9yZGVyOiAycHggc29saWQgJGdyZWVuO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Y29sb3I6ICRncmVlbjtcblx0Y2xlYXI6IGJvdGg7XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXMsIGNvbG9yIDMwMG1zO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6ICRncmVlbjtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHR9XG59XG4iLCIucGVuY2lsLWljb24ge1xuXHRtYXJnaW46IDAgYXV0bztcblx0d2lkdGg6IHJlbSgxMjVweCk7XG5cdGhlaWdodDogcmVtKDEyNXB4KTtcblx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJvcmRlcjogcmVtKDRweCkgc29saWQgJGNvYWw7XG59XG5cbi5jb250cmlidXRlLXBlbmNpbCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IHJlbSgxMTVweCk7XG5cdGhlaWdodDogcmVtKDExNXB4KTtcblx0ZmlsbDogJGNvYWw7XG59XG5cbi5jb250cmlidXRlLWRvd24tYXJyb3cge1xuXHR3aWR0aDogcmVtKDI1cHgpO1xuXHRmaWxsOiAkd2hpdGU7XG59XG5cbi5jb250cmlidXRlLWZvcm0ge1xuXHRtYXJnaW46IHJlbSg1MHB4KSAwO1xuXHRpbnB1dFt0eXBlPVwiZW1haWxcIl0sIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCB0ZXh0YXJlYSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtKDI1cHgpO1xuXHRcdHBhZGRpbmc6IHJlbSgxMHB4KTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmV5LXRpbnQ7XG5cdH1cblx0dGV4dGFyZWEge1xuXHRcdGhlaWdodDogcmVtKDI1MHB4KTtcblx0XHRib3JkZXI6IHJlbSgxcHgpIHNvbGlkICRncmV5LXRpbnQ7XG5cdH1cblx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG5cblx0aW5wdXQsIHRleHRhcmVhIHtcblx0XHQmLmludmFsaWQge1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJHJlZDtcblx0XHR9XG5cdH1cbn0iLCJzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgem9vbTogMTtcblxuXHRkaXYucmVzdWx0cy13cmFwIHtcblx0XHR3aWR0aDogOTAwcHg7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdHBhZGRpbmc6IHJlbSg1MHB4KSAwO1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXG5cdCAgLnJlc3VsdCB7XG5cdCAgXHR3aWR0aDogMTAwJTtcblx0ICBcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0ICBcdG92ZXJmbG93OiBoaWRkZW47XG5cdCAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdCAgXHRtYXJnaW4tYm90dG9tOiByZW0oMzBweCk7XG5cblx0XHRcdGRpdi5ibG9nLWltYWdlIHtcblx0XHRcdFx0d2lkdGg6IDIwJTtcbiAgICBcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdCAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ICAgIGxlZnQ6IDA7XG5cdFx0ICAgIHRvcDogMDtcblx0XHRcdFx0cCB7IGNvbG9yOiAkd2hpdGU7IH1cblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdC5ibG9nLXBvc3Qtb3ZlcmxheSB7XG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0XHQmLm1hcmtldGluZ1x0eyBiYWNrZ3JvdW5kOiByZ2JhKCRibG9nLXllbGxvdywgMC44KTsgfVxuXHRcdFx0XHRcdCYucmVzZWFyY2hcdHsgYmFja2dyb3VuZDogcmdiYSgkYmxvZy10ZWFsLCAwLjgpOyB9XG5cdFx0XHRcdFx0Ji5kZXNpZ25cdFx0eyBiYWNrZ3JvdW5kOiByZ2JhKCRibG9nLW9yYW5nZSwgMC44KTsgfVxuXHRcdFx0XHRcdCYucHJvZHVjdFx0XHR7IGJhY2tncm91bmQ6IHJnYmEoJGJsb2ctYmx1ZSwgMC44KTsgfVxuXHRcdFx0XHRcdCYuQ1hcdFx0XHRcdHsgYmFja2dyb3VuZDogcmdiYSgkYmxvZy1ncmVlbiwgMC44KTsgfVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGRpdi5yaWdodCB7XG5cdFx0XHRcdGZsb2F0OiByaWdodDtcbiAgICBcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIFx0XHR3aWR0aDogNzUlO1xuXG5cdFx0XHRcdGg1IHtcblx0XHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogcmVtKDYwcHgpO1xuXHRcdFx0XHRcdG1hcmdpbjogMCAwIHJlbSg3cHgpIDA7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRwIHtcblx0XHRcdFx0XHRjb2xvcjogcmdiYShibGFjaywgLjcpO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDE3cHgpO1xuXHRcdFx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0XHRcdCY6bnRoLW9mLXR5cGUoMikgeyBmb250LXNpemU6IHJlbSgxNXB4KTsgcGFkZGluZzogcmVtKDEwcHgpIDA7IH1cblx0XHRcdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRcdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiByZW0oMTVweCk7XG5cdFx0XHRcdFx0XHRjb2xvcjogZGFya2VuKCRncmV5LXRpbnQsIDI1JSk7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0XHR0b3A6IHJlbSg1cHgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHQgIH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0LWwnKSB7IHdpZHRoOiAxMDAlOyB9XG5cdFx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cblx0XHRcdGRpdi5yZXN1bHQge1xuXHRcdFx0XHQuYmxvZy1pbWFnZSB7IHdpZHRoOiAzMCU7IH1cblxuXHRcdFx0XHQucmlnaHQge1xuXHRcdFx0XHRcdHdpZHRoOiA2NSU7XG5cdFx0XHRcdFx0cGFkZGluZzogcmVtKDIwcHgpIDAgcmVtKDMwcHgpIDA7XG5cdFx0XHRcdFx0aDUgeyBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cdFx0XHRcdFx0cDpudGgtb2YtdHlwZSgyKSwgcDpsYXN0LWNoaWxkIHsgZGlzcGxheTogbm9uZTsgfVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0JjphY3RpdmUgeyBiYWNrZ3JvdW5kOiBsaWdodGVuKCRncmV5LWxpZ2h0LCAyJSk7IH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuc2VjdGlvbi5ub3QtZm91bmQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA4MHZoO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGhlaWdodCAuNXMgZWFzZTtcblxuICAuYWxlcnQtaW5mbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgY2VudGVyKDY1MHB4KTtcbiAgICB0b3A6IDI1JTtcbiAgICB0cmFuc2l0aW9uOiB0b3AgLjVzIGVhc2U7XG4gICAgcGFkZGluZzogMCA1JTtcblxuICAgIGgyIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIGhlYXZ5LWFudGlhbGlhcygpO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDFzO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgaGVpZ2h0OiA2NXZoO1xuXG4gICAgLmFsZXJ0LWluZm8ge1xuICAgICAgdG9wOiAzMCU7XG4gICAgfVxuICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */