/**
 * Foundation for Sites
 * Version 6.6.3
 * https://get.foundation
 * Licensed under MIT Open Source
 */

.grid-container.extra-wide-container {
  max-width: 100rem;
}

.equal-height-cell > .cell {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

/**
 * Foundation for Sites
 * Version 6.6.3
 * https://get.foundation
 * Licensed under MIT Open Source
 */

/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */

html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
}

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
  overflow: visible;
}

pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

a {
  background-color: transparent;
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

img {
  border-style: none;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

legend {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

details {
  display: block;
}

summary {
  display: list-item;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

.foundation-mq {
  font-family: "small=0em&medium=47.5em&large=62.5em&xlarge=75em&xxlarge=93.75em";
}

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 100%;
}

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic;
}

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0;
}

select {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  border-radius: 0;
}

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

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto;
}

[data-whatinput='mouse'] button {
  outline: 0;
}

pre {
  overflow: auto;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
}

.is-visible {
  display: block !important;
}

.is-hidden {
  display: none !important;
}

.grid-container {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
}

@media print, screen and (min-width: 47.5em) {
  .grid-container {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.grid-container.fluid {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

@media print, screen and (min-width: 47.5em) {
  .grid-container.fluid {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.grid-container.full {
  padding-right: 0;
  padding-left: 0;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.grid-x {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.cell {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  min-height: 0px;
  min-width: 0px;
  width: 100%;
}

.cell.auto {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
}

.cell.shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.grid-x > .auto {
  width: auto;
}

.grid-x > .shrink {
  width: auto;
}

.grid-x > .small-shrink,
.grid-x > .small-full,
.grid-x > .small-1,
.grid-x > .small-2,
.grid-x > .small-3,
.grid-x > .small-4,
.grid-x > .small-5,
.grid-x > .small-6,
.grid-x > .small-7,
.grid-x > .small-8,
.grid-x > .small-9,
.grid-x > .small-10,
.grid-x > .small-11,
.grid-x > .small-12 {
  -ms-flex-preferred-size: auto;
      flex-basis: auto;
}

@media print, screen and (min-width: 47.5em) {
  .grid-x > .medium-shrink,
  .grid-x > .medium-full,
  .grid-x > .medium-1,
  .grid-x > .medium-2,
  .grid-x > .medium-3,
  .grid-x > .medium-4,
  .grid-x > .medium-5,
  .grid-x > .medium-6,
  .grid-x > .medium-7,
  .grid-x > .medium-8,
  .grid-x > .medium-9,
  .grid-x > .medium-10,
  .grid-x > .medium-11,
  .grid-x > .medium-12 {
    -ms-flex-preferred-size: auto;
        flex-basis: auto;
  }
}

@media print, screen and (min-width: 62.5em) {
  .grid-x > .large-shrink,
  .grid-x > .large-full,
  .grid-x > .large-1,
  .grid-x > .large-2,
  .grid-x > .large-3,
  .grid-x > .large-4,
  .grid-x > .large-5,
  .grid-x > .large-6,
  .grid-x > .large-7,
  .grid-x > .large-8,
  .grid-x > .large-9,
  .grid-x > .large-10,
  .grid-x > .large-11,
  .grid-x > .large-12 {
    -ms-flex-preferred-size: auto;
        flex-basis: auto;
  }
}

@media print, screen and (min-width: 75em) {
  .grid-x > .xlarge-shrink,
  .grid-x > .xlarge-full,
  .grid-x > .xlarge-1,
  .grid-x > .xlarge-2,
  .grid-x > .xlarge-3,
  .grid-x > .xlarge-4,
  .grid-x > .xlarge-5,
  .grid-x > .xlarge-6,
  .grid-x > .xlarge-7,
  .grid-x > .xlarge-8,
  .grid-x > .xlarge-9,
  .grid-x > .xlarge-10,
  .grid-x > .xlarge-11,
  .grid-x > .xlarge-12 {
    -ms-flex-preferred-size: auto;
        flex-basis: auto;
  }
}

.grid-x > .small-1,
.grid-x > .small-2,
.grid-x > .small-3,
.grid-x > .small-4,
.grid-x > .small-5,
.grid-x > .small-6,
.grid-x > .small-7,
.grid-x > .small-8,
.grid-x > .small-9,
.grid-x > .small-10,
.grid-x > .small-11,
.grid-x > .small-12 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.grid-x > .small-1 {
  width: 8.33333333%;
}

.grid-x > .small-2 {
  width: 16.66666667%;
}

.grid-x > .small-3 {
  width: 25%;
}

.grid-x > .small-4 {
  width: 33.33333333%;
}

.grid-x > .small-5 {
  width: 41.66666667%;
}

.grid-x > .small-6 {
  width: 50%;
}

.grid-x > .small-7 {
  width: 58.33333333%;
}

.grid-x > .small-8 {
  width: 66.66666667%;
}

.grid-x > .small-9 {
  width: 75%;
}

.grid-x > .small-10 {
  width: 83.33333333%;
}

.grid-x > .small-11 {
  width: 91.66666667%;
}

.grid-x > .small-12 {
  width: 100%;
}

@media print, screen and (min-width: 47.5em) {
  .grid-x > .medium-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
    width: auto;
  }

  .grid-x > .medium-shrink,
  .grid-x > .medium-1,
  .grid-x > .medium-2,
  .grid-x > .medium-3,
  .grid-x > .medium-4,
  .grid-x > .medium-5,
  .grid-x > .medium-6,
  .grid-x > .medium-7,
  .grid-x > .medium-8,
  .grid-x > .medium-9,
  .grid-x > .medium-10,
  .grid-x > .medium-11,
  .grid-x > .medium-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }

  .grid-x > .medium-shrink {
    width: auto;
  }

  .grid-x > .medium-1 {
    width: 8.33333333%;
  }

  .grid-x > .medium-2 {
    width: 16.66666667%;
  }

  .grid-x > .medium-3 {
    width: 25%;
  }

  .grid-x > .medium-4 {
    width: 33.33333333%;
  }

  .grid-x > .medium-5 {
    width: 41.66666667%;
  }

  .grid-x > .medium-6 {
    width: 50%;
  }

  .grid-x > .medium-7 {
    width: 58.33333333%;
  }

  .grid-x > .medium-8 {
    width: 66.66666667%;
  }

  .grid-x > .medium-9 {
    width: 75%;
  }

  .grid-x > .medium-10 {
    width: 83.33333333%;
  }

  .grid-x > .medium-11 {
    width: 91.66666667%;
  }

  .grid-x > .medium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 62.5em) {
  .grid-x > .large-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
    width: auto;
  }

  .grid-x > .large-shrink,
  .grid-x > .large-1,
  .grid-x > .large-2,
  .grid-x > .large-3,
  .grid-x > .large-4,
  .grid-x > .large-5,
  .grid-x > .large-6,
  .grid-x > .large-7,
  .grid-x > .large-8,
  .grid-x > .large-9,
  .grid-x > .large-10,
  .grid-x > .large-11,
  .grid-x > .large-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }

  .grid-x > .large-shrink {
    width: auto;
  }

  .grid-x > .large-1 {
    width: 8.33333333%;
  }

  .grid-x > .large-2 {
    width: 16.66666667%;
  }

  .grid-x > .large-3 {
    width: 25%;
  }

  .grid-x > .large-4 {
    width: 33.33333333%;
  }

  .grid-x > .large-5 {
    width: 41.66666667%;
  }

  .grid-x > .large-6 {
    width: 50%;
  }

  .grid-x > .large-7 {
    width: 58.33333333%;
  }

  .grid-x > .large-8 {
    width: 66.66666667%;
  }

  .grid-x > .large-9 {
    width: 75%;
  }

  .grid-x > .large-10 {
    width: 83.33333333%;
  }

  .grid-x > .large-11 {
    width: 91.66666667%;
  }

  .grid-x > .large-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 75em) {
  .grid-x > .xlarge-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
    width: auto;
  }

  .grid-x > .xlarge-shrink,
  .grid-x > .xlarge-1,
  .grid-x > .xlarge-2,
  .grid-x > .xlarge-3,
  .grid-x > .xlarge-4,
  .grid-x > .xlarge-5,
  .grid-x > .xlarge-6,
  .grid-x > .xlarge-7,
  .grid-x > .xlarge-8,
  .grid-x > .xlarge-9,
  .grid-x > .xlarge-10,
  .grid-x > .xlarge-11,
  .grid-x > .xlarge-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }

  .grid-x > .xlarge-shrink {
    width: auto;
  }

  .grid-x > .xlarge-1 {
    width: 8.33333333%;
  }

  .grid-x > .xlarge-2 {
    width: 16.66666667%;
  }

  .grid-x > .xlarge-3 {
    width: 25%;
  }

  .grid-x > .xlarge-4 {
    width: 33.33333333%;
  }

  .grid-x > .xlarge-5 {
    width: 41.66666667%;
  }

  .grid-x > .xlarge-6 {
    width: 50%;
  }

  .grid-x > .xlarge-7 {
    width: 58.33333333%;
  }

  .grid-x > .xlarge-8 {
    width: 66.66666667%;
  }

  .grid-x > .xlarge-9 {
    width: 75%;
  }

  .grid-x > .xlarge-10 {
    width: 83.33333333%;
  }

  .grid-x > .xlarge-11 {
    width: 91.66666667%;
  }

  .grid-x > .xlarge-12 {
    width: 100%;
  }
}

.grid-margin-x:not(.grid-x) > .cell {
  width: auto;
}

.grid-margin-y:not(.grid-y) > .cell {
  height: auto;
}

.grid-margin-x {
  margin-left: -0.625rem;
  margin-right: -0.625rem;
}

@media print, screen and (min-width: 47.5em) {
  .grid-margin-x {
    margin-left: -0.9375rem;
    margin-right: -0.9375rem;
  }
}

.grid-margin-x > .cell {
  width: calc(100% - 1.25rem);
  margin-left: 0.625rem;
  margin-right: 0.625rem;
}

@media print, screen and (min-width: 47.5em) {
  .grid-margin-x > .cell {
    width: calc(100% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}

.grid-margin-x > .auto {
  width: auto;
}

.grid-margin-x > .shrink {
  width: auto;
}

.grid-margin-x > .small-1 {
  width: calc(8.33333333% - 1.25rem);
}

.grid-margin-x > .small-2 {
  width: calc(16.66666667% - 1.25rem);
}

.grid-margin-x > .small-3 {
  width: calc(25% - 1.25rem);
}

.grid-margin-x > .small-4 {
  width: calc(33.33333333% - 1.25rem);
}

.grid-margin-x > .small-5 {
  width: calc(41.66666667% - 1.25rem);
}

.grid-margin-x > .small-6 {
  width: calc(50% - 1.25rem);
}

.grid-margin-x > .small-7 {
  width: calc(58.33333333% - 1.25rem);
}

.grid-margin-x > .small-8 {
  width: calc(66.66666667% - 1.25rem);
}

.grid-margin-x > .small-9 {
  width: calc(75% - 1.25rem);
}

.grid-margin-x > .small-10 {
  width: calc(83.33333333% - 1.25rem);
}

.grid-margin-x > .small-11 {
  width: calc(91.66666667% - 1.25rem);
}

.grid-margin-x > .small-12 {
  width: calc(100% - 1.25rem);
}

@media print, screen and (min-width: 47.5em) {
  .grid-margin-x > .auto {
    width: auto;
  }

  .grid-margin-x > .shrink {
    width: auto;
  }

  .grid-margin-x > .small-1 {
    width: calc(8.33333333% - 1.875rem);
  }

  .grid-margin-x > .small-2 {
    width: calc(16.66666667% - 1.875rem);
  }

  .grid-margin-x > .small-3 {
    width: calc(25% - 1.875rem);
  }

  .grid-margin-x > .small-4 {
    width: calc(33.33333333% - 1.875rem);
  }

  .grid-margin-x > .small-5 {
    width: calc(41.66666667% - 1.875rem);
  }

  .grid-margin-x > .small-6 {
    width: calc(50% - 1.875rem);
  }

  .grid-margin-x > .small-7 {
    width: calc(58.33333333% - 1.875rem);
  }

  .grid-margin-x > .small-8 {
    width: calc(66.66666667% - 1.875rem);
  }

  .grid-margin-x > .small-9 {
    width: calc(75% - 1.875rem);
  }

  .grid-margin-x > .small-10 {
    width: calc(83.33333333% - 1.875rem);
  }

  .grid-margin-x > .small-11 {
    width: calc(91.66666667% - 1.875rem);
  }

  .grid-margin-x > .small-12 {
    width: calc(100% - 1.875rem);
  }

  .grid-margin-x > .medium-auto {
    width: auto;
  }

  .grid-margin-x > .medium-shrink {
    width: auto;
  }

  .grid-margin-x > .medium-1 {
    width: calc(8.33333333% - 1.875rem);
  }

  .grid-margin-x > .medium-2 {
    width: calc(16.66666667% - 1.875rem);
  }

  .grid-margin-x > .medium-3 {
    width: calc(25% - 1.875rem);
  }

  .grid-margin-x > .medium-4 {
    width: calc(33.33333333% - 1.875rem);
  }

  .grid-margin-x > .medium-5 {
    width: calc(41.66666667% - 1.875rem);
  }

  .grid-margin-x > .medium-6 {
    width: calc(50% - 1.875rem);
  }

  .grid-margin-x > .medium-7 {
    width: calc(58.33333333% - 1.875rem);
  }

  .grid-margin-x > .medium-8 {
    width: calc(66.66666667% - 1.875rem);
  }

  .grid-margin-x > .medium-9 {
    width: calc(75% - 1.875rem);
  }

  .grid-margin-x > .medium-10 {
    width: calc(83.33333333% - 1.875rem);
  }

  .grid-margin-x > .medium-11 {
    width: calc(91.66666667% - 1.875rem);
  }

  .grid-margin-x > .medium-12 {
    width: calc(100% - 1.875rem);
  }
}

@media print, screen and (min-width: 62.5em) {
  .grid-margin-x > .large-auto {
    width: auto;
  }

  .grid-margin-x > .large-shrink {
    width: auto;
  }

  .grid-margin-x > .large-1 {
    width: calc(8.33333333% - 1.875rem);
  }

  .grid-margin-x > .large-2 {
    width: calc(16.66666667% - 1.875rem);
  }

  .grid-margin-x > .large-3 {
    width: calc(25% - 1.875rem);
  }

  .grid-margin-x > .large-4 {
    width: calc(33.33333333% - 1.875rem);
  }

  .grid-margin-x > .large-5 {
    width: calc(41.66666667% - 1.875rem);
  }

  .grid-margin-x > .large-6 {
    width: calc(50% - 1.875rem);
  }

  .grid-margin-x > .large-7 {
    width: calc(58.33333333% - 1.875rem);
  }

  .grid-margin-x > .large-8 {
    width: calc(66.66666667% - 1.875rem);
  }

  .grid-margin-x > .large-9 {
    width: calc(75% - 1.875rem);
  }

  .grid-margin-x > .large-10 {
    width: calc(83.33333333% - 1.875rem);
  }

  .grid-margin-x > .large-11 {
    width: calc(91.66666667% - 1.875rem);
  }

  .grid-margin-x > .large-12 {
    width: calc(100% - 1.875rem);
  }
}

@media print, screen and (min-width: 75em) {
  .grid-margin-x > .xlarge-auto {
    width: auto;
  }

  .grid-margin-x > .xlarge-shrink {
    width: auto;
  }

  .grid-margin-x > .xlarge-1 {
    width: calc(8.33333333% - 1.875rem);
  }

  .grid-margin-x > .xlarge-2 {
    width: calc(16.66666667% - 1.875rem);
  }

  .grid-margin-x > .xlarge-3 {
    width: calc(25% - 1.875rem);
  }

  .grid-margin-x > .xlarge-4 {
    width: calc(33.33333333% - 1.875rem);
  }

  .grid-margin-x > .xlarge-5 {
    width: calc(41.66666667% - 1.875rem);
  }

  .grid-margin-x > .xlarge-6 {
    width: calc(50% - 1.875rem);
  }

  .grid-margin-x > .xlarge-7 {
    width: calc(58.33333333% - 1.875rem);
  }

  .grid-margin-x > .xlarge-8 {
    width: calc(66.66666667% - 1.875rem);
  }

  .grid-margin-x > .xlarge-9 {
    width: calc(75% - 1.875rem);
  }

  .grid-margin-x > .xlarge-10 {
    width: calc(83.33333333% - 1.875rem);
  }

  .grid-margin-x > .xlarge-11 {
    width: calc(91.66666667% - 1.875rem);
  }

  .grid-margin-x > .xlarge-12 {
    width: calc(100% - 1.875rem);
  }
}

.grid-padding-x .grid-padding-x {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}

@media print, screen and (min-width: 47.5em) {
  .grid-padding-x .grid-padding-x {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

.grid-container:not(.full) > .grid-padding-x {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}

@media print, screen and (min-width: 47.5em) {
  .grid-container:not(.full) > .grid-padding-x {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

.grid-padding-x > .cell {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 47.5em) {
  .grid-padding-x > .cell {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.small-margin-collapse {
  margin-right: 0;
  margin-left: 0;
}

.small-margin-collapse > .cell {
  margin-right: 0;
  margin-left: 0;
}

.small-margin-collapse > .small-1 {
  width: 8.33333333%;
}

.small-margin-collapse > .small-2 {
  width: 16.66666667%;
}

.small-margin-collapse > .small-3 {
  width: 25%;
}

.small-margin-collapse > .small-4 {
  width: 33.33333333%;
}

.small-margin-collapse > .small-5 {
  width: 41.66666667%;
}

.small-margin-collapse > .small-6 {
  width: 50%;
}

.small-margin-collapse > .small-7 {
  width: 58.33333333%;
}

.small-margin-collapse > .small-8 {
  width: 66.66666667%;
}

.small-margin-collapse > .small-9 {
  width: 75%;
}

.small-margin-collapse > .small-10 {
  width: 83.33333333%;
}

.small-margin-collapse > .small-11 {
  width: 91.66666667%;
}

.small-margin-collapse > .small-12 {
  width: 100%;
}

@media print, screen and (min-width: 47.5em) {
  .small-margin-collapse > .medium-1 {
    width: 8.33333333%;
  }

  .small-margin-collapse > .medium-2 {
    width: 16.66666667%;
  }

  .small-margin-collapse > .medium-3 {
    width: 25%;
  }

  .small-margin-collapse > .medium-4 {
    width: 33.33333333%;
  }

  .small-margin-collapse > .medium-5 {
    width: 41.66666667%;
  }

  .small-margin-collapse > .medium-6 {
    width: 50%;
  }

  .small-margin-collapse > .medium-7 {
    width: 58.33333333%;
  }

  .small-margin-collapse > .medium-8 {
    width: 66.66666667%;
  }

  .small-margin-collapse > .medium-9 {
    width: 75%;
  }

  .small-margin-collapse > .medium-10 {
    width: 83.33333333%;
  }

  .small-margin-collapse > .medium-11 {
    width: 91.66666667%;
  }

  .small-margin-collapse > .medium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 62.5em) {
  .small-margin-collapse > .large-1 {
    width: 8.33333333%;
  }

  .small-margin-collapse > .large-2 {
    width: 16.66666667%;
  }

  .small-margin-collapse > .large-3 {
    width: 25%;
  }

  .small-margin-collapse > .large-4 {
    width: 33.33333333%;
  }

  .small-margin-collapse > .large-5 {
    width: 41.66666667%;
  }

  .small-margin-collapse > .large-6 {
    width: 50%;
  }

  .small-margin-collapse > .large-7 {
    width: 58.33333333%;
  }

  .small-margin-collapse > .large-8 {
    width: 66.66666667%;
  }

  .small-margin-collapse > .large-9 {
    width: 75%;
  }

  .small-margin-collapse > .large-10 {
    width: 83.33333333%;
  }

  .small-margin-collapse > .large-11 {
    width: 91.66666667%;
  }

  .small-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 75em) {
  .small-margin-collapse > .xlarge-1 {
    width: 8.33333333%;
  }

  .small-margin-collapse > .xlarge-2 {
    width: 16.66666667%;
  }

  .small-margin-collapse > .xlarge-3 {
    width: 25%;
  }

  .small-margin-collapse > .xlarge-4 {
    width: 33.33333333%;
  }

  .small-margin-collapse > .xlarge-5 {
    width: 41.66666667%;
  }

  .small-margin-collapse > .xlarge-6 {
    width: 50%;
  }

  .small-margin-collapse > .xlarge-7 {
    width: 58.33333333%;
  }

  .small-margin-collapse > .xlarge-8 {
    width: 66.66666667%;
  }

  .small-margin-collapse > .xlarge-9 {
    width: 75%;
  }

  .small-margin-collapse > .xlarge-10 {
    width: 83.33333333%;
  }

  .small-margin-collapse > .xlarge-11 {
    width: 91.66666667%;
  }

  .small-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}

.small-padding-collapse {
  margin-right: 0;
  margin-left: 0;
}

.small-padding-collapse > .cell {
  padding-right: 0;
  padding-left: 0;
}

@media print, screen and (min-width: 47.5em) {
  .medium-margin-collapse {
    margin-right: 0;
    margin-left: 0;
  }

  .medium-margin-collapse > .cell {
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 47.5em) {
  .medium-margin-collapse > .small-1 {
    width: 8.33333333%;
  }

  .medium-margin-collapse > .small-2 {
    width: 16.66666667%;
  }

  .medium-margin-collapse > .small-3 {
    width: 25%;
  }

  .medium-margin-collapse > .small-4 {
    width: 33.33333333%;
  }

  .medium-margin-collapse > .small-5 {
    width: 41.66666667%;
  }

  .medium-margin-collapse > .small-6 {
    width: 50%;
  }

  .medium-margin-collapse > .small-7 {
    width: 58.33333333%;
  }

  .medium-margin-collapse > .small-8 {
    width: 66.66666667%;
  }

  .medium-margin-collapse > .small-9 {
    width: 75%;
  }

  .medium-margin-collapse > .small-10 {
    width: 83.33333333%;
  }

  .medium-margin-collapse > .small-11 {
    width: 91.66666667%;
  }

  .medium-margin-collapse > .small-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 47.5em) {
  .medium-margin-collapse > .medium-1 {
    width: 8.33333333%;
  }

  .medium-margin-collapse > .medium-2 {
    width: 16.66666667%;
  }

  .medium-margin-collapse > .medium-3 {
    width: 25%;
  }

  .medium-margin-collapse > .medium-4 {
    width: 33.33333333%;
  }

  .medium-margin-collapse > .medium-5 {
    width: 41.66666667%;
  }

  .medium-margin-collapse > .medium-6 {
    width: 50%;
  }

  .medium-margin-collapse > .medium-7 {
    width: 58.33333333%;
  }

  .medium-margin-collapse > .medium-8 {
    width: 66.66666667%;
  }

  .medium-margin-collapse > .medium-9 {
    width: 75%;
  }

  .medium-margin-collapse > .medium-10 {
    width: 83.33333333%;
  }

  .medium-margin-collapse > .medium-11 {
    width: 91.66666667%;
  }

  .medium-margin-collapse > .medium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 62.5em) {
  .medium-margin-collapse > .large-1 {
    width: 8.33333333%;
  }

  .medium-margin-collapse > .large-2 {
    width: 16.66666667%;
  }

  .medium-margin-collapse > .large-3 {
    width: 25%;
  }

  .medium-margin-collapse > .large-4 {
    width: 33.33333333%;
  }

  .medium-margin-collapse > .large-5 {
    width: 41.66666667%;
  }

  .medium-margin-collapse > .large-6 {
    width: 50%;
  }

  .medium-margin-collapse > .large-7 {
    width: 58.33333333%;
  }

  .medium-margin-collapse > .large-8 {
    width: 66.66666667%;
  }

  .medium-margin-collapse > .large-9 {
    width: 75%;
  }

  .medium-margin-collapse > .large-10 {
    width: 83.33333333%;
  }

  .medium-margin-collapse > .large-11 {
    width: 91.66666667%;
  }

  .medium-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 75em) {
  .medium-margin-collapse > .xlarge-1 {
    width: 8.33333333%;
  }

  .medium-margin-collapse > .xlarge-2 {
    width: 16.66666667%;
  }

  .medium-margin-collapse > .xlarge-3 {
    width: 25%;
  }

  .medium-margin-collapse > .xlarge-4 {
    width: 33.33333333%;
  }

  .medium-margin-collapse > .xlarge-5 {
    width: 41.66666667%;
  }

  .medium-margin-collapse > .xlarge-6 {
    width: 50%;
  }

  .medium-margin-collapse > .xlarge-7 {
    width: 58.33333333%;
  }

  .medium-margin-collapse > .xlarge-8 {
    width: 66.66666667%;
  }

  .medium-margin-collapse > .xlarge-9 {
    width: 75%;
  }

  .medium-margin-collapse > .xlarge-10 {
    width: 83.33333333%;
  }

  .medium-margin-collapse > .xlarge-11 {
    width: 91.66666667%;
  }

  .medium-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 47.5em) {
  .medium-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }

  .medium-padding-collapse > .cell {
    padding-right: 0;
    padding-left: 0;
  }
}

@media print, screen and (min-width: 62.5em) {
  .large-margin-collapse {
    margin-right: 0;
    margin-left: 0;
  }

  .large-margin-collapse > .cell {
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 62.5em) {
  .large-margin-collapse > .small-1 {
    width: 8.33333333%;
  }

  .large-margin-collapse > .small-2 {
    width: 16.66666667%;
  }

  .large-margin-collapse > .small-3 {
    width: 25%;
  }

  .large-margin-collapse > .small-4 {
    width: 33.33333333%;
  }

  .large-margin-collapse > .small-5 {
    width: 41.66666667%;
  }

  .large-margin-collapse > .small-6 {
    width: 50%;
  }

  .large-margin-collapse > .small-7 {
    width: 58.33333333%;
  }

  .large-margin-collapse > .small-8 {
    width: 66.66666667%;
  }

  .large-margin-collapse > .small-9 {
    width: 75%;
  }

  .large-margin-collapse > .small-10 {
    width: 83.33333333%;
  }

  .large-margin-collapse > .small-11 {
    width: 91.66666667%;
  }

  .large-margin-collapse > .small-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 62.5em) {
  .large-margin-collapse > .medium-1 {
    width: 8.33333333%;
  }

  .large-margin-collapse > .medium-2 {
    width: 16.66666667%;
  }

  .large-margin-collapse > .medium-3 {
    width: 25%;
  }

  .large-margin-collapse > .medium-4 {
    width: 33.33333333%;
  }

  .large-margin-collapse > .medium-5 {
    width: 41.66666667%;
  }

  .large-margin-collapse > .medium-6 {
    width: 50%;
  }

  .large-margin-collapse > .medium-7 {
    width: 58.33333333%;
  }

  .large-margin-collapse > .medium-8 {
    width: 66.66666667%;
  }

  .large-margin-collapse > .medium-9 {
    width: 75%;
  }

  .large-margin-collapse > .medium-10 {
    width: 83.33333333%;
  }

  .large-margin-collapse > .medium-11 {
    width: 91.66666667%;
  }

  .large-margin-collapse > .medium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 62.5em) {
  .large-margin-collapse > .large-1 {
    width: 8.33333333%;
  }

  .large-margin-collapse > .large-2 {
    width: 16.66666667%;
  }

  .large-margin-collapse > .large-3 {
    width: 25%;
  }

  .large-margin-collapse > .large-4 {
    width: 33.33333333%;
  }

  .large-margin-collapse > .large-5 {
    width: 41.66666667%;
  }

  .large-margin-collapse > .large-6 {
    width: 50%;
  }

  .large-margin-collapse > .large-7 {
    width: 58.33333333%;
  }

  .large-margin-collapse > .large-8 {
    width: 66.66666667%;
  }

  .large-margin-collapse > .large-9 {
    width: 75%;
  }

  .large-margin-collapse > .large-10 {
    width: 83.33333333%;
  }

  .large-margin-collapse > .large-11 {
    width: 91.66666667%;
  }

  .large-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 75em) {
  .large-margin-collapse > .xlarge-1 {
    width: 8.33333333%;
  }

  .large-margin-collapse > .xlarge-2 {
    width: 16.66666667%;
  }

  .large-margin-collapse > .xlarge-3 {
    width: 25%;
  }

  .large-margin-collapse > .xlarge-4 {
    width: 33.33333333%;
  }

  .large-margin-collapse > .xlarge-5 {
    width: 41.66666667%;
  }

  .large-margin-collapse > .xlarge-6 {
    width: 50%;
  }

  .large-margin-collapse > .xlarge-7 {
    width: 58.33333333%;
  }

  .large-margin-collapse > .xlarge-8 {
    width: 66.66666667%;
  }

  .large-margin-collapse > .xlarge-9 {
    width: 75%;
  }

  .large-margin-collapse > .xlarge-10 {
    width: 83.33333333%;
  }

  .large-margin-collapse > .xlarge-11 {
    width: 91.66666667%;
  }

  .large-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 62.5em) {
  .large-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }

  .large-padding-collapse > .cell {
    padding-right: 0;
    padding-left: 0;
  }
}

@media print, screen and (min-width: 75em) {
  .xlarge-margin-collapse {
    margin-right: 0;
    margin-left: 0;
  }

  .xlarge-margin-collapse > .cell {
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 75em) {
  .xlarge-margin-collapse > .small-1 {
    width: 8.33333333%;
  }

  .xlarge-margin-collapse > .small-2 {
    width: 16.66666667%;
  }

  .xlarge-margin-collapse > .small-3 {
    width: 25%;
  }

  .xlarge-margin-collapse > .small-4 {
    width: 33.33333333%;
  }

  .xlarge-margin-collapse > .small-5 {
    width: 41.66666667%;
  }

  .xlarge-margin-collapse > .small-6 {
    width: 50%;
  }

  .xlarge-margin-collapse > .small-7 {
    width: 58.33333333%;
  }

  .xlarge-margin-collapse > .small-8 {
    width: 66.66666667%;
  }

  .xlarge-margin-collapse > .small-9 {
    width: 75%;
  }

  .xlarge-margin-collapse > .small-10 {
    width: 83.33333333%;
  }

  .xlarge-margin-collapse > .small-11 {
    width: 91.66666667%;
  }

  .xlarge-margin-collapse > .small-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 75em) {
  .xlarge-margin-collapse > .medium-1 {
    width: 8.33333333%;
  }

  .xlarge-margin-collapse > .medium-2 {
    width: 16.66666667%;
  }

  .xlarge-margin-collapse > .medium-3 {
    width: 25%;
  }

  .xlarge-margin-collapse > .medium-4 {
    width: 33.33333333%;
  }

  .xlarge-margin-collapse > .medium-5 {
    width: 41.66666667%;
  }

  .xlarge-margin-collapse > .medium-6 {
    width: 50%;
  }

  .xlarge-margin-collapse > .medium-7 {
    width: 58.33333333%;
  }

  .xlarge-margin-collapse > .medium-8 {
    width: 66.66666667%;
  }

  .xlarge-margin-collapse > .medium-9 {
    width: 75%;
  }

  .xlarge-margin-collapse > .medium-10 {
    width: 83.33333333%;
  }

  .xlarge-margin-collapse > .medium-11 {
    width: 91.66666667%;
  }

  .xlarge-margin-collapse > .medium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 75em) {
  .xlarge-margin-collapse > .large-1 {
    width: 8.33333333%;
  }

  .xlarge-margin-collapse > .large-2 {
    width: 16.66666667%;
  }

  .xlarge-margin-collapse > .large-3 {
    width: 25%;
  }

  .xlarge-margin-collapse > .large-4 {
    width: 33.33333333%;
  }

  .xlarge-margin-collapse > .large-5 {
    width: 41.66666667%;
  }

  .xlarge-margin-collapse > .large-6 {
    width: 50%;
  }

  .xlarge-margin-collapse > .large-7 {
    width: 58.33333333%;
  }

  .xlarge-margin-collapse > .large-8 {
    width: 66.66666667%;
  }

  .xlarge-margin-collapse > .large-9 {
    width: 75%;
  }

  .xlarge-margin-collapse > .large-10 {
    width: 83.33333333%;
  }

  .xlarge-margin-collapse > .large-11 {
    width: 91.66666667%;
  }

  .xlarge-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 75em) {
  .xlarge-margin-collapse > .xlarge-1 {
    width: 8.33333333%;
  }

  .xlarge-margin-collapse > .xlarge-2 {
    width: 16.66666667%;
  }

  .xlarge-margin-collapse > .xlarge-3 {
    width: 25%;
  }

  .xlarge-margin-collapse > .xlarge-4 {
    width: 33.33333333%;
  }

  .xlarge-margin-collapse > .xlarge-5 {
    width: 41.66666667%;
  }

  .xlarge-margin-collapse > .xlarge-6 {
    width: 50%;
  }

  .xlarge-margin-collapse > .xlarge-7 {
    width: 58.33333333%;
  }

  .xlarge-margin-collapse > .xlarge-8 {
    width: 66.66666667%;
  }

  .xlarge-margin-collapse > .xlarge-9 {
    width: 75%;
  }

  .xlarge-margin-collapse > .xlarge-10 {
    width: 83.33333333%;
  }

  .xlarge-margin-collapse > .xlarge-11 {
    width: 91.66666667%;
  }

  .xlarge-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 75em) {
  .xlarge-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }

  .xlarge-padding-collapse > .cell {
    padding-right: 0;
    padding-left: 0;
  }
}

.small-offset-0 {
  margin-left: 0%;
}

.grid-margin-x > .small-offset-0 {
  margin-left: calc(0% + 0.625rem);
}

.small-offset-1 {
  margin-left: 8.33333333%;
}

.grid-margin-x > .small-offset-1 {
  margin-left: calc(8.33333333% + 0.625rem);
}

.small-offset-2 {
  margin-left: 16.66666667%;
}

.grid-margin-x > .small-offset-2 {
  margin-left: calc(16.66666667% + 0.625rem);
}

.small-offset-3 {
  margin-left: 25%;
}

.grid-margin-x > .small-offset-3 {
  margin-left: calc(25% + 0.625rem);
}

.small-offset-4 {
  margin-left: 33.33333333%;
}

.grid-margin-x > .small-offset-4 {
  margin-left: calc(33.33333333% + 0.625rem);
}

.small-offset-5 {
  margin-left: 41.66666667%;
}

.grid-margin-x > .small-offset-5 {
  margin-left: calc(41.66666667% + 0.625rem);
}

.small-offset-6 {
  margin-left: 50%;
}

.grid-margin-x > .small-offset-6 {
  margin-left: calc(50% + 0.625rem);
}

.small-offset-7 {
  margin-left: 58.33333333%;
}

.grid-margin-x > .small-offset-7 {
  margin-left: calc(58.33333333% + 0.625rem);
}

.small-offset-8 {
  margin-left: 66.66666667%;
}

.grid-margin-x > .small-offset-8 {
  margin-left: calc(66.66666667% + 0.625rem);
}

.small-offset-9 {
  margin-left: 75%;
}

.grid-margin-x > .small-offset-9 {
  margin-left: calc(75% + 0.625rem);
}

.small-offset-10 {
  margin-left: 83.33333333%;
}

.grid-margin-x > .small-offset-10 {
  margin-left: calc(83.33333333% + 0.625rem);
}

.small-offset-11 {
  margin-left: 91.66666667%;
}

.grid-margin-x > .small-offset-11 {
  margin-left: calc(91.66666667% + 0.625rem);
}

@media print, screen and (min-width: 47.5em) {
  .medium-offset-0 {
    margin-left: 0%;
  }

  .grid-margin-x > .medium-offset-0 {
    margin-left: calc(0% + 0.9375rem);
  }

  .medium-offset-1 {
    margin-left: 8.33333333%;
  }

  .grid-margin-x > .medium-offset-1 {
    margin-left: calc(8.33333333% + 0.9375rem);
  }

  .medium-offset-2 {
    margin-left: 16.66666667%;
  }

  .grid-margin-x > .medium-offset-2 {
    margin-left: calc(16.66666667% + 0.9375rem);
  }

  .medium-offset-3 {
    margin-left: 25%;
  }

  .grid-margin-x > .medium-offset-3 {
    margin-left: calc(25% + 0.9375rem);
  }

  .medium-offset-4 {
    margin-left: 33.33333333%;
  }

  .grid-margin-x > .medium-offset-4 {
    margin-left: calc(33.33333333% + 0.9375rem);
  }

  .medium-offset-5 {
    margin-left: 41.66666667%;
  }

  .grid-margin-x > .medium-offset-5 {
    margin-left: calc(41.66666667% + 0.9375rem);
  }

  .medium-offset-6 {
    margin-left: 50%;
  }

  .grid-margin-x > .medium-offset-6 {
    margin-left: calc(50% + 0.9375rem);
  }

  .medium-offset-7 {
    margin-left: 58.33333333%;
  }

  .grid-margin-x > .medium-offset-7 {
    margin-left: calc(58.33333333% + 0.9375rem);
  }

  .medium-offset-8 {
    margin-left: 66.66666667%;
  }

  .grid-margin-x > .medium-offset-8 {
    margin-left: calc(66.66666667% + 0.9375rem);
  }

  .medium-offset-9 {
    margin-left: 75%;
  }

  .grid-margin-x > .medium-offset-9 {
    margin-left: calc(75% + 0.9375rem);
  }

  .medium-offset-10 {
    margin-left: 83.33333333%;
  }

  .grid-margin-x > .medium-offset-10 {
    margin-left: calc(83.33333333% + 0.9375rem);
  }

  .medium-offset-11 {
    margin-left: 91.66666667%;
  }

  .grid-margin-x > .medium-offset-11 {
    margin-left: calc(91.66666667% + 0.9375rem);
  }
}

@media print, screen and (min-width: 62.5em) {
  .large-offset-0 {
    margin-left: 0%;
  }

  .grid-margin-x > .large-offset-0 {
    margin-left: calc(0% + 0.9375rem);
  }

  .large-offset-1 {
    margin-left: 8.33333333%;
  }

  .grid-margin-x > .large-offset-1 {
    margin-left: calc(8.33333333% + 0.9375rem);
  }

  .large-offset-2 {
    margin-left: 16.66666667%;
  }

  .grid-margin-x > .large-offset-2 {
    margin-left: calc(16.66666667% + 0.9375rem);
  }

  .large-offset-3 {
    margin-left: 25%;
  }

  .grid-margin-x > .large-offset-3 {
    margin-left: calc(25% + 0.9375rem);
  }

  .large-offset-4 {
    margin-left: 33.33333333%;
  }

  .grid-margin-x > .large-offset-4 {
    margin-left: calc(33.33333333% + 0.9375rem);
  }

  .large-offset-5 {
    margin-left: 41.66666667%;
  }

  .grid-margin-x > .large-offset-5 {
    margin-left: calc(41.66666667% + 0.9375rem);
  }

  .large-offset-6 {
    margin-left: 50%;
  }

  .grid-margin-x > .large-offset-6 {
    margin-left: calc(50% + 0.9375rem);
  }

  .large-offset-7 {
    margin-left: 58.33333333%;
  }

  .grid-margin-x > .large-offset-7 {
    margin-left: calc(58.33333333% + 0.9375rem);
  }

  .large-offset-8 {
    margin-left: 66.66666667%;
  }

  .grid-margin-x > .large-offset-8 {
    margin-left: calc(66.66666667% + 0.9375rem);
  }

  .large-offset-9 {
    margin-left: 75%;
  }

  .grid-margin-x > .large-offset-9 {
    margin-left: calc(75% + 0.9375rem);
  }

  .large-offset-10 {
    margin-left: 83.33333333%;
  }

  .grid-margin-x > .large-offset-10 {
    margin-left: calc(83.33333333% + 0.9375rem);
  }

  .large-offset-11 {
    margin-left: 91.66666667%;
  }

  .grid-margin-x > .large-offset-11 {
    margin-left: calc(91.66666667% + 0.9375rem);
  }
}

@media print, screen and (min-width: 75em) {
  .xlarge-offset-0 {
    margin-left: 0%;
  }

  .grid-margin-x > .xlarge-offset-0 {
    margin-left: calc(0% + 0.9375rem);
  }

  .xlarge-offset-1 {
    margin-left: 8.33333333%;
  }

  .grid-margin-x > .xlarge-offset-1 {
    margin-left: calc(8.33333333% + 0.9375rem);
  }

  .xlarge-offset-2 {
    margin-left: 16.66666667%;
  }

  .grid-margin-x > .xlarge-offset-2 {
    margin-left: calc(16.66666667% + 0.9375rem);
  }

  .xlarge-offset-3 {
    margin-left: 25%;
  }

  .grid-margin-x > .xlarge-offset-3 {
    margin-left: calc(25% + 0.9375rem);
  }

  .xlarge-offset-4 {
    margin-left: 33.33333333%;
  }

  .grid-margin-x > .xlarge-offset-4 {
    margin-left: calc(33.33333333% + 0.9375rem);
  }

  .xlarge-offset-5 {
    margin-left: 41.66666667%;
  }

  .grid-margin-x > .xlarge-offset-5 {
    margin-left: calc(41.66666667% + 0.9375rem);
  }

  .xlarge-offset-6 {
    margin-left: 50%;
  }

  .grid-margin-x > .xlarge-offset-6 {
    margin-left: calc(50% + 0.9375rem);
  }

  .xlarge-offset-7 {
    margin-left: 58.33333333%;
  }

  .grid-margin-x > .xlarge-offset-7 {
    margin-left: calc(58.33333333% + 0.9375rem);
  }

  .xlarge-offset-8 {
    margin-left: 66.66666667%;
  }

  .grid-margin-x > .xlarge-offset-8 {
    margin-left: calc(66.66666667% + 0.9375rem);
  }

  .xlarge-offset-9 {
    margin-left: 75%;
  }

  .grid-margin-x > .xlarge-offset-9 {
    margin-left: calc(75% + 0.9375rem);
  }

  .xlarge-offset-10 {
    margin-left: 83.33333333%;
  }

  .grid-margin-x > .xlarge-offset-10 {
    margin-left: calc(83.33333333% + 0.9375rem);
  }

  .xlarge-offset-11 {
    margin-left: 91.66666667%;
  }

  .grid-margin-x > .xlarge-offset-11 {
    margin-left: calc(91.66666667% + 0.9375rem);
  }
}

.hide {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

@media print, screen and (max-width: 47.49875em) {
  .hide-for-small-only {
    display: none !important;
  }
}

@media screen and (max-width: 0em), screen and (min-width: 47.5em) {
  .show-for-small-only {
    display: none !important;
  }
}

@media print, screen and (min-width: 47.5em) {
  .hide-for-medium {
    display: none !important;
  }
}

@media screen and (max-width: 47.49875em) {
  .show-for-medium {
    display: none !important;
  }
}

@media print, screen and (min-width: 47.5em) and (max-width: 62.49875em) {
  .hide-for-medium-only {
    display: none !important;
  }
}

@media screen and (max-width: 47.49875em), screen and (min-width: 62.5em) {
  .show-for-medium-only {
    display: none !important;
  }
}

@media print, screen and (min-width: 62.5em) {
  .hide-for-large {
    display: none !important;
  }
}

@media screen and (max-width: 62.49875em) {
  .show-for-large {
    display: none !important;
  }
}

@media print, screen and (min-width: 62.5em) and (max-width: 74.99875em) {
  .hide-for-large-only {
    display: none !important;
  }
}

@media screen and (max-width: 62.49875em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important;
  }
}

@media print, screen and (min-width: 75em) {
  .hide-for-xlarge {
    display: none !important;
  }
}

@media screen and (max-width: 74.99875em) {
  .show-for-xlarge {
    display: none !important;
  }
}

@media print, screen and (min-width: 75em) and (max-width: 93.74875em) {
  .hide-for-xlarge-only {
    display: none !important;
  }
}

@media screen and (max-width: 74.99875em), screen and (min-width: 93.75em) {
  .show-for-xlarge-only {
    display: none !important;
  }
}

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.show-on-focus:active,
.show-on-focus:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
}

.show-for-landscape,
.hide-for-portrait {
  display: block !important;
}

@media screen and (orientation: landscape) {
  .show-for-landscape,
  .hide-for-portrait {
    display: block !important;
  }
}

@media screen and (orientation: portrait) {
  .show-for-landscape,
  .hide-for-portrait {
    display: none !important;
  }
}

.hide-for-landscape,
.show-for-portrait {
  display: none !important;
}

@media screen and (orientation: landscape) {
  .hide-for-landscape,
  .show-for-portrait {
    display: none !important;
  }
}

@media screen and (orientation: portrait) {
  .hide-for-landscape,
  .show-for-portrait {
    display: block !important;
  }
}

.float-left {
  float: left !important;
}

.float-right {
  float: right !important;
}

.float-center {
  display: block;
  margin-right: auto;
  margin-left: auto;
}

.clearfix::before,
.clearfix::after {
  display: table;
  content: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.clearfix::after {
  clear: both;
}

.align-left {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.align-right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.align-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.align-justify {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.align-spaced {
  -ms-flex-pack: distribute;
      justify-content: space-around;
}

.align-left.vertical.menu > li > a {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.align-right.vertical.menu > li > a {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.align-center.vertical.menu > li > a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.align-top {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.align-self-top {
  -ms-flex-item-align: start;
      align-self: flex-start;
}

.align-bottom {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}

.align-self-bottom {
  -ms-flex-item-align: end;
      align-self: flex-end;
}

.align-middle {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.align-self-middle {
  -ms-flex-item-align: center;
      align-self: center;
}

.align-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.align-self-stretch {
  -ms-flex-item-align: stretch;
      align-self: stretch;
}

.align-center-middle {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-line-pack: center;
      align-content: center;
}

.small-order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.small-order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.small-order-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.small-order-4 {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4;
}

.small-order-5 {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
}

.small-order-6 {
  -webkit-box-ordinal-group: 7;
      -ms-flex-order: 6;
          order: 6;
}

@media print, screen and (min-width: 47.5em) {
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }

  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }

  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }

  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }

  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }

  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

@media print, screen and (min-width: 62.5em) {
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }

  .large-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }

  .large-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }

  .large-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }

  .large-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }

  .large-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

@media print, screen and (min-width: 75em) {
  .xlarge-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }

  .xlarge-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }

  .xlarge-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }

  .xlarge-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }

  .xlarge-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }

  .xlarge-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

.flex-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.flex-child-auto {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
}

.flex-child-grow {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
}

.flex-child-shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
}

.flex-dir-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.flex-dir-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

.flex-dir-column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.flex-dir-column-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}

@media print, screen and (min-width: 47.5em) {
  .medium-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }

  .medium-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }

  .medium-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }

  .medium-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }

  .medium-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }

  .medium-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }

  .medium-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .medium-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

@media print, screen and (min-width: 62.5em) {
  .large-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }

  .large-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }

  .large-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }

  .large-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }

  .large-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }

  .large-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }

  .large-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .large-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

@media print, screen and (min-width: 75em) {
  .xlarge-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }

  .xlarge-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }

  .xlarge-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }

  .xlarge-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }

  .xlarge-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }

  .xlarge-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }

  .xlarge-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .xlarge-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

.is-invalid-input:not(:focus) {
  border-color: #cc4b37;
  background-color: #f9ecea;
}

.is-invalid-input:not(:focus)::-webkit-input-placeholder {
  color: #cc4b37;
}

.is-invalid-input:not(:focus)::-moz-placeholder {
  color: #cc4b37;
}

.is-invalid-input:not(:focus):-ms-input-placeholder {
  color: #cc4b37;
}

.is-invalid-input:not(:focus)::-ms-input-placeholder {
  color: #cc4b37;
}

.is-invalid-input:not(:focus)::placeholder {
  color: #cc4b37;
}

.is-invalid-label {
  color: #cc4b37;
}

.form-error,
.stripe-card-errors {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #cc4b37;
}

.form-error.is-visible,
.is-visible.stripe-card-errors {
  display: block;
}

.button-toggle-group::after,
.button-toggle-group::before {
  content: ' ';
  display: table;
}

.button-toggle-group::after {
  clear: both;
}

.no-wrap {
  white-space: nowrap;
}

@font-face {
  font-display: swap;
  font-family: 'sf-regular';
  font-style: normal;
  font-weight: normal;
  src: url("/assets/fonts/stateface/stateface-regular-webfont.woff") format("woff");
}

.state-face.sf-replace {
  display: inline-block;
  min-width: 1em;
  position: relative;
  text-indent: -999em;
}

.state-face.sf-replace::before {
  left: 0;
  position: absolute;
  text-indent: 0;
  top: 0;
}

.state-face::before {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: inline-block;
  font-family: 'sf-regular';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  margin-right: 5px;
  speak: none;
  text-decoration: inherit;
  text-rendering: optimizeLegibility;
  text-transform: none;
  vertical-align: middle;
}

.sf-al::before {
  content: "B";
}

.sf-ak::before {
  content: "A";
}

.sf-az::before {
  content: "D";
}

.sf-ar::before {
  content: "C";
}

.sf-ca::before {
  content: "E";
}

.sf-co::before {
  content: "F";
}

.sf-ct::before {
  content: "G";
}

.sf-de::before {
  content: "H";
}

.sf-fl::before {
  content: "I";
}

.sf-ga::before {
  content: "J";
}

.sf-hi::before {
  content: "K";
}

.sf-id::before {
  content: "M";
}

.sf-il::before {
  content: "N";
}

.sf-in::before {
  content: "O";
}

.sf-ia::before {
  content: "L";
}

.sf-ks::before {
  content: "P";
}

.sf-ky::before {
  content: "Q";
}

.sf-la::before {
  content: "R";
}

.sf-me::before {
  content: "U";
}

.sf-md::before {
  content: "T";
}

.sf-ma::before {
  content: "S";
}

.sf-mi::before {
  content: "V";
}

.sf-mn::before {
  content: "W";
}

.sf-ms::before {
  content: "Y";
}

.sf-mo::before {
  content: "X";
}

.sf-mt::before {
  content: "Z";
}

.sf-ne::before {
  content: "c";
}

.sf-nv::before {
  content: "g";
}

.sf-nh::before {
  content: "d";
}

.sf-nj::before {
  content: "e";
}

.sf-nm::before {
  content: "f";
}

.sf-ny::before {
  content: "h";
}

.sf-nc::before {
  content: "a";
}

.sf-nd::before {
  content: "b";
}

.sf-oh::before {
  content: "i";
}

.sf-ok::before {
  content: "j";
}

.sf-or::before {
  content: "k";
}

.sf-pa::before {
  content: "l";
}

.sf-ri::before {
  content: "m";
}

.sf-sc::before {
  content: "n";
}

.sf-sd::before {
  content: "o";
}

.sf-tn::before {
  content: "p";
}

.sf-tx::before {
  content: "q";
}

.sf-ut::before {
  content: "r";
}

.sf-vt::before {
  content: "t";
}

.sf-va::before {
  content: "s";
}

.sf-wa::before {
  content: "u";
}

.sf-wv::before {
  content: "w";
}

.sf-wi::before {
  content: "v";
}

.sf-wy::before {
  content: "x";
}

.sf-dc::before {
  content: "y";
}

.sf-pr::before {
  content: "3";
}

.sf-gu::before {
  content: "4";
}

.sf-usa::before {
  content: "z";
}

.m-xxs {
  margin: 0.5rem;
}

.p-xxs {
  padding: 0.5rem;
}

.m-t-xxs {
  margin-top: 0.5rem;
}

.p-t-xxs {
  padding-top: 0.5rem;
}

.m-r-xxs {
  margin-right: 0.5rem;
}

.p-r-xxs {
  padding-right: 0.5rem;
}

.m-b-xxs {
  margin-bottom: 0.5rem;
}

.p-b-xxs {
  padding-bottom: 0.5rem;
}

.m-l-xxs {
  margin-left: 0.5rem;
}

.p-l-xxs {
  padding-left: 0.5rem;
}

.m-xs {
  margin: 0.75rem;
}

.p-xs {
  padding: 0.75rem;
}

.m-t-xs {
  margin-top: 0.75rem;
}

.p-t-xs {
  padding-top: 0.75rem;
}

.m-r-xs {
  margin-right: 0.75rem;
}

.p-r-xs {
  padding-right: 0.75rem;
}

.m-b-xs {
  margin-bottom: 0.75rem;
}

.p-b-xs {
  padding-bottom: 0.75rem;
}

.m-l-xs {
  margin-left: 0.75rem;
}

.p-l-xs {
  padding-left: 0.75rem;
}

.m-s {
  margin: 1rem;
}

.p-s {
  padding: 1rem;
}

.m-t-s {
  margin-top: 1rem;
}

.p-t-s {
  padding-top: 1rem;
}

.m-r-s {
  margin-right: 1rem;
}

.p-r-s {
  padding-right: 1rem;
}

.m-b-s {
  margin-bottom: 1rem;
}

.p-b-s {
  padding-bottom: 1rem;
}

.m-l-s {
  margin-left: 1rem;
}

.p-l-s {
  padding-left: 1rem;
}

.m-m {
  margin: 1.25rem;
}

.p-m {
  padding: 1.25rem;
}

.m-t-m {
  margin-top: 1.25rem;
}

.p-t-m {
  padding-top: 1.25rem;
}

.m-r-m {
  margin-right: 1.25rem;
}

.p-r-m {
  padding-right: 1.25rem;
}

.m-b-m {
  margin-bottom: 1.25rem;
}

.p-b-m {
  padding-bottom: 1.25rem;
}

.m-l-m {
  margin-left: 1.25rem;
}

.p-l-m {
  padding-left: 1.25rem;
}

.m-l {
  margin: 1.5rem;
}

.p-l {
  padding: 1.5rem;
}

.m-t-l {
  margin-top: 1.5rem;
}

.p-t-l {
  padding-top: 1.5rem;
}

.m-r-l {
  margin-right: 1.5rem;
}

.p-r-l {
  padding-right: 1.5rem;
}

.m-b-l {
  margin-bottom: 1.5rem;
}

.p-b-l {
  padding-bottom: 1.5rem;
}

.m-l-l {
  margin-left: 1.5rem;
}

.p-l-l {
  padding-left: 1.5rem;
}

.m-xl {
  margin: 1.75rem;
}

.p-xl {
  padding: 1.75rem;
}

.m-t-xl {
  margin-top: 1.75rem;
}

.p-t-xl {
  padding-top: 1.75rem;
}

.m-r-xl {
  margin-right: 1.75rem;
}

.p-r-xl {
  padding-right: 1.75rem;
}

.m-b-xl {
  margin-bottom: 1.75rem;
}

.p-b-xl {
  padding-bottom: 1.75rem;
}

.m-l-xl {
  margin-left: 1.75rem;
}

.p-l-xl {
  padding-left: 1.75rem;
}

.m-xxl {
  margin: 2rem;
}

.p-xxl {
  padding: 2rem;
}

.m-t-xxl {
  margin-top: 2rem;
}

.p-t-xxl {
  padding-top: 2rem;
}

.m-r-xxl {
  margin-right: 2rem;
}

.p-r-xxl {
  padding-right: 2rem;
}

.m-b-xxl {
  margin-bottom: 2rem;
}

.p-b-xxl {
  padding-bottom: 2rem;
}

.m-l-xxl {
  margin-left: 2rem;
}

.p-l-xxl {
  padding-left: 2rem;
}

.m-t-n {
  margin-top: 0;
}

.p-t-n {
  padding-top: 0;
}

.m-r-n {
  margin-right: 0;
}

.p-r-n {
  padding-right: 0;
}

.m-b-n {
  margin-bottom: 0;
}

.p-b-n {
  padding-bottom: 0;
}

.m-l-n {
  margin-left: 0;
}

.p-l-n {
  padding-left: 0;
}

.m-n {
  margin: 0;
}

.p-n {
  padding: 0;
}

main {
  padding: 4rem 0 2rem;
}

@media (min-width: 500px) {
  main {
    padding: 1.75rem 0;
  }
}

.page-feature-index main {
  padding-top: 0;
}

.page-article main {
  padding-top: 0;
}

.section-heading {
  padding: .5rem 0 1.5rem;
}

.section-heading .section-heading-text {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
  margin-top: 0;
}

.section-heading p {
  color: #757575;
  font-size: 1.25rem;
  line-height: 1.5;
}

.page-section {
  background: #fff;
  padding: 1rem 0;
}

.page-section.no-padding-bottom {
  padding-bottom: 0;
}

.page-section.no-padding-top {
  padding-top: 0;
}

.page-feature-index .page-section {
  padding-top: 3.5rem;
}

.page-section.page-section-large {
  padding: 3rem 0;
}

.gray-page-section {
  background: #f6f7f9;
  -webkit-box-shadow: inset 0 2px 3px -2px rgba(153, 153, 153, 0.5), inset 0 -2px 3px -2px rgba(153, 153, 153, 0.5);
          box-shadow: inset 0 2px 3px -2px rgba(153, 153, 153, 0.5), inset 0 -2px 3px -2px rgba(153, 153, 153, 0.5);
  padding: 1.5rem 0;
}

.page-feature-index .gray-page-section {
  padding-top: 3.5rem;
}

.page-section-color {
  background: #00b8e6;
}

.page-section-dark {
  background: #6b7076;
}

.call-demo-cta {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  border-bottom: 10px solid #0092cc;
  color: #fff;
  font-size: 1.5rem;
  line-height: 1;
  text-align: center;
}

.call-demo-cta.call-demo-cta-no-border {
  border-bottom: 0;
}

.call-demo-cta a {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  border-bottom: 0;
  color: #fff;
  text-decoration: none;
}

.call-demo-cta p {
  font-size: 1.5rem;
  margin: 0;
}

.call-demo-cta span {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  border-bottom: 2px solid #fff;
  display: inline-block;
  margin-top: .75rem;
}

@media print, screen and (min-width: 47.5em) {
  .call-demo-cta span {
    display: inline-block;
    margin: 0;
  }
}

.touchevents .call-demo-cta span {
  border-bottom: 2px solid #fff;
}

.feature-section {
  background: url("/assets/images/parallax.jpg");
  background-attachment: fixed;
  background-position: center bottom;
  background-size: cover;
  position: relative;
}

.touchevents .feature-section {
  background-attachment: scroll;
}

.feature-section .section-heading p {
  color: #262626;
}

.feature-section::before {
  background: rgba(232, 235, 238, 0.95);
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

.feature-section .grid-container {
  position: relative;
  z-index: 10;
}

.feature-phone {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  z-index: 10;
}

.phone-container {
  position: relative;
  -webkit-transform: scale(1.25);
          transform: scale(1.25);
}

.phone-container img {
  width: 100%;
}

.phone-container .screen-overlay {
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.home-recommended-phone-number-container {
  position: relative;
  top: -4rem;
  z-index: 10;
}

@media print, screen and (min-width: 62.5em) {
  .home-recommended-phone-number-container {
    top: -3rem;
  }
}

.recommend-number {
  background: #fff;
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
          box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  padding: 1rem;
  position: relative;
}

.recommend-number.recommend-numbers-list {
  bottom: auto;
  margin: 0 0 1rem;
}

.recommend-number.recommend-numbers-list:last-of-type {
  margin-bottom: 0;
}

.recommend-number .recommend-number-locality {
  color: #757575;
  display: block;
  font-size: .75rem;
  text-transform: uppercase;
}

.recommend-number p {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  margin: 0;
}

.recommend-number p strong {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
}

.recommend-number .button {
  margin-top: 1rem;
  width: 100%;
}

@media print, screen and (min-width: 47.5em) {
  .recommend-number .button {
    width: auto;
  }
}

@media print, screen and (min-width: 62.5em) {
  .recommend-number .button {
    margin-top: 0;
    padding: 1rem;
  }
}

.recommend-number .refresh-button {
  color: #757575;
  cursor: pointer;
  display: inline-block;
  font-weight: 300;
  margin-left: .5rem;
}

.recommend-number .cta-buttons {
  width: 100%;
}

@media print, screen and (min-width: 62.5em) {
  .recommend-number .cta-buttons {
    width: auto;
  }
}

.recommend-number .cta-buttons form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.recommend-number .cta-buttons .button,
.recommend-number .cta-buttons button {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  margin: 1rem .5rem 0;
  padding: 1rem .75rem;
  white-space: nowrap;
  width: auto;
}

@media print, screen and (min-width: 62.5em) {
  .recommend-number .cta-buttons .button,
  .recommend-number .cta-buttons button {
    margin: .125rem 0 0 1rem;
  }
}

@-webkit-keyframes phone-shake {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }

  25% {
    -webkit-transform: rotate(1deg);
            transform: rotate(1deg);
  }

  50% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }

  75% {
    -webkit-transform: rotate(-1deg);
            transform: rotate(-1deg);
  }

  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}

@keyframes phone-shake {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }

  25% {
    -webkit-transform: rotate(1deg);
            transform: rotate(1deg);
  }

  50% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }

  75% {
    -webkit-transform: rotate(-1deg);
            transform: rotate(-1deg);
  }

  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}

@-webkit-keyframes show-image {
  0% {
    opacity: 0;
  }

  99% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes show-image {
  0% {
    opacity: 0;
  }

  99% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.phone-shake .phone-container {
  -webkit-animation: phone-shake .175s .75s 15 ease-in-out;
          animation: phone-shake .175s .75s 15 ease-in-out;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.phone-shake .phone-container .screen-overlay {
  -webkit-animation: show-image .75s linear;
          animation: show-image .75s linear;
}

.menu-overlay {
  background: rgba(38, 38, 38, 0.125);
  display: none;
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 10;
}

.menu-overlay.show-overlay {
  display: block;
}

@media print, screen and (min-width: 47.5em) {
  .menu-overlay.show-overlay {
    display: none;
  }
}

@media print, screen and (min-width: 47.5em) {
  .menu-overlay {
    display: none;
  }
}

.state-page-section {
  position: relative;
}

.state-page-section .state-icon {
  left: 0;
  position: absolute;
  text-align: center;
  top: -2rem;
  width: 100%;
  z-index: -1;
}

.state-page-section .state-icon::before {
  color: #e8ebee;
  font-size: 16rem;
  line-height: 1;
  margin: 0;
}

@media print, screen and (min-width: 47.5em) {
  .state-page-section .state-icon::before {
    font-size: 20rem;
  }
}

.star-rating {
  background: #0092cc;
  -webkit-box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
          box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
  margin: 0 0 1rem;
  padding: .5rem .25rem;
  text-align: center;
}

.star-rating p {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  color: #ccfdff;
  display: block;
  font-size: .9375rem;
  line-height: 1;
  margin: 0 0 .25rem;
}

@media print, screen and (min-width: 47.5em) {
  .star-rating p {
    display: inline-block;
    margin: 0 .5rem 0 0;
  }
}

.star-rating i,
.star-rating svg {
  color: #ffc700;
  font-size: .875rem;
}

.industry-use-cases h3 {
  background: #f6f7f9;
  border-radius: 5px;
  display: inline-block;
  margin-top: 0;
  padding: .5rem;
}

.industry-use-cases img {
  border-radius: 8px;
  -webkit-box-shadow: 0 0 8px #b3bdc7;
          box-shadow: 0 0 8px #b3bdc7;
  margin-bottom: 1rem;
}

@media print, screen and (min-width: 47.5em) {
  .industry-use-cases img {
    margin-bottom: 0;
  }
}

@media print, screen and (min-width: 47.5em) {
  .industry-use-cases .use-case-image {
    border-right: 1px dashed #e8ebee;
    padding-right: 2rem;
  }
}

.industry-use-cases .grid-x {
  border-bottom: 1px dashed #b3bdc7;
  margin-bottom: 3rem;
  padding-bottom: 3rem;
}

.industry-use-cases .grid-x:last-of-type {
  border-bottom: 0;
}

@media print, screen and (min-width: 47.5em) {
  .industry-use-cases .grid-x:nth-of-type(even) .use-case-image {
    border-left: 1px dashed #e8ebee;
    border-right: 0;
    padding-left: 2rem;
    padding-right: 0;
  }
}

.benefits-list-item {
  padding-bottom: 2rem;
}

.benefits-list-item h3 {
  margin-top: 0;
  position: relative;
}

.benefits-list-item .heading-number-list {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #00b8e6;
  border-radius: 100px;
  -webkit-box-shadow: 0 1px 4px 1px rgba(85, 85, 85, 0.5);
          box-shadow: 0 1px 4px 1px rgba(85, 85, 85, 0.5);
  color: #fff;
  display: inline-block;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  font-weight: 400;
  height: 50px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  left: -60px;
  position: absolute;
  text-align: center;
  top: -10px;
  width: 50px;
}

@media print, screen and (min-width: 47.5em) {
  .benefits-list-item .heading-number-list {
    left: -70px;
  }
}

.benefits-list-item:nth-of-type(1) .heading-number-list {
  background: #24d3ff;
}

.benefits-list-item:nth-of-type(2) .heading-number-list {
  background: #14d0ff;
}

.benefits-list-item:nth-of-type(3) .heading-number-list {
  background: #05cdff;
}

.benefits-list-item:nth-of-type(4) .heading-number-list {
  background: #00c4f5;
}

.benefits-list-item:nth-of-type(5) .heading-number-list {
  background: #00b8e6;
}

.benefits-list-item:nth-of-type(6) .heading-number-list {
  background: #00abd6;
}

.benefits-list-item:nth-of-type(7) .heading-number-list {
  background: #009fc7;
}

.benefits-list-item:nth-of-type(8) .heading-number-list {
  background: #0093b8;
}

.benefits-list-item:nth-of-type(9) .heading-number-list {
  background: #0087a8;
}

.benefits-list-item:nth-of-type(10) .heading-number-list {
  background: #007a99;
}

.equal-height-cells .cell {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.page-header-articles {
  background-color: #e8ebee;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 400px;
  position: relative;
}

@media print, screen and (min-width: 47.5em) {
  .page-header-articles {
    height: 500px;
  }
}

@media print, screen and (min-width: 62.5em) {
  .page-header-articles {
    height: 600px;
  }
}

@media (min-height: 1225px) {
  .page-header-articles {
    height: 650px;
  }
}

.page-header-articles.page-header-article-no-image {
  height: 400px;
}

.page-header-articles img {
  display: block;
  margin: 0 auto;
  max-width: 1500px;
  width: 100%;
}

.page-header-articles .page-header-title {
  background: rgba(38, 38, 38, 0.75);
  bottom: 0;
  left: 0;
  padding: 2rem 0;
  position: absolute;
  width: 100%;
}

.page-header-articles .page-header-title h1 {
  color: #fff;
}

.page-header-articles .page-header-title p {
  color: #e8ebee;
  margin-bottom: 0;
}

.page-header-articles .page-header-breadcrumbs {
  background: #0092cc;
  left: 0;
  padding: .25rem 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.page-header-articles .page-header-breadcrumbs .grid-container {
  max-width: 93.75rem;
}

.page-header-articles .page-header-breadcrumbs a,
.page-header-articles .page-header-breadcrumbs li,
.page-header-articles .page-header-breadcrumbs svg {
  color: #fff;
  text-decoration: none;
}

.page-header-articles .page-header-breadcrumbs .breadcrumbs {
  margin-bottom: 0;
  padding-bottom: 0;
}

.page-header-articles .page-header-breadcrumbs .breadcrumbs a {
  border: 0;
}

.page-header-articles .page-header-breadcrumbs .breadcrumbs a:hover {
  border: 0;
  color: #fff;
}

.responsive-video {
  padding-bottom: 56.25%;
  padding-top: 25px;
  position: relative;
  width: 100%;
}

.responsive-video.video-show-image-first {
  display: none;
}

.responsive-video iframe {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.fancy-video {
  border: 3px solid #d9dee3;
  border-radius: 5px;
  -webkit-box-shadow: 0 1px 3px #6b7076;
          box-shadow: 0 1px 3px #6b7076;
}

.content-cell > :first-child {
  margin-top: 0;
}

.content-cell.content-cell-intro {
  padding: 1rem;
}

.content-cell.content-cell-intro p {
  font-size: 1.25rem;
  line-height: 1.5;
}

.no-touchevents .link-group-toggle .card.arrow-card:focus .card-arrow,
.no-touchevents .link-group-toggle .card.arrow-card:hover .card-arrow {
  right: .875rem;
}

.link-group-toggle .card.arrow-card .card-arrow {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  line-height: 1;
}

.link-group-toggle .card.arrow-card .card-arrow.rotate {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

@media print, screen and (min-width: 47.5em) {
  .link-group-toggle {
    display: none;
  }
}

@media print, screen and (max-width: 47.49875em) {
  .link-group-toggle-links {
    background: #f6f7f9;
    display: none;
    border: 1px solid #d9dee3;
    border-radius: 5px;
  }

  .link-group-toggle-links .cell {
    padding: .5rem .75rem;
  }

  .link-group-toggle-links .cell:first-of-type {
    padding-top: 1rem;
  }

  .link-group-toggle-links .cell:last-of-type {
    padding-top: 1rem;
  }
}

@media print, screen and (min-width: 47.5em) {
  .link-group-toggle-links .grid-x {
    display: block !important;
    -webkit-column-count: 2;
       -moz-column-count: 2;
            column-count: 2;
    width: 100%;
  }

  .link-group-toggle-links .grid-x .cell {
    margin-bottom: .75rem;
    width: 100%;
  }
}

@media print, screen and (min-width: 62.5em) {
  .link-group-toggle-links .grid-x {
    -webkit-column-count: 3;
       -moz-column-count: 3;
            column-count: 3;
  }
}

@media (min-width: 1100px) {
  .link-group-toggle-links .grid-x {
    -webkit-column-count: 4;
       -moz-column-count: 4;
            column-count: 4;
  }
}

.problem-solution {
  background: #fff;
  border-radius: 5px;
  -webkit-box-shadow: 0 0 2px rgba(117, 117, 117, 0.5);
          box-shadow: 0 0 2px rgba(117, 117, 117, 0.5);
  border-top: 5px solid #00b8e6;
  margin-bottom: 1.5rem;
  padding: 1.5rem;
}

.problem-solution p {
  margin: 0 0 1rem;
}

.problem-solution :last-child {
  margin-bottom: 0;
}

.problem-solution:last-of-type {
  margin-bottom: 0;
}

.remove-website-button {
  color: #a20202;
  cursor: pointer;
  font-size: .875rem;
  position: relative;
  text-transform: uppercase;
}

.height-spacer {
  height: 100px;
}

.social-media-link {
  background: #eee;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-size: 1rem;
  height: 32px;
  margin: 0 1rem 1rem 0;
  padding: .5rem 0 0;
  position: relative;
  text-align: center;
  width: 32px;
}

.social-media-link i,
.social-media-link svg {
  font-size: 1rem;
}

.social-media-link i::before,
.social-media-link svg::before {
  text-shadow: 0 0 1px #888;
}

.social-media-link.behance {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #053eff;
}

.social-media-link.behance:active,
.social-media-link.behance:focus,
.social-media-link.behance:hover {
  background: #0030d1;
}

.social-media-link.codepen {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #212121;
}

.social-media-link.codepen:active,
.social-media-link.codepen:focus,
.social-media-link.codepen:hover {
  background: #080808;
}

.social-media-link.deviantart {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #4a5d4e;
}

.social-media-link.deviantart:active,
.social-media-link.deviantart:focus,
.social-media-link.deviantart:hover {
  background: #334136;
}

.social-media-link.digg {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #005be2;
}

.social-media-link.digg:active,
.social-media-link.digg:focus,
.social-media-link.digg:hover {
  background: #0046af;
}

.social-media-link.dribbble {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #ea4c89;
}

.social-media-link.dribbble:active,
.social-media-link.dribbble:focus,
.social-media-link.dribbble:hover {
  background: #e51e6b;
}

.social-media-link.dropbox {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #007ee5;
}

.social-media-link.dropbox:active,
.social-media-link.dropbox:focus,
.social-media-link.dropbox:hover {
  background: #0062b2;
}

.social-media-link.facebook {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #3b5998;
}

.social-media-link.facebook:active,
.social-media-link.facebook:focus,
.social-media-link.facebook:hover {
  background: #2d4373;
}

.social-media-link.flickr {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #f40083;
}

.social-media-link.flickr:active,
.social-media-link.flickr:focus,
.social-media-link.flickr:hover {
  background: #c10068;
}

.social-media-link.foursquare {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #fc4575;
}

.social-media-link.foursquare:active,
.social-media-link.foursquare:focus,
.social-media-link.foursquare:hover {
  background: #fb1350;
}

.social-media-link.github {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #333;
}

.social-media-link.github:active,
.social-media-link.github:focus,
.social-media-link.github:hover {
  background: #1a1919;
}

.social-media-link.google-plus {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #df4a32;
}

.social-media-link.google-plus:active,
.social-media-link.google-plus:focus,
.social-media-link.google-plus:hover {
  background: #c0341e;
}

.social-media-link.instagram {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #c32aa3;
}

.social-media-link.instagram:active,
.social-media-link.instagram:focus,
.social-media-link.instagram:hover {
  background: #992180;
}

.social-media-link.linkedin {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #007bb6;
}

.social-media-link.linkedin:active,
.social-media-link.linkedin:focus,
.social-media-link.linkedin:hover {
  background: #005983;
}

.social-media-link.medium {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #00ab6c;
}

.social-media-link.medium:active,
.social-media-link.medium:focus,
.social-media-link.medium:hover {
  background: #00784c;
}

.social-media-link.pinterest {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #cb2027;
}

.social-media-link.pinterest:active,
.social-media-link.pinterest:focus,
.social-media-link.pinterest:hover {
  background: #9f191f;
}

.social-media-link.get-pocket {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #ee4056;
}

.social-media-link.get-pocket:active,
.social-media-link.get-pocket:focus,
.social-media-link.get-pocket:hover {
  background: #e6152f;
}

.social-media-link.reddit-alien {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #ff5700;
}

.social-media-link.reddit-alien:active,
.social-media-link.reddit-alien:focus,
.social-media-link.reddit-alien:hover {
  background: #cc4600;
}

.social-media-link.skype {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #00aff0;
}

.social-media-link.skype:active,
.social-media-link.skype:focus,
.social-media-link.skype:hover {
  background: #008abd;
}

.social-media-link.slideshare {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #f7941e;
}

.social-media-link.slideshare:active,
.social-media-link.slideshare:focus,
.social-media-link.slideshare:hover {
  background: #da7a08;
}

.social-media-link.snapchat-ghost {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #fffc00;
}

.social-media-link.snapchat-ghost:active,
.social-media-link.snapchat-ghost:focus,
.social-media-link.snapchat-ghost:hover {
  background: #ccca00;
}

.social-media-link.stumbleupon {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #eb4924;
}

.social-media-link.stumbleupon:active,
.social-media-link.stumbleupon:focus,
.social-media-link.stumbleupon:hover {
  background: #ca3412;
}

.social-media-link.spotify {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #1ed760;
}

.social-media-link.spotify:active,
.social-media-link.spotify:focus,
.social-media-link.spotify:hover {
  background: #18aa4c;
}

.social-media-link.soundcloud {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #f50;
}

.social-media-link.soundcloud:active,
.social-media-link.soundcloud:focus,
.social-media-link.soundcloud:hover {
  background: #cc4400;
}

.social-media-link.tumblr {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #35465d;
}

.social-media-link.tumblr:active,
.social-media-link.tumblr:focus,
.social-media-link.tumblr:hover {
  background: #222e3d;
}

.social-media-link.twitter {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #00b6f1;
}

.social-media-link.twitter:active,
.social-media-link.twitter:focus,
.social-media-link.twitter:hover {
  background: #008fbe;
}

.social-media-link.twitch {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #6441a4;
}

.social-media-link.twitch:active,
.social-media-link.twitch:focus,
.social-media-link.twitch:hover {
  background: #4e337f;
}

.social-media-link.vine {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #00b489;
}

.social-media-link.vine:active,
.social-media-link.vine:focus,
.social-media-link.vine:hover {
  background: #008162;
}

.social-media-link.vimeo {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #aad450;
}

.social-media-link.vimeo:active,
.social-media-link.vimeo:focus,
.social-media-link.vimeo:hover {
  background: #93c130;
}

.social-media-link.vk {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #4c75a3;
}

.social-media-link.vk:active,
.social-media-link.vk:focus,
.social-media-link.vk:hover {
  background: #3c5c80;
}

.social-media-link.yelp {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #d32323;
}

.social-media-link.yelp:active,
.social-media-link.yelp:focus,
.social-media-link.yelp:hover {
  background: #a71c1c;
}

.social-media-link.youtube {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #b31217;
}

.social-media-link.youtube:active,
.social-media-link.youtube:focus,
.social-media-link.youtube:hover {
  background: #850d11;
}

.social-media-link.wordpress {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #21759b;
}

.social-media-link.wordpress:active,
.social-media-link.wordpress:focus,
.social-media-link.wordpress:hover {
  background: #185571;
}

.social-media-link.email {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #ffb330;
}

.social-media-link.email:active,
.social-media-link.email:focus,
.social-media-link.email:hover {
  background: #fc9f00;
}

.social-share-links {
  margin-top: 4rem;
  position: relative;
}

.social-share-links::after {
  background: #33d6ff;
  border-radius: 5px;
  content: '';
  display: inline-block;
  height: 5px;
  left: calc(50% - 50px);
  position: absolute;
  top: -1.5rem;
  width: 100px;
}

.social-share-links .social-share-headings {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 1rem;
  margin: 0;
  padding: 0;
  text-align: center;
  text-transform: uppercase;
}

.social-share-links ul {
  display: block;
  font-size: 0;
  margin: 1rem 0 0;
  padding: 0;
  text-align: center;
  width: 100%;
}

.social-share-links ul li {
  display: inline-block;
  margin: 0;
  padding: 0 .5rem;
}

@media (min-width: 375px) {
  .social-share-links ul li {
    padding: 0 .75rem;
  }
}

.social-share-links ul a {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #b3bdc7;
  border: 3px solid #fff;
  border-radius: 3rem;
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-size: 1.625rem;
  height: 3.5rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-decoration: none;
  width: 3.5rem;
}

.social-share-links ul a.social-media-link-behance {
  background: #053eff;
  -webkit-box-shadow: 0 0 0 3px #053eff;
          box-shadow: 0 0 0 3px #053eff;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-behance:active,
.social-share-links ul a.social-media-link-behance:focus,
.social-share-links ul a.social-media-link-behance:hover {
  background: #0030d1;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-codepen {
  background: #212121;
  -webkit-box-shadow: 0 0 0 3px #212121;
          box-shadow: 0 0 0 3px #212121;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-codepen:active,
.social-share-links ul a.social-media-link-codepen:focus,
.social-share-links ul a.social-media-link-codepen:hover {
  background: #080808;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-deviantart {
  background: #4a5d4e;
  -webkit-box-shadow: 0 0 0 3px #4a5d4e;
          box-shadow: 0 0 0 3px #4a5d4e;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-deviantart:active,
.social-share-links ul a.social-media-link-deviantart:focus,
.social-share-links ul a.social-media-link-deviantart:hover {
  background: #334136;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-digg {
  background: #005be2;
  -webkit-box-shadow: 0 0 0 3px #005be2;
          box-shadow: 0 0 0 3px #005be2;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-digg:active,
.social-share-links ul a.social-media-link-digg:focus,
.social-share-links ul a.social-media-link-digg:hover {
  background: #0046af;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-dribbble {
  background: #ea4c89;
  -webkit-box-shadow: 0 0 0 3px #ea4c89;
          box-shadow: 0 0 0 3px #ea4c89;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-dribbble:active,
.social-share-links ul a.social-media-link-dribbble:focus,
.social-share-links ul a.social-media-link-dribbble:hover {
  background: #e51e6b;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-dropbox {
  background: #007ee5;
  -webkit-box-shadow: 0 0 0 3px #007ee5;
          box-shadow: 0 0 0 3px #007ee5;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-dropbox:active,
.social-share-links ul a.social-media-link-dropbox:focus,
.social-share-links ul a.social-media-link-dropbox:hover {
  background: #0062b2;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-facebook {
  background: #3b5998;
  -webkit-box-shadow: 0 0 0 3px #3b5998;
          box-shadow: 0 0 0 3px #3b5998;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-facebook:active,
.social-share-links ul a.social-media-link-facebook:focus,
.social-share-links ul a.social-media-link-facebook:hover {
  background: #2d4373;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-flickr {
  background: #f40083;
  -webkit-box-shadow: 0 0 0 3px #f40083;
          box-shadow: 0 0 0 3px #f40083;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-flickr:active,
.social-share-links ul a.social-media-link-flickr:focus,
.social-share-links ul a.social-media-link-flickr:hover {
  background: #c10068;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-foursquare {
  background: #fc4575;
  -webkit-box-shadow: 0 0 0 3px #fc4575;
          box-shadow: 0 0 0 3px #fc4575;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-foursquare:active,
.social-share-links ul a.social-media-link-foursquare:focus,
.social-share-links ul a.social-media-link-foursquare:hover {
  background: #fb1350;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-github {
  background: #333;
  -webkit-box-shadow: 0 0 0 3px #333;
          box-shadow: 0 0 0 3px #333;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-github:active,
.social-share-links ul a.social-media-link-github:focus,
.social-share-links ul a.social-media-link-github:hover {
  background: #1a1919;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-google-plus {
  background: #df4a32;
  -webkit-box-shadow: 0 0 0 3px #df4a32;
          box-shadow: 0 0 0 3px #df4a32;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-google-plus:active,
.social-share-links ul a.social-media-link-google-plus:focus,
.social-share-links ul a.social-media-link-google-plus:hover {
  background: #c0341e;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-instagram {
  background: #c32aa3;
  -webkit-box-shadow: 0 0 0 3px #c32aa3;
          box-shadow: 0 0 0 3px #c32aa3;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-instagram:active,
.social-share-links ul a.social-media-link-instagram:focus,
.social-share-links ul a.social-media-link-instagram:hover {
  background: #992180;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-linkedin {
  background: #007bb6;
  -webkit-box-shadow: 0 0 0 3px #007bb6;
          box-shadow: 0 0 0 3px #007bb6;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-linkedin:active,
.social-share-links ul a.social-media-link-linkedin:focus,
.social-share-links ul a.social-media-link-linkedin:hover {
  background: #005983;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-medium {
  background: #00ab6c;
  -webkit-box-shadow: 0 0 0 3px #00ab6c;
          box-shadow: 0 0 0 3px #00ab6c;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-medium:active,
.social-share-links ul a.social-media-link-medium:focus,
.social-share-links ul a.social-media-link-medium:hover {
  background: #00784c;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-pinterest {
  background: #cb2027;
  -webkit-box-shadow: 0 0 0 3px #cb2027;
          box-shadow: 0 0 0 3px #cb2027;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-pinterest:active,
.social-share-links ul a.social-media-link-pinterest:focus,
.social-share-links ul a.social-media-link-pinterest:hover {
  background: #9f191f;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-get-pocket {
  background: #ee4056;
  -webkit-box-shadow: 0 0 0 3px #ee4056;
          box-shadow: 0 0 0 3px #ee4056;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-get-pocket:active,
.social-share-links ul a.social-media-link-get-pocket:focus,
.social-share-links ul a.social-media-link-get-pocket:hover {
  background: #e6152f;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-reddit-alien {
  background: #ff5700;
  -webkit-box-shadow: 0 0 0 3px #ff5700;
          box-shadow: 0 0 0 3px #ff5700;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-reddit-alien:active,
.social-share-links ul a.social-media-link-reddit-alien:focus,
.social-share-links ul a.social-media-link-reddit-alien:hover {
  background: #cc4600;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-skype {
  background: #00aff0;
  -webkit-box-shadow: 0 0 0 3px #00aff0;
          box-shadow: 0 0 0 3px #00aff0;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-skype:active,
.social-share-links ul a.social-media-link-skype:focus,
.social-share-links ul a.social-media-link-skype:hover {
  background: #008abd;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-slideshare {
  background: #f7941e;
  -webkit-box-shadow: 0 0 0 3px #f7941e;
          box-shadow: 0 0 0 3px #f7941e;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-slideshare:active,
.social-share-links ul a.social-media-link-slideshare:focus,
.social-share-links ul a.social-media-link-slideshare:hover {
  background: #da7a08;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-snapchat-ghost {
  background: #fffc00;
  -webkit-box-shadow: 0 0 0 3px #fffc00;
          box-shadow: 0 0 0 3px #fffc00;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-snapchat-ghost:active,
.social-share-links ul a.social-media-link-snapchat-ghost:focus,
.social-share-links ul a.social-media-link-snapchat-ghost:hover {
  background: #ccca00;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-stumbleupon {
  background: #eb4924;
  -webkit-box-shadow: 0 0 0 3px #eb4924;
          box-shadow: 0 0 0 3px #eb4924;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-stumbleupon:active,
.social-share-links ul a.social-media-link-stumbleupon:focus,
.social-share-links ul a.social-media-link-stumbleupon:hover {
  background: #ca3412;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-spotify {
  background: #1ed760;
  -webkit-box-shadow: 0 0 0 3px #1ed760;
          box-shadow: 0 0 0 3px #1ed760;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-spotify:active,
.social-share-links ul a.social-media-link-spotify:focus,
.social-share-links ul a.social-media-link-spotify:hover {
  background: #18aa4c;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-soundcloud {
  background: #f50;
  -webkit-box-shadow: 0 0 0 3px #f50;
          box-shadow: 0 0 0 3px #f50;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-soundcloud:active,
.social-share-links ul a.social-media-link-soundcloud:focus,
.social-share-links ul a.social-media-link-soundcloud:hover {
  background: #cc4400;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-tumblr {
  background: #35465d;
  -webkit-box-shadow: 0 0 0 3px #35465d;
          box-shadow: 0 0 0 3px #35465d;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-tumblr:active,
.social-share-links ul a.social-media-link-tumblr:focus,
.social-share-links ul a.social-media-link-tumblr:hover {
  background: #222e3d;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-twitter {
  background: #00b6f1;
  -webkit-box-shadow: 0 0 0 3px #00b6f1;
          box-shadow: 0 0 0 3px #00b6f1;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-twitter:active,
.social-share-links ul a.social-media-link-twitter:focus,
.social-share-links ul a.social-media-link-twitter:hover {
  background: #008fbe;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-twitch {
  background: #6441a4;
  -webkit-box-shadow: 0 0 0 3px #6441a4;
          box-shadow: 0 0 0 3px #6441a4;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-twitch:active,
.social-share-links ul a.social-media-link-twitch:focus,
.social-share-links ul a.social-media-link-twitch:hover {
  background: #4e337f;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-vine {
  background: #00b489;
  -webkit-box-shadow: 0 0 0 3px #00b489;
          box-shadow: 0 0 0 3px #00b489;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-vine:active,
.social-share-links ul a.social-media-link-vine:focus,
.social-share-links ul a.social-media-link-vine:hover {
  background: #008162;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-vimeo {
  background: #aad450;
  -webkit-box-shadow: 0 0 0 3px #aad450;
          box-shadow: 0 0 0 3px #aad450;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-vimeo:active,
.social-share-links ul a.social-media-link-vimeo:focus,
.social-share-links ul a.social-media-link-vimeo:hover {
  background: #93c130;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-vk {
  background: #4c75a3;
  -webkit-box-shadow: 0 0 0 3px #4c75a3;
          box-shadow: 0 0 0 3px #4c75a3;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-vk:active,
.social-share-links ul a.social-media-link-vk:focus,
.social-share-links ul a.social-media-link-vk:hover {
  background: #3c5c80;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-yelp {
  background: #d32323;
  -webkit-box-shadow: 0 0 0 3px #d32323;
          box-shadow: 0 0 0 3px #d32323;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-yelp:active,
.social-share-links ul a.social-media-link-yelp:focus,
.social-share-links ul a.social-media-link-yelp:hover {
  background: #a71c1c;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-youtube {
  background: #b31217;
  -webkit-box-shadow: 0 0 0 3px #b31217;
          box-shadow: 0 0 0 3px #b31217;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-youtube:active,
.social-share-links ul a.social-media-link-youtube:focus,
.social-share-links ul a.social-media-link-youtube:hover {
  background: #850d11;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-wordpress {
  background: #21759b;
  -webkit-box-shadow: 0 0 0 3px #21759b;
          box-shadow: 0 0 0 3px #21759b;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-wordpress:active,
.social-share-links ul a.social-media-link-wordpress:focus,
.social-share-links ul a.social-media-link-wordpress:hover {
  background: #185571;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.social-share-links ul a.social-media-link-email {
  background: #ffb330;
  -webkit-box-shadow: 0 0 0 3px #ffb330;
          box-shadow: 0 0 0 3px #ffb330;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.social-share-links ul a.social-media-link-email:active,
.social-share-links ul a.social-media-link-email:focus,
.social-share-links ul a.social-media-link-email:hover {
  background: #fc9f00;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.loading-spinner {
  -webkit-animation: spin 2.5s linear infinite;
          animation: spin 2.5s linear infinite;
  height: 100px;
  margin: 1rem auto;
  width: 100px;
}

.loading-spinner .shape {
  -webkit-animation: spinner 2.25s linear infinite;
          animation: spinner 2.25s linear infinite;
  fill: transparent;
  stroke: #02d909;
  stroke-dasharray: 100 260;
  stroke-dashoffset: 0;
  stroke-width: 3px;
}

.loading-spinner + h4 {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
}

@-webkit-keyframes spinner {
  0% {
    stroke-dasharray: 0 260;
  }

  50% {
    stroke-dasharray: 260 260;
    stroke-dashoffset: 0;
  }

  100% {
    stroke-dasharray: 0 260;
    stroke-dashoffset: -250;
  }
}

@keyframes spinner {
  0% {
    stroke-dasharray: 0 260;
  }

  50% {
    stroke-dasharray: 260 260;
    stroke-dashoffset: 0;
  }

  100% {
    stroke-dasharray: 0 260;
    stroke-dashoffset: -250;
  }
}

@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(720deg);
            transform: rotate(720deg);
  }
}

@keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(720deg);
            transform: rotate(720deg);
  }
}

.full-width-images {
  max-width: none;
  width: 100%;
}

.rounded-image {
  border-radius: 5px;
}

.fancy-image-border {
  background: #e8ebee;
  border: 1px solid #e8ebee;
  border-radius: 7.5px;
  -webkit-box-shadow: 0 1px 3px #6b7076;
          box-shadow: 0 1px 3px #6b7076;
}

.fancy-image-border img {
  border-radius: 5px;
}

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

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

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

.text-uppercase {
  letter-spacing: .0375em;
  text-transform: uppercase;
}

.not-paid-link {
  color: #757575;
  font-style: italic;
}

.text-white {
  color: #fff;
}

.text-off-black {
  color: #757575;
}

.text-success {
  color: #27c30e;
}

.text-alert {
  color: #f04124;
}

.text-italic {
  font-style: italic;
}

.text-no-wrap {
  white-space: nowrap;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: #242628;
  margin: 1.5rem 0 .5rem;
}

.content-cell h1,
.content-cell
h2,
.content-cell
h3,
.content-cell
h4,
.content-cell
h5,
.content-cell
h6 {
  color: #464a4e;
}

h1 {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 1.9125rem;
  line-height: 1.125;
  margin: 0 0 1rem;
}

@media print, screen and (min-width: 47.5em) {
  h1 {
    font-size: 2.5rem;
    line-height: 1.125;
  }
}

@media print, screen and (min-width: 62.5em) {
  h1 {
    font-size: 2.75rem;
    line-height: 1.125;
  }
}

@media print {
  h1 {
    font-size: 36pt;
    line-height: 1.25;
  }
}

h2 {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
  font-size: 1.625rem;
  line-height: 1.125;
}

@media print, screen and (min-width: 47.5em) {
  h2 {
    font-size: 2rem;
    line-height: 1.25;
  }
}

@media print, screen and (min-width: 62.5em) {
  h2 {
    font-size: 2.25rem;
    line-height: 1.25;
  }
}

@media print {
  h2 {
    font-size: 24pt;
    line-height: 1.25;
  }
}

h3 {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 1.375rem;
  line-height: 1.125;
}

@media print, screen and (min-width: 47.5em) {
  h3 {
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print, screen and (min-width: 62.5em) {
  h3 {
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  h3 {
    font-size: 18pt;
    line-height: 1.25;
  }
}

h4 {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.125;
}

@media print, screen and (min-width: 47.5em) {
  h4 {
    font-size: 1.125rem;
    line-height: 1.25;
  }
}

@media print, screen and (min-width: 62.5em) {
  h4 {
    font-size: 1.125rem;
    line-height: 1.25;
  }
}

@media print {
  h4 {
    font-size: 14pt;
    line-height: 1.25;
  }
}

h5 {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 1.0625rem;
  line-height: 1.125;
}

@media print, screen and (min-width: 47.5em) {
  h5 {
    font-size: 1.125rem;
    line-height: 1.25;
  }
}

@media print, screen and (min-width: 62.5em) {
  h5 {
    font-size: 1.125rem;
    line-height: 1.25;
  }
}

@media print {
  h5 {
    font-size: 13pt;
    line-height: 1.25;
  }
}

h6 {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.125;
}

@media print, screen and (min-width: 62.5em) {
  h6 {
    font-size: 1.0625rem;
    line-height: 1.25;
  }
}

@media print {
  h6 {
    font-size: 12pt;
    line-height: 1;
  }
}

.heading-border-separator {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  position: relative;
}

.heading-border-separator::after {
  background: #33d6ff;
  border-radius: 5px;
  bottom: 0;
  content: '';
  display: inline-block;
  height: 5px;
  left: calc(50% - 50px);
  position: absolute;
  width: 100px;
}

.heading-border-separator.heading-border-separator-left::after {
  left: 0;
}

ol,
ul {
  counter-reset: list-item;
  margin-bottom: 2rem;
}

ol li,
ul li {
  color: #242628;
  font-size: 1rem;
  line-height: 1.25;
  margin-bottom: .25rem;
}

ol li ol,
ol li ul,
ul li ol,
ul li ul {
  margin: .5rem 0;
}

ol li li,
ul li li {
  font-size: 1rem;
}

@media print, screen and (min-width: 47.5em) {
  ol li,
  ul li {
    line-height: 1.3125;
  }
}

@media print, screen and (min-width: 62.5em) {
  ol li,
  ul li {
    font-size: 1.125rem;
    line-height: 1.5625;
  }
}

@media print {
  ol li,
  ul li {
    font-size: 12pt;
    line-height: 1.25;
  }
}

ul {
  list-style-type: disc;
}

ul ul li {
  list-style-type: circle;
}

ol {
  list-style-type: decimal;
}

ol.list-type-lower-alpha {
  list-style-type: lower-alpha;
}

.list-style-subset-decimals {
  counter-reset: list-style-subset-decimal;
  list-style-type: none;
  position: relative;
}

.list-style-subset-decimals li {
  counter-increment: list-style-subset-decimal;
}

.list-style-subset-decimals li::before {
  color: #757575;
  content: counter(list-style-subset-decimal) ".";
  font-size: 1rem;
  font-weight: 300;
  position: absolute;
  right: calc(100% - 1.75rem);
}

.list-style-subset-decimals li .list-type-lower-alpha li::before {
  content: counter(list-style-subset-decimal-child, lower-alpha) ".";
}

.list-style-subset-decimals li ol,
.list-style-subset-decimals li ul {
  counter-reset: list-style-subset-decimal-child;
  list-style-type: none;
  position: relative;
}

.list-style-subset-decimals li ol li,
.list-style-subset-decimals li ul li {
  counter-increment: list-style-subset-decimal-child;
}

.list-style-subset-decimals li ol li::before,
.list-style-subset-decimals li ul li::before {
  content: counter(list-style-subset-decimal) "." counter(list-style-subset-decimal-child);
  left: auto;
  right: calc(100% - 1.5rem);
}

.jurisdiction-link-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.jurisdiction-link-list ul {
  display: inline-block;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  margin: 0;
  padding: 0;
}

.jurisdiction-link-list ul:nth-of-type(2) {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.jurisdiction-link-list ul:nth-of-type(3) {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.jurisdiction-link-list ul:nth-of-type(4) {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4;
}

@media print, screen and (min-width: 62.5em) {
  .jurisdiction-link-list ul {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    margin-bottom: 0;
  }

  .jurisdiction-link-list ul:nth-of-type(2) {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }

  .jurisdiction-link-list ul:nth-of-type(3) {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }

  .jurisdiction-link-list ul:nth-of-type(4) {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
}

.jurisdiction-link-list li {
  display: inline-block;
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  width: 100%;
}

.jurisdiction-link-list a {
  text-decoration: none;
}

.local-area-codes {
  display: block;
  margin: 0;
  padding: 0;
}

.local-area-codes li {
  background: #e8ebee;
  border-radius: 5px;
  display: inline-block;
}

.local-area-codes a {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  border-radius: 5px;
  color: #262626;
  display: block;
  padding: .5rem;
  text-decoration: none;
}

.local-area-codes a:hover {
  background: #00b8e6;
  border: 0;
  color: #fff;
}

.local-area-codes a svg {
  margin-left: .25rem;
}

.checkmark-list li {
  list-style: none;
  position: relative;
}

.checkmark-list li svg {
  color: #02d909;
  left: -1.75rem;
  position: absolute;
  top: .25rem;
}

.checkmark-horizontal-list {
  background: #fff;
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
          box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  font-size: 0;
  margin: 0;
  padding: .75rem;
  width: 100%;
}

.checkmark-horizontal-list li {
  display: inline-block;
  letter-spacing: .0375em;
  list-style: none;
  margin: 0;
  padding: .75rem .75rem .75rem 3rem;
  position: relative;
  text-transform: uppercase;
  width: 100%;
}

@media print, screen and (min-width: 47.5em) {
  .checkmark-horizontal-list li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 50%;
            flex: 1 1 50%;
    width: auto;
  }
}

@media print, screen and (min-width: 62.5em) {
  .checkmark-horizontal-list li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
}

.checkmark-horizontal-list li svg {
  color: #02d909;
  left: 1.25rem;
  position: absolute;
  top: 1rem;
  speak: none;
}

body {
  font-family: "Open Sans", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
}

p {
  font-size: 1rem;
  line-height: 1.375rem;
  margin: 0 0 1rem;
}

@media print, screen and (min-width: 62.5em) {
  p {
    font-size: 1.125rem;
    line-height: 1.5625;
    margin: 0 0 1rem;
  }
}

a {
  border-bottom: 1px dotted rgba(179, 189, 199, 0.5);
  color: #4294d2;
  cursor: pointer;
  text-decoration: none;
}

a:focus,
a:hover {
  border-bottom-color: rgba(0, 103, 163, 0.5);
  border-bottom-style: solid;
  text-decoration: none;
}

.fake-styled-link {
  border-bottom: 1px dotted rgba(179, 189, 199, 0.5);
  color: #4294d2;
  cursor: pointer;
  text-decoration: none;
}

.fake-styled-link:focus,
.fake-styled-link:hover {
  border-bottom-color: rgba(0, 103, 163, 0.5);
  border-bottom-style: solid;
  text-decoration: none;
}

blockquote {
  border-left: 3px solid #00b8e6;
  font-size: 1.25rem;
  padding: 1rem 0 1rem 2rem;
}

blockquote cite {
  display: block;
  font-size: .875rem;
  margin-top: .75rem;
}

.breadcrumbs {
  padding: 0;
  width: 100%;
}

@media print, screen and (min-width: 47.5em) {
  .breadcrumbs {
    display: block;
  }
}

.breadcrumbs ol,
.breadcrumbs ul {
  display: block;
  margin: 0;
  padding: 0;
}

.breadcrumbs li {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  color: #757575;
  display: inline-block;
  float: left;
  font-size: .75rem;
  margin: 0;
  padding: 0;
  position: relative;
}

@media print, screen and (max-width: 47.49875em) {
  .breadcrumbs li {
    display: none;
  }

  .breadcrumbs li:nth-last-of-type(1),
  .breadcrumbs li:nth-last-of-type(2),
  .breadcrumbs li:nth-last-of-type(3) {
    display: block;
  }
}

@media print, screen and (min-width: 47.5em) {
  .breadcrumbs li {
    font-size: .75rem;
  }
}

.breadcrumbs li svg {
  color: #757575;
  display: inline-block;
  margin: 0 .5rem 0 .375rem;
  position: relative;
  top: .0625rem;
}

.breadcrumbs li:last-of-type::after {
  display: none;
}

.breadcrumbs a {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  border: 0;
  color: #757575;
  text-decoration: none;
}

.breadcrumbs a:focus,
.breadcrumbs a:hover,
.breadcrumbs a:active {
  color: #00b8e6;
}

button,
.button {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #00b8e6;
  border-bottom: 0;
  border-radius: 5px;
  -webkit-box-shadow: inset 0 -4px 0 0 #0067a3, 0 0px 3px #b3bdc7;
          box-shadow: inset 0 -4px 0 0 #0067a3, 0 0px 3px #b3bdc7;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-size: 1rem;
  letter-spacing: .0375em;
  line-height: 1.125;
  padding: .875rem 1rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  text-shadow: 0 1px 1px #6b7076;
}

.no-touchevents
button:focus,
.no-touchevents
button:hover,
.no-touchevents
button:active,
.no-touchevents
.button:focus,
.no-touchevents
.button:hover,
.no-touchevents
.button:active {
  background: #0067a3;
  position: relative;
}

button.full-width-button,
.button.full-width-button {
  width: 100%;
}

@media print, screen and (max-width: 47.49875em) {
  button.full-width-button-small,
  .button.full-width-button-small {
    margin-bottom: 1rem;
    width: 100%;
  }
}

button.secondary-button,
.button.secondary-button {
  background: #02d909;
  -webkit-box-shadow: inset 0 -4px 0 0 #018833;
          box-shadow: inset 0 -4px 0 0 #018833;
}

.no-touchevents
button.secondary-button:focus,
.no-touchevents
button.secondary-button:hover,
.no-touchevents
button.secondary-button:active,
.no-touchevents
.button.secondary-button:focus,
.no-touchevents
.button.secondary-button:hover,
.no-touchevents
.button.secondary-button:active {
  background: #018833;
}

button[type="submit"],
.button[type="submit"] {
  background: #02d909;
  -webkit-box-shadow: inset 0 -4px 0 0 #018833;
          box-shadow: inset 0 -4px 0 0 #018833;
}

.no-touchevents
button[type="submit"]:focus,
.no-touchevents
button[type="submit"]:hover,
.no-touchevents
button[type="submit"]:active,
.no-touchevents
.button[type="submit"]:focus,
.no-touchevents
.button[type="submit"]:hover,
.no-touchevents
.button[type="submit"]:active {
  background: #018833;
}

button.rounded-button,
.button.rounded-button {
  border-radius: 100px;
}

.icon-button i,
.icon-button svg {
  display: inline-block;
  position: relative;
  width: 1.75rem;
}

.icon-button i::before,
.icon-button svg::before {
  font-size: 1.75rem;
  left: -.25rem;
  position: absolute;
  top: -.25rem;
}

@media print, screen and (max-width: 47.49875em) {
  .jurisdiction-sign-up-button {
    background: #fff;
    border-top: 1px solid #262626;
    bottom: 0;
    display: inline-block;
    left: 0;
    padding: .5rem;
    position: fixed;
    width: 100%;
    z-index: 100;
  }
}

.button.border-button,
button.border-button {
  background: none;
  border: 0;
  -webkit-box-shadow: inset 0 0 0 2px #00b8e6;
          box-shadow: inset 0 0 0 2px #00b8e6;
  color: #262626;
  text-shadow: none;
}

.no-touchevents .button.border-button:focus,
.no-touchevents .button.border-button:hover,
.no-touchevents .button.border-button:active,
.no-touchevents
button.border-button:focus,
.no-touchevents
button.border-button:hover,
.no-touchevents
button.border-button:active {
  background: #00b8e6;
  color: #fff;
  top: 0;
}

.button.border-button.secondary-button,
button.border-button.secondary-button {
  -webkit-box-shadow: inset 0 0 0 2px #02d909;
          box-shadow: inset 0 0 0 2px #02d909;
}

.no-touchevents .button.border-button.secondary-button:focus,
.no-touchevents .button.border-button.secondary-button:hover,
.no-touchevents .button.border-button.secondary-button:active,
.no-touchevents
button.border-button.secondary-button:focus,
.no-touchevents
button.border-button.secondary-button:hover,
.no-touchevents
button.border-button.secondary-button:active {
  background: #02d909;
}

.button.border-button.black-button,
button.border-button.black-button {
  -webkit-box-shadow: inset 0 0 0 2px #262626;
          box-shadow: inset 0 0 0 2px #262626;
}

.no-touchevents .button.border-button.black-button:focus,
.no-touchevents .button.border-button.black-button:hover,
.no-touchevents .button.border-button.black-button:active,
.no-touchevents
button.border-button.black-button:focus,
.no-touchevents
button.border-button.black-button:hover,
.no-touchevents
button.border-button.black-button:active {
  background: #262626;
}

input {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  font-family: "Open Sans", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: #fafafa;
  border: 1px solid #d9dee3;
  border-radius: 5px;
  font-size: 16px;
  line-height: 1.25;
  margin-bottom: 1.5rem;
  padding: .5rem;
  width: 100%;
}

input:focus {
  border-color: #00b8e6;
  outline: none;
}

textarea {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: #fafafa;
  border: 1px solid #d9dee3;
  border-radius: 5px;
  font-size: 16px;
  height: 8rem;
  line-height: 1.25;
  margin-bottom: 1.5rem;
  padding: .5rem;
  resize: vertical;
  vertical-align: bottom;
  width: 100%;
}

textarea:focus {
  border-color: #00b8e6;
  outline: none;
}

textarea.froala-editor {
  height: 15rem;
}

label {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  display: inline-block;
  font-size: 1rem;
  padding-bottom: .125rem;
}

label.show-if-no-placeholder {
  display: none;
}

.no-placeholder label.show-if-no-placeholder {
  display: inline-block;
}

label a {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: .875rem;
}

label .optional-text {
  color: #8f969e;
  font-size: .875rem;
  font-weight: 400;
}

.sub-label-text {
  font-size: .875rem;
}

input[type='radio'],
input[type='checkbox'] {
  border-width: 1px;
  -webkit-box-shadow: 0 0 2px #464a4e;
          box-shadow: 0 0 2px #464a4e;
  cursor: pointer;
  height: 1rem;
  width: 1rem;
}

input[type='radio']::-ms-check,
input[type='checkbox']::-ms-check {
  display: none;
}

input[type='radio']:checked,
input[type='checkbox']:checked {
  background: #00b8e6;
}

input[type='radio']:focus,
input[type='checkbox']:focus {
  border-color: #464a4e;
  outline: none;
}

.button-toggle-group {
  margin-bottom: 1.5rem;
}

.checkbox-radio {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  cursor: pointer;
  display: inline-block;
  margin: 0 1rem .75rem 0;
  padding: .25rem 0 .25rem 1.75rem;
  position: relative;
}

.checkbox-radio-no-margin {
  margin: 0;
}

.checkbox-radio input[type='checkbox'] {
  display: none;
}

.checkbox-radio input[type='checkbox']:checked ~ .checked-icon svg {
  -webkit-transform: scale(1);
          transform: scale(1);
}

.checkbox-radio input[type='checkbox']:checked ~ .checked-icon::after {
  -webkit-transform: scale(0);
          transform: scale(0);
}

.checkbox-radio input[type='checkbox'] ~ .checked-icon svg,
.checkbox-radio input[type='checkbox'] ~ .checked-icon::after {
  color: #888;
  font-size: 1.5rem;
  left: 0;
  position: absolute;
  top: -4px;
  -webkit-transition: -webkit-transform .125s ease-in;
  transition: -webkit-transform .125s ease-in;
  transition: transform .125s ease-in;
  transition: transform .125s ease-in, -webkit-transform .125s ease-in;
}

.checkbox-radio input[type='checkbox'] ~ .checked-icon svg {
  color: #3feb3f;
  top: 2px;
  -webkit-transform: scale(0);
          transform: scale(0);
}

.checkbox-radio input[type='checkbox'] ~ .checked-icon::after {
  border: 1px solid #888;
  border-radius: 20px;
  -webkit-box-shadow: 0 0 1px #555;
          box-shadow: 0 0 1px #555;
  content: '';
  display: inline-block;
  height: 20px;
  top: 5px;
  -webkit-transform: scale(1);
          transform: scale(1);
  width: 20px;
}

.checkbox-radio input[type='radio'] {
  display: none;
}

.checkbox-radio input[type='radio']:checked ~ .checked-icon::before {
  -webkit-box-shadow: 0 0 0 5px #3feb3f;
          box-shadow: 0 0 0 5px #3feb3f;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.checkbox-radio input[type='radio']:checked ~ .checked-icon::after {
  border-color: #3feb3f;
}

.checkbox-radio input[type='radio'] ~ .checked-icon::before,
.checkbox-radio input[type='radio'] ~ .checked-icon::after {
  color: #888;
  font-size: 1.5rem;
  left: 0;
  position: absolute;
  top: -2px;
  -webkit-transition: -webkit-transform .125s ease-in;
  transition: -webkit-transform .125s ease-in;
  transition: transform .125s ease-in;
  transition: transform .125s ease-in, -webkit-transform .125s ease-in;
}

.checkbox-radio input[type='radio'] ~ .checked-icon::before {
  background: #fff;
  border-radius: 20px;
  color: #3feb3f;
  content: '';
  height: 5px;
  left: 8px;
  top: 13px;
  width: 5px;
}

.checkbox-radio input[type='radio'] ~ .checked-icon::after {
  border: 1px solid #888;
  border-radius: 40px;
  -webkit-box-shadow: 0 0 1px #555;
          box-shadow: 0 0 1px #555;
  content: '';
  height: 21px;
  top: 5px;
  -webkit-transform: scale(1);
          transform: scale(1);
  width: 21px;
}

@-webkit-keyframes pulse {
  0% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
  }

  40% {
    -webkit-transform: scale(1.35);
            transform: scale(1.35);
  }

  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@keyframes pulse {
  0% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
  }

  40% {
    -webkit-transform: scale(1.35);
            transform: scale(1.35);
  }

  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

select {
  background: #fafafa;
  height: 2.375rem;
  width: 100%;
}

select.auto-width {
  min-width: 150px;
  width: auto;
}

.form-helper-text {
  font-size: .875rem;
}

.fancy-select {
  border-radius: 5px;
  color: #757575;
  display: inline-block;
  margin-bottom: 1.5rem;
  position: relative;
  width: auto;
}

.fancy-select.fancy-select-no-margin {
  margin: 0;
}

.fancy-select.fancy-select-no-margin.margin-small-only {
  margin-bottom: 1rem;
}

.fancy-select.fancy-select-full-width {
  width: 100%;
}

.fancy-select.fancy-select-text-center {
  text-align: center;
}

.fancy-select svg {
  color: #757575;
  display: inline-block;
  pointer-events: none;
  position: absolute;
  right: .75rem;
  top: .625rem;
  z-index: 10;
}

.fancy-select select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: #fafafa;
  border: 1px solid #b3bdc7;
  border-radius: 5px;
  color: #757575;
  line-height: 1.25;
  outline: none;
  padding: .375rem 1.5rem .375rem .625rem;
  position: relative;
  font-family: "Open Sans", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
}

.fancy-select select::-ms-expand {
  display: none;
}

@media print, screen and (min-width: 62.5em) {
  .fancy-select select {
    min-width: 100px;
  }
}

.fancy-select select:focus {
  border-color: #00b8e6;
}

.fancy-select .form-error,
.fancy-select .stripe-card-errors {
  margin-top: 0;
}

.available-numbers {
  display: inline-block;
  float: left;
  margin: 0 0 .5rem;
  padding: 0;
  width: 50%;
}

@media (max-width: 370px) {
  .available-numbers label {
    font-size: .875rem;
    padding-left: 1.375rem;
  }
}

.available-numbers:nth-of-type(odd) {
  clear: left;
}

@media print, screen and (min-width: 47.5em) {
  .available-numbers {
    width: 50%;
  }
}

@media print, screen and (min-width: 62.5em) {
  .available-numbers {
    width: 33.33333333%;
  }

  .available-numbers:nth-of-type(odd) {
    clear: none;
  }

  .available-numbers:nth-of-type(3n+1) {
    clear: left;
  }
}

.available-numbers .the-number {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  color: #464a4e;
}

.available-numbers .the-number span {
  background: #f3ff00;
}

.available-numbers .checkbox-radio {
  line-height: 1.25;
  margin-bottom: 0;
  margin-right: .5rem;
}

.phone-location-heading {
  clear: left;
  display: block;
  font-size: .875rem;
  margin: .5rem 0 0;
  text-transform: uppercase;
  width: 100%;
}

.selected-phone-number {
  text-align: center;
}

.selected-phone-number h6 {
  margin: 0 0 .25rem;
}

.selected-phone-number strong {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
  font-size: 1.25rem;
}

.find-vanity-number {
  color: #0067a3;
  margin-top: 1.75rem;
  padding: .25rem;
}

.form-group {
  position: relative;
}

.form-group .form-error,
.form-group .stripe-card-errors,
.form-group .stripe-card-errors {
  bottom: .375rem;
  font-size: .75rem;
  letter-spacing: .025em;
  margin: 0;
  position: absolute;
  text-transform: uppercase;
}

.form-group button[type='submit'] {
  margin-top: 1rem;
}

.stripe-card-errors {
  display: block;
}

.on-off-text-toggle {
  clear: left;
  cursor: pointer;
  display: inline-block;
  float: left;
  margin: .25rem 0;
  overflow: hidden;
}

.on-off-text-toggle input {
  display: none;
}

.on-off-text-toggle input:checked + .toggle-container {
  background: #fff;
}

.on-off-text-toggle input:checked + .toggle-container .the-toggle {
  background: #00b140;
  left: 61px;
}

.on-off-text-toggle input:checked + .toggle-container .toggle-off-text {
  opacity: 0;
  right: -50px;
}

.on-off-text-toggle input:checked + .toggle-container .toggle-on-text {
  left: 12px;
  opacity: 1;
}

.on-off-text-toggle .on-off-text-toggle-label {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  display: inline-block;
  float: left;
  height: 36px;
  padding: .75rem 0 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  width: 80px;
}

.on-off-text-toggle .toggle-container {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #eee;
  border: 1px solid #888;
  border-radius: 3px;
  display: inline-block;
  height: 36px;
  overflow: hidden;
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  width: 110px;
}

.on-off-text-toggle .toggle-text {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  font-size: .75rem;
  position: absolute;
  text-transform: uppercase;
  top: 10px;
}

.on-off-text-toggle .toggle-text.toggle-off-text {
  opacity: 1;
  right: 7px;
}

.on-off-text-toggle .toggle-text.toggle-on-text {
  left: -40px;
  opacity: 0;
}

.on-off-text-toggle .the-toggle {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #888;
  border-radius: 3px;
  display: inline-block;
  height: 30px;
  left: 2px;
  position: absolute;
  top: 2px;
  width: 45px;
}

.help-block {
  bottom: 0;
  color: #cc4b37;
  display: block;
  font-size: .75rem;
  font-weight: bold;
  margin: -1rem 0 1rem;
}

.help-block.help-block--info {
  color: #0092cc;
}

.dinosaurs {
  height: 0;
  overflow: hidden;
}

.flash-message {
  background: #fff;
  border-color: #b3bdc7;
  border-left-width: 20px;
  border-radius: 5px;
  border-style: solid;
  border-width: 1px;
  display: block;
  margin: 2rem auto;
  max-width: 500px;
  overflow: hidden;
  padding: .75rem 1rem;
  padding: 0;
  position: relative;
  width: 100%;
}

.flash-message.flash-message-success {
  background: #27c30e;
  border-color: #27c30e;
}

.flash-message.flash-message-success li {
  color: #fff;
}

.flash-message.flash-message-success li svg {
  color: #fff;
}

.flash-message.flash-message-error {
  background: #f04124;
  border-color: #f04124;
}

.flash-message.flash-message-error li {
  color: #fff;
}

.flash-message.flash-message-error li svg {
  color: #fff;
}

.flash-message li {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  list-style: none;
  margin: 0;
  padding: .75rem 3rem .75rem 3rem;
  position: relative;
}

.flash-message li svg {
  color: #f04124;
  left: 1rem;
  position: absolute;
  top: 1rem;
}

.flash-message li:last-of-type {
  border-bottom: 0;
}

.cta-phone-select {
  background: #fafafa;
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
          box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
  margin-top: 0;
  padding: .5rem;
  position: absolute;
  right: 2.5%;
  width: 95%;
}

.cta-phone-select.cta-phone-select-standalone {
  max-width: 490px;
  margin: 0 auto;
  position: static;
}

@media (min-width: 500px) {
  .cta-phone-select {
    margin-top: 1.25rem;
    max-width: none;
    right: calc(100 / 12 * 1% + 1rem);
    width: auto;
  }
}

@media print, screen and (min-width: 47.5em) {
  .cta-phone-select {
    margin-top: 1rem;
  }
}

.cta-phone-select label {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
  width: 100%;
}

@media (min-width: 500px) {
  .cta-phone-select label {
    margin-right: .75rem;
    width: auto;
  }
}

.cta-phone-select input {
  background: #fff;
  border-radius: 5px;
  margin-bottom: .5rem;
}

@media (min-width: 500px) {
  .cta-phone-select input {
    margin-bottom: 0;
  }
}

.cta-phone-select .cta-phone-select-area-code {
  margin-right: 1rem;
  width: 100px;
}

@media (min-width: 500px) {
  .cta-phone-select .cta-phone-select-area-code {
    margin-right: .75rem;
    width: 100px;
  }
}

.cta-phone-select .cta-find-vanity-number {
  color: #0067a3;
  font-size: .75rem;
  text-transform: uppercase;
}

@media (min-width: 500px) {
  .cta-phone-select div {
    display: inline-block !important;
  }
}

.cta-phone-select button {
  padding: .75rem 1rem;
  width: auto;
  width: calc(100% - 110px - 1rem);
}

@media (min-width: 500px) {
  .cta-phone-select button {
    padding: .75rem 1rem;
    width: auto;
  }
}

.available-number-location {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  color: #8f969e;
  display: inline-block;
  font-size: .75rem;
  text-transform: uppercase;
  width: 100%;
}

.form-card {
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
          box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
  padding: 1.25rem;
}

@media print, screen and (min-width: 47.5em) {
  .form-card {
    padding: 1.5rem;
  }
}

@media print, screen and (min-width: 62.5em) {
  .form-card {
    padding: 2rem;
  }
}

.card {
  background: #fff;
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
          box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
  display: block;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-bottom: 2rem;
  overflow: hidden;
  padding: 1rem;
  width: 100%;
}

.card.card-no-margin {
  margin: 0;
}

.card.card-flexbox-medium {
  display: block;
}

@media print, screen and (min-width: 47.5em) {
  .card.card-flexbox-medium {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

.card .card-heading {
  font-size: 1.25rem;
  margin-top: 0;
  text-decoration: none;
}

.card .card-button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  margin-top: 1.5rem;
  text-align: center;
  width: 100%;
}

.card .card-button .button {
  -ms-flex-item-align: end;
      align-self: flex-end;
  width: 100%;
}

.card.card-link {
  border-bottom: 0;
  color: #262626;
  text-decoration: none;
}

.card .card-image {
  margin-bottom: 1rem;
}

.card .card-image.edgeless-image img {
  border-radius: 5px 5px 0 0;
  margin-left: -1rem;
  margin-top: -1rem;
  max-width: none;
  width: calc(100% + 2rem);
}

.card.card-scale {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
}

.no-touchevents .card.card-scale:hover {
  -webkit-transform: scale(1.03);
          transform: scale(1.03);
}

.card .card-stat {
  color: #00b8e6;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1;
}

.card .card-footnote {
  font-size: .875rem;
  margin: .5rem 0 0;
}

.benefits-section .cell:last-of-type .benefits-card {
  border: 0;
  padding-bottom: 0;
}

.benefits-card {
  border-bottom: 2px dotted #b3bdc7;
  margin-bottom: 2rem;
  padding: 0 1.5rem 2rem;
  text-align: center;
}

@media print, screen and (min-width: 47.5em) {
  .benefits-card {
    border: 0;
  }
}

@media print, screen and (min-width: 62.5em) {
  .benefits-card {
    padding: 0 1rem;
  }
}

.benefits-card .icon-wrapper {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #00b8e6;
  background: linear-gradient(150deg, #00b8e6 50%, #0092cc 100%);
  border-radius: 100px;
  -webkit-box-shadow: 0 0 3px rgba(232, 235, 238, 0.5);
          box-shadow: 0 0 3px rgba(232, 235, 238, 0.5);
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  height: 65px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-bottom: 1.5rem;
  overflow: hidden;
  position: relative;
  width: 65px;
}

.benefits-card i,
.benefits-card svg {
  color: #fff;
  font-size: 2rem;
}

.benefits-card .card-heading {
  font-size: 1.25rem;
  margin-top: 0;
}

.data-point-card {
  border-left: 3px solid #89fe77;
  padding-left: 2.5rem;
  position: relative;
}

.data-point-card .data-point-icon {
  -ms-flex-line-pack: center;
      align-content: center;
  color: #d9dee3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  font-size: 1.5rem;
  height: 100%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  left: .5rem;
  position: absolute;
  top: 0;
}

.data-point-card .data-point-value {
  font-weight: 700;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.data-point-card .data-point-label {
  color: #222326;
  display: block;
  font-size: .75rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.card.link-card {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  color: #464a4e;
  cursor: pointer;
}

.no-touchevents .card.link-card.card-no-scale:focus,
.no-touchevents .card.link-card.card-no-scale:hover {
  -webkit-transform: scale(1);
          transform: scale(1);
}

.no-touchevents .card.link-card:not(.card-no-scale):focus,
.no-touchevents .card.link-card:not(.card-no-scale):hover {
  border: 0;
  -webkit-box-shadow: 0 2px 8px 1px rgba(0, 184, 230, 0.25);
          box-shadow: 0 2px 8px 1px rgba(0, 184, 230, 0.25);
  color: #00b8e6;
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}

.card.arrow-card {
  padding-right: 2rem;
  position: relative;
}

.card.arrow-card .card-arrow {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  font-size: 1.25rem;
  position: absolute;
  right: .875rem;
  top: 50%;
  top: calc(50% - .5rem);
}

.no-touchevents .card.arrow-card:focus .card-arrow,
.no-touchevents .card.arrow-card:hover .card-arrow {
  right: .5rem;
}

.card.icon-card {
  padding-left: 3.75rem;
  position: relative;
}

.card.icon-card .card-icon {
  font-size: 1.5rem;
  left: 0;
  position: absolute;
  text-align: center;
  top: 50%;
  top: calc(50% - 1.25rem);
  width: 3.75rem;
}

.feature-card {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #fff;
  border-left: 4px solid #0092cc;
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
          box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
  display: block;
  margin: 0 0 2rem 1.5rem;
  padding: 1rem 1rem 1rem 2rem;
  position: relative;
}

.feature-card.feature-card-link {
  cursor: pointer;
}

.feature-card.feature-card-link h3 {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  border-bottom: 2px dotted #262626;
}

.no-touchevents .feature-card.feature-card-link:focus,
.no-touchevents .feature-card.feature-card-link:hover,
.no-touchevents .feature-card.feature-card-link:active {
  -webkit-box-shadow: 0 2px 8px 1px rgba(0, 146, 204, 0.25);
          box-shadow: 0 2px 8px 1px rgba(0, 146, 204, 0.25);
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}

.no-touchevents .feature-card.feature-card-link:focus h3,
.no-touchevents .feature-card.feature-card-link:hover h3,
.no-touchevents .feature-card.feature-card-link:active h3 {
  border-bottom: 2px solid #262626;
}

.feature-card:nth-child(odd) {
  border-left: 0;
  border-right: 4px solid #0092cc;
  margin: 0 1.5rem 2rem 0;
  padding: 1rem 2rem 1rem 1rem;
}

.feature-card:nth-child(odd) .feature-icon {
  left: auto;
  right: -20px;
}

@media print, screen and (min-width: 47.5em) {
  .feature-card:nth-child(odd) .feature-icon {
    left: -20px;
    right: auto;
  }
}

@media print, screen and (min-width: 62.5em) {
  .feature-card:nth-child(odd) .feature-icon {
    left: -30px;
    right: auto;
  }
}

@media print, screen and (min-width: 47.5em) {
  .feature-card:nth-child(odd) {
    border-left: 4px solid #0092cc;
    border-right: 0;
    margin-left: 1rem;
    margin-right: 0;
    padding-left: 2rem;
    padding-right: 1rem;
  }
}

@media print, screen and (min-width: 62.5em) {
  .feature-card:nth-child(odd) {
    margin-left: 0;
    padding-left: 2.5rem;
  }
}

@media print, screen and (min-width: 47.5em) {
  .feature-card {
    height: 175px;
    margin-left: 1rem;
    margin-right: 0;
    padding-left: 2rem;
    padding-right: 1rem;
  }
}

@media print, screen and (min-width: 62.5em) {
  .feature-card {
    margin-left: 0;
    padding-left: 2.5rem;
  }

  .feature-card p {
    font-size: 1rem;
    line-height: 1.375rem;
  }
}

.feature-card-column-right .feature-card,
.feature-card-column-left .feature-card {
  position: relative;
}

@media print, screen and (min-width: 62.5em) {
  .feature-card-column-right .feature-card::after,
  .feature-card-column-left .feature-card::after {
    background: #8f969e;
    content: '';
    height: 2px;
    position: absolute;
    top: 50%;
    width: 100%;
  }
}

@media print, screen and (min-width: 62.5em) {
  .feature-card-column-right .feature-card:last-child,
  .feature-card-column-left .feature-card:last-child {
    margin-bottom: 0;
  }
}

@media print, screen and (min-width: 62.5em) {
  .feature-card-column-left .feature-card {
    border-left: 0;
    border-right: 4px solid #0092cc;
    margin: 0 0 2rem;
    padding: 1rem 2.5rem 1rem 1rem;
  }
}

@media print, screen and (min-width: 62.5em) {
  .feature-card-column-left .feature-card .feature-icon {
    left: auto;
    right: -30px;
  }
}

@media print, screen and (min-width: 62.5em) {
  .feature-card-column-left .feature-card::after {
    right: -100%;
  }

  .feature-card-column-left .feature-card:nth-child(1)::after {
    right: -82%;
    top: 115%;
    -webkit-transform: rotate(43deg);
            transform: rotate(43deg);
  }

  .feature-card-column-left .feature-card:nth-child(4)::after {
    right: -82%;
    top: -12%;
    -webkit-transform: rotate(-43deg);
            transform: rotate(-43deg);
  }
}

@media print, screen and (min-width: 62.5em) {
  .feature-card-column-right .feature-card::after {
    left: -100%;
  }

  .feature-card-column-right .feature-card:nth-child(1)::after {
    left: -82%;
    top: 115%;
    -webkit-transform: rotate(-43deg);
            transform: rotate(-43deg);
  }

  .feature-card-column-right .feature-card:nth-child(4)::after {
    left: -82%;
    top: -12%;
    -webkit-transform: rotate(43deg);
            transform: rotate(43deg);
  }
}

.feature-card h3 {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  display: inline-block;
  font-size: 1.25rem;
  margin-top: 0;
}

.feature-card h3 a {
  color: #262626;
}

.no-touchevents .feature-card h3 a:focus,
.no-touchevents .feature-card h3 a:hover,
.no-touchevents .feature-card h3 a:active {
  color: #00b8e6;
}

.feature-card p {
  color: #262626;
  margin-bottom: 0;
  width: 100%;
}

.feature-card .feature-icon {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #00b8e6;
  background: linear-gradient(150deg, #00b8e6 50%, #0092cc 100%);
  border-radius: 30px;
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 40px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  left: -20px;
  overflow: hidden;
  position: absolute;
  top: calc(50% - 20px);
  width: 40px;
  z-index: 10;
}

@media print, screen and (min-width: 62.5em) {
  .feature-card .feature-icon {
    font-size: 1.5rem;
    height: 60px;
    left: -30px;
    top: calc(50% - 30px);
    width: 60px;
  }
}

.feature-card .feature-card-button {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: none;
  border: 0;
  border-radius: 5px;
  -webkit-box-shadow: inset 0 0 0 2px #00b8e6;
          box-shadow: inset 0 0 0 2px #00b8e6;
  color: #262626;
  display: inline-block;
  font-size: .875rem;
  margin-top: 1rem;
  padding: .5rem;
  text-decoration: none;
  text-transform: uppercase;
}

.no-touchevents .feature-card .feature-card-button:focus,
.no-touchevents .feature-card .feature-card-button:hover,
.no-touchevents .feature-card .feature-card-button:active {
  background: #00b8e6;
  color: #fff;
}

.price-card {
  background: #fff;
  border-radius: 5px;
  border-top: 10px solid #00b8e6;
  -webkit-box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
          box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
  margin: 2rem auto 0;
  max-width: 375px;
  width: 100%;
}

.price-card.price-highlighted-card .price-card-content {
  background: #fff;
}

.price-card.price-highlighted-card .price-card-content li {
  border-color: #999;
}

@media print, screen and (min-width: 62.5em) {
  .price-card.price-highlighted-card {
    margin-top: 0;
  }
}

.price-card .price-card-heading {
  font-size: 1.25rem;
  padding: 1.25rem  1rem;
  text-align: center;
}

.price-card .price-card-heading .price-card-heading-text {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
  margin: 0 0 .5rem;
}

.price-card .price-card-heading p {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 2rem;
  margin: 0;
}

.price-card .price-card-heading p span {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
  display: inline-block;
  font-size: .75rem;
  padding-left: .25rem;
  position: relative;
  top: -.375rem;
}

.price-card .price-card-content {
  background: #f4f6f9;
  -webkit-box-shadow: inset 0 1px 2px rgba(153, 153, 153, 0.5), inset 0 -1px 2px rgba(153, 153, 153, 0.5);
          box-shadow: inset 0 1px 2px rgba(153, 153, 153, 0.5), inset 0 -1px 2px rgba(153, 153, 153, 0.5);
}

.price-card .price-card-content .price-card-content-highlight {
  background: #00b8e6 !important;
  border-bottom: 0;
  border-radius: 5px 5px 0 0;
  color: #fff;
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: 4px;
  position: relative;
  text-transform: uppercase;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.price-card .price-card-content .price-card-content-highlight::after,
.price-card .price-card-content .price-card-content-highlight::before {
  bottom: -18px;
  content: '';
  display: inline-block;
  position: absolute;
}

.price-card .price-card-content .price-card-content-highlight::after {
  border-bottom: 18px solid transparent;
  border-left: 18px solid #0067a3;
  border-top: 0;
  right: 0;
}

.price-card .price-card-content .price-card-content-highlight::before {
  border-bottom: 18px solid transparent;
  border-right: 18px solid #0067a3;
  border-top: 0;
  left: 0;
}

.price-card .price-card-content .price-card-content-highlight .price-card-content-text {
  display: inline-block;
  letter-spacing: .075em;
  padding: .25rem 1rem;
}

.price-card .price-card-content .price-card-content-highlight i,
.price-card .price-card-content .price-card-content-highlight svg {
  color: #0092cc;
}

.price-card .price-card-content ul {
  display: block;
  margin: 0;
  padding: 0;
}

.price-card .price-card-content li {
  background: #fff;
  color: #262626;
  display: block;
  margin: 0;
  padding: 1rem 0;
  position: relative;
  text-align: center;
}

.price-card .price-card-content li:nth-of-type(odd) {
  background: #e8ebee;
}

.price-card .price-card-button {
  padding: 1rem;
}

.price-card .price-card-button .button {
  margin: 0;
}

@media print, screen and (min-width: 47.5em) {
  .price-card .price-card-button {
    padding: 1.5rem;
  }
}

.primary-footer {
  background: #2a546d;
  overflow: hidden;
  position: relative;
}

.primary-footer i,
.primary-footer svg {
  color: #41728c;
  font-size: 16rem;
  position: absolute;
  top: -2rem;
}

.primary-footer .cell {
  z-index: 10;
}

.primary-footer ul {
  display: block;
  float: left;
  margin: 0;
  padding: .5rem 0;
  width: 100%;
}

@media print, screen and (min-width: 47.5em) {
  .primary-footer ul {
    padding: 1.5rem 0 1rem;
  }
}

.primary-footer li {
  display: inline-block;
  float: left;
  margin: 0;
  padding: .5rem 0;
  width: 50%;
}

@media print, screen and (min-width: 47.5em) {
  .primary-footer li {
    margin-right: 1.25rem;
    padding: 0;
    width: auto;
  }
}

.primary-footer li a {
  border-bottom: 0;
  color: #ddd;
  display: block;
  font-size: .875rem;
  padding: .25rem 0;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  width: 100%;
}

.primary-footer .call-us li {
  color: #ddd;
  font-size: 1rem;
  text-align: center;
  width: 100%;
}

.primary-footer .call-us a {
  color: #fff;
  display: inline;
  font-size: 1rem;
  width: auto;
}

.primary-footer .footer-cta {
  border-bottom: 2px solid #23485e;
  padding: 2rem 0;
  text-align: center;
}

.primary-footer .footer-cta p {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  color: #fff;
  font-size: 1.5rem;
  margin: 0;
  text-transform: uppercase;
}

.primary-footer .footer-cta .button {
  font-size: 1.25rem;
  margin-top: 1rem;
  width: 100%;
}

@media print, screen and (min-width: 47.5em) {
  .primary-footer .footer-cta .button {
    margin-left: 2rem;
    padding: .5rem 5rem;
    width: auto;
  }
}

.primary-footer .download-app-store {
  margin-top: 1rem;
}

.primary-footer .download-app-store a {
  display: inline-block;
}

.primary-footer .download-app-store img {
  width: 100px;
}

.primary-footer .download-app-store img.google-play {
  width: 110px;
}

.primary-footer .border-button {
  color: #fff;
}

.pre-footer {
  background: #e8ebee;
  border-top: 3px solid #2a546d;
  padding: 1.5rem .5rem;
}

@media print, screen and (min-width: 62.5em) {
  .pre-footer {
    padding: 1.5rem 0;
  }
}

.pre-footer .cell {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  margin-bottom: 2rem;
}

.pre-footer .cell:last-of-type {
  margin-bottom: 0;
}

@media print, screen and (min-width: 47.5em) {
  .pre-footer .cell {
    margin-bottom: 0;
  }

  .pre-footer .cell:first-of-type {
    position: relative;
  }

  .pre-footer .cell:first-of-type::after {
    background: #b3bdc7;
    content: '';
    height: 100%;
    position: absolute;
    right: -.25rem;
    top: 0;
    width: 1px;
  }
}

.pre-footer .icon-wrapper {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #00b8e6;
  border-radius: 50px;
  -webkit-box-shadow: 0 1px 4px 1px rgba(85, 85, 85, 0.5);
          box-shadow: 0 1px 4px 1px rgba(85, 85, 85, 0.5);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 90px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 90px;
}

.pre-footer i,
.pre-footer svg {
  color: #fff;
  font-size: 2.5rem;
}

.pre-footer .security-icon {
  background: linear-gradient(150deg, #ffc500 50%, #e6b100 100%);
}

.pre-footer .stripe-icon {
  background: linear-gradient(150deg, #20be00 50%, #1ca500 100%);
}

.pre-footer p {
  margin: 0;
  padding: 0 0 0 1.25rem;
  width: calc(100% - 90px);
}

.legal-footer {
  background: #23485e;
  padding: .75rem 0 .5rem;
}

@media print, screen and (min-width: 47.5em) {
  .legal-footer {
    padding: .25rem 0 .5rem;
  }
}

.legal-footer ul {
  display: block;
  margin: 0;
  padding: 0;
  text-align: center;
}

@media print, screen and (min-width: 47.5em) {
  .legal-footer ul {
    display: inline-block;
  }
}

.legal-footer li {
  display: inline-block;
  margin: 0 .5rem 0 0;
  padding: 0;
}

.legal-footer li a {
  border-bottom: 0;
  color: #b3bdc7;
  font-size: .75rem;
  line-height: 1;
  text-decoration: none;
}

.legal-footer .copyright {
  color: #ccc;
  display: block;
  font-size: .75rem;
  line-height: 1;
  margin: 0;
  padding: 0;
  text-align: center;
}

@media print, screen and (min-width: 47.5em) {
  .legal-footer .copyright {
    display: inline-block;
    margin-right: 1rem;
  }
}

.legal-footer .social-media {
  padding: .25rem .5rem 0;
}

.legal-footer .social-media li {
  display: inline-block;
}

.legal-footer .social-media a {
  display: inline-block;
  font-size: 1.125rem;
  position: relative;
}

.legal-footer .social-media a i,
.legal-footer .social-media a svg {
  color: #fff;
  top: 6px;
}

@media print, screen and (min-width: 47.5em) {
  .legal-footer .social-media {
    float: right;
  }
}

.primary-header.primary-account-header {
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 25;
}

.primary-header.ppc-header .cell {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.top-header {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  background: #23485e;
  color: #fff;
  font-size: .875rem;
  line-height: 1;
  padding: .125rem 0;
  text-align: center;
}

@media print, screen and (min-width: 47.5em) {
  .top-header {
    text-align: right;
  }
}

.top-header a {
  color: #fff;
  text-decoration: none;
}

.primary-header {
  background: #fff;
  border-top: 3px solid #0067a3;
  -webkit-box-shadow: 0 1px 3px rgba(136, 136, 136, 0.5);
          box-shadow: 0 1px 3px rgba(136, 136, 136, 0.5);
  position: relative;
  z-index: 20;
}

.primary-header .menu-toggle {
  padding-right: 1rem;
}

@media print, screen and (min-width: 47.5em) {
  .primary-header .menu-toggle {
    display: none;
  }
}

@media print, screen and (min-width: 47.5em) {
  .primary-header .cell {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
  }
}

@media print, screen and (min-width: 47.5em) {
  .primary-header .header-action-links {
    float: right;
  }
}

.primary-header nav {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  background: #fff;
  -webkit-box-shadow: 1px 0 3px rgba(136, 136, 136, 0.5);
          box-shadow: 1px 0 3px rgba(136, 136, 136, 0.5);
  height: 100%;
  left: -280px;
  position: fixed;
  top: 0;
  width: 275px;
  z-index: 15;
}

@media print, screen and (max-width: 47.49875em) {
  .primary-header nav.show-navigation {
    left: 0;
  }
}

@media print, screen and (min-width: 47.5em) {
  .primary-header nav {
    -webkit-box-shadow: none;
            box-shadow: none;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    height: auto;
    position: static;
    text-align: center;
    width: auto;
  }
}

.primary-header nav ul,
.primary-header nav li {
  display: block;
  margin: 0;
  padding: 0;
}

@media print, screen and (min-width: 47.5em) {
  .primary-header nav ul,
  .primary-header nav li {
    display: inline-block;
  }
}

.primary-header nav ul {
  padding: 0;
}

@media print, screen and (min-width: 47.5em) {
  .primary-header nav ul {
    padding: 0;
  }
}

.primary-header nav li {
  position: relative;
}

.primary-header nav a {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  border-bottom: 1px solid #6b7076;
  color: #262626;
  display: block;
  padding: .75rem 1rem;
  text-decoration: none;
}

@media print, screen and (min-width: 47.5em) {
  .primary-header nav a {
    border-bottom: 0;
    padding: 1rem .5rem;
  }
}

@media print, screen and (min-width: 62.5em) {
  .primary-header nav a {
    padding: 1rem;
  }
}

.primary-header nav a.button {
  color: #fff;
  font-weight: 700;
}

.primary-header .home-logo-link {
  border: 0;
  color: #0067a3;
  display: inline-block;
  font-family: "Fjalla One";
  font-size: 1.125rem;
  letter-spacing: -.5px;
  line-height: 1;
  padding: .5rem 0;
  text-decoration: none;
  text-transform: uppercase;
}

@media print, screen and (min-width: 47.5em) {
  .primary-header .home-logo-link {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    padding: .5rem 0;
  }
}

.primary-header .home-logo-link img {
  max-height: 40px;
  width: 58px;
}

.primary-header .button {
  color: #0067a3;
  margin: .5rem;
  padding: .625rem 1rem;
  white-space: nowrap;
  width: calc(100% - 1rem);
}

@media print, screen and (min-width: 47.5em) {
  .primary-header .button {
    margin: .5rem 0;
    width: 100%;
  }
}

.primary-header ul ul {
  background: #0092cc;
  border-radius: 10px;
  -webkit-box-shadow: 0 2px 8px 1px rgba(85, 85, 85, 0.25);
          box-shadow: 0 2px 8px 1px rgba(85, 85, 85, 0.25);
  display: none;
  left: calc(50% - 100px);
  margin-top: 1rem;
  padding: .5rem 0;
  position: absolute;
  width: 200px;
}

.primary-header ul ul::before {
  border-bottom: 10px solid #0092cc;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  content: '';
  display: inline-block;
  left: calc(50% - 10px);
  position: absolute;
  top: -10px;
}

.primary-header ul ul::after {
  content: '';
  display: block;
  height: calc(100% + 1.5rem);
  left: -.5rem;
  position: absolute;
  top: -1rem;
  width: calc(200px + 1rem);
}

.primary-header ul ul li {
  display: block;
  text-align: left;
  z-index: 10;
}

.primary-header ul ul a {
  color: #ccfdff;
  font-weight: 700;
  padding: .5rem 1rem;
}

.no-touchevents .primary-header ul ul a:hover {
  color: #fff;
}

.no-touchevents .primary-header ul li:hover ul {
  display: block;
}

.page-header-cta-heading {
  background: #eef1f3;
  position: relative;
}

.page-header-cta-heading::before {
  background: #fff;
  bottom: 0;
  content: '';
  height: 100%;
  position: absolute;
  right: 0;
  width: 33%;
}

@media print, screen and (min-width: 47.5em) {
  .page-header-cta-heading::before {
    width: 45%;
  }
}

@media print, screen and (min-width: 62.5em) {
  .page-header-cta-heading::before {
    width: 50%;
  }
}

.page-header-cta-heading::after {
  border-bottom: 300px solid transparent;
  border-right: 300px solid #fff;
  border-top: 0;
  bottom: 0;
  content: '';
  position: absolute;
  right: 33%;
}

@media print, screen and (min-width: 47.5em) {
  .page-header-cta-heading::after {
    right: 45%;
  }
}

@media print, screen and (min-width: 62.5em) {
  .page-header-cta-heading::after {
    right: 50%;
  }
}

.page-header-cta-heading .cell {
  -webkit-box-shadow: 0 3px 0 #00b8e6;
          box-shadow: 0 3px 0 #00b8e6;
  padding: 2rem 0 3rem;
  position: relative;
  z-index: 10;
}

.page-header-cta-heading .cell::after {
  background: #0067a3;
  border-radius: 5px;
  content: '';
  display: none;
  height: 38px;
  position: absolute;
  width: 38px;
}

@media print, screen and (min-width: 47.5em) {
  .page-header-cta-heading .cell::after {
    bottom: -19px;
    display: block;
    left: calc(100 / 12 * 1% + 1rem);
  }
}

@media print, screen and (min-width: 47.5em) {
  .page-header-cta-heading .cell {
    padding: 3rem 0 3rem 1.5rem;
  }
}

.page-header-cta-heading h1 {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
  margin: 0;
}

.page-header-cta-heading p {
  color: #757575;
  font-size: 1.125rem;
}

.mobile-topbar-menu {
  display: inline-block;
  float: right;
  margin: .25rem 0 0;
  padding: 0;
  width: auto;
}

.mobile-topbar-menu li {
  display: inline-block;
  margin: 0;
  padding: 0;
  width: auto;
}

.mobile-topbar-menu a {
  border: 0;
  color: #262626;
}

.mobile-topbar-menu .button {
  color: #fff;
}

.overflow-table-wrapper {
  position: relative;
}

.overflow-table-wrapper .overflow-table-inner-wrapper {
  overflow: auto;
}

table {
  border-bottom: 2px solid #00b8e6;
  border-collapse: collapse;
  table-layout: fixed;
  text-align: left;
  width: 100%;
}

table.rounded-table {
  border-radius: 10px;
  overflow: hidden;
}

table.vertical-align-middle td {
  vertical-align: middle;
}

table.table-auto-layout {
  table-layout: auto;
}

table.four-column-table th {
  width: 25%;
}

table td,
table th {
  background: #fff;
  padding: .375rem;
}

table .table-line-break {
  display: block;
  float: left;
  height: 10px;
  width: 100%;
}

table thead tr {
  border-bottom: 2px solid #00b8e6;
}

table thead th {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: .875rem;
  line-height: 1.375;
  padding: .5rem;
  text-transform: uppercase;
}

table tbody > tr {
  border-bottom: 1px solid #b3bdc7;
}

table tbody > tr:last-of-type {
  border-bottom: 0;
}

table tbody td {
  border-left: 1px solid #b3bdc7;
  font-size: .875rem;
  line-height: 1.375;
  vertical-align: top;
}

table tbody td:last-of-type {
  border-right: 1px solid #b3bdc7;
}

table tfoot {
  border-top: 2px solid #2a546d;
}

table tfoot td {
  background: #2a546d;
  color: #fff;
  border-left: 1px solid #2a546d;
  font-size: .875rem;
  line-height: 1.375;
  text-align: center;
  vertical-align: top;
}

table tfoot td:last-of-type {
  border-right: 1px solid #2a546d;
}

table .nested-table-outer-row .slide-toggle-element {
  display: none;
}

table .nested-table-outer-row > td {
  padding: 0;
}

table .nested-table {
  background: #464a4e;
}

table .nested-table-toggle {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #e8ebee;
  border-radius: 100px;
  -webkit-box-shadow: 0 2px 3px rgba(70, 74, 78, 0.25);
          box-shadow: 0 2px 3px rgba(70, 74, 78, 0.25);
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  font-size: .875rem;
  height: 20px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  line-height: 1;
  width: 20px;
}

table .nested-table-toggle i,
table .nested-table-toggle svg {
  margin-top: 2px;
}

table .nested-table-toggle.nested-table-open {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

table.email-sig {
  border: 0;
  margin: 3rem auto 0;
  max-width: 200px;
}

table.email-sig td {
  border: 0 !important;
}

@media print, screen and (max-width: 62.49875em) {
  .responsive-table {
    border: 0;
    margin-top: .5rem;
  }

  .responsive-table table,
  .responsive-table tbody,
  .responsive-table tr,
  .responsive-table td,
  .responsive-table th,
  .responsive-table tfoot {
    display: block;
  }

  .responsive-table thead {
    display: none;
  }

  .responsive-table tbody tr {
    border-bottom: 2px solid #00b8e6;
    border-top: 2px solid #00b8e6;
    margin-bottom: 2rem;
  }

  .responsive-table tbody tr:last-of-type {
    border-bottom: 2px solid #00b8e6;
    margin-bottom: 0;
  }

  .responsive-table tbody tr td:last-of-type {
    border-bottom: 0;
  }

  .responsive-table tbody td {
    border-bottom: 1px solid #464a4e;
    border-right: 1px solid #464a4e;
    padding: 1rem 1rem 1rem 40%;
    position: relative;
    width: 100% !important;
  }

  .responsive-table tbody td::before {
    font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
    font-style: normal;
    font-weight: 700;
    content: attr(data-heading);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    left: .5rem;
    position: absolute;
    top: 0;
    width: calc(40% - 1rem);
  }

  .responsive-table tbody td.responsive-full-width {
    padding-left: .5rem;
  }

  .responsive-table tbody td.responsive-full-width::before {
    display: none;
  }

  .responsive-table .order-separator {
    padding-bottom: 2rem;
  }
}

table.zebra-stripe-table > tbody > tr {
  border-bottom: 0;
}

table.zebra-stripe-table > tbody > tr:nth-of-type(even) {
  background: #e8ebee;
}

table.zebra-stripe-table > tbody > tr:nth-of-type(even).gbpn-comparison-column {
  background: #00b8e6;
}

table.zebra-stripe-table > tbody > tr:nth-of-type(even) > td {
  background: #e8ebee;
}

table.zebra-stripe-table > tbody > tr:nth-of-type(even) > td.gbpn-comparison-column {
  background: #00b8e6;
}

.faq-box {
  border-bottom: 1px dotted #b3bdc7;
  padding: 1.5rem 0 1.5rem 2.75rem;
  position: relative;
}

.faq-box:last-of-type {
  border-bottom: 0;
}

.faq-box .faq-question {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
  cursor: pointer;
  font-size: 1.5rem;
  margin: .75rem 0 1rem;
}

@media print, screen and (min-width: 47.5em) {
  .faq-box .faq-question {
    font-size: 1.75rem;
  }
}

.faq-box .faq-question .faq-icon {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  left: .25rem;
  padding: .125rem 2rem .125rem .125rem;
  position: absolute;
  top: 2rem;
}

.faq-box .faq-question svg {
  color: #b3bdc7;
  font-size: 1.5rem;
}

.faq-box .faq-question.faq-open .faq-icon {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

.faq-box .faq-question.faq-open svg {
  color: #02d909;
}

.faq-box .faq-answer {
  -webkit-transition: height 0.25s linear;
  transition: height 0.25s linear;
  height: 0;
  overflow: hidden;
}

.faq-box .faq-answer .faq-answer-content {
  border-left: 2px solid #d9dee3;
  margin: 0 0 0 1.25rem;
  max-width: 800px;
  padding: 0.5rem 0.5rem 0.5rem 1.25rem;
}

.faq-box .faq-answer .faq-answer-content p {
  margin-bottom: 0;
}

.page-home main {
  padding-top: 0;
}

.home-page-topper {
  padding: 2rem 0 6rem;
  position: relative;
  z-index: 10;
}

.touchevents .home-page-topper {
  background-attachment: scroll;
}

.home-page-topper::before {
  background: url("/assets/images/backgrounds/buildings-business-city@0,25x.jpg");
  background-attachment: scroll;
  background-position: 65% 0;
  background-size: cover;
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

@media print, screen and (min-width: 47.5em) {
  .home-page-topper::before {
    background-image: url("/assets/images/backgrounds/buildings-business-city@0,5x.jpg");
    background-attachment: fixed;
    background-position: center -400px;
    background-size: cover;
    height: 100%;
  }

  .touchevents .home-page-topper::before {
    background-attachment: scroll;
    background-position: center -400px;
  }
}

@media print, screen and (min-width: 62.5em) {
  .home-page-topper::before {
    background-image: url("/assets/images/backgrounds/buildings-business-city.jpg");
    background-position: center -400px;
  }
}

.home-page-topper::after {
  background: rgba(84, 143, 176, 0.9);
  background: linear-gradient(-45deg, rgba(53, 118, 154, 0.9), rgba(84, 143, 176, 0.9));
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 2;
}

@media print, screen and (min-width: 47.5em) {
  .home-page-topper::after {
    height: 100%;
  }
}

.home-page-topper .grid-container {
  position: relative;
  z-index: 10;
}

@media print, screen and (min-width: 47.5em) {
  .home-page-topper {
    padding: 4rem 0 6rem;
  }
}

.home-page-topper p {
  font-size: 1.25rem;
  line-height: 1.375;
}

.home-page-topper h1,
.home-page-topper h2,
.home-page-topper p {
  color: #fff;
  text-shadow: 0 2px 3px #262626;
}

.home-page-topper h1 {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  margin-bottom: 2rem;
  padding-bottom: 1.25rem;
  position: relative;
}

.home-page-topper h1::after {
  background: #00b8e6;
  bottom: 0;
  content: '';
  display: inline-block;
  height: 5px;
  left: 0;
  position: absolute;
  width: 150px;
}

.home-page-topper h2,
.home-page-topper p {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
  font-size: 2rem;
  margin: 0;
}

@media print, screen and (min-width: 47.5em) {
  .home-page-topper .cta-phone-select {
    margin-top: 2rem;
  }
}

.home-page-topper .cta-basic-button {
  padding: 2rem 0 0;
}

@media print, screen and (min-width: 62.5em) {
  .home-page-topper .cta-basic-button {
    padding: 2rem 0 3rem;
  }
}

.contact-map {
  height: 250px;
  margin-top: -1.75rem;
  width: 100%;
}

@media print, screen and (min-width: 47.5em) {
  .contact-map {
    height: 350px;
  }
}

.contact-map button {
  -webkit-box-shadow: none;
          box-shadow: none;
}

.contact-map.contact-map-no-margin {
  margin-top: 0;
}

.map-info-container {
  position: relative;
}

@media print, screen and (min-width: 47.5em) {
  .map-info-container {
    height: 100px;
  }
}

.map-info {
  background: #fff;
  border-top: 4px solid #00b8e6;
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
          box-shadow: 0 2px 8px 1px rgba(153, 153, 153, 0.25);
  left: 1rem;
  text-align: center;
  top: -3rem;
  margin: .5rem 0;
  padding: 1.5rem 1rem;
  width: 100%;
}

@media print, screen and (min-width: 47.5em) {
  .map-info {
    left: calc(50% - 150px);
    top: -5rem;
    padding: 1.5rem 0;
    position: absolute;
    width: 300px;
  }
}

.map-info a {
  color: #262626;
  text-decoration: none;
}

.touchevents .map-info a {
  color: #4294d2;
  text-decoration: underline;
}

.StripeElement {
  -webkit-transition: all 0.125s linear;
  transition: all 0.125s linear;
  font-family: "Open Sans", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  background: #fafafa;
  border: 1px solid #d9dee3;
  border-radius: 5px;
  font-size: 16px;
  line-height: 1.25;
  margin-bottom: 1.5rem;
  padding: .5rem;
}

.StripeElement--focus {
  border-color: #00b8e6;
}

.StripeElement--invalid {
  border-color: #fa755a;
}

.StripeElement--webkit-autofill {
  background-color: #fefde5 !important;
}

.add-stripe-card {
  background-color: #fafafa;
  float: left;
  width: 100%;
}

.add-stripe-card * {
  font-size: 16px;
}

.add-stripe-card .row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0 5px 10px;
}

.add-stripe-card .field {
  height: 50px;
  margin: 0 10px;
  position: relative;
  width: 100%;
}

.add-stripe-card .field.half-width {
  width: 50%;
}

.add-stripe-card .field.quarter-width {
  width: calc(25% - 10px);
}

.add-stripe-card .baseline {
  background-color: #cfd7df;
  bottom: 0;
  height: 1px;
  left: 0;
  position: absolute;
  -webkit-transition: background-color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: background-color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
  width: 100%;
}

.add-stripe-card label {
  bottom: 8px;
  color: #cfd7df;
  cursor: text;
  left: 0;
  overflow: hidden;
  position: absolute;
  text-overflow: ellipsis;
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  -webkit-transition-duration: .3s;
          transition-duration: .3s;
  -webkit-transition-property: color, -webkit-transform;
  transition-property: color, -webkit-transform;
  transition-property: color, transform;
  transition-property: color, transform, -webkit-transform;
  -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
          transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
  white-space: nowrap;
  width: 100%;
}

.add-stripe-card .input {
  background-color: transparent;
  bottom: 0;
  color: #32325d;
  left: 0;
  padding-bottom: 7px;
  position: absolute;
  width: 100%;
}

.add-stripe-card .input::-webkit-input-placeholder {
  color: transparent;
  -webkit-transition: color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.add-stripe-card .input::-moz-placeholder {
  color: transparent;
  -moz-transition: color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.add-stripe-card .input:-ms-input-placeholder {
  color: transparent;
  -ms-transition: color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.add-stripe-card .input.StripeElement {
  opacity: 0;
  -webkit-transition: opacity 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: opacity 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
  will-change: opacity;
}

.add-stripe-card .input.focused,
.add-stripe-card .input:not(.empty) {
  opacity: 1;
}

.add-stripe-card .input .input.focused::-webkit-input-placeholder,
.add-stripe-card .input .input:not(.empty)::-webkit-input-placeholder {
  color: #cfd7df;
}

.add-stripe-card .input .input.focused::-moz-placeholder,
.add-stripe-card .input .input:not(.empty)::-moz-placeholder {
  color: #cfd7df;
}

.add-stripe-card .input.focused:-ms-input-placeholder,
.add-stripe-card .input:not(.empty):-ms-input-placeholder {
  color: #cfd7df;
}

.add-stripe-card .input.focused + label,
.add-stripe-card .input:not(.empty) + label {
  color: #aab7c4;
  cursor: default;
  -webkit-transform: scale(0.85) translateY(-25px);
          transform: scale(0.85) translateY(-25px);
}

.add-stripe-card .input.focused + label {
  color: #24b47e;
}

.add-stripe-card .input.invalid + label {
  color: #ffa27b;
}

.add-stripe-card .input.focused + label + .baseline {
  background-color: #24b47e;
}

.add-stripe-card .input.focused.invalid + label + .baseline {
  background-color: #e25950;
}

.add-stripe-card button,
.add-stripe-card input {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-style: none;
  outline: none;
}

.add-stripe-card input:-webkit-autofill {
  -webkit-animation: 1ms void-animation-out;
          animation: 1ms void-animation-out;
  -webkit-text-fill-color: #e39f48;
  -webkit-transition: background-color 100000000s;
  transition: background-color 100000000s;
}

.add-stripe-card .StripeElement--webkit-autofill {
  background: transparent !important;
}

.add-stripe-card button,
.add-stripe-card input {
  -webkit-animation: 1ms void-animation-out;
          animation: 1ms void-animation-out;
}

.add-stripe-card button {
  background-color: #24b47e;
  border-radius: 4px;
  color: #fff;
  cursor: pointer;
  display: block;
  font-weight: 600;
  height: 40px;
  margin: 40px 15px 0;
  text-transform: uppercase;
  width: calc(100% - 30px);
}

.add-stripe-card input:active {
  background-color: #159570;
}

.add-stripe-card .error svg {
  margin-top: 0 !important;
}

.add-stripe-card .error svg .base {
  fill: #e25950;
}

.add-stripe-card .error svg .glyph {
  fill: #fff;
}

.add-stripe-card .error .message {
  color: #e25950;
}

.add-stripe-card .success .icon .border {
  stroke: #abe9d2;
}

.add-stripe-card .success .icon .checkmark {
  stroke: #24b47e;
}

.add-stripe-card .success .title {
  color: #32325d;
  font-size: 16px !important;
}

.add-stripe-card .success .message {
  color: #8898aa;
  font-size: 13px !important;
}

.add-stripe-card .success .reset path {
  fill: #24b47e;
}

.calendar-date {
  background: #fff;
  border-radius: 5px;
  -webkit-box-shadow: 0 1px 3px #757575;
          box-shadow: 0 1px 3px #757575;
  margin-bottom: 2rem;
  position: relative;
}

.calendar-date__month {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 300;
  color: #6b7076;
  font-size: 1rem;
  left: -3.625rem;
  letter-spacing: .05em;
  position: absolute;
  text-align: right;
  text-transform: uppercase;
  top: 4.5rem;
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
  width: 150px;
}

.calendar-date__day {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  color: #222326;
  display: block;
  font-size: 5rem;
  line-height: 1;
  padding: 3rem 0 1rem;
  position: relative;
  text-align: center;
}

.calendar-date__name {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  -ms-flex-line-pack: center;
      align-content: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  font-size: 1rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  letter-spacing: .025em;
  margin: 0;
  min-height: 70px;
  padding: .5rem 1rem;
  text-align: center;
  text-transform: uppercase;
}

.calendar-date__weekday {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 400;
  display: block;
  font-size: .875rem;
  left: 0;
  letter-spacing: .025em;
  position: absolute;
  text-align: center;
  text-transform: uppercase;
  top: 1.75rem;
  width: 100%;
}

.calendar-date__days-away {
  font-family: "Montserrat", "Helvetica", "Helvetica Neue", "Arial", sans-serif;
  font-style: normal;
  font-weight: 700;
  background: #fdeb0e;
  border-radius: 0 0 5px 5px;
  display: block;
  font-size: .875rem;
  letter-spacing: .025em;
  padding: .375rem;
  text-align: center;
  text-transform: uppercase;
}

.calendar-date__flip {
  border-radius: 5px 0 0;
  bottom: 0;
  -webkit-box-shadow: 0 0 2px 1px #d9dee3;
          box-shadow: 0 0 2px 1px #d9dee3;
  height: 25px;
  position: absolute;
  right: 0;
  width: 25px;
}

.calendar-date__flip::after {
  border-bottom: 0 solid transparent;
  border-right: 25px solid #d9dee3;
  border-top: 25px solid transparent;
  bottom: 0;
  content: '';
  position: absolute;
  right: 0;
}

.calendar-date__flip::before {
  border-bottom: 25px solid transparent;
  border-left: 25px solid #8f969e;
  border-radius: 5px 0 0;
  border-top: 0 solid transparent;
  bottom: 0;
  content: '';
  position: absolute;
  right: 0;
}

.calendar-date__posts {
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.calendar-date__posts::after,
.calendar-date__posts::before {
  background: #c8cfd5;
  border-radius: 10px;
  content: '';
  display: inline-block;
  height: 10px;
  position: absolute;
  top: 15px;
  width: 10px;
}

.calendar-date__posts::after {
  -webkit-box-shadow: -1px 2px 0 0 #8f969e, 0 1px 0 0 #8f969e;
          box-shadow: -1px 2px 0 0 #8f969e, 0 1px 0 0 #8f969e;
  right: 50px;
}

.calendar-date__posts::before {
  -webkit-box-shadow: 1px 2px 0 0 #8f969e, 0 1px 0 0 #8f969e;
          box-shadow: 1px 2px 0 0 #8f969e, 0 1px 0 0 #8f969e;
  left: 50px;
}

.ppc-page main {
  padding-top: 0;
}

[v-cloak] {
  display: none !important;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvc3R5bGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2ZvdW5kYXRpb24vX2FkanVzdG1lbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NsYXNzZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2d1dHRlcnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NlbGwuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NvbGxhcHNlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19wb3NpdGlvbi5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9iaXRzL19leHRlbmRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2ZvbnRzL3N0YXRlZmFjZS5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL3NoYXJlZC9nZW5lcmFsL19zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi9nZW5lcmFsL19sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvYml0cy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi9nZW5lcmFsL19zb2NpYWwuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL2dlbmVyYWwvX2xvYWRpbmctc3Bpbm5lci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL21haW4vZ2VuZXJhbC9faW1hZ2VzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi90eXBvZ3JhcGh5L191dGlsaXR5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi90eXBvZ3JhcGh5L19oZWFkaW5ncy5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL21haW4vdHlwb2dyYXBoeS9fbGlzdHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL3R5cG9ncmFwaHkvX3R5cGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL2JyZWFkY3J1bWJzL19icmVhZGNydW1iLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi9idXR0b25zL19idXR0b24uc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL2J1dHRvbnMvX2JvcmRlci1idXR0b24uc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL2Zvcm1zL19mb3JtLWVsZW1lbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi9mb3Jtcy9fZmxhc2gtbWVzc2FnZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL2Zvcm1zL19waG9uZS1zZWxlY3Quc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL2NhcmRzL19jYXJkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi9jYXJkcy9fbGluay1jYXJkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi9jYXJkcy9fYXJyb3ctY2FyZC5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL21haW4vY2FyZHMvX2ljb24tY2FyZC5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL21haW4vY2FyZHMvX2ZlYXR1cmUtY2FyZC5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL21haW4vY2FyZHMvX3ByaWNlLWNhcmQuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL2Zvb3RlcnMvX2Zvb3Rlci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL21haW4vZm9vdGVycy9fcHJlLWZvb3Rlci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL21haW4vZm9vdGVycy9fbGVnYWwtZm9vdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi9oZWFkZXJzL19oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL2hlYWRlcnMvX3BwYy5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL21haW4vbmF2aWdhdGlvbnMvX3N0YW5kYXJkLWhlYWRlci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL21haW4vdGFibGVzL190YWJsZS5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL21haW4vdGFibGVzL19yZXNwb25zaXZlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi90YWJsZXMvX3plYnJhLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi9mYXFzL19mYXEuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL19ob21lLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NhbGVzL2NvbXBvbmVudHMvbWFpbi9fY29udGFjdC1tYXAuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL19zdHJpcGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2FsZXMvY29tcG9uZW50cy9tYWluL19jYWxlbmRhci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9zYWxlcy9jb21wb25lbnRzL21haW4vX3BwYy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQ0tFOztBQ0xGO0VBQ0k7Q0RRSjs7QUNMQTtFQUVRO0VBQUE7RUFBQTtDRE9SOztBRGJBOzs7OztHQ29CRTs7QUVuQkE7O0FBUUE7RUFDRTtFQUNBO0NGZ0JKOztBRVJFO0VBQ0U7Q0ZXSjs7QUVMRTtFQUNFO0VBQ0E7Q0ZRSjs7QUVDRTtFQUNFO1VBQUE7RUFDQTtFQUNBO0NGRUo7O0FFSUU7RUFDRTtFQUNBO0NGREo7O0FFU0U7RUFDRTtDRk5KOztBRVlFO0VBQ0U7RUFDQTtFQUNBO1VBQUE7Q0ZUSjs7QUVjRTs7RUFFRTtDRlhKOztBRWlCRTs7O0VBR0U7RUFDQTtDRmRKOztBRW1CRTtFQUNFO0NGaEJKOztBRXNCRTs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtDRm5CSjs7QUVzQkU7RUFDRTtDRm5CSjs7QUVzQkU7RUFDRTtDRm5CSjs7QUUyQkU7RUFDRTtDRnhCSjs7QUVpQ0U7Ozs7O0VBS0U7RUFDQTtFQUNBO0VBQ0E7Q0Y5Qko7O0FFb0NFOztFQUVFO0NGakNKOztBRXVDRTs7RUFFRTtDRnBDSjs7QUV5Q0U7Ozs7RUFJRTtDRnRDSjs7QUUyQ0U7Ozs7RUFJRTtFQUNBO0NGeENKOztBRTZDRTs7OztFQUlFO0NGMUNKOztBRStDRTtFQUNFO0NGNUNKOztBRW9ERTtFQUNFO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NGakRKOztBRXNERTtFQUNFO0NGbkRKOztBRXdERTtFQUNFO0NGckRKOztBQURBOztFRThESTtVQUFBO0VBQ0E7Q0Z4REo7O0FBREE7O0VFZ0VJO0NGMURKOztBQURBO0VFa0VJO0VBQ0E7Q0Y3REo7O0FBREE7RUVvRUk7Q0YvREo7O0FFcUVFO0VBQ0U7RUFDQTtDRmxFSjs7QUUwRUU7RUFDRTtDRnZFSjs7QUU0RUU7RUFDRTtDRnpFSjs7QUVpRkU7RUFDRTtDRjlFSjs7QUFEQTtFRXFGSTtDRmhGSjs7QUczREU7RUFDRTtDSDhESjs7QUVqTUU7RUN1SUU7VUFBQTtFQUNBO0NIOERKOztBRzFERTs7O0VBR0U7VUFBQTtDSDZESjs7QUVsTUU7RUMwSUU7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFHRTtFQUNBO0NId0ROOztBRTdHRTtFQzJERTtFQUNBO0VBR0E7RUFDQTtFQUNBO0NIb0RKOztBRXhCRTtFQ3ZCRTtFQUNBO0VBQ0E7Q0htREo7O0FHL0NFO0VBQ0U7VUFBQTtFQUNBO0VBQ0E7Q0hrREo7O0FHN0NFOzs7Ozs7RUFLSTtDSGlETjs7QUc1Q0U7RUFFRTtFQUNBO0tBQUE7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q0g4Q0o7O0FBREE7RUk3REk7Q0prRUo7O0FFOU5FO0VDaUxFO0NIaURKOztBRWxKRTs7Ozs7RUMwR0U7Q0hnREo7O0FHNUNFO0VBQ0U7Q0grQ0o7O0FHNUNFO0VBQ0U7Q0grQ0o7O0FLcFJFO0VDb0JNO0VBQUE7RUNkTjtFQUNBO0VBQ0E7Q1BvUkY7O0FReEhRO0VIcEtOO0lDb0JNO0lBQUE7R044UU47Q0FDRjs7QUtuU0U7RUNvQk07RUFBQTtFQ2ROO0VBQ0E7RUFDQTtDUG1TRjs7QVF2SVE7RUhwS047SUNvQk07SUFBQTtHTjZSTjtDQUNGOztBS2xURTtFQzZCSTtFQUFBO0VDdkJKO0VBQ0E7RUFDQTtDUGtURjs7QUs3U0U7RUVTQTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtDUHdTRjs7QUs5U0U7RUk0RkE7TUFBQTtVQUFBO0VBSUU7RUFDQTtFQXNDQTtDVDhLSjs7QUtyVEU7RUk0RkE7TUFBQTtVQUFBO0NUNk5GOztBS3pURTtFSTRGQTtNQUFBO1VBQUE7Q1RpT0Y7O0FLalRFO0VJMkhFO0NUMExKOztBS3JURTtFSTJIRTtDVDhMSjs7QUt6U0k7Ozs7Ozs7Ozs7Ozs7O0VBTUk7TUFBQTtDTG9UUjs7QVFuTVE7RUh2SEo7Ozs7Ozs7Ozs7Ozs7O0lBTUk7UUFBQTtHTHNVTjtDQUNGOztBUXROUTtFSHZISjs7Ozs7Ozs7Ozs7Ozs7SUFNSTtRQUFBO0dMeVZOO0NBQ0Y7O0FRek9RO0VIdkhKOzs7Ozs7Ozs7Ozs7OztJQU1JO1FBQUE7R0w0V047Q0FDRjs7QUtoV0k7Ozs7Ozs7Ozs7OztFSTZDRjtNQUFBO1VBQUE7Q1RrVUY7O0FLaFdNO0VJeUVGO0NUMlJKOztBS3BXTTtFSXlFRjtDVCtSSjs7QUt4V007RUl5RUY7Q1RtU0o7O0FLNVdNO0VJeUVGO0NUdVNKOztBS2hYTTtFSXlFRjtDVDJTSjs7QUtwWE07RUl5RUY7Q1QrU0o7O0FLeFhNO0VJeUVGO0NUbVRKOztBSzVYTTtFSXlFRjtDVHVUSjs7QUtoWU07RUl5RUY7Q1QyVEo7O0FLcFlNO0VJeUVGO0NUK1RKOztBS3hZTTtFSXlFRjtDVG1VSjs7QUs1WU07RUl5RUY7Q1R1VUo7O0FRM1RRO0VIekdGO0lJa0RKO1FBQUE7WUFBQTtJQTJDRTtHVDZVRjs7RUtyYUU7Ozs7Ozs7Ozs7Ozs7SUk2Q0Y7UUFBQTtZQUFBO0dUd1lBOztFSy9hSTtJSWtGRjtHVGlXRjs7RUsxYUk7SUl5RUY7R1RxV0Y7O0VLOWFJO0lJeUVGO0dUeVdGOztFS2xiSTtJSXlFRjtHVDZXRjs7RUt0Ykk7SUl5RUY7R1RpWEY7O0VLMWJJO0lJeUVGO0dUcVhGOztFSzliSTtJSXlFRjtHVHlYRjs7RUtsY0k7SUl5RUY7R1Q2WEY7O0VLdGNJO0lJeUVGO0dUaVlGOztFSzFjSTtJSXlFRjtHVHFZRjs7RUs5Y0k7SUl5RUY7R1R5WUY7O0VLbGRJO0lJeUVGO0dUNllGOztFS3RkSTtJSXlFRjtHVGlaRjtDQUNGOztBUXRZUTtFSHpHRjtJSWtESjtRQUFBO1lBQUE7SUEyQ0U7R1R3WkY7O0VLaGZFOzs7Ozs7Ozs7Ozs7O0lJNkNGO1FBQUE7WUFBQTtHVG1kQTs7RUsxZkk7SUlrRkY7R1Q0YUY7O0VLcmZJO0lJeUVGO0dUZ2JGOztFS3pmSTtJSXlFRjtHVG9iRjs7RUs3Zkk7SUl5RUY7R1R3YkY7O0VLamdCSTtJSXlFRjtHVDRiRjs7RUtyZ0JJO0lJeUVGO0dUZ2NGOztFS3pnQkk7SUl5RUY7R1RvY0Y7O0VLN2dCSTtJSXlFRjtHVHdjRjs7RUtqaEJJO0lJeUVGO0dUNGNGOztFS3JoQkk7SUl5RUY7R1RnZEY7O0VLemhCSTtJSXlFRjtHVG9kRjs7RUs3aEJJO0lJeUVGO0dUd2RGOztFS2ppQkk7SUl5RUY7R1Q0ZEY7Q0FDRjs7QVFqZFE7RUh6R0Y7SUlrREo7UUFBQTtZQUFBO0lBMkNFO0dUbWVGOztFSzNqQkU7Ozs7Ozs7Ozs7Ozs7SUk2Q0Y7UUFBQTtZQUFBO0dUOGhCQTs7RUtya0JJO0lJa0ZGO0dUdWZGOztFS2hrQkk7SUl5RUY7R1QyZkY7O0VLcGtCSTtJSXlFRjtHVCtmRjs7RUt4a0JJO0lJeUVGO0dUbWdCRjs7RUs1a0JJO0lJeUVGO0dUdWdCRjs7RUtobEJJO0lJeUVGO0dUMmdCRjs7RUtwbEJJO0lJeUVGO0dUK2dCRjs7RUt4bEJJO0lJeUVGO0dUbWhCRjs7RUs1bEJJO0lJeUVGO0dUdWhCRjs7RUtobUJJO0lJeUVGO0dUMmhCRjs7RUtwbUJJO0lJeUVGO0dUK2hCRjs7RUt4bUJJO0lJeUVGO0dUbWlCRjs7RUs1bUJJO0lJeUVGO0dUdWlCRjtDQUNGOztBS3ptQkU7RUFDRTtDTDRtQko7O0FLeG1CRTtFQUNFO0NMMm1CSjs7QUs3a0JFO0VDdkdNO0VBQUE7Q055ckJSOztBUXppQlE7RUh6Q047SUN2R007SUFBQTtHTityQk47Q0FDRjs7QUt6bEJFO0VJNkJFO0VIM0hFO0VBQUE7Q042ckJOOztBUXRqQlE7RUh6Q047SUk2QkU7SUgzSEU7SUFBQTtHTm9zQko7Q0FDRjs7QUsvbkJFO0VJcURFO0NUOGtCSjs7QUsvbkJFO0VJaURFO0NUa2xCSjs7QUszbkJJO0VJeUNBO0NUc2xCSjs7QUsvbkJJO0VJeUNBO0NUMGxCSjs7QUtub0JJO0VJeUNBO0NUOGxCSjs7QUt2b0JJO0VJeUNBO0NUa21CSjs7QUszb0JJO0VJeUNBO0NUc21CSjs7QUsvb0JJO0VJeUNBO0NUMG1CSjs7QUtucEJJO0VJeUNBO0NUOG1CSjs7QUt2cEJJO0VJeUNBO0NUa25CSjs7QUszcEJJO0VJeUNBO0NUc25CSjs7QUsvcEJJO0VJeUNBO0NUMG5CSjs7QUtucUJJO0VJeUNBO0NUOG5CSjs7QUt2cUJJO0VJeUNBO0NUa29CSjs7QVF0bkJRO0VIakVOO0lJcURFO0dUdW9CRjs7RUt4ckJBO0lJaURFO0dUMm9CRjs7RUtwckJFO0lJeUNBO0dUK29CRjs7RUt4ckJFO0lJeUNBO0dUbXBCRjs7RUs1ckJFO0lJeUNBO0dUdXBCRjs7RUtoc0JFO0lJeUNBO0dUMnBCRjs7RUtwc0JFO0lJeUNBO0dUK3BCRjs7RUt4c0JFO0lJeUNBO0dUbXFCRjs7RUs1c0JFO0lJeUNBO0dUdXFCRjs7RUtodEJFO0lJeUNBO0dUMnFCRjs7RUtwdEJFO0lJeUNBO0dUK3FCRjs7RUt4dEJFO0lJeUNBO0dUbXJCRjs7RUs1dEJFO0lJeUNBO0dUdXJCRjs7RUtodUJFO0lJeUNBO0dUMnJCRjs7RUtodkJBO0lJcURFO0dUK3JCRjs7RUtodkJBO0lJaURFO0dUbXNCRjs7RUs1dUJFO0lJeUNBO0dUdXNCRjs7RUtodkJFO0lJeUNBO0dUMnNCRjs7RUtwdkJFO0lJeUNBO0dUK3NCRjs7RUt4dkJFO0lJeUNBO0dUbXRCRjs7RUs1dkJFO0lJeUNBO0dUdXRCRjs7RUtod0JFO0lJeUNBO0dUMnRCRjs7RUtwd0JFO0lJeUNBO0dUK3RCRjs7RUt4d0JFO0lJeUNBO0dUbXVCRjs7RUs1d0JFO0lJeUNBO0dUdXVCRjs7RUtoeEJFO0lJeUNBO0dUMnVCRjs7RUtweEJFO0lJeUNBO0dUK3VCRjs7RUt4eEJFO0lJeUNBO0dUbXZCRjtDQUNGOztBUXh1QlE7RUhqRU47SUlxREU7R1R5dkJGOztFSzF5QkE7SUlpREU7R1Q2dkJGOztFS3R5QkU7SUl5Q0E7R1Rpd0JGOztFSzF5QkU7SUl5Q0E7R1Rxd0JGOztFSzl5QkU7SUl5Q0E7R1R5d0JGOztFS2x6QkU7SUl5Q0E7R1Q2d0JGOztFS3R6QkU7SUl5Q0E7R1RpeEJGOztFSzF6QkU7SUl5Q0E7R1RxeEJGOztFSzl6QkU7SUl5Q0E7R1R5eEJGOztFS2wwQkU7SUl5Q0E7R1Q2eEJGOztFS3QwQkU7SUl5Q0E7R1RpeUJGOztFSzEwQkU7SUl5Q0E7R1RxeUJGOztFSzkwQkU7SUl5Q0E7R1R5eUJGOztFS2wxQkU7SUl5Q0E7R1Q2eUJGO0NBQ0Y7O0FRbHlCUTtFSGpFTjtJSXFERTtHVG16QkY7O0VLcDJCQTtJSWlERTtHVHV6QkY7O0VLaDJCRTtJSXlDQTtHVDJ6QkY7O0VLcDJCRTtJSXlDQTtHVCt6QkY7O0VLeDJCRTtJSXlDQTtHVG0wQkY7O0VLNTJCRTtJSXlDQTtHVHUwQkY7O0VLaDNCRTtJSXlDQTtHVDIwQkY7O0VLcDNCRTtJSXlDQTtHVCswQkY7O0VLeDNCRTtJSXlDQTtHVG0xQkY7O0VLNTNCRTtJSXlDQTtHVHUxQkY7O0VLaDRCRTtJSXlDQTtHVDIxQkY7O0VLcDRCRTtJSXlDQTtHVCsxQkY7O0VLeDRCRTtJSXlDQTtHVG0yQkY7O0VLNTRCRTtJSXlDQTtHVHUyQkY7Q0FDRjs7QUtqMkJFO0VDM0lNO0VBQUE7Q05pL0JSOztBUWoyQlE7RUhMTjtJQzNJTTtJQUFBO0dOdS9CTjtDQUNGOztBS3AyQkk7RUNwSkk7RUFBQTtDTjYvQlI7O0FRNzJCUTtFSElKO0lDcEpJO0lBQUE7R05tZ0NOO0NBQ0Y7O0FLejNCRTtFQzNJTTtFQUFBO0NOeWdDUjs7QVF6M0JRO0VITE47SUMzSU07SUFBQTtHTitnQ047Q0FDRjs7QUt6MEJNO0VLOU1FO0VBQUE7Q1Y0aENSOztBVXpoQ007RUFFSTtFQUFBO0NWNGhDVjs7QVV0Z0NZO0VEZ0hSO0NUMDVCSjs7QVUxZ0NZO0VEZ0hSO0NUODVCSjs7QVU5Z0NZO0VEZ0hSO0NUazZCSjs7QVVsaENZO0VEZ0hSO0NUczZCSjs7QVV0aENZO0VEZ0hSO0NUMDZCSjs7QVUxaENZO0VEZ0hSO0NUODZCSjs7QVU5aENZO0VEZ0hSO0NUazdCSjs7QVVsaUNZO0VEZ0hSO0NUczdCSjs7QVV0aUNZO0VEZ0hSO0NUMDdCSjs7QVUxaUNZO0VEZ0hSO0NUODdCSjs7QVU5aUNZO0VEZ0hSO0NUazhCSjs7QVVsakNZO0VEZ0hSO0NUczhCSjs7QVExN0JRO0VFNUhJO0lEZ0hSO0dUMjhCRjs7RVUzakNVO0lEZ0hSO0dUKzhCRjs7RVUvakNVO0lEZ0hSO0dUbTlCRjs7RVVua0NVO0lEZ0hSO0dUdTlCRjs7RVV2a0NVO0lEZ0hSO0dUMjlCRjs7RVUza0NVO0lEZ0hSO0dUKzlCRjs7RVUva0NVO0lEZ0hSO0dUbStCRjs7RVVubENVO0lEZ0hSO0dUdStCRjs7RVV2bENVO0lEZ0hSO0dUMitCRjs7RVUzbENVO0lEZ0hSO0dUKytCRjs7RVUvbENVO0lEZ0hSO0dUbS9CRjs7RVVubUNVO0lEZ0hSO0dUdS9CRjtDQUNGOztBUTUrQlE7RUU1SEk7SURnSFI7R1Q2L0JGOztFVTdtQ1U7SURnSFI7R1RpZ0NGOztFVWpuQ1U7SURnSFI7R1RxZ0NGOztFVXJuQ1U7SURnSFI7R1R5Z0NGOztFVXpuQ1U7SURnSFI7R1Q2Z0NGOztFVTduQ1U7SURnSFI7R1RpaENGOztFVWpvQ1U7SURnSFI7R1RxaENGOztFVXJvQ1U7SURnSFI7R1R5aENGOztFVXpvQ1U7SURnSFI7R1Q2aENGOztFVTdvQ1U7SURnSFI7R1RpaUNGOztFVWpwQ1U7SURnSFI7R1RxaUNGOztFVXJwQ1U7SURnSFI7R1R5aUNGO0NBQ0Y7O0FROWhDUTtFRTVISTtJRGdIUjtHVCtpQ0Y7O0VVL3BDVTtJRGdIUjtHVG1qQ0Y7O0VVbnFDVTtJRGdIUjtHVHVqQ0Y7O0VVdnFDVTtJRGdIUjtHVDJqQ0Y7O0VVM3FDVTtJRGdIUjtHVCtqQ0Y7O0VVL3FDVTtJRGdIUjtHVG1rQ0Y7O0VVbnJDVTtJRGdIUjtHVHVrQ0Y7O0VVdnJDVTtJRGdIUjtHVDJrQ0Y7O0VVM3JDVTtJRGdIUjtHVCtrQ0Y7O0VVL3JDVTtJRGdIUjtHVG1sQ0Y7O0VVbnNDVTtJRGdIUjtHVHVsQ0Y7O0VVdnNDVTtJRGdIUjtHVDJsQ0Y7Q0FDRjs7QUtuaENNO0VLN0tFO0VBQUE7Q1Zxc0NSOztBVWxzQ007RUFFSTtFQUFBO0NWcXNDVjs7QVExbENRO0VIdURGO0lLOU1FO0lBQUE7R1Z1dkNOOztFVXB2Q0k7SUFFSTtJQUFBO0dWdXZDUjtDQUNGOztBUXRtQ1E7RUVySUk7SUR5SFI7R1R1bkNGOztFVWh2Q1U7SUR5SFI7R1QybkNGOztFVXB2Q1U7SUR5SFI7R1QrbkNGOztFVXh2Q1U7SUR5SFI7R1Rtb0NGOztFVTV2Q1U7SUR5SFI7R1R1b0NGOztFVWh3Q1U7SUR5SFI7R1Qyb0NGOztFVXB3Q1U7SUR5SFI7R1Qrb0NGOztFVXh3Q1U7SUR5SFI7R1RtcENGOztFVTV3Q1U7SUR5SFI7R1R1cENGOztFVWh4Q1U7SUR5SFI7R1QycENGOztFVXB4Q1U7SUR5SFI7R1QrcENGOztFVXh4Q1U7SUR5SFI7R1RtcUNGO0NBQ0Y7O0FReHBDUTtFRTVISTtJRGdIUjtHVHlxQ0Y7O0VVenhDVTtJRGdIUjtHVDZxQ0Y7O0VVN3hDVTtJRGdIUjtHVGlyQ0Y7O0VVanlDVTtJRGdIUjtHVHFyQ0Y7O0VVcnlDVTtJRGdIUjtHVHlyQ0Y7O0VVenlDVTtJRGdIUjtHVDZyQ0Y7O0VVN3lDVTtJRGdIUjtHVGlzQ0Y7O0VVanpDVTtJRGdIUjtHVHFzQ0Y7O0VVcnpDVTtJRGdIUjtHVHlzQ0Y7O0VVenpDVTtJRGdIUjtHVDZzQ0Y7O0VVN3pDVTtJRGdIUjtHVGl0Q0Y7O0VVajBDVTtJRGdIUjtHVHF0Q0Y7Q0FDRjs7QVExc0NRO0VFNUhJO0lEZ0hSO0dUMnRDRjs7RVUzMENVO0lEZ0hSO0dUK3RDRjs7RVUvMENVO0lEZ0hSO0dUbXVDRjs7RVVuMUNVO0lEZ0hSO0dUdXVDRjs7RVV2MUNVO0lEZ0hSO0dUMnVDRjs7RVUzMUNVO0lEZ0hSO0dUK3VDRjs7RVUvMUNVO0lEZ0hSO0dUbXZDRjs7RVVuMkNVO0lEZ0hSO0dUdXZDRjs7RVV2MkNVO0lEZ0hSO0dUMnZDRjs7RVUzMkNVO0lEZ0hSO0dUK3ZDRjs7RVUvMkNVO0lEZ0hSO0dUbXdDRjs7RVVuM0NVO0lEZ0hSO0dUdXdDRjtDQUNGOztBUTV2Q1E7RUU1SEk7SURnSFI7R1Q2d0NGOztFVTczQ1U7SURnSFI7R1RpeENGOztFVWo0Q1U7SURnSFI7R1RxeENGOztFVXI0Q1U7SURnSFI7R1R5eENGOztFVXo0Q1U7SURnSFI7R1Q2eENGOztFVTc0Q1U7SURnSFI7R1RpeUNGOztFVWo1Q1U7SURnSFI7R1RxeUNGOztFVXI1Q1U7SURnSFI7R1R5eUNGOztFVXo1Q1U7SURnSFI7R1Q2eUNGOztFVTc1Q1U7SURnSFI7R1RpekNGOztFVWo2Q1U7SURnSFI7R1RxekNGOztFVXI2Q1U7SURnSFI7R1R5ekNGO0NBQ0Y7O0FROXlDUTtFSDZERjtJSzdLRTtJQUFBO0dWbzZDTjs7RVVqNkNJO0lBRUk7SUFBQTtHVm82Q1I7Q0FDRjs7QVExekNRO0VIdURGO0lLOU1FO0lBQUE7R1Z1OUNOOztFVXA5Q0k7SUFFSTtJQUFBO0dWdTlDUjtDQUNGOztBUXQwQ1E7RUVySUk7SUR5SFI7R1R1MUNGOztFVWg5Q1U7SUR5SFI7R1QyMUNGOztFVXA5Q1U7SUR5SFI7R1QrMUNGOztFVXg5Q1U7SUR5SFI7R1RtMkNGOztFVTU5Q1U7SUR5SFI7R1R1MkNGOztFVWgrQ1U7SUR5SFI7R1QyMkNGOztFVXArQ1U7SUR5SFI7R1QrMkNGOztFVXgrQ1U7SUR5SFI7R1RtM0NGOztFVTUrQ1U7SUR5SFI7R1R1M0NGOztFVWgvQ1U7SUR5SFI7R1QyM0NGOztFVXAvQ1U7SUR5SFI7R1QrM0NGOztFVXgvQ1U7SUR5SFI7R1RtNENGO0NBQ0Y7O0FReDNDUTtFRXJJSTtJRHlIUjtHVHk0Q0Y7O0VVbGdEVTtJRHlIUjtHVDY0Q0Y7O0VVdGdEVTtJRHlIUjtHVGk1Q0Y7O0VVMWdEVTtJRHlIUjtHVHE1Q0Y7O0VVOWdEVTtJRHlIUjtHVHk1Q0Y7O0VVbGhEVTtJRHlIUjtHVDY1Q0Y7O0VVdGhEVTtJRHlIUjtHVGk2Q0Y7O0VVMWhEVTtJRHlIUjtHVHE2Q0Y7O0VVOWhEVTtJRHlIUjtHVHk2Q0Y7O0VVbGlEVTtJRHlIUjtHVDY2Q0Y7O0VVdGlEVTtJRHlIUjtHVGk3Q0Y7O0VVMWlEVTtJRHlIUjtHVHE3Q0Y7Q0FDRjs7QVExNkNRO0VFNUhJO0lEZ0hSO0dUMjdDRjs7RVUzaURVO0lEZ0hSO0dUKzdDRjs7RVUvaURVO0lEZ0hSO0dUbThDRjs7RVVuakRVO0lEZ0hSO0dUdThDRjs7RVV2akRVO0lEZ0hSO0dUMjhDRjs7RVUzakRVO0lEZ0hSO0dUKzhDRjs7RVUvakRVO0lEZ0hSO0dUbTlDRjs7RVVua0RVO0lEZ0hSO0dUdTlDRjs7RVV2a0RVO0lEZ0hSO0dUMjlDRjs7RVUza0RVO0lEZ0hSO0dUKzlDRjs7RVUva0RVO0lEZ0hSO0dUbStDRjs7RVVubERVO0lEZ0hSO0dUdStDRjtDQUNGOztBUTU5Q1E7RUU1SEk7SURnSFI7R1Q2K0NGOztFVTdsRFU7SURnSFI7R1RpL0NGOztFVWptRFU7SURnSFI7R1RxL0NGOztFVXJtRFU7SURnSFI7R1R5L0NGOztFVXptRFU7SURnSFI7R1Q2L0NGOztFVTdtRFU7SURnSFI7R1RpZ0RGOztFVWpuRFU7SURnSFI7R1RxZ0RGOztFVXJuRFU7SURnSFI7R1R5Z0RGOztFVXpuRFU7SURnSFI7R1Q2Z0RGOztFVTduRFU7SURnSFI7R1RpaERGOztFVWpvRFU7SURnSFI7R1RxaERGOztFVXJvRFU7SURnSFI7R1R5aERGO0NBQ0Y7O0FROWdEUTtFSDZERjtJSzdLRTtJQUFBO0dWb29ETjs7RVVqb0RJO0lBRUk7SUFBQTtHVm9vRFI7Q0FDRjs7QVExaERRO0VIdURGO0lLOU1FO0lBQUE7R1Z1ckROOztFVXByREk7SUFFSTtJQUFBO0dWdXJEUjtDQUNGOztBUXRpRFE7RUVySUk7SUR5SFI7R1R1akRGOztFVWhyRFU7SUR5SFI7R1QyakRGOztFVXByRFU7SUR5SFI7R1QrakRGOztFVXhyRFU7SUR5SFI7R1Rta0RGOztFVTVyRFU7SUR5SFI7R1R1a0RGOztFVWhzRFU7SUR5SFI7R1Qya0RGOztFVXBzRFU7SUR5SFI7R1Qra0RGOztFVXhzRFU7SUR5SFI7R1RtbERGOztFVTVzRFU7SUR5SFI7R1R1bERGOztFVWh0RFU7SUR5SFI7R1QybERGOztFVXB0RFU7SUR5SFI7R1QrbERGOztFVXh0RFU7SUR5SFI7R1RtbURGO0NBQ0Y7O0FReGxEUTtFRXJJSTtJRHlIUjtHVHltREY7O0VVbHVEVTtJRHlIUjtHVDZtREY7O0VVdHVEVTtJRHlIUjtHVGluREY7O0VVMXVEVTtJRHlIUjtHVHFuREY7O0VVOXVEVTtJRHlIUjtHVHluREY7O0VVbHZEVTtJRHlIUjtHVDZuREY7O0VVdHZEVTtJRHlIUjtHVGlvREY7O0VVMXZEVTtJRHlIUjtHVHFvREY7O0VVOXZEVTtJRHlIUjtHVHlvREY7O0VVbHdEVTtJRHlIUjtHVDZvREY7O0VVdHdEVTtJRHlIUjtHVGlwREY7O0VVMXdEVTtJRHlIUjtHVHFwREY7Q0FDRjs7QVExb0RRO0VFcklJO0lEeUhSO0dUMnBERjs7RVVweERVO0lEeUhSO0dUK3BERjs7RVV4eERVO0lEeUhSO0dUbXFERjs7RVU1eERVO0lEeUhSO0dUdXFERjs7RVVoeURVO0lEeUhSO0dUMnFERjs7RVVweURVO0lEeUhSO0dUK3FERjs7RVV4eURVO0lEeUhSO0dUbXJERjs7RVU1eURVO0lEeUhSO0dUdXJERjs7RVVoekRVO0lEeUhSO0dUMnJERjs7RVVwekRVO0lEeUhSO0dUK3JERjs7RVV4ekRVO0lEeUhSO0dUbXNERjs7RVU1ekRVO0lEeUhSO0dUdXNERjtDQUNGOztBUTVyRFE7RUU1SEk7SURnSFI7R1Q2c0RGOztFVTd6RFU7SURnSFI7R1RpdERGOztFVWowRFU7SURnSFI7R1RxdERGOztFVXIwRFU7SURnSFI7R1R5dERGOztFVXowRFU7SURnSFI7R1Q2dERGOztFVTcwRFU7SURnSFI7R1RpdURGOztFVWoxRFU7SURnSFI7R1RxdURGOztFVXIxRFU7SURnSFI7R1R5dURGOztFVXoxRFU7SURnSFI7R1Q2dURGOztFVTcxRFU7SURnSFI7R1RpdkRGOztFVWoyRFU7SURnSFI7R1RxdkRGOztFVXIyRFU7SURnSFI7R1R5dkRGO0NBQ0Y7O0FROXVEUTtFSDZERjtJSzdLRTtJQUFBO0dWbzJETjs7RVVqMkRJO0lBRUk7SUFBQTtHVm8yRFI7Q0FDRjs7QUsvcURNO0VNdk1GO0NYMDNESjs7QUsvcURNO0VNM01GO0NYODNESjs7QUt2ckRNO0VNdk1GO0NYazRESjs7QUt2ckRNO0VNM01GO0NYczRESjs7QUsvckRNO0VNdk1GO0NYMDRESjs7QUsvckRNO0VNM01GO0NYODRESjs7QUt2c0RNO0VNdk1GO0NYazVESjs7QUt2c0RNO0VNM01GO0NYczVESjs7QUsvc0RNO0VNdk1GO0NYMDVESjs7QUsvc0RNO0VNM01GO0NYODVESjs7QUt2dERNO0VNdk1GO0NYazZESjs7QUt2dERNO0VNM01GO0NYczZESjs7QUsvdERNO0VNdk1GO0NYMDZESjs7QUsvdERNO0VNM01GO0NYODZESjs7QUt2dURNO0VNdk1GO0NYazdESjs7QUt2dURNO0VNM01GO0NYczdESjs7QUsvdURNO0VNdk1GO0NYMDdESjs7QUsvdURNO0VNM01GO0NYODdESjs7QUt2dkRNO0VNdk1GO0NYazhESjs7QUt2dkRNO0VNM01GO0NYczhESjs7QUsvdkRNO0VNdk1GO0NYMDhESjs7QUsvdkRNO0VNM01GO0NYODhESjs7QUt2d0RNO0VNdk1GO0NYazlESjs7QUt2d0RNO0VNM01GO0NYczlESjs7QVExMURRO0VIMkVGO0lNdk1GO0dYMjlERjs7RUtoeERJO0lNM01GO0dYKzlERjs7RUt4eERJO0lNdk1GO0dYbStERjs7RUt4eERJO0lNM01GO0dYdStERjs7RUtoeURJO0lNdk1GO0dYMitERjs7RUtoeURJO0lNM01GO0dYKytERjs7RUt4eURJO0lNdk1GO0dYbS9ERjs7RUt4eURJO0lNM01GO0dYdS9ERjs7RUtoekRJO0lNdk1GO0dYMi9ERjs7RUtoekRJO0lNM01GO0dYKy9ERjs7RUt4ekRJO0lNdk1GO0dYbWdFRjs7RUt4ekRJO0lNM01GO0dYdWdFRjs7RUtoMERJO0lNdk1GO0dYMmdFRjs7RUtoMERJO0lNM01GO0dYK2dFRjs7RUt4MERJO0lNdk1GO0dYbWhFRjs7RUt4MERJO0lNM01GO0dYdWhFRjs7RUtoMURJO0lNdk1GO0dYMmhFRjs7RUtoMURJO0lNM01GO0dYK2hFRjs7RUt4MURJO0lNdk1GO0dYbWlFRjs7RUt4MURJO0lNM01GO0dYdWlFRjs7RUtoMkRJO0lNdk1GO0dYMmlFRjs7RUtoMkRJO0lNM01GO0dYK2lFRjs7RUt4MkRJO0lNdk1GO0dYbWpFRjs7RUt4MkRJO0lNM01GO0dYdWpFRjtDQUNGOztBUTU3RFE7RUgyRUY7SU12TUY7R1g2akVGOztFS2wzREk7SU0zTUY7R1hpa0VGOztFSzEzREk7SU12TUY7R1hxa0VGOztFSzEzREk7SU0zTUY7R1h5a0VGOztFS2w0REk7SU12TUY7R1g2a0VGOztFS2w0REk7SU0zTUY7R1hpbEVGOztFSzE0REk7SU12TUY7R1hxbEVGOztFSzE0REk7SU0zTUY7R1h5bEVGOztFS2w1REk7SU12TUY7R1g2bEVGOztFS2w1REk7SU0zTUY7R1hpbUVGOztFSzE1REk7SU12TUY7R1hxbUVGOztFSzE1REk7SU0zTUY7R1h5bUVGOztFS2w2REk7SU12TUY7R1g2bUVGOztFS2w2REk7SU0zTUY7R1hpbkVGOztFSzE2REk7SU12TUY7R1hxbkVGOztFSzE2REk7SU0zTUY7R1h5bkVGOztFS2w3REk7SU12TUY7R1g2bkVGOztFS2w3REk7SU0zTUY7R1hpb0VGOztFSzE3REk7SU12TUY7R1hxb0VGOztFSzE3REk7SU0zTUY7R1h5b0VGOztFS2w4REk7SU12TUY7R1g2b0VGOztFS2w4REk7SU0zTUY7R1hpcEVGOztFSzE4REk7SU12TUY7R1hxcEVGOztFSzE4REk7SU0zTUY7R1h5cEVGO0NBQ0Y7O0FROWhFUTtFSDJFRjtJTXZNRjtHWCtwRUY7O0VLcDlESTtJTTNNRjtHWG1xRUY7O0VLNTlESTtJTXZNRjtHWHVxRUY7O0VLNTlESTtJTTNNRjtHWDJxRUY7O0VLcCtESTtJTXZNRjtHWCtxRUY7O0VLcCtESTtJTTNNRjtHWG1yRUY7O0VLNStESTtJTXZNRjtHWHVyRUY7O0VLNStESTtJTTNNRjtHWDJyRUY7O0VLcC9ESTtJTXZNRjtHWCtyRUY7O0VLcC9ESTtJTTNNRjtHWG1zRUY7O0VLNS9ESTtJTXZNRjtHWHVzRUY7O0VLNS9ESTtJTTNNRjtHWDJzRUY7O0VLcGdFSTtJTXZNRjtHWCtzRUY7O0VLcGdFSTtJTTNNRjtHWG10RUY7O0VLNWdFSTtJTXZNRjtHWHV0RUY7O0VLNWdFSTtJTTNNRjtHWDJ0RUY7O0VLcGhFSTtJTXZNRjtHWCt0RUY7O0VLcGhFSTtJTTNNRjtHWG11RUY7O0VLNWhFSTtJTXZNRjtHWHV1RUY7O0VLNWhFSTtJTTNNRjtHWDJ1RUY7O0VLcGlFSTtJTXZNRjtHWCt1RUY7O0VLcGlFSTtJTTNNRjtHWG12RUY7O0VLNWlFSTtJTXZNRjtHWHV2RUY7O0VLNWlFSTtJTTNNRjtHWDJ2RUY7Q0FDRjs7QVlodkVFO0VBQ0U7Q1ptdkVKOztBWWh2RUU7RUFDRTtDWm12RUo7O0FReG9FUTtFSTVGSjtJQTFCQTtHWm13RUY7Q0FDRjs7QVl2eEVJO0VBaURBO0lBaERFO0daMnhFSjtDQUNGOztBUXBwRVE7RUlyR0Y7SUF6QkY7R1p1eEVGO0NBQ0Y7O0FRcnBFUTtFSXRHRjtJQWpFRjtHWmkwRUY7Q0FDRjs7QVFocUVRO0VJNUZKO0lBMUJBO0daMnhFRjtDQUNGOztBWS95RUk7RUFpREE7SUFoREU7R1ptekVKO0NBQ0Y7O0FRNXFFUTtFSXJHRjtJQXpCRjtHWit5RUY7Q0FDRjs7QVE3cUVRO0VJdEdGO0lBakVGO0daeTFFRjtDQUNGOztBUXhyRVE7RUk1Rko7SUExQkE7R1ptekVGO0NBQ0Y7O0FZdjBFSTtFQWlEQTtJQWhERTtHWjIwRUo7Q0FDRjs7QVFwc0VRO0VJckdGO0lBekJGO0dadTBFRjtDQUNGOztBUXJzRVE7RUl0R0Y7SUFqRUY7R1ppM0VGO0NBQ0Y7O0FRaHRFUTtFSTVGSjtJQTFCQTtHWjIwRUY7Q0FDRjs7QVkvMUVJO0VBaURBO0lBaERFO0dabTJFSjtDQUNGOztBWTd5RUU7O0VSeUhBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q0p5ckVGOztBWW56RUU7O0VSb0lBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDSm9yRUY7O0FZcnpFRTs7RUFFRTtDWnd6RUo7O0FRbHZFUTtFSXhFTjs7SUFLSTtHWjJ6RUo7Q0FDRjs7QVF6dkVRO0VJeEVOOztJQVNJO0daOHpFSjtDQUNGOztBWTN6RUU7O0VBRUU7Q1o4ekVKOztBUXJ3RVE7RUkzRE47O0lBS0k7R1ppMEVKO0NBQ0Y7O0FRNXdFUTtFSTNETjs7SUFTSTtHWm8wRUo7Q0FDRjs7QWEvN0VFO0VBQ0U7Q2JrOEVKOztBYS83RUU7RUFDRTtDYms4RUo7O0FhLzdFRTtFQUNFO0VBQ0E7RUFDQTtDYms4RUo7O0FJN3lFRTs7RUFFRTtFQUNBO0VBR0U7TUFBQTtFQUNBO01BQUE7VUFBQTtDSjh5RU47O0FJMXlFRTtFQUNFO0NKNnlFSjs7QWN4NUVJO0VDbkJGO01BQUE7VUFBQTtDZis2RUY7O0FjNTVFSTtFQ25CRjtNQUFBO1VBQUE7Q2ZtN0VGOztBY2g2RUk7RUNuQkY7TUFBQTtVQUFBO0NmdTdFRjs7QWNwNkVJO0VDbkJGO01BQUE7VUFBQTtDZjI3RUY7O0FjeDZFSTtFQ25CRjtNQUFBO0NmKzdFRjs7QWNyNkVJO0VDMUJGO01BQUE7VUFBQTtDZm04RUY7O0FjejZFSTtFQzFCRjtNQUFBO1VBQUE7Q2Z1OEVGOztBYzc2RUk7RUMxQkY7TUFBQTtVQUFBO0NmMjhFRjs7QWN0NkVJO0VDcENGO01BQUE7VUFBQTtDZjg4RUY7O0FjdDZFSTtFQ3hCRjtNQUFBO0NmazhFRjs7QWM5NkVJO0VDcENGO01BQUE7VUFBQTtDZnM5RUY7O0FjOTZFSTtFQ3hCRjtNQUFBO0NmMDhFRjs7QWN0N0VJO0VDcENGO01BQUE7VUFBQTtDZjg5RUY7O0FjdDdFSTtFQ3hCRjtNQUFBO0NmazlFRjs7QWM5N0VJO0VDcENGO01BQUE7VUFBQTtDZnMrRUY7O0FjOTdFSTtFQ3hCRjtNQUFBO0NmMDlFRjs7QWM1N0VFO0VDL0NBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFRGdERTtNQUFBO0NkZzhFSjs7QWMxN0VNO0VDaENKO01BQUE7VUFBQTtDZjg5RUY7O0FjOTdFTTtFQ2hDSjtNQUFBO1VBQUE7Q2ZrK0VGOztBY2w4RU07RUNoQ0o7TUFBQTtVQUFBO0NmcytFRjs7QWN0OEVNO0VDaENKO01BQUE7VUFBQTtDZjArRUY7O0FjMThFTTtFQ2hDSjtNQUFBO1VBQUE7Q2Y4K0VGOztBYzk4RU07RUNoQ0o7TUFBQTtVQUFBO0Nmay9FRjs7QVFoNUVRO0VNbEVGO0lDaENKO1FBQUE7WUFBQTtHZnUvRUE7O0VjdjlFSTtJQ2hDSjtRQUFBO1lBQUE7R2YyL0VBOztFYzM5RUk7SUNoQ0o7UUFBQTtZQUFBO0dmKy9FQTs7RWMvOUVJO0lDaENKO1FBQUE7WUFBQTtHZm1nRkE7O0VjbitFSTtJQ2hDSjtRQUFBO1lBQUE7R2Z1Z0ZBOztFY3YrRUk7SUNoQ0o7UUFBQTtZQUFBO0dmMmdGQTtDQUNGOztBUTE2RVE7RU1sRUY7SUNoQ0o7UUFBQTtZQUFBO0dmaWhGQTs7RWNqL0VJO0lDaENKO1FBQUE7WUFBQTtHZnFoRkE7O0Vjci9FSTtJQ2hDSjtRQUFBO1lBQUE7R2Z5aEZBOztFY3ovRUk7SUNoQ0o7UUFBQTtZQUFBO0dmNmhGQTs7RWM3L0VJO0lDaENKO1FBQUE7WUFBQTtHZmlpRkE7O0VjamdGSTtJQ2hDSjtRQUFBO1lBQUE7R2ZxaUZBO0NBQ0Y7O0FRcDhFUTtFTWxFRjtJQ2hDSjtRQUFBO1lBQUE7R2YyaUZBOztFYzNnRkk7SUNoQ0o7UUFBQTtZQUFBO0dmK2lGQTs7RWMvZ0ZJO0lDaENKO1FBQUE7WUFBQTtHZm1qRkE7O0VjbmhGSTtJQ2hDSjtRQUFBO1lBQUE7R2Z1akZBOztFY3ZoRkk7SUNoQ0o7UUFBQTtZQUFBO0dmMmpGQTs7RWMzaEZJO0lDaENKO1FBQUE7WUFBQTtHZitqRkE7Q0FDRjs7QWM3bkZFO0VDWUE7RUFBQTtFQUFBO0NmcW5GRjs7QWM3bkZFO0VBQ0U7TUFBQTtVQUFBO0NkZ29GSjs7QWM3bkZFO0VBQ0U7TUFBQTtVQUFBO0NkZ29GSjs7QWM3bkZFO0VBQ0U7TUFBQTtVQUFBO0NkZ29GSjs7QWM1bkZJO0VDc0RGO0VBQUE7TUFBQTtVQUFBO0NmMGtGRjs7QWNob0ZJO0VDc0RGO0VBQUE7TUFBQTtVQUFBO0NmOGtGRjs7QWNwb0ZJO0VDc0RGO0VBQUE7TUFBQTtVQUFBO0Nma2xGRjs7QWN4b0ZJO0VDc0RGO0VBQUE7TUFBQTtVQUFBO0Nmc2xGRjs7QVE5L0VRO0VNcElFO0lDZlI7SUFBQTtJQUFBO0dmc3BGQTs7RWNub0ZRO0lBQ0U7UUFBQTtZQUFBO0dkc29GVjs7RWNub0ZRO0lBQ0U7UUFBQTtZQUFBO0dkc29GVjs7RWNub0ZRO0lBQ0U7UUFBQTtZQUFBO0dkc29GVjs7RWNsb0ZVO0lDMkJWO0lBQUE7UUFBQTtZQUFBO0dmMm1GQTs7RWN0b0ZVO0lDMkJWO0lBQUE7UUFBQTtZQUFBO0dmK21GQTs7RWMxb0ZVO0lDMkJWO0lBQUE7UUFBQTtZQUFBO0dmbW5GQTs7RWM5b0ZVO0lDMkJWO0lBQUE7UUFBQTtZQUFBO0dmdW5GQTtDQUNGOztBUWhpRlE7RU1wSUU7SUNmUjtJQUFBO0lBQUE7R2Z3ckZBOztFY3JxRlE7SUFDRTtRQUFBO1lBQUE7R2R3cUZWOztFY3JxRlE7SUFDRTtRQUFBO1lBQUE7R2R3cUZWOztFY3JxRlE7SUFDRTtRQUFBO1lBQUE7R2R3cUZWOztFY3BxRlU7SUMyQlY7SUFBQTtRQUFBO1lBQUE7R2Y2b0ZBOztFY3hxRlU7SUMyQlY7SUFBQTtRQUFBO1lBQUE7R2ZpcEZBOztFYzVxRlU7SUMyQlY7SUFBQTtRQUFBO1lBQUE7R2ZxcEZBOztFY2hyRlU7SUMyQlY7SUFBQTtRQUFBO1lBQUE7R2Z5cEZBO0NBQ0Y7O0FRbGtGUTtFTXBJRTtJQ2ZSO0lBQUE7SUFBQTtHZjB0RkE7O0VjdnNGUTtJQUNFO1FBQUE7WUFBQTtHZDBzRlY7O0VjdnNGUTtJQUNFO1FBQUE7WUFBQTtHZDBzRlY7O0VjdnNGUTtJQUNFO1FBQUE7WUFBQTtHZDBzRlY7O0VjdHNGVTtJQzJCVjtJQUFBO1FBQUE7WUFBQTtHZitxRkE7O0VjMXNGVTtJQzJCVjtJQUFBO1FBQUE7WUFBQTtHZm1yRkE7O0VjOXNGVTtJQzJCVjtJQUFBO1FBQUE7WUFBQTtHZnVyRkE7O0VjbHRGVTtJQzJCVjtJQUFBO1FBQUE7WUFBQTtHZjJyRkE7Q0FDRjs7QWdCeHVGRTtFQUNFO0VBQ0E7Q2hCMnVGSjs7QWdCenVGSTtFQUNFO0NoQjR1Rk47O0FnQjd1Rkk7RUFDRTtDaEI0dUZOOztBZ0I3dUZJO0VBQ0U7Q2hCNHVGTjs7QWdCN3VGSTtFQUNFO0NoQjR1Rk47O0FnQjd1Rkk7RUFDRTtDaEI0dUZOOztBZ0JsdEZJO0VBQ0U7Q2hCcXRGTjs7QWdCaHRGRTs7RUF6QkE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0NoQjZ1RkY7O0FnQjF0RkU7O0VBSUk7Q2hCMnRGTjs7QWlCM3lGSTs7RUFFSTtFQUNBO0NqQjh5RlI7O0FpQjN5Rkk7RUFDSTtDakI4eUZSOztBaUIxeUZBO0VBRUk7Q2pCNHlGSjs7QWtCcHpGQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2xCdXpGSjs7QWtCcHpGQTtFQUVRO0VBQ0E7RUFDQTtFQUNBO0NsQnN6RlI7O0FrQjN6RkE7RUFRWTtFQUNBO0VBQ0E7RUFDQTtDbEJ1ekZaOztBa0JsMEZBO0VBZ0JRO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NsQnN6RlI7O0FrQnZ2Rkk7RUFJUTtDbEJ1dkZaOztBa0IzdkZJO0VBSVE7Q2xCMnZGWjs7QWtCL3ZGSTtFQUlRO0NsQit2Rlo7O0FrQm53Rkk7RUFJUTtDbEJtd0ZaOztBa0J2d0ZJO0VBSVE7Q2xCdXdGWjs7QWtCM3dGSTtFQUlRO0NsQjJ3Rlo7O0FrQi93Rkk7RUFJUTtDbEIrd0ZaOztBa0JueEZJO0VBSVE7Q2xCbXhGWjs7QWtCdnhGSTtFQUlRO0NsQnV4Rlo7O0FrQjN4Rkk7RUFJUTtDbEIyeEZaOztBa0IveEZJO0VBSVE7Q2xCK3hGWjs7QWtCbnlGSTtFQUlRO0NsQm15Rlo7O0FrQnZ5Rkk7RUFJUTtDbEJ1eUZaOztBa0IzeUZJO0VBSVE7Q2xCMnlGWjs7QWtCL3lGSTtFQUlRO0NsQit5Rlo7O0FrQm56Rkk7RUFJUTtDbEJtekZaOztBa0J2ekZJO0VBSVE7Q2xCdXpGWjs7QWtCM3pGSTtFQUlRO0NsQjJ6Rlo7O0FrQi96Rkk7RUFJUTtDbEIrekZaOztBa0JuMEZJO0VBSVE7Q2xCbTBGWjs7QWtCdjBGSTtFQUlRO0NsQnUwRlo7O0FrQjMwRkk7RUFJUTtDbEIyMEZaOztBa0IvMEZJO0VBSVE7Q2xCKzBGWjs7QWtCbjFGSTtFQUlRO0NsQm0xRlo7O0FrQnYxRkk7RUFJUTtDbEJ1MUZaOztBa0IzMUZJO0VBSVE7Q2xCMjFGWjs7QWtCLzFGSTtFQUlRO0NsQisxRlo7O0FrQm4yRkk7RUFJUTtDbEJtMkZaOztBa0J2MkZJO0VBSVE7Q2xCdTJGWjs7QWtCMzJGSTtFQUlRO0NsQjIyRlo7O0FrQi8yRkk7RUFJUTtDbEIrMkZaOztBa0JuM0ZJO0VBSVE7Q2xCbTNGWjs7QWtCdjNGSTtFQUlRO0NsQnUzRlo7O0FrQjMzRkk7RUFJUTtDbEIyM0ZaOztBa0IvM0ZJO0VBSVE7Q2xCKzNGWjs7QWtCbjRGSTtFQUlRO0NsQm00Rlo7O0FrQnY0Rkk7RUFJUTtDbEJ1NEZaOztBa0IzNEZJO0VBSVE7Q2xCMjRGWjs7QWtCLzRGSTtFQUlRO0NsQis0Rlo7O0FrQm41Rkk7RUFJUTtDbEJtNUZaOztBa0J2NUZJO0VBSVE7Q2xCdTVGWjs7QWtCMzVGSTtFQUlRO0NsQjI1Rlo7O0FrQi81Rkk7RUFJUTtDbEIrNUZaOztBa0JuNkZJO0VBSVE7Q2xCbTZGWjs7QWtCdjZGSTtFQUlRO0NsQnU2Rlo7O0FrQjM2Rkk7RUFJUTtDbEIyNkZaOztBa0IvNkZJO0VBSVE7Q2xCKzZGWjs7QWtCbjdGSTtFQUlRO0NsQm03Rlo7O0FrQnY3Rkk7RUFJUTtDbEJ1N0ZaOztBa0IzN0ZJO0VBSVE7Q2xCMjdGWjs7QWtCLzdGSTtFQUlRO0NsQis3Rlo7O0FrQm44Rkk7RUFJUTtDbEJtOEZaOztBa0J2OEZJO0VBSVE7Q2xCdThGWjs7QWtCMzhGSTtFQUlRO0NsQjI4Rlo7O0FtQm5qR0k7RUFDSTtDbkJzakdSOztBbUJuakdJO0VBQ0k7Q25Cc2pHUjs7QW1CaGpHUTtFQUNJO0NuQm1qR1o7O0FtQmhqR1E7RUFDSTtDbkJtakdaOztBbUJ4akdRO0VBQ0k7Q25CMmpHWjs7QW1CeGpHUTtFQUNJO0NuQjJqR1o7O0FtQmhrR1E7RUFDSTtDbkJta0daOztBbUJoa0dRO0VBQ0k7Q25CbWtHWjs7QW1CeGtHUTtFQUNJO0NuQjJrR1o7O0FtQnhrR1E7RUFDSTtDbkIya0daOztBbUIzbEdJO0VBQ0k7Q25COGxHUjs7QW1CM2xHSTtFQUNJO0NuQjhsR1I7O0FtQnhsR1E7RUFDSTtDbkIybEdaOztBbUJ4bEdRO0VBQ0k7Q25CMmxHWjs7QW1CaG1HUTtFQUNJO0NuQm1tR1o7O0FtQmhtR1E7RUFDSTtDbkJtbUdaOztBbUJ4bUdRO0VBQ0k7Q25CMm1HWjs7QW1CeG1HUTtFQUNJO0NuQjJtR1o7O0FtQmhuR1E7RUFDSTtDbkJtbkdaOztBbUJobkdRO0VBQ0k7Q25CbW5HWjs7QW1Cbm9HSTtFQUNJO0NuQnNvR1I7O0FtQm5vR0k7RUFDSTtDbkJzb0dSOztBbUJob0dRO0VBQ0k7Q25CbW9HWjs7QW1CaG9HUTtFQUNJO0NuQm1vR1o7O0FtQnhvR1E7RUFDSTtDbkIyb0daOztBbUJ4b0dRO0VBQ0k7Q25CMm9HWjs7QW1CaHBHUTtFQUNJO0NuQm1wR1o7O0FtQmhwR1E7RUFDSTtDbkJtcEdaOztBbUJ4cEdRO0VBQ0k7Q25CMnBHWjs7QW1CeHBHUTtFQUNJO0NuQjJwR1o7O0FtQjNxR0k7RUFDSTtDbkI4cUdSOztBbUIzcUdJO0VBQ0k7Q25COHFHUjs7QW1CeHFHUTtFQUNJO0NuQjJxR1o7O0FtQnhxR1E7RUFDSTtDbkIycUdaOztBbUJockdRO0VBQ0k7Q25CbXJHWjs7QW1CaHJHUTtFQUNJO0NuQm1yR1o7O0FtQnhyR1E7RUFDSTtDbkIyckdaOztBbUJ4ckdRO0VBQ0k7Q25CMnJHWjs7QW1CaHNHUTtFQUNJO0NuQm1zR1o7O0FtQmhzR1E7RUFDSTtDbkJtc0daOztBbUJudEdJO0VBQ0k7Q25Cc3RHUjs7QW1CbnRHSTtFQUNJO0NuQnN0R1I7O0FtQmh0R1E7RUFDSTtDbkJtdEdaOztBbUJodEdRO0VBQ0k7Q25CbXRHWjs7QW1CeHRHUTtFQUNJO0NuQjJ0R1o7O0FtQnh0R1E7RUFDSTtDbkIydEdaOztBbUJodUdRO0VBQ0k7Q25CbXVHWjs7QW1CaHVHUTtFQUNJO0NuQm11R1o7O0FtQnh1R1E7RUFDSTtDbkIydUdaOztBbUJ4dUdRO0VBQ0k7Q25CMnVHWjs7QW1CM3ZHSTtFQUNJO0NuQjh2R1I7O0FtQjN2R0k7RUFDSTtDbkI4dkdSOztBbUJ4dkdRO0VBQ0k7Q25CMnZHWjs7QW1CeHZHUTtFQUNJO0NuQjJ2R1o7O0FtQmh3R1E7RUFDSTtDbkJtd0daOztBbUJod0dRO0VBQ0k7Q25CbXdHWjs7QW1CeHdHUTtFQUNJO0NuQjJ3R1o7O0FtQnh3R1E7RUFDSTtDbkIyd0daOztBbUJoeEdRO0VBQ0k7Q25CbXhHWjs7QW1CaHhHUTtFQUNJO0NuQm14R1o7O0FtQm55R0k7RUFDSTtDbkJzeUdSOztBbUJueUdJO0VBQ0k7Q25Cc3lHUjs7QW1CaHlHUTtFQUNJO0NuQm15R1o7O0FtQmh5R1E7RUFDSTtDbkJteUdaOztBbUJ4eUdRO0VBQ0k7Q25CMnlHWjs7QW1CeHlHUTtFQUNJO0NuQjJ5R1o7O0FtQmh6R1E7RUFDSTtDbkJtekdaOztBbUJoekdRO0VBQ0k7Q25CbXpHWjs7QW1CeHpHUTtFQUNJO0NuQjJ6R1o7O0FtQnh6R1E7RUFDSTtDbkIyekdaOztBbUJsekdJO0VBQ0k7Q25CcXpHUjs7QW1CbHpHSTtFQUNJO0NuQnF6R1I7O0FtQjF6R0k7RUFDSTtDbkI2ekdSOztBbUIxekdJO0VBQ0k7Q25CNnpHUjs7QW1CbDBHSTtFQUNJO0NuQnEwR1I7O0FtQmwwR0k7RUFDSTtDbkJxMEdSOztBbUIxMEdJO0VBQ0k7Q25CNjBHUjs7QW1CMTBHSTtFQUNJO0NuQjYwR1I7O0FtQnowR0E7RUFDSTtDbkI0MEdKOztBbUJ6MEdBO0VBQ0k7Q25CNDBHSjs7QW9CNTNHQTtFQUNJO0NwQiszR0o7O0FvQjczR0k7RUFISjtJQUlRO0dwQmk0R047Q0FDRjs7QW9CLzNHSTtFQUNJO0NwQms0R1I7O0FvQjkzR0E7RUFFUTtDcEJnNEdSOztBb0I1M0dBO0VBQ0k7Q3BCKzNHSjs7QW9CaDRHQTtFQ2pCSTtFQUNBO0VBQ0E7RURvQkk7Q3BCazRHUjs7QW9CdjRHQTtFQVNRO0VBQ0E7RUFDQTtDcEJrNEdSOztBb0I3M0dBO0VBQ0k7RUFDQTtDcEJnNEdKOztBb0JsNEdBO0VBS1E7Q3BCaTRHUjs7QW9CdDRHQTtFQVNRO0NwQmk0R1I7O0FvQjkzR0k7RUFDSTtDcEJpNEdSOztBb0I5NEdBO0VBaUJRO0NwQmk0R1I7O0FvQjczR0E7RUFDSTtFQUNBO1VBQUE7RUFDQTtDcEJnNEdKOztBb0I5M0dJO0VBQ0k7Q3BCaTRHUjs7QW9CNzNHQTtFQUNJO0NwQmc0R0o7O0FvQjczR0E7RUFDSTtDcEJnNEdKOztBb0I3M0dBO0VDbEVJO0VBQ0E7RUFDQTtFRGtFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NwQms0R0o7O0FvQng0R0E7RUFTUTtDcEJtNEdSOztBb0I1NEdBO0VDdERJO0VBQ0E7RUFDQTtFRGtFSTtFQUNBO0VBQ0E7Q3BCcTRHUjs7QW9CcjVHQTtFQW9CUTtFQUNBO0NwQnE0R1I7O0FvQjE1R0E7RUN0REk7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O0FRMzNIUTtFWW1lUjtJQUVRO0lBQ0E7SUFDQTtJQUNBO0dwQjI1R047O0VvQmg2R0Y7SUFTWTtHcEIyNUdWOztFb0JwNkdGO0lBWWdCO0dwQjQ1R2Q7O0VvQng2R0Y7SUFnQmdCO0dwQjQ1R2Q7Q0FDRjs7QVFoNUhRO0VZbWVSO0lBdUJZO0lBQ0E7T0FBQTtZQUFBO0lBQ0E7R3BCMjVHVjs7RW9CcDdHRjtJQTRCZ0I7SUFDQTtHcEI0NUdkO0NBQ0Y7O0FRNzVIUTtFWW1lUjtJQWtDWTtPQUFBO1lBQUE7R3BCNjVHVjtDQUNGOztBb0IzNUdRO0VBckNSO0lBc0NZO09BQUE7WUFBQTtHcEIrNUdWO0NBQ0Y7O0FvQjE1R0E7RUFDSTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQ0E7RUFDQTtDcEI2NUdKOztBb0JuNkdBO0VBU1E7Q3BCODVHUjs7QW9CdjZHQTtFQWFRO0NwQjg1R1I7O0FvQjM2R0E7RUFpQlE7Q3BCODVHUjs7QW9CejVHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q3BCNDVHSjs7QW9CdjVHQTtFQUNJO0NwQjA1R0o7O0FzQnZsSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0N0QjBsSUo7O0FzQnJtSUE7O0VBZVE7Q3RCMmxJUjs7QXNCMW1JQTs7RUFrQlk7Q3RCNmxJWjs7QXNCeGlJSTtFRDNDQTtFQUFBO0VDOENJO0N0QjBpSVI7O0FzQjdpSUk7OztFQVFRO0N0QjJpSVo7O0FzQm5qSUk7RUQzQ0E7RUFBQTtFQzhDSTtDdEJxaklSOztBc0J4aklJOzs7RUFRUTtDdEJzaklaOztBc0I5aklJO0VEM0NBO0VBQUE7RUM4Q0k7Q3RCZ2tJUjs7QXNCbmtJSTs7O0VBUVE7Q3RCaWtJWjs7QXNCemtJSTtFRDNDQTtFQUFBO0VDOENJO0N0QjJrSVI7O0FzQjlrSUk7OztFQVFRO0N0QjRrSVo7O0FzQnBsSUk7RUQzQ0E7RUFBQTtFQzhDSTtDdEJzbElSOztBc0J6bElJOzs7RUFRUTtDdEJ1bElaOztBc0IvbElJO0VEM0NBO0VBQUE7RUM4Q0k7Q3RCaW1JUjs7QXNCcG1JSTs7O0VBUVE7Q3RCa21JWjs7QXNCMW1JSTtFRDNDQTtFQUFBO0VDOENJO0N0QjRtSVI7O0FzQi9tSUk7OztFQVFRO0N0QjZtSVo7O0FzQnJuSUk7RUQzQ0E7RUFBQTtFQzhDSTtDdEJ1bklSOztBc0IxbklJOzs7RUFRUTtDdEJ3bklaOztBc0Job0lJO0VEM0NBO0VBQUE7RUM4Q0k7Q3RCa29JUjs7QXNCcm9JSTs7O0VBUVE7Q3RCbW9JWjs7QXNCM29JSTtFRDNDQTtFQUFBO0VDOENJO0N0QjZvSVI7O0FzQmhwSUk7OztFQVFRO0N0QjhvSVo7O0FzQnRwSUk7RUQzQ0E7RUFBQTtFQzhDSTtDdEJ3cElSOztBc0IzcElJOzs7RUFRUTtDdEJ5cElaOztBc0JqcUlJO0VEM0NBO0VBQUE7RUM4Q0k7Q3RCbXFJUjs7QXNCdHFJSTs7O0VBUVE7Q3RCb3FJWjs7QXNCNXFJSTtFRDNDQTtFQUFBO0VDOENJO0N0QjhxSVI7O0FzQmpySUk7OztFQVFRO0N0QitxSVo7O0FzQnZySUk7RUQzQ0E7RUFBQTtFQzhDSTtDdEJ5cklSOztBc0I1cklJOzs7RUFRUTtDdEIwcklaOztBc0Jsc0lJO0VEM0NBO0VBQUE7RUM4Q0k7Q3RCb3NJUjs7QXNCdnNJSTs7O0VBUVE7Q3RCcXNJWjs7QXNCN3NJSTtFRDNDQTtFQUFBO0VDOENJO0N0QitzSVI7O0FzQmx0SUk7OztFQVFRO0N0Qmd0SVo7O0FzQnh0SUk7RUQzQ0E7RUFBQTtFQzhDSTtDdEIwdElSOztBc0I3dElJOzs7RUFRUTtDdEIydElaOztBc0JudUlJO0VEM0NBO0VBQUE7RUM4Q0k7Q3RCcXVJUjs7QXNCeHVJSTs7O0VBUVE7Q3RCc3VJWjs7QXNCOXVJSTtFRDNDQTtFQUFBO0VDOENJO0N0Qmd2SVI7O0FzQm52SUk7OztFQVFRO0N0Qml2SVo7O0FzQnp2SUk7RUQzQ0E7RUFBQTtFQzhDSTtDdEIydklSOztBc0I5dklJOzs7RUFRUTtDdEI0dklaOztBc0Jwd0lJO0VEM0NBO0VBQUE7RUM4Q0k7Q3RCc3dJUjs7QXNCendJSTs7O0VBUVE7Q3RCdXdJWjs7QXNCL3dJSTtFRDNDQTtFQUFBO0VDOENJO0N0Qml4SVI7O0FzQnB4SUk7OztFQVFRO0N0Qmt4SVo7O0FzQjF4SUk7RUQzQ0E7RUFBQTtFQzhDSTtDdEI0eElSOztBc0IveElJOzs7RUFRUTtDdEI2eElaOztBc0JyeUlJO0VEM0NBO0VBQUE7RUM4Q0k7Q3RCdXlJUjs7QXNCMXlJSTs7O0VBUVE7Q3RCd3lJWjs7QXNCaHpJSTtFRDNDQTtFQUFBO0VDOENJO0N0Qmt6SVI7O0FzQnJ6SUk7OztFQVFRO0N0Qm16SVo7O0FzQjN6SUk7RUQzQ0E7RUFBQTtFQzhDSTtDdEI2eklSOztBc0JoMElJOzs7RUFRUTtDdEI4eklaOztBc0J0MElJO0VEM0NBO0VBQUE7RUM4Q0k7Q3RCdzBJUjs7QXNCMzBJSTs7O0VBUVE7Q3RCeTBJWjs7QXNCajFJSTtFRDNDQTtFQUFBO0VDOENJO0N0Qm0xSVI7O0FzQnQxSUk7OztFQVFRO0N0Qm8xSVo7O0FzQjUxSUk7RUQzQ0E7RUFBQTtFQzhDSTtDdEI4MUlSOztBc0JqMklJOzs7RUFRUTtDdEIrMUlaOztBc0J2MklJO0VEM0NBO0VBQUE7RUM4Q0k7Q3RCeTJJUjs7QXNCNTJJSTs7O0VBUVE7Q3RCMDJJWjs7QXNCbDNJSTtFRDNDQTtFQUFBO0VDOENJO0N0Qm8zSVI7O0FzQnYzSUk7OztFQVFRO0N0QnEzSVo7O0FzQjczSUk7RUQzQ0E7RUFBQTtFQzhDSTtDdEIrM0lSOztBc0JsNElJOzs7RUFRUTtDdEJnNElaOztBc0J4NElJO0VEM0NBO0VBQUE7RUM4Q0k7Q3RCMDRJUjs7QXNCNzRJSTs7O0VBUVE7Q3RCMjRJWjs7QXNCcjRJQTtFQUNJO0VBQ0E7Q3RCdzRJSjs7QXNCMTRJQTtFQUtRO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDdEJ5NElSOztBc0J0NUlBO0VEckdJO0VBQ0E7RUFDQTtFQ3FISTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0N0QjI0SVI7O0FzQmo2SUE7RUEwQlE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0N0QjI0SVI7O0FzQjE2SUE7RUFrQ1k7RUFDQTtFQUNBO0N0QjQ0SVo7O0FzQjE0SVk7RUF0Q1o7SUF1Q2dCO0d0Qjg0SWQ7Q0FDRjs7QXNCdDdJQTtFRHpESTtFQUFBO0VDdUdRO01BQUE7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7RUFDQTtFQUNBO01BQUE7VUFBQTtFQUNBO0VBQ0E7Q3RCNjRJWjs7QXNCcjhJQTtFQStEb0I7RUFDQTtVQUFBO0VBQ0E7VUFBQTtDdEIwNElwQjs7QXNCMzhJQTs7O0VBc0V3QjtFQUNBO1VBQUE7Q3RCMjRJeEI7O0FzQmw5SUE7RUErRG9CO0VBQ0E7VUFBQTtFQUNBO1VBQUE7Q3RCdTVJcEI7O0FzQng5SUE7OztFQXNFd0I7RUFDQTtVQUFBO0N0Qnc1SXhCOztBc0IvOUlBO0VBK0RvQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0N0Qm82SXBCOztBc0JyK0lBOzs7RUFzRXdCO0VBQ0E7VUFBQTtDdEJxNkl4Qjs7QXNCNStJQTtFQStEb0I7RUFDQTtVQUFBO0VBQ0E7VUFBQTtDdEJpN0lwQjs7QXNCbC9JQTs7O0VBc0V3QjtFQUNBO1VBQUE7Q3RCazdJeEI7O0FzQnovSUE7RUErRG9CO0VBQ0E7VUFBQTtFQUNBO1VBQUE7Q3RCODdJcEI7O0FzQi8vSUE7OztFQXNFd0I7RUFDQTtVQUFBO0N0Qis3SXhCOztBc0J0Z0pBO0VBK0RvQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0N0QjI4SXBCOztBc0I1Z0pBOzs7RUFzRXdCO0VBQ0E7VUFBQTtDdEI0OEl4Qjs7QXNCbmhKQTtFQStEb0I7RUFDQTtVQUFBO0VBQ0E7VUFBQTtDdEJ3OUlwQjs7QXNCemhKQTs7O0VBc0V3QjtFQUNBO1VBQUE7Q3RCeTlJeEI7O0FzQmhpSkE7RUErRG9CO0VBQ0E7VUFBQTtFQUNBO1VBQUE7Q3RCcStJcEI7O0FzQnRpSkE7OztFQXNFd0I7RUFDQTtVQUFBO0N0QnMrSXhCOztBc0I3aUpBO0VBK0RvQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0N0QmsvSXBCOztBc0JuakpBOzs7RUFzRXdCO0VBQ0E7VUFBQTtDdEJtL0l4Qjs7QXNCMWpKQTtFQStEb0I7RUFDQTtVQUFBO0VBQ0E7VUFBQTtDdEIrL0lwQjs7QXNCaGtKQTs7O0VBc0V3QjtFQUNBO1VBQUE7Q3RCZ2dKeEI7O0FzQnZrSkE7RUErRG9CO0VBQ0E7VUFBQTtFQUNBO1VBQUE7Q3RCNGdKcEI7O0FzQjdrSkE7OztFQXNFd0I7RUFDQTtVQUFBO0N0QjZnSnhCOztBc0JwbEpBO0VBK0RvQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0N0QnloSnBCOztBc0IxbEpBOzs7RUFzRXdCO0VBQ0E7VUFBQTtDdEIwaEp4Qjs7QXNCam1KQTtFQStEb0I7RUFDQTtVQUFBO0VBQ0E7VUFBQTtDdEJzaUpwQjs7QXNCdm1KQTs7O0VBc0V3QjtFQUNBO1VBQUE7Q3RCdWlKeEI7O0FzQjltSkE7RUErRG9CO0VBQ0E7VUFBQTtFQUNBO1VBQUE7Q3RCbWpKcEI7O0FzQnBuSkE7OztFQXNFd0I7RUFDQTtVQUFBO0N0Qm9qSnhCOztBc0IzbkpBO0VBK0RvQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0N0QmdrSnBCOztBc0Jqb0pBOzs7RUFzRXdCO0VBQ0E7VUFBQTtDdEJpa0p4Qjs7QXNCeG9KQTtFQStEb0I7RUFDQTtVQUFBO0VBQ0E7VUFBQTtDdEI2a0pwQjs7QXNCOW9KQTs7O0VBc0V3QjtFQUNBO1VBQUE7Q3RCOGtKeEI7O0FzQnJwSkE7RUErRG9CO0VBQ0E7VUFBQTtFQUNBO1VBQUE7Q3RCMGxKcEI7O0FzQjNwSkE7OztFQXNFd0I7RUFDQTtVQUFBO0N0QjJsSnhCOztBc0JscUpBO0VBK0RvQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0N0QnVtSnBCOztBc0J4cUpBOzs7RUFzRXdCO0VBQ0E7VUFBQTtDdEJ3bUp4Qjs7QXNCL3FKQTtFQStEb0I7RUFDQTtVQUFBO0VBQ0E7VUFBQTtDdEJvbkpwQjs7QXNCcnJKQTs7O0VBc0V3QjtFQUNBO1VBQUE7Q3RCcW5KeEI7O0FzQjVySkE7RUErRG9CO0VBQ0E7VUFBQTtFQUNBO1VBQUE7Q3RCaW9KcEI7O0FzQmxzSkE7OztFQXNFd0I7RUFDQTtVQUFBO0N0QmtvSnhCOztBc0J6c0pBO0VBK0RvQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0N0QjhvSnBCOztBc0Ivc0pBOzs7RUFzRXdCO0VBQ0E7VUFBQTtDdEIrb0p4Qjs7QXNCdHRKQTtFQStEb0I7RUFDQTtVQUFBO0VBQ0E7VUFBQTtDdEIycEpwQjs7QXNCNXRKQTs7O0VBc0V3QjtFQUNBO1VBQUE7Q3RCNHBKeEI7O0FzQm51SkE7RUErRG9CO0VBQ0E7VUFBQTtFQUNBO1VBQUE7Q3RCd3FKcEI7O0FzQnp1SkE7OztFQXNFd0I7RUFDQTtVQUFBO0N0QnlxSnhCOztBc0JodkpBO0VBK0RvQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0N0QnFySnBCOztBc0J0dkpBOzs7RUFzRXdCO0VBQ0E7VUFBQTtDdEJzckp4Qjs7QXNCN3ZKQTtFQStEb0I7RUFDQTtVQUFBO0VBQ0E7VUFBQTtDdEJrc0pwQjs7QXNCbndKQTs7O0VBc0V3QjtFQUNBO1VBQUE7Q3RCbXNKeEI7O0FzQjF3SkE7RUErRG9CO0VBQ0E7VUFBQTtFQUNBO1VBQUE7Q3RCK3NKcEI7O0FzQmh4SkE7OztFQXNFd0I7RUFDQTtVQUFBO0N0Qmd0SnhCOztBc0J2eEpBO0VBK0RvQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0N0QjR0SnBCOztBc0I3eEpBOzs7RUFzRXdCO0VBQ0E7VUFBQTtDdEI2dEp4Qjs7QXNCcHlKQTtFQStEb0I7RUFDQTtVQUFBO0VBQ0E7VUFBQTtDdEJ5dUpwQjs7QXNCMXlKQTs7O0VBc0V3QjtFQUNBO1VBQUE7Q3RCMHVKeEI7O0FzQmp6SkE7RUErRG9CO0VBQ0E7VUFBQTtFQUNBO1VBQUE7Q3RCc3ZKcEI7O0FzQnZ6SkE7OztFQXNFd0I7RUFDQTtVQUFBO0N0QnV2SnhCOztBc0I5ekpBO0VBK0RvQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0N0Qm13SnBCOztBc0JwMEpBOzs7RUFzRXdCO0VBQ0E7VUFBQTtDdEJvd0p4Qjs7QXNCMzBKQTtFQStEb0I7RUFDQTtVQUFBO0VBQ0E7VUFBQTtDdEJneEpwQjs7QXNCajFKQTs7O0VBc0V3QjtFQUNBO1VBQUE7Q3RCaXhKeEI7O0FzQngxSkE7RUErRG9CO0VBQ0E7VUFBQTtFQUNBO1VBQUE7Q3RCNnhKcEI7O0FzQjkxSkE7OztFQXNFd0I7RUFDQTtVQUFBO0N0Qjh4SnhCOztBc0JyMkpBO0VBK0RvQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0N0QjB5SnBCOztBc0IzMkpBOzs7RUFzRXdCO0VBQ0E7VUFBQTtDdEIyeUp4Qjs7QXVCMStKQTtFQUNJO1VBQUE7RUFDQTtFQUNBO0VBQ0E7Q3ZCNitKSjs7QXVCai9KQTtFQU9RO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0N2QjgrSlI7O0F1QjEvSkE7RUZDSTtFQUNBO0VBQ0E7Q3JCNi9KSjs7QXVCMStKQTtFQUNJO0lBQ0k7R3ZCNitKTjs7RXVCMStKRTtJQUNJO0lBQ0E7R3ZCNitKTjs7RXVCMStKRTtJQUNJO0lBQ0E7R3ZCNitKTjtDQUNGOztBdUIxL0pBO0VBQ0k7SUFDSTtHdkI2K0pOOztFdUIxK0pFO0lBQ0k7SUFDQTtHdkI2K0pOOztFdUIxK0pFO0lBQ0k7SUFDQTtHdkI2K0pOO0NBQ0Y7O0F1QjErSkE7RUFDSTtJQUNJO1lBQUE7R3ZCNitKTjs7RXVCMStKRTtJQUNJO1lBQUE7R3ZCNitKTjtDQUNGOztBdUJwL0pBO0VBQ0k7SUFDSTtZQUFBO0d2QjYrSk47O0V1QjErSkU7SUFDSTtZQUFBO0d2QjYrSk47Q0FDRjs7QXdCMWhLQTtFQUNJO0VBQ0E7Q3hCNmhLSjs7QXdCMWhLQTtFQUNJO0N4QjZoS0o7O0F3QjFoS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0N4QjZoS0o7O0F3QmppS0E7RUFPUTtDeEI4aEtSOztBeUI5aUtBO0VBQ0k7Q3pCaWpLSjs7QXlCOWlLQTtFQUNJO0N6QmlqS0o7O0F5QjlpS0E7RUFDSTtDekJpaktKOztBeUI5aUtBO0VBQ0k7RUFDQTtDekJpaktKOztBeUI5aUtBO0VBQ0k7RUFDQTtDekJpaktKOztBeUI3aUtBO0VBQ0k7Q3pCZ2pLSjs7QXlCN2lLQTtFQUNJO0N6QmdqS0o7O0F5QjdpS0E7RUFDSTtDekJnaktKOztBeUI3aUtBO0VBQ0k7Q3pCZ2pLSjs7QXlCN2lLQTtFQUNJO0N6QmdqS0o7O0F5QjVpS0E7RUFDSTtDekIraUtKOztBMEI1bEtBOzs7Ozs7RUFNSTtFQUNBO0MxQitsS0o7O0EwQjdsS0k7Ozs7Ozs7Ozs7O0VBQ0k7QzFCMG1LUjs7QUUxbEtFO0VtQlBFO0VBQ0E7RUFDQTtFS0pBO0VBQ0E7RUFDQTtDMUIwbUtKOztBUTc4SlE7RU50Sk47SXdCSk07SUFDQTtHMUI0bUtOO0NBQ0Y7O0FRcDlKUTtFTnRKTjtJd0JBTTtJQUNBO0cxQittS047Q0FDRjs7QTBCOW1LSTtFeEJIRjtJd0JJTTtJQUNBO0cxQmtuS047Q0FDRjs7QTBCL21LQTtFTGxDSTtFQUNBO0VBQ0E7RUttQ0E7RUFDQTtDMUJtbktKOztBUTErSlE7RWtCN0lSO0lBT1E7SUFDQTtHMUJxbktOO0NBQ0Y7O0FRai9KUTtFa0I3SVI7SUFXUTtJQUNBO0cxQnduS047Q0FDRjs7QTBCdm5LSTtFQWRKO0lBZVE7SUFDQTtHMUIybktOO0NBQ0Y7O0EwQnhuS0E7RUxwQ0k7RUFDQTtFQUNBO0VLcUNBO0VBQ0E7QzFCNG5LSjs7QVF2Z0tRO0VrQnpIUjtJQU9RO0lBQ0E7RzFCOG5LTjtDQUNGOztBUTlnS1E7RWtCekhSO0lBV1E7SUFDQTtHMUJpb0tOO0NBQ0Y7O0EwQmhvS0k7RUFkSjtJQWVRO0lBQ0E7RzFCb29LTjtDQUNGOztBMEJqb0tBO0VMeERJO0VBQ0E7RUFDQTtFS3lEQTtFQUNBO0MxQnFvS0o7O0FRcGlLUTtFa0JyR1I7SUFPUTtJQUNBO0cxQnVvS047Q0FDRjs7QVEzaUtRO0VrQnJHUjtJQVdRO0lBQ0E7RzFCMG9LTjtDQUNGOztBMEJ6b0tJO0VBZEo7SUFlUTtJQUNBO0cxQjZvS047Q0FDRjs7QTBCMW9LQTtFTDVFSTtFQUNBO0VBQ0E7RUs2RUE7RUFDQTtDMUI4b0tKOztBUWprS1E7RWtCakZSO0lBT1E7SUFDQTtHMUJncEtOO0NBQ0Y7O0FReGtLUTtFa0JqRlI7SUFXUTtJQUNBO0cxQm1wS047Q0FDRjs7QTBCbHBL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dERxL1FSOztBc0RsL1FJO0VqQ0hBO0VBQ0E7RUFDQTtFaUNHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDdER1L1FSOztBc0RwL1FJO0VqQzFCQTtFQUNBO0VBQ0E7RWlDMEJJO01BQUE7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0N0RHkvUVI7O0FzRHQvUUk7RWpDekNBO0VBQ0E7RUFDQTtFaUN5Q0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0N0RDIvUVI7O0FzRHgvUUk7RWpDMUNBO0VBQ0E7RUFDQTtFaUMwQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDdEQ2L1FSOztBc0QxL1FJO0VBQ0k7RUFDQTtFQUNBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDdEQ2L1FSOztBc0RwZ1JLO0VBVU87RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q3REOC9RWjs7QXNEOWdSSztFQW9CTztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0N0RDgvUVo7O0FzRDEvUUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtDdEQ2L1FSOztBc0RqZ1JLOztFQVFPO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q3REOC9RWjs7QXNEN2dSSztFQW1CTztVQUFBO0VBQ0E7Q3REOC9RWjs7QXNEbGhSSztFQXdCTztVQUFBO0VBQ0E7Q3REOC9RWjs7QXVEL25SQTtFQUVRO0N2RGlvUlI7O0FBN3JCQTtFQXgyUEk7Q0F5aVJKIiwiZmlsZSI6Ii9hc3NldHMvY3NzL3N0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4gKiBWZXJzaW9uIDYuNi4zXG4gKiBodHRwczovL2dldC5mb3VuZGF0aW9uXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyAtLS0gRGVwZW5kZW5jaWVzIC0tLVxuQGltcG9ydCAndmVuZG9yL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvY29udGFpbic7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9wdXJnZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZW1vdmUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVwbGFjZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy90by1saXN0JztcblxuLy8gLS0tIFNldHRpbmdzIC0tLVxuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyAtLS0gQ29tcG9uZW50cyAtLS1cbi8vIFV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcbi8vIEdsb2JhbCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuXG4vLyBHcmlkc1xuQGltcG9ydCAnZ3JpZC9ncmlkJztcbkBpbXBvcnQgJ3h5LWdyaWQveHktZ3JpZCc7XG4vLyBHZW5lcmljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG4vLyBCYXNpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuXG4vLyBDb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuXG4vLyBMYXlvdXQgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdwcm90b3R5cGUvcHJvdG90eXBlJztcblxuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKFxuICAkZmxleDogdHJ1ZSxcbiAgJHByb3RvdHlwZTogZmFsc2UsXG4gICR4eS1ncmlkOiAkeHktZ3JpZFxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaWYgJHh5LWdyaWQge1xuICAgICR4eS1ncmlkOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvLyBHbG9iYWwgc3R5bGVzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuXG4gIC8vIEdyaWRzXG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgLy8gQmFzaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5cbiAgLy8gQ29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcblxuICAvLyBMYXlvdXQgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcblxuICAvLyBIZWxwZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcbiAgQGlmICRmbGV4IHsgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7IH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpZiAkcHJvdG90eXBlIHsgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlczsgfVxufVxuIiwiQGltcG9ydCAnfmZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3VuZGF0aW9uJztcbkBpbXBvcnQgJ2ZvdW5kYXRpb24vc2V0dGluZ3MnO1xuQGltcG9ydCAnZm91bmRhdGlvbi9hZGp1c3RtZW50cyc7XG5cbkBpbXBvcnQgJ35mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbic7XG5cbi8vICRmYS1mb250LXBhdGg6ICcvYXNzZXRzL2ZvbnRzL2ZvbnRhd2Vzb21lJztcbi8vIEBpbXBvcnQgJ2ZvbnQtYXdlc29tZS9mb250YXdlc29tZSc7XG4vLyBAaW1wb3J0ICdmb250LWF3ZXNvbWUvYnJhbmRzJztcbi8vIEBpbXBvcnQgJ2ZvbnQtYXdlc29tZS9saWdodCc7XG4vLyBAaW1wb3J0ICdmb250LWF3ZXNvbWUvcmVndWxhcic7XG4vLyBAaW1wb3J0ICdmb250LWF3ZXNvbWUvc29saWQnO1xuXG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbkBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzKFxuICAgICR2ZXJ0aWNhbC1ncmlkOiBmYWxzZSxcbiAgICAkZnJhbWUtZ3JpZDogZmFsc2UsXG4gICAgJGJsb2NrLWdyaWQ6IGZhbHNlLFxuKTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tZXJyb3I7XG5cbkBpbXBvcnQgJ2JpdHMvY29sb3JzJztcbkBpbXBvcnQgJ2JpdHMvc2V0dXAnO1xuQGltcG9ydCAnYml0cy9taXhpbnMnO1xuQGltcG9ydCAnYml0cy9leHRlbmRzJztcblxuQGltcG9ydCAnZm9udHMvc3RhdGVmYWNlJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9zaGFyZWQvZ2VuZXJhbC9zcGFjaW5nJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi9nZW5lcmFsL2xheW91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vZ2VuZXJhbC9zb2NpYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tYWluL2dlbmVyYWwvY3RhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi9nZW5lcmFsL2xvYWRpbmctc3Bpbm5lcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vZ2VuZXJhbC9pbWFnZXMnO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vdHlwb2dyYXBoeS91dGlsaXR5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi90eXBvZ3JhcGh5L2hlYWRpbmdzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi90eXBvZ3JhcGh5L2xpc3RzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi90eXBvZ3JhcGh5L3R5cGUnO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vYnJlYWRjcnVtYnMvYnJlYWRjcnVtYic7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi9idXR0b25zL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vYnV0dG9ucy9ib3JkZXItYnV0dG9uJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9tYWluL2Zvcm1zL2Zvcm0tZWxlbWVudHMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tYWluL2Zvcm1zL2ZsYXNoLW1lc3NhZ2VzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi9mb3Jtcy9waG9uZS1zZWxlY3QnO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vY2FyZHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vY2FyZHMvbGluay1jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi9jYXJkcy9hcnJvdy1jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi9jYXJkcy9pY29uLWNhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tYWluL2NhcmRzL2ZlYXR1cmUtY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vY2FyZHMvcHJpY2UtY2FyZCc7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi9wYW5lbHMvcGFuZWwnO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vZm9vdGVycy9mb290ZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9tYWluL2Zvb3RlcnMvcHJlLWZvb3Rlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vZm9vdGVycy9sZWdhbC1mb290ZXInO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vaGVhZGVycy9oZWFkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9tYWluL2hlYWRlcnMvcHBjJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9tYWluL25hdmlnYXRpb25zL3N0YW5kYXJkLWhlYWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vbmF2aWdhdGlvbnMvc3RhbmRhcmQtZm9vdGVyJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9tYWluL21vZGFscy9tb2RhbCc7XG5cbi8vIEBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi9zbGlkZXJzL3NsaWNrJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9tYWluL3RhYmxlcy90YWJsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vdGFibGVzL3Jlc3BvbnNpdmUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tYWluL3RhYmxlcy96ZWJyYSc7XG4vLyBAaW1wb3J0ICdjb21wb25lbnRzL21haW4vdGFibGVzL2NvbXBhcmlzb24nO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vZmFxcy9mYXEnO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vaG9tZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vY29udGFjdC1tYXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tYWluL3N0cmlwZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vY29tcGFyaXNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21haW4vY2FsZW5kYXInO1xuXG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWFpbi9wcGMnO1xuXG5cblt2LWNsb2FrXSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLmdyaWQtY29udGFpbmVyLmV4dHJhLXdpZGUtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMHJlbTtcbn1cblxuLmVxdWFsLWhlaWdodC1jZWxsIHtcbiAgICA+IC5jZWxsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1ub3JtYWxpemUoKSB7XG4gIC8qISBub3JtYWxpemUuY3NzIHY4LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuICAvLyBEb2N1bWVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG5cbiAgaHRtbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDFcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbiAgfVxuXG4gIC8vIFNlY3Rpb25zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgLy8gYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgfVxuXG4gIC8vIEdyb3VwaW5nIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAvLyAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cblxuICBociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8vIDFcbiAgICBoZWlnaHQ6IDA7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLy8gMlxuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHByZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAgLy8gMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cblxuICBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLy8gMVxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvLyAyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvLyAyXG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuXG4gIGIsXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cblxuICBjb2RlLFxuICBrYmQsXG4gIHNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMWVtOyAvLyAyXG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cblxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG4gIH1cblxuICAvLyBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgLy8gYWxsIGJyb3dzZXJzLlxuXG4gIHN1YixcbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgLy8gRW1iZWRkZWQgY29udGVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG5cbiAgaW1nIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIH1cblxuICAvLyBGb3Jtc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG5cbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvLyAxXG4gICAgZm9udC1zaXplOiAxMDAlOyAvLyAxXG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDFcbiAgICBtYXJnaW46IDA7IC8vIDJcbiAgfVxuXG4gIC8vIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAvLyAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuXG4gIGJ1dHRvbixcbiAgaW5wdXQgeyAvLyAxXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgLy8gMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuXG4gIGJ1dHRvbixcbiAgc2VsZWN0IHsgLy8gMVxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cblxuICBidXR0b24sXG4gIFt0eXBlPVwiYnV0dG9uXCJdLFxuICBbdHlwZT1cInJlc2V0XCJdLFxuICBbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cblxuICBidXR0b246LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuXG4gIGZpZWxkc2V0IHtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gIC8vIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgLy8gICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgbGVnZW5kIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgY29sb3I6IGluaGVyaXQ7IC8vIDJcbiAgICBkaXNwbGF5OiB0YWJsZTsgLy8gMVxuICAgIG1heC13aWR0aDogMTAwJTsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDNcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvLyAxXG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuXG4gIHByb2dyZXNzIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cblxuICB0ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAvLyAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAgLy8gMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuXG4gIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBwYWRkaW5nOiAwOyAvLyAyXG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG5cbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyAxXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8vIDJcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cblxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgLy8gMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuXG4gIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAxXG4gICAgZm9udDogaW5oZXJpdDsgLy8gMlxuICB9XG5cbiAgLy8gSW50ZXJhY3RpdmVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuXG4gIGRldGFpbHMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgfVxuXG4gIC8vIE1pc2NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG5cbiAgdGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cblxuICBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcG9zaXRpb25pbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcG9zaXRpb246IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gTmVzdGVkIG1hcmdpbiBmb3Igc3VibWVudS5cbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIGN1cnNvcidzIHZhbHVlLCBgYXV0b2AgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0byAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGUgdGhhdCBjb250YWlucyB0aGUgZmxleCBqdXN0aWZ5aW5nIG9wdGlvbnNcbiQtemYtZmxleC1qdXN0aWZ5OiAtemYtZmxleC1qdXN0aWZ5KCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24pO1xuXG4vLy8gR2xvYmFsIHRvbGVyYW5jZSBmb3IgY29sb3IgcGljayBjb250cmFzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDAgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhbiBpbm5lciBib3gtc2hhZG93IGZvciBvbmx5IG9uZSBzaWRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0aGUgc2hhZG93IGlzIHN1cHBvc2VkIHRvIGFwcGVhci4gQ2FuIGJlIGB0b3BgLCBgbGVmdGAsIGByaWdodGAgb3IgYGJvdHRvbWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIC0gV2lkdGggZm9yIHRoZSB0YXJnZXQgc2lkZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciBvZiB0aGUgc2hhZG93LlxuQG1peGluIGlubmVyLXNpZGUtc2hhZG93KFxuICAkc2lkZTogYm90dG9tLFxuICAkc2l6ZTogMjBweCxcbiAgJGNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSlcbikge1xuXG4gICRoZWxwZXI6IHJvdW5kKCRzaXplICogMC42NSk7XG5cbiAgQGlmICgkc2lkZSA9PSB0b3ApIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gbGVmdCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSByaWdodCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICgtMSkqJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGJvdHRvbSkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgKC0xKSokaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlKFxuICAkZW5mb3JjZTogdHJ1ZVxuKSB7XG4gICRpbXBvcnRhbnQ6IGlmKCRlbmZvcmNlLCAnIWltcG9ydGFudCcsIG51bGwpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogMXB4ICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogMXB4ICN7JGltcG9ydGFudH07XG4gIHBhZGRpbmc6IDAgI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiByZWN0KDAsMCwwLDApICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgI3skaW1wb3J0YW50fTtcbiAgYm9yZGVyOiAwICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZW5mb3JjZSAtIElmIGB0cnVlYCwgdXNlIGAhaW1wb3J0YW50YCBvbiBhcHBsaWVkIHByb3BlcnRpZXNcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IHN0YXRpYyAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBoZWlnaHQ6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IHZpc2libGUgI3skaW1wb3J0YW50fTtcbiAgY2xpcDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoXG4gICRzbWFsbDogdHJ1ZSxcbiAgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludC1pbihhdXRvLCAtemYtYm9vbCgkc21hbGwpLCAtemYtYm9vbCgkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMpKSB7XG4gICAgQGNvbnRlbnRcbiAgfTtcbn1cblxuLy8vIEl0ZXJhdGVzIHdpdGggYEBjb250ZW50YCB0aHJvdWdoIHRoZSBnaXZlbiBsaXN0IG9mIGJyZWFrcG9pbnRzIGAkYnJlYWtwb2ludHNgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJyZWFrcG9pbnRzIFthdXRvXSAtIEJyZWFrcG9pbnRzIHRvIGl0ZXJhdGVzIG9uLiBJdCBjYW4gYmUgYSBicmVha3BvaW50IG5hbWUsIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgYGF1dG9gIGZvciBhbGwgYnJlYWtwb2ludHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufE51bGx9ICR6ZXJvLWJyZWFrcG9pbnQgW251bGxdIC0gV2hldGhlciB0aGUgemVyby1icmVha3BvaW50IChvZnRlbiBgc21hbGxgKSBtdXN0IGJlIGluY2x1ZGVkLiBJZiBgdHJ1ZWAsIGl0IHdpbGwgYWx3YXlzIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGlmIG5vdCBhbHJlYWR5IHRoZXJlLiBJZiBgZmFsc2VgLCBpdCB3aWxsIGFsd2F5cyBiZSByZW1vdmVkLiBEb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58S2V5d29yZH0gJG1lZGlhLXF1ZXJpZXMgW3RydWVdIC0gV2hldGhlciBtZWRpYS1xdWVyaWVzIG11c3QgYmUgZ2VuZXJhdGVkLiBJZiBgZm9yLWxpc3RzYCwgb25seSBnZW5lcmF0ZSBtZWRpYS1xdWVyaWVzIHdoZW4gYCRicmVha3BvaW50c2AgaXMgYSBsaXN0LlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oXG4gICRicmVha3BvaW50czogYXV0byxcbiAgJHplcm8tYnJlYWtwb2ludDogbnVsbCxcbiAgJG1lZGlhLXF1ZXJpZXM6IHRydWVcbikge1xuICAkLWxpc3Q6ICgpO1xuICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogdHJ1ZTtcblxuICAvLyBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBicmVha3BvaW50KHMpIHRvIGl0ZXJhdGUgb24uXG4gIEBpZiAkYnJlYWtwb2ludHMgPT0gYXV0byB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnbGlzdCcge1xuICAgICQtbGlzdDogJGJyZWFrcG9pbnRzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnc3RyaW5nJyB7XG4gICAgJC1saXN0OiAoJGJyZWFrcG9pbnRzKTtcbiAgICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogZmFsc2U7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBcIiRicmVha3BvaW50c1wiIGluIFwiLXpmLWVhY2gtYnJlYWtwb2ludC1pbigpXCIuIEdvdCBcIiN7JGJyZWFrcG9pbnRzfVwiICgje3R5cGUtb2YoJGJyZWFrcG9pbnRzKX0pLiBFeHBlY3RlZCBhIGJyZWFrcG9pbnQgbmFtZSwgYSBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIFwiYXV0b1wiJztcbiAgfVxuXG4gIC8vIEFkZCBvciByZW1vdmUgdGhlIHplcm8gYnJlYWtwb2ludCBhY2NvcmRpbmcgdG8gYCR6ZXJvLWJyZWFrcG9pbnRgXG4gIEBpZiAkemVyby1icmVha3BvaW50ID09IHRydWUge1xuICAgICQtbGlzdDogam9pbigoJC16Zi16ZXJvLWJyZWFrcG9pbnQpLCBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCkpO1xuICB9XG4gIEBlbHNlIGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gZmFsc2Uge1xuICAgICQtbGlzdDogc2wtcmVtb3ZlKCQtbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gSXRlcmF0ZSBvbiBicmVha3BvaW50KHMpXG4gIEBlYWNoICRicCBpbiAkLWxpc3Qge1xuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogJGJwICFnbG9iYWw7XG5cbiAgICBAaWYgKCRtZWRpYS1xdWVyaWVzID09IHRydWVcbiAgICAgIG9yICgkbWVkaWEtcXVlcmllcyA9PSAnZm9yLWxpc3RzJyBhbmQgJC1icmVha3BvaW50cy1pcy1hLWxpc3QpKSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicCkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkYnAtdmFsdWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcbiAgICAgIEBpZiAkYnAtdmFsdWUgIT0gbnVsbCB7XG4gICAgICAgICRuYW1lOiAkYnAtdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vIE1hcmdpbiBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1iYXNlLWdyaWQtY2xhc3NlcyB7XG5cbiAgLy8gR3JpZCBDb250YWluZXJcbiAgLmdyaWQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcjtcblxuICAgICYuZmx1aWQge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoMTAwJSk7XG4gICAgfVxuXG4gICAgJi5mdWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwMCUsIDApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJhc2UgZ3JpZCBzdHlsZXNcbiAgLmdyaWQteCB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZDtcbiAgfVxuXG4gIC5jZWxsIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsKGZ1bGwsICRndXR0ZXItdHlwZTogbm9uZSk7XG5cbiAgICAmLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKGF1dG8pO1xuICAgIH1cblxuICAgICYuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShzaHJpbmspO1xuICAgIH1cblxuICB9XG4gIC5ncmlkLXgge1xuICAgID4gLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKGF1dG8sICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgfVxuXG4gICAgPiAuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShzaHJpbmssICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQXV0byB3aWR0aFxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIC8vIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrL3dvcmthcm91bmQsIHNlZSB0aGVzZSBpc3N1ZXMgJiBQUnMgZm9yIHRoZSBiYWNrc3Rvcnk6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTAyNDRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAyMjIgYW5kXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMTY0XG4gICAgLmdyaWQteCB7XG4gICAgICAkc3RyOiBcIj4gLiN7JC16Zi1zaXplfS1zaHJpbmssID4gLiN7JC16Zi1zaXplfS1mdWxsXCI7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAkc3RyOiAkc3RyICsgXCIsID4gLiN7JC16Zi1zaXplfS0jeyRpfVwiXG4gICAgICB9XG4gICAgICAjeyRzdHJ9IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIC8vIFJlc3BvbnNpdmUgXCJhdXRvXCIgbW9kaWZpZXJcbiAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgLmdyaWQteCA+IC4jeyQtemYtc2l6ZX0tYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoYXV0bywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAlLXh5LWNlbGwtYmFzZS1zaHJpbmstaG9yaXpvbnRhbC0jeyQtemYtc2l6ZX0ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBcInNocmlua1wiIG1vZGlmaWVyXG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LXNocmluayB7XG4gICAgICAgIEBleHRlbmQgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9O1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoc2hyaW5rLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgd2lkdGggbW9kaWZpZXJzXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgQGV4dGVuZCAlLXh5LWNlbGwtYmFzZS1zaHJpbmstaG9yaXpvbnRhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCB3aWR0aCB3aGVuIHVzaW5nIGAuZ3JpZC1tYXJnaW4teGAgbm90IG9uIGAuZ3JpZC14YFxuICAuZ3JpZC1tYXJnaW4teDpub3QoLmdyaWQteCkgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAvLyBSZXNldCBoZWlnaHQgd2hlbiB1c2luZyBgLmdyaWQtbWFyZ2luLXlgIG5vdCBvbiBgLmdyaWQteWBcbiAgLmdyaWQtbWFyZ2luLXk6bm90KC5ncmlkLXkpID4gLmNlbGwge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCRjbGFzcy1icmVha3BvaW50LCAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbCkge1xuICAkcHJlZml4OiBpZigkY2xhc3MtYnJlYWtwb2ludCA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCwgJycsICcjeyRjbGFzcy1icmVha3BvaW50fS0nKTtcbiAgPiAuI3skcHJlZml4fWF1dG8ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShhdXRvLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gIH1cblxuICA+IC4jeyRwcmVmaXh9c2hyaW5rIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoc2hyaW5rLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAkY2xhc3NuYW1lOiBpZigkdmVydGljYWwsICcuI3skY2xhc3MtYnJlYWtwb2ludH0tI3skaX0nLCAnLiN7JGNsYXNzLWJyZWFrcG9pbnR9LSN7JGl9Jyk7XG5cbiAgICA+ICN7JGNsYXNzbmFtZX0ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRpLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIE1hcmdpbiBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBsZWZ0IHJpZ2h0LFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkd3JhcHBpbmctc2VsZWN0b3I6ICcuZ3JpZC1tYXJnaW4teCdcbil7XG4gICN7JHdyYXBwaW5nLXNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUsICRndXR0ZXItcG9zaXRpb246ICRndXR0ZXItcG9zaXRpb24pO1xuXG4gICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbCgkdmVydGljYWw6ICR2ZXJ0aWNhbCwgJG91dHB1dDogKHNpemUgZ3V0dGVycykpO1xuICAgIH1cblxuICAgIC8vIGJhc2Ugc3R5bGVzIG5lZWQgdG8gYWxsIGJlIGJlZm9yZSB0aGUgYXV0byBhbmQgc2hyaW5rIHN0eWxlc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpIGFuZCAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgPiAuY2VsbCB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCgkdmVydGljYWw6ICR2ZXJ0aWNhbCwgJG91dHB1dDogKHNpemUgZ3V0dGVycykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcblxuICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycyAtIHRoZSBtYXJnaW4gZ3JpZCBoYXMgdG8gZ28gYmFjayBhbmQgYWRqdXN0IHdpZHRocyAob3IgaGVpZ2h0cylcbiAgICAgIC8vIGZvciBhbGwgcHJpb3IgYnJlYWtwb2ludHMuXG4gICAgICAvLyBBcyB0aGVpciBndXR0ZXIgaXMgZGVmaW5lZCB3aXRoIHRoZWlyIHdpZHRoL2hlaWdodCwgZXZlbiBicmVha3BvaW50IHdpdGhvdXQgYSBuZXcgbWFyZ2luIG11c3QgYmVcbiAgICAgIC8vIGdlbmVyYXRlZCB0byBub3QgaGF2aW5nIHRoZWlyIHdpZHRoL2hlaWdodCBvdmVycmlkZWQgYnkgcmUtYWRqdXN0ZWQgc21hbGxlciBicmVha3BvaW50cy5cbiAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkpIHtcbiAgICAgICAgQGVhY2ggJGJwIGluIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJC16Zi1zaXplKSB7XG4gICAgICAgICAgQGluY2x1ZGUgLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCRicCwgJC16Zi1zaXplLCAkdmVydGljYWwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkLXpmLXNpemUsICQtemYtc2l6ZSwgJHZlcnRpY2FsKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUGFkZGluZyBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1wYWRkaW5nLWdyaWQtY2xhc3NlcyB7XG4gIC5ncmlkLXBhZGRpbmcteCB7XG5cbiAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIG5lc3RlZCBncmlkc1xuICAgIC5ncmlkLXBhZGRpbmcteCB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBncmlkcyB3aXRoaW4gYGdyaWQtY29udGFpbmVyL2dyaWQtY29udGFpbmVyLmZsdWlkYFxuICAgIC8vIFRoaXMgYWxsb3dzIG1hcmdpbiBhbmQgcGFkZGluZyBncmlkcyB0byBsaW5lIHVwIHdpdGggZWFjaG90aGVyXG4gICAgLmdyaWQtY29udGFpbmVyOm5vdCguZnVsbCkgPiAmIHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgfVxuICB9XG59XG5cbi8vIEJsb2NrIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LWJsb2NrLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQ6IHRydWUsICRwYWRkaW5nLWdyaWQ6IHRydWUpIHtcbiAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkbjogJGksICRzZWxlY3RvcjogJy5jZWxsJywgJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkb3V0cHV0OiAoc2l6ZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC8vIFRoaXMgaXMgcHVyZWx5IGZvciByZXNwb25zaXZlIGd1dHRlcnMgLSB0aGUgbWFyZ2luIGdyaWQgaGFzIHRvIGdvIGJhY2sgYW5kIGFkanVzdCB3aWR0aHMgKG9yIGhlaWdodHMpXG4gICAgICAgIC8vIGZvciBwcmlvciBicmVha3BvaW50cyBiYXNlZCBvbiB0aGUgcmVzcG9uc2l2ZSBndXR0ZXIuXG4gICAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkpIHtcbiAgICAgICAgICBAZWFjaCAkYnAgaW4gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkLXpmLXNpemUpIHtcbiAgICAgICAgICAgIEBpZihtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGJwKSkge1xuICAgICAgICAgICAgICAuZ3JpZC1tYXJnaW4teC4jeyRicH0tdXAtI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRuOiAkaSwgJHNlbGVjdG9yOiAnLmNlbGwnLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJG91dHB1dDogKHNpemUpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAuZ3JpZC1tYXJnaW4teC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRuOiAkaSwgJHNlbGVjdG9yOiAnLmNlbGwnLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJG91dHB1dDogKHNpemUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBDb2xsYXBzZSBjbGFzc2VzXG5AbWl4aW4geHktY29sbGFwc2UtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZDogdHJ1ZSwgJHBhZGRpbmctZ3JpZDogdHJ1ZSkge1xuICBAZWFjaCAkYnAgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgICAuI3skYnB9LW1hcmdpbi1jb2xsYXBzZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29sbGFwc2UoJGd1dHRlci10eXBlOiBtYXJnaW4sICRtaW4tYnJlYWtwb2ludDogJGJwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgICAuI3skYnB9LXBhZGRpbmctY29sbGFwc2Uge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbGxhcHNlKCRndXR0ZXItdHlwZTogcGFkZGluZywgJG1pbi1icmVha3BvaW50OiAkYnApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBPZmZzZXQgY2xhc3Nlc1xuQG1peGluIHh5LW9mZnNldC1jZWxsLWNsYXNzZXMge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgkbywgJGd1dHRlcnM6ICRncmlkLXBhZGRpbmctZ3V0dGVycywgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgIH1cblxuICAgICAgLmdyaWQtbWFyZ2luLXggPiAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVmVydGljYWwgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktdmVydGljYWwtZ3JpZC1jbGFzc2VzKFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWVcbikge1xuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICB9XG4gIH1cblxuICAuZ3JpZC15IHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkKHZlcnRpY2FsLCBmYWxzZSk7XG5cblxuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1yZXNldCgpO1xuICAgIH1cblxuICAgID4gLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKGF1dG8sICRndXR0ZXItdHlwZTogbm9uZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICB9XG5cbiAgICA+IC5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgIH1cblxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrL3dvcmthcm91bmQsIHNlZSB0aGVzZSBpc3N1ZXMgYW5kIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAyMjIgYW5kXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCJcbiAgICAgIH1cbiAgICAgICN7JHN0cn0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICAvLyBSZXNwb25zaXZlIFwiYXV0b1wiIG1vZGlmaWVyXG4gICAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tYXV0byB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbChhdXRvLCAkZ3V0dGVyLXR5cGU6IG5vbmUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJS14eS1jZWxsLWJhc2Utc2hyaW5rLXZlcnRpY2FsLSN7JC16Zi1zaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShzaHJpbmspO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXNwb25zaXZlIFwic2hyaW5rXCIgbW9kaWZpZXJcbiAgICAgIEBpZiBub3QoJC16Zi1zaXplID09ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgICAgID4gLiN7JC16Zi1zaXplfS1zaHJpbmsge1xuICAgICAgICAgIEBleHRlbmQgJS14eS1jZWxsLWJhc2Utc2hyaW5rLXZlcnRpY2FsLSN7JC16Zi1zaXplfTtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoc2hyaW5rLCAkZ3V0dGVyLXR5cGU6IG5vbmUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUmVzcG9uc2l2ZSB3aWR0aCBtb2RpZmllcnNcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRpLCAkZ3V0dGVyLXR5cGU6IG5vbmUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICAuZ3JpZC1wYWRkaW5nLXkge1xuICAgICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBuZXN0ZWQgZ3JpZHNcbiAgICAgIC5ncmlkLXBhZGRpbmcteSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlLCAkZ3V0dGVyLXBvc2l0aW9uOiB0b3AgYm90dG9tKTtcbiAgICAgIH1cblxuICAgICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgICAgPiAuY2VsbCB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRncmlkLXBhZGRpbmctZ3V0dGVycywgJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkZ3V0dGVyLXBvc2l0aW9uOiB0b3AgYm90dG9tKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICBAaW5jbHVkZSB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKHRvcCBib3R0b20sIHRydWUsICcuZ3JpZC1tYXJnaW4teScpO1xuICB9XG5cbn1cblxuQG1peGluIHh5LWZyYW1lLWdyaWQtY2xhc3NlcygkdmVydGljYWwtZ3JpZDogdHJ1ZSwgJG1hcmdpbi1ncmlkOiB0cnVlKSB7XG4gIC8vIEZyYW1lZCBncmlkIHN0eWxlc1xuICAuZ3JpZC1mcmFtZSB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZTtcbiAgfVxuXG4gIC5jZWxsIC5ncmlkLWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgfVxuXG4gIC5jZWxsLWJsb2NrIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKCk7XG4gIH1cblxuICAuY2VsbC1ibG9jay15IHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKHRydWUpO1xuICB9XG5cblxuICAuY2VsbC1ibG9jay1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCk7XG4gIH1cblxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcblxuICAgIC4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lO1xuICAgIH1cblxuICAgIC5jZWxsIC4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICB3aWR0aDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2sge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jaygpO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tY2VsbC1ibG9jay1jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jay1jb250YWluZXIoKTtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2steSB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdmVydGljYWwtZ3JpZCB7XG4gICAgLmdyaWQteSB7XG4gICAgICAmLmdyaWQtZnJhbWUge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuICAgICAgICAmLiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gICAgLmNlbGwge1xuICAgICAgLmdyaWQteS5ncmlkLWZyYW1lIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuICAgICAgICAuZ3JpZC15LiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3Nlcyh0b3AgYm90dG9tLCB0cnVlLCAnLmdyaWQtbWFyZ2luLXknKTtcbiAgICAuZ3JpZC1mcmFtZS5ncmlkLW1hcmdpbi15IHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSwgZmFsc2UsICRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkaW5jbHVkZS1iYXNlOiBmYWxzZSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgIC5ncmlkLW1hcmdpbi15LiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlLCBmYWxzZSwgJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBGaW5hbCBjbGFzc2VzXG5AbWl4aW4gZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXMoXG4gICRiYXNlLWdyaWQ6IHRydWUsXG4gICRtYXJnaW4tZ3JpZDogdHJ1ZSxcbiAgJHBhZGRpbmctZ3JpZDogdHJ1ZSxcbiAgJGJsb2NrLWdyaWQ6IHRydWUsXG4gICRjb2xsYXBzZTogdHJ1ZSxcbiAgJG9mZnNldDogdHJ1ZSxcbiAgJHZlcnRpY2FsLWdyaWQ6IHRydWUsXG4gICRmcmFtZS1ncmlkOiB0cnVlXG4pIHtcblxuICAvLyBCYXNlIGdyaWQgc3R5bGVzXG4gIEBpZigkYmFzZS1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktYmFzZS1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIE1hcmdpbiBncmlkXG4gIEBpZigkbWFyZ2luLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBQYWRkaW5nIGdyaWRcbiAgQGlmKCRwYWRkaW5nLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1wYWRkaW5nLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZFxuICBAaWYoJGJsb2NrLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1ibG9jay1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIC8vIENvbGxhcHNlIGd1dHRlcnNcbiAgQGlmKCRjb2xsYXBzZSkge1xuICAgIEBpbmNsdWRlIHh5LWNvbGxhcHNlLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQsICRwYWRkaW5nLWdyaWQpO1xuICB9XG5cbiAgLy8gT2Zmc2V0IGd1dHRlcnNcbiAgQGlmKCRvZmZzZXQpIHtcbiAgICBAaW5jbHVkZSB4eS1vZmZzZXQtY2VsbC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBncmlkXG4gIEBpZigkdmVydGljYWwtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LXZlcnRpY2FsLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQsICRwYWRkaW5nLWdyaWQpO1xuICB9XG5cbiAgQGlmICgkZnJhbWUtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWZyYW1lLWdyaWQtY2xhc3NlcygkdmVydGljYWwtZ3JpZCwgJG1hcmdpbi1ncmlkKVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlIGd1dHRlcnMgZm9yIGEgY2VsbC9jb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGVpdGhlciBtYXJnaW4gb3IgcGFkZGluZy5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lZ2F0aXZlIFtmYWxzZV0gLSBXaGV0aGVyIHRvIGFwcGx5IHRoZSBndXR0ZXIgYXMgYSBuZWdhdGl2ZSB2YWx1ZS4gQ29tbW9ubHkgdXNlZCBmb3IgbmVzdGVkIGdyaWRzLlxuQG1peGluIHh5LWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRuZWdhdGl2ZTogZmFsc2Vcbikge1xuICAkb3BlcmF0b3I6IGlmKCRuZWdhdGl2ZSwgJy0nLCAnJyk7XG5cbiAgLy8gSWYgd2UgaGF2ZSBkZWNsYXJlZCBuZWdhdGl2ZSBndXR0ZXJzLCBmb3JjZSB0eXBlIHRvIGBtYXJnaW4uXG4gICRndXR0ZXItdHlwZTogaWYoJG5lZ2F0aXZlLCAnbWFyZ2luJywgJGd1dHRlci10eXBlKTtcblxuICAvLyBPdXRwdXQgb3VyIG1hcmdpbiBndXR0ZXJzLlxuICBAaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnKSB7XG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoYXV0bywgJGd1dHRlcnMpIHtcbiAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06IHVucXVvdGUoXCIjeyRvcGVyYXRvcn0jeyRndXR0ZXJ9XCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ251bWJlcicpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVycykgLyAyO1xuXG4gICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogdW5xdW90ZShcIiN7JG9wZXJhdG9yfSN7JGd1dHRlcn1cIik7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIG1heCB3aWR0aCBjb250YWluZXIsIGRlc2lnbmVkIHRvIGhvdXNlIHlvdXIgZ3JpZCBjb250ZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJGdyaWQtY29udGFpbmVyXSAtIGEgd2lkdGggdG8gbGltaXQgdGhlIGNvbnRhaW5lciB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRncmlkLWNvbnRhaW5lci1wYWRkaW5nXSAtIHBhZGRpbmdzIG9mIHRoZSBjb250YWluZXIuXG5AbWl4aW4geHktZ3JpZC1jb250YWluZXIoXG4gICR3aWR0aDogJGdyaWQtY29udGFpbmVyLFxuICAkcGFkZGluZzogJGdyaWQtY29udGFpbmVyLXBhZGRpbmdcbikge1xuICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkcGFkZGluZywgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcblxuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIHlvdXIgZmxleCBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbaG9yaXpvbnRhbF0gLSBFaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBkaXJlY3Rpb24gb2YgY2VsbHMgd2l0aGluLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHdyYXAgW3RydWVdIC0gSWYgdGhlIGNlbGxzIHdpdGhpbiBzaG91bGQgd3JhcCBvciBub3QuXG5AbWl4aW4geHktZ3JpZChcbiAgJGRpcmVjdGlvbjogaG9yaXpvbnRhbCxcbiAgJHdyYXA6IHRydWVcbikge1xuICAkZGlyZWN0aW9uOiBpZigkZGlyZWN0aW9uID09ICdob3Jpem9udGFsJywgcm93LCBjb2x1bW4pO1xuICAkd3JhcDogaWYoJHdyYXAsIHdyYXAsIG5vd3JhcCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiAkZGlyZWN0aW9uICR3cmFwO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIEhpRFBJIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzIGZvciByZXNvbHV0aW9ucy5cbi8vLyBWYWx1ZXMgbXVzdCByZXByZXNlbnQgdGhlIGRldmljZSBwaXhlbHMgLyB3ZWIgcGl4ZWxzIHJhdGlvbiBhbmQgYmUgdW5pdGxlc3Mgb3IgaW4gRFBQWC5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50cy1oaWRwaTogKFxuICBoaWRwaS0xOiAxLFxuICBoaWRwaS0xLTU6IDEuNSxcbiAgaGlkcGktMjogMixcbiAgcmV0aW5hOiAyLFxuICBoaWRwaS0zOiAzXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1RoZSBmaXJzdCBrZXkgaW4gdGhlICRicmVha3BvaW50cyBtYXAgbXVzdCBoYXZlIGEgdmFsdWUgb2YgXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFdlYiBzdGFuZGFyZCBQaXhlbHMgcGVyIGluY2guICgxZGRweCAvICRzdGQtd2ViLWRwaSkgPSAxZHBpXG4gIC8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXZhbHVlcy0zLyNhYnNvbHV0ZS1sZW5ndGhzXG4gICRzdGQtd2ViLWRwaTogOTY7XG5cbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBvZiB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnRcbiAgJGJwLW5leHQ6IG51bGw7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWluOiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWluLXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogbnVsbDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIElmIG5hbWVkLCBuYW1lIG9mIHRoZSBicmVha3BvaW50XG4gICRuYW1lOiBudWxsO1xuICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIEhpRFBJIGJyZWFrcG9pbnRcbiAgJGhpZHBpOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cblxuICAvLyBJZiBhIGJyZWFrcG9pbnQgbmFtZSBpcyBnaXZlbiwgZ2V0IGl0cyB2YWx1ZSBmcm9tIHRoZSAkYnJlYWtwb2ludHMvJGJyZWFrcG9pbnRzLWhpZHBpIG1hcC5cbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApIHtcbiAgICAgICRuYW1lOiAkYnA7XG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLWhpZHBpLCAkbmFtZSk7XG4gICAgICAkYnAtbmV4dDogLXpmLW1hcC1uZXh0LW51bWJlcigkYnJlYWtwb2ludHMtaGlkcGksICRicCk7XG4gICAgICAkaGlkcGk6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgYCRicmVha3BvaW50c2Agb3IgYCRicmVha3BvaW50cy1oaWRwaWAgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBub3QgJG5hbWUgYW5kICRkaXIgPT0gJ29ubHknIHtcbiAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gT25seSAnb25seScgYW5kICd1cCcgaGF2ZSBhIG1pbiBsaW1pdC5cbiAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ3VwJyB7XG4gICAgJGJwLW1pbjogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcbiAgfVxuICAvLyBPbmx5ICdvbmx5JyBhbmQgJ2Rvd24nIGhhdmUgYSBtYXggbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSB2YWx1ZSwgdXNlIGl0IGFzIG1heCBsaW1pdC5cbiAgICBAaWYgbm90ICRuYW1lIHtcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gICAgfVxuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIG5hbWVkLCB0aGUgbWF4IGxpbWl0IGlzIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludCAtIDFweC5cbiAgICBAZWxzZSBpZiAkYnAtbmV4dCB7XG4gICAgICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gICAgICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICAgICAgJGJwLW1heDogaWYoJGhpZHBpLCAkYnAtbmV4dCAtICgxLyRzdGQtd2ViLWRwaSksIC16Zi1icC10by1lbSgkYnAtbmV4dCkgLSAwLjAwMTI1KTtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmF0ZSB0aGUgbWVkaWEgcXVlcnkgc3RyaW5nIGZyb20gbWluIGFuZCBtYXggbGltaXRzLlxuICBAaWYgJGhpZHBpIHtcbiAgICAvLyBHZW5lcmF0ZSB2YWx1ZXMgaW4gRFBJIGluc3RlYWQgb2YgRFBQWCBmb3IgYW4gSUU5LTExL09wZXJhIG1pbmkgY29tcGF0aWJpbGl0eS5cbiAgICAvLyBTZWUgaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtbWVkaWEtcmVzb2x1dGlvblxuICAgICRicC1taW4tZHBpOiBpZigkYnAtbWluLCAkYnAtbWluICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1pbik7XG4gICAgJGJwLW1heC1kcGk6IGlmKCRicC1tYXgsICRicC1tYXggKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWF4KTtcbiAgICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbiwgJGJwLW1heCwgJy13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbycsICctd2Via2l0LW1heC1kZXZpY2UtcGl4ZWwtcmF0aW8nKSxcbiAgICAgIC16Zi1icC1qb2luKCRicC1taW4tZHBpLCAkYnAtbWF4LWRwaSwgJ21pbi1yZXNvbHV0aW9uJywgJ21heC1yZXNvbHV0aW9uJyksXG4gICAgICAnLCAnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4KTtcbiAgfVxufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIGFuZCBgJGJyZWFrcG9pbnRzLWhpZHBpYCBtYXBzLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gSWYgbXVsdGlwbGUgdmFsdWVzIGFyZSBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGdlbmVyYXRlIGEgbWVkaWEgcXVlcnkgZm9yIGVhY2ggb2YgdGhlbSBhcyBkZXNjcmliZWQgYWJvdmUuXG4vLy8gU2luY2UgdGhlIGNvbnRlbnQgaXMgZHVwbGljYXRlZCBmb3IgZWFjaCBicmVha3BvaW50LCB0aGlzIG1peGluIHNob3VsZCBvbmx5IGJlIHVzZWQgd2l0aCBwcm9wZXJ0aWVzIHRoYXRcbi8vLyBjaGFuZ2UgYWNyb3NzIGJyZWFrcG9pbnRzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlcy4uLiAtIEJyZWFrcG9pbnQgbmFtZSBvciBweC9yZW0vZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlcy4uLikge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdmFsdWVzKSB7XG4gICAgJHZhbHVlOiBudGgoJHZhbHVlcywgJGkpO1xuICAgICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgbnRoKCR2YWx1ZSwgMSkpO1xuICAgICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuICAgIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICAgJGRpcjogaWYobGVuZ3RoKCR2YWx1ZSkgPiAxLCBudGgoJHZhbHVlLCAyKSwgdXApO1xuXG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuXG4gICAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gICAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICAgIEBpZiAkc3RyID09ICcnIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gICAgQGVsc2Uge1xuICAgICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgICAgLy8gZ2VuZXJhdGUgcHJpbnQgaWYgdGhlIGJyZWFrcG9pbnQgYWZmZWN0cyB0aGUgcHJpbnQtYnJlYWtwb2ludCAob3Igc21hbGxlcikuXG4gICAgICAvLyBUaGlzIG1lYW5zIHRoZSBjdXJyZW50IGNvbmRpdGlvbiBvbmx5IG5lZWRzIHRvIGJlIGV4dGVuZGVkIHNvICdkb3duJyBhbHdheXMgZ2VuZXJhdGVzIHByaW50LlxuICAgICAgQGlmICRicCAhPSBudWxsIGFuZCAoJGJwIDw9ICRwYnAgb3IgJGRpciA9PSBkb3duKSB7XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIENvbnZlcnRzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IG51bWJlciBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRudW1iZXIgLSBOdW1iZXIgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSBudW1iZXIgZm9sbG93aW5nIGAkbnVtYmVyYCwgaWYgYCRudW1iZXJgIHdhcyBmb3VuZC4gSWYgYCRudW1iZXJgIHdhcyBub3QgZm91bmQsIG9yIGAkbnVtYmVyYCB3YXMgdGhlIGJpZ2dlc3QgbnVtYmVyIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dC1udW1iZXIoJG1hcCwgJG51bWJlcikge1xuXG4gICRuZXh0X251bWJlcjogbnVsbDtcblxuICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgQGlmIHR5cGUtb2YoJHYpID09ICdudW1iZXInIGFuZCAkdiA+ICRudW1iZXIgYW5kICgkbmV4dF9udW1iZXIgPT0gbnVsbCBvciAkdiA8ICRuZXh0X251bWJlcikge1xuICAgICAgJG5leHRfbnVtYmVyOiAkdjtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXh0X251bWJlcjtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIEtleSB0byB1c2UgYXMgbGFzdCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJGtleSkge1xuICAkbGlzdDogKCk7XG4gICRmb3VuZF9rZXk6IGZhbHNlO1xuXG4gIEBlYWNoICRuYW1lIGluICQtemYtYnJlYWtwb2ludHMta2V5cyB7XG4gICAgQGlmICgkbmFtZSA9PSAka2V5KSB7XG4gICAgICAkZm91bmRfa2V5OiB0cnVlO1xuICAgIH1cbiAgICBAaWYgbm90ICRmb3VuZF9rZXkge1xuICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJG5hbWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIGEgbmFtZWQgb3Igbm9uLW5hbWVkIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAkbGFzdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICRmb3VuZDogZmFsc2U7XG5cbiAgJHZhbHVlOiB1bml0bGVzcy1jYWxjKCRicmVha3BvaW50LCAxcHgpO1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgQGlmIHVuaXRsZXNzLWNhbGMoJHZhbCkgPiAkdmFsdWUge1xuICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGxhc3Q6ICRrZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbGFzdDtcbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIHRoZSBiZXN0IGJyZWFrcG9pbnQgdG8gdXNlIGFjY29yZGluZyB0byB0aGUgY2FsbGluZyBjb250ZXh0LiBJdCByZXR1cm5zIGluIG9yZGVyOlxuLy8vIDEuIHRoZSBnaXZlbiBgJHZhbHVlYCBhcmd1bWVudCBpZiBpdCBpcyBub3QgbnVsbC5cbi8vLyAyLiB0aGUgZ2xvYmFsIGJyZWFrcG9pbnQgY29udGV4dCBgJC16Zi1zaXplYCBpZiBpdCBpcyBub3QgbnVsbCAobGlrZSBpZiBjYWxsZWQgaW5zaWRlIHRoZW4gYGJyZWFrcG9pbnQoKWAgbWl4aW4pXG4vLy8gMy4gdGhlIGdpdmVuIGAkZGVmYXVsdGAgYXJndW1lbnQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBpbiBwcmlvcml0eSBpZiBub24tbnVsbC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkZWZhdWx0IFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGJ5IGRlZmF1bHQgaWYgbm8gb3RoZXIgdmFsdWUgY2FuIGJlIHVzZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBUaGUgcmVzb2x2ZWQgYnJlYWtwb2ludC5cbkBmdW5jdGlvbiAtemYtY3VycmVudC1icmVha3BvaW50KCR2YWx1ZTogbnVsbCwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgQGlmICgkdmFsdWUgIT0gbnVsbCkge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICh2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgQHJldHVybiAkLXpmLXNpemU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJGRlZmF1bHQ7XG4gIH1cbn1cblxuLy8vIFJldHVybiBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gbWluIGFuZC9vciBtYXggbGltaXRzLlxuLy8vIElmIGEgbGltaXQgaXMgZXF1YWwgdG8gYG51bGxgIG9yIGAwYCwgaXQgaXMgaWdub3JlZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWluIFswXSAtIE1pbiBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCBbMF0gLSBNYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtaW4tbmFtZSBbJ21pbi13aWR0aCddIC0gTmFtZSBvZiB0aGUgbWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyIFsnbWF4LXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBNZWRpYSBRdWVyeSBzdHJpbmcuXG5AZnVuY3Rpb24gLXpmLWJwLWpvaW4oXG4gICRtaW46IDAsXG4gICRtYXg6IDAsXG4gICRtaW4tbmFtZTogJ21pbi13aWR0aCcsXG4gICRtYXgtbmFtZTogJ21heC13aWR0aCdcbikge1xuICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgIGlmKCRtaW4gYW5kICRtaW4gPiAwLCAnKCN7JG1pbi1uYW1lfTogI3skbWlufSknLCBudWxsKSxcbiAgICBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJygjeyRtYXgtbmFtZX06ICN7JG1heH0pJywgbnVsbCksXG4gICAgJyBhbmQgJyk7XG59XG5cbiRzbWFsbC11cDogJyc7XG4kc21hbGwtb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbiRtZWRpdW0tdXA6ICcnO1xuJG1lZGl1bS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG4kbGFyZ2UtdXA6ICcnO1xuJGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG4keGxhcmdlLXVwOiAnJztcbiR4bGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHh4bGFyZ2UtdXA6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBSZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBDU1MgZmxleCB2YWx1ZSBmb3IgYSBjZWxsIGJhc2UuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQWNjZXB0cyBgZnVsbGAsIGBhdXRvYCwgYHNocmlua2AsIGBncm93YCwgb3IgYW55IG90aGVyIHZhbHVlIHJlcHJlc2VudGluZyBhIGNlbGwgc2l6ZSAoaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGBzaHJpbmtgKS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBUaGUgY2VsbCBmbGV4IHByb3BlcnR5IHZhbHVlLlxuQGZ1bmN0aW9uIHh5LWNlbGwtYmFzZSgkc2l6ZTogZnVsbCkge1xuICBAaWYgKCRzaXplID09ICdhdXRvJykge1xuICAgIEByZXR1cm4gMSAxIDBweDtcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ2dyb3cnKSB7XG4gICAgQHJldHVybiAxIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ3Nocmluaycgb3IgJHNpemUgPT0gJ2Z1bGwnIG9yIHpmLWlzLWZyYWN0aW9uKCRzaXplLCAkYWxsb3ctbm8tZGVub21pbmF0b3I6IHRydWUpKSB7XG4gICAgQHJldHVybiAwIDAgYXV0bztcbiAgfVxuICBAcmV0dXJuIG51bGw7XG59XG5cbi8vLyBDYWxjdWxhdGUgdGhlIHNpemUgb2YgYSBjZWxsIGd1dHRlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgcmV0dXJucyB0aGUgcmVzcG9uc2l2ZSBndXR0ZXJzIG1hcCBgJGd1dHRlcnNgLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfE1hcH0gVGhlIGNlbGwgZ3V0dGVyIHNpemUgb3IgdGhlIHJlc3BvbnNpdmUgZ3V0dGVycyBtYXAuXG5AZnVuY3Rpb24geHktY2VsbC1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRicmVha3BvaW50OiBudWxsXG4pIHtcbiAgLy8gRm9yIGBhdXRvYCwgcmV0dXJucyB0aGUgcmVzcG9uc2l2ZSBtYXAgYCRndXR0ZXJzYC5cbiAgQGlmICgkYnJlYWtwb2ludCA9PSAnYXV0bycpIHtcbiAgICBAcmV0dXJuICRndXR0ZXJzO1xuICB9XG5cbiAgLy8gVXNlIHRoZSBjb250ZXh0dWFsIGJyZWFrcG9pbnQgYnkgZGVmYXVsdC5cbiAgJGJyZWFrcG9pbnQ6IC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpO1xuXG4gIEBpZiAoJGJyZWFrcG9pbnQpIHtcbiAgICBAcmV0dXJuIC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtemVyby1icmVha3BvaW50KSBvciAwO1xuICB9XG59XG5cbi8vLyBSZXR1cm5zIHRoZSBwZXJjZW50YWdlIHNpemUgb2YgYSBjZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHNpemUgWyRncmlkLWNvbHVtbnNdIC0gU2l6ZSB0byBtYWtlIHRoZSBjZWxsLiBZb3UgY2FuIHBhc3MgYSB2YWx1ZSBpbiBtdWx0aXBsZSBmb3JtYXRzLCBzdWNoIGFzIGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzNgLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gU2l6ZSBvZiB0aGUgY2VsbCAoaW4gcGVyY2VudCkuXG5AZnVuY3Rpb24geHktY2VsbC1zaXplKFxuICAkc2l6ZTogJGdyaWQtY29sdW1uc1xuKSB7XG4gIEByZXR1cm4gZnJhY3Rpb24tdG8tcGVyY2VudGFnZSgkc2l6ZSwgJGRlbm9taW5hdG9yOiAkZ3JpZC1jb2x1bW5zKTtcbn1cblxuLy8vIFJldHVybnMgdGhlIGFwcHJvcHJpYXRlIENTUyB2YWx1ZSBmb3IgYSBjZWxsIHNpemUuXG4vLy9cbi8vLyBHdXR0ZXJzLXJlbGF0ZWQgYXJndW1lbnRzIGFyZSByZXF1aXJlZCBmb3IgY2VsbHMgd2l0aCBtYXJnaW4gZ3V0dGVycyAoYnkgZGVmYXVsdCkgYXMgdGhlIGd1dHRlciBpcyBpbmNsdWRlZCBpbiB0aGUgd2lkdGguXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAsIGBhdXRvYCwgYHNocmlua2Agb3IgYW55IGZyYWN0aW9uIGxpa2UgYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIHJldHVybnMgYSBtYXAgb2Ygc2l6ZXMgYWRhcHRlZCB0byByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ8U3RyaW5nfE1hcH0gVGhlIGNlbGwgc2l6aW5nIHByb3BlcnR5IHZhbHVlLCBvciBhIHJlc3BvbnNpdmUgbWFwIG9mIHRoZW0uXG5AZnVuY3Rpb24geHktY2VsbC1zaXplLWNzcyhcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiBudWxsXG4pIHtcbiAgJG1hcmdpbi1ndXR0ZXI6IDA7XG5cbiAgQGlmICgkc2l6ZSA9PSAnYXV0bycgb3IgJHNpemUgPT0gJ3NocmluaycpIHtcbiAgICBAcmV0dXJuIGF1dG87XG4gIH1cblxuICAvLyBGb3IgY2VsbHMgd2l0aCBtYXJnaW4gZ3V0dGVycywgdGhlIGd1dHRlciBpcyBpbmNsdWRlZCBpbiB0aGUgd2lkdGguXG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgJG1hcmdpbi1ndXR0ZXI6IHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAgIEBpZiAoJG1hcmdpbi1ndXR0ZXIgPT0gbnVsbCkge1xuICAgICAgQGVycm9yICd4eS1jZWxsLXNpemU6IG5vIGd1dHRlcnMgd2VyZSBmb3VuZCBpbiBgJGd1dHRlcnNgIGZvciBcIiRicmVha3BvaW50OiAjeyRicmVha3BvaW50fVwiJztcbiAgICB9XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgdGhlIGNlbGwgc2l6ZSAobnVtYmVyKVxuICAkc2l6ZS1yYXc6IGlmKCRzaXplID09ICdmdWxsJywgMTAwJSwgeHktY2VsbC1zaXplKCRzaXplKSk7XG5cbiAgLy8gQ2FsY3VsYXRlIHRoZSBjZWxsIENTUyBzaXplIGluY2x1ZGluZyBndXR0ZXJzIChzdHJpbmcpXG4gIC8vIElmIHRoZSBjZWxsIGhhcyByZXNwb25zaXZlIG1hcmdpbiBndXR0ZXJzLCByZXR1cm4gYSByZXNwb25zaXZlIG1hcCBvZiBzaXplcy5cbiAgQGlmIHR5cGUtb2YoJG1hcmdpbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXM6ICgpO1xuXG4gICAgQGVhY2ggJGJwLCAkbWcgaW4gJG1hcmdpbi1ndXR0ZXIge1xuICAgICAgJHNpemUtY3NzOiBpZigkbWcgPT0gMCwgJHNpemUtcmF3LCBjYWxjKCN7JHNpemUtcmF3fSAtICN7cmVtLWNhbGMoJG1nKX0pKTtcbiAgICAgICRyZXNwb25zaXZlLWNzcy1zaXplczogbWFwLW1lcmdlKCRyZXNwb25zaXZlLWNzcy1zaXplcywgKCRicDogJHNpemUtY3NzKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXM7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gYSBzaW5nbGUgQ1NTIHNpemUuXG4gIEBlbHNlIHtcbiAgICAkY3NzLXNpemU6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsICRzaXplLXJhdywgY2FsYygjeyRzaXplLXJhd30gLSAje3JlbS1jYWxjKCRtYXJnaW4tZ3V0dGVyKX0pKTtcbiAgICBAcmV0dXJuICRjc3Mtc2l6ZTtcbiAgfVxufVxuXG4vLy8gU2V0cyBiYXNlIGZsZXggcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQWNjZXB0cyBgZnVsbGAsIGBhdXRvYCwgYHNocmlua2AsIGBncm93YCwgb3IgYW55IG90aGVyIHZhbHVlIHJlcHJlc2VudGluZyBhIGNlbGwgc2l6ZSAoaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGBzaHJpbmtgKS5cbkBtaXhpbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgJGJhc2U6IHh5LWNlbGwtYmFzZSgkc2l6ZSk7XG5cbiAgZmxleDogI3skYmFzZX07XG5cbiAgLy8gU2V0IGJhc2Ugc3R5bGVzIGZvciBcImZ1bGxcIiBvbmx5XG4gIEBpZigkc2l6ZSA9PSAnZnVsbCcpIHtcbiAgICBtaW4taGVpZ2h0OiAwcHg7XG4gICAgbWluLXdpZHRoOiAwcHg7XG4gIH1cbn1cblxuLy8vIFJlc2V0cyBhIGNlbGxzIHdpZHRoIChvciBoZWlnaHQgaWYgdmVydGljYWwgaXMgdHJ1ZSkgYXMgd2VsbCBhcyBzdHJpcHMgaXRzIGd1dHRlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1yZXNldCgkdmVydGljYWw6IHRydWUpIHtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIGhlaWdodCwgd2lkdGgpO1xuICAjeyRkaXJlY3Rpb259OiBhdXRvO1xuICBtYXgtI3skZGlyZWN0aW9ufTogbm9uZTtcbn1cblxuLy8vIFNldHMgc2l6aW5nIHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gR3V0dGVycy1yZWxhdGVkIGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQgZm9yIGNlbGxzIHdpdGggbWFyZ2luIGd1dHRlcnMgKGJ5IGRlZmF1bHQpIGFzIHRoZSBndXR0ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIHdpZHRoLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgICgxMDAlIHdpZHRoKSwgYGF1dG9gICh1c2UgYWxsIGF2YWlsYWJsZSBzcGFjZSksIGBzaHJpbmtgICh1c2Ugb25seSB0aGUgcmVxdWlyZWQgc3BhY2UpIG9yIGFueSBmcmFjdGlvbiAoYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuLi4pLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCBnZW5lcmF0ZXMgc2l6ZXMgYWRhcHRlZCBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtc2l6ZShcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJHNpemVzOiB4eS1jZWxsLXNpemUtY3NzKCRzaXplLCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkYnJlYWtwb2ludCk7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcblxuICBAaWYgKHR5cGUtb2YoJHNpemVzKSA9PSAnbWFwJykge1xuICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKGF1dG8sICRzaXplcykge1xuICAgICAgI3skZGlyZWN0aW9ufTogJC16Zi1icC12YWx1ZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICN7JGRpcmVjdGlvbn06ICRzaXplcztcbiAgfVxufVxuXG4vLy8gU2V0cyBndXR0ZXJzIHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW251bGxdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLiBCeSBkZWZhdWx0IGByaWdodCBsZWZ0YCBmb3IgaG9yaXpvbnRhbCBjZWxscyBhbmQgYHRvcCBib3R0b21gIGZvciB2ZXJ0aWNhbCBjZWxscy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIGdlbmVyYXRlcyByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gRGlyZWN0aW9uIG9mIHRoZSBndXR0ZXJzIHRvIG91dHB1dC4gU2VlIGAkZ3V0dGVyLXBvc2l0aW9uYC5cbkBtaXhpbiB4eS1jZWxsLWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IG51bGwsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgLy8gR2V0IHRoZSBkZWZhdWx0IGd1dHRlciBwb3NpdGlvbiBhY2NvcmRpbmcgdG8gY2VsbCBkaXJlY3Rpb25cbiAgQGlmKCRndXR0ZXItcG9zaXRpb24gPT0gbnVsbCkge1xuICAgICRndXR0ZXItcG9zaXRpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCB0b3AgYm90dG9tLCBsZWZ0IHJpZ2h0KTtcbiAgfVxuXG4gIC8vIEdldCB0aGUgZ3V0dGVyIHdpZHRoIGZvciB0aGlzIGJyZWFrcG9pbnRcbiAgJGd1dHRlci13aWR0aDogeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gIEBpZiAoJGd1dHRlci13aWR0aCA9PSBudWxsKSB7XG4gICAgQGVycm9yICd4eS1jZWxsLWd1dHRlcnM6IG5vIGd1dHRlcnMgd2VyZSBmb3VuZCBpbiBgJGd1dHRlcnNgIGZvciBcIiRicmVha3BvaW50OiAjeyRicmVha3BvaW50fVwiJztcbiAgfVxuXG4gIEBpZiAoJGd1dHRlci10eXBlIGFuZCAkZ3V0dGVyLXR5cGUgIT0gbm9uZSkge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlci13aWR0aCwgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGNlbGwgZm9yIHlvdXIgZ3JpZC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFtudWxsXSAtIFtERVBSRUNBVEVEXSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbbnVsbF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uIEJ5IGRlZmF1bHQgYHJpZ2h0IGxlZnRgIGZvciBob3Jpem9udGFsIGNlbGxzIGFuZCBgdG9wIGJvdHRvbWAgZm9yIHZlcnRpY2FsIGNlbGxzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgZ2VuZXJhdGVzIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbi8vLyBAcGFyYW0ge0xpc3R9ICRvdXRwdXQgWyhiYXNlIHNpemUgZ3V0dGVycyldIC0gQ2VsbCBwYXJ0cyB0byBvdXRwdXQuIFlvdSB3aWxsIG5lZWQgdG8gZ2VuZXJhdGUgb3RoZXJzIHBhcnRzIG9mIHRoZSBjZWxsIHNlcGVyYXRlbHksIGl0IG1heSBub3Qgd29yayBwcm9wZXJseSBvdGhlcndpc2UuXG5AbWl4aW4geHktY2VsbChcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXItb3V0cHV0OiBudWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJG91dHB1dDogKGJhc2Ugc2l6ZSBndXR0ZXJzKVxuKSB7XG4gIC8vIERlZmF1bHQgZm9yICRndXR0ZXItb3V0cHV0XG4gIEBpZiAoJGd1dHRlci1vdXRwdXQgIT0gbnVsbCkge1xuICAgIEB3YXJuICd4eS1jZWxsOiAkZ3V0dGVyLW91dHB1dCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFNlZSBtaWdyYXRpb24gbm90ZXMgYXQgaHR0cHM6Ly9naXQuaW8vZm91bmRhdGlvbi02LTYtMCc7XG4gICAgQGlmICgkZ3V0dGVyLW91dHB1dCA9PSBmYWxzZSkge1xuICAgICAgJG91dHB1dDogc2wtcmVtb3ZlKCRvdXRwdXQsIGd1dHRlcnMpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoaW5kZXgoJG91dHB1dCwgYmFzZSkpIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoJHNpemUpO1xuICB9XG4gIEBpZiAoaW5kZXgoJG91dHB1dCwgc2l6ZSkpIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJHNpemUsICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRicmVha3BvaW50LCAkdmVydGljYWwpO1xuICB9XG4gIEBpZiAoaW5kZXgoJG91dHB1dCwgZ3V0dGVycykpIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWd1dHRlcnMoJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbiwgJGJyZWFrcG9pbnQsICR2ZXJ0aWNhbCk7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCBzaXplZCBncmlkLiBVc2VkIHRvIGdlbmVyYXRlIG91ciBncmlkIGNsYXNzZXMuXG4vLy9cbi8vLyBgeHktY2VsbC1zdGF0aWMoKWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLlxuLy8vIFVzZSBgeHktY2VsbCgpYCBpbnN0ZWFkIHdpdGggYCRvdXRwdXQ6IChzaXplIGd1dHRlcnMpYCB0byBub3QgZ2VuZXJhdGUgdGhlIGNlbGwgYmFzZS5cbi8vLyBTZWUgbWlncmF0aW9uIG5vdGVzIGF0IGh0dHBzOi8vZ2l0LmlvL2ZvdW5kYXRpb24tNi02LTBcbi8vL1xuLy8vIEBkZXByZWNhdGVkIHY2LjYuMFxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgICgxMDAlIHdpZHRoKSwgYGF1dG9gICh1c2UgYWxsIGF2YWlsYWJsZSBzcGFjZSksIGBzaHJpbmtgICh1c2Ugb25seSB0aGUgcmVxdWlyZWQgc3BhY2UpIG9yIGFueSBmcmFjdGlvbiAoYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuLi4pLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnMuIEFsd2F5cyBgdHJ1ZWAgZm9yIG1hcmdpbiBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1zdGF0aWMoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50LFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgQHdhcm4gJ3h5LWNlbGwtc3RhdGljKCkgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgXCJ4eS1jZWxsKClcIiBpbnN0ZWFkLiBTZWUgbWlncmF0aW9uIG5vdGVzIGF0IGh0dHBzOi8vZ2l0LmlvL2ZvdW5kYXRpb24tNi02LTAnO1xuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gICRndXR0ZXItcG9zaXRpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCB0b3AgYm90dG9tLCBsZWZ0IHJpZ2h0KTtcblxuICAkLWd1dHRlci1vdXRwdXQ6IGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJywgdHJ1ZSwgJGd1dHRlci1vdXRwdXQpO1xuICAkLWd1dHRlci1tYXJnaW46IGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJywgJGd1dHRlciwgMCk7XG5cbiAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJC1ndXR0ZXItbWFyZ2luLCAkdmVydGljYWwpO1xuICBAaWYgKCQtZ3V0dGVyLW91dHB1dCkge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlciwgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uKTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENvbGxhcHNlcyB0aGUgZ3JpZCBhIGNlbGxzIHdpdGhpbiBpdC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWy5jZWxsXSAtIFRoZSBjaGlsZCBlbGVtZW50IHRvIHJlbW92ZSB0aGUgZ3V0dGVyIGZyb20uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUaGUgdHlwZSBvZiBndXR0ZXIgdG8gcmVtb3ZlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb25zIHRvIHJlbW92ZSBndXR0ZXJzIGZyb20uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG1pbi1icmVha3BvaW50IFskLXpmLXplcm8tYnJlYWtwb2ludF0gLSBNaW5pbXVtIGJyZWFrcG9pbnQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGZvciB3aGljaCB0byBjb2xsYXBzZSB0aGUgZ3V0dGVyLlxuQG1peGluIHh5LWdyaWQtY29sbGFwc2UoXG4gICRzZWxlY3RvcjogJy5jZWxsJyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRtaW4tYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnRcbikge1xuICAvLyBGaXJzdCwgbGV0cyBuZWdhdGUgYW55IG1hcmdpbnMgb24gdGhlIHRvcCBsZXZlbFxuICBAaWYgKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgIH1cblxuICAgICAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRleGNsdWRlZC1icHM6IC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJG1pbi1icmVha3BvaW50KTtcblxuICAgIC8vIE91dHB1dCBuZXcgd2lkdGhzIHRvIG5vdCBpbmNsdWRlIGd1dHRlcnNcbiAgICBAZWFjaCAkYnAgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYoc2wtY29udGFpbigkZXhjbHVkZWQtYnBzLCAkYnApKSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgICAgID4gLiN7JGJwfS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicCkge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgICAgICA+IC4jeyRicH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJGksICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICB9XG5cbiAgICAgID4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAgIHBhZGRpbmctI3skdmFsdWV9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIHZhbHVlIHRvIG9mZnNldCBhIGNlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgeHktY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gTWFwIG9mIGd1dHRlcnMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIFRoZSB0eXBlIG9mIGd1dHRlciB0byB1c2UuIENhbiBiZSBgbWFyZ2luYCBvciBgcGFkZGluZ2Bcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfFN0cmluZ30gVGhlIGNlbGwgb2Zmc2V0IHByb3BlcnR5IHZhbHVlLlxuQGZ1bmN0aW9uIHh5LWNlbGwtb2Zmc2V0KFxuICAkbixcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGxcbikge1xuICAkYnJlYWtwb2ludDogLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCwgJGRlZmF1bHQ6ICQtemYtemVyby1icmVha3BvaW50KTtcbiAgJHNpemU6IHh5LWNlbGwtc2l6ZSgkbik7XG5cbiAgJG9mZnNldDogJHNpemU7XG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgJGd1dHRlcjogcmVtLWNhbGMoeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkYnJlYWtwb2ludCkgLyAyKTtcbiAgICAkb2Zmc2V0OiBpZigkZ3V0dGVyID09IDAsICRzaXplLCBjYWxjKCN7JHNpemV9ICsgI3skZ3V0dGVyfSkpO1xuICB9XG4gIEByZXR1cm4gJG9mZnNldDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0L2JvdHRvbSBieSBgJG5gIGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgeHktY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gTWFwIG9mIGd1dHRlcnMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIFRoZSB0eXBlIG9mIGd1dHRlciB0byB1c2UuIENhbiBiZSBgbWFyZ2luYCBvciBgcGFkZGluZ2Bcbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBmb3IgYCRndXR0ZXJzYC4gSXQgY2FuIGJlIGEgYnJlYWtwb2ludCBuYW1lLCBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIGBhdXRvYCBmb3IgYWxsIGJyZWFrcG9pbnRzLiBJZiBhIGxpc3QgaXMgZ2l2ZW4sIG1lZGlhLXF1ZXJpZXMgd2lsbCBiZSBnZW5lcmF0ZWQuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIFNldHMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgb2Zmc2V0LiBJZiBzZXQgdG8gdHJ1ZSB3aWxsIGFwcGx5IG1hcmdpbi10b3AgaW5zdGVhZC5cbkBtaXhpbiB4eS1jZWxsLW9mZnNldChcbiAkbixcbiAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gJGJyZWFrcG9pbnQ6IG51bGwsXG4gJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50LCAkZGVmYXVsdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwsICd0b3AnLCAkZ2xvYmFsLWxlZnQpO1xuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oJGJyZWFrcG9pbnQsICRtZWRpYS1xdWVyaWVzOiAnZm9yLWxpc3RzJykge1xuICAgICRvZmZzZXQ6IHh5LWNlbGwtb2Zmc2V0KCRuLCAkZ3V0dGVycywgJGd1dHRlci10eXBlKTtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogI3skb2Zmc2V0fTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gLjAwMTI1O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gLjAwMTI1O1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsb2F0XG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAuY2xlYXJmaXgge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgRmxleGJveCBVdGlsaXRpZXNcbi8vLy9cbi8vXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvdW50IG9mIHNvdXJjZSBvcmRlcmluZ2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNiAhZGVmYXVsdDtcblxuLy8vIFF1aWNrbHkgZGlzYWJsZS9lbmFibGUgUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgVmFuaWxsYSBGbGV4IEhlbHBlcnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZSAhZGVmYXVsdDtcblxuQG1peGluIGZsZXgtaGVscGVycyB7XG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1ncm93IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluICQtemYtZmxleC1qdXN0aWZ5IHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgU3BlY2lmaWNhbGx5IGZvciBWZXJ0aWNhbCBNZW51XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiBtYXAtcmVtb3ZlKCQtemYtZmxleC1qdXN0aWZ5LCAnanVzdGlmeScsICdzcGFjZWQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAmLm1lbnUgPiBsaSA+IGEge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENlbnRyYWwgYWxpZ25tZW50IG9mIGNvbnRlbnRcbiAgLmFsaWduLWNlbnRlci1taWRkbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IG1pZGRsZSk7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWYW5pbGxhIEZsZXhib3ggSGVscGVyc1xuICBAaW5jbHVkZSBmbGV4LWhlbHBlcnM7XG59XG4iLCJAZnVuY3Rpb24gLXpmLWZsZXgtanVzdGlmeSgkdGV4dC1kaXJlY3Rpb24pe1xuICAkLXpmLWZsZXgtanVzdGlmeTogKFxuICAgICdsZWZ0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1lbmQsIGZsZXgtc3RhcnQpLFxuICAgICdyaWdodCc6IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGZsZXgtc3RhcnQsIGZsZXgtZW5kKSxcbiAgICAnY2VudGVyJzogY2VudGVyLFxuICAgICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgICAnc3BhY2VkJzogc3BhY2UtYXJvdW5kLFxuICApO1xuXG4gIEByZXR1cm4gJC16Zi1mbGV4LWp1c3RpZnk7XG59XG5cblxuJC16Zi1mbGV4LWFsaWduOiAoXG4gICd0b3AnOiBmbGV4LXN0YXJ0LFxuICAnYm90dG9tJzogZmxleC1lbmQsXG4gICdtaWRkbGUnOiBjZW50ZXIsXG4gICdzdHJldGNoJzogc3RyZXRjaCxcbik7XG5cbiQtemYtZmxleC1kaXJlY3Rpb246IChcbiAgJ3Jvdyc6IHJvdyxcbiAgJ3Jvdy1yZXZlcnNlJzogcm93LXJldmVyc2UsXG4gICdjb2x1bW4nOiBjb2x1bW4sXG4gICdjb2x1bW4tcmV2ZXJzZSc6IGNvbHVtbi1yZXZlcnNlLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgdmVydGljYWwgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG5cbi8vLyBDaGFuZ2UgZmxleC1kaXJlY3Rpb25cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3Jvd10gLSBGbGV4IGRpcmVjdGlvbiB0byB1c2UuIENhbiBiZVxuLy8vICAgLSByb3cgKGRlZmF1bHQpOiBzYW1lIGFzIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIHJvdy1yZXZlcnNlOiBvcHBvc2l0ZSB0byB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSBjb2x1bW46IHNhbWUgYXMgcm93IGJ1dCB0b3AgdG8gYm90dG9tXG4vLy8gICAtIGNvbHVtbi1yZXZlcnNlOiBzYW1lIGFzIHJvdy1yZXZlcnNlIHRvcCB0byBib3R0b21cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXG5AbWl4aW4gZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIiVub3NlbGVjdCB7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbiVjbGVhcmZpeCB7XG4gICAgJjo6YWZ0ZXIsXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbn1cblxuJW5vd3JhcCxcbi5uby13cmFwIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLy9cbi8vIFNhc3MgZm9yIGh0dHA6Ly9wcm9wdWJsaWNhLmdpdGh1Yi5pby9zdGF0ZWZhY2UvIGljb24gc2V0LlxuLy8gYWxzbyBhZG9wdGVkIHNvbWUgY29kZSBmcm9tIG90aGVyIGNvbnRyaWJ1dG9yczpcbi8vICAtIHJlcGxhY2VtZW50OiBQYXVsIFNtaXRoIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXVsc21pdGhcbi8vICAtIEZJUFMgc3RhdGUgYWJicmV2aWF0aW9uczogaHR0cHM6Ly9naXRodWIuY29tL2pvZXRyaWNcbi8vXG5cbi8vIFN0YXRlRmFjZSBkZWZhdWx0IHJvb3QgcGF0aCB2YXJpYWJsZSBhbGxvd2luZyBvdmVycmlkZXMgd2hlbiBpbmNsdWRlZCBpbiBsYXJnZXIgU0FTUyBwcm9qZWN0XG4kc2Ytcm9vdC1wYXRoOiAnL2Fzc2V0cy9mb250cy9zdGF0ZWZhY2UnICFkZWZhdWx0O1xuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgZm9udC1mYW1pbHk6ICdzZi1yZWd1bGFyJztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBzcmM6IHVybCgnI3skc2Ytcm9vdC1wYXRofS9zdGF0ZWZhY2UtcmVndWxhci13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbn1cblxuLnN0YXRlLWZhY2Uge1xuICAgICYuc2YtcmVwbGFjZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWluLXdpZHRoOiAxZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTllbTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICdzZi1yZWd1bGFyJztcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIHNwZWFrOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxufVxuXG4vLyBJY29uc1xuJHN0YXRlLWZhY2U6XG4oJ2FsYWJhbWEnLCAnYWwnLCAnMDEnLCAnQicpLFxuKCdhbGFza2EnLCAnYWsnLCAnMDInLCAnQScpLFxuKCdhcml6b25hJywgJ2F6JywgJzA0JywgJ0QnKSxcbignYXJrYW5zYXMnLCAnYXInLCAnMDUnLCAnQycpLFxuKCdjYWxpZm9ybmlhJywgJ2NhJywgJzA2JywgJ0UnKSxcbignY29sb3JhZG8nLCAnY28nLCAnMDgnLCAnRicpLFxuKCdjb25uZWN0aWN1dCcsICdjdCcsICcwOScsICdHJyksXG4oJ2RlbGF3YXJlJywgJ2RlJywgJzEwJywgJ0gnKSxcbignZmxvcmlkYScsICdmbCcsICcxMicsICdJJyksXG4oJ2dlb3JnaWEnLCAnZ2EnLCAnMTMnLCAnSicpLFxuKCdoYXdhaWknLCAnaGknLCAnMTUnLCAnSycpLFxuKCdpZGFobycsICdpZCcsICcxNicsICdNJyksXG4oJ2lsbGlub2lzJywgJ2lsJywgJzE3JywgJ04nKSxcbignaW5kaWFuYScsICdpbicsICcxOCcsICdPJyksXG4oJ2lvd2EnLCAnaWEnLCAnMTknLCAnTCcpLFxuKCdrYW5zYXMnLCAna3MnLCAnMjAnLCAnUCcpLFxuKCdrZW50dWNreScsICdreScsICcyMScsICdRJyksXG4oJ2xvdWlzaWFuYScsICdsYScsICcyMicsICdSJyksXG4oJ21haW5lJywgJ21lJywgJzIzJywgJ1UnKSxcbignbWFyeWxhbmQnLCAnbWQnLCAnMjQnLCAnVCcpLFxuKCdtYXNzYWNodXNldHRzJywgJ21hJywgJzI1JywgJ1MnKSxcbignbWljaGlnYW4nLCAnbWknLCAnMjYnLCAnVicpLFxuKCdtaW5uZXNvdGEnLCAnbW4nLCAnMjcnLCAnVycpLFxuKCdtaXNzaXNzaXBwaScsICdtcycsICcyOCcsICdZJyksXG4oJ21pc3NvdXJpJywgJ21vJywgJzI5JywgJ1gnKSxcbignbW9udGFuYScsICdtdCcsICczMCcsICdaJyksXG4oJ25lYnJhc2thJywgJ25lJywgJzMxJywgJ2MnKSxcbignbmV2YWRhJywgJ252JywgJzMyJywgJ2cnKSxcbignbmV3LWhhbXBzaGlyZScsICduaCcsICczMycsICdkJyksXG4oJ25ldy1qZXJzZXknLCAnbmonLCAnMzQnLCAnZScpLFxuKCduZXctbWV4aWNvJywgJ25tJywgJzM1JywgJ2YnKSxcbignbmV3LXlvcmsnLCAnbnknLCAnMzYnLCAnaCcpLFxuKCdub3J0aC1jYXJvbGluYScsICduYycsICczNycsICdhJyksXG4oJ25vcnRoLWRha290YScsICduZCcsICczOCcsICdiJyksXG4oJ29oaW8nLCAnb2gnLCAnMzknLCAnaScpLFxuKCdva2xhaG9tYScsICdvaycsICc0MCcsICdqJyksXG4oJ29yZWdvbicsICdvcicsICc0MScsICdrJyksXG4oJ3Blbm5zeWx2YW5pYScsICdwYScsICc0MicsICdsJyksXG4oJ3Job2RlLWlzbGFuZCcsICdyaScsICc0NCcsICdtJyksXG4oJ3NvdXRoLWNhcm9saW5hJywgJ3NjJywgJzQ1JywgJ24nKSxcbignc291dGgtZGFrb3RhJywgJ3NkJywgJzQ2JywgJ28nKSxcbigndGVubmVzc2VlJywgJ3RuJywgJzQ3JywgJ3AnKSxcbigndGV4YXMnLCAndHgnLCAnNDgnLCAncScpLFxuKCd1dGFoJywgJ3V0JywgJzQ5JywgJ3InKSxcbigndmVybW9udCcsICd2dCcsICc1MCcsICd0JyksXG4oJ3ZpcmdpbmlhJywgJ3ZhJywgJzUxJywgJ3MnKSxcbignd2FzaGluZ3RvbicsICd3YScsICc1MycsICd1JyksXG4oJ3dlc3QtdmlyZ2luaWEnLCAnd3YnLCAnNTQnLCAndycpLFxuKCd3aXNjb25zaW4nLCAnd2knLCAnNTUnLCAndicpLFxuKCd3eW9taW5nJywgJ3d5JywgJzU2JywgJ3gnKSxcbignZGlzdHJpY3Qtb2YtY29sdW1iaWEnLCAnZGMnLCAnMTEwMDEnLCAneScpLFxuKCdwdWVydG8tcmljbycsICdwcicsICc3MicsICczJyksXG4oJ2d1YW0nLCAnZ3UnLCAnNjYnLCAnNCcpLFxuKCd1bml0ZWQtc3RhdGVzJywgJ3VzYScsICc3NicsICd6Jyk7XG5cbkBlYWNoICRpIGluICRzdGF0ZS1mYWNlIHtcbiAgICAuc2YtI3tudGgoJGksIDIpfSB7XG4gICAgICAgIC8vQGV4dGVuZCAlc3RhdGUtZmFjZTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogbnRoKCRpLCA0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIiRzaXplczogeHhzIC41LCB4cyAuNzUsIHMgMSwgbSAxLjI1LCBsIDEuNSwgeGwgMS43NSwgeHhsIDI7XG4kcG9zdGlvbnM6IHQgdG9wLCByIHJpZ2h0LCBiIGJvdHRvbSwgbCBsZWZ0O1xuJG11bHRpcGxpZXI6IDE7XG4kYmFzZS12YWx1ZTogMXJlbTtcblxuQGVhY2ggJHNpemUgaW4gJHNpemVzIHtcbiAgICAka2V5OiBudGgoJHNpemUsIDEpO1xuICAgICR2YWx1ZTogbnRoKCRzaXplLCAyKTtcblxuICAgIC5tLSN7JGtleX0ge1xuICAgICAgICBtYXJnaW46ICR2YWx1ZSAqICRtdWx0aXBsaWVyICogJGJhc2UtdmFsdWU7XG4gICAgfVxuXG4gICAgLnAtI3ska2V5fSB7XG4gICAgICAgIHBhZGRpbmc6ICR2YWx1ZSAqICRtdWx0aXBsaWVyICogJGJhc2UtdmFsdWU7XG4gICAgfVxuICAgIEBlYWNoICRwb3N0aW9uIGluICRwb3N0aW9ucyB7XG4gICAgICAgICRrZXkyOiBudGgoJHBvc3Rpb24sIDEpO1xuICAgICAgICAkdmFsdWUyOiBudGgoJHBvc3Rpb24sIDIpO1xuXG4gICAgICAgIC5tLSN7JGtleTJ9LSN7JGtleX0ge1xuICAgICAgICAgICAgbWFyZ2luLSN7JHZhbHVlMn06ICR2YWx1ZSAqICRtdWx0aXBsaWVyICogJGJhc2UtdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAucC0jeyRrZXkyfS0jeyRrZXl9IHtcbiAgICAgICAgICAgIHBhZGRpbmctI3skdmFsdWUyfTogJHZhbHVlICogJG11bHRpcGxpZXIgKiAkYmFzZS12YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGVhY2ggJHBvc3Rpb24gaW4gJHBvc3Rpb25zIHtcbiAgICAka2V5MjogbnRoKCRwb3N0aW9uLCAxKTtcbiAgICAkdmFsdWUyOiBudGgoJHBvc3Rpb24sIDIpO1xuXG4gICAgLm0tI3ska2V5Mn0tbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZTJ9OiAwO1xuICAgIH1cblxuICAgIC5wLSN7JGtleTJ9LW4ge1xuICAgICAgICBwYWRkaW5nLSN7JHZhbHVlMn06IDA7XG4gICAgfVxufVxuXG4ubS1uIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5wLW4ge1xuICAgIHBhZGRpbmc6IDA7XG59XG4iLCJtYWluIHtcbiAgICBwYWRkaW5nOiA0cmVtIDAgMnJlbTtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA1MDBweCkge1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIDA7XG4gICAgfVxuXG4gICAgLnBhZ2UtZmVhdHVyZS1pbmRleCAmIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuXG4ucGFnZS1hcnRpY2xlIHtcbiAgICBtYWluIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuXG4uc2VjdGlvbi1oZWFkaW5nIHtcbiAgICBwYWRkaW5nOiAuNXJlbSAwIDEuNXJlbTtcblxuICAgIC5zZWN0aW9uLWhlYWRpbmctdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1saWdodDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgY29sb3I6ICRvZmYtYmxhY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB9XG59XG5cblxuLnBhZ2Utc2VjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICYubm8tcGFkZGluZy1ib3R0b20ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLm5vLXBhZGRpbmctdG9wIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgLnBhZ2UtZmVhdHVyZS1pbmRleCAmIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDMuNXJlbTtcbiAgICB9XG5cbiAgICAmLnBhZ2Utc2VjdGlvbi1sYXJnZSB7XG4gICAgICAgIHBhZGRpbmc6IDNyZW0gMDtcbiAgICB9XG59XG5cbi5ncmF5LXBhZ2Utc2VjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2Y2ZjdmOTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCAzcHggLTJweCByZ2JhKCM5OTksIC41KSwgaW5zZXQgMCAtMnB4IDNweCAtMnB4IHJnYmEoIzk5OSwgLjUpO1xuICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuXG4gICAgLnBhZ2UtZmVhdHVyZS1pbmRleCAmIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDMuNXJlbTtcbiAgICB9XG59XG5cbi5wYWdlLXNlY3Rpb24tY29sb3Ige1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yLTUwMDtcbn1cblxuLnBhZ2Utc2VjdGlvbi1kYXJrIHtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JheS1jb2xvci03MDA7XG59XG5cbi5jYWxsLWRlbW8tY3RhIHtcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtcmVndWxhcjtcbiAgICBib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkICRwcmltYXJ5LWNvbG9yLTcwMDtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICYuY2FsbC1kZW1vLWN0YS1uby1ib3JkZXIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtYm9sZDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtYm9sZDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR3aGl0ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAuNzVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5ob21lLWZpcnN0LXNldGlvbiB7XG4gICAgLy9wYWRkaW5nLXRvcDogNC41cmVtO1xufVxuXG4uZmVhdHVyZS1zZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy9hc3NldHMvaW1hZ2VzL3BhcmFsbGF4LmpwZycpO1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgICAgLy8gbmVlZGVkIGJlY2FzdWUgYGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7YCBkb2Vzbid0IHdvcmsgb24gaW9zIHByb3Blcmx5XG4gICAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsO1xuICAgIH1cblxuICAgIC5zZWN0aW9uLWhlYWRpbmcge1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRncmF5LWNvbG9yLTIwMCwgLjk1KTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgIC8vICY6OmFmdGVyIHtcbiAgICAvLyAgICAgYmFja2dyb3VuZDogdXJsKCcvYXNzZXRzL2ltYWdlcy9wYXJhbGxheC5qcGcnKTtcbiAgICAvLyAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgICAvLyAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAvLyAgICAgY29udGVudDogJyc7XG4gICAgLy8gICAgIGhlaWdodDogMTAwJTtcbiAgICAvLyAgICAgbGVmdDogMDtcbiAgICAvLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vICAgICB0b3A6IDA7XG4gICAgLy8gICAgIHdpZHRoOiAxMDAlO1xuICAgIC8vICAgICB6LWluZGV4OiAtMTtcbiAgICAvLyB9XG5cbiAgICAuZ3JpZC1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgIH1cbn1cblxuXG4uZmVhdHVyZS1waG9uZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHotaW5kZXg6IDEwO1xufVxuXG4ucGhvbmUtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTtcblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5zY3JlZW4tb3ZlcmxheSB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5ob21lLXJlY29tbWVuZGVkLXBob25lLW51bWJlci1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC00cmVtO1xuICAgIHotaW5kZXg6IDEwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICB0b3A6IC0zcmVtO1xuICAgIH1cbn1cblxuLnJlY29tbWVuZC1udW1iZXIge1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAvLyBib3R0b206IC00cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAxcHggcmdiYSgjOTk5LCAuMjUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXG4gICAgJi5yZWNvbW1lbmQtbnVtYmVycy1saXN0IHtcbiAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVjb21tZW5kLW51bWJlci1sb2NhbGl0eSB7XG4gICAgICAgIGNvbG9yOiAkb2ZmLWJsYWNrO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1saWdodDtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1mb250LWJvbGQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVmcmVzaC1idXR0b24ge1xuICAgICAgICBjb2xvcjogJG9mZi1ibGFjaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICB9XG5cbiAgICAuY3RhLWJ1dHRvbnMge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uLFxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgICBtYXJnaW46IDFyZW0gLjVyZW0gMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gLjc1cmVtO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAuMTI1cmVtIDAgMCAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHBob25lLXNoYWtlIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cblxuICAgIDI1JSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDFkZWcpO1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cblxuICAgIDc1JSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xZGVnKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNob3ctaW1hZ2Uge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICA5OSUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuLnBob25lLXNoYWtlIC5waG9uZS1jb250YWluZXIge1xuICAgIGFuaW1hdGlvbjogcGhvbmUtc2hha2UgLjE3NXMgLjc1cyAxNSBlYXNlLWluLW91dDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuXG4ucGhvbmUtc2hha2UgLnBob25lLWNvbnRhaW5lciAuc2NyZWVuLW92ZXJsYXkge1xuICAgIGFuaW1hdGlvbjogc2hvdy1pbWFnZSAuNzVzIGxpbmVhcjtcbn1cblxuLm1lbnUtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIC4xMjUpO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDtcblxuICAgICYuc2hvdy1vdmVybGF5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnN0YXRlLXBhZ2Utc2VjdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLnN0YXRlLWljb24ge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdG9wOiAtMnJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogJGdyYXktY29sb3ItMjAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zdGFyLXJhdGluZyB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3ItNzAwO1xuICAgIC8vIGJvcmRlcjogMnB4IHNvbGlkICRzZWNvbmRhcnktY29sb3ItNTAwO1xuICAgIC8vIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAxcHggcmdiYSgjOTk5LCAuMjUpO1xuXG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICBwYWRkaW5nOiAuNXJlbSAuMjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgcCB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1ib2xkO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3ItMTAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAuOTM3NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIG1hcmdpbjogMCAwIC4yNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC41cmVtIDAgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGksXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICNmZmM3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICB9XG59XG5cbi5pbmR1c3RyeS11c2UtY2FzZXMge1xuICAgIGgzIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGdyYXktY29sb3ItMTAwO1xuICAgICAgICAvLyBib3JkZXItYm90dG9tOiAzcHggc29saWQgJHByaW1hcnktY29sb3ItNTAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBwYWRkaW5nOiAuNXJlbTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCA4cHggJGdyYXktY29sb3ItNTAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnVzZS1jYXNlLWltYWdlIHtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggZGFzaGVkICRncmF5LWNvbG9yLTIwMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ3JpZC14IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkZ3JheS1jb2xvci01MDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgLnVzZS1jYXNlLWltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkYXNoZWQgJGdyYXktY29sb3ItMjAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5iZW5lZml0cy1saXN0LWl0ZW0ge1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuXG4gICAgaDMge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLmhlYWRpbmctbnVtYmVyLWxpc3Qge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCA0cHggMXB4IHJnYmEoIzU1NSwgLjUpO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBsZWZ0OiAtNjBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRvcDogLTEwcHg7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBsZWZ0OiAtNzBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTAge1xuICAgICAgICAmOm50aC1vZi10eXBlKCN7JGl9KSB7XG4gICAgICAgICAgICAuaGVhZGluZy1udW1iZXItbGlzdCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRwcmltYXJ5LWNvbG9yLTMwMCwgMyUgKiAkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5lcXVhbC1oZWlnaHQtY2VsbHMge1xuICAgIC5jZWxsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG59XG5cbi5wYWdlLWhlYWRlci1hcnRpY2xlcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktY29sb3ItMjAwO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgaGVpZ2h0OiA0MDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBoZWlnaHQ6IDUwMHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgaGVpZ2h0OiA2MDBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi1oZWlnaHQ6IDEyMjVweCkge1xuICAgICAgICBoZWlnaHQ6IDY1MHB4O1xuICAgIH1cblxuICAgICYucGFnZS1oZWFkZXItYXJ0aWNsZS1uby1pbWFnZSB7XG4gICAgICAgIGhlaWdodDogNDAwcHg7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDE1MDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnBhZ2UtaGVhZGVyLXRpdGxlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIC43NSk7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JheS1jb2xvci0yMDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2UtaGVhZGVyLWJyZWFkY3J1bWJzIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3ItNzAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nOiAuMjVyZW0gMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDkzLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgYSxcbiAgICAgICAgbGksXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLnJlc3BvbnNpdmUtdmlkZW8ge1xuICAgIC8vIGhlaWdodDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYudmlkZW8tc2hvdy1pbWFnZS1maXJzdCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgaWZyYW1lIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4uZmFuY3ktdmlkZW8ge1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICRncmF5LWNvbG9yLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiAgJGdsb2JhbC1yYWRpdXM7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4ICRncmF5LWNvbG9yLTcwMDtcbn1cblxuXG4uY29udGVudC1jZWxsIHtcbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgJi5jb250ZW50LWNlbGwtaW50cm8ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLmxpbmstZ3JvdXAtdG9nZ2xlIHtcbiAgICAuY2FyZC5hcnJvdy1jYXJkIHtcbiAgICAgICAgLm5vLXRvdWNoZXZlbnRzICYge1xuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIC5jYXJkLWFycm93IHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC44NzVyZW07XG4gICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJkLWFycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgICAgICYucm90YXRlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuXG4ubGluay1ncm91cC10b2dnbGUtbGlua3Mge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS1jb2xvci0xMDA7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmF5LWNvbG9yLTMwMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cblxuICAgICAgICAuY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAuNXJlbSAuNzVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ncmlkLXgge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbHVtbi1jb3VudDogMjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAuY2VsbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjc1cmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgY29sdW1uLWNvdW50OiAzO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDExMDBweCkge1xuICAgICAgICAgICAgY29sdW1uLWNvdW50OiA0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5wcm9ibGVtLXNvbHV0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCAycHggcmdiYSgkb2ZmLWJsYWNrLCAuNSk7XG4gICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICRwcmltYXJ5LWNvbG9yLTUwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgcGFkZGluZzogMS41cmVtO1xuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgfVxuXG4gICAgOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cblxuLnJlbW92ZS13ZWJzaXRlLWJ1dHRvbiB7XG4gICAgY29sb3I6ICNhMjAyMDI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAvLyB0b3A6IC0xcmVtO1xufVxuXG5cbi5oZWlnaHQtc3BhY2VyIHtcbiAgICBoZWlnaHQ6IDEwMHB4O1xufVxuIiwiQG1peGluIGhlYWRpbmctZm9udC1saWdodCB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQsICRoZWFkaW5nLWZhbGxiYWNrO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogMzAwO1xufVxuXG5AbWl4aW4gaGVhZGluZy1mb250LXJlZ3VsYXIge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LCAkaGVhZGluZy1mYWxsYmFjaztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQG1peGluIGhlYWRpbmctZm9udC1yZWd1bGFyLWl0YWxpYyB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQsICRoZWFkaW5nLWZhbGxiYWNrO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNDAwO1xufVxuXG5AbWl4aW4gaGVhZGluZy1mb250LWJvbGQge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LCAkaGVhZGluZy1mYWxsYmFjaztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQG1peGluIGhlYWRpbmctZm9udC1ib2xkLWl0YWxpYyB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQsICRoZWFkaW5nLWZhbGxiYWNrO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuXG5AbWl4aW4gYm9keS1mb250LWxpZ2h0IHtcbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udCwgJGJvZHktZmFsbGJhY2s7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbkBtaXhpbiBib2R5LWZvbnQtcmVndWxhciB7XG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQsICRib2R5LWZhbGxiYWNrO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNDAwO1xufVxuXG5AbWl4aW4gYm9keS1mb250LWl0YWxpYyB7XG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQsICRib2R5LWZhbGxiYWNrO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNDAwO1xufVxuXG5AbWl4aW4gYm9keS1mb250LWJvbGQge1xuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LCAkYm9keS1mYWxsYmFjaztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQG1peGluIGxpbmVhci1ncmFkaWVudCgkZnJvbS1jb2xvciwgJHRvLWNvbG9yKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICRmcm9tLWNvbG9yLCAkdG8tY29sb3IpO1xufVxuXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRmcm9tLWNvbG9yLCAkdG8tY29sb3IpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBjZW50ZXIsICRmcm9tLWNvbG9yLCAkdG8tY29sb3IpO1xufVxuXG5AbWl4aW4gc2luZ2xlLXRyYW5zaXRpb24oJHByb3BlcnR5OiBhbGwsICRzcGVlZDogLjEyNXMsICRlYXNlOiBsaW5lYXIpIHtcbiAgICB0cmFuc2l0aW9uOiAkcHJvcGVydHkgJHNwZWVkICRlYXNlO1xufVxuXG5AbWl4aW4gZG91YmxlLXRyYW5zaXRpb24oJHByb3BlcnR5OiBiYWNrZ3JvdW5kLCAkcHJvcGVydHkyOiBjb2xvciwgJHNwZWVkOiAuMTI1cywgJGVhc2U6IGxpbmVhcikge1xuICAgIHRyYW5zaXRpb246ICRwcm9wZXJ0eSAkc3BlZWQgJGVhc2UsICRwcm9wZXJ0eTIgJHNwZWVkICRlYXNlO1xufVxuXG4vLyBodHRwczovL2NvZGVwZW4uaW8vbWF4YWtvaGxlci9wZW4vbUF4SHo/ZWRpdG9ycz0xMTAwXG5AbWl4aW4gbG9uZy1zaGFkb3coJHR5cGUsICRjb2xvciwgJGxlbmd0aCwgJGZhZGVvdXQ6IHRydWUsICRza2V3OiBmYWxzZSwgJGRpcmVjdGlvbjogcmlnaHQpIHtcbiAgICAkc2hhZG93OiAnJztcbiAgICBAaWYgJHNrZXcgPT0gZmFsc2Ugb3IgJHR5cGUgPT0gdGV4dCB7XG4gICAgICAgIEBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAwIHRvICRsZW5ndGggLSAxIHtcbiAgICAgICAgICAgICAgICAkc2hhZG93OiAkc2hhZG93ICsgJ2Ryb3Atc2hhZG93KCcgKyAkaSArICdweCAnICsgJGkgKyAncHggMCAnICsgJGNvbG9yICsgJykgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAwIHRvICRsZW5ndGggLSAxIHtcbiAgICAgICAgICAgICAgICAkc2hhZG93OiAkc2hhZG93ICsgJ2Ryb3Atc2hhZG93KCcgKyAkaSAqIC0xICsgJ3B4ICcgKyAkaSArICdweCAwICcgKyAkY29sb3IgKyAnKSAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBpZiAkZmFkZW91dCA9PSB0cnVlIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdG8gJGxlbmd0aCAtIDEge1xuICAgICAgICAgICAgQGlmICR0eXBlID09IHRleHQgb3IgJHNrZXcgPT0gZmFsc2Uge1xuICAgICAgICAgICAgICAgIEBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgICAgICAgICAgICAgJHNoYWRvdzogJHNoYWRvdyArICRpICsgJ3B4ICcgKyAkaSArICdweCAwICcgKyByZ2JhKCRjb2xvciwgMSAtICRpIC8gJGxlbmd0aCkgKyAnICc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgICAgICAgICAgICAgICAkc2hhZG93OiAkc2hhZG93ICsgJGkgKiAtMSArICdweCAnICsgJGkgKyAncHggMCAnICsgcmdiYSgkY29sb3IsIDEgLSAkaSAvICRsZW5ndGgpICsgJyAnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0gYm94KSBhbmQgJHNrZXcgPT0gdHJ1ZSB7XG4gICAgICAgICAgICAgICAgQGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgICAgICAgICAgICAgICAkc2hhZG93OiAkc2hhZG93ICsgJGkgKyAncHggJyArICRpICsgJ3B4IDAgJyArICRpICogLjIgKyAncHggJyArIHJnYmEoJGNvbG9yLCAxIC0gJGkgLyAkbGVuZ3RoKSArICcgJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICAgICAgICAgICAgICAgICRzaGFkb3c6ICRzaGFkb3cgKyAkaSAqIC0xICsgJ3B4ICcgKyAkaSArICdweCAwICcgKyAkaSAqIC4yICsgJ3B4ICcgKyByZ2JhKCRjb2xvciwgMSAtICRpIC8gJGxlbmd0aCkgKyAnICc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICRzaGFkb3c6ICRzaGFkb3cgKyAkbGVuZ3RoICsgJ3B4ICcgKyAkbGVuZ3RoICsgJ3B4IDAgJyArIHJnYmEoJGNvbG9yLCAwKTtcbiAgICB9XG4gICAgQGlmICRmYWRlb3V0ID09IGZhbHNlIHtcbiAgICAgICAgQGlmICRza2V3ID09IHRydWUgYW5kICgkdHlwZSA9PSBib3gpIHtcbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAwIHRvICRsZW5ndGggLSAxIHtcbiAgICAgICAgICAgICAgICAkc2hhZG93OiAkc2hhZG93ICsgJ2Ryb3Atc2hhZG93KCcgKyAkaSArICdweCAnICsgJGkgKyAncHggMCAnICsgJGkgKiAuMSArICdweCAnICsgJGNvbG9yICsgJykgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkc2hhZG93OiAkc2hhZG93ICsgJ2Ryb3Atc2hhZG93KCcgKyAkbGVuZ3RoICsgJ3B4ICcgKyAkbGVuZ3RoICsgJ3B4IDAgJyArIHJnYmEoMCwwLDAsMCkgKyAnKSAnO1xuICAgIH1cbiAgICAkc2hhZG93OiB1bnF1b3RlKCRzaGFkb3cpO1xuXG4gICAgQGlmICR0eXBlID09ICdib3gnIHtcbiAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICB9XG5cbiAgICBAaWYgJHR5cGUgPT0gJ3RleHQnIHtcbiAgICAgICAgZmlsdGVyOiAkc2hhZG93O1xuICAgIH1cbn1cbiIsIiRzb2NpYWxzOlxuYmVoYW5jZSAjMDUzZWZmLFxuY29kZXBlbiAjMjEyMTIxLFxuZGV2aWFudGFydCAjNGE1ZDRlLFxuZGlnZyAjMDA1YmUyLFxuZHJpYmJibGUgI2VhNGM4OSxcbmRyb3Bib3ggIzAwN2VlNSxcbmZhY2Vib29rICMzYjU5OTgsXG5mbGlja3IgI2Y0MDA4MyxcbmZvdXJzcXVhcmUgI2ZjNDU3NSxcbmdpdGh1YiAjMzMzLFxuZ29vZ2xlLXBsdXMgI2RmNGEzMixcbmluc3RhZ3JhbSAjYzMyYWEzLFxubGlua2VkaW4gIzAwN2JiNixcbm1lZGl1bSAjMDBhYjZjLFxucGludGVyZXN0ICNjYjIwMjcsXG5nZXQtcG9ja2V0ICNlZTQwNTYsXG5yZWRkaXQtYWxpZW4gI2ZmNTcwMCxcbnNreXBlICMwMGFmZjAsXG5zbGlkZXNoYXJlICNmNzk0MWUsXG5zbmFwY2hhdC1naG9zdCAjZmZmYzAwLFxuc3R1bWJsZXVwb24gI2ViNDkyNCxcbnNwb3RpZnkgIzFlZDc2MCxcbnNvdW5kY2xvdWQgI2Y1MCxcbnR1bWJsciAjMzU0NjVkLFxudHdpdHRlciAjMDBiNmYxLFxudHdpdGNoICM2NDQxYTQsXG52aW5lICMwMGI0ODksXG52aW1lbyAjYWFkNDUwLFxudmsgIzRjNzVhMyxcbnllbHAgI2QzMjMyMyxcbnlvdXR1YmUgI2IzMTIxNyxcbndvcmRwcmVzcyAjMjE3NTliLFxuZW1haWwgI2ZmYjMzMDtcblxuLnNvY2lhbC1tZWRpYS1saW5rIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGhlaWdodDogMzJweDtcbiAgICBtYXJnaW46IDAgMXJlbSAxcmVtIDA7XG4gICAgcGFkZGluZzogLjVyZW0gMCAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDMycHg7XG5cbiAgICBpLFxuICAgIHN2ZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAxcHggIzg4ODtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICY6aG92ZXIge1xuICAgIC8vICAgICAmOjphZnRlcixcbiAgICAvLyAgICAgJjo6YmVmb3JlIHtcbiAgICAvLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC8vICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vICY6OmJlZm9yZSB7XG4gICAgLy8gICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uO1xuICAgIC8vXG4gICAgLy8gICAgIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIC8vICAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgLy8gICAgIGJvcmRlci10b3A6IDEwcHggc29saWQgIzQ0NDtcbiAgICAvLyAgICAgY29udGVudDogJyc7XG4gICAgLy8gICAgIGhlaWdodDogMDtcbiAgICAvLyAgICAgbGVmdDogOHB4O1xuICAgIC8vICAgICBvcGFjaXR5OiAwO1xuICAgIC8vICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAvLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vICAgICB0b3A6IC0xNXB4O1xuICAgIC8vICAgICB3aWR0aDogMDtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyAmOjphZnRlciB7XG4gICAgLy8gICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uO1xuICAgIC8vXG4gICAgLy8gICAgIGJhY2tncm91bmQ6ICM0NDQ7XG4gICAgLy8gICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAvLyAgICAgY29sb3I6ICNmZmY7XG4gICAgLy8gICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aXRsZSk7XG4gICAgLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvLyAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgLy8gICAgIGxlZnQ6IC0yMnB4O1xuICAgIC8vICAgICBvcGFjaXR5OiAwO1xuICAgIC8vICAgICBwYWRkaW5nOiAuMjVyZW07XG4gICAgLy8gICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIC8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvLyAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC8vICAgICB0b3A6IC0zNXB4O1xuICAgIC8vICAgICB3aWR0aDogODBweDtcbiAgICAvLyB9XG59XG5cbkBlYWNoICRzb2NpYWwgaW4gJHNvY2lhbHMge1xuICAgICRjbGFzczogbnRoKCRzb2NpYWwsIDEpO1xuICAgICRoZXg6IG50aCgkc29jaWFsLCAyKTtcblxuICAgIC5zb2NpYWwtbWVkaWEtbGluay4jeyRjbGFzc30ge1xuICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbjtcblxuICAgICAgICBiYWNrZ3JvdW5kOiAkaGV4O1xuXG4gICAgICAgICY6YWN0aXZlLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkaGV4LCAxMCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5zb2NpYWwtc2hhcmUtbGlua3Mge1xuICAgIG1hcmdpbi10b3A6IDRyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvci0zMDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gNTBweCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMS41cmVtO1xuICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgLnNvY2lhbC1zaGFyZS1oZWFkaW5ncyB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1ib2xkO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuXG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzc1cHgpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIC43NXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb247XG5cbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS1jb2xvci01MDA7XG4gICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcmVtO1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAzLjVyZW07XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAzLjVyZW07XG5cbiAgICAgICAgICAgIEBlYWNoICRzb2NpYWwgaW4gJHNvY2lhbHMge1xuICAgICAgICAgICAgICAgICRjbGFzczogbnRoKCRzb2NpYWwsIDEpO1xuICAgICAgICAgICAgICAgICRoZXg6IG50aCgkc29jaWFsLCAyKTtcblxuICAgICAgICAgICAgICAgICYuc29jaWFsLW1lZGlhLWxpbmstI3skY2xhc3N9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGhleDtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICRoZXg7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG5cbiAgICAgICAgICAgICAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRoZXgsIDEwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5sb2FkaW5nLXNwaW5uZXIge1xuICAgIGFuaW1hdGlvbjogc3BpbiAyLjVzIGxpbmVhciBpbmZpbml0ZTtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIG1hcmdpbjogMXJlbSBhdXRvO1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgIC5zaGFwZSB7XG4gICAgICAgIGFuaW1hdGlvbjogc3Bpbm5lciAyLjI1cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIGZpbGw6IHRyYW5zcGFyZW50O1xuICAgICAgICBzdHJva2U6ICRzZWNvbmRhcnktY29sb3ItNTAwO1xuICAgICAgICBzdHJva2UtZGFzaGFycmF5OiAxMDAgMjYwO1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAzcHg7XG4gICAgfVxuXG4gICAgKyBoNCB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1saWdodDtcbiAgICB9XG59XG5cblxuXG5Aa2V5ZnJhbWVzIHNwaW5uZXIge1xuICAgIDAlIHtcbiAgICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMCAyNjA7XG4gICAgfVxuXG4gICAgNTAlIHtcbiAgICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMjYwIDI2MDtcbiAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDAgMjYwO1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogLTI1MDtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgc3BpbiB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNzIwZGVnKTtcbiAgICB9XG59XG4iLCIuZnVsbC13aWR0aC1pbWFnZXMge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnJvdW5kZWQtaW1hZ2Uge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xufVxuXG4uZmFuY3ktaW1hZ2UtYm9yZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JheS1jb2xvci0yMDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyYXktY29sb3ItMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICAkZ2xvYmFsLXJhZGl1cyAqIDEuNTtcbiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggJGdyYXktY29sb3ItNzAwO1xuXG4gICAgaW1nIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogICRnbG9iYWwtcmFkaXVzO1xuICAgIH1cbn1cbiIsIi50ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi50ZXh0LXVwcGVyY2FzZSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMzc1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLm5vdC1wYWlkLWxpbmsge1xuICAgIGNvbG9yOiAkb2ZmLWJsYWNrO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuXG4udGV4dC13aGl0ZSB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbn1cblxuLnRleHQtb2ZmLWJsYWNrIHtcbiAgICBjb2xvcjogJG9mZi1ibGFjaztcbn1cblxuLnRleHQtc3VjY2VzcyB7XG4gICAgY29sb3I6ICRzdWNjZXNzLWNvbG9yO1xufVxuXG4udGV4dC1hbGVydCB7XG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbn1cblxuLnRleHQtaXRhbGljIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cblxuLnRleHQtbm8td3JhcCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsImgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gICAgY29sb3I6ICRmb250LWNvbG9yO1xuICAgIG1hcmdpbjogMS41cmVtIDAgLjVyZW07XG5cbiAgICAuY29udGVudC1jZWxsICYge1xuICAgICAgICBjb2xvcjogJGdyYXktY29sb3ItODAwO1xuICAgIH1cbn1cblxuaDEge1xuICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1ib2xkO1xuXG4gICAgZm9udC1zaXplOiAxLjkxMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTI1O1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBmb250LXNpemU6IDIuNXJlbSAqICRmb250LXNpemUtbXVsdGlwbGllcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTI1O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi43NXJlbSAqICRmb250LXNpemUtbXVsdGlwbGllcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTI1O1xuICAgIH1cbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICBmb250LXNpemU6IDM2cHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cbn1cblxuaDIge1xuICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1saWdodDtcblxuICAgIGZvbnQtc2l6ZTogMS42MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTI1O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtICogJGZvbnQtc2l6ZS1tdWx0aXBsaWVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBmb250LXNpemU6IDIuMjVyZW0gKiAkZm9udC1zaXplLW11bHRpcGxpZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICBmb250LXNpemU6IDI0cHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cbn1cblxuaDMge1xuICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1ib2xkO1xuXG4gICAgZm9udC1zaXplOiAxLjM3NXJlbSAqICRmb250LXNpemUtbXVsdGlwbGllcjtcbiAgICBsaW5lLWhlaWdodDogMS4xMjU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbSAqICRmb250LXNpemUtbXVsdGlwbGllcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW0gKiAkZm9udC1zaXplLW11bHRpcGxpZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICBmb250LXNpemU6IDE4cHQgKiAkZm9udC1zaXplLW11bHRpcGxpZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cbn1cblxuaDQge1xuICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1ib2xkO1xuXG4gICAgZm9udC1zaXplOiAxLjEyNXJlbSAqICRmb250LXNpemUtbXVsdGlwbGllcjtcbiAgICBsaW5lLWhlaWdodDogMS4xMjU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtICogJGZvbnQtc2l6ZS1tdWx0aXBsaWVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtICogJGZvbnQtc2l6ZS1tdWx0aXBsaWVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICB9XG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB0O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICB9XG59XG5cbmg1IHtcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtYm9sZDtcblxuICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtICogJGZvbnQtc2l6ZS1tdWx0aXBsaWVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjEyNTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW0gKiAkZm9udC1zaXplLW11bHRpcGxpZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW0gKiAkZm9udC1zaXplLW11bHRpcGxpZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICBmb250LXNpemU6IDEzcHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cbn1cblxuaDYge1xuICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1ib2xkO1xuXG4gICAgZm9udC1zaXplOiAxcmVtICogJGZvbnQtc2l6ZS1tdWx0aXBsaWVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjEyNTtcblxuICAgIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgLy8gICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xuICAgIC8vICAgICBsaW5lLWhlaWdodDogMS4yNWVtO1xuICAgIC8vIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtICogJGZvbnQtc2l6ZS1tdWx0aXBsaWVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICB9XG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB0O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG59XG5cbi5oZWFkaW5nLWJvcmRlci1zZXBhcmF0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvci0zMDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgbGVmdDogY2FsYyg1MCUgLSA1MHB4KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgJi5oZWFkaW5nLWJvcmRlci1zZXBhcmF0b3ItbGVmdCB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJcbm9sLFxudWwge1xuICAgIGNvdW50ZXItcmVzZXQ6IGxpc3QtaXRlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgbGkge1xuICAgICAgICAvLyBAaW5jbHVkZSBib2R5LWZvbnQtcmVndWxhcjtcblxuICAgICAgICBjb2xvcjogJGZvbnQtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC4yNXJlbTtcblxuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luOiAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAvLyBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzEyNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41NjI1O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJwdDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgICB9XG4gICAgfVxufVxuXG51bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuXG4gICAgdWwge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxub2wge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcblxuICAgICYubGlzdC10eXBlLWxvd2VyLWFscGhhIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1hbHBoYTtcbiAgICB9XG59XG5cbi5saXN0LXN0eWxlLXN1YnNldC1kZWNpbWFscyB7XG4gICAgY291bnRlci1yZXNldDogbGlzdC1zdHlsZS1zdWJzZXQtZGVjaW1hbDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgbGkge1xuICAgICAgICBjb3VudGVyLWluY3JlbWVudDogbGlzdC1zdHlsZS1zdWJzZXQtZGVjaW1hbDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6ICRvZmYtYmxhY2s7XG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKGxpc3Qtc3R5bGUtc3Vic2V0LWRlY2ltYWwpICcuJztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogY2FsYygxMDAlIC0gMS43NXJlbSk7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5saXN0LXR5cGUtbG93ZXItYWxwaGEge1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIobGlzdC1zdHlsZS1zdWJzZXQtZGVjaW1hbC1jaGlsZCwgbG93ZXItYWxwaGEpICcuJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgY291bnRlci1yZXNldDogbGlzdC1zdHlsZS1zdWJzZXQtZGVjaW1hbC1jaGlsZDtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBsaXN0LXN0eWxlLXN1YnNldC1kZWNpbWFsLWNoaWxkO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogY291bnRlcihsaXN0LXN0eWxlLXN1YnNldC1kZWNpbWFsKSAnLicgY291bnRlcihsaXN0LXN0eWxlLXN1YnNldC1kZWNpbWFsLWNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGNhbGMoMTAwJSAtIDEuNXJlbSk7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5qdXJpc2RpY3Rpb24tbGluay1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG5cbiAgICB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICY6bnRoLW9mLXR5cGUoMikge1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1vZi10eXBlKDMpIHtcbiAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtb2YtdHlwZSg0KSB7XG4gICAgICAgICAgICBvcmRlcjogNDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIC8vICAgICBmbGV4OiAwIDAgMzMlO1xuICAgICAgICAvLyAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoNCkge1xuICAgICAgICAgICAgICAgIG9yZGVyOiA0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIC8vIGZsb2F0OiBsZWZ0O1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBhICB7XG4gICAgICAgIC8vIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgIC8vICY6aG92ZXIge1xuICAgICAgICAvLyAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIC8vIH1cbiAgICB9XG59XG5cblxuLmxvY2FsLWFyZWEtY29kZXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIC8vIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGxpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGdyYXktY29sb3ItMjAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAuNXJlbTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3ItNTAwO1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLjI1cmVtOztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoZWNrbWFyay1saXN0IHtcbiAgICBsaSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3ItNTAwO1xuICAgICAgICAgICAgLy8gY29udGVudDogJ1xcZjAwYyc7XG4gICAgICAgICAgICAvLyBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gICAgICAgICAgICAvLyBmb250LXdlaWdodDogOTAwO1xuICAgICAgICAgICAgbGVmdDogLTEuNzVyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC4yNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoZWNrbWFyay1ob3Jpem9udGFsLWxpc3Qge1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggMXB4IHJnYmEoIzk5OSwgLjI1KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAuNzVyZW07XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMzc1ZW07XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogLjc1cmVtIC43NXJlbSAuNzVyZW0gM3JlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZmxleDogMSAxIDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3ItNTAwO1xuICAgICAgICAgICAgLy8gY29udGVudDogJ1xcZjAwYyc7XG4gICAgICAgICAgICAvLyBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gICAgICAgICAgICAvLyBmb250LXdlaWdodDogOTAwO1xuICAgICAgICAgICAgbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgICAgIHNwZWFrOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiYm9keSB7XG4gICAgQGluY2x1ZGUgYm9keS1mb250LXJlZ3VsYXI7XG59XG5cbnAge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zNzVyZW07XG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTYyNTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICB9XG59XG5cbmEge1xuXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCByZ2JhKCRncmF5LWNvbG9yLTUwMCwgLjUpO1xuICAgIGNvbG9yOiAjNDI5NGQyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKCRwcmltYXJ5LWNvbG9yLTgwMCwgLjUpO1xuICAgICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuXG4uZmFrZS1zdHlsZWQtbGluayB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCByZ2JhKCRncmF5LWNvbG9yLTUwMCwgLjUpO1xuICAgIGNvbG9yOiAjNDI5NGQyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKCRwcmltYXJ5LWNvbG9yLTgwMCwgLjUpO1xuICAgICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMCAxcmVtIDJyZW07XG5cbiAgICBjaXRlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLjc1cmVtO1xuICAgIH1cbn1cbiIsIi5icmVhZGNydW1icyB7XG4gICAgLy8gZGlzcGxheTogbm9uZTtcbiAgICAvLyBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8vIHdpZHRoOiBjYWxjKDEwMCUgKyAuNjI1cmVtKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIG9sLFxuICAgIHVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1mb250LWJvbGQ7XG5cbiAgICAgICAgY29sb3I6ICRvZmYtYmxhY2s7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgJjpudGgtbGFzdC1vZi10eXBlKDEpLFxuICAgICAgICAgICAgJjpudGgtbGFzdC1vZi10eXBlKDIpLFxuICAgICAgICAgICAgJjpudGgtbGFzdC1vZi10eXBlKDMpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZi1ibGFjaztcbiAgICAgICAgICAgIC8vIGNvbnRlbnQ6ICdcXGYxMDUnO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgLy8gZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBQcm8nO1xuICAgICAgICAgICAgLy8gZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgIC8vIHBhZGRpbmc6IDAgLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgLjVyZW0gMCAuMzc1cmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAuMDYyNXJlbTtcblxuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1mb250LXJlZ3VsYXI7XG5cbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogJG9mZi1ibGFjaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIlYnV0dG9uLFxuYnV0dG9uLFxuLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgaGVhZGluZy1mb250LWJvbGQ7XG4gICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb247XG5cbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIC00cHggMCAwICRwcmltYXJ5LWNvbG9yLTgwMCxcbiAgICAgICAgICAgICAgICAwIDBweCAzcHggJGdyYXktY29sb3ItNTAwO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMzc1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTI1O1xuICAgIHBhZGRpbmc6IC44NzVyZW0gMXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCAkZ3JheS1jb2xvci03MDA7XG5cbiAgICAubm8tdG91Y2hldmVudHMgJiB7XG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yLTgwMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIC8vIHRvcDogMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAmLmZ1bGwtd2lkdGgtYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5mdWxsLXdpZHRoLWJ1dHRvbi1zbWFsbCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLnNlY29uZGFyeS1idXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgLy8gYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNlY29uZGFyeS1jb2xvci04MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTRweCAwIDAgJHNlY29uZGFyeS1jb2xvci04MDA7XG4gICAgICAgIC8vIGNvbG9yOiAkYmxhY2s7XG5cbiAgICAgICAgLm5vLXRvdWNoZXZlbnRzICYge1xuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvci04MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgLy8gYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNlY29uZGFyeS1jb2xvci04MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTRweCAwIDAgJHNlY29uZGFyeS1jb2xvci04MDA7XG5cbiAgICAgICAgLm5vLXRvdWNoZXZlbnRzICYge1xuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvci04MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYucm91bmRlZC1idXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICB9XG59XG5cblxuLmljb24tYnV0dG9uIHtcbiAgICBpLFxuICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMS43NXJlbTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgICAgICAgICAgbGVmdDogLS4yNXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLS4yNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4uanVyaXNkaWN0aW9uLXNpZ24tdXAtYnV0dG9uIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2s7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nOiAuNXJlbTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMTAwO1xuICAgIH1cbn1cbiIsIi5idXR0b24sXG5idXR0b24ge1xuICAgICYuYm9yZGVyLWJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICRwcmltYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG5cbiAgICAgICAgLm5vLXRvdWNoZXZlbnRzICYge1xuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3ItNTAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWNvbmRhcnktYnV0dG9uIHtcbiAgICAgICAgICAgIC8vIGJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1jb2xvci01MDA7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggJHNlY29uZGFyeS1jb2xvci01MDA7XG5cbiAgICAgICAgICAgIC5uby10b3VjaGV2ZW50cyAmIHtcbiAgICAgICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmJsYWNrLWJ1dHRvbiB7XG4gICAgICAgICAgICAvLyBib3JkZXItY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAkYmxhY2s7XG5cbiAgICAgICAgICAgIC5uby10b3VjaGV2ZW50cyAmIHtcbiAgICAgICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiaW5wdXQge1xuICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uO1xuICAgIEBpbmNsdWRlIGJvZHktZm9udC1yZWd1bGFyO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JheS1jb2xvci0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBwYWRkaW5nOiAuNXJlbTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG59XG5cbnRleHRhcmVhIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyYXktY29sb3ItMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBoZWlnaHQ6IDhyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIHBhZGRpbmc6IC41cmVtO1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmZyb2FsYS1lZGl0b3Ige1xuICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgIH1cbn1cblxubGFiZWwge1xuICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1ib2xkO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgcGFkZGluZy1ib3R0b206IC4xMjVyZW07XG5cbiAgICAmLnNob3ctaWYtbm8tcGxhY2Vob2xkZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIC5uby1wbGFjZWhvbGRlciAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtcmVndWxhcjtcbiAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgIH1cblxuICAgIC8vIHNwYW4ge1xuICAgIC8vICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtcmVndWxhcjtcbiAgICAvLyAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgLy8gfVxuXG4gICAgLm9wdGlvbmFsLXRleHQge1xuICAgICAgICBjb2xvcjogJGdyYXktY29sb3ItNjAwO1xuICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgfVxufVxuXG4uc3ViLWxhYmVsLXRleHQge1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbn1cblxuaW5wdXRbdHlwZT0ncmFkaW8nXSxcbmlucHV0W3R5cGU9J2NoZWNrYm94J10ge1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCAycHggJGdyYXktY29sb3ItODAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgd2lkdGg6IDFyZW07XG5cbiAgICAmOjotbXMtY2hlY2sge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICY6Y2hlY2tlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yLTUwMDtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JheS1jb2xvci04MDA7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxufVxuXG4uYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgQGV4dGVuZCAlY2xlYXJmaXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4uY2hlY2tib3gtcmFkaW8ge1xuICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1yZWd1bGFyO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgMXJlbSAuNzVyZW0gMDtcbiAgICBwYWRkaW5nOiAuMjVyZW0gMCAuMjVyZW0gMS43NXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cblxuICAgICYtbm8tbWFyZ2luIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9J2NoZWNrYm94J10ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICY6Y2hlY2tlZCB+IHtcbiAgICAgICAgICAgIC5jaGVja2VkLWljb24ge1xuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIC8vYW5pbWF0aW9uOiBwdWxzZSAuNXM7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIH4gLmNoZWNrZWQtaWNvbiB7XG4gICAgICAgICAgICBzdmcsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM4ODg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAtNHB4O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMTI1cyBlYXNlLWluO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjM2ZlYjNmO1xuICAgICAgICAgICAgICAgIC8vIGNvbnRlbnQ6ICdcXGYwMGMnO1xuICAgICAgICAgICAgICAgIC8vIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgUHJvJztcbiAgICAgICAgICAgICAgICAvLyBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgIHRvcDogMnB4O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM4ODg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMXB4ICM1NTU7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT0ncmFkaW8nXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgJjpjaGVja2VkIH4ge1xuICAgICAgICAgICAgLmNoZWNrZWQtaWNvbiB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgLy9hbmltYXRpb246IHB1bHNlIC41cztcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNXB4ICMzZmViM2Y7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAvLyBhbmltYXRpb246IHB1bHNlIC41cztcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2ZlYjNmO1xuICAgICAgICAgICAgICAgICAgICAvLyB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIH4gLmNoZWNrZWQtaWNvbiB7XG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM4ODg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMTI1cyBlYXNlLWluO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzNmZWIzZjtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiA4cHg7XG4gICAgICAgICAgICAgICAgdG9wOiAxM3B4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1cHg7XG4gICAgICAgICAgICAgICAgLy8gdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM4ODg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMXB4ICM1NTU7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMXB4O1xuICAgICAgICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIxcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjUpO1xuICAgIH1cblxuICAgIDQwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zNSk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxufVxuXG5cblxuc2VsZWN0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICAgIGhlaWdodDogMi4zNzVyZW07XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLmF1dG8td2lkdGgge1xuICAgICAgICBtaW4td2lkdGg6IDE1MHB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi5mb3JtLWhlbHBlci10ZXh0IHtcbiAgICBmb250LXNpemU6IC44NzVyZW07XG59XG5cbi5mYW5jeS1zZWxlY3Qge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGNvbG9yOiAkb2ZmLWJsYWNrO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgJi5mYW5jeS1zZWxlY3Qtbm8tbWFyZ2luIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYubWFyZ2luLXNtYWxsLW9ubHkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZmFuY3ktc2VsZWN0LWZ1bGwtd2lkdGgge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmLmZhbmN5LXNlbGVjdC10ZXh0LWNlbnRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgICBjb2xvcjogJG9mZi1ibGFjaztcbiAgICAgICAgLy8gY29udGVudDogJ1xcZjBkNyc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgLy8gZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBQcm8nO1xuICAgICAgICAvLyBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLjc1cmVtO1xuICAgICAgICB0b3A6IC42MjVyZW07XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgIH1cblxuICAgIHNlbGVjdCB7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmF5LWNvbG9yLTUwMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGNvbG9yOiAkb2ZmLWJsYWNrO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgICAgLy8gbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogLjM3NXJlbSAxLjVyZW0gLjM3NXJlbSAuNjI1cmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjo6LW1zLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJvZHktZm9udC1ib2xkO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtLWVycm9yIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG59XG5cbi5hdmFpbGFibGUtbnVtYmVycyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMCAwIC41cmVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzcwcHgpIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjM3NXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICAgIGNsZWFyOiBsZWZ0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHdpZHRoOiAxMDAgLyAyICogMSU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICB3aWR0aDogMTAwIC8gMyAqIDElO1xuXG4gICAgICAgICY6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGhlLW51bWJlciB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1ib2xkO1xuICAgICAgICBjb2xvcjogJGdyYXktY29sb3ItODAwO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2YzZmYwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja2JveC1yYWRpbyB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC41cmVtO1xuICAgIH1cbn1cblxuLnBob25lLWxvY2F0aW9uLWhlYWRpbmcge1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBtYXJnaW46IC41cmVtIDAgMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uc2VsZWN0ZWQtcGhvbmUtbnVtYmVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBoNiB7XG4gICAgICAgIG1hcmdpbjogMCAwIC4yNXJlbTtcbiAgICB9XG5cbiAgICBzdHJvbmcge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtbGlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICB9XG59XG5cbi5maW5kLXZhbml0eS1udW1iZXIge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci04MDA7XG4gICAgbWFyZ2luLXRvcDogMS43NXJlbTtcbiAgICBwYWRkaW5nOiAuMjVyZW07XG59XG5cbi5mb3JtLWdyb3VwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuZm9ybS1lcnJvcixcbiAgICAuc3RyaXBlLWNhcmQtZXJyb3JzIHtcbiAgICAgICAgYm90dG9tOiAuMzc1cmVtO1xuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMjVlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgYnV0dG9uW3R5cGU9J3N1Ym1pdCddIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG59XG5cbi5zdHJpcGUtY2FyZC1lcnJvcnMge1xuICAgIEBleHRlbmQgLmZvcm0tZXJyb3I7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5vbi1vZmYtdGV4dC10b2dnbGUge1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAuMjVyZW0gMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICY6Y2hlY2tlZCArIC50b2dnbGUtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG5cbiAgICAgICAgICAgIC50aGUtdG9nZ2xlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoMCwgMTc3LCA2NCk7XG4gICAgICAgICAgICAgICAgbGVmdDogNjFweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRvZ2dsZS1vZmYtdGV4dCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICByaWdodDogLTUwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50b2dnbGUtb24tdGV4dCB7XG4gICAgICAgICAgICAgICAgbGVmdDogMTJweDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9uLW9mZi10ZXh0LXRvZ2dsZS1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1yZWd1bGFyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIHBhZGRpbmc6IC43NXJlbSAwIDA7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB3aWR0aDogODBweDtcbiAgICB9XG5cbiAgICAudG9nZ2xlLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjODg4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB3aWR0aDogMTEwcHg7XG4gICAgfVxuXG4gICAgLnRvZ2dsZS10ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1mb250LXJlZ3VsYXI7XG4gICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uO1xuICAgICAgICAvLyBkaXNwbGF5OiBub25lO1xuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB0b3A6IDEwcHg7XG5cbiAgICAgICAgJi50b2dnbGUtb2ZmLXRleHQge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHJpZ2h0OiA3cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLnRvZ2dsZS1vbi10ZXh0IHtcbiAgICAgICAgICAgIGxlZnQ6IC00MHB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50aGUtdG9nZ2xlIHtcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb247XG4gICAgICAgIGJhY2tncm91bmQ6ICM4ODg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIGxlZnQ6IDJweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgd2lkdGg6IDQ1cHg7XG4gICAgfVxufVxuXG5cblxuLy8gbmVlZGVkIGZvciB2MVxuLmhlbHAtYmxvY2sge1xuICAgIGJvdHRvbTogMDtcbiAgICBjb2xvcjogI2NjNGIzNztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW46IC0xcmVtIDAgMXJlbTtcblxuICAgICYuaGVscC1ibG9jay0taW5mbyB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci03MDA7XG4gICAgfVxufVxuXG5cbi8vIHJhbmRvbSBjbGFzcyBuYW1lIHRvIHVzZSBmb3IgaGlkaW5nIHRoZSBkaXYgZm9yIGEgaG9uZXkgcG90IGZvciBzcGFtIGJvdHNcbi5kaW5vc2F1cnMge1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIiwiLmZsYXNoLW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBib3JkZXItY29sb3I6ICRncmF5LWNvbG9yLTUwMDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMnJlbSBhdXRvO1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAuNzVyZW0gMXJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYuZmxhc2gtbWVzc2FnZS1zdWNjZXNzIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHN1Y2Nlc3MtY29sb3I7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHN1Y2Nlc3MtY29sb3I7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgIC8vIGNvbnRlbnQ6ICdcXGYxNjQnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmZsYXNoLW1lc3NhZ2UtZXJyb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWxlcnQtY29sb3I7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGFsZXJ0LWNvbG9yO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAvLyBjb250ZW50OiAnXFxmMDcxJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtYm9sZDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAuNzVyZW0gM3JlbSAuNzVyZW0gM3JlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgICAgICAgICAgLy8gY29udGVudDogJ1xcZjA3MSc7XG4gICAgICAgICAgICAvLyBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gICAgICAgICAgICAvLyBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgbGVmdDogMXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMXJlbTtcblxuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5jdGEtcGhvbmUtc2VsZWN0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAxcHggcmdiYSgjOTk5LCAuMjUpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZzogLjVyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAyLjUlO1xuICAgIHdpZHRoOiA5NSU7XG5cbiAgICAmLmN0YS1waG9uZS1zZWxlY3Qtc3RhbmRhbG9uZSB7XG4gICAgICAgIG1heC13aWR0aDogNDkwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA1MDBweCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIHJpZ2h0OiBjYWxjKDEwMCAvIDEyICogMSUgKyAxcmVtKTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1saWdodDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDUwMHB4KSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC43NXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNTAwcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3RhLXBob25lLXNlbGVjdC1hcmVhLWNvZGUge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIHdpZHRoOiAxMDBweDtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNTAwcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLjc1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLmN0YS1waG9uZS1zZWxlY3QtY29udGFpbnMge1xuICAgIC8vICAgICBkaXNwbGF5OiBub25lO1xuICAgIC8vICAgICB3aWR0aDogY2FsYyg2NSUgLSAxLjVyZW0pO1xuICAgIC8vXG4gICAgLy8gICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgLy8gICAgICAgICBtYXJnaW4tcmlnaHQ6IC43NXJlbTtcbiAgICAvLyAgICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cblxuICAgIC5jdGEtZmluZC12YW5pdHktbnVtYmVyIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yLTgwMDtcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgZGl2IHtcbiAgICAgICAgLy8gZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNTAwcHgpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogLjc1cmVtIDFyZW07XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTEwcHggLSAxcmVtKTtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNTAwcHgpIHtcbiAgICAgICAgICAgIC8vIGJvcmRlci10b3A6IDNweCBzb2xpZCAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAuNzVyZW0gMXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICAgICAgICAvLyAmOmZvY3VzLFxuICAgICAgICAgICAgLy8gJjpob3ZlcixcbiAgICAgICAgICAgIC8vICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAvLyBib3JkZXItY29sb3I6ICRzZWNvbmRhcnktY29sb3ItODAwO1xuICAgICAgICAgICAgLy8gfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uYXZhaWxhYmxlLW51bWJlci1sb2NhdGlvbiB7XG4gICAgQGluY2x1ZGUgaGVhZGluZy1mb250LWJvbGQ7XG4gICAgY29sb3I6ICRncmF5LWNvbG9yLTYwMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgLy8gbWFyZ2luLXRvcDogLS4yNXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuIiwiLmZvcm0tY2FyZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IDFweCByZ2JhKCM5OTksIC4yNSk7XG4gICAgcGFkZGluZzogMS4yNXJlbTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgfVxufVxuXG5cbi5jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IDFweCByZ2JhKCM5OTksIC4yNSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5jYXJkLW5vLW1hcmdpbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLmNhcmQtZmxleGJveC1tZWRpdW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FyZC1oZWFkaW5nIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLmNhcmQtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY2FyZC1saW5rIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5jYXJkLWltYWdlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAmLmVkZ2VsZXNzLWltYWdlIHtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDJyZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5jYXJkLXNjYWxlIHtcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb247XG5cbiAgICAgICAgLm5vLXRvdWNoZXZlbnRzICYge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJkLXN0YXQge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3ItNTAwO1xuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgLmNhcmQtZm9vdG5vdGUge1xuICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgIG1hcmdpbjogLjVyZW0gMCAwO1xuICAgIH1cbn1cblxuLmJlbmVmaXRzLXNlY3Rpb24ge1xuXG4gICAgLmNlbGwge1xuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAuYmVuZWZpdHMtY2FyZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uYmVuZWZpdHMtY2FyZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IGRvdHRlZCAkZ3JheS1jb2xvci01MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBwYWRkaW5nOiAwIDEuNXJlbSAycmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIC8vIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRncmF5LWNvbG9yLTUwMDtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgIH1cblxuICAgIC5pY29uLXdyYXBwZXIge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNTBkZWcsICRwcmltYXJ5LWNvbG9yLTUwMCA1MCUsICRwcmltYXJ5LWNvbG9yLTcwMCAxMDAlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgkZ3JheS1jb2xvci0yMDAsIC41KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGhlaWdodDogNjVweDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogNjVweDtcbiAgICB9XG5cbiAgICBpLFxuICAgIHN2ZyB7XG4gICAgICAgIC8vIEBpbmNsdWRlIGxvbmctc2hhZG93KHRleHQsIHJnYmEoJHByaW1hcnktY29sb3ItNzAwLCAuMSksIDIwLCBmYWxzZSwgZmFsc2UsIHJpZ2h0KTtcblxuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgfVxuXG4gICAgLmNhcmQtaGVhZGluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG59XG5cblxuLmRhdGEtcG9pbnQtY2FyZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAkc2Vjb25kYXJ5LWNvbG9yLTIwMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuZGF0YS1wb2ludC1pY29uIHtcbiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICBjb2xvcjogJGdyYXktY29sb3ItMzAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbGVmdDogLjVyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgIC5kYXRhLXBvaW50LXZhbHVlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMjVlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICAuZGF0YS1wb2ludC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkZ3JheS1jb2xvci05MDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wNWVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbn1cbiIsIi5jYXJkLmxpbmstY2FyZCB7XG4gICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb247XG4gICAgY29sb3I6ICRncmF5LWNvbG9yLTgwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLmNhcmQtbm8tc2NhbGUge1xuICAgICAgICAubm8tdG91Y2hldmVudHMgJiB7XG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5jYXJkLW5vLXNjYWxlKSB7XG4gICAgICAgIC5uby10b3VjaGV2ZW50cyAmIHtcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLTUwMCwgLjI1KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3ItNTAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuY2FyZC5hcnJvdy1jYXJkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5jYXJkLWFycm93IHtcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb247XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLjg3NXJlbTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRvcDogY2FsYyg1MCUgLSAuNXJlbSk7XG4gICAgfVxuXG4gICAgLm5vLXRvdWNoZXZlbnRzICYge1xuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5jYXJkLWFycm93IHtcbiAgICAgICAgICAgICAgICByaWdodDogLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuY2FyZC5pY29uLWNhcmQge1xuICAgIHBhZGRpbmctbGVmdDogMy43NXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuY2FyZC1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDEuMjVyZW0pO1xuICAgICAgICB3aWR0aDogMy43NXJlbTtcbiAgICB9XG59XG4iLCIuZmVhdHVyZS1jYXJkIHtcbiAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbjtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAkcHJpbWFyeS1jb2xvci03MDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IDFweCByZ2JhKCM5OTksIC4yNSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIDAgMnJlbSAxLjVyZW07XG4gICAgcGFkZGluZzogMXJlbSAxcmVtIDFyZW0gMnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmLmZlYXR1cmUtY2FyZC1saW5rIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IGRvdHRlZCAkYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAubm8tdG91Y2hldmVudHMgJiB7XG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3ItNzAwLCAuMjUpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG5cbiAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmxhY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAkcHJpbWFyeS1jb2xvci03MDA7XG4gICAgICAgIG1hcmdpbjogMCAxLjVyZW0gMnJlbSAwO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDJyZW0gMXJlbSAxcmVtO1xuXG4gICAgICAgIC5mZWF0dXJlLWljb24ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAtMjBweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAtMjBweDtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0zMHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJHByaW1hcnktY29sb3ItNzAwO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGhlaWdodDogMTc1cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM3NXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mZWF0dXJlLWNhcmQtY29sdW1uLXJpZ2h0ICYsXG4gICAgLmZlYXR1cmUtY2FyZC1jb2x1bW4tbGVmdCAmIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS1jb2xvci02MDA7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZlYXR1cmUtY2FyZC1jb2x1bW4tbGVmdCAmIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAkcHJpbWFyeS1jb2xvci03MDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAyLjVyZW0gMXJlbSAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZlYXR1cmUtaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICByaWdodDogLTMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC0xMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogLTgyJTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxMTUlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0M2RlZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCg0KSB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogLTgyJTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAtMTIlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDNkZWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mZWF0dXJlLWNhcmQtY29sdW1uLXJpZ2h0ICYge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgbGVmdDogLTEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IC04MiU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTE1JTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQzZGVnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IC04MiU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogLTEyJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDNkZWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1mb250LWJvbGQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRibGFjaztcblxuICAgICAgICAgICAgLm5vLXRvdWNoZXZlbnRzICYge1xuICAgICAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5mZWF0dXJlLWljb24ge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvci01MDA7IC8vIzQ0ODRjZTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE1MGRlZywgJHByaW1hcnktY29sb3ItNTAwIDUwJSwgJHByaW1hcnktY29sb3ItNzAwIDEwMCUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbGVmdDogLTIwcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDIwcHgpO1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgei1pbmRleDogMTA7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgICBsZWZ0OiAtMzBweDtcbiAgICAgICAgICAgIHRvcDogY2FsYyg1MCUgLSAzMHB4KTtcbiAgICAgICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgaSxcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIC8vIEBpbmNsdWRlIGxvbmctc2hhZG93KHRleHQsIHJnYmEoJHByaW1hcnktY29sb3ItNzAwLCAuMSksIDM1LCBmYWxzZSwgZmFsc2UsIHJpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmZlYXR1cmUtY2FyZC1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbjtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICRwcmltYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IC41cmVtO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgLm5vLXRvdWNoZXZlbnRzICYge1xuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3ItNTAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIucHJpY2UtY2FyZCB7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJvcmRlci10b3A6IDEwcHggc29saWQgJHByaW1hcnktY29sb3ItNTAwO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAxcHggcmdiYSgjOTk5LCAuMjUpO1xuICAgIG1hcmdpbjogMnJlbSBhdXRvIDA7XG4gICAgbWF4LXdpZHRoOiAzNzVweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYucHJpY2UtaGlnaGxpZ2h0ZWQtY2FyZCB7XG4gICAgICAgIC5wcmljZS1jYXJkLWNvbnRlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjOTk5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1jYXJkLWhlYWRpbmcge1xuICAgICAgICAvLyBiYWNrZ3JvdW5kOiAkdGVydGlhcnktY29sb3I7XG4gICAgICAgIC8vIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSAgMXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIC5wcmljZS1jYXJkLWhlYWRpbmctdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtbGlnaHQ7XG4gICAgICAgICAgICAvLyBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1ib2xkO1xuXG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1saWdodDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuMjVyZW07XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHRvcDogLS4zNzVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2UtY2FyZC1jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y0ZjZmOTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoIzk5OSwgLjUpLCBpbnNldCAwIC0xcHggMnB4IHJnYmEoIzk5OSwgLjUpO1xuXG4gICAgICAgIC5wcmljZS1jYXJkLWNvbnRlbnQtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yLTUwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcblxuICAgICAgICAgICAgJG9mZnNldDogMThweDtcbiAgICAgICAgICAgICY6OmFmdGVyLFxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBib3R0b206IC0kb2Zmc2V0O1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRvZmZzZXQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRvZmZzZXQgc29saWQgJHByaW1hcnktY29sb3ItODAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG9mZnNldCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRvZmZzZXQgc29saWQgJHByaW1hcnktY29sb3ItODAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlLWNhcmQtY29udGVudC10ZXh0IHtcbiAgICAgICAgICAgICAgICAvLyBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtYm9sZDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wNzVlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAuMjVyZW0gMXJlbTtcblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBmb250LXZhcmlhbnQ6IGFsbC1zbWFsbC1jYXBzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yLTcwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgICAgIC8vIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAmOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncmF5LWNvbG9yLTIwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIC8vIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2UtY2FyZC1idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5wcmltYXJ5LWZvb3RlciB7XG4gICAgYmFja2dyb3VuZDogJHRlcnRpYXJ5LWNvbG9yO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbG9yLXRpbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMnJlbTtcbiAgICB9XG5cbiAgICAuY2VsbCB7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IC41cmVtIDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMCAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IC41cmVtIDA7XG4gICAgICAgIHdpZHRoOiA1MCU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGNvbG9yOiAjZGRkO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAuMjVyZW0gMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYWxsLXVzIHtcblxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZGRkO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAvLyBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9vdGVyLWN0YSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkdGVydGlhcnktY29sb3Itc2hhZGU7XG4gICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1mb250LXJlZ3VsYXI7XG5cbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IC41cmVtIDVyZW07XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZG93bmxvYWQtYXBwLXN0b3JlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAgICAgICAgICYuZ29vZ2xlLXBsYXkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ib3JkZXItYnV0dG9uIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG59XG4iLCIucHJlLWZvb3RlciB7XG4gICAgYmFja2dyb3VuZDogJGdyYXktY29sb3ItMjAwO1xuICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCAkdGVydGlhcnktY29sb3I7XG4gICAgcGFkZGluZzogMS41cmVtIC41cmVtO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICB9XG5cbiAgICAuY2VsbCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyYXktY29sb3ItNTAwO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRncmF5LWNvbG9yLTUwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pY29uLXdyYXBwZXIge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCAxcHggcmdiYSgjNTU1LCAuNSk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGhlaWdodDogOTBweDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiA5MHB4O1xuICAgIH1cblxuICAgIGksXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG5cbiAgICB9XG5cbiAgICAuc2VjdXJpdHktaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNTBkZWcsICNmZmM1MDAgNTAlLCBkYXJrZW4oI2ZmYzUwMCwgNSUpIDEwMCUpO1xuICAgIH1cblxuICAgIC5zdHJpcGUtaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNTBkZWcsICMyMGJlMDAgNTAlLCBkYXJrZW4oIzIwYmUwMCwgNSUpIDEwMCUpO1xuICAgIH1cblxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgMS4yNXJlbTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDkwcHgpO1xuICAgIH1cbn1cbiIsIlxuLmxlZ2FsLWZvb3RlciB7XG4gICAgYmFja2dyb3VuZDogJHRlcnRpYXJ5LWNvbG9yLXNoYWRlO1xuICAgIHBhZGRpbmc6IC43NXJlbSAwIC41cmVtO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZzogLjI1cmVtIDAgLjVyZW07XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgLjVyZW0gMCAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JheS1jb2xvci01MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvcHlyaWdodCB7XG4gICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNvY2lhbC1tZWRpYSB7XG4gICAgICAgIHBhZGRpbmc6IC4yNXJlbSAuNXJlbSAwO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIucHJpbWFyeS1oZWFkZXIge1xuICAgICYucHJpbWFyeS1hY2NvdW50LWhlYWRlciB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMjU7XG4gICAgfVxufVxuIiwiLnByaW1hcnktaGVhZGVyLnBwYy1oZWFkZXIge1xuICAgIC5jZWxsIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxufVxuIiwiLnRvcC1oZWFkZXIge1xuICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1yZWd1bGFyO1xuICAgIGJhY2tncm91bmQ6ICR0ZXJ0aWFyeS1jb2xvci1zaGFkZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nOiAuMTI1cmVtIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi5wcmltYXJ5LWhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCAkcHJpbWFyeS1jb2xvci04MDA7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoIzg4OCwgLjUpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyMDtcblxuICAgIC5tZW51LXRvZ2dsZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNlbGwge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAuaGVhZGVyLWluZm8tbGlua3Mge1xuICAgIC8vXG4gICAgLy8gfVxuXG4gICAgLmhlYWRlci1hY3Rpb24tbGlua3Mge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBuYXYge1xuICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbjtcblxuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIGJveC1zaGFkb3c6IDFweCAwIDNweCByZ2JhKCM4ODgsIC41KTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBsZWZ0OiAtMjgwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMjc1cHg7XG4gICAgICAgIHotaW5kZXg6IDE1O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgJi5zaG93LW5hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwsXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1yZWd1bGFyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmF5LWNvbG9yLTcwMDtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IC43NXJlbSAxcmVtO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuaG9tZS1sb2dvLWxpbmsge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci04MDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRicmFuZGluZy1mb250O1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLS41cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBwYWRkaW5nOiAuNXJlbSAwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgcGFkZGluZzogLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgLy8gbWF4LXdpZHRoOiAyNTBweDtcbiAgICAgICAgICAgIC8vIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDU4cHg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgLy8gd2lkdGg6IDIyNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgLy8gd2lkdGg6IDI1MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci04MDA7XG4gICAgICAgIG1hcmdpbjogLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IC42MjVyZW0gMXJlbTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDFyZW0pO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBtYXJnaW46IC41cmVtIDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsIHVsIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3ItNzAwO1xuICAgICAgICAvLyBib3JkZXItYm90dG9tOiA1cHggc29saWQgJHByaW1hcnktY29sb3ItNTAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAqIDI7XG4gICAgICAgIC8vIGJvcmRlci10b3A6IDVweCBzb2xpZCAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAxcHggcmdiYSgjNTU1LCAuMjUpO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwMHB4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgcGFkZGluZzogLjVyZW0gMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMjAwcHg7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgJHByaW1hcnktY29sb3ItNzAwO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTBweCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlICsgMS41cmVtKTtcbiAgICAgICAgICAgIGxlZnQ6IC0uNXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLTFyZW07XG4gICAgICAgICAgICB3aWR0aDogY2FsYygyMDBweCArIDFyZW0pO1xuICAgICAgICB9XG5cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yLTEwMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuXG4gICAgICAgICAgICAubm8tdG91Y2hldmVudHMgJiB7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICAubm8tdG91Y2hldmVudHMgJiB7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucGFnZS1oZWFkZXItY3RhLWhlYWRpbmcge1xuICAgIGJhY2tncm91bmQ6ICNlZWYxZjM7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMzMlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICB3aWR0aDogNDUlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgLy8gYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMzAwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogMzAwcHggc29saWQgJHdoaXRlO1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAzMyU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIHJpZ2h0OiA0NSU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNlbGwge1xuICAgICAgICBib3gtc2hhZG93OiAwIDNweCAwICRwcmltYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgcGFkZGluZzogMnJlbSAwIDNyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTA7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3ItODAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMzhweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBib3R0b206IC0xOXB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwIC8gMTIgKiAxJSArIDFyZW0pO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgcGFkZGluZzogM3JlbSAwIDNyZW0gMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtbGlnaHQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgY29sb3I6ICRvZmYtYmxhY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgfVxufVxuXG5cbi5tb2JpbGUtdG9wYmFyLW1lbnUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAuMjVyZW0gMCAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IGF1dG87XG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbn1cbiIsIi5vdmVyZmxvdy10YWJsZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAub3ZlcmZsb3ctdGFibGUtaW5uZXItd3JhcHBlciB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cbn1cblxudGFibGUge1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLnJvdW5kZWQtdGFibGUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICYudmVydGljYWwtYWxpZ24tbWlkZGxlIHtcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYudGFibGUtYXV0by1sYXlvdXQge1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5mb3VyLWNvbHVtbi10YWJsZSB7XG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgcGFkZGluZzogLjM3NXJlbTtcbiAgICB9XG5cbiAgICAudGFibGUtbGluZS1icmVhayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICB0aGVhZCB7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtYm9sZDtcblxuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzc1O1xuICAgICAgICAgICAgcGFkZGluZzogLjVyZW07XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgICA+IHRyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JheS1jb2xvci01MDA7XG5cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZ3JheS1jb2xvci01MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zNzU7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGdyYXktY29sb3ItNTAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGZvb3Qge1xuICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHRlcnRpYXJ5LWNvbG9yO1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0ZXJ0aWFyeS1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR0ZXJ0aWFyeS1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM3NTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkdGVydGlhcnktY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmVzdGVkLXRhYmxlLW91dGVyLXJvdyB7XG5cbiAgICAgICAgLnNsaWRlLXRvZ2dsZS1lbGVtZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmVzdGVkLXRhYmxlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGdyYXktY29sb3ItODAwO1xuICAgIH1cblxuICAgIC5uZXN0ZWQtdGFibGUtdG9nZ2xlIHtcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb247XG5cbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJGdyYXktY29sb3ItMjAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggM3B4IHJnYmEoJGdyYXktY29sb3ItODAwLCAuMjUpO1xuICAgICAgICAvLyBjb2xvcjogJHByaW1hcnktY29sb3ItNTAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuXG4gICAgICAgIGksXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm5lc3RlZC10YWJsZS1vcGVuIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG50YWJsZS5lbWFpbC1zaWcge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDNyZW0gYXV0byAwO1xuICAgIG1heC13aWR0aDogMjAwcHg7XG5cbiAgICB0ZCB7XG4gICAgICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAucmVzcG9uc2l2ZS10YWJsZSB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogLjVyZW07XG5cbiAgICAgICAgdGFibGUsXG4gICAgICAgIHRib2R5LFxuICAgICAgICB0cixcbiAgICAgICAgdGQsXG4gICAgICAgIHRoLFxuICAgICAgICB0Zm9vdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuXG4gICAgICAgIHRib2R5IHtcblxuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgIC8vYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRwcmltYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHByaW1hcnktY29sb3ItNTAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRkIHtcblxuICAgICAgICAgICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmF5LWNvbG9yLTgwMDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkZ3JheS1jb2xvci04MDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAxcmVtIDFyZW0gNDAlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1mb250LWJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oZWFkaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg0MCUgLSAxcmVtKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnJlc3BvbnNpdmUtZnVsbC13aWR0aCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAub3JkZXItc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwidGFibGUuemVicmEtc3RyaXBlLXRhYmxlIHtcbiAgICA+IHRib2R5IHtcbiAgICAgICAgPiB0ciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuXG4gICAgICAgICAgICAmOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS1jb2xvci0yMDA7XG5cbiAgICAgICAgICAgICAgICAmLmdicG4tY29tcGFyaXNvbi1jb2x1bW4ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvci01MDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiB0ZCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbmVzdGluZy1kZXB0aFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS1jb2xvci0yMDA7XG5cbiAgICAgICAgICAgICAgICAgICAgJi5nYnBuLWNvbXBhcmlzb24tY29sdW1uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5mYXEtYm94IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRncmF5LWNvbG9yLTUwMDtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMCAxLjVyZW0gMi43NXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmZhcS1xdWVzdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1saWdodDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAuNzVyZW0gMCAxcmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuZmFxLWljb24gIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uO1xuICAgICAgICAgICAgbGVmdDogLjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogLjEyNXJlbSAycmVtIC4xMjVyZW0gLjEyNXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMnJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICAvLyB0b3A6IDIuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuXG4gICAgICAgICAgICBjb2xvcjogJGdyYXktY29sb3ItNTAwO1xuICAgICAgICAgICAgLy8gY29udGVudDogJ1xcZjA1NSc7XG4gICAgICAgICAgICAvLyBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZmFxLW9wZW4ge1xuXG4gICAgICAgICAgICAuZmFxLWljb24ge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvci01MDA7XG4gICAgICAgICAgICAgICAgLy8gZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mYXEtYW5zd2VyIHtcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oJHByb3BlcnR5OiBoZWlnaHQsICRzcGVlZDogLjI1cylcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIC5mYXEtYW5zd2VyLWNvbnRlbnQge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkZ3JheS1jb2xvci0zMDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAwIDEuMjVyZW07XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogLjVyZW0gLjVyZW0uNXJlbSAxLjI1cmVtO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLnBhZ2UtaG9tZSB7XG4gICAgbWFpbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbn1cblxuLmhvbWUtcGFnZS10b3BwZXIge1xuICAgIC8vIGJhY2tncm91bmQ6ICR0ZXJ0aWFyeS1jb2xvci1zaGFkZTtcbiAgICAvLyBiYWNrZ3JvdW5kOiB1cmwoJy9iZy0xLmpwZycpO1xuICAgIC8vIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgLy8gYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7XG4gICAgLy8gYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTtcbiAgICAvLyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBhZGRpbmc6IDJyZW0gMCA2cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxMDtcblxuICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgICAgLy8gbmVlZGVkIGJlY2FzdWUgYGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7YCBkb2Vzbid0IHdvcmsgb24gaW9zIHByb3Blcmx5XG4gICAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgnL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZHMvYnVpbGRpbmdzLWJ1c2luZXNzLWNpdHlAMCwyNXguanBnJyk7XG4gICAgICAgIC8vIGJhY2tncm91bmQ6IHVybCgnL2Fzc2V0cy9pbWFnZXMvYmctMi5qcGcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDY1JSAwO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZHMvYnVpbGRpbmdzLWJ1c2luZXNzLWNpdHlAMCw1eC5qcGcnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgLTQwMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgLnRvdWNoZXZlbnRzICYge1xuICAgICAgICAgICAgICAgIC8vIG5lZWRlZCBiZWNhc3VlIGBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO2AgZG9lc24ndCB3b3JrIG9uIGlvcyBwcm9wZXJseVxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciAtNDAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmRzL2J1aWxkaW5ncy1idXNpbmVzcy1jaXR5LmpwZycpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIC00MDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg4NCwgMTQzLCAxNzYsIDAuOSk7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtNDVkZWcsIHJnYmEoNTMsIDExOCwgMTU0LCAwLjkpLCByZ2JhKDg0LCAxNDMsIDE3NiwgMC45KSk7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMjtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmdyaWQtY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBwYWRkaW5nOiA0cmVtIDAgNnJlbTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNzU7XG5cbiAgICB9XG5cbiAgICBoMSxcbiAgICBoMixcbiAgICBwIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMnB4IDNweCAkYmxhY2s7XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtYm9sZDtcblxuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yLTUwMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDIsXG4gICAgcCB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1saWdodDtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmN0YS1waG9uZS1zZWxlY3Qge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jdGEtYmFzaWMtYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogMnJlbSAwIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwIDNyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuY29udGFjdC1tYXAge1xuICAgIGhlaWdodDogMjUwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEuNzVyZW07XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBoZWlnaHQ6IDM1MHB4O1xuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5jb250YWN0LW1hcC1uby1tYXJnaW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbn1cblxuLm1hcC1pbmZvLWNvbnRhaW5lciB7XG4gICAgLy8gaGVpZ2h0OiAxMjVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLy8gdG9wOiAtNHJlbTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgfVxufVxuXG4ubWFwLWluZm8ge1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBib3JkZXItdG9wOiA0cHggc29saWQgJHByaW1hcnktY29sb3ItNTAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAxcHggcmdiYSgjOTk5LCAuMjUpO1xuICAgIGxlZnQ6IDFyZW07XG4gICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0b3A6IC0zcmVtO1xuICAgIG1hcmdpbjogLjVyZW0gMDtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMXJlbTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTUwcHgpO1xuICAgICAgICB0b3A6IC01cmVtO1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAudG91Y2hldmVudHMgJiB7XG4gICAgICAgICAgICBjb2xvcjogIzQyOTRkMjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLlN0cmlwZUVsZW1lbnQge1xuICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uO1xuICAgIEBpbmNsdWRlIGJvZHktZm9udC1yZWd1bGFyO1xuXG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgLy8gaGVpZ2h0OiA0MHB4O1xuICAgIC8vcGFkZGluZzogMTBweCAxMnB4O1xuICAgIC8vIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAvLyBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAvLyBib3gtc2hhZG93OiAwIDFweCAzcHggMCAjZTZlYmYxO1xuICAgIC8vIC13ZWJraXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxNTBtcyBlYXNlO1xuICAgIC8vIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMTUwbXMgZWFzZTtcblxuICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyYXktY29sb3ItMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgcGFkZGluZzogLjVyZW07XG5cbn1cblxuLlN0cmlwZUVsZW1lbnQtLWZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yLTUwMDtcbn1cblxuLlN0cmlwZUVsZW1lbnQtLWludmFsaWQge1xuICAgIGJvcmRlci1jb2xvcjogI2ZhNzU1YTtcbn1cblxuLlN0cmlwZUVsZW1lbnQtLXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmRlNSAhaW1wb3J0YW50O1xufVxuXG4uYWRkLXN0cmlwZS1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgKiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB9XG5cbiAgICAucm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luOiAwIDVweCAxMHB4O1xuICAgIH1cblxuICAgIC5maWVsZCB7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmZpZWxkLmhhbGYtd2lkdGgge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgIH1cblxuICAgIC5maWVsZC5xdWFydGVyLXdpZHRoIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMTBweCk7XG4gICAgfVxuXG4gICAgLmJhc2VsaW5lIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NmZDdkZjtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBjdWJpYy1iZXppZXIoLjE2NSwgLjg0LCAuNDQsIDEpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIGJvdHRvbTogOHB4O1xuICAgICAgICBjb2xvcjogI2NmZDdkZjtcbiAgICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjNzO1xuICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgdHJhbnNmb3JtO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4xNjUsIC44NCwgLjQ0LCAxKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmlucHV0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgY29sb3I6ICMzMjMyNWQ7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmlucHV0IHtcbiAgICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAuM3MgY3ViaWMtYmV6aWVyKC4xNjUsIC44NCwgLjQ0LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgLjNzIGN1YmljLWJlemllciguMTY1LCAuODQsIC40NCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAuM3MgY3ViaWMtYmV6aWVyKC4xNjUsIC44NCwgLjQ0LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuU3RyaXBlRWxlbWVudCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKC4xNjUsIC44NCwgLjQ0LCAxKTtcbiAgICAgICAgICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5mb2N1c2VkLFxuICAgICAgICAmOm5vdCguZW1wdHkpIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5wdXQuZm9jdXNlZDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAgICAgLmlucHV0Om5vdCguZW1wdHkpOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjY2ZkN2RmO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlucHV0LmZvY3VzZWQ6Oi1tb3otcGxhY2Vob2xkZXIsXG4gICAgICAgIC5pbnB1dDpub3QoLmVtcHR5KTo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogI2NmZDdkZjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZm9jdXNlZDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICAgICAgICY6bm90KC5lbXB0eSk6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjY2ZkN2RmO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5mb2N1c2VkICsgbGFiZWwsXG4gICAgICAgICY6bm90KC5lbXB0eSkgKyBsYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogI2FhYjdjNDtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjg1KSB0cmFuc2xhdGVZKC0yNXB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZm9jdXNlZCArIGxhYmVsIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMjRiNDdlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pbnZhbGlkICsgbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICNmZmEyN2I7XG4gICAgICAgIH1cblxuICAgICAgICAmLmZvY3VzZWQgKyBsYWJlbCArIC5iYXNlbGluZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjRiNDdlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5mb2N1c2VkLmludmFsaWQgKyBsYWJlbCArIC5iYXNlbGluZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTI1OTUwO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQge1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgICAgIGFuaW1hdGlvbjogMW1zIHZvaWQtYW5pbWF0aW9uLW91dDtcbiAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICNlMzlmNDg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTAwMDAwMDAwcztcblxuICAgIH1cblxuICAgIC5TdHJpcGVFbGVtZW50LS13ZWJraXQtYXV0b2ZpbGwge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJ1dHRvbixcbiAgICBpbnB1dCB7XG4gICAgICAgIGFuaW1hdGlvbjogMW1zIHZvaWQtYW5pbWF0aW9uLW91dDtcbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjRiNDdlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIG1hcmdpbjogNDBweCAxNXB4IDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcblxuICAgIH1cblxuICAgIGlucHV0OmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNTk1NzA7XG4gICAgfVxuXG4gICAgLmVycm9yIHtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgLmJhc2Uge1xuICAgICAgICAgICAgICAgIGZpbGw6ICNlMjU5NTA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5nbHlwaCB7XG4gICAgICAgICAgICAgICAgZmlsbDogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZTI1OTUwO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuc3VjY2VzcyAge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAuYm9yZGVyIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICNhYmU5ZDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jaGVja21hcmsge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogIzI0YjQ3ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogIzMyMzI1ZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6ICM4ODk4YWE7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNldCBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICMyNGI0N2U7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuY2FsZW5kYXItZGF0ZSB7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAkb2ZmLWJsYWNrO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJl9fbW9udGgge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtbGlnaHQ7XG5cbiAgICAgICAgY29sb3I6ICRncmF5LWNvbG9yLTcwMDtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsZWZ0OiAtMy42MjVyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDVlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgdG9wOiA0LjVyZW07XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICB9XG5cbiAgICAmX19kYXkge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtYm9sZDtcbiAgICAgICAgY29sb3I6ICRncmF5LWNvbG9yLTkwMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHBhZGRpbmc6IDNyZW0gMCAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1mb250LXJlZ3VsYXI7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMjVlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiA3MHB4O1xuICAgICAgICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgJl9fd2Vla2RheSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctZm9udC1yZWd1bGFyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAyNWVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgdG9wOiAxLjc1cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19kYXlzLWF3YXkge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWZvbnQtYm9sZDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZkZWIwZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAyNWVtO1xuICAgICAgICBwYWRkaW5nOiAuMzc1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgJl9fZmxpcCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMnB4IDFweCAkZ3JheS1jb2xvci0zMDA7XG4gICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDI1cHg7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMjVweCBzb2xpZCAkZ3JheS1jb2xvci0zMDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAyNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAyNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDI1cHggc29saWQgJGdyYXktY29sb3ItNjAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgMCAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wb3N0cyB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmOjphZnRlcixcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncmF5LWNvbG9yLTQwMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTVweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogLTFweCAycHggMCAwICRncmF5LWNvbG9yLTYwMCwgLTAgMXB4IDAgMCAkZ3JheS1jb2xvci02MDA7XG4gICAgICAgICAgICByaWdodDogNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAxcHggMnB4IDAgMCAkZ3JheS1jb2xvci02MDAsIDAgMXB4IDAgMCAkZ3JheS1jb2xvci02MDA7XG4gICAgICAgICAgICBsZWZ0OiA1MHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLnBwYy1wYWdlIHtcbiAgICBtYWluIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/