@charset "UTF-8";
/*!
Theme Name: danetv2
Theme URI: http://underscores.me/
Author: Simon Volpert
Author URI: http://svolpert.eu
Description: Next Gen DaNet Theme
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: danetv2
Tags:

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

danetv2 is based on Underscores http://underscores.me/, (C) 2012-2015 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Bourbon
# Neat
# Normalize
# Typography
# Elements
# Forms
# Layouts
# Navigation
	## Links
	## Menus
# Accessibility
# Alignments
# Clearings
# Widgets
# Content
    ## Posts and pages
	## Asides
	## Comments
# Infinite scroll
# Media
	## Captions
	## Galleries
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Bourbon
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Neat
--------------------------------------------------------------*/
html {
  box-sizing: border-box; }

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

/*--------------------------------------------------------------
# Bitters
--------------------------------------------------------------*/
/*--------------------------------------------------------------

# Normalize
--------------------------------------------------------------*/
html {
  font-family: sans-serif;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%; }

body {
  margin: 0; }

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

audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline; }

audio:not([controls]) {
  display: none;
  height: 0; }

[hidden],
template {
  display: none; }

a {
  background-color: transparent; }

a:active,
a:hover {
  outline: 0; }

abbr[title] {
  border-bottom: 1px dotted; }

b,
strong {
  font-weight: bold; }

dfn {
  font-style: italic; }

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

mark {
  background: #ff0;
  color: #000; }

small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

img {
  border: 0; }

svg:not(:root) {
  overflow: hidden; }

figure {
  margin: 1em 40px; }

hr {
  box-sizing: content-box;
  height: 0; }

pre {
  overflow: auto; }

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

button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0; }

button {
  overflow: visible; }

button,
select {
  text-transform: none; }

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

button[disabled],
html input[disabled] {
  cursor: default; }

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

input {
  line-height: normal; }

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

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

input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box; }

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

legend {
  border: 0;
  padding: 0; }

textarea {
  overflow: auto; }

optgroup {
  font-weight: bold; }

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

td,
th {
  padding: 0; }

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Site
--------------------------------------------------------------*/
div#content {
  max-width: 68em;
  margin-left: auto;
  margin-right: auto; }
  div#content::after {
    clear: both;
    content: "";
    display: table; }
  @media screen and (max-width: 50em) {
    div#content #primary {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 100%; }
      div#content #primary:last-child {
        margin-right: 0; } }
  @media screen and (min-width: 50em) {
    div#content #primary {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 65.88078%; }
      div#content #primary:last-child {
        margin-right: 0; } }
  div#content #primary.full-width {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 100%; }
    div#content #primary.full-width:last-child {
      margin-right: 0; }
  @media screen and (max-width: 50em) {
    div#content #secondary {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 82.94039%;
      margin-left: 8.5298%; }
      div#content #secondary:last-child {
        margin-right: 0; } }
  @media screen and (min-width: 50em) {
    div#content #secondary {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 31.76157%; }
      div#content #secondary:last-child {
        margin-right: 0; } }
  div#content header.page-header {
    margin-top: 3em; }

header#masthead {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  background-image: url("./static/header.png");
  background-image: url("./static/header.png"); }
  header#masthead::after {
    clear: both;
    content: "";
    display: table; }
  header#masthead .site-branding {
    max-width: 68em;
    margin-left: auto;
    margin-right: auto;
    /*@include display('flex');*/
    /*@include align-items('center');*/
    /*@include justify-content('flex-start');*/
    box-align: center;
    -moz-align-items: center;
    -ms-align-items: center;
    -o-align-items: center;
    align-items: center;
    -ms-flex-align: center;
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    box-pack: start;
    -moz-justify-content: flex-start;
    -ms-justify-content: flex-start;
    -o-justify-content: flex-start;
    justify-content: flex-start;
    -ms-flex-pack: start;
    height: 250px; }
    header#masthead .site-branding::after {
      clear: both;
      content: "";
      display: table; }
    header#masthead .site-branding .site-logo {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 65.88078%;
      /*@include flex(0 0 500px);*/ }
      header#masthead .site-branding .site-logo:last-child {
        margin-right: 0; }
      @media screen and (max-width: 50em) {
        header#masthead .site-branding .site-logo {
          width: 100%; } }

footer#colophon {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  background-image: url("./static/footer.png");
  background-image: url("./static/footer.png");
  background-position: right bottom;
  background-repeat: no-repeat;
  background-color: #eee; }
  footer#colophon::after {
    clear: both;
    content: "";
    display: table; }
  footer#colophon .footer-wrapper {
    /*@include media($desktop) {*/
    /*@include span-columns(8);*/
    /*}*/
    /*@include media($tablet) {*/
    /*@include span-columns(8);*/
    /*}*/
    /*@include media($mobile) {*/
    /*@include span-columns(12);*/
    /*}*/
    max-width: 68em;
    margin-left: auto;
    margin-right: auto;
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 100%; }
    footer#colophon .footer-wrapper h1 {
      margin-top: 0.5em; }
    footer#colophon .footer-wrapper::after {
      clear: both;
      content: "";
      display: table; }
    footer#colophon .footer-wrapper:last-child {
      margin-right: 0; }
    @media screen and (min-width: 50em) {
      footer#colophon .footer-wrapper .legal {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 31.76157%;
        margin-left: 8.5298%; }
        footer#colophon .footer-wrapper .legal:last-child {
          margin-right: 0; } }
    @media screen and (max-width: 75em) {
      footer#colophon .footer-wrapper .legal {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 31.76157%;
        margin-left: 8.5298%; }
        footer#colophon .footer-wrapper .legal:last-child {
          margin-right: 0; } }
    @media screen and (max-width: 50em) {
      footer#colophon .footer-wrapper .legal {
        text-align: center;
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 82.94039%;
        margin-left: 8.5298%; }
        footer#colophon .footer-wrapper .legal:last-child {
          margin-right: 0; } }
    footer#colophon .footer-wrapper .sponsors {
      margin-right: 0; }
      @media screen and (max-width: 50em) {
        footer#colophon .footer-wrapper .sponsors {
          text-align: center;
          float: left;
          display: block;
          margin-right: 2.35765%;
          width: 82.94039%;
          margin-left: 8.5298%; }
          footer#colophon .footer-wrapper .sponsors:last-child {
            margin-right: 0; } }
      @media screen and (min-width: 50em) {
        footer#colophon .footer-wrapper .sponsors {
          float: left;
          display: block;
          margin-right: 2.35765%;
          width: 23.23176%; }
          footer#colophon .footer-wrapper .sponsors:last-child {
            margin-right: 0; } }
    footer#colophon .footer-wrapper .notice {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 100%;
      text-align: center; }
      footer#colophon .footer-wrapper .notice:last-child {
        margin-right: 0; }

aside.widget {
  display: block; }
  aside.widget::after {
    clear: both;
    content: "";
    display: table; }

/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/
html {
  font-family: "Questrial", sans-serif;
  text-align: left; }
  html::after {
    clear: both;
    content: "";
    display: table; }
  html h1, html h2, html h3, html p {
    margin: 0; }
  html hr {
    border-bottom: 1px solid #DDD;
    border-left: none;
    border-right: none;
    border-top: none;
    margin: 1.5em 0; }
  html p {
    color: #333;
    line-height: 1.5em; }
  html a {
    color: #2c7ab6;
    text-decoration: none; }
  html .type {
    border-bottom: 1px solid;
    display: inline-block;
    font-family: "Questrial", sans-serif;
    font-size: 0.7em;
    font-weight: 800;
    margin-bottom: 2em;
    padding: 0.3em 0;
    text-align: left;
    text-transform: uppercase; }
  html h1 {
    font-family: "Questrial", sans-serif;
    font-size: 1.8em;
    font-weight: 700;
    margin-bottom: 0.5em; }
  html h2 {
    font-family: "Sanchez", serif;
    font-size: 1.2em;
    font-style: italic;
    font-weight: 400;
    line-height: 1.4em;
    margin-bottom: 1.1em; }
    @media screen and (min-width: 50em) {
      html h2 {
        font-size: 1.3em; } }
  html code {
    background: #F7F7F7;
    border-radius: 4.5px;
    border: 1px solid #E0E0E0;
    font-size: 0.7em;
    font-style: normal;
    padding: 0.1em 0.4em;
    white-space: nowrap; }
  html h3 {
    font-family: "Sanchez", serif;
    font-size: 1.4em;
    font-weight: 400;
    line-height: 1.3em;
    margin-bottom: 0.4em; }
  html p.date,
  html p.posted-on {
    color: rgba(51, 51, 51, 0.4);
    font-family: "Sanchez", serif;
    font-size: 0.9em;
    font-style: italic;
    margin-bottom: 0.3em; }
  html p {
    font-family: "Questrial", sans-serif;
    font-size: 1.05em;
    line-height: 1.5em;
    margin-bottom: 1.5em; }
  html a.read-more {
    display: inline-block;
    font-family: "Questrial", sans-serif;
    font-size: 0.8em;
    font-weight: 700;
    margin-left: 0.2em;
    position: relative;
    text-transform: uppercase; }
    html a.read-more span {
      font-family: "Questrial", sans-serif;
      font-size: 1.5em;
      font-style: normal;
      position: absolute;
      right: -12px;
      top: -1px; }
  html hr {
    width: 3em; }
  html p.author {
    font-family: "Questrial", sans-serif; }

p {
  margin-bottom: 1.5em; }

dfn, cite, em, i {
  font-style: italic; }

blockquote {
  margin: 0 1.5em; }

address {
  margin: 0 0 1.5em; }

pre {
  background: #eee;
  font-family: "Courier 10 Pitch", Courier, monospace;
  font-size: 15px;
  font-size: 0.9375rem;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em; }

code, kbd, tt, var {
  font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
  font-size: 15px;
  font-size: 0.9375rem; }

abbr, acronym {
  border-bottom: 1px dotted #666;
  cursor: help; }

mark, ins {
  background: #fff9c0;
  text-decoration: none; }

big {
  font-size: 125%; }

/*--------------------------------------------------------------
# Elements
--------------------------------------------------------------*/
html {
  box-sizing: border-box; }

*,
*:before,
*:after {
  /* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
  box-sizing: inherit; }

body {
  background: #fff;
  /* Fallback for when there is no custom background color defined. */ }

blockquote, q {
  quotes: "" ""; }
  blockquote:before, blockquote:after, q:before, q:after {
    content: ""; }

hr {
  background-color: #ccc;
  border: 0;
  height: 1px;
  margin-bottom: 1.5em; }

ul, ol {
  margin: 0 0 1.5em 3em; }
  ul li, ol li {
    padding-bottom: 0.5em; }

ul {
  list-style: disc; }

ol {
  list-style: decimal; }

li > ul,
li > ol {
  margin-bottom: 0;
  margin-left: 1.5em; }

dt {
  font-weight: bold; }

dd {
  margin: 0 1.5em 1.5em; }

img {
  height: auto;
  /* Make sure images are scaled correctly. */
  max-width: 100%;
  /* Adhere to container width. */ }

table {
  margin: 0 0 1.5em;
  width: 100%; }

.flash-alert {
  background-color: #fff6bf;
  color: #8c7800;
  display: block;
  margin-bottom: 0.75em;
  padding: 0.75em;
  text-align: center; }
  .flash-alert a {
    color: #594c00;
    text-decoration: underline; }
    .flash-alert a:focus, .flash-alert a:hover {
      color: black; }

.flash-error {
  background-color: #fbe3e4;
  color: #97161b;
  display: block;
  margin-bottom: 0.75em;
  padding: 0.75em;
  text-align: center; }
  .flash-error a {
    color: #6a0f13;
    text-decoration: underline; }
    .flash-error a:focus, .flash-error a:hover {
      color: #110203; }

.flash-notice {
  background-color: #e5edf8;
  color: #244e87;
  display: block;
  margin-bottom: 0.75em;
  padding: 0.75em;
  text-align: center; }
  .flash-notice a {
    color: #19375f;
    text-decoration: underline; }
    .flash-notice a:focus, .flash-notice a:hover {
      color: #04080e; }

.flash-success {
  background-color: #e6efc2;
  color: #56651a;
  display: block;
  margin-bottom: 0.75em;
  padding: 0.75em;
  text-align: center; }
  .flash-success a {
    color: #333c10;
    text-decoration: underline; }
    .flash-success a:focus, .flash-success a:hover {
      color: black; }

.accordion {
  background-color: #f6f6f6;
  border: 1px solid gainsboro;
  margin: 0 0 1.5em 0;
  padding: 0;
  display: inline-block; }
  @media screen and (min-width: 50em) {
    .accordion {
      float: left;
      display: block;
      margin-right: 3.57866%;
      width: 100%;
      margin-left: 0%; }
      .accordion:last-child {
        margin-right: 0; }
      .accordion article {
        margin-left: 0%;
        float: left;
        display: block;
        margin-right: 3.57866%;
        width: 100%; }
        .accordion article:last-child {
          margin-right: 0; } }
  @media screen and (max-width: 75em) {
    .accordion {
      float: left;
      display: block;
      margin-right: 3.57866%;
      width: 87.05267%;
      margin-left: 12.94733%; }
      .accordion:last-child {
        margin-right: 0; }
      .accordion article {
        margin-left: 0%;
        float: left;
        display: block;
        margin-right: 3.57866%;
        width: 100%; }
        .accordion article:last-child {
          margin-right: 0; } }
  @media screen and (max-width: 50em) {
    .accordion {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 82.94039%;
      margin-left: 8.5298%;
      margin-right: 0; }
      .accordion:last-child {
        margin-right: 0; }
      .accordion article {
        margin-left: 0%;
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 100%; }
        .accordion article:last-child {
          margin-right: 0; } }
  .accordion .entry-content {
    margin: 0;
    padding: 0; }
  .accordion article {
    padding: 0;
    border-bottom: 1px solid gainsboro;
    list-style: none; }
    .accordion article > header {
      color: #333;
      display: block;
      padding: 0.75em 1.618em;
      text-decoration: none; }
    .accordion article > .entry-content {
      padding: 0.75em 1.618em; }
    .accordion article .entry-title,
    .accordion article .edit-link {
      display: inline; }
    .accordion article:last-child {
      border: none; }
    .accordion article:focus, .accordion article:hover {
      background-color: #96c3e5;
      cursor: pointer; }
  .accordion .entry-content {
    max-width: 68em;
    margin-left: auto;
    margin-right: auto;
    display: none;
    background-color: white;
    /*li {*/
    /*background-color: $accordion-menu-sub-background;*/
    /*li {*/
    /*background-color: $accordion-menu-sub-background;*/
    /*&:first-child {*/
    /*border-top: $accordion-menu-border;*/
    /*box-shadow: inset 0 1px 1px $accordion-menu-sub-inset;*/
    /*}*/
    /*&:focus,*/
    /*&:hover {*/
    /*background-color: $accordion-menu-sub-hover;*/
    /*}*/
    /*}*/ }
    .accordion .entry-content::after {
      clear: both;
      content: "";
      display: table; }
    .accordion .entry-content .entry-text {
      border-bottom: 1px solid gainsboro; }
    .accordion .entry-content .entry-meta {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 48.82117%;
      margin-top: 1.5em; }
      .accordion .entry-content .entry-meta:last-child {
        margin-right: 0; }
    .accordion .entry-content .entry-thumbnail {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 48.82117%;
      margin-right: 0;
      margin-top: 1.5em; }
      .accordion .entry-content .entry-thumbnail:last-child {
        margin-right: 0; }
    .accordion .entry-content .entry-projectpartners {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 100%;
      margin-right: 0;
      margin-top: 1.5em; }
      .accordion .entry-content .entry-projectpartners:last-child {
        margin-right: 0; }
      .accordion .entry-content .entry-projectpartners ul {
        margin-left: 0; }
  .accordion .is-expanded {
    display: block;
    padding-bottom: 0; }

.expander .expander-trigger {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  border-bottom: 1px solid #DDD;
  color: #477DCA;
  cursor: pointer;
  display: block;
  font-size: 1em;
  margin-bottom: 1em;
  padding-bottom: 0.25em;
  text-decoration: none; }
  .expander .expander-trigger:before {
    font-size: 0.7em;
    content: "\25BC";
    margin-right: 0.5em; }

.expander .expander-content p {
  color: #333;
  line-height: 1.5em; }

.expander .expander-hidden:before {
  font-size: 0.7em;
  content: "\25BA"; }

.expander .expander-hidden + .expander-content {
  display: none; }

/*--------------------------------------------------------------
# Forms
--------------------------------------------------------------*/
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  border: 1px solid;
  border-color: #ccc #ccc #bbb;
  border-radius: 3px;
  background: #e6e6e6;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), inset 0 15px 17px rgba(255, 255, 255, 0.5), inset 0 -5px 12px rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.8);
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1;
  padding: .6em 1em .4em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); }
  button:hover,
  input[type="button"]:hover,
  input[type="reset"]:hover,
  input[type="submit"]:hover {
    border-color: #ccc #bbb #aaa;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), inset 0 15px 17px rgba(255, 255, 255, 0.8), inset 0 -5px 12px rgba(0, 0, 0, 0.02); }
  button:active, button:focus,
  input[type="button"]:active,
  input[type="button"]:focus,
  input[type="reset"]:active,
  input[type="reset"]:focus,
  input[type="submit"]:active,
  input[type="submit"]:focus {
    border-color: #aaa #bbb #bbb;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.5), inset 0 2px 5px rgba(0, 0, 0, 0.15); }

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
textarea {
  color: #666;
  border: 1px solid #ccc;
  border-radius: 3px; }
  input[type="text"]:focus,
  input[type="email"]:focus,
  input[type="url"]:focus,
  input[type="password"]:focus,
  input[type="search"]:focus,
  textarea:focus {
    color: #111; }

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"] {
  padding: 3px; }

textarea {
  padding-left: 3px;
  width: 100%; }

/*--------------------------------------------------------------
# Navigation
--------------------------------------------------------------*/
/*--------------------------------------------------------------
## Links
--------------------------------------------------------------*/
a {
  color: #2c7ab6; }
  a:visited {
    color: #2c7ab6; }
  a:hover, a:focus, a:active {
    color: #6cabdc; }
  a:focus {
    outline: thin dotted; }
  a:hover, a:active {
    outline: 0; }

/*--------------------------------------------------------------
## Menus
--------------------------------------------------------------*/
/*@import "menus";*/
header.navigation {
  margin-bottom: 1em;
  background-color: white;
  border-bottom: 1px solid #e6e6e6;
  min-height: 50px;
  width: 100%;
  z-index: 999; }
  header.navigation .navigation-wrapper {
    max-width: 68em;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    z-index: 9999; }
    header.navigation .navigation-wrapper::after {
      clear: both;
      content: "";
      display: table; }
    header.navigation .navigation-wrapper::after {
      clear: both;
      content: "";
      display: table; }
  header.navigation .logo {
    float: left;
    max-height: 50px;
    padding-left: 1em;
    padding-right: 2em; }
    header.navigation .logo img {
      max-height: 50px;
      padding: 0.8em 0; }
  header.navigation .navigation-menu-button {
    color: #404040;
    display: block;
    float: right;
    line-height: 50px;
    margin: 0;
    padding-right: 1em;
    text-decoration: none;
    text-transform: uppercase; }
    @media screen and (min-width: 50em) {
      header.navigation .navigation-menu-button {
        display: none; } }
    header.navigation .navigation-menu-button:focus, header.navigation .navigation-menu-button:hover {
      color: #2c7ab6; }
  header.navigation .navigation-role {
    float: none;
    min-height: 50px;
    z-index: 9999999; }
    @media screen and (max-width: 75em) {
      header.navigation .navigation-role {
        margin-left: 8.5298%; } }
    @media screen and (min-width: 50em) {
      header.navigation .navigation-role {
        float: left; } }
  header.navigation ul.navigation-menu {
    clear: both;
    display: none;
    margin: 0 auto;
    overflow: visible;
    padding: 0;
    width: 100%;
    z-index: 9999; }
    header.navigation ul.navigation-menu.show {
      display: block; }
    @media screen and (min-width: 50em) {
      header.navigation ul.navigation-menu {
        display: inline;
        margin: 0;
        padding: 0; } }
  header.navigation ul li.menu-item {
    background: white;
    display: block;
    line-height: 50px;
    overflow: hidden;
    padding-right: 0.8em;
    text-align: right;
    width: 100%;
    z-index: 9999; }
    @media screen and (min-width: 50em) {
      header.navigation ul li.menu-item {
        background: transparent;
        display: inline;
        line-height: 50px;
        text-decoration: none;
        width: auto; } }
    header.navigation ul li.menu-item a {
      color: #404040;
      display: inline-block;
      text-decoration: none; }
      @media screen and (min-width: 50em) {
        header.navigation ul li.menu-item a {
          padding-right: 1em; } }
      header.navigation ul li.menu-item a:focus, header.navigation ul li.menu-item a:hover {
        color: #2c7ab6; }
  header.navigation .current-menu-item a {
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
    padding-bottom: 3px; }
  header.navigation li.menu-item-has-children.menu-item {
    padding-right: 0; }
    @media screen and (min-width: 50em) {
      header.navigation li.menu-item-has-children.menu-item {
        padding-right: 1em; } }
    header.navigation li.menu-item-has-children.menu-item > ul > li:first-child a {
      padding-top: 1em; }
    header.navigation li.menu-item-has-children.menu-item a {
      margin-right: 1em; }
    header.navigation li.menu-item-has-children.menu-item > a {
      padding-right: 0.6em; }
    header.navigation li.menu-item-has-children.menu-item > a:after {
      position: absolute;
      top: auto;
      right: -0.4em;
      bottom: auto;
      left: auto;
      content: '\25BE';
      color: #404040; }
  header.navigation li.menu-item-has-children {
    overflow: visible;
    padding-right: 0; }
    header.navigation li.menu-item-has-children a {
      padding-right: 0.8em; }
    header.navigation li.menu-item-has-children > a {
      padding-right: 1.6em;
      position: relative; }
      @media screen and (min-width: 50em) {
        header.navigation li.menu-item-has-children > a {
          margin-right: 1em; } }
      header.navigation li.menu-item-has-children > a:after {
        content: '›';
        font-size: 1.2em;
        position: absolute;
        right: 0.5em; }
    header.navigation li.menu-item-has-children:focus > .sub-menu,
    header.navigation li.menu-item-has-children:hover > .sub-menu {
      display: block; }
    @media screen and (min-width: 50em) {
      header.navigation li.menu-item-has-children {
        padding-right: 0.8em;
        position: relative; } }
  header.navigation ul.sub-menu {
    display: none;
    padding-left: 0;
    margin: 0; }
    @media screen and (min-width: 50em) {
      header.navigation ul.sub-menu {
        left: -1em;
        position: absolute;
        top: 1.5em;
        border: 1px solid #e6e6e6;
        background-color: white; } }
    @media screen and (min-width: 50em) {
      header.navigation ul.sub-menu .sub-menu {
        left: 11.8em;
        top: 0;
        background-color: #e6e6e6;
        background-color: white; } }
    header.navigation ul.sub-menu li {
      display: block;
      padding-right: 0; }
      @media screen and (min-width: 50em) {
        header.navigation ul.sub-menu li {
          line-height: 25px;
          margin: 20px 0; }
          header.navigation ul.sub-menu li:first-child > a {
            border-top-left-radius: 3px;
            border-top-right-radius: 3px; }
          header.navigation ul.sub-menu li:last-child > a {
            border-bottom-left-radius: 3px;
            border-bottom-right-radius: 3px;
            padding-bottom: 0.7em; } }
      header.navigation ul.sub-menu li a {
        background-color: #f7f7f7;
        display: inline-block;
        text-align: right;
        width: 100%;
        padding: 10px 0; }
        @media screen and (min-width: 50em) {
          header.navigation ul.sub-menu li a {
            background-color: white;
            padding-left: 1em;
            text-align: left;
            width: 12em; } }
  header.navigation .navigation-tools {
    background: #505050;
    clear: both;
    display: block;
    height: 50px; }
    @media screen and (min-width: 50em) {
      header.navigation .navigation-tools {
        background: transparent;
        clear: none;
        float: right; } }
  header.navigation .search-bar {
    float: left;
    padding: 0.85em 0.85em 0.7em 0.6em;
    width: 60%; }
    header.navigation .search-bar form {
      position: relative; }
      header.navigation .search-bar form input[type=search] {
        background: white;
        border-radius: 6px;
        border: 1px solid #f2f2f2;
        color: #404040;
        font-size: 0.9em;
        font-style: italic;
        margin: 0;
        padding: 0.5em 0.8em;
        width: 100%; }
        @media screen and (min-width: 50em) {
          header.navigation .search-bar form input[type=search] {
            width: 100%; } }
      header.navigation .search-bar form button[type=submit] {
        background: white;
        border: none;
        bottom: 0.3em;
        left: auto;
        outline: none;
        padding: 0 9px;
        position: absolute;
        right: 0.3em;
        top: 0.3em; }
        header.navigation .search-bar form button[type=submit] img {
          height: 12px;
          opacity: 0.7;
          padding: 1px; }
    @media screen and (min-width: 50em) {
      header.navigation .search-bar {
        display: inline-block;
        position: relative;
        width: 16em; }
        header.navigation .search-bar input {
          display: block; } }

/*--------------------------------------------------------------
# Accessibility
--------------------------------------------------------------*/
/* Text meant only for screen readers. */
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden; }
  .screen-reader-text:focus {
    background-color: #f1f1f1;
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    clip: auto !important;
    color: #21759b;
    display: block;
    font-size: 14px;
    font-size: 0.875rem;
    font-weight: bold;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
    /* Above WP toolbar. */ }

/*--------------------------------------------------------------
# Alignments
--------------------------------------------------------------*/
.alignleft {
  display: inline;
  float: left;
  margin-right: 1.5em; }

.alignright {
  display: inline;
  float: right;
  margin-left: 1.5em; }

.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto; }

/*--------------------------------------------------------------
# Clearings
--------------------------------------------------------------*/
.clear:before::after,
.clear:after::after,
.entry-content:before::after,
.entry-content:after::after,
.comment-content:before::after,
.comment-content:after::after,
.site-header:before::after,
.site-header:after::after,
.site-content:before::after,
.site-content:after::after,
.site-footer:before::after,
.site-footer:after::after {
  clear: both;
  content: "";
  display: table; }

.clear:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after {
  clear: both; }

/*--------------------------------------------------------------
# Widgets
--------------------------------------------------------------*/
.widget {
  margin: 0 0 1.5em;
  /* Make sure select elements fit in widgets. */ }
  .widget select {
    max-width: 100%; }

/* Search widget. */
.widget_search .search-submit {
  display: none; }

/*--------------------------------------------------------------
# Content
--------------------------------------------------------------*/
/*--------------------------------------------------------------
## Posts and pages
--------------------------------------------------------------*/
.sticky {
  display: block; }

.byline,
.updated:not(.published) {
  display: none; }

.single .byline,
.group-blog .byline {
  display: inline; }

.entry-thumbnail,
.entry-text,
.page-content,
.entry-content,
.entry-summary {
  margin: 0.0em 0 0; }

.page-links {
  clear: both;
  margin: 0 0 1.5em; }

/*--------------------------------------------------------------
## Asides
--------------------------------------------------------------*/
.blog .format-aside .entry-title,
.archive .format-aside .entry-title {
  display: none; }

/*--------------------------------------------------------------
## Comments
--------------------------------------------------------------*/
.comment-content a {
  word-wrap: break-word; }

.bypostauthor {
  display: block; }

/*--------------------------------------------------------------
## Comments
--------------------------------------------------------------*/
article {
  display: block;
  padding: 3.0em 0;
  border-bottom: 1px solid #ccc; }
  article::after {
    clear: both;
    content: "";
    display: table; }
  @media screen and (min-width: 50em) {
    article {
      float: left;
      display: block;
      margin-right: 3.57866%;
      width: 100%;
      margin-right: 0; }
      article:last-child {
        margin-right: 0; } }
  @media screen and (max-width: 75em) {
    article {
      float: left;
      display: block;
      margin-right: 3.57866%;
      width: 87.05267%;
      margin-left: 12.94733%;
      margin-right: 0; }
      article:last-child {
        margin-right: 0; } }
  @media screen and (max-width: 50em) {
    article {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 82.94039%;
      margin-left: 8.5298%; }
      article:last-child {
        margin-right: 0; } }
  article .entry-thumbnail {
    max-height: 250px;
    overflow: hidden; }
    article .entry-thumbnail img {
      width: 100%; }
    @media screen and (min-width: 50em) {
      article .entry-thumbnail {
        float: left;
        display: block;
        margin-right: 3.57866%;
        width: 35.26334%; }
        article .entry-thumbnail:last-child {
          margin-right: 0; } }
    @media screen and (max-width: 50em) {
      article .entry-thumbnail {
        margin-bottom: 1.5em; } }

.full-width article {
  display: block;
  padding: 3.0em 0;
  border-bottom: 1px solid #ccc; }
  .full-width article::after {
    clear: both;
    content: "";
    display: table; }
  @media screen and (min-width: 50em) {
    .full-width article {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 100%;
      margin-right: 0; }
      .full-width article:last-child {
        margin-right: 0; } }
  @media screen and (max-width: 75em) {
    .full-width article {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 82.94039%;
      margin-left: 8.5298%;
      margin-right: 0; }
      .full-width article:last-child {
        margin-right: 0; } }
  @media screen and (max-width: 50em) {
    .full-width article {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 82.94039%;
      margin-left: 8.5298%; }
      .full-width article:last-child {
        margin-right: 0; } }
  .full-width article .entry-thumbnail {
    max-height: 250px;
    overflow: hidden; }
    .full-width article .entry-thumbnail img {
      width: 100%; }
    @media screen and (min-width: 50em) {
      .full-width article .entry-thumbnail {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 31.76157%; }
        .full-width article .entry-thumbnail:last-child {
          margin-right: 0; } }
    @media screen and (max-width: 50em) {
      .full-width article .entry-thumbnail {
        margin-bottom: 1.5em; } }

@media screen and (min-width: 50em) {
  header.page-header {
    float: left;
    display: block;
    margin-right: 3.57866%;
    width: 100%;
    margin-right: 0; }
    header.page-header:last-child {
      margin-right: 0; } }

@media screen and (max-width: 75em) {
  header.page-header {
    float: left;
    display: block;
    margin-right: 3.57866%;
    width: 87.05267%;
    margin-left: 12.94733%;
    margin-right: 0; }
    header.page-header:last-child {
      margin-right: 0; } }

@media screen and (max-width: 50em) {
  header.page-header {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 82.94039%;
    margin-left: 8.5298%; }
    header.page-header:last-child {
      margin-right: 0; } }

@media screen and (min-width: 50em) {
  .full-width header.page-header {
    float: left;
    display: block;
    margin-right: 3.57866%;
    width: 100%;
    margin-right: 0; }
    .full-width header.page-header:last-child {
      margin-right: 0; } }

@media screen and (max-width: 75em) {
  .full-width header.page-header {
    float: left;
    display: block;
    margin-right: 3.57866%;
    width: 87.05267%;
    margin-left: 12.94733%;
    margin-right: 0; }
    .full-width header.page-header:last-child {
      margin-right: 0; } }

@media screen and (max-width: 50em) {
  .full-width header.page-header {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 82.94039%;
    margin-left: 8.5298%; }
    .full-width header.page-header:last-child {
      margin-right: 0; } }

nav.navigation.posts-navigation {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 82.94039%;
  margin-left: 8.5298%;
  margin-top: 2em;
  margin-bottom: 2em; }
  nav.navigation.posts-navigation:last-child {
    margin-right: 0; }

/*--------------------------------------------------------------
# Infinite scroll
--------------------------------------------------------------*/
/* Globally hidden elements when Infinite Scroll is supported and in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
  /* Theme Footer (when set to scrolling) */
  display: none; }

/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */
.infinity-end.neverending .site-footer {
  display: block; }

/*--------------------------------------------------------------
# Media
--------------------------------------------------------------*/
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
  border: none;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0; }

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
  max-width: 100%; }

/*--------------------------------------------------------------
## Captions
--------------------------------------------------------------*/
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%; }
  .wp-caption img[class*="wp-image-"] {
    display: block;
    margin-left: auto;
    margin-right: auto; }
  .wp-caption .wp-caption-text {
    margin: 0.8075em 0; }

.wp-caption-text {
  text-align: center; }

/*--------------------------------------------------------------
## Galleries
--------------------------------------------------------------*/
.gallery {
  margin-bottom: 1.5em; }

.gallery-item {
  display: inline-block;
  text-align: center;
  vertical-align: top;
  width: 100%; }
  .gallery-columns-2 .gallery-item {
    max-width: 50%; }
  .gallery-columns-3 .gallery-item {
    max-width: 33.33%; }
  .gallery-columns-4 .gallery-item {
    max-width: 25%; }
  .gallery-columns-5 .gallery-item {
    max-width: 20%; }
  .gallery-columns-6 .gallery-item {
    max-width: 16.66%; }
  .gallery-columns-7 .gallery-item {
    max-width: 14.28%; }
  .gallery-columns-8 .gallery-item {
    max-width: 12.5%; }
  .gallery-columns-9 .gallery-item {
    max-width: 11.11%; }

.gallery-caption {
  display: block; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsIi4uL3N0ZGluIiwibmVhdC9ncmlkL19ib3gtc2l6aW5nLnNjc3MiLCJfbm9ybWFsaXplLnNjc3MiLCJsYXlvdXQvX2xheW91dC5zY3NzIiwibGF5b3V0L19zaXRlLnNjc3MiLCJuZWF0L2dyaWQvX291dGVyLWNvbnRhaW5lci5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsIm5lYXQvZ3JpZC9fbWVkaWEuc2NzcyIsIm5lYXQvZ3JpZC9fc3Bhbi1jb2x1bW5zLnNjc3MiLCJuZWF0L2dyaWQvX3ByaXZhdGUuc2NzcyIsIm5lYXQvZ3JpZC9fc2hpZnQuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCJuZWF0L2dyaWQvX2ZpbGwtcGFyZW50LnNjc3MiLCJ2YXJpYWJsZXMtc2l0ZS9fY29sb3JzLnNjc3MiLCJuZWF0L2dyaWQvX29tZWdhLnNjc3MiLCJuZWF0L2dyaWQvX3Jvdy5zY3NzIiwidHlwb2dyYXBoeS9fdHlwb2dyYXBoeS5zY3NzIiwidHlwb2dyYXBoeS9fY29weS5zY3NzIiwidmFyaWFibGVzLXNpdGUvX3R5cG9ncmFwaHkuc2NzcyIsIm1peGlucy9fbWl4aW5zLW1hc3Rlci5zY3NzIiwiZWxlbWVudHMvX2VsZW1lbnRzLnNjc3MiLCJlbGVtZW50cy9fbGlzdHMuc2NzcyIsImVsZW1lbnRzL190YWJsZXMuc2NzcyIsImVsZW1lbnRzL19mbGFzaC5zY3NzIiwiZWxlbWVudHMvX2FjY29yZGlvbi5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsImVsZW1lbnRzL19leHBhbmRlci5zY3NzIiwiZm9ybXMvX2J1dHRvbnMuc2NzcyIsImZvcm1zL19maWVsZHMuc2NzcyIsIm5hdmlnYXRpb24vX25hdmlnYXRpb24uc2NzcyIsIm5hdmlnYXRpb24vX2xpbmtzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIm1vZHVsZXMvX2FjY2Vzc2liaWxpdHkuc2NzcyIsIm1vZHVsZXMvX2FsaWdubWVudHMuc2NzcyIsIm1vZHVsZXMvX2NsZWFyaW5ncy5zY3NzIiwic2l0ZS9zZWNvbmRhcnkvX3dpZGdldHMuc2NzcyIsInNpdGUvX3NpdGUuc2NzcyIsInNpdGUvcHJpbWFyeS9fcG9zdHMtYW5kLXBhZ2VzLnNjc3MiLCJzaXRlL3ByaW1hcnkvX2FzaWRlcy5zY3NzIiwic2l0ZS9wcmltYXJ5L19jb21tZW50cy5zY3NzIiwic2l0ZS9wcmltYXJ5L19uZXdzLnNjc3MiLCJtb2R1bGVzL19pbmZpbml0ZS1zY3JvbGwuc2NzcyIsIm1lZGlhL19tZWRpYS5zY3NzIiwibWVkaWEvX2NhcHRpb25zLnNjc3MiLCJtZWRpYS9fZ2FsbGVyaWVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW9CRTtBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dFQXlCZ0U7QUFJaEU7O2dFQUVnRTtBQUdoRTs7Z0VBRWdFO0FDdkQ5RDtFQUNFLHVCQUF1QixFQUN4Qjs7QUFFRDtFQUlJLG9CQUFvQixFQUNyQjs7QURrREw7O2dFQUVnRTtBQUVoRTs7O2dFQUdnRTtBRXJFaEU7RUFDQyx3QkFBd0I7RUFDeEIsK0JBQStCO0VBQy9CLDJCQUErQixFQUMvQjs7QUFFRDtFQUNDLFVBQVUsRUFDVjs7QUFFRDs7Ozs7Ozs7Ozs7O0VBWUMsZUFBZSxFQUNmOztBQUVEOzs7O0VBSUMsc0JBQXNCO0VBQ3RCLHlCQUF5QixFQUN6Qjs7QUFFRDtFQUNDLGNBQWM7RUFDZCxVQUFVLEVBQ1Y7O0FIZ0VEOztFRzVEQyxjQUFjLEVBQ2Q7O0FBRUQ7RUFDQyw4QkFBOEIsRUFDOUI7O0FBRUQ7O0VBRUMsV0FBVyxFQUNYOztBQUVEO0VB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OUMsZ0JBQWdCO0VBQ2hCLG1CQUFtQixFQUN0QjtFQUxEO0lsQ2hCUSxnQkFBK0IsRUFDaEM7O0FUZ0NQOztnRUFFZ0U7QTRDNUhoRSw0RUFBNEU7QUFDNUU7O0VBQzRDLDBDQUEwQztFQUNyRixjQUFjLEVBQ2Q7O0FBRUQseUhBQXlIO0FBQ3pIO0VBQ0MsZUFBZSxFQUNmOztBNUNzSEQ7O2dFQUVnRTtBNkNqSWhFOzs7RUFHQyxhQUFhO0VBQ2IsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxXQUFXLEVBQ1g7O0FBRUQsd0RBQXdEO0FBQ3hEOzs7RUFHQyxnQkFBZ0IsRUFDaEI7O0FBRUQ7O2dFQUVnRTtBQ2xCaEU7RUFDQyxxQkFBcUI7RUFDckIsZ0JBQWdCLEVBU2hCO0VBWEQ7SXhCUUMsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixtQkFBbUIsRXdCSmxCO0VBTkY7SUFTRSxtQkFBbUIsRUFDbkI7O0FBR0Y7RUFDQyxtQkFBbUIsRUFDbkI7O0FETUQ7O2dFQUVnRTtBRXZCaEU7RUFDQyxxQkFBcUIsRUFDckI7O0FBRUQ7RUFDQyxzQkFBc0I7RUFDdEIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixZQUFZLEVBaUNaO0VBckNEO0lBT0UsZUFBZSxFQUNmO0VBUkY7SUFXRSxrQkFBa0IsRUFDbEI7RUFaRjtJQWVFLGVBQWUsRUFDZjtFQWhCRjtJQW1CRSxlQUFlLEVBQ2Y7RUFwQkY7SUF1QkUsa0JBQWtCLEVBQ2xCO0VBeEJGO0lBMkJFLGtCQUFrQixFQUNsQjtFQTVCRjtJQStCRSxpQkFBaUIsRUFDakI7RUFoQ0Y7SUFtQ0Usa0JBQWtCLEVBQ2xCOztBQUdGO0VBQ0MsZUFBZSxFQUNmIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qIVxuVGhlbWUgTmFtZTogZGFuZXR2MlxuVGhlbWUgVVJJOiBodHRwOi8vdW5kZXJzY29yZXMubWUvXG5BdXRob3I6IFNpbW9uIFZvbHBlcnRcbkF1dGhvciBVUkk6IGh0dHA6Ly9zdm9scGVydC5ldVxuRGVzY3JpcHRpb246IE5leHQgR2VuIERhTmV0IFRoZW1lXG5WZXJzaW9uOiAxLjAuMFxuTGljZW5zZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjIgb3IgbGF0ZXJcbkxpY2Vuc2UgVVJJOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5odG1sXG5UZXh0IERvbWFpbjogZGFuZXR2MlxuVGFnczpcblxuVGhpcyB0aGVtZSwgbGlrZSBXb3JkUHJlc3MsIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuXG5Vc2UgaXQgdG8gbWFrZSBzb21ldGhpbmcgY29vbCwgaGF2ZSBmdW4sIGFuZCBzaGFyZSB3aGF0IHlvdSd2ZSBsZWFybmVkIHdpdGggb3RoZXJzLlxuXG5kYW5ldHYyIGlzIGJhc2VkIG9uIFVuZGVyc2NvcmVzIGh0dHA6Ly91bmRlcnNjb3Jlcy5tZS8sIChDKSAyMDEyLTIwMTUgQXV0b21hdHRpYywgSW5jLlxuVW5kZXJzY29yZXMgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR1BMIHYyIG9yIGxhdGVyLlxuXG5Ob3JtYWxpemluZyBzdHlsZXMgaGF2ZSBiZWVuIGhlbHBlZCBhbG9uZyB0aGFua3MgdG8gdGhlIGZpbmUgd29yayBvZlxuTmljb2xhcyBHYWxsYWdoZXIgYW5kIEpvbmF0aGFuIE5lYWwgaHR0cDovL25lY29sYXMuZ2l0aHViLmNvbS9ub3JtYWxpemUuY3NzL1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbj4+PiBUQUJMRSBPRiBDT05URU5UUzpcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQm91cmJvblxuIyBOZWF0XG4jIE5vcm1hbGl6ZVxuIyBUeXBvZ3JhcGh5XG4jIEVsZW1lbnRzXG4jIEZvcm1zXG4jIExheW91dHNcbiMgTmF2aWdhdGlvblxuXHQjIyBMaW5rc1xuXHQjIyBNZW51c1xuIyBBY2Nlc3NpYmlsaXR5XG4jIEFsaWdubWVudHNcbiMgQ2xlYXJpbmdzXG4jIFdpZGdldHNcbiMgQ29udGVudFxuICAgICMjIFBvc3RzIGFuZCBwYWdlc1xuXHQjIyBBc2lkZXNcblx0IyMgQ29tbWVudHNcbiMgSW5maW5pdGUgc2Nyb2xsXG4jIE1lZGlhXG5cdCMjIENhcHRpb25zXG5cdCMjIEdhbGxlcmllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBCb3VyYm9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE5lYXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbiosICo6OmFmdGVyLCAqOjpiZWZvcmUge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQml0dGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4jIE5vcm1hbGl6ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgfVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuaW1nIHtcbiAgYm9yZGVyOiAwOyB9XG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDsgfVxuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7IH1cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgfVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBMYXlvdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFNpdGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmRpdiNjb250ZW50IHtcbiAgbWF4LXdpZHRoOiA2OGVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIGRpdiNjb250ZW50OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MGVtKSB7XG4gICAgZGl2I2NvbnRlbnQgI3ByaW1hcnkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgZGl2I2NvbnRlbnQgI3ByaW1hcnk6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICBkaXYjY29udGVudCAjcHJpbWFyeSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICAgIHdpZHRoOiA2NS44ODA3OCU7IH1cbiAgICAgIGRpdiNjb250ZW50ICNwcmltYXJ5Omxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBkaXYjY29udGVudCAjcHJpbWFyeS5mdWxsLXdpZHRoIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgZGl2I2NvbnRlbnQgI3ByaW1hcnkuZnVsbC13aWR0aDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MGVtKSB7XG4gICAgZGl2I2NvbnRlbnQgI3NlY29uZGFyeSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICAgIHdpZHRoOiA4Mi45NDAzOSU7XG4gICAgICBtYXJnaW4tbGVmdDogOC41Mjk4JTsgfVxuICAgICAgZGl2I2NvbnRlbnQgI3NlY29uZGFyeTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIGRpdiNjb250ZW50ICNzZWNvbmRhcnkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICB3aWR0aDogMzEuNzYxNTclOyB9XG4gICAgICBkaXYjY29udGVudCAjc2Vjb25kYXJ5Omxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBkaXYjY29udGVudCBoZWFkZXIucGFnZS1oZWFkZXIge1xuICAgIG1hcmdpbi10b3A6IDNlbTsgfVxuXG5oZWFkZXIjbWFzdGhlYWQge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4vc3RhdGljL2hlYWRlci5wbmdcIik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4vc3RhdGljL2hlYWRlci5wbmdcIik7IH1cbiAgaGVhZGVyI21hc3RoZWFkOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICBoZWFkZXIjbWFzdGhlYWQgLnNpdGUtYnJhbmRpbmcge1xuICAgIG1heC13aWR0aDogNjhlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgLypAaW5jbHVkZSBkaXNwbGF5KCdmbGV4Jyk7Ki9cbiAgICAvKkBpbmNsdWRlIGFsaWduLWl0ZW1zKCdjZW50ZXInKTsqL1xuICAgIC8qQGluY2x1ZGUganVzdGlmeS1jb250ZW50KCdmbGV4LXN0YXJ0Jyk7Ki9cbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAgIC1tb3otYm94LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LWFsaWduOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC1tb3otYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAtbXMtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAtby1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiBib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xuICAgIC1tb3otYm94LXBhY2s6IHN0YXJ0O1xuICAgIGJveC1wYWNrOiBzdGFydDtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAtbW96LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAtbXMtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIC1vLWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAgaGVpZ2h0OiAyNTBweDsgfVxuICAgIGhlYWRlciNtYXN0aGVhZCAuc2l0ZS1icmFuZGluZzo6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICBoZWFkZXIjbWFzdGhlYWQgLnNpdGUtYnJhbmRpbmcgLnNpdGUtbG9nbyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICAgIHdpZHRoOiA2NS44ODA3OCU7XG4gICAgICAvKkBpbmNsdWRlIGZsZXgoMCAwIDUwMHB4KTsqLyB9XG4gICAgICBoZWFkZXIjbWFzdGhlYWQgLnNpdGUtYnJhbmRpbmcgLnNpdGUtbG9nbzpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MGVtKSB7XG4gICAgICAgIGhlYWRlciNtYXN0aGVhZCAuc2l0ZS1icmFuZGluZyAuc2l0ZS1sb2dvIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbmZvb3RlciNjb2xvcGhvbiB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi9zdGF0aWMvZm9vdGVyLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi9zdGF0aWMvZm9vdGVyLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgYm90dG9tO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOyB9XG4gIGZvb3RlciNjb2xvcGhvbjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgZm9vdGVyI2NvbG9waG9uIC5mb290ZXItd3JhcHBlciB7XG4gICAgLypAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkgeyovXG4gICAgLypAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOCk7Ki9cbiAgICAvKn0qL1xuICAgIC8qQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkgeyovXG4gICAgLypAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOCk7Ki9cbiAgICAvKn0qL1xuICAgIC8qQGluY2x1ZGUgbWVkaWEoJG1vYmlsZSkgeyovXG4gICAgLypAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpOyovXG4gICAgLyp9Ki9cbiAgICBtYXgtd2lkdGg6IDY4ZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBmb290ZXIjY29sb3Bob24gLmZvb3Rlci13cmFwcGVyIGgxIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNWVtOyB9XG4gICAgZm9vdGVyI2NvbG9waG9uIC5mb290ZXItd3JhcHBlcjo6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICBmb290ZXIjY29sb3Bob24gLmZvb3Rlci13cmFwcGVyOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgICAgZm9vdGVyI2NvbG9waG9uIC5mb290ZXItd3JhcHBlciAubGVnYWwge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICAgIHdpZHRoOiAzMS43NjE1NyU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4LjUyOTglOyB9XG4gICAgICAgIGZvb3RlciNjb2xvcGhvbiAuZm9vdGVyLXdyYXBwZXIgLmxlZ2FsOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzVlbSkge1xuICAgICAgZm9vdGVyI2NvbG9waG9uIC5mb290ZXItd3JhcHBlciAubGVnYWwge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICAgIHdpZHRoOiAzMS43NjE1NyU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4LjUyOTglOyB9XG4gICAgICAgIGZvb3RlciNjb2xvcGhvbiAuZm9vdGVyLXdyYXBwZXIgLmxlZ2FsOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTBlbSkge1xuICAgICAgZm9vdGVyI2NvbG9waG9uIC5mb290ZXItd3JhcHBlciAubGVnYWwge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICAgICAgd2lkdGg6IDgyLjk0MDM5JTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDguNTI5OCU7IH1cbiAgICAgICAgZm9vdGVyI2NvbG9waG9uIC5mb290ZXItd3JhcHBlciAubGVnYWw6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgICBmb290ZXIjY29sb3Bob24gLmZvb3Rlci13cmFwcGVyIC5zcG9uc29ycyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUwZW0pIHtcbiAgICAgICAgZm9vdGVyI2NvbG9waG9uIC5mb290ZXItd3JhcHBlciAuc3BvbnNvcnMge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgICAgIHdpZHRoOiA4Mi45NDAzOSU7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDguNTI5OCU7IH1cbiAgICAgICAgICBmb290ZXIjY29sb3Bob24gLmZvb3Rlci13cmFwcGVyIC5zcG9uc29yczpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgICAgIGZvb3RlciNjb2xvcGhvbiAuZm9vdGVyLXdyYXBwZXIgLnNwb25zb3JzIHtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgICAgIHdpZHRoOiAyMy4yMzE3NiU7IH1cbiAgICAgICAgICBmb290ZXIjY29sb3Bob24gLmZvb3Rlci13cmFwcGVyIC5zcG9uc29yczpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gICAgZm9vdGVyI2NvbG9waG9uIC5mb290ZXItd3JhcHBlciAubm90aWNlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIGZvb3RlciNjb2xvcGhvbiAuZm9vdGVyLXdyYXBwZXIgLm5vdGljZTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbmFzaWRlLndpZGdldCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIGFzaWRlLndpZGdldDo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBUeXBvZ3JhcGh5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IFwiUXVlc3RyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgaHRtbDo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgaHRtbCBoMSwgaHRtbCBoMiwgaHRtbCBoMywgaHRtbCBwIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgaHRtbCBociB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEREQ7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgbWFyZ2luOiAxLjVlbSAwOyB9XG4gIGh0bWwgcCB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtOyB9XG4gIGh0bWwgYSB7XG4gICAgY29sb3I6ICMyYzdhYjY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIGh0bWwgLnR5cGUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6IFwiUXVlc3RyaWFsXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAwLjdlbTtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICBodG1sIGgxIHtcbiAgICBmb250LWZhbWlseTogXCJRdWVzdHJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEuOGVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IH1cbiAgaHRtbCBoMiB7XG4gICAgZm9udC1mYW1pbHk6IFwiU2FuY2hlelwiLCBzZXJpZjtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjFlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgIGh0bWwgaDIge1xuICAgICAgICBmb250LXNpemU6IDEuM2VtOyB9IH1cbiAgaHRtbCBjb2RlIHtcbiAgICBiYWNrZ3JvdW5kOiAjRjdGN0Y3O1xuICAgIGJvcmRlci1yYWRpdXM6IDQuNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFMEUwRTA7XG4gICAgZm9udC1zaXplOiAwLjdlbTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgcGFkZGluZzogMC4xZW0gMC40ZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICBodG1sIGgzIHtcbiAgICBmb250LWZhbWlseTogXCJTYW5jaGV6XCIsIHNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC40ZW07IH1cbiAgaHRtbCBwLmRhdGUsXG4gIGh0bWwgcC5wb3N0ZWQtb24ge1xuICAgIGNvbG9yOiByZ2JhKDUxLCA1MSwgNTEsIDAuNCk7XG4gICAgZm9udC1mYW1pbHk6IFwiU2FuY2hlelwiLCBzZXJpZjtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBtYXJnaW4tYm90dG9tOiAwLjNlbTsgfVxuICBodG1sIHAge1xuICAgIGZvbnQtZmFtaWx5OiBcIlF1ZXN0cmlhbFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMS4wNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTsgfVxuICBodG1sIGEucmVhZC1tb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6IFwiUXVlc3RyaWFsXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIGh0bWwgYS5yZWFkLW1vcmUgc3BhbiB7XG4gICAgICBmb250LWZhbWlseTogXCJRdWVzdHJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogLTEycHg7XG4gICAgICB0b3A6IC0xcHg7IH1cbiAgaHRtbCBociB7XG4gICAgd2lkdGg6IDNlbTsgfVxuICBodG1sIHAuYXV0aG9yIHtcbiAgICBmb250LWZhbWlseTogXCJRdWVzdHJpYWxcIiwgc2Fucy1zZXJpZjsgfVxuXG5wIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41ZW07IH1cblxuZGZuLCBjaXRlLCBlbSwgaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDEuNWVtOyB9XG5cbmFkZHJlc3Mge1xuICBtYXJnaW46IDAgMCAxLjVlbTsgfVxuXG5wcmUge1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuICBmb250LWZhbWlseTogXCJDb3VyaWVyIDEwIFBpdGNoXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbWFyZ2luLWJvdHRvbTogMS42ZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6IDEuNmVtOyB9XG5cbmNvZGUsIGtiZCwgdHQsIHZhciB7XG4gIGZvbnQtZmFtaWx5OiBNb25hY28sIENvbnNvbGFzLCBcIkFuZGFsZSBNb25vXCIsIFwiRGVqYVZ1IFNhbnMgTW9ub1wiLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07IH1cblxuYWJiciwgYWNyb255bSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzY2NjtcbiAgY3Vyc29yOiBoZWxwOyB9XG5cbm1hcmssIGlucyB7XG4gIGJhY2tncm91bmQ6ICNmZmY5YzA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5iaWcge1xuICBmb250LXNpemU6IDEyNSU7IH1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIC8qIEluaGVyaXQgYm94LXNpemluZyB0byBtYWtlIGl0IGVhc2llciB0byBjaGFuZ2UgdGhlIHByb3BlcnR5IGZvciBjb21wb25lbnRzIHRoYXQgbGV2ZXJhZ2Ugb3RoZXIgYmVoYXZpb3I7IHNlZSBodHRwOi8vY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlLyAqL1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAvKiBGYWxsYmFjayBmb3Igd2hlbiB0aGVyZSBpcyBubyBjdXN0b20gYmFja2dyb3VuZCBjb2xvciBkZWZpbmVkLiAqLyB9XG5cbmJsb2NrcXVvdGUsIHEge1xuICBxdW90ZXM6IFwiXCIgXCJcIjsgfVxuICBibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlciwgcTpiZWZvcmUsIHE6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cblxuaHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICBib3JkZXI6IDA7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW4tYm90dG9tOiAxLjVlbTsgfVxuXG51bCwgb2wge1xuICBtYXJnaW46IDAgMCAxLjVlbSAzZW07IH1cbiAgdWwgbGksIG9sIGxpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41ZW07IH1cblxudWwge1xuICBsaXN0LXN0eWxlOiBkaXNjOyB9XG5cbm9sIHtcbiAgbGlzdC1zdHlsZTogZGVjaW1hbDsgfVxuXG5saSA+IHVsLFxubGkgPiBvbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi1sZWZ0OiAxLjVlbTsgfVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmRkIHtcbiAgbWFyZ2luOiAwIDEuNWVtIDEuNWVtOyB9XG5cbmltZyB7XG4gIGhlaWdodDogYXV0bztcbiAgLyogTWFrZSBzdXJlIGltYWdlcyBhcmUgc2NhbGVkIGNvcnJlY3RseS4gKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiBBZGhlcmUgdG8gY29udGFpbmVyIHdpZHRoLiAqLyB9XG5cbnRhYmxlIHtcbiAgbWFyZ2luOiAwIDAgMS41ZW07XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5mbGFzaC1hbGVydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY2YmY7XG4gIGNvbG9yOiAjOGM3ODAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMC43NWVtO1xuICBwYWRkaW5nOiAwLjc1ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZmxhc2gtYWxlcnQgYSB7XG4gICAgY29sb3I6ICM1OTRjMDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAuZmxhc2gtYWxlcnQgYTpmb2N1cywgLmZsYXNoLWFsZXJ0IGE6aG92ZXIge1xuICAgICAgY29sb3I6IGJsYWNrOyB9XG5cbi5mbGFzaC1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYmUzZTQ7XG4gIGNvbG9yOiAjOTcxNjFiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMC43NWVtO1xuICBwYWRkaW5nOiAwLjc1ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZmxhc2gtZXJyb3IgYSB7XG4gICAgY29sb3I6ICM2YTBmMTM7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAuZmxhc2gtZXJyb3IgYTpmb2N1cywgLmZsYXNoLWVycm9yIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICMxMTAyMDM7IH1cblxuLmZsYXNoLW5vdGljZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWVkZjg7XG4gIGNvbG9yOiAjMjQ0ZTg3O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMC43NWVtO1xuICBwYWRkaW5nOiAwLjc1ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZmxhc2gtbm90aWNlIGEge1xuICAgIGNvbG9yOiAjMTkzNzVmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgLmZsYXNoLW5vdGljZSBhOmZvY3VzLCAuZmxhc2gtbm90aWNlIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICMwNDA4MGU7IH1cblxuLmZsYXNoLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlZmMyO1xuICBjb2xvcjogIzU2NjUxYTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVlbTtcbiAgcGFkZGluZzogMC43NWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmZsYXNoLXN1Y2Nlc3MgYSB7XG4gICAgY29sb3I6ICMzMzNjMTA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAuZmxhc2gtc3VjY2VzcyBhOmZvY3VzLCAuZmxhc2gtc3VjY2VzcyBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBibGFjazsgfVxuXG4uYWNjb3JkaW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjtcbiAgYm9yZGVyOiAxcHggc29saWQgZ2FpbnNib3JvO1xuICBtYXJnaW46IDAgMCAxLjVlbSAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5hY2NvcmRpb24ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMy41Nzg2NiU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAgICAgLmFjY29yZGlvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAuYWNjb3JkaW9uIGFydGljbGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzLjU3ODY2JTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLmFjY29yZGlvbiBhcnRpY2xlOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc1ZW0pIHtcbiAgICAuYWNjb3JkaW9uIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMuNTc4NjYlO1xuICAgICAgd2lkdGg6IDg3LjA1MjY3JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMi45NDczMyU7IH1cbiAgICAgIC5hY2NvcmRpb246bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgLmFjY29yZGlvbiBhcnRpY2xlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMy41Nzg2NiU7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAgIC5hY2NvcmRpb24gYXJ0aWNsZTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MGVtKSB7XG4gICAgLmFjY29yZGlvbiB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICAgIHdpZHRoOiA4Mi45NDAzOSU7XG4gICAgICBtYXJnaW4tbGVmdDogOC41Mjk4JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgLmFjY29yZGlvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAuYWNjb3JkaW9uIGFydGljbGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLmFjY29yZGlvbiBhcnRpY2xlOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIC5hY2NvcmRpb24gLmVudHJ5LWNvbnRlbnQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5hY2NvcmRpb24gYXJ0aWNsZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZ2FpbnNib3JvO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICAuYWNjb3JkaW9uIGFydGljbGUgPiBoZWFkZXIge1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDAuNzVlbSAxLjYxOGVtO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmFjY29yZGlvbiBhcnRpY2xlID4gLmVudHJ5LWNvbnRlbnQge1xuICAgICAgcGFkZGluZzogMC43NWVtIDEuNjE4ZW07IH1cbiAgICAuYWNjb3JkaW9uIGFydGljbGUgLmVudHJ5LXRpdGxlLFxuICAgIC5hY2NvcmRpb24gYXJ0aWNsZSAuZWRpdC1saW5rIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAgIC5hY2NvcmRpb24gYXJ0aWNsZTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC5hY2NvcmRpb24gYXJ0aWNsZTpmb2N1cywgLmFjY29yZGlvbiBhcnRpY2xlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5NmMzZTU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmFjY29yZGlvbiAuZW50cnktY29udGVudCB7XG4gICAgbWF4LXdpZHRoOiA2OGVtO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIC8qbGkgeyovXG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjb3JkaW9uLW1lbnUtc3ViLWJhY2tncm91bmQ7Ki9cbiAgICAvKmxpIHsqL1xuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1tZW51LXN1Yi1iYWNrZ3JvdW5kOyovXG4gICAgLyomOmZpcnN0LWNoaWxkIHsqL1xuICAgIC8qYm9yZGVyLXRvcDogJGFjY29yZGlvbi1tZW51LWJvcmRlcjsqL1xuICAgIC8qYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4ICRhY2NvcmRpb24tbWVudS1zdWItaW5zZXQ7Ki9cbiAgICAvKn0qL1xuICAgIC8qJjpmb2N1cywqL1xuICAgIC8qJjpob3ZlciB7Ki9cbiAgICAvKmJhY2tncm91bmQtY29sb3I6ICRhY2NvcmRpb24tbWVudS1zdWItaG92ZXI7Ki9cbiAgICAvKn0qL1xuICAgIC8qfSovIH1cbiAgICAuYWNjb3JkaW9uIC5lbnRyeS1jb250ZW50OjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC5hY2NvcmRpb24gLmVudHJ5LWNvbnRlbnQgLmVudHJ5LXRleHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGdhaW5zYm9ybzsgfVxuICAgIC5hY2NvcmRpb24gLmVudHJ5LWNvbnRlbnQgLmVudHJ5LW1ldGEge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICB3aWR0aDogNDguODIxMTclO1xuICAgICAgbWFyZ2luLXRvcDogMS41ZW07IH1cbiAgICAgIC5hY2NvcmRpb24gLmVudHJ5LWNvbnRlbnQgLmVudHJ5LW1ldGE6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5hY2NvcmRpb24gLmVudHJ5LWNvbnRlbnQgLmVudHJ5LXRodW1ibmFpbCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICAgIHdpZHRoOiA0OC44MjExNyU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAxLjVlbTsgfVxuICAgICAgLmFjY29yZGlvbiAuZW50cnktY29udGVudCAuZW50cnktdGh1bWJuYWlsOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAuYWNjb3JkaW9uIC5lbnRyeS1jb250ZW50IC5lbnRyeS1wcm9qZWN0cGFydG5lcnMge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi10b3A6IDEuNWVtOyB9XG4gICAgICAuYWNjb3JkaW9uIC5lbnRyeS1jb250ZW50IC5lbnRyeS1wcm9qZWN0cGFydG5lcnM6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgLmFjY29yZGlvbiAuZW50cnktY29udGVudCAuZW50cnktcHJvamVjdHBhcnRuZXJzIHVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmFjY29yZGlvbiAuaXMtZXhwYW5kZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbi5leHBhbmRlciAuZXhwYW5kZXItdHJpZ2dlciB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjREREO1xuICBjb2xvcjogIzQ3N0RDQTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMjVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5leHBhbmRlciAuZXhwYW5kZXItdHJpZ2dlcjpiZWZvcmUge1xuICAgIGZvbnQtc2l6ZTogMC43ZW07XG4gICAgY29udGVudDogXCJcXDI1QkNcIjtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtOyB9XG5cbi5leHBhbmRlciAuZXhwYW5kZXItY29udGVudCBwIHtcbiAgY29sb3I6ICMzMzM7XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTsgfVxuXG4uZXhwYW5kZXIgLmV4cGFuZGVyLWhpZGRlbjpiZWZvcmUge1xuICBmb250LXNpemU6IDAuN2VtO1xuICBjb250ZW50OiBcIlxcMjVCQVwiOyB9XG5cbi5leHBhbmRlciAuZXhwYW5kZXItaGlkZGVuICsgLmV4cGFuZGVyLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgRm9ybXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmJ1dHRvbixcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI2NjYyAjY2NjICNiYmI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSksIGluc2V0IDAgMTVweCAxN3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSwgaW5zZXQgMCAtNXB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAuNmVtIDFlbSAuNGVtO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7IH1cbiAgYnV0dG9uOmhvdmVyLFxuICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxuICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogI2NjYyAjYmJiICNhYWE7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCksIGluc2V0IDAgMTVweCAxN3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSwgaW5zZXQgMCAtNXB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjAyKTsgfVxuICBidXR0b246YWN0aXZlLCBidXR0b246Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICNhYWEgI2JiYiAjYmJiO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSwgaW5zZXQgMCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7IH1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbnRleHRhcmVhIHtcbiAgY29sb3I6ICM2NjY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBjb2xvcjogIzExMTsgfVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgcGFkZGluZzogM3B4OyB9XG5cbnRleHRhcmVhIHtcbiAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyMgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmEge1xuICBjb2xvcjogIzJjN2FiNjsgfVxuICBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAjMmM3YWI2OyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMsIGE6YWN0aXZlIHtcbiAgICBjb2xvcjogIzZjYWJkYzsgfVxuICBhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiB0aGluIGRvdHRlZDsgfVxuICBhOmhvdmVyLCBhOmFjdGl2ZSB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBNZW51c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypAaW1wb3J0IFwibWVudXNcIjsqL1xuaGVhZGVyLm5hdmlnYXRpb24ge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgbWluLWhlaWdodDogNTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDk5OTsgfVxuICBoZWFkZXIubmF2aWdhdGlvbiAubmF2aWdhdGlvbi13cmFwcGVyIHtcbiAgICBtYXgtd2lkdGg6IDY4ZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiA5OTk5OyB9XG4gICAgaGVhZGVyLm5hdmlnYXRpb24gLm5hdmlnYXRpb24td3JhcHBlcjo6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICBoZWFkZXIubmF2aWdhdGlvbiAubmF2aWdhdGlvbi13cmFwcGVyOjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICBoZWFkZXIubmF2aWdhdGlvbiAubG9nbyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWF4LWhlaWdodDogNTBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyZW07IH1cbiAgICBoZWFkZXIubmF2aWdhdGlvbiAubG9nbyBpbWcge1xuICAgICAgbWF4LWhlaWdodDogNTBweDtcbiAgICAgIHBhZGRpbmc6IDAuOGVtIDA7IH1cbiAgaGVhZGVyLm5hdmlnYXRpb24gLm5hdmlnYXRpb24tbWVudS1idXR0b24ge1xuICAgIGNvbG9yOiAjNDA0MDQwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1yaWdodDogMWVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgICAgaGVhZGVyLm5hdmlnYXRpb24gLm5hdmlnYXRpb24tbWVudS1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICBoZWFkZXIubmF2aWdhdGlvbiAubmF2aWdhdGlvbi1tZW51LWJ1dHRvbjpmb2N1cywgaGVhZGVyLm5hdmlnYXRpb24gLm5hdmlnYXRpb24tbWVudS1idXR0b246aG92ZXIge1xuICAgICAgY29sb3I6ICMyYzdhYjY7IH1cbiAgaGVhZGVyLm5hdmlnYXRpb24gLm5hdmlnYXRpb24tcm9sZSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICB6LWluZGV4OiA5OTk5OTk5OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzVlbSkge1xuICAgICAgaGVhZGVyLm5hdmlnYXRpb24gLm5hdmlnYXRpb24tcm9sZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4LjUyOTglOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgICBoZWFkZXIubmF2aWdhdGlvbiAubmF2aWdhdGlvbi1yb2xlIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IH0gfVxuICBoZWFkZXIubmF2aWdhdGlvbiB1bC5uYXZpZ2F0aW9uLW1lbnUge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiA5OTk5OyB9XG4gICAgaGVhZGVyLm5hdmlnYXRpb24gdWwubmF2aWdhdGlvbi1tZW51LnNob3cge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgICBoZWFkZXIubmF2aWdhdGlvbiB1bC5uYXZpZ2F0aW9uLW1lbnUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gIGhlYWRlci5uYXZpZ2F0aW9uIHVsIGxpLm1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjhlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiA5OTk5OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgICAgaGVhZGVyLm5hdmlnYXRpb24gdWwgbGkubWVudS1pdGVtIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgIGhlYWRlci5uYXZpZ2F0aW9uIHVsIGxpLm1lbnUtaXRlbSBhIHtcbiAgICAgIGNvbG9yOiAjNDA0MDQwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgICAgIGhlYWRlci5uYXZpZ2F0aW9uIHVsIGxpLm1lbnUtaXRlbSBhIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07IH0gfVxuICAgICAgaGVhZGVyLm5hdmlnYXRpb24gdWwgbGkubWVudS1pdGVtIGE6Zm9jdXMsIGhlYWRlci5uYXZpZ2F0aW9uIHVsIGxpLm1lbnUtaXRlbSBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMyYzdhYjY7IH1cbiAgaGVhZGVyLm5hdmlnYXRpb24gLmN1cnJlbnQtbWVudS1pdGVtIGEge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDsgfVxuICBoZWFkZXIubmF2aWdhdGlvbiBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuLm1lbnUtaXRlbSB7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgIGhlYWRlci5uYXZpZ2F0aW9uIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ubWVudS1pdGVtIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMWVtOyB9IH1cbiAgICBoZWFkZXIubmF2aWdhdGlvbiBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuLm1lbnUtaXRlbSA+IHVsID4gbGk6Zmlyc3QtY2hpbGQgYSB7XG4gICAgICBwYWRkaW5nLXRvcDogMWVtOyB9XG4gICAgaGVhZGVyLm5hdmlnYXRpb24gbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbi5tZW51LWl0ZW0gYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFlbTsgfVxuICAgIGhlYWRlci5uYXZpZ2F0aW9uIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ubWVudS1pdGVtID4gYSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjZlbTsgfVxuICAgIGhlYWRlci5uYXZpZ2F0aW9uIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ubWVudS1pdGVtID4gYTphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGF1dG87XG4gICAgICByaWdodDogLTAuNGVtO1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIGNvbnRlbnQ6ICdcXDI1QkUnO1xuICAgICAgY29sb3I6ICM0MDQwNDA7IH1cbiAgaGVhZGVyLm5hdmlnYXRpb24gbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgIGhlYWRlci5uYXZpZ2F0aW9uIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gYSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjhlbTsgfVxuICAgIGhlYWRlci5uYXZpZ2F0aW9uIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgICAgIGhlYWRlci5uYXZpZ2F0aW9uIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTsgfSB9XG4gICAgICBoZWFkZXIubmF2aWdhdGlvbiBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICfigLonO1xuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwLjVlbTsgfVxuICAgIGhlYWRlci5uYXZpZ2F0aW9uIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46Zm9jdXMgPiAuc3ViLW1lbnUsXG4gICAgaGVhZGVyLm5hdmlnYXRpb24gbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpob3ZlciA+IC5zdWItbWVudSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgIGhlYWRlci5uYXZpZ2F0aW9uIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjhlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9IH1cbiAgaGVhZGVyLm5hdmlnYXRpb24gdWwuc3ViLW1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgIGhlYWRlci5uYXZpZ2F0aW9uIHVsLnN1Yi1tZW51IHtcbiAgICAgICAgbGVmdDogLTFlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEuNWVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgICAgaGVhZGVyLm5hdmlnYXRpb24gdWwuc3ViLW1lbnUgLnN1Yi1tZW51IHtcbiAgICAgICAgbGVmdDogMTEuOGVtO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9IH1cbiAgICBoZWFkZXIubmF2aWdhdGlvbiB1bC5zdWItbWVudSBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgICAgaGVhZGVyLm5hdmlnYXRpb24gdWwuc3ViLW1lbnUgbGkge1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgIG1hcmdpbjogMjBweCAwOyB9XG4gICAgICAgICAgaGVhZGVyLm5hdmlnYXRpb24gdWwuc3ViLW1lbnUgbGk6Zmlyc3QtY2hpbGQgPiBhIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7IH1cbiAgICAgICAgICBoZWFkZXIubmF2aWdhdGlvbiB1bC5zdWItbWVudSBsaTpsYXN0LWNoaWxkID4gYSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuN2VtOyB9IH1cbiAgICAgIGhlYWRlci5uYXZpZ2F0aW9uIHVsLnN1Yi1tZW51IGxpIGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMTBweCAwOyB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgICAgICBoZWFkZXIubmF2aWdhdGlvbiB1bC5zdWItbWVudSBsaSBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDEyZW07IH0gfVxuICBoZWFkZXIubmF2aWdhdGlvbiAubmF2aWdhdGlvbi10b29scyB7XG4gICAgYmFja2dyb3VuZDogIzUwNTA1MDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDUwcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgICBoZWFkZXIubmF2aWdhdGlvbiAubmF2aWdhdGlvbi10b29scyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cbiAgaGVhZGVyLm5hdmlnYXRpb24gLnNlYXJjaC1iYXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAuODVlbSAwLjg1ZW0gMC43ZW0gMC42ZW07XG4gICAgd2lkdGg6IDYwJTsgfVxuICAgIGhlYWRlci5uYXZpZ2F0aW9uIC5zZWFyY2gtYmFyIGZvcm0ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICBoZWFkZXIubmF2aWdhdGlvbiAuc2VhcmNoLWJhciBmb3JtIGlucHV0W3R5cGU9c2VhcmNoXSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMmYyZjI7XG4gICAgICAgIGNvbG9yOiAjNDA0MDQwO1xuICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMC41ZW0gMC44ZW07XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAgICAgICBoZWFkZXIubmF2aWdhdGlvbiAuc2VhcmNoLWJhciBmb3JtIGlucHV0W3R5cGU9c2VhcmNoXSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gICAgICBoZWFkZXIubmF2aWdhdGlvbiAuc2VhcmNoLWJhciBmb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3R0b206IDAuM2VtO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwIDlweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMC4zZW07XG4gICAgICAgIHRvcDogMC4zZW07IH1cbiAgICAgICAgaGVhZGVyLm5hdmlnYXRpb24gLnNlYXJjaC1iYXIgZm9ybSBidXR0b25bdHlwZT1zdWJtaXRdIGltZyB7XG4gICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgICBwYWRkaW5nOiAxcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgICBoZWFkZXIubmF2aWdhdGlvbiAuc2VhcmNoLWJhciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTZlbTsgfVxuICAgICAgICBoZWFkZXIubmF2aWdhdGlvbiAuc2VhcmNoLWJhciBpbnB1dCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEFjY2Vzc2liaWxpdHlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRleHQgbWVhbnQgb25seSBmb3Igc2NyZWVuIHJlYWRlcnMuICovXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIGNsaXA6IGF1dG8gIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIxNzU5YjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgcGFkZGluZzogMTVweCAyM3B4IDE0cHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRvcDogNXB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHotaW5kZXg6IDEwMDAwMDtcbiAgICAvKiBBYm92ZSBXUCB0b29sYmFyLiAqLyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQWxpZ25tZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmFsaWdubGVmdCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMS41ZW07IH1cblxuLmFsaWducmlnaHQge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDEuNWVtOyB9XG5cbi5hbGlnbmNlbnRlciB7XG4gIGNsZWFyOiBib3RoO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIENsZWFyaW5nc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmNsZWFyOmJlZm9yZTo6YWZ0ZXIsXG4uY2xlYXI6YWZ0ZXI6OmFmdGVyLFxuLmVudHJ5LWNvbnRlbnQ6YmVmb3JlOjphZnRlcixcbi5lbnRyeS1jb250ZW50OmFmdGVyOjphZnRlcixcbi5jb21tZW50LWNvbnRlbnQ6YmVmb3JlOjphZnRlcixcbi5jb21tZW50LWNvbnRlbnQ6YWZ0ZXI6OmFmdGVyLFxuLnNpdGUtaGVhZGVyOmJlZm9yZTo6YWZ0ZXIsXG4uc2l0ZS1oZWFkZXI6YWZ0ZXI6OmFmdGVyLFxuLnNpdGUtY29udGVudDpiZWZvcmU6OmFmdGVyLFxuLnNpdGUtY29udGVudDphZnRlcjo6YWZ0ZXIsXG4uc2l0ZS1mb290ZXI6YmVmb3JlOjphZnRlcixcbi5zaXRlLWZvb3RlcjphZnRlcjo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7IH1cblxuLmNsZWFyOmFmdGVyLFxuLmVudHJ5LWNvbnRlbnQ6YWZ0ZXIsXG4uY29tbWVudC1jb250ZW50OmFmdGVyLFxuLnNpdGUtaGVhZGVyOmFmdGVyLFxuLnNpdGUtY29udGVudDphZnRlcixcbi5zaXRlLWZvb3RlcjphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgV2lkZ2V0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLndpZGdldCB7XG4gIG1hcmdpbjogMCAwIDEuNWVtO1xuICAvKiBNYWtlIHN1cmUgc2VsZWN0IGVsZW1lbnRzIGZpdCBpbiB3aWRnZXRzLiAqLyB9XG4gIC53aWRnZXQgc2VsZWN0IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLyogU2VhcmNoIHdpZGdldC4gKi9cbi53aWRnZXRfc2VhcmNoIC5zZWFyY2gtc3VibWl0IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIFBvc3RzIGFuZCBwYWdlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnN0aWNreSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5ieWxpbmUsXG4udXBkYXRlZDpub3QoLnB1Ymxpc2hlZCkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zaW5nbGUgLmJ5bGluZSxcbi5ncm91cC1ibG9nIC5ieWxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmU7IH1cblxuLmVudHJ5LXRodW1ibmFpbCxcbi5lbnRyeS10ZXh0LFxuLnBhZ2UtY29udGVudCxcbi5lbnRyeS1jb250ZW50LFxuLmVudHJ5LXN1bW1hcnkge1xuICBtYXJnaW46IDAuMGVtIDAgMDsgfVxuXG4ucGFnZS1saW5rcyB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDAgMCAxLjVlbTsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBBc2lkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5ibG9nIC5mb3JtYXQtYXNpZGUgLmVudHJ5LXRpdGxlLFxuLmFyY2hpdmUgLmZvcm1hdC1hc2lkZSAuZW50cnktdGl0bGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIENvbW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uY29tbWVudC1jb250ZW50IGEge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cblxuLmJ5cG9zdGF1dGhvciB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIENvbW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5hcnRpY2xlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDMuMGVtIDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyB9XG4gIGFydGljbGU6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICBhcnRpY2xlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMuNTc4NjYlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgIGFydGljbGU6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc1ZW0pIHtcbiAgICBhcnRpY2xlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMuNTc4NjYlO1xuICAgICAgd2lkdGg6IDg3LjA1MjY3JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMi45NDczMyU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgIGFydGljbGU6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUwZW0pIHtcbiAgICBhcnRpY2xlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgd2lkdGg6IDgyLjk0MDM5JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4LjUyOTglOyB9XG4gICAgICBhcnRpY2xlOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBhcnRpY2xlIC5lbnRyeS10aHVtYm5haWwge1xuICAgIG1heC1oZWlnaHQ6IDI1MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICBhcnRpY2xlIC5lbnRyeS10aHVtYm5haWwgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgICAgYXJ0aWNsZSAuZW50cnktdGh1bWJuYWlsIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDMuNTc4NjYlO1xuICAgICAgICB3aWR0aDogMzUuMjYzMzQlOyB9XG4gICAgICAgIGFydGljbGUgLmVudHJ5LXRodW1ibmFpbDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUwZW0pIHtcbiAgICAgIGFydGljbGUgLmVudHJ5LXRodW1ibmFpbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtOyB9IH1cblxuLmZ1bGwtd2lkdGggYXJ0aWNsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzLjBlbSAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsgfVxuICAuZnVsbC13aWR0aCBhcnRpY2xlOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgLmZ1bGwtd2lkdGggYXJ0aWNsZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAuZnVsbC13aWR0aCBhcnRpY2xlOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NWVtKSB7XG4gICAgLmZ1bGwtd2lkdGggYXJ0aWNsZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICAgIHdpZHRoOiA4Mi45NDAzOSU7XG4gICAgICBtYXJnaW4tbGVmdDogOC41Mjk4JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgLmZ1bGwtd2lkdGggYXJ0aWNsZTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTBlbSkge1xuICAgIC5mdWxsLXdpZHRoIGFydGljbGUge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICB3aWR0aDogODIuOTQwMzklO1xuICAgICAgbWFyZ2luLWxlZnQ6IDguNTI5OCU7IH1cbiAgICAgIC5mdWxsLXdpZHRoIGFydGljbGU6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIC5mdWxsLXdpZHRoIGFydGljbGUgLmVudHJ5LXRodW1ibmFpbCB7XG4gICAgbWF4LWhlaWdodDogMjUwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5mdWxsLXdpZHRoIGFydGljbGUgLmVudHJ5LXRodW1ibmFpbCBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgICAuZnVsbC13aWR0aCBhcnRpY2xlIC5lbnRyeS10aHVtYm5haWwge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICAgIHdpZHRoOiAzMS43NjE1NyU7IH1cbiAgICAgICAgLmZ1bGwtd2lkdGggYXJ0aWNsZSAuZW50cnktdGh1bWJuYWlsOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTBlbSkge1xuICAgICAgLmZ1bGwtd2lkdGggYXJ0aWNsZSAuZW50cnktdGh1bWJuYWlsIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gIGhlYWRlci5wYWdlLWhlYWRlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAzLjU3ODY2JTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICBoZWFkZXIucGFnZS1oZWFkZXI6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NWVtKSB7XG4gIGhlYWRlci5wYWdlLWhlYWRlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAzLjU3ODY2JTtcbiAgICB3aWR0aDogODcuMDUyNjclO1xuICAgIG1hcmdpbi1sZWZ0OiAxMi45NDczMyU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgaGVhZGVyLnBhZ2UtaGVhZGVyOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTBlbSkge1xuICBoZWFkZXIucGFnZS1oZWFkZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgd2lkdGg6IDgyLjk0MDM5JTtcbiAgICBtYXJnaW4tbGVmdDogOC41Mjk4JTsgfVxuICAgIGhlYWRlci5wYWdlLWhlYWRlcjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgLmZ1bGwtd2lkdGggaGVhZGVyLnBhZ2UtaGVhZGVyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDMuNTc4NjYlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5mdWxsLXdpZHRoIGhlYWRlci5wYWdlLWhlYWRlcjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc1ZW0pIHtcbiAgLmZ1bGwtd2lkdGggaGVhZGVyLnBhZ2UtaGVhZGVyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDMuNTc4NjYlO1xuICAgIHdpZHRoOiA4Ny4wNTI2NyU7XG4gICAgbWFyZ2luLWxlZnQ6IDEyLjk0NzMzJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAuZnVsbC13aWR0aCBoZWFkZXIucGFnZS1oZWFkZXI6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MGVtKSB7XG4gIC5mdWxsLXdpZHRoIGhlYWRlci5wYWdlLWhlYWRlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgICB3aWR0aDogODIuOTQwMzklO1xuICAgIG1hcmdpbi1sZWZ0OiA4LjUyOTglOyB9XG4gICAgLmZ1bGwtd2lkdGggaGVhZGVyLnBhZ2UtaGVhZGVyOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxubmF2Lm5hdmlnYXRpb24ucG9zdHMtbmF2aWdhdGlvbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbiAgd2lkdGg6IDgyLjk0MDM5JTtcbiAgbWFyZ2luLWxlZnQ6IDguNTI5OCU7XG4gIG1hcmdpbi10b3A6IDJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMmVtOyB9XG4gIG5hdi5uYXZpZ2F0aW9uLnBvc3RzLW5hdmlnYXRpb246bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgSW5maW5pdGUgc2Nyb2xsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHbG9iYWxseSBoaWRkZW4gZWxlbWVudHMgd2hlbiBJbmZpbml0ZSBTY3JvbGwgaXMgc3VwcG9ydGVkIGFuZCBpbiB1c2UuICovXG4uaW5maW5pdGUtc2Nyb2xsIC5wb3N0cy1uYXZpZ2F0aW9uLFxuLmluZmluaXRlLXNjcm9sbC5uZXZlcmVuZGluZyAuc2l0ZS1mb290ZXIge1xuICAvKiBUaGVtZSBGb290ZXIgKHdoZW4gc2V0IHRvIHNjcm9sbGluZykgKi9cbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBXaGVuIEluZmluaXRlIFNjcm9sbCBoYXMgcmVhY2hlZCBpdHMgZW5kIHdlIG5lZWQgdG8gcmUtZGlzcGxheSBlbGVtZW50cyB0aGF0IHdlcmUgaGlkZGVuICh2aWEgLm5ldmVyZW5kaW5nKSBiZWZvcmUuICovXG4uaW5maW5pdHktZW5kLm5ldmVyZW5kaW5nIC5zaXRlLWZvb3RlciB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgTWVkaWFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5wYWdlLWNvbnRlbnQgLndwLXNtaWxleSxcbi5lbnRyeS1jb250ZW50IC53cC1zbWlsZXksXG4uY29tbWVudC1jb250ZW50IC53cC1zbWlsZXkge1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyogTWFrZSBzdXJlIGVtYmVkcyBhbmQgaWZyYW1lcyBmaXQgdGhlaXIgY29udGFpbmVycy4gKi9cbmVtYmVkLFxuaWZyYW1lLFxub2JqZWN0IHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIENhcHRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ud3AtY2FwdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLndwLWNhcHRpb24gaW1nW2NsYXNzKj1cIndwLWltYWdlLVwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIC53cC1jYXB0aW9uIC53cC1jYXB0aW9uLXRleHQge1xuICAgIG1hcmdpbjogMC44MDc1ZW0gMDsgfVxuXG4ud3AtY2FwdGlvbi10ZXh0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIEdhbGxlcmllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmdhbGxlcnkge1xuICBtYXJnaW4tYm90dG9tOiAxLjVlbTsgfVxuXG4uZ2FsbGVyeS1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAuZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbSB7XG4gICAgbWF4LXdpZHRoOiAzMy4zMyU7IH1cbiAgLmdhbGxlcnktY29sdW1ucy00IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcbiAgICBtYXgtd2lkdGg6IDIwJTsgfVxuICAuZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XG4gICAgbWF4LXdpZHRoOiAxNi42NiU7IH1cbiAgLmdhbGxlcnktY29sdW1ucy03IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIG1heC13aWR0aDogMTQuMjglOyB9XG4gIC5nYWxsZXJ5LWNvbHVtbnMtOCAuZ2FsbGVyeS1pdGVtIHtcbiAgICBtYXgtd2lkdGg6IDEyLjUlOyB9XG4gIC5nYWxsZXJ5LWNvbHVtbnMtOSAuZ2FsbGVyeS1pdGVtIHtcbiAgICBtYXgtd2lkdGg6IDExLjExJTsgfVxuXG4uZ2FsbGVyeS1jYXB0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiIsbnVsbCwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AaWYgJGJvcmRlci1ib3gtc2l6aW5nID09IHRydWUge1xuICBodG1sIHsgLy8gaHR0cDovL2JpdC5seS8xcWsydFZSXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICoge1xuICAgICYsXG4gICAgJjo6YWZ0ZXIsXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG4iLCJodG1sIHtcblx0Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG5cdC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcblx0LW1zLXRleHQtc2l6ZS1hZGp1c3Q6ICAgICAxMDAlO1xufVxuXG5ib2R5IHtcblx0bWFyZ2luOiAwO1xufVxuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdGhlaWdodDogMDtcbn1cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbmEge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcblx0b3V0bGluZTogMDtcbn1cblxuYWJiclt0aXRsZV0ge1xuXHRib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG5iLFxuc3Ryb25nIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmRmbiB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuaDEge1xuXHRmb250LXNpemU6IDJlbTtcblx0bWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxubWFyayB7XG5cdGJhY2tncm91bmQ6ICNmZjA7XG5cdGNvbG9yOiAjMDAwO1xufVxuXG5zbWFsbCB7XG5cdGZvbnQtc2l6ZTogODAlO1xufVxuXG5zdWIsXG5zdXAge1xuXHRmb250LXNpemU6IDc1JTtcblx0bGluZS1oZWlnaHQ6IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuXHR0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcblx0Ym90dG9tOiAtMC4yNWVtO1xufVxuXG5pbWcge1xuXHRib3JkZXI6IDA7XG59XG5cbnN2Zzpub3QoOnJvb3QpIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuZmlndXJlIHtcblx0bWFyZ2luOiAxZW0gNDBweDtcbn1cblxuaHIge1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0aGVpZ2h0OiAwO1xufVxuXG5wcmUge1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuXHRmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG5cdGZvbnQtc2l6ZTogMWVtO1xufVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuXHRjb2xvcjogaW5oZXJpdDtcblx0Zm9udDogaW5oZXJpdDtcblx0bWFyZ2luOiAwO1xufVxuXG5idXR0b24ge1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG5pbnB1dCB7XG5cdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdHBhZGRpbmc6IDA7XG59XG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuZmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuXHRtYXJnaW46IDAgMnB4O1xuXHRwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbmxlZ2VuZCB7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogMDtcbn1cblxudGV4dGFyZWEge1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxub3B0Z3JvdXAge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cblxudGFibGUge1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG5cdHBhZGRpbmc6IDA7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFNpdGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgXCJzaXRlXCI7XG4iLCIkbW9iaWxlOiBuZXctYnJlYWtwb2ludChtYXgtd2lkdGggZW0oODAwcHgpKTtcbiRkZXNrdG9wOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggZW0oODAwcHgpKTtcbiR0YWJsZXQ6IG5ldy1icmVha3BvaW50KG1heC13aWR0aCBlbSgxMjAwcHgpKTtcblxuZGl2I2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcjtcbiAgICAjcHJpbWFyeSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAjcHJpbWFyeS5mdWxsLXdpZHRoe1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xuICAgIH1cbiAgICAjc2Vjb25kYXJ5IHsgXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhlYWRlci5wYWdlLWhlYWRlcntcbiAgICAgICAgbWFyZ2luLXRvcDogM2VtO1xuICAgIH1cbn1cblxuaGVhZGVyI21hc3RoZWFke1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAlKTtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKHVybChcIi4vc3RhdGljL2hlYWRlci5wbmdcIikpO1xuICAgIC5zaXRlLWJyYW5kaW5ne1xuICAgICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXI7XG4gICAgICAgIC8qQGluY2x1ZGUgZGlzcGxheSgnZmxleCcpOyovXG4gICAgICAgIC8qQGluY2x1ZGUgYWxpZ24taXRlbXMoJ2NlbnRlcicpOyovXG4gICAgICAgIC8qQGluY2x1ZGUganVzdGlmeS1jb250ZW50KCdmbGV4LXN0YXJ0Jyk7Ki9cbiAgICAgICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICAgICAgLy9AaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xuICAgICAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7IFxuICAgICAgICBoZWlnaHQ6IDI1MHB4O1xuICAgICAgICAuc2l0ZS1sb2dve1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbl9jb2x1bW5zKDgpO1xuICAgICAgICAgICAgLypAaW5jbHVkZSBmbGV4KDAgMCA1MDBweCk7Ki9cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmaWxsLXBhcmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5mb290ZXIjY29sb3Bob257XG4gICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMCUpO1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UodXJsKFwiLi9zdGF0aWMvZm9vdGVyLnBuZ1wiKSk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgYm90dG9tO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX19iYWNrZ3JvdW5kX2xpZ2h0O1xuICAgIC5mb290ZXItd3JhcHBlcntcblxuICAgICAgICAvKkBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7Ki9cbiAgICAgICAgICAgIC8qQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDgpOyovXG4gICAgICAgIC8qfSovXG4gICAgICAgIC8qQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkgeyovXG4gICAgICAgICAgICAvKkBpbmNsdWRlIHNwYW4tY29sdW1ucyg4KTsqL1xuICAgICAgICAvKn0qL1xuICAgICAgICAvKkBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHsqL1xuICAgICAgICAgICAgLypAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpOyovXG4gICAgICAgIC8qfSovXG5cbiAgICAgICAgaDF7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXI7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgICAgIC5sZWdhbHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNoaWZ0KDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEwKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuc3BvbnNvcnN7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMCk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc2hpZnQoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgICAgICB9XG4gICAgICAgIC5ub3RpY2V7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5hc2lkZS53aWRnZXR7XG4gICAgQGluY2x1ZGUgcm93KCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IGEgb3V0ZXIgY29udGFpbmVyIGJ5IGNlbnRyaW5nIGl0IGluIHRoZSB2aWV3cG9ydCwgY2xlYXJpbmcgaXRzIGZsb2F0cywgYW5kIHNldHRpbmcgaXRzIGBtYXgtd2lkdGhgLlxuLy8vIEFsdGhvdWdoIG9wdGlvbmFsLCB1c2luZyBgb3V0ZXItY29udGFpbmVyYCBpcyByZWNvbW1lbmRlZC4gVGhlIG1peGluIGNhbiBiZSBjYWxsZWQgb24gbW9yZSB0aGFuIG9uZSBlbGVtZW50IHBlciBwYWdlLCBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBuZXN0ZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciBbdW5pdF19ICRsb2NhbC1tYXgtd2lkdGggWyRtYXgtd2lkdGhdXG4vLy8gICBNYXggd2lkdGggdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudC4gQ2FuIGJlIGEgcGVyY2VudGFnZSBvciBhIG1lYXN1cmUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAqem9vbTogMTtcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBtYXJnaW4tbGVmdDogYXV0bztcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDpiZWZvcmUsIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgICAgY29udGVudDogXCIgXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgfVxuXG5AbWl4aW4gb3V0ZXItY29udGFpbmVyKCRsb2NhbC1tYXgtd2lkdGg6ICRtYXgtd2lkdGgpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1heC13aWR0aDogJGxvY2FsLW1heC13aWR0aDtcbiAgbWFyZ2luOiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcblxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBPdXRwdXRzIGEgbWVkaWEtcXVlcnkgYmxvY2sgd2l0aCBhbiBvcHRpb25hbCBncmlkIGNvbnRleHQgKHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGluIHRoZSBncmlkKS5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5XG4vLy8gICBBIGxpc3Qgb2YgbWVkaWEgcXVlcnkgZmVhdHVyZXMgYW5kIHZhbHVlcywgd2hlcmUgZWFjaCBgJGZlYXR1cmVgIHNob3VsZCBoYXZlIGEgY29ycmVzcG9uZGluZyBgJHZhbHVlYC5cbi8vLyAgIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciBgJGZlYXR1cmVgLCBjbGljayBbaGVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhMSkuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgYCR2YWx1ZWAgaW4gYCRxdWVyeWAsIGAkZGVmYXVsdC1mZWF0dXJlYCBpcyBnb2luZyB0byBiZSB1c2VkLlxuLy8vXG4vLy8gICBUaGUgbnVtYmVyIG9mIHRvdGFsIGNvbHVtbnMgaW4gdGhlIGdyaWQgY2FuIGJlIHNldCBieSBwYXNzaW5nIGAkY29sdW1uc2AgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdCAob3ZlcnJpZGVzIGAkdG90YWwtY29sdW1uc2ApLlxuLy8vXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkdG90YWwtY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGluIHRoZSBuZXcgZ3JpZCBjb250ZXh0LiBDYW4gYmUgc2V0IGFzIGEgc2hvcnRoYW5kIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5yZXNwb25zaXZlLWVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoNzY5cHgpIHtcbi8vLyAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gIC5uZXctY29udGV4dC1lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBtZWRpYShtaW4td2lkdGggMzIwcHggbWF4LXdpZHRoIDQ4MHB4LCA2KSB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSB7XG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbi8vLyAgICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICAgfVxuLy8vXG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cblxuQG1peGluIG1lZGlhKCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICRsb29wLXRvOiBsZW5ndGgoJHF1ZXJ5KTtcbiAgICAkbWVkaWEtcXVlcnk6IFwic2NyZWVuIGFuZCBcIjtcbiAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnMgIWdsb2JhbDtcblxuICAgIEBpZiBpcy1ub3QoaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkpIHtcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksICRsb29wLXRvKSAhZ2xvYmFsO1xuICAgICAgJGxvb3AtdG86ICRsb29wLXRvIC0gMTtcbiAgICB9XG5cbiAgICAkaTogMTtcbiAgICBAd2hpbGUgJGkgPD0gJGxvb3AtdG8ge1xuICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcIihcIiArIG50aCgkcXVlcnksICRpKSArIFwiOiBcIiArIG50aCgkcXVlcnksICRpICsgMSkgKyBcIikgXCI7XG5cbiAgICAgIEBpZiAoJGkgKyAxKSAhPSAkbG9vcC10byB7XG4gICAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCJhbmQgXCI7XG4gICAgICB9XG5cbiAgICAgICRpOiAkaSArIDI7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGlhLXF1ZXJ5fSB7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbiBlbGVtZW50IHNob3VsZCBzcGFuLiBJZiB0aGUgc2VsZWN0b3IgaXMgbmVzdGVkIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiBpdHMgcGFyZW50IGVsZW1lbnQgc2hvdWxkIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBhcyB3ZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc3BhblxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgYCRjb2x1bW5zYCwgdGhlIHVuaXRsZXNzIG51bWJlciBvZiBjb2x1bW5zIHRoZSBlbGVtZW50IHNwYW5zIChyZXF1aXJlZCksIGFuZCBgJGNvbnRhaW5lci1jb2x1bW5zYCwgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoZSBwYXJlbnQgZWxlbWVudCBzcGFucyAob3B0aW9uYWwpLlxuLy8vXG4vLy8gICBJZiBvbmx5IG9uZSB2YWx1ZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgdGhhdCBpdCdzIGAkY29sdW1uc2AgYW5kIHRoYXQgdGhhdCBgJGNvbnRhaW5lci1jb2x1bW5zYCBpcyBlcXVhbCB0byBgJGdyaWQtY29sdW1uc2AsIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbi8vL1xuLy8vICAgVGhlIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gICBgJGNvbHVtbnNgIGFsc28gYWNjZXB0cyBkZWNpbWFscyBmb3Igd2hlbiBpdCdzIG5lY2Vzc2FyeSB0byBicmVhayBvdXQgb2YgdGhlIHN0YW5kYXJkIGdyaWQuIEUuZy4gUGFzc2luZyBgMi40YCBpbiBhIHN0YW5kYXJkIDEyIGNvbHVtbiBncmlkIHdpbGwgZGl2aWRlIHRoZSByb3cgaW50byA1IGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudC4gQnkgZGVmYXVsdCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnQgb2YgdGhlIGVsZW1lbnQgdG8gYGJsb2NrYC5cbi8vL1xuLy8vICAgSWYgcGFzc2VkIGBibG9jay1jb2xsYXBzZWAsIGl0IGFsc28gcmVtb3ZlcyB0aGUgbWFyZ2luIGd1dHRlciBieSBhZGRpbmcgaXQgdG8gdGhlIGVsZW1lbnQgd2lkdGguXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgdGFibGVgLCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IHRvIGB0YWJsZS1jZWxsYCBhbmQgY2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIGVsZW1lbnQgd2l0aG91dCB0YWtpbmcgZ3V0dGVycyBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSByZXN1bHQgZG9lcyBub3QgYWxpZ24gd2l0aCB0aGUgYmxvY2stYmFzZWQgZ3JpZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy9cbi8vLyAgICAubmVzdGVkLWVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIgb2YgNik7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbi8vLyAgICAgd2lkdGg6IDQ4LjgyMTE3JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuLy8vICAgICB3aWR0aDogMzAuMTEzODklO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudCAubmVzdGVkLWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cblxuQG1peGluIHNwYW4tY29sdW1ucygkc3BhbjogJGNvbHVtbnMgb2YgJGNvbnRhaW5lci1jb2x1bW5zLCAkZGlzcGxheTogYmxvY2spIHtcbiAgJGNvbHVtbnM6IG50aCgkc3BhbiwgMSk7XG4gICRjb250YWluZXItY29sdW1uczogY29udGFpbmVyLXNwYW4oJHNwYW4pO1xuXG4gICRwYXJlbnQtY29sdW1uczogZ2V0LXBhcmVudC1jb2x1bW5zKCRjb250YWluZXItY29sdW1ucykgIWdsb2JhbDtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICAkZGlzcGxheS10YWJsZTogaXMtZGlzcGxheS10YWJsZSgkY29udGFpbmVyLWRpc3BsYXktdGFibGUsICRkaXNwbGF5KTtcblxuICBAaWYgJGRpc3BsYXktdGFibGUgIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgfSBAZWxzZSB7XG4gICAgZmxvYXQ6ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn07XG5cbiAgICBAaWYgJGRpc3BsYXkgIT0gbm8tZGlzcGxheSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJGRpc3BsYXkgPT0gY29sbGFwc2Uge1xuICAgICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAnY29sbGFwc2UnIGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZC4gVXNlICdibG9jay1jb2xsYXBzZScgaW5zdGVhZC5cIik7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIG9yICRkaXNwbGF5ID09IGJsb2NrLWNvbGxhcHNlIHtcbiAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucykgKyBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuICAgICAgfVxuXG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucyk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFkZWZhdWx0O1xuJGZnLWNvbHVtbjogJGNvbHVtbjtcbiRmZy1ndXR0ZXI6ICRndXR0ZXI7XG4kZmctbWF4LWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4kY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFkZWZhdWx0O1xuJGxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG59XG5cbkBmdW5jdGlvbiBnZXQtcGFyZW50LWNvbHVtbnMoJGNvbHVtbnMpIHtcbiAgQGlmICRjb2x1bW5zICE9ICRncmlkLWNvbHVtbnMge1xuICAgICRwYXJlbnQtY29sdW1uczogJGNvbHVtbnMgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRwYXJlbnQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1pcy1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSkge1xuICBAcmV0dXJuICRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSA9PSB0cnVlIG9yICRkaXNwbGF5ID09IHRhYmxlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJhbnNsYXRlcyBhbiBlbGVtZW50IGhvcml6b250YWxseSBieSBhIG51bWJlciBvZiBjb2x1bW5zLiBQb3NpdGl2ZSBhcmd1bWVudHMgc2hpZnQgdGhlIGVsZW1lbnQgdG8gdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uLCB3aGlsZSBuZWdhdGl2ZSBvbmVzIHNoaWZ0IGl0IHRvIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkbi1jb2x1bW5zIFsxXVxuLy8vICAgTnVtYmVyIG9mIGNvbHVtbnMgYnkgd2hpY2ggdGhlIGVsZW1lbnQgc2hpZnRzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBvdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IC0yNS41ODk0MSU7XG4vLy8gICB9XG5cbkBtaXhpbiBzaGlmdCgkbi1jb2x1bW5zOiAxKSB7XG4gIEBpbmNsdWRlIHNoaWZ0LWluLWNvbnRleHQoJG4tY29sdW1ucyk7XG59XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMsIGluIGEgc3BlY2lmaWMgbmVzdGluZyBjb250ZXh0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hpZnRcbi8vLyAgIEEgbGlzdCBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byBzaGlmdCAoYCRjb2x1bW5zYCkgYW5kIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiB0aGUgcGFyZW50IGVsZW1lbnQgKGAkY29udGFpbmVyLWNvbHVtbnNgKS5cbi8vL1xuLy8vICAgVGhlIHR3byB2YWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCB3aXRoIGFueSBzdHJpbmcgc3VjaCBhcyBgb2ZgLCBgL2AsIGV0Yy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaGlmdCgtMyBvZiA2KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBvdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IC01Mi40MTQ1OCU7XG4vLy8gICB9XG5cbkBtaXhpbiBzaGlmdC1pbi1jb250ZXh0KCRzaGlmdDogJGNvbHVtbnMgb2YgJGNvbnRhaW5lci1jb2x1bW5zKSB7XG4gICRuLWNvbHVtbnM6IG50aCgkc2hpZnQsIDEpO1xuICAkcGFyZW50LWNvbHVtbnM6IGNvbnRhaW5lci1zaGlmdCgkc2hpZnQpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRuLWNvbHVtbnMgKiBmbGV4LWdyaWQoMSwgJHBhcmVudC1jb2x1bW5zKSArICRuLWNvbHVtbnMgKiBmbGV4LWd1dHRlcigkcGFyZW50LWNvbHVtbnMpO1xuXG4gIC8vIFJlc2V0IG5lc3RpbmcgY29udGV4dFxuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWdsb2JhbDtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcblxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xuXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbi8vIGZsZXggfCBpbmxpbmUtZmxleFxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAvLyAyMDA5XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgZGlzcGxheTogYm94O1xuXG4gICAgLy8gMjAxMlxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfSBAZWxzZSB7XG4gICAgZGlzcGxheTogJHZhbHVlO1xuICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcblxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICRkaXJlY3Rpb246IG5vcm1hbDtcblxuICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIC8vIEFsdCB2YWx1ZXNcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRm9yY2VzIHRoZSBlbGVtZW50IHRvIGZpbGwgaXRzIHBhcmVudCBjb250YWluZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuLy8vICAgfVxuXG5AbWl4aW4gZmlsbC1wYXJlbnQoKSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gZmFsc2Uge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbn1cbiIsIiRjb2xvcl9fZGFuZXQ6ICMyYzdhYjY7XG5cbiRjb2xvcl9fYmFja2dyb3VuZC1ib2R5OiAjZmZmO1xuJGNvbG9yX19iYWNrZ3JvdW5kLXNjcmVlbjogI2YxZjFmMTtcbiRjb2xvcl9fYmFja2dyb3VuZC1ocjogI2NjYztcbiRjb2xvcl9fYmFja2dyb3VuZC1idXR0b246ICNlNmU2ZTY7XG4kY29sb3JfX2JhY2tncm91bmQtcHJlOiAjZWVlO1xuJGNvbG9yX19iYWNrZ3JvdW5kLWluczogI2ZmZjljMDtcbiRjb2xvcl9fYmFja2dyb3VuZC1saWdodDogI2VlZTtcblxuJGNvbG9yX19taXNjX2xpZ2h0OiAjY2NjO1xuXG5cbiRjb2xvcl9fdGV4dC1zY3JlZW46ICMyMTc1OWI7XG4kY29sb3JfX3RleHQtaW5wdXQ6ICM2NjY7XG4kY29sb3JfX3RleHQtaW5wdXQtZm9jdXM6ICMxMTE7XG4kY29sb3JfX2xpbms6ICRjb2xvcl9fZGFuZXQ7XG4kY29sb3JfX2xpbmstdmlzaXRlZDogJGNvbG9yX19kYW5ldDtcbiRjb2xvcl9fbGluay1ob3ZlcjogbGlnaHRlbigkY29sb3JfX2RhbmV0LCAyMCUpO1xuJGNvbG9yX190ZXh0LW1haW46ICM0MDQwNDA7XG5cbiRjb2xvcl9fYm9yZGVyLWJ1dHRvbjogI2NjYyAjY2NjICNiYmI7XG4kY29sb3JfX2JvcmRlci1idXR0b24taG92ZXI6ICNjY2MgI2JiYiAjYWFhO1xuJGNvbG9yX19ib3JkZXItYnV0dG9uLWZvY3VzOiAjYWFhICNiYmIgI2JiYjtcbiRjb2xvcl9fYm9yZGVyLWlucHV0OiAjY2NjO1xuJGNvbG9yX19ib3JkZXItYWJicjogIzY2NjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFJlbW92ZXMgdGhlIGVsZW1lbnQncyBndXR0ZXIgbWFyZ2luLCByZWdhcmRsZXNzIG9mIGl0cyBwb3NpdGlvbiBpbiB0aGUgZ3JpZCBoaWVyYXJjaHkgb3IgZGlzcGxheSBwcm9wZXJ0eS4gSXQgY2FuIHRhcmdldCBhIHNwZWNpZmljIGVsZW1lbnQsIG9yIGV2ZXJ5IGBudGgtY2hpbGRgIG9jY3VycmVuY2UuIFdvcmtzIG9ubHkgd2l0aCBgYmxvY2tgIGxheW91dHMuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeSBbYmxvY2tdXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50cy4gU3VwcG9ydGVkIGFyZ3VtZW50cyBhcmUgYG50aC1jaGlsZGAgc2VsZWN0b3JzICh0YXJnZXRzIGEgc3BlY2lmaWMgcHNldWRvIGVsZW1lbnQpIGFuZCBgYXV0b2AgKHRhcmdldHMgYGxhc3QtY2hpbGRgKS5cbi8vL1xuLy8vICAgV2hlbiBwYXNzZWQgYW4gYG50aC1jaGlsZGAgYXJndW1lbnQgb2YgdHlwZSBgKm5gIHdpdGggYGJsb2NrYCBkaXNwbGF5LCB0aGUgb21lZ2EgbWl4aW4gYXV0b21hdGljYWxseSBhZGRzIGEgY2xlYXIgdG8gdGhlIGAqbisxYCB0aCBlbGVtZW50LiBOb3RlIHRoYXQgY29tcG9zaXRlIGFyZ3VtZW50cyBzdWNoIGFzIGAybisxYCBkbyBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuXG4vLy9cbi8vLyAgICoqRGVwcmVjYXRpb24gd2FybmluZyoqOiBUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhIGAkZGlyZWN0aW9uYCBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgYHJvdygkZGlyZWN0aW9uKWAgb3Igc2V0IGAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uYCBpbnN0ZWFkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvbWVnYSg0bik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bikge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudDpudGgtY2hpbGQoNG4rMSkge1xuLy8vICAgICBjbGVhcjogbGVmdDtcbi8vLyAgIH1cblxuQG1peGluIG9tZWdhKCRxdWVyeTogYmxvY2ssICRkaXJlY3Rpb246IGRlZmF1bHQpIHtcbiAgJHRhYmxlOiBiZWxvbmdzLXRvKHRhYmxlLCAkcXVlcnkpO1xuICAkYXV0bzogYmVsb25ncy10byhhdXRvLCAkcXVlcnkpO1xuXG4gIEBpZiAkZGlyZWN0aW9uICE9IGRlZmF1bHQge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhICRkaXJlY3Rpb24gYXJndW1lbnQuIFRvIGNoYW5nZSB0aGUgbGF5b3V0IGRpcmVjdGlvbiwgdXNlIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gIH1cblxuICBAaWYgJHRhYmxlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG9tZWdhIG1peGluIG5vIGxvbmdlciByZW1vdmVzIHBhZGRpbmcgaW4gdGFibGUgbGF5b3V0cy5cIik7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQGlmICRhdXRvIHtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIGlmIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSBhbmQgJHRhYmxlID09IGZhbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQobnRoKCRxdWVyeSwgMSksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRvbyBtYW55IGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG9tZWdhKCkgbWl4aW4uXCIpO1xuICB9XG59XG5cbkBtaXhpbiBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJjpudGgtY2hpbGQoI3skcXVlcnl9KSB7XG4gICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkcXVlcnkpID09IG51bWJlciBhbmQgdW5pdCgkcXVlcnkpID09IFwiblwiIHtcbiAgICAmOm50aC1jaGlsZCgjeyRxdWVyeX0rMSkge1xuICAgICAgY2xlYXI6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEZXNpZ25hdGVzIHRoZSBlbGVtZW50IGFzIGEgcm93IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQgbGF5b3V0LiBJdCBjbGVhcnMgdGhlIGZsb2F0cyBvbiB0aGUgZWxlbWVudCBhbmQgc2V0cyBpdHMgZGlzcGxheSBwcm9wZXJ0eS4gUm93cyBjYW4ndCBiZSBuZXN0ZWQsIGJ1dCB0aGVyZSBjYW4gYmUgbW9yZSB0aGFuIG9uZSByb3cgZWxlbWVudOKAlHdpdGggZGlmZmVyZW50IGRpc3BsYXkgcHJvcGVydGllc+KAlHBlciBsYXlvdXQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2RlZmF1bHRdXG4vLy8gIFNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgYW5kIHRoZSBkaXNwbGF5IGNvbnRleHQgdGhhdCB3aWxsIGJlIHVzZWQgYnkgaXRzIGNoaWxkcmVuLiBDYW4gYmUgYGJsb2NrYCBvciBgdGFibGVgLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gWyRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25dXG4vLy8gIFNldHMgdGhlIGxheW91dCBkaXJlY3Rpb24uIENhbiBiZSBgTFRSYCAobGVmdC10by1yaWdodCkgb3IgYFJUTGAgKHJpZ2h0LXRvLWxlZnQpLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSByb3coKTtcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgKnpvb206IDE7XG4vLy8gICAgZGlzcGxheTogYmxvY2s7XG4vLy8gIH1cbi8vL1xuLy8vIC5lbGVtZW50OmJlZm9yZSwgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgY29udGVudDogXCIgXCI7XG4vLy8gICBkaXNwbGF5OiB0YWJsZTtcbi8vLyB9XG4vLy9cbi8vLyAuZWxlbWVudDphZnRlciB7XG4vLy8gICBjbGVhcjogYm90aDtcbi8vLyB9XG5cbkBtaXhpbiByb3coJGRpc3BsYXk6IGRlZmF1bHQsICRkaXJlY3Rpb246ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pIHtcbiAgQGlmICRkaXJlY3Rpb24gIT0gJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbiB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAkZGlyZWN0aW9uIGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xuICB9XG5cbiAgJGxheW91dC1kaXJlY3Rpb246ICRkaXJlY3Rpb24gIWdsb2JhbDtcblxuICBAaWYgJGRpc3BsYXkgIT0gZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAkZGlzcGxheSBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXNwbGF5KCl7Li4ufSBtaXhpbi5cIik7XG4gIH1cblxuICBAaWYgJGRpc3BsYXkgPT0gdGFibGUge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIEBpbmNsdWRlIGZpbGwtcGFyZW50O1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiB0cnVlICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWdsb2JhbDtcbiAgfVxufVxuIiwiaHRtbHtcbiAgJGJhc2UtYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuICAkYmFzZS1saW5lLWhlaWdodDogMS41ZW0gIWRlZmF1bHQ7XG4gICRiYXNlLXNwYWNpbmc6IDEuNWVtICFkZWZhdWx0O1xuICAkYWN0aW9uLWNvbG9yOiAkY29sb3JfX2RhbmV0ICFkZWZhdWx0O1xuICAkZGFyay1ncmF5OiAjMzMzICFkZWZhdWx0O1xuICAkbGlnaHQtZ3JheTogI0RERCAhZGVmYXVsdDtcbiAgJG1lZGl1bS1zY3JlZW46IGVtKDgwMHB4KSAhZGVmYXVsdDtcbiAgJGJhc2UtZm9udC1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcbiAgJHNhbnMtc2VyaWY6ICdRdWVzdHJpYWwnLCBzYW5zLXNlcmlmO1xuICAkc2VyaWY6ICdTYW5jaGV6Jywgc2VyaWY7XG5cbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGZvbnQtZmFtaWx5OiAkc2Fucy1zZXJpZjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICBoMSwgaDIsIGgzLCBwIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBociB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIG1hcmdpbjogJGJhc2Utc3BhY2luZyAwO1xuICB9XG5cbiAgcCB7XG4gICAgY29sb3I6ICRiYXNlLWZvbnQtY29sb3I7XG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICRhY3Rpb24tY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIFxuICAudHlwZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LWZhbWlseTogJHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAwLjdlbTtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIGgxIHtcbiAgICBmb250LWZhbWlseTogJHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxLjhlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuXG4gIH1cblxuICBoMiB7XG4gICAgZm9udC1mYW1pbHk6ICRzZXJpZjtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjFlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIH1cbiAgfVxuXG4gIGNvZGUge1xuICAgIGJhY2tncm91bmQ6ICNGN0Y3Rjc7XG4gICAgYm9yZGVyLXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cyAqIDEuNTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTBFMEUwO1xuICAgIGZvbnQtc2l6ZTogMC43ZW07XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHBhZGRpbmc6IDAuMWVtIDAuNGVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICBoMyB7XG4gICAgZm9udC1mYW1pbHk6ICRzZXJpZjtcbiAgICBmb250LXNpemU6IDEuNGVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuM2VtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNGVtO1xuICB9XG5cbiAgcC5kYXRlLFxuICBwLnBvc3RlZC1vbntcbiAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoJGJhc2UtZm9udC1jb2xvciwgMC42KTtcbiAgICBmb250LWZhbWlseTogJHNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIG1hcmdpbi1ib3R0b206IDAuM2VtO1xuICB9XG5cbiAgcCB7XG4gICAgZm9udC1mYW1pbHk6ICRzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMS4wNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgfVxuXG4gIGEucmVhZC1tb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6ICRzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tbGVmdDogMC4yZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogLTEycHg7XG4gICAgICB0b3A6IC0xcHg7XG4gICAgfVxuICB9XG4gIFxuICBociB7XG4gICAgd2lkdGg6IDNlbTtcbiAgfVxuXG4gIHAuYXV0aG9yIHtcbiAgICBmb250LWZhbWlseTogJHNhbnMtc2VyaWY7XG4gIH1cbn1cblxuQGltcG9ydCBcImNvcHlcIjtcbiIsInAge1xuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcbn1cblxuZGZuLCBjaXRlLCBlbSwgaSB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuYmxvY2txdW90ZSB7XG5cdG1hcmdpbjogMCAxLjVlbTtcbn1cblxuYWRkcmVzcyB7XG5cdG1hcmdpbjogMCAwIDEuNWVtO1xufVxuXG5wcmUge1xuXHRiYWNrZ3JvdW5kOiAkY29sb3JfX2JhY2tncm91bmQtcHJlO1xuXHRmb250LWZhbWlseTogJGZvbnRfX3ByZTtcblx0QGluY2x1ZGUgZm9udC1zaXplKDAuOTM3NSk7XG5cdGxpbmUtaGVpZ2h0OiAkZm9udF9fbGluZS1oZWlnaHQtcHJlO1xuXHRtYXJnaW4tYm90dG9tOiAxLjZlbTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRvdmVyZmxvdzogYXV0bztcblx0cGFkZGluZzogMS42ZW07XG59XG5cbmNvZGUsIGtiZCwgdHQsIHZhciB7XG5cdGZvbnQtZmFtaWx5OiAkZm9udF9fY29kZTtcblx0QGluY2x1ZGUgZm9udC1zaXplKDAuOTM3NSk7XG59XG5cbmFiYnIsIGFjcm9ueW0ge1xuXHRib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjb2xvcl9fYm9yZGVyLWFiYnI7XG5cdGN1cnNvcjogaGVscDtcbn1cblxubWFyaywgaW5zIHtcblx0YmFja2dyb3VuZDogJGNvbG9yX19iYWNrZ3JvdW5kLWlucztcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5iaWcge1xuXHRmb250LXNpemU6IDEyNSU7XG59IiwiJGZvbnRfX21haW46IHNhbnMtc2VyaWY7XG4kZm9udF9fY29kZTogTW9uYWNvLCBDb25zb2xhcywgXCJBbmRhbGUgTW9ub1wiLCBcIkRlamFWdSBTYW5zIE1vbm9cIiwgbW9ub3NwYWNlO1xuJGZvbnRfX3ByZTogXCJDb3VyaWVyIDEwIFBpdGNoXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRmb250X19saW5lLWhlaWdodC1ib2R5OiAxLjU7XG4kZm9udF9fbGluZS1oZWlnaHQtcHJlOiAxLjY7IiwiLy8gUmVtIG91dHB1dCB3aXRoIHB4IGZhbGxiYWNrXG5AbWl4aW4gZm9udC1zaXplKCRzaXplVmFsdWU6IDEpIHtcblx0Zm9udC1zaXplOiAoJHNpemVWYWx1ZSAqIDE2KSAqIDFweDtcblx0Zm9udC1zaXplOiAkc2l6ZVZhbHVlICogMXJlbTtcbn1cblxuLy8gQ2VudGVyIGJsb2NrXG5AbWl4aW4gY2VudGVyLWJsb2NrIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi8vIENsZWFyZml4XG5AbWl4aW4gY2xlYXJmaXgoKSB7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdGRpc3BsYXk6IHRhYmxlO1xufVxuXG4vLyBDbGVhciBhZnRlciAobm90IGFsbCBjbGVhcmZpeCBuZWVkIHRoaXMgYWxzbylcbkBtaXhpbiBjbGVhcmZpeC1hZnRlcigpIHtcblx0Y2xlYXI6IGJvdGg7XG59XG4iLCJodG1sIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7IC8qIEluaGVyaXQgYm94LXNpemluZyB0byBtYWtlIGl0IGVhc2llciB0byBjaGFuZ2UgdGhlIHByb3BlcnR5IGZvciBjb21wb25lbnRzIHRoYXQgbGV2ZXJhZ2Ugb3RoZXIgYmVoYXZpb3I7IHNlZSBodHRwOi8vY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlLyAqL1xuXHRib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcblx0YmFja2dyb3VuZDogJGNvbG9yX19iYWNrZ3JvdW5kLWJvZHk7IC8qIEZhbGxiYWNrIGZvciB3aGVuIHRoZXJlIGlzIG5vIGN1c3RvbSBiYWNrZ3JvdW5kIGNvbG9yIGRlZmluZWQuICovXG59XG5cbmJsb2NrcXVvdGUsIHEge1xuXHRxdW90ZXM6IFwiXCIgXCJcIjtcblxuXHQmOmJlZm9yZSxcblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0fVxufVxuXG5ociB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fYmFja2dyb3VuZC1ocjtcblx0Ym9yZGVyOiAwO1xuXHRoZWlnaHQ6IDFweDtcblx0bWFyZ2luLWJvdHRvbTogMS41ZW07XG59XG5cbkBpbXBvcnQgXCJsaXN0c1wiO1xuXG5pbWcge1xuXHRoZWlnaHQ6IGF1dG87IC8qIE1ha2Ugc3VyZSBpbWFnZXMgYXJlIHNjYWxlZCBjb3JyZWN0bHkuICovXG5cdG1heC13aWR0aDogMTAwJTsgLyogQWRoZXJlIHRvIGNvbnRhaW5lciB3aWR0aC4gKi9cbn1cblxuQGltcG9ydCBcInRhYmxlc1wiO1xuQGltcG9ydCBcImZsYXNoXCI7XG5AaW1wb3J0IFwiYWNjb3JkaW9uXCI7XG5AaW1wb3J0IFwiZXhwYW5kZXJcIjtcbiIsInVsLCBvbCB7XG5cdG1hcmdpbjogMCAwIDEuNWVtIDNlbTtcbiAgICBsaSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcbiAgICB9XG59XG5cbnVsIHtcblx0bGlzdC1zdHlsZTogZGlzYztcbn1cblxub2wge1xuXHRsaXN0LXN0eWxlOiBkZWNpbWFsO1xufVxuXG5saSA+IHVsLFxubGkgPiBvbCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdG1hcmdpbi1sZWZ0OiAxLjVlbTtcbn1cblxuZHQge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cblxuZGQge1xuXHRtYXJnaW46IDAgMS41ZW0gMS41ZW07XG59XG4iLCJ0YWJsZSB7XG5cdG1hcmdpbjogMCAwIDEuNWVtO1xuXHR3aWR0aDogMTAwJTtcbn0iLCIkYmFzZS1zcGFjaW5nOiAxLjVlbSAhZGVmYXVsdDtcbiRhbGVydC1jb2xvcjogI2ZmZjZiZiAhZGVmYXVsdDtcbiRlcnJvci1jb2xvcjogI2ZiZTNlNCAhZGVmYXVsdDtcbiRub3RpY2UtY29sb3I6ICNlNWVkZjggIWRlZmF1bHQ7XG4kc3VjY2Vzcy1jb2xvcjogI2U2ZWZjMiAhZGVmYXVsdDtcblxuQG1peGluIGZsYXNoKCRjb2xvcikge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICBjb2xvcjogZGFya2VuKCRjb2xvciwgNjAlKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nIC8gMjtcbiAgICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nIC8gMjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6IGRhcmtlbigkY29sb3IsIDcwJSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IGRhcmtlbigkY29sb3IsIDkwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mbGFzaC1hbGVydCB7XG4gICAgQGluY2x1ZGUgZmxhc2goJGFsZXJ0LWNvbG9yKTtcbn1cblxuLmZsYXNoLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmbGFzaCgkZXJyb3ItY29sb3IpO1xufVxuXG4uZmxhc2gtbm90aWNlIHtcbiAgICBAaW5jbHVkZSBmbGFzaCgkbm90aWNlLWNvbG9yKTtcbn1cblxuLmZsYXNoLXN1Y2Nlc3Mge1xuICAgIEBpbmNsdWRlIGZsYXNoKCRzdWNjZXNzLWNvbG9yKTtcbn1cblxuIiwiLmFjY29yZGlvbiB7ICBcbiAgICAkYmFzZS1ib3JkZXItY29sb3I6IGdhaW5zYm9ybyAhZGVmYXVsdDtcbiAgICAkYmFzZS1saW5lLWhlaWdodDogMS41ZW0gIWRlZmF1bHQ7XG4gICAgJGJhc2Utc3BhY2luZzogMS41ZW0gIWRlZmF1bHQ7XG4gICAgJGRhcmstZ3JheTogIzMzMyAhZGVmYXVsdDtcbiAgICAkYmFzZS1mb250LWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuICAgICRhY2NvcmRpb24tbWVudS1ib3JkZXItY29sb3I6ICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgICAkYWNjb3JkaW9uLW1lbnUtY29sb3I6ICRiYXNlLWZvbnQtY29sb3I7XG4gICAgJGFjY29yZGlvbi1tZW51LWJvcmRlcjogMXB4IHNvbGlkICRhY2NvcmRpb24tbWVudS1ib3JkZXItY29sb3I7XG4gICAgJGFjY29yZGlvbi1tZW51LWJhY2tncm91bmQ6IGxpZ2h0ZW4oJGFjY29yZGlvbi1tZW51LWJvcmRlci1jb2xvciwgMTAlKTtcbiAgICAkYWNjb3JkaW9uLW1lbnUtaG92ZXI6IGxpZ2h0ZW4oJGNvbG9yX19saW5rLWhvdmVyLCAxMCUpO1xuICAgICRhY2NvcmRpb24tbWVudS1zdWItYmFja2dyb3VuZDogZGFya2VuKCRhY2NvcmRpb24tbWVudS1iYWNrZ3JvdW5kLCA1JSk7XG4gICAgJGFjY29yZGlvbi1tZW51LXN1Yi1pbnNldDogZGFya2VuKCRhY2NvcmRpb24tbWVudS1zdWItYmFja2dyb3VuZCwgNiUpO1xuICAgICRhY2NvcmRpb24tbWVudS1zdWItaG92ZXI6IGxpZ2h0ZW4oJGFjY29yZGlvbi1tZW51LXN1Yi1iYWNrZ3JvdW5kLCAyJSk7XG4gICAgJGFjY29yZGlvbi1tZW51LWxpc3QtcGFkZGluZzogKCRiYXNlLXNwYWNpbmcgLyAyKSAkZ3V0dGVyO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1tZW51LWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAkYWNjb3JkaW9uLW1lbnUtYm9yZGVyO1xuICAgIG1hcmdpbjogMCAwICRiYXNlLXNwYWNpbmcgMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4IG9mIDgpO1xuICAgICAgICBAaW5jbHVkZSBzaGlmdCgwKTtcbiAgICAgICAgYXJ0aWNsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaGlmdCgwKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4IG9mIDgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNyBvZiA4KTtcbiAgICAgICAgQGluY2x1ZGUgc2hpZnQoMSk7XG4gICAgICAgIGFydGljbGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hpZnQoMCk7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4IG9mIDgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZSkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTAgb2YgMTIpO1xuICAgICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICAgIGFydGljbGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hpZnQoMCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgMTIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmVudHJ5LWNvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgYXJ0aWNsZSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb24tbWVudS1ib3JkZXI7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICAgPiBoZWFkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NvcmRpb24tbWVudS1jb2xvcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogJGFjY29yZGlvbi1tZW51LWxpc3QtcGFkZGluZztcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLmVudHJ5LWNvbnRlbnR7XG4gICAgICAgICAgICBwYWRkaW5nOiAkYWNjb3JkaW9uLW1lbnUtbGlzdC1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgICAgIC5lbnRyeS10aXRsZSxcbiAgICAgICAgLmVkaXQtbGlua3tcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NvcmRpb24tbWVudS1ob3ZlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5lbnRyeS1jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKCk7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXG4gICAgICAgIC5lbnRyeS10ZXh0e1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICAuZW50cnktbWV0YXtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNWVtO1xuICAgICAgICB9XG4gICAgICAgIC5lbnRyeS10aHVtYm5haWx7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gICAgICAgICAgICBAaW5jbHVkZSBvbWVnYSgpO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMS41ZW07XG4gICAgICAgIH1cbiAgICAgICAgLmVudHJ5LXByb2plY3RwYXJ0bmVyc3tcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgICAgICAgICBAaW5jbHVkZSBvbWVnYSgpO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMS41ZW07XG5cbiAgICAgICAgICAgIHVse1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qbGkgeyovXG4gICAgICAgICAgICAvKmJhY2tncm91bmQtY29sb3I6ICRhY2NvcmRpb24tbWVudS1zdWItYmFja2dyb3VuZDsqL1xuICAgICAgICAvKmxpIHsqL1xuICAgICAgICAgICAgLypiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjb3JkaW9uLW1lbnUtc3ViLWJhY2tncm91bmQ7Ki9cblxuICAgICAgICAgICAgLyomOmZpcnN0LWNoaWxkIHsqL1xuICAgICAgICAgICAgICAgIC8qYm9yZGVyLXRvcDogJGFjY29yZGlvbi1tZW51LWJvcmRlcjsqL1xuICAgICAgICAgICAgICAgIC8qYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4ICRhY2NvcmRpb24tbWVudS1zdWItaW5zZXQ7Ki9cbiAgICAgICAgICAgIC8qfSovXG5cbiAgICAgICAgICAgIC8qJjpmb2N1cywqL1xuICAgICAgICAgICAgLyomOmhvdmVyIHsqL1xuICAgICAgICAgICAgICAgIC8qYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1tZW51LXN1Yi1ob3ZlcjsqL1xuICAgICAgICAgICAgLyp9Ki9cbiAgICAgICAgLyp9Ki9cbiAgICB9XG5cbiAgICAuaXMtZXhwYW5kZWQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLmV4cGFuZGVyIHsgIFxuICAkYmFzZS1mb250LXNpemU6IDFlbSAhZGVmYXVsdDtcbiAgJGJhc2UtbGluZS1oZWlnaHQ6IDEuNWVtICFkZWZhdWx0O1xuICAkYmFzZS1zcGFjaW5nOiAxLjVlbSAhZGVmYXVsdDtcbiAgJGFjdGlvbi1jb2xvcjogIzQ3N0RDQSAhZGVmYXVsdDtcbiAgJGRhcmstZ3JheTogIzMzMyAhZGVmYXVsdDtcbiAgJGxpZ2h0LWdyYXk6ICNEREQgIWRlZmF1bHQ7XG4gICRiYXNlLWZvbnQtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG4gICRleHBhbmRlci1hcnJvdy13aWR0aDogMC43ZW07XG4gICRleHBhbmRlci10b2dnbGUtc2l6ZTogMWVtO1xuICAkZXhwYW5kZXItdG9nZ2xlLWFycm93LXNpemU6ICRleHBhbmRlci10b2dnbGUtc2l6ZTtcbiAgJGV4cGFuZGVyLXRvZ2dsZS1tYXJnaW46IDFlbTtcblxuICAuZXhwYW5kZXItdHJpZ2dlciB7XG4gICAgQGluY2x1ZGUgdXNlci1zZWxlY3Qobm9uZSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuICAgIGNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRleHBhbmRlci10b2dnbGUtc2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZXhwYW5kZXItdG9nZ2xlLXNpemU7XG4gICAgcGFkZGluZy1ib3R0b206ICRleHBhbmRlci10b2dnbGUtc2l6ZSAvIDQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgZm9udC1zaXplOiAkZXhwYW5kZXItYXJyb3ctd2lkdGg7XG4gICAgICBjb250ZW50OiBcIlxcMjVCQ1wiO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICB9XG4gIH1cblxuICAuZXhwYW5kZXItY29udGVudCBwIHtcbiAgICBjb2xvcjogJGJhc2UtZm9udC1jb2xvcjtcbiAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG4gIH1cblxuICAuZXhwYW5kZXItaGlkZGVuIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBmb250LXNpemU6ICRleHBhbmRlci1hcnJvdy13aWR0aDtcbiAgICAgIGNvbnRlbnQ6IFwiXFwyNUJBXCI7XG4gICAgfVxuICB9XG5cbiAgLmV4cGFuZGVyLWhpZGRlbiArIC5leHBhbmRlci1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbiIsImJ1dHRvbixcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0Ym9yZGVyOiAxcHggc29saWQ7XG5cdGJvcmRlci1jb2xvcjogJGNvbG9yX19ib3JkZXItYnV0dG9uO1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdGJhY2tncm91bmQ6ICRjb2xvcl9fYmFja2dyb3VuZC1idXR0b247XG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpLCBpbnNldCAwIDE1cHggMTdweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSksIGluc2V0IDAgLTVweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG5cdGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTtcblx0QGluY2x1ZGUgZm9udC1zaXplKDAuNzUpO1xuXHRsaW5lLWhlaWdodDogMTtcblx0cGFkZGluZzogLjZlbSAxZW0gLjRlbTtcblx0dGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJvcmRlci1jb2xvcjogJGNvbG9yX19ib3JkZXItYnV0dG9uLWhvdmVyO1xuXHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpLCBpbnNldCAwIDE1cHggMTdweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCksIGluc2V0IDAgLTVweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4wMik7XG5cdH1cblxuXHQmOmFjdGl2ZSxcblx0Jjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkY29sb3JfX2JvcmRlci1idXR0b24tZm9jdXM7XG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpLCBpbnNldCAwIDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcblx0fVxufSIsImlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cInVybFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG50ZXh0YXJlYSB7XG5cdGNvbG9yOiAkY29sb3JfX3RleHQtaW5wdXQ7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9fYm9yZGVyLWlucHV0O1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0Jjpmb2N1cyB7XG5cdFx0Y29sb3I6ICRjb2xvcl9fdGV4dC1pbnB1dC1mb2N1cztcblx0fVxufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcblx0cGFkZGluZzogM3B4O1xufVxuXG50ZXh0YXJlYSB7XG5cdHBhZGRpbmctbGVmdDogM3B4O1xuXHR3aWR0aDogMTAwJTtcbn0iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCBcImxpbmtzXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIE1lbnVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKkBpbXBvcnQgXCJtZW51c1wiOyovXG5oZWFkZXIubmF2aWdhdGlvbiB7XG4gICAgJGJhc2UtYm9yZGVyLWNvbG9yOiBnYWluc2Jvcm8gIWRlZmF1bHQ7XG4gICAgJGJhc2UtYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuICAgICRhY3Rpb24tY29sb3I6ICM0NzdEQ0EgIWRlZmF1bHQ7XG4gICAgLy8gICRkYXJrLWdyYXk6ICMzMzMgIWRlZmF1bHQ7XG4gICAgJGxhcmdlLXNjcmVlbjogZW0oODAwcHgpICFkZWZhdWx0O1xuICAgICRuYXZpZ2F0aW9uLXBhZGRpbmc6IDFlbTtcbiAgICAkbmF2aWdhdGlvbi1iYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAkbmF2aWdhdGlvbi1ib3JkZXItc3VibWVudTogZGFya2VuKHdoaXRlLCAxMCUpO1xuICAgICRuYXZpZ2F0aW9uLWNvbG9yOiAkY29sb3JfX3RleHQtbWFpbjtcbiAgICAkbmF2aWdhdGlvbi1jb2xvci1ob3ZlcjogJGNvbG9yX19saW5rO1xuICAgICRuYXZpZ2F0aW9uLWhlaWdodDogNTBweDtcbiAgICAkbmF2aWdhdGlvbi1uYXYtYnV0dG9uLWJhY2tncm91bmQ6ICRhY3Rpb24tY29sb3I7XG4gICAgJG5hdmlnYXRpb24tbmF2LWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBsaWdodGVuKCRuYXZpZ2F0aW9uLWJhY2tncm91bmQsIDEwJSk7XG4gICAgJG5hdmlnYXRpb24tbmF2LWJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCRuYXZpZ2F0aW9uLW5hdi1idXR0b24tYmFja2dyb3VuZCwgMjAlKTtcbiAgICAkbmF2aWdhdGlvbi1zZWFyY2gtYmFja2dyb3VuZDogbGlnaHRlbigkbmF2aWdhdGlvbi1iYWNrZ3JvdW5kLCA1KTtcbiAgICAkbmF2aWdhdGlvbi1zZWFyY2gtYm9yZGVyOiAxcHggc29saWQgZGFya2VuKCRuYXZpZ2F0aW9uLWJhY2tncm91bmQsIDUpO1xuICAgICRuYXZpZ2F0aW9uLWFjdGl2ZS1saW5rLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSh3aGl0ZSwgMC41KTtcbiAgICAkbmF2aWdhdGlvbi1zdWJtZW51LXBhZGRpbmc6IDFlbTtcbiAgICAkbmF2aWdhdGlvbi1zdWJtZW51LXdpZHRoOiAxMmVtO1xuICAgICRob3Jpem9udGFsLWJhci1tb2RlOiAkbGFyZ2Utc2NyZWVuO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZpZ2F0aW9uLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbigkbmF2aWdhdGlvbi1iYWNrZ3JvdW5kLCAxMCk7XG4gICAgbWluLWhlaWdodDogJG5hdmlnYXRpb24taGVpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDk5OTtcblxuICAgIC5uYXZpZ2F0aW9uLXdyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgfVxuXG4gICAgLmxvZ28ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWF4LWhlaWdodDogJG5hdmlnYXRpb24taGVpZ2h0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXZpZ2F0aW9uLXBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJlbTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogJG5hdmlnYXRpb24taGVpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC44ZW0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1vYmlsZSB2aWV3XG5cbiAgICAubmF2aWdhdGlvbi1tZW51LWJ1dHRvbiB7XG4gICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbi1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXZpZ2F0aW9uLWhlaWdodDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSAoJGhvcml6b250YWwtYmFyLW1vZGUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbi1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5hdiBtZW51XG4gICAgLm5hdmlnYXRpb24tcm9sZXtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1pbi1oZWlnaHQ6ICRuYXZpZ2F0aW9uLWhlaWdodDtcbiAgICAgICAgei1pbmRleDogOTk5OTk5OTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSAoJHRhYmxldCl7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhICgkaG9yaXpvbnRhbC1iYXItbW9kZSkge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bC5uYXZpZ2F0aW9uLW1lbnV7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiA5OTk5O1xuXG4gICAgICAgICYuc2hvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhICgkaG9yaXpvbnRhbC1iYXItbW9kZSkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBuYXYgaXRlbXNcblxuICAgIHVsIGxpLm1lbnUtaXRlbSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRuYXZpZ2F0aW9uLWJhY2tncm91bmQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBsaW5lLWhlaWdodDogJG5hdmlnYXRpb24taGVpZ2h0O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjhlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiA5OTk5O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhICgkaG9yaXpvbnRhbC1iYXItbW9kZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJG5hdmlnYXRpb24taGVpZ2h0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbi1jb2xvcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEgKCRob3Jpem9udGFsLWJhci1tb2RlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMWVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmN1cnJlbnQtbWVudS1pdGVtIGEge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG5hdmlnYXRpb24tYWN0aXZlLWxpbmstY29sb3I7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gICAgfVxuXG4gICAgLy8gU3ViIG1lbnVzXG5cbiAgICBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuLm1lbnUtaXRlbSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGhvcml6b250YWwtYmFyLW1vZGUpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRuYXZpZ2F0aW9uLXN1Ym1lbnUtcGFkZGluZztcbiAgICAgICAgfVxuXG4gICAgICAgID4gdWwgPiBsaTpmaXJzdC1jaGlsZCBhICB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRuYXZpZ2F0aW9uLXN1Ym1lbnUtcGFkZGluZztcbiAgICAgICAgfVxuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjZlbTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gYTphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgYXV0byAtMC40ZW0gYXV0byBhdXRvKTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXDI1QkUnO1xuICAgICAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbiB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC44ZW07XG4gICAgICAgIH1cblxuICAgICAgICA+IGEge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS42ZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRob3Jpem9udGFsLWJhci1tb2RlKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbmF2aWdhdGlvbi1zdWJtZW51LXBhZGRpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigLonO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkbmF2aWdhdGlvbi1zdWJtZW51LXBhZGRpbmcgLyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyA+IC5zdWItbWVudSxcbiAgICAgICAgJjpob3ZlciA+IC5zdWItbWVudSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRob3Jpem9udGFsLWJhci1tb2RlKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjhlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsLnN1Yi1tZW51IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGhvcml6b250YWwtYmFyLW1vZGUpIHtcbiAgICAgICAgICAgIGxlZnQ6IC0kbmF2aWdhdGlvbi1zdWJtZW51LXBhZGRpbmc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEuNWVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG5hdmlnYXRpb24tYm9yZGVyLXN1Ym1lbnU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2aWdhdGlvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRob3Jpem9udGFsLWJhci1tb2RlKSB7XG4gICAgICAgICAgICAgICAgbGVmdDogJG5hdmlnYXRpb24tc3VibWVudS13aWR0aCAtIDAuMmVtO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2aWdhdGlvbi1ib3JkZXItc3VibWVudTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2aWdhdGlvbi1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRob3Jpem9udGFsLWJhci1tb2RlKSB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXZpZ2F0aW9uLWhlaWdodCAvIDI7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYmFzZS1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCA+IGEge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkYmFzZS1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuN2VtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRuYXZpZ2F0aW9uLWJhY2tncm91bmQsIDMlKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAwO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGhvcml6b250YWwtYmFyLW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmlnYXRpb24tYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbmF2aWdhdGlvbi1zdWJtZW51LXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkbmF2aWdhdGlvbi1zdWJtZW51LXdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVsZW1lbnRzIG9uIHRoZSBmYXIgcmlnaHRcblxuICAgIC5uYXZpZ2F0aW9uLXRvb2xzIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzUwNTA1MDtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6ICRuYXZpZ2F0aW9uLWhlaWdodDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkaG9yaXpvbnRhbC1iYXItbW9kZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNlYXJjaCBiYXJcblxuICAgIC5zZWFyY2gtYmFyIHtcbiAgICAgICAgJHNlYXJjaC1iYXItYm9yZGVyLWNvbG9yOiAkYmFzZS1ib3JkZXItY29sb3I7XG4gICAgICAgICRzZWFyY2gtYmFyLWJvcmRlcjogMXB4IHNvbGlkICRzZWFyY2gtYmFyLWJvcmRlci1jb2xvcjtcbiAgICAgICAgJHNlYXJjaC1iYXItYmFja2dyb3VuZDogbGlnaHRlbigkc2VhcmNoLWJhci1ib3JkZXItY29sb3IsIDEwJSk7XG5cbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmc6IDAuODVlbSAwLjg1ZW0gMC43ZW0gMC42ZW07XG4gICAgICAgIHdpZHRoOiA2MCU7XG5cbiAgICAgICAgZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIGlucHV0W3R5cGU9c2VhcmNoXSB7XG4gICAgICAgICAgICAgICAgJGJvcmRlci1ib3gtc2l6aW5nOiB0cnVlICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRuYXZpZ2F0aW9uLXNlYXJjaC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXMgKiAyO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJG5hdmlnYXRpb24tc2VhcmNoLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb24tY29sb3I7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNWVtIDAuOGVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGhvcml6b250YWwtYmFyLW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBidXR0b25bdHlwZT1zdWJtaXRdIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbmF2aWdhdGlvbi1zZWFyY2gtYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwLjNlbTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCA5cHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjNlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDAuM2VtO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkaG9yaXpvbnRhbC1iYXItbW9kZSkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDE2ZW07XG5cbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICAkYm9yZGVyLWJveC1zaXppbmc6IHRydWUgIWRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsImEge1xuXHRjb2xvcjogJGNvbG9yX19saW5rO1xuXG5cdCY6dmlzaXRlZCB7XG5cdFx0Y29sb3I6ICRjb2xvcl9fbGluay12aXNpdGVkO1xuXHR9XG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogJGNvbG9yX19saW5rLWhvdmVyO1xuXHR9XG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IHRoaW4gZG90dGVkO1xuXHR9XG5cdCY6aG92ZXIsXG5cdCY6YWN0aXZlIHtcblx0XHRvdXRsaW5lOiAwO1xuXHR9XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iLCIvKiBUZXh0IG1lYW50IG9ubHkgZm9yIHNjcmVlbiByZWFkZXJzLiAqL1xuLnNjcmVlbi1yZWFkZXItdGV4dCB7XG5cdGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogMXB4O1xuXHR3aWR0aDogMXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdCY6Zm9jdXMge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fYmFja2dyb3VuZC1zY3JlZW47XG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdGJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcblx0XHRjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0Y29sb3I6ICRjb2xvcl9fdGV4dC1zY3JlZW47XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKDAuODc1KTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0bGVmdDogNXB4O1xuXHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0cGFkZGluZzogMTVweCAyM3B4IDE0cHg7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdHRvcDogNXB4O1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdHotaW5kZXg6IDEwMDAwMDsgLyogQWJvdmUgV1AgdG9vbGJhci4gKi9cblx0fVxufVxuIiwiLmFsaWdubGVmdCB7XG5cdGRpc3BsYXk6IGlubGluZTtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG1hcmdpbi1yaWdodDogMS41ZW07XG59XG5cbi5hbGlnbnJpZ2h0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRmbG9hdDogcmlnaHQ7XG5cdG1hcmdpbi1sZWZ0OiAxLjVlbTtcbn1cblxuLmFsaWduY2VudGVyIHtcblx0Y2xlYXI6IGJvdGg7XG5cdEBpbmNsdWRlIGNlbnRlci1ibG9jaztcbn1cbiIsIi5jbGVhcjpiZWZvcmUsXG4uY2xlYXI6YWZ0ZXIsXG4uZW50cnktY29udGVudDpiZWZvcmUsXG4uZW50cnktY29udGVudDphZnRlcixcbi5jb21tZW50LWNvbnRlbnQ6YmVmb3JlLFxuLmNvbW1lbnQtY29udGVudDphZnRlcixcbi5zaXRlLWhlYWRlcjpiZWZvcmUsXG4uc2l0ZS1oZWFkZXI6YWZ0ZXIsXG4uc2l0ZS1jb250ZW50OmJlZm9yZSxcbi5zaXRlLWNvbnRlbnQ6YWZ0ZXIsXG4uc2l0ZS1mb290ZXI6YmVmb3JlLFxuLnNpdGUtZm9vdGVyOmFmdGVyIHtcblx0QGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi5jbGVhcjphZnRlcixcbi5lbnRyeS1jb250ZW50OmFmdGVyLFxuLmNvbW1lbnQtY29udGVudDphZnRlcixcbi5zaXRlLWhlYWRlcjphZnRlcixcbi5zaXRlLWNvbnRlbnQ6YWZ0ZXIsXG4uc2l0ZS1mb290ZXI6YWZ0ZXIge1xuXHRAaW5jbHVkZSBjbGVhcmZpeC1hZnRlcjtcbn0iLCIud2lkZ2V0IHtcblx0bWFyZ2luOiAwIDAgMS41ZW07XG5cblx0LyogTWFrZSBzdXJlIHNlbGVjdCBlbGVtZW50cyBmaXQgaW4gd2lkZ2V0cy4gKi9cblx0c2VsZWN0IHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLyogU2VhcmNoIHdpZGdldC4gKi9cbi53aWRnZXRfc2VhcmNoIC5zZWFyY2gtc3VibWl0IHtcblx0ZGlzcGxheTogbm9uZTtcbn0iLCIvLyBAaW1wb3J0IFwiLi4vbGF5b3V0L2NvbnRlbnQtc2lkZWJhclwiO1xuLy8gQGltcG9ydCBcIi4uL2xheW91dC9zaWRlYmFyLWNvbnRlbnRcIjtcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIFBvc3RzIGFuZCBwYWdlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCBcInByaW1hcnkvcG9zdHMtYW5kLXBhZ2VzXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIEFzaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCBcInByaW1hcnkvYXNpZGVzXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIENvbW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwicHJpbWFyeS9jb21tZW50c1wiO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBDb21tZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCBcInByaW1hcnkvbmV3c1wiO1xuIiwiLnN0aWNreSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5ieWxpbmUsXG4udXBkYXRlZDpub3QoLnB1Ymxpc2hlZCl7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnNpbmdsZSAuYnlsaW5lLFxuLmdyb3VwLWJsb2cgLmJ5bGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uZW50cnktdGh1bWJuYWlsLFxuLmVudHJ5LXRleHQsXG4ucGFnZS1jb250ZW50LFxuLmVudHJ5LWNvbnRlbnQsXG4uZW50cnktc3VtbWFyeSB7XG4gICAgbWFyZ2luOiAwLjBlbSAwIDA7XG59XG5cbi5wYWdlLWxpbmtzIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBtYXJnaW46IDAgMCAxLjVlbTtcbn1cblxuIiwiLmJsb2cgLmZvcm1hdC1hc2lkZSAuZW50cnktdGl0bGUsXG4uYXJjaGl2ZSAuZm9ybWF0LWFzaWRlIC5lbnRyeS10aXRsZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59IiwiLmNvbW1lbnQtY29udGVudCBhIHtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLmJ5cG9zdGF1dGhvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLy8gV2l0aCBTaWRlYmFyXG5hcnRpY2xle1xuICAgIEBpbmNsdWRlIHJvdztcbiAgICBwYWRkaW5nOiAzLjBlbSAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfX21pc2NfbGlnaHQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCl7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4IG9mIDgpO1xuICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCl7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg3IG9mIDgpO1xuICAgICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpe1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTAgb2YgMTIpO1xuICAgICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcbiAgICB9XG4gICAgLmVudHJ5LXRodW1ibmFpbHtcbiAgICAgICAgaW1ne1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCl7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyBvZiA4KTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlKXtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBObyBTaWRlYmFyXG5cbiYuZnVsbC13aWR0aCBhcnRpY2xle1xuICAgIEBpbmNsdWRlIHJvdztcbiAgICBwYWRkaW5nOiAzLjBlbSAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfX21pc2NfbGlnaHQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCl7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMiBvZiAxMik7XG4gICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KXtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEwIG9mIDEyKTtcbiAgICAgICAgQGluY2x1ZGUgc2hpZnQoMSk7XG4gICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlKXtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEwIG9mIDEyKTtcbiAgICAgICAgQGluY2x1ZGUgc2hpZnQoMSk7XG4gICAgfVxuICAgIC5lbnRyeS10aHVtYm5haWx7XG4gICAgICAgIGltZ3tcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3Ape1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQgb2YgMTIpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpe1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuaGVhZGVyLnBhZ2UtaGVhZGVye1xuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKXtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDggb2YgOCk7XG4gICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KXtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDcgb2YgOCk7XG4gICAgICAgIEBpbmNsdWRlIHNoaWZ0KDEpO1xuICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZSl7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMCBvZiAxMik7XG4gICAgICAgIEBpbmNsdWRlIHNoaWZ0KDEpO1xuICAgIH1cbn1cblxuJi5mdWxsLXdpZHRoIGhlYWRlci5wYWdlLWhlYWRlcntcbiAgICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCl7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4IG9mIDgpO1xuICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCl7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg3IG9mIDgpO1xuICAgICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpe1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTAgb2YgMTIpO1xuICAgICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcbiAgICB9XG59XG5uYXYubmF2aWdhdGlvbi5wb3N0cy1uYXZpZ2F0aW9ue1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMCBvZiAxMik7XG4gICAgQGluY2x1ZGUgc2hpZnQoMSk7XG4gICAgbWFyZ2luLXRvcDogMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbn1cblxuIiwiLyogR2xvYmFsbHkgaGlkZGVuIGVsZW1lbnRzIHdoZW4gSW5maW5pdGUgU2Nyb2xsIGlzIHN1cHBvcnRlZCBhbmQgaW4gdXNlLiAqL1xuLmluZmluaXRlLXNjcm9sbCAucG9zdHMtbmF2aWdhdGlvbiwgLyogT2xkZXIgLyBOZXdlciBQb3N0cyBOYXZpZ2F0aW9uIChhbHdheXMgaGlkZGVuKSAqL1xuLmluZmluaXRlLXNjcm9sbC5uZXZlcmVuZGluZyAuc2l0ZS1mb290ZXIgeyAvKiBUaGVtZSBGb290ZXIgKHdoZW4gc2V0IHRvIHNjcm9sbGluZykgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLyogV2hlbiBJbmZpbml0ZSBTY3JvbGwgaGFzIHJlYWNoZWQgaXRzIGVuZCB3ZSBuZWVkIHRvIHJlLWRpc3BsYXkgZWxlbWVudHMgdGhhdCB3ZXJlIGhpZGRlbiAodmlhIC5uZXZlcmVuZGluZykgYmVmb3JlLiAqL1xuLmluZmluaXR5LWVuZC5uZXZlcmVuZGluZyAuc2l0ZS1mb290ZXIge1xuXHRkaXNwbGF5OiBibG9jaztcbn0iLCIucGFnZS1jb250ZW50IC53cC1zbWlsZXksXG4uZW50cnktY29udGVudCAud3Atc21pbGV5LFxuLmNvbW1lbnQtY29udGVudCAud3Atc21pbGV5IHtcblx0Ym9yZGVyOiBub25lO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBNYWtlIHN1cmUgZW1iZWRzIGFuZCBpZnJhbWVzIGZpdCB0aGVpciBjb250YWluZXJzLiAqL1xuZW1iZWQsXG5pZnJhbWUsXG5vYmplY3Qge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIENhcHRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwiY2FwdGlvbnNcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyMgR2FsbGVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwiZ2FsbGVyaWVzXCI7IiwiLndwLWNhcHRpb24ge1xuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdGltZ1tjbGFzcyo9XCJ3cC1pbWFnZS1cIl0ge1xuXHRcdEBpbmNsdWRlIGNlbnRlci1ibG9jaztcblx0fVxuXG5cdC53cC1jYXB0aW9uLXRleHQge1xuXHRcdG1hcmdpbjogMC44MDc1ZW0gMDtcblx0fVxufVxuXG4ud3AtY2FwdGlvbi10ZXh0IHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLmdhbGxlcnkge1xuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcbn1cblxuLmdhbGxlcnktaXRlbSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHR3aWR0aDogMTAwJTtcblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTIgJiB7XG5cdFx0bWF4LXdpZHRoOiA1MCU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTMgJiB7XG5cdFx0bWF4LXdpZHRoOiAzMy4zMyU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTQgJiB7XG5cdFx0bWF4LXdpZHRoOiAyNSU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTUgJiB7XG5cdFx0bWF4LXdpZHRoOiAyMCU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTYgJiB7XG5cdFx0bWF4LXdpZHRoOiAxNi42NiU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTcgJiB7XG5cdFx0bWF4LXdpZHRoOiAxNC4yOCU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTggJiB7XG5cdFx0bWF4LXdpZHRoOiAxMi41JTtcblx0fVxuXG5cdC5nYWxsZXJ5LWNvbHVtbnMtOSAmIHtcblx0XHRtYXgtd2lkdGg6IDExLjExJTtcblx0fVxufVxuXG4uZ2FsbGVyeS1jYXB0aW9uIHtcblx0ZGlzcGxheTogYmxvY2s7XG59Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */