/**
 * @group Color
 * @label Base Color (used for navbar, widget titles, etc.)
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Header/Footer Color
 * @type color
 * @default_value #222
 */
/**
 * @group Color
 * @label Pre-Footer Color
 * @type color
 * @default_value #ddd
 */
/**
 * @group Color
 * @label Color of links
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Hover color of links
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Background color of post meta boxes (author bio, related posts, etc.)
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Body Background Color
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Page Background Color
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Text Color
 * @type color
 * @default_value #333
 */
/**
 * @group Basics
 * @label Default Vertical Spacing
 * @type pixels
 * @default_value 24px
 */
/**
 * @group Typography
 * @label Sans Font Family
 * @type text
 * @default_value "Helvetica Neue", Helvetica, Arial, sans-serif
 */
/**
 * @group Typography
 * @label Serif Font Family
 * @type text
 */
/**
 * @group Typography
 * @label Base Font Size
 * @type pixels
 */
/**
 * @group Typography
 * @label Sans Font Family
 * @type dropdown
 * @options @serifFontFamily|@sansFontFamily
 * @default_value @serifFontFamily
 */
/**
 * @group Typography
 * @label Base Line Height
 * @type text
 * @default_value 1.5
 */
.clearfix {
  *zoom: 1;
}
.clearfix:before,
.clearfix:after {
  display: table;
  content: "";
}
.clearfix:after {
  clear: both;
}
.visuallyhidden {
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
}
.hide-text {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.input-block-level {
  display: block;
  width: 100%;
  min-height: 28px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
#site-header {
  margin: 0;
}
#main-nav.navbar {
  border-top: none;
  border-bottom: none;
}
.navbar .navbar-inner {
  background-color: #962930;
}
.navbar .nav > li > a {
  color: #fff;
}
#sticky-nav .nav > li > a,
.navbar .nav > li > a:hover {
  color: #333;
}
.dropdown .caret:before {
  border-top-color: #fff;
}
.donate-btn .icon-heart {
  display: none;
}
.widget {
  padding: 15px !important;
  border: 1px solid #ccc;
}
.widgettitle,
.stories h3.widgettitle {
  background-color: #962930;
  color: #fff;
  padding: 5px 10px;
  font-size: 15px;
}
.widgettitle a,
.stories h3.widgettitle a,
.widgettitle a:hover,
.stories h3.widgettitle a:hover {
  color: #fff;
}
.article-bottom .widget {
  padding: 0 !important;
  border: none;
}
.article-bottom .widgettitle {
  background-color: #fff;
  color: #333;
  padding: 0;
}
.widget.saved-links h5 {
  font-size: 19px;
  margin-bottom: 4px;
}
.widget.saved-links p {
  font-size: 14px;
}
/* member directory */
#map-container {
  width: 100%;
  height: 500px;
  margin-bottom: 2em;
}
.gm-style img {
  max-width: none;
}
.map-popup .map-name {
  font-weight: bold;
  font-size: 112%;
}
.map-popup .map-name:hover {
  text-decoration: none;
}
article.network_member {
  padding-bottom: 12px;
}
article.network_member > div {
  float: left;
  width: 80%;
}
article.network_member > a {
  display: block;
  float: left;
  margin-right: 20px;
  width: 30%;
  max-width: 140px;
}
article.network_member > a img {
  max-width: 100%;
}
.social {
  list-style: none;
  margin: 0;
}
.social li {
  display: inline-block;
  margin: 0 0.1em;
}
.social i {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  color: white;
  padding: 5px;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  -webkit-font-smoothing: antialiased;
}
.social i.icon-rss {
  background-color: #f89406;
}
.social i.icon-facebook {
  background-color: #4454a0;
}
.social i.icon-twitter {
  background-color: #0094c5;
}
.social i.icon-youtube {
  background-color: #c42f23;
}
.social i.icon-gplus {
  background-color: #ed202b;
}
.member-nav {
  vertical-align: middle;
  padding: 0.3em;
  background-color: #f4f4f4;
  margin: 1em 0;
  text-align: center;
  clear: both;
}
.member-nav ul {
  display: inline-block;
  margin: 0;
  padding: 0;
}
.member-nav ul:before {
  content: "Browse: ";
  font-weight: bold;
}
.member-nav li {
  display: inline-block;
  list-style: none;
  padding: 0 3px;
  margin: 0 3px;
}
@media screen and (max-width: 767px) {
  article.network_member > div,
  article.network_member > a {
    float: none;
    clear: both;
    display: block;
    width: 100%;
    margin: 1em 0;
  }
  article.network_member > a {
    overflow: auto;
  }
  article.network_member h2.entry-title {
    font-size: 32px;
  }
  .post-type-archive-network_member .archive-background {
    margin-bottom: 8px;
  }
}
/*
 * Styles for the resources page
 */
.resource-link {
  margin-bottom: 1em;
  border-radius: 0.5em;
  position: relative;
}
.resource-link a {
  display: block;
  padding: 2em;
  text-decoration: none;
}
.resource-link .title {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 14px;
  position: absolute;
  top: 0.5em;
  left: 0.5em;
}
.resource-link a:hover .title {
  text-decoration: underline;
}
.resource-link:nth-child(4n+1) {
  margin-left: 0;
  clear: left;
}
.resource-link.red {
  background-color: #c3343a;
}
.resource-link.red a {
  color: #302f2c;
}
.resource-link.dkgrey {
  background-color: #302f2c;
}
.resource-link.dkgrey a {
  color: #e67e24;
}
.resource-link.sedge {
  background-color: #b0a68f;
}
.resource-link.sedge a {
  color: #c3343a;
}
.resource-link.orange {
  background-color: #e67e24;
}
.resource-link.orange a {
  color: #302f2c;
}
.resource-link.khaki {
  background-color: #f7e6c3;
}
.resource-link.khaki a {
  color: #c3343a;
}
.page-template-page-resources h1.entry-title {
  text-transform: uppercase;
  color: #c3343a;
}
.page-template-page-resources .entry-content p:first-child {
  margin-top: 24px;
  border-top: 2px solid #302f2c;
  border-bottom: 2px solid #302f2c;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  padding-top: 0.3em;
  padding-bottom: 0.3em;
  display: block;
}
.page-template-page-resources .entry-content form {
  margin-bottom: 1em;
  clear: both;
}
.page-template-page-resources .entry-content form > * {
  float: left;
  box-sizing: border-box;
}
.page-template-page-resources .entry-content form label {
  color: #c3343a;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: bold;
  font-size: 18px;
  width: 70px;
}
.page-template-page-resources .entry-content form button {
  background-color: #c3343a;
  color: #f7e6c3;
  border-color: #c3343a;
  border-style: solid;
  border-width: 1px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  width: 50px;
}
.page-template-page-resources .entry-content form select,
.page-template-page-resources .entry-content form input {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  background-color: #eee;
}
.page-template-page-resources .entry-content form input {
  width: 45%;
  width: calc( 100% - 70px - 50px - 100px);
  min-width: 200px;
}
.page-template-page-resources .entry-content form select {
  height: 34px;
  width: auto;
  width: 100px;
}
.page-template-page-resources .entry-content .widgettitle {
  font-size: 15px;
}
.page-template-page-resources .widget {
  border: 2px #000000 solid;
  border-radius: 0.5em;
}
.page-template-page-resources li a.rsswidget {
  color: #962930;
  font-size: 20px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: bold;
  margin-bottom: 0.2em;
}
.page-template-page-resources .rssSummary {
  line-height: 1.5;
}
@media (max-width: 768px) {
  .resource-link.span3 {
    width: 100%;
    margin: 0 0 1em 0;
    display: block;
    clear: both;
    display: table-cell;
    vertical-align: middle;
  }
  .resource-link img {
    max-width: 15%;
  }
  .resource-link .title {
    position: static;
    font-size: 1.5em;
    padding-left: 1em;
  }
  .row .span6 {
    width: 100%;
    margin-left: 0;
  }
}
#advanced-search {
  font-weight: bold;
  font-size: 16px;
  display: block;
  border-bottom: 2px #000000 solid;
  padding-bottom: 24px;
}
#advanced-search a {
  text-decoration: none;
}
.sans {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.red:hover,
.red {
  color: #c3343a;
}
/*
 * Here we break the Largo responsive styles for desktop and tablet devices, to create a wider central column and narrower right column
 */
@media only screen and (min-width: 768px) {
  .page-template-page-resources .row-fluid #content.span8 {
    width: 73%;
  }
  .page-template-page-resources .row-fluid #sidebar.span4 {
    margin-left: 5%;
    width: 22%;
  }
}
#creative-commons {
  display: inline-block;
  vertical-align: baseline;
}
#creative-commons img {
  display: inline-block;
  max-width: 90px;
  margin-right: 2em;
  margin-top: 22.0491312163px;
  margin-bottom: 16.5368484122px;
}
#site-footer a,
#boilerplate a {
  color: #eee;
}
#boilerplate a:hover,
.donate-btn a:hover,
#site-footer a:hover,
#related-post-nav a:hover {
  color: #fff;
}
@media (max-width: 980px) {
  .load-more {
    margin-bottom: 24px;
  }
}
@media (max-width: 768px) {
  #site-footer .widget-area,
  #site-footer .widget,
  #site-footer div[class^="span"] {
    margin-bottom: 0;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  #site-footer ul li {
    font-size: 18px;
    line-height: 1.5;
  }
}
.home #content-main {
  padding-left: 2.12769574%;
}
.home .stories h2.entry-title {
  font-size: 24px;
}
#homepage-featured h4.related-story {
  font-size: 20px;
}
.icon-listserv:before {
  content: '\75';
}
#mc_embed_signup input {
  width: 90%;
  padding: 5px;
  display: block;
  margin: 10px auto;
}
#mc_embed_signup input.button {
  max-width: 65%;
  background-color: #962930;
  border: none;
  color: #fff;
}
#mc_embed_signup input.button:hover {
  background-color: #be343d;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xhcmdvL2xlc3MvaW5jL21peGlucy5sZXNzIiwibGVzcy9faGVhZGVyLmxlc3MiLCJsZXNzL193aWRnZXRzLmxlc3MiLCJsZXNzL21lbWJlcnMubGVzcyIsImxlc3MvcmVzb3VyY2VzLmxlc3MiLCIuLi9sYXJnby9sZXNzL2luYy92YXJpYWJsZXMubGVzcyIsImxlc3MvX2Zvb3Rlci5sZXNzIiwibGVzcy9zdHlsZS5sZXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUE7RUFDRSxRQUFBOztBQUNBLFNBQUM7QUFDRCxTQUFDO0VBQ0MsY0FBQTtFQUNBLFNBQVMsRUFBVDs7QUFFRixTQUFDO0VBQ0MsV0FBQTs7QUFPSjtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxNQUFNLGFBQU47RUFDQSxXQUFBO0VBQWEsVUFBQTtFQUNiLFlBQUE7RUFBYyxVQUFBO0VBQVksU0FBQTs7QUFNNUI7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLDZCQUFBO0VBQ0EsU0FBQTs7QUFJRjtFQUNFLGNBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUF3UEEsOEJBQUE7RUFDRywyQkFBQTtFQUNDLDBCQUFBO0VBQ0ksc0JBQUE7O0FDM1NWO0VBQ0UsU0FBQTs7QUFFRixTQUFTO0VBQ1AsZ0JBQUE7RUFDQSxtQkFBQTs7QUFFRixPQUNFO0VBQ0UseUJBQUE7O0FBRkosT0FJRSxLQUFLLEtBQUs7RUFDUixXQUFBOztBQUdKLFdBQVksS0FBSyxLQUFLO0FBQ3RCLE9BQVEsS0FBSyxLQUFLLElBQUc7RUFDbkIsV0FBQTs7QUFFRixTQUFVLE9BQU07RUFDZCxzQkFBQTs7QUFFRixXQUFZO0VBQ1YsYUFBQTs7QUN2QkY7RUFDRSx3QkFBQTtFQUNBLHNCQUFBOztBQUVGO0FBQ0EsUUFBUyxHQUFF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QSxjQUFBO0VBQ0EsZ0NBQUE7RUFDQSxvQkFBQTs7QUFMRixnQkFPRTtFQUNFLHFCQUFBOztBQUdKO0VBQ0UsYUMvQnNCLDhDRCtCdEI7O0FBRUYsSUFBSTtBQUNKO0VBQ0UsY0FBQTs7Ozs7QUFpQkY7RUFWRSw2QkFDRSxXQUFXLFNBQVE7SUFDakIsVUFBQTs7RUFGSiw2QkFJRSxXQUFXLFNBQVE7SUFDakIsZUFBQTtJQUNBLFVBQUE7OztBRWhNTjtFQUNFLHFCQUFBO0VBQ0Esd0JBQUE7O0FBRkYsaUJBSUU7RUFDRSxxQkFBQTtFQUNBLGVBQUE7RUFFQSxpQkFBQTtFQUlBLDJCQUFBO0VBQ0EsOEJBQUE7O0FDREosWUFBYTtBQUNiLFlBQWE7RUFDWCxXQUFBOztBQUVGLFlBQWEsRUFBQztBQUNkLFdBQVksRUFBQztBQUNiLFlBQWEsRUFBQztBQUNkLGlCQUFrQixFQUFDO0VBQ2pCLFdBQUE7O0FBT0YsUUFMNEI7RUFDMUI7SUFDRSxtQkFBQTs7O0FBbUJKLFFBaEI0QjtFQUMxQixZQUNFO0VBREYsWUFFRTtFQUZGLFlBR0UsSUFBRztJQUNKLGdCQUFBO0lBQ0EseUJBQUE7SUFDQSw0QkFBQTs7RUFORCxZQVFFLEdBQUc7SUFDSixlQUFBO0lBQ0EsZ0JBQUE7OztBQUtILEtBQ0U7RUFDRSx5QkFBQTs7QUFGSixLQUlFLFNBQVMsR0FBRTtFQUNULGVBQUE7O0FBR0osa0JBQW1CLEdBQUU7RUFDbkIsZUFBQTs7QUFFRixjQUFjO0VBQVUsU0FBUyxLQUFUOztBQUV4QixnQkFDRTtFQUNFLFVBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBOztBQUNBLGdCQUxGLE1BS0c7RUFDRixjQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTs7QUFDQSxnQkFWRCxNQUtHLE9BS0Q7RUFDQyx5QkFBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIE1peGlucy5sZXNzXG4vLyBTbmlwcGV0cyBvZiByZXVzYWJsZSBDU1MgdG8gZGV2ZWxvcCBmYXN0ZXIgYW5kIGtlZXAgY29kZSByZWFkYWJsZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gVVRJTElUWSBNSVhJTlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIENsZWFyZml4XG4vLyAtLS0tLS0tLVxuLy8gRm9yIGNsZWFyaW5nIGZsb2F0cyBsaWtlIGEgYm9zcyBoNWJwLmNvbS9xXG4uY2xlYXJmaXgge1xuICAqem9vbTogMTtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8gQ1NTIGltYWdlIHJlcGxhY2VtZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIaWRlIGFuIGl0ZW0gdmlzdWFsbHkgb25seVxuLnZpc3VhbGx5aGlkZGVuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDsgd2lkdGg6IDFweDtcbiAgbWFyZ2luOiAtMXB4OyBwYWRkaW5nOiAwOyBib3JkZXI6IDA7XG59XG5cbi8vIENTUyBpbWFnZSByZXBsYWNlbWVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9jb21taXQvYWEwMzk2ZWFlNzU3XG4uaGlkZS10ZXh0IHtcbiAgZm9udDogMC8wIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG59XG5cbi8vIEJsb2NrIGxldmVsIGZvcm0gaW5wdXRzXG4uaW5wdXQtYmxvY2stbGV2ZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDI4cHg7ICAgICAgICAvLyBNYWtlIGlucHV0cyBhdCBsZWFzdCB0aGUgaGVpZ2h0IG9mIHRoZWlyIGJ1dHRvbiBjb3VudGVycGFydFxuICAuYm94LXNpemluZyhib3JkZXItYm94KTsgLy8gTWFrZXMgaW5wdXRzIGJlaGF2ZSBsaWtlIHRydWUgYmxvY2stbGV2ZWwgZWxlbWVudHNcbn1cblxuLy8gV2Via2l0LXN0eWxlIGZvY3VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi50YWItZm9jdXMoKSB7XG4gIC8vIERlZmF1bHRcbiAgb3V0bGluZTogdGhpbiBkb3R0ZWQgIzMzMztcbiAgLy8gV2Via2l0XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cbi8vIENlbnRlci1hbGlnbiBhIGJsb2NrIGxldmVsIGVsZW1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5jZW50ZXItYmxvY2soKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vLyBJRTcgaW5saW5lLWJsb2NrXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG4uaWU3LWlubGluZS1ibG9jaygpIHtcbiAgKmRpc3BsYXk6IGlubGluZTsgLyogSUU3IGlubGluZS1ibG9jayBoYWNrICovXG4gICp6b29tOiAxO1xufVxuXG4vLyBJRTcgbGlrZXMgdG8gY29sbGFwc2Ugd2hpdGVzcGFjZSBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgaW5saW5lLWJsb2NrIGVsZW1lbnRzLlxuLy8gRW1zIGJlY2F1c2Ugd2UncmUgYXR0ZW1wdGluZyB0byBtYXRjaCB0aGUgd2lkdGggb2YgYSBzcGFjZSBjaGFyYWN0ZXIuIExlZnRcbi8vIHZlcnNpb24gaXMgZm9yIGZvcm0gYnV0dG9ucywgd2hpY2ggdHlwaWNhbGx5IGNvbWUgYWZ0ZXIgb3RoZXIgZWxlbWVudHMsIGFuZFxuLy8gcmlnaHQgdmVyc2lvbiBpcyBmb3IgaWNvbnMsIHdoaWNoIGNvbWUgYmVmb3JlLiBBcHBseWluZyBib3RoIGlzIG9rLCBidXQgaXQgd2lsbFxuLy8gbWVhbiB0aGF0IHNwYWNlIGJldHdlZW4gdGhvc2UgZWxlbWVudHMgd2lsbCBiZSAuNmVtICh+MiBzcGFjZSBjaGFyYWN0ZXJzKSBpbiBJRTcsXG4vLyBpbnN0ZWFkIG9mIHRoZSAxIHNwYWNlIGluIG90aGVyIGJyb3dzZXJzLlxuLmllNy1yZXN0b3JlLWxlZnQtd2hpdGVzcGFjZSgpIHtcbiAgKm1hcmdpbi1sZWZ0OiAuM2VtO1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgICptYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4uaWU3LXJlc3RvcmUtcmlnaHQtd2hpdGVzcGFjZSgpIHtcbiAgKm1hcmdpbi1yaWdodDogLjNlbTtcblxuICAmOmxhc3QtY2hpbGQge1xuICAgICptYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4vLyBTaXppbmcgc2hvcnRjdXRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uc2l6ZShAaGVpZ2h0LCBAd2lkdGgpIHtcbiAgd2lkdGg6IEB3aWR0aDtcbiAgaGVpZ2h0OiBAaGVpZ2h0O1xufVxuLnNxdWFyZShAc2l6ZSkge1xuICAuc2l6ZShAc2l6ZSwgQHNpemUpO1xufVxuXG4vLyBQbGFjZWhvbGRlciB0ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucGxhY2Vob2xkZXIoQGNvbG9yOiBAcGxhY2Vob2xkZXJUZXh0KSB7XG4gICY6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgfVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgfVxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICB9XG59XG5cbi8vIFRleHQgb3ZlcmZsb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBmb3IgcHJvcGVyIHN0eWxpbmdcbi50ZXh0LW92ZXJmbG93KCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuXG4vLyBGT05UU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuI2ZvbnQge1xuICAjZmFtaWx5IHtcbiAgICAuc2VyaWYoKSB7XG4gICAgICBmb250LWZhbWlseTogQHNlcmlmRm9udEZhbWlseTtcbiAgICB9XG4gICAgLnNhbnMtc2VyaWYoKSB7XG4gICAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICAgIH1cbiAgICAubW9ub3NwYWNlKCkge1xuICAgICAgZm9udC1mYW1pbHk6IEBtb25vRm9udEZhbWlseTtcbiAgICB9XG4gIH1cbiAgLnNob3J0aGFuZChAc2l6ZTogQGJhc2VGb250U2l6ZSwgQHdlaWdodDogbm9ybWFsLCBAbGluZUhlaWdodDogQGJhc2VMaW5lSGVpZ2h0KSB7XG4gICAgZm9udC1zaXplOiBAc2l6ZTtcbiAgICBmb250LXdlaWdodDogQHdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogQGxpbmVIZWlnaHQ7XG4gIH1cbiAgLnNlcmlmKEBzaXplOiBAYmFzZUZvbnRTaXplLCBAd2VpZ2h0OiBub3JtYWwsIEBsaW5lSGVpZ2h0OiBAYmFzZUxpbmVIZWlnaHQpIHtcbiAgICAjZm9udCA+ICNmYW1pbHkgPiAuc2VyaWY7XG4gICAgI2ZvbnQgPiAuc2hvcnRoYW5kKEBzaXplLCBAd2VpZ2h0LCBAbGluZUhlaWdodCk7XG4gIH1cbiAgLnNhbnMtc2VyaWYoQHNpemU6IEBiYXNlRm9udFNpemUsIEB3ZWlnaHQ6IG5vcm1hbCwgQGxpbmVIZWlnaHQ6IEBiYXNlTGluZUhlaWdodCkge1xuICAgICNmb250ID4gI2ZhbWlseSA+IC5zYW5zLXNlcmlmO1xuICAgICNmb250ID4gLnNob3J0aGFuZChAc2l6ZSwgQHdlaWdodCwgQGxpbmVIZWlnaHQpO1xuICB9XG4gIC5tb25vc3BhY2UoQHNpemU6IEBiYXNlRm9udFNpemUsIEB3ZWlnaHQ6IG5vcm1hbCwgQGxpbmVIZWlnaHQ6IEBiYXNlTGluZUhlaWdodCkge1xuICAgICNmb250ID4gI2ZhbWlseSA+IC5tb25vc3BhY2U7XG4gICAgI2ZvbnQgPiAuc2hvcnRoYW5kKEBzaXplLCBAd2VpZ2h0LCBAbGluZUhlaWdodCk7XG4gIH1cbn1cblxuXG4vLyBGT1JNU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTWl4aW4gZm9yIGZvcm0gZmllbGQgc3RhdGVzXG4uZm9ybUZpZWxkU3RhdGUoQHRleHRDb2xvcjogIzU1NSwgQGJvcmRlckNvbG9yOiAjY2NjLCBAYmFja2dyb3VuZENvbG9yOiAjZjVmNWY1KSB7XG4gIC8vIFNldCB0aGUgdGV4dCBjb2xvclxuICA+IGxhYmVsLFxuICAuaGVscC1ibG9jayxcbiAgLmhlbHAtaW5saW5lIHtcbiAgICBjb2xvcjogQHRleHRDb2xvcjtcbiAgfVxuICAvLyBTdHlsZSBpbnB1dHMgYWNjb3JkaW5nbHlcbiAgLmNoZWNrYm94LFxuICAucmFkaW8sXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBjb2xvcjogQHRleHRDb2xvcjtcbiAgICBib3JkZXItY29sb3I6IEBib3JkZXJDb2xvcjtcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBib3JkZXJDb2xvciwgMTAlKTtcbiAgICAgIC5ib3gtc2hhZG93KDAgMCA2cHggbGlnaHRlbihAYm9yZGVyQ29sb3IsIDIwJSkpO1xuICAgIH1cbiAgfVxuICAvLyBHaXZlIGEgc21hbGwgYmFja2dyb3VuZCBjb2xvciBmb3IgaW5wdXQtcHJlcGVuZC8tYXBwZW5kXG4gIC5pbnB1dC1wcmVwZW5kIC5hZGQtb24sXG4gIC5pbnB1dC1hcHBlbmQgLmFkZC1vbiB7XG4gICAgY29sb3I6IEB0ZXh0Q29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmRDb2xvcjtcbiAgICBib3JkZXItY29sb3I6IEB0ZXh0Q29sb3I7XG4gIH1cbn1cblxuXG5cbi8vIENTUzMgUFJPUEVSVElFU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQm9yZGVyIFJhZGl1c1xuLmJvcmRlci1yYWRpdXMoQHJhZGl1cykge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IEByYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogQHJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiBAcmFkaXVzO1xufVxuXG4vLyBEcm9wIHNoYWRvd3Ncbi5ib3gtc2hhZG93KEBzaGFkb3cpIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBAc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6IEBzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogQHNoYWRvdztcbn1cblxuLy8gVHJhbnNpdGlvbnNcbi50cmFuc2l0aW9uKEB0cmFuc2l0aW9uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG4gICAgIC1tb3otdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG4gICAgICAtbXMtdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG4gICAgICAgLW8tdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG59XG5cbi8vIFRyYW5zZm9ybWF0aW9uc1xuLnJvdGF0ZShAZGVncmVlcykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbiAgICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG59XG4uc2NhbGUoQHJhdGlvKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xuICAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgICAgLW8tdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbn1cbi50cmFuc2xhdGUoQHgsIEB5KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbiAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG4gICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xufVxuLnNrZXcoQHgsIEB5KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3KEB4LCBAeSk7XG4gICAgIC1tb3otdHJhbnNmb3JtOiBza2V3KEB4LCBAeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBza2V3KEB4LCBAeSk7XG4gICAgICAgLW8tdHJhbnNmb3JtOiBza2V3KEB4LCBAeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBza2V3KEB4LCBAeSk7XG59XG4udHJhbnNsYXRlM2QoQHgsIEB5LCBAeikge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSwgQHopO1xuICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSwgQHopO1xuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSwgQHopO1xuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSwgQHopO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSwgQHopO1xufVxuXG4vLyBCYWNrZmFjZSB2aXNpYmlsaXR5XG4vLyBQcmV2ZW50IGJyb3dzZXJzIGZyb20gZmxpY2tlcmluZyB3aGVuIHVzaW5nIENTUyAzRCB0cmFuc2Zvcm1zLlxuLy8gRGVmYXVsdCB2YWx1ZSBpcyBgdmlzaWJsZWAsIGJ1dCBjYW4gYmUgY2hhbmdlZCB0byBgaGlkZGVuXG4vLyBTZWUgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL2Rhbm55a2VhbmUvYm9vdHN0cmFwLmdpdCBiYWNrZmFjZS12aXNpYmlsaXR5IGZvciBleGFtcGxlc1xuLmJhY2tmYWNlLXZpc2liaWxpdHkoQHZpc2liaWxpdHkpe1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xuICAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xuICAgICAgLW1zLWJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xufVxuXG4vLyBCYWNrZ3JvdW5kIGNsaXBwaW5nXG4vLyBIZWFkcyB1cDogRkYgMy42IGFuZCB1bmRlciBuZWVkIFwicGFkZGluZ1wiIGluc3RlYWQgb2YgXCJwYWRkaW5nLWJveFwiXG4uYmFja2dyb3VuZC1jbGlwKEBjbGlwKSB7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiBAY2xpcDtcbiAgICAgLW1vei1iYWNrZ3JvdW5kLWNsaXA6IEBjbGlwO1xuICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogQGNsaXA7XG59XG5cbi8vIEJhY2tncm91bmQgc2l6aW5nXG4uYmFja2dyb3VuZC1zaXplKEBzaXplKXtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6IEBzaXplO1xuICAgICAtbW96LWJhY2tncm91bmQtc2l6ZTogQHNpemU7XG4gICAgICAgLW8tYmFja2dyb3VuZC1zaXplOiBAc2l6ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IEBzaXplO1xufVxuXG5cbi8vIEJveCBzaXppbmdcbi5ib3gtc2l6aW5nKEBib3htb2RlbCkge1xuICAtd2Via2l0LWJveC1zaXppbmc6IEBib3htb2RlbDtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiBAYm94bW9kZWw7XG4gICAgICAtbXMtYm94LXNpemluZzogQGJveG1vZGVsO1xuICAgICAgICAgIGJveC1zaXppbmc6IEBib3htb2RlbDtcbn1cblxuLy8gVXNlciBzZWxlY3Rcbi8vIEZvciBzZWxlY3RpbmcgdGV4dCBvbiB0aGUgcGFnZVxuLnVzZXItc2VsZWN0KEBzZWxlY3QpIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogQHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogQHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogQHNlbGVjdDtcbiAgICAgICAtby11c2VyLXNlbGVjdDogQHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogQHNlbGVjdDtcbn1cblxuLy8gUmVzaXplIGFueXRoaW5nXG4ucmVzaXphYmxlKEBkaXJlY3Rpb24pIHtcbiAgcmVzaXplOiBAZGlyZWN0aW9uOyAvLyBPcHRpb25zOiBob3Jpem9udGFsLCB2ZXJ0aWNhbCwgYm90aFxuICBvdmVyZmxvdzogYXV0bzsgLy8gU2FmYXJpIGZpeFxufVxuXG4vLyBDU1MzIENvbnRlbnQgQ29sdW1uc1xuLmNvbnRlbnQtY29sdW1ucyhAY29sdW1uQ291bnQsIEBjb2x1bW5HYXA6IEBncmlkR3V0dGVyV2lkdGgpIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IEBjb2x1bW5Db3VudDtcbiAgICAgLW1vei1jb2x1bW4tY291bnQ6IEBjb2x1bW5Db3VudDtcbiAgICAgICAgICBjb2x1bW4tY291bnQ6IEBjb2x1bW5Db3VudDtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiBAY29sdW1uR2FwO1xuICAgICAtbW96LWNvbHVtbi1nYXA6IEBjb2x1bW5HYXA7XG4gICAgICAgICAgY29sdW1uLWdhcDogQGNvbHVtbkdhcDtcbn1cblxuLy8gT3B0aW9uYWwgaHlwaGVuYXRpb25cbi5oeXBoZW5zKEBtb2RlOiBhdXRvKSB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgLXdlYmtpdC1oeXBoZW5zOiBAbW9kZTtcbiAgICAgLW1vei1oeXBoZW5zOiBAbW9kZTtcbiAgICAgIC1tcy1oeXBoZW5zOiBAbW9kZTtcbiAgICAgICAtby1oeXBoZW5zOiBAbW9kZTtcbiAgICAgICAgICBoeXBoZW5zOiBAbW9kZTtcbn1cblxuLy8gT3BhY2l0eVxuLm9wYWNpdHkoQG9wYWNpdHkpIHtcbiAgb3BhY2l0eTogQG9wYWNpdHkgLyAxMDA7XG4gIGZpbHRlcjogflwiYWxwaGEob3BhY2l0eT1Ae29wYWNpdHl9KVwiO1xufVxuXG5cblxuLy8gQkFDS0dST1VORFNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEFkZCBhbiBhbHBoYXRyYW5zcGFyZW5jeSB2YWx1ZSB0byBhbnkgYmFja2dyb3VuZCBvciBib3JkZXIgY29sb3IgKHZpYSBFbHlzZSBIb2xsYWRheSlcbiN0cmFuc2x1Y2VudCB7XG4gIC5iYWNrZ3JvdW5kKEBjb2xvcjogQHdoaXRlLCBAYWxwaGE6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKGh1ZShAY29sb3IpLCBzYXR1cmF0aW9uKEBjb2xvciksIGxpZ2h0bmVzcyhAY29sb3IpLCBAYWxwaGEpO1xuICB9XG4gIC5ib3JkZXIoQGNvbG9yOiBAd2hpdGUsIEBhbHBoYTogMSkge1xuICAgIGJvcmRlci1jb2xvcjogaHNsYShodWUoQGNvbG9yKSwgc2F0dXJhdGlvbihAY29sb3IpLCBsaWdodG5lc3MoQGNvbG9yKSwgQGFscGhhKTtcbiAgICAuYmFja2dyb3VuZC1jbGlwKHBhZGRpbmctYm94KTtcbiAgfVxufVxuXG4vLyBHcmFkaWVudCBCYXIgQ29sb3JzIGZvciBidXR0b25zIGFuZCBhbGVydHNcbi5ncmFkaWVudEJhcihAcHJpbWFyeUNvbG9yLCBAc2Vjb25kYXJ5Q29sb3IpIHtcbiAgI2dyYWRpZW50ID4gLnZlcnRpY2FsKEBwcmltYXJ5Q29sb3IsIEBzZWNvbmRhcnlDb2xvcik7XG4gIGJvcmRlci1jb2xvcjogQHNlY29uZGFyeUNvbG9yIEBzZWNvbmRhcnlDb2xvciBkYXJrZW4oQHNlY29uZGFyeUNvbG9yLCAxNSUpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwwLDAsLjEpIHJnYmEoMCwwLDAsLjEpIGZhZGVpbihyZ2JhKDAsMCwwLC4xKSwgMTUlKTtcbn1cblxuLy8gR3JhZGllbnRzXG4jZ3JhZGllbnQge1xuICAuaG9yaXpvbnRhbChAc3RhcnRDb2xvcjogIzU1NSwgQGVuZENvbG9yOiAjMzMzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGVuZENvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBGRiAzLjYrXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gSUUxMFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDEwMCUgMCwgZnJvbShAc3RhcnRDb2xvciksIHRvKEBlbmRDb2xvcikpOyAvLyBTYWZhcmkgNCssIENocm9tZSAyK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lIDEwK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gT3BlcmEgMTEuMTBcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIExlIHN0YW5kYXJkXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTEpXCIsQHN0YXJ0Q29sb3IsQGVuZENvbG9yKSk7IC8vIElFOSBhbmQgZG93blxuICB9XG4gIC52ZXJ0aWNhbChAc3RhcnRDb2xvcjogIzU1NSwgQGVuZENvbG9yOiAjMzMzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KEBzdGFydENvbG9yLCBAZW5kQ29sb3IsIDYwJSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gRkYgMy42K1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gSUUxMFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbShAc3RhcnRDb2xvciksIHRvKEBlbmRDb2xvcikpOyAvLyBTYWZhcmkgNCssIENocm9tZSAyK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWUgMTArXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIE9wZXJhIDExLjEwXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIFRoZSBzdGFuZGFyZFxuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0wKVwiLEBzdGFydENvbG9yLEBlbmRDb2xvcikpOyAvLyBJRTkgYW5kIGRvd25cbiAgfVxuICAuZGlyZWN0aW9uYWwoQHN0YXJ0Q29sb3I6ICM1NTUsIEBlbmRDb2xvcjogIzMzMywgQGRlZzogNDVkZWcpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZW5kQ29sb3I7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBGRiAzLjYrXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gSUUxMFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lIDEwK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gT3BlcmEgMTEuMTBcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIFRoZSBzdGFuZGFyZFxuICB9XG4gIC52ZXJ0aWNhbC10aHJlZS1jb2xvcnMoQHN0YXJ0Q29sb3I6ICMwMGIzZWUsIEBtaWRDb2xvcjogIzdhNDNiNiwgQGNvbG9yU3RvcDogNTAlLCBAZW5kQ29sb3I6ICNjMzMyNWYpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoQG1pZENvbG9yLCBAZW5kQ29sb3IsIDgwJSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9tKEBzdGFydENvbG9yKSwgY29sb3Itc3RvcChAY29sb3JTdG9wLCBAbWlkQ29sb3IpLCB0byhAZW5kQ29sb3IpKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAc3RhcnRDb2xvciwgQG1pZENvbG9yIEBjb2xvclN0b3AsIEBlbmRDb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnRDb2xvciwgQG1pZENvbG9yIEBjb2xvclN0b3AsIEBlbmRDb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChAc3RhcnRDb2xvciwgQG1pZENvbG9yIEBjb2xvclN0b3AsIEBlbmRDb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KEBzdGFydENvbG9yLCBAbWlkQ29sb3IgQGNvbG9yU3RvcCwgQGVuZENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQHN0YXJ0Q29sb3IsIEBtaWRDb2xvciBAY29sb3JTdG9wLCBAZW5kQ29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MClcIixAc3RhcnRDb2xvcixAZW5kQ29sb3IpKTsgLy8gSUU5IGFuZCBkb3duLCBnZXRzIG5vIGNvbG9yLXN0b3AgYXQgYWxsIGZvciBwcm9wZXIgZmFsbGJhY2tcbiAgfVxuICAucmFkaWFsKEBpbm5lckNvbG9yOiAjNTU1LCBAb3V0ZXJDb2xvcjogIzMzMykgIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAb3V0ZXJDb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KHJhZGlhbCwgY2VudGVyIGNlbnRlciwgMCwgY2VudGVyIGNlbnRlciwgNDYwLCBmcm9tKEBpbm5lckNvbG9yKSwgdG8oQG91dGVyQ29sb3IpKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIEBpbm5lckNvbG9yLCBAb3V0ZXJDb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBAaW5uZXJDb2xvciwgQG91dGVyQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBAaW5uZXJDb2xvciwgQG91dGVyQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIEBpbm5lckNvbG9yLCBAb3V0ZXJDb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgfVxuICAuc3RyaXBlZChAY29sb3IsIEBhbmdsZTogLTQ1ZGVnKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDEwMCUsIDEwMCUgMCwgY29sb3Itc3RvcCguMjUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSksIGNvbG9yLXN0b3AoLjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpKSwgY29sb3Itc3RvcCguNzUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSksIGNvbG9yLXN0b3AoLjc1LCB0cmFuc3BhcmVudCksIHRvKHRyYW5zcGFyZW50KSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQGFuZ2xlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQoQGFuZ2xlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChAYW5nbGUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQGFuZ2xlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICB9XG59XG4vLyBSZXNldCBmaWx0ZXJzIGZvciBJRVxuLnJlc2V0LWZpbHRlcigpIHtcbiAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKVwiKSk7XG59XG5cblxuXG4vLyBDT01QT05FTlQgTUlYSU5TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBCdXR0b24gYmFja2dyb3VuZHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLmJ1dHRvbkJhY2tncm91bmQoQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcikge1xuICAvLyBncmFkaWVudEJhciB3aWxsIHNldCB0aGUgYmFja2dyb3VuZCB0byBhIHBsZWFzaW5nIGJsZW5kIG9mIHRoZXNlLCB0byBzdXBwb3J0IElFPD05XG4gIC5ncmFkaWVudEJhcihAc3RhcnRDb2xvciwgQGVuZENvbG9yKTtcbiAgKmJhY2tncm91bmQtY29sb3I6IEBlbmRDb2xvcjsgLyogRGFya2VuIElFNyBidXR0b25zIGJ5IGRlZmF1bHQgc28gdGhleSBzdGFuZCBvdXQgbW9yZSBnaXZlbiB0aGV5IHdvbid0IGhhdmUgYm9yZGVycyAqL1xuICAucmVzZXQtZmlsdGVyKCk7XG5cbiAgLy8gaW4gdGhlc2UgY2FzZXMgdGhlIGdyYWRpZW50IHdvbid0IGNvdmVyIHRoZSBiYWNrZ3JvdW5kLCBzbyB3ZSBvdmVycmlkZVxuICAmOmhvdmVyLCAmOmFjdGl2ZSwgJi5hY3RpdmUsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZW5kQ29sb3I7XG4gICAgKmJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAZW5kQ29sb3IsIDUlKTtcbiAgfVxuXG4gIC8vIElFIDcgKyA4IGNhbid0IGhhbmRsZSBib3gtc2hhZG93IHRvIHNob3cgYWN0aXZlLCBzbyB3ZSBkYXJrZW4gYSBiaXQgb3Vyc2VsdmVzXG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBlbmRDb2xvciwgMTAlKSBlKFwiXFw5XCIpO1xuICB9XG59XG5cbi8vIE5hdmJhciB2ZXJ0aWNhbCBhbGlnblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVmVydGljYWxseSBjZW50ZXIgZWxlbWVudHMgaW4gdGhlIG5hdmJhci5cbi8vIEV4YW1wbGU6IGFuIGVsZW1lbnQgaGFzIGEgaGVpZ2h0IG9mIDMwcHgsIHNvIHdyaXRlIG91dCBgLm5hdmJhclZlcnRpY2FsQWxpZ24oMzBweCk7YCB0byBjYWxjdWxhdGUgdGhlIGFwcHJvcHJpYXRlIHRvcCBtYXJnaW4uXG4ubmF2YmFyVmVydGljYWxBbGlnbihAZWxlbWVudEhlaWdodCkge1xuICBtYXJnaW4tdG9wOiAoQG5hdmJhckhlaWdodCAtIEBlbGVtZW50SGVpZ2h0KSAvIDI7XG59XG5cbi8vIFBvcG92ZXIgYXJyb3dzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGb3IgdGlwc2llcyBhbmQgcG9wb3ZlcnNcbiNwb3BvdmVyQXJyb3cge1xuICAudG9wKEBhcnJvd1dpZHRoOiA1cHgsIEBjb2xvcjogQGJsYWNrKSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLUBhcnJvd1dpZHRoO1xuICAgIGJvcmRlci1sZWZ0OiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IEBhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IEBhcnJvd1dpZHRoIHNvbGlkIEBjb2xvcjtcbiAgfVxuICAubGVmdChAYXJyb3dXaWR0aDogNXB4LCBAY29sb3I6IEBibGFjaykge1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbi10b3A6IC1AYXJyb3dXaWR0aDtcbiAgICBib3JkZXItdG9wOiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogQGFycm93V2lkdGggc29saWQgQGNvbG9yO1xuICB9XG4gIC5ib3R0b20oQGFycm93V2lkdGg6IDVweCwgQGNvbG9yOiBAYmxhY2spIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtQGFycm93V2lkdGg7XG4gICAgYm9yZGVyLWxlZnQ6IEBhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogQGFycm93V2lkdGggc29saWQgQGNvbG9yO1xuICB9XG4gIC5yaWdodChAYXJyb3dXaWR0aDogNXB4LCBAY29sb3I6IEBibGFjaykge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLUBhcnJvd1dpZHRoO1xuICAgIGJvcmRlci10b3A6IEBhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IEBhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogQGFycm93V2lkdGggc29saWQgQGNvbG9yO1xuICB9XG59XG5cbi8vIEdyaWQgU3lzdGVtXG4vLyAtLS0tLS0tLS0tLVxuXG4vLyBDZW50ZXJlZCBjb250YWluZXIgZWxlbWVudFxuLmNvbnRhaW5lci1maXhlZCgpIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgLmNsZWFyZml4KCk7XG59XG5cbi8vIFRhYmxlIGNvbHVtbnNcbi50YWJsZUNvbHVtbnMoQGNvbHVtblNwYW46IDEpIHtcbiAgZmxvYXQ6IG5vbmU7IC8vIHVuZG8gZGVmYXVsdCBncmlkIGNvbHVtbiBzdHlsZXNcbiAgd2lkdGg6ICgoQGZsdWlkR3JpZENvbHVtbldpZHRoKSAqIEBjb2x1bW5TcGFuKSArIChAZmx1aWRHcmlkR3V0dGVyV2lkdGggKiAoQGNvbHVtblNwYW4gLSAxKSkgLSAxNjsgLy8gMTYgaXMgdG90YWwgcGFkZGluZyBvbiBsZWZ0IGFuZCByaWdodCBvZiB0YWJsZSBjZWxsc1xuICBtYXJnaW4tbGVmdDogMDsgLy8gdW5kbyBkZWZhdWx0IGdyaWQgY29sdW1uIHN0eWxlc1xufVxuXG4vLyBNYWtlIGEgR3JpZFxuLy8gVXNlIC5tYWtlUm93IGFuZCAubWFrZUNvbHVtbiB0byBhc3NpZ24gc2VtYW50aWMgbGF5b3V0cyBncmlkIHN5c3RlbSBiZWhhdmlvclxuLm1ha2VSb3coKSB7XG4gIG1hcmdpbi1sZWZ0OiBAZ3JpZEd1dHRlcldpZHRoICogLTE7XG4gIC5jbGVhcmZpeCgpO1xufVxuLm1ha2VDb2x1bW4oQGNvbHVtbnM6IDEsIEBvZmZzZXQ6IDApIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAoQGdyaWRDb2x1bW5XaWR0aCAqIEBvZmZzZXQpICsgKEBncmlkR3V0dGVyV2lkdGggKiAoQG9mZnNldCAtIDEpKSArIChAZ3JpZEd1dHRlcldpZHRoICogMik7XG4gIHdpZHRoOiAoQGdyaWRDb2x1bW5XaWR0aCAqIEBjb2x1bW5zKSArIChAZ3JpZEd1dHRlcldpZHRoICogKEBjb2x1bW5zIC0gMSkpO1xufVxuXG4vLyBUaGUgR3JpZFxuI2dyaWQge1xuXG4gIC5jb3JlIChAZ3JpZENvbHVtbldpZHRoLCBAZ3JpZEd1dHRlcldpZHRoKSB7XG5cbiAgICAuc3BhblggKEBpbmRleCkgd2hlbiAoQGluZGV4ID4gMCkge1xuICAgICAgLnNwYW5Ae2luZGV4fSB7IC5zcGFuKEBpbmRleCk7IH1cbiAgICAgIC5zcGFuWChAaW5kZXggLSAxKTtcbiAgICB9XG4gICAgLnNwYW5YICgwKSB7fVxuXG4gICAgLm9mZnNldFggKEBpbmRleCkgd2hlbiAoQGluZGV4ID4gMCkge1xuICAgICAgLm9mZnNldEB7aW5kZXh9IHsgLm9mZnNldChAaW5kZXgpOyB9XG4gICAgICAub2Zmc2V0WChAaW5kZXggLSAxKTtcbiAgICB9XG4gICAgLm9mZnNldFggKDApIHt9XG5cbiAgICAub2Zmc2V0IChAY29sdW1ucykge1xuICAgICAgbWFyZ2luLWxlZnQ6IChAZ3JpZENvbHVtbldpZHRoICogQGNvbHVtbnMpICsgKEBncmlkR3V0dGVyV2lkdGggKiAoQGNvbHVtbnMgKyAxKSk7XG4gICAgfVxuXG4gICAgLnNwYW4gKEBjb2x1bW5zKSB7XG4gICAgICB3aWR0aDogKEBncmlkQ29sdW1uV2lkdGggKiBAY29sdW1ucykgKyAoQGdyaWRHdXR0ZXJXaWR0aCAqIChAY29sdW1ucyAtIDEpKTtcbiAgICB9XG5cbiAgICAucm93IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBAZ3JpZEd1dHRlcldpZHRoICogLTE7XG4gICAgICAuY2xlYXJmaXgoKTtcbiAgICB9XG5cbiAgICBbY2xhc3MqPVwic3BhblwiXSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBAZ3JpZEd1dHRlcldpZHRoO1xuICAgIH1cblxuICAgIC8vIFNldCB0aGUgY29udGFpbmVyIHdpZHRoLCBhbmQgb3ZlcnJpZGUgaXQgZm9yIGZpeGVkIG5hdmJhcnMgaW4gbWVkaWEgcXVlcmllc1xuICAgIC5jb250YWluZXIsXG4gICAgLm5hdmJhci1maXhlZC10b3AgLmNvbnRhaW5lcixcbiAgICAubmF2YmFyLWZpeGVkLWJvdHRvbSAuY29udGFpbmVyIHsgLnNwYW4oQGdyaWRDb2x1bW5zKTsgfVxuXG4gICAgLy8gZ2VuZXJhdGUgLnNwYW5YIGFuZCAub2Zmc2V0WFxuICAgIC5zcGFuWCAoQGdyaWRDb2x1bW5zKTtcbiAgICAub2Zmc2V0WCAoQGdyaWRDb2x1bW5zKTtcblxuICB9XG5cbiAgLmZsdWlkIChAZmx1aWRHcmlkQ29sdW1uV2lkdGgsIEBmbHVpZEdyaWRHdXR0ZXJXaWR0aCkge1xuXG4gICAgLnNwYW5YIChAaW5kZXgpIHdoZW4gKEBpbmRleCA+IDApIHtcbiAgICAgIC5zcGFuQHtpbmRleH0geyAuc3BhbihAaW5kZXgpOyB9XG4gICAgICAuc3BhblgoQGluZGV4IC0gMSk7XG4gICAgfVxuICAgIC5zcGFuWCAoMCkge31cblxuICAgIC5zcGFuIChAY29sdW1ucykge1xuICAgICAgd2lkdGg6IChAZmx1aWRHcmlkQ29sdW1uV2lkdGggKiBAY29sdW1ucykgKyAoQGZsdWlkR3JpZEd1dHRlcldpZHRoICogKEBjb2x1bW5zIC0gMSkpO1xuICAgICAgKndpZHRoOiAoQGZsdWlkR3JpZENvbHVtbldpZHRoICogQGNvbHVtbnMpICsgKEBmbHVpZEdyaWRHdXR0ZXJXaWR0aCAqIChAY29sdW1ucyAtIDEpKSAtICguNSAvIEBncmlkUm93V2lkdGggKiAxMDAgKiAxJSk7XG4gICAgfVxuXG4gICAgLnJvdy1mbHVpZCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIC5jbGVhcmZpeCgpO1xuICAgICAgW2NsYXNzKj1cInNwYW5cIl0ge1xuICAgICAgICAuaW5wdXQtYmxvY2stbGV2ZWwoKTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBAZmx1aWRHcmlkR3V0dGVyV2lkdGg7XG4gICAgICAgICptYXJnaW4tbGVmdDogQGZsdWlkR3JpZEd1dHRlcldpZHRoIC0gKC41IC8gQGdyaWRSb3dXaWR0aCAqIDEwMCAqIDElKTtcbiAgICAgIH1cbiAgICAgIFtjbGFzcyo9XCJzcGFuXCJdOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC8vIGdlbmVyYXRlIC5zcGFuWFxuICAgICAgLnNwYW5YIChAZ3JpZENvbHVtbnMpO1xuICAgIH1cblxuICB9XG5cbiAgLmlucHV0KEBncmlkQ29sdW1uV2lkdGgsIEBncmlkR3V0dGVyV2lkdGgpIHtcblxuICAgIC5zcGFuWCAoQGluZGV4KSB3aGVuIChAaW5kZXggPiAwKSB7XG4gICAgICBpbnB1dC5zcGFuQHtpbmRleH0sIHRleHRhcmVhLnNwYW5Ae2luZGV4fSwgLnVuZWRpdGFibGUtaW5wdXQuc3BhbkB7aW5kZXh9IHsgLnNwYW4oQGluZGV4KTsgfVxuICAgICAgLnNwYW5YKEBpbmRleCAtIDEpO1xuICAgIH1cbiAgICAuc3BhblggKDApIHt9XG5cbiAgICAuc3BhbihAY29sdW1ucykge1xuICAgICAgd2lkdGg6ICgoQGdyaWRDb2x1bW5XaWR0aCkgKiBAY29sdW1ucykgKyAoQGdyaWRHdXR0ZXJXaWR0aCAqIChAY29sdW1ucyAtIDEpKSAtIDEwO1xuICAgIH1cblxuICAgIGlucHV0LFxuICAgIHRleHRhcmVhLFxuICAgIC51bmVkaXRhYmxlLWlucHV0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyAvLyBvdmVycmlkZSBtYXJnaW4tbGVmdCBmcm9tIGNvcmUgZ3JpZCBzeXN0ZW1cbiAgICB9XG5cbiAgICAvLyBnZW5lcmF0ZSAuc3BhblhcbiAgICAuc3BhblggKEBncmlkQ29sdW1ucyk7XG5cbiAgfVxuXG59XG5cbi5kYXJrTGlnaHQgKEBhKSB3aGVuIChsaWdodG5lc3MoQGEpID49IDUwJSkge1xuICBjb2xvcjogQGdyYXlEYXJrZXI7XG59XG4uZGFya0xpZ2h0IChAYSkgd2hlbiAobGlnaHRuZXNzKEBhKSA8IDUwJSkge1xuICBjb2xvcjogQHdoaXRlO1xufVxuLnNvY2lhbEJ1dHRvbiAoQG5ldHdvcmspIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG5ldHdvcms7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAbmV0d29yaywgNSUpOyAgXG4gIH1cbn0iLCIjc2l0ZS1oZWFkZXIge1xuICBtYXJnaW46IDA7XG59XG4jbWFpbi1uYXYubmF2YmFyIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5uYXZiYXIge1xuICAubmF2YmFyLWlubmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmVkO1xuICB9XG4gIC5uYXYgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG59XG4jc3RpY2t5LW5hdiAubmF2ID4gbGkgPiBhLFxuLm5hdmJhciAubmF2ID4gbGkgPiBhOmhvdmVyIHtcbiAgY29sb3I6ICMzMzM7XG59XG4uZHJvcGRvd24gLmNhcmV0OmJlZm9yZSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmZmY7XG59XG4uZG9uYXRlLWJ0biAuaWNvbi1oZWFydCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59IiwiLndpZGdldCB7XG4gIHBhZGRpbmc6IDE1cHggIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbn1cbi53aWRnZXR0aXRsZSxcbi5zdG9yaWVzIGgzLndpZGdldHRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHJlZDtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDE1cHg7XG59XG4ud2lkZ2V0dGl0bGUsXG4uc3RvcmllcyBoMy53aWRnZXR0aXRsZSB7XG4gIGEsXG4gIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG59XG4uYXJ0aWNsZS1ib3R0b20ge1xuICAud2lkZ2V0IHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG4gIC53aWRnZXR0aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBjb2xvcjogIzMzMztcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG4ud2lkZ2V0LnNhdmVkLWxpbmtzIHtcbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIH1cbiAgcCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG59XG5cbi5sYXJnby1mb2xsb3cge1xuICAubGlzdHNlcnYge1xuICAgIC8vLnNvY2lhbEJ1dHRvbiAoIzY2Nik7XG4gIH1cbn1cbiIsIi8qIG1lbWJlciBkaXJlY3RvcnkgKi9cbiNtYXAtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDJlbTtcbn1cbi5nbS1zdHlsZSBpbWcge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4ubWFwLXBvcHVwIC5tYXAtbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDExMiU7XG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuYXJ0aWNsZS5uZXR3b3JrX21lbWJlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICA+IGRpdiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDgwJTtcbiAgfVxuICA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICB3aWR0aDogMzAlO1xuICAgIG1heC13aWR0aDogMTQwcHg7XG4gICAgaW1nIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbi5zb2NpYWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDAuMWVtO1xuICB9XG4gIGkge1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAmLmljb24tcnNzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmODk0MDY7XG4gICAgfVxuICAgICYuaWNvbi1mYWNlYm9vayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ1NGEwO1xuICAgIH1cbiAgICAmLmljb24tdHdpdHRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5NGM1O1xuICAgIH1cbiAgICAmLmljb24teW91dHViZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzQyZjIzO1xuICAgIH1cbiAgICAmLmljb24tZ3BsdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VkMjAyYjtcbiAgICB9XG4gIH1cbn1cbi5tZW1iZXItbmF2IHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMC4zZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY2xlYXI6IGJvdGg7XG4gIHVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJCcm93c2U6IFwiO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICB9XG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDNweDtcbiAgICBtYXJnaW46IDAgM3B4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICBhcnRpY2xlLm5ldHdvcmtfbWVtYmVyIHtcbiAgICA+IGRpdixcbiAgICA+IGEge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDFlbSAwO1xuICAgIH1cbiAgICA+YSB7XG5cdCAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICAgIGgyLmVudHJ5LXRpdGxlIHtcblx0ICBmb250LXNpemU6IDMycHg7XG4gICAgfVxuICB9XG4gIC5wb3N0LXR5cGUtYXJjaGl2ZS1uZXR3b3JrX21lbWJlciB7XG4gICAgLmFyY2hpdmUtYmFja2dyb3VuZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgfVxuICB9XG59IiwiLypcbiAqIFN0eWxlcyBmb3IgdGhlIHJlc291cmNlcyBwYWdlXG4gKi9cbi8vIGFuIGluZGl2aWR1YWwgcmVzb3VyY2UgbGlua1xuLnJlc291cmNlLWxpbmsge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNWVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgLnRpdGxlIHtcbiAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDAuNWVtO1xuICAgIGxlZnQ6IDAuNWVtO1xuICB9XG4gIGE6aG92ZXIgLnRpdGxlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuXG5cbiAgLy8gSWYgeW91IGFyZSBzd2FwcGluZyBzcGFuNCBhbmQgc3BhbjMgZm9yIHRoZSByZXNvdXJjZSB0aWxlcywgbWFrZSBzdXJlIHRoaXMgY2hhbmdlcyBhcyB3ZWxsXG4gICY6bnRoLWNoaWxkKDRuKzEpIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBjbGVhcjogbGVmdDtcbiAgfVxuICAmLnJlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHJlZC1hbHQ7XG4gICAgYSB7XG4gICAgICBjb2xvcjogQGRrZ3JleTtcbiAgICB9XG4gIH1cbiAgJi5ka2dyZXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBka2dyZXk7XG4gICAgYSB7XG4gICAgICBjb2xvcjogQG9yYW5nZTtcbiAgICB9XG4gIH1cbiAgJi5zZWRnZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHNlZGdlO1xuICAgIGEge1xuICAgICAgY29sb3I6IEByZWQtYWx0O1xuICAgIH1cbiAgfVxuICAmLm9yYW5nZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQG9yYW5nZTtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiBAZGtncmV5O1xuICAgIH1cbiAgfVxuICAmLmtoYWtpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAa2hha2k7XG4gICAgYSB7XG4gICAgICBjb2xvcjogQHJlZC1hbHQ7XG4gICAgfVxuICB9XG59XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcmVzb3VyY2VzIHtcbiAgaDEuZW50cnktdGl0bGUge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IEByZWQtYWx0O1xuICB9XG4gIC5lbnRyeS1jb250ZW50IHA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDI0cHg7IC8vIG1hdGNoIG1hcmdpbi1ib3R0b207XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIEBka2dyZXk7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIEBka2dyZXk7XG4gICAgZm9udC1mYW1pbHk6IEBzYW5zRm9udEZhbWlseTtcbiAgICBwYWRkaW5nLXRvcDogMC4zZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5lbnRyeS1jb250ZW50IGZvcm0ge1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICBjbGVhcjogYm90aDtcbiAgICA+ICoge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgICBsYWJlbCB7XG4gICAgICBjb2xvcjogQHJlZC1hbHQ7XG4gICAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICB3aWR0aDogNzBweDtcbiAgICB9XG4gICAgYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEByZWQtYWx0O1xuICAgICAgY29sb3I6IEBraGFraTtcbiAgICAgIGJvcmRlci1jb2xvcjogQHJlZC1hbHQ7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICAgICAgd2lkdGg6IDUwcHg7XG4gICAgfVxuICAgIHNlbGVjdCxcbiAgICBpbnB1dCB7XG4gICAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgd2lkdGg6IDQ1JTtcbiAgICAgIHdpZHRoOiB+XCJjYWxjKCAxMDAlIC0gNzBweCAtIDUwcHggLSAxMDBweClcIjsgLy8gdGhlIHdpZHRocyBvZiB0aGUgb3RoZXIgZWxlbWVudHMgaW4gdGhlIGZvcm1cbiAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgfVxuICAgIHNlbGVjdCB7XG4gICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG4gIH1cbiAgLmVudHJ5LWNvbnRlbnQgLndpZGdldHRpdGxlIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cblxuICAud2lkZ2V0IHtcbiAgICBib3JkZXI6IDJweCBAYmxhY2sgc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogMC41ZW07XG4gIH1cblxuICAvLyBTdHlsZXMgc3BlY2lmaWMgdG8gdGhlIFdQX1dpZGdldF9SU1NcbiAgbGkgYS5yc3N3aWRnZXQge1xuICAgIGNvbG9yOiBAcmVkO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMmVtO1xuICB9XG4gIC5yc3NTdW1tYXJ5IHtcbiAgICBsaW5lLWhlaWdodDogQGJhc2VMaW5lSGVpZ2h0O1xuICB9XG59XG5cbkBtZWRpYSAoIG1heC13aWR0aDo3NjhweCApIHtcbiAgLnJlc291cmNlLWxpbmsuc3BhbjMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDFlbSAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAucmVzb3VyY2UtbGluayBpbWcge1xuICAgIG1heC13aWR0aDogMTUlO1xuICB9XG4gIC5yZXNvdXJjZS1saW5rIC50aXRsZSB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICB9XG4gIC5yb3cgLnNwYW42IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBcbiAgfVxufVxuXG4jYWR2YW5jZWQtc2VhcmNoIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1ib3R0b206IDJweCBAYmxhY2sgc29saWQ7XG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuLnNhbnMge1xuICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xufVxuLnJlZDpob3Zlcixcbi5yZWQge1xuICBjb2xvcjogQHJlZC1hbHQ7XG59XG5cbi8qXG4gKiBIZXJlIHdlIGJyZWFrIHRoZSBMYXJnbyByZXNwb25zaXZlIHN0eWxlcyBmb3IgZGVza3RvcCBhbmQgdGFibGV0IGRldmljZXMsIHRvIGNyZWF0ZSBhIHdpZGVyIGNlbnRyYWwgY29sdW1uIGFuZCBuYXJyb3dlciByaWdodCBjb2x1bW5cbiAqL1xuQG1lZGlhIEB0YWJsZXRVcCB7XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcmVzb3VyY2VzIHtcbiAgICAucm93LWZsdWlkICNjb250ZW50LnNwYW44IHtcbiAgICAgIHdpZHRoOiA3MyU7XG4gICAgfVxuICAgIC5yb3ctZmx1aWQgI3NpZGViYXIuc3BhbjQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDUlO1xuICAgICAgd2lkdGg6IDIyJTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDT0xPUlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gR3JheXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBibGFjazogICAgICAgICAgICAgICAgICMwMDA7XG5AZ3JheURhcmtlcjogICAgICAgICAgICAjMjIyO1xuQGdyYXlEYXJrOiAgICAgICAgICAgICAgIzQ4NDg0ODtcbkBncmF5OiAgICAgICAgICAgICAgICAgICM3RDgxODU7XG5AZ3JheUxpZ2h0OiAgICAgICAgICAgICAjYWFhO1xuQGdyYXlMaWdodGVyOiAgICAgICAgICAgI2RkZDtcbkB3aGl0ZTogICAgICAgICAgICAgICAgICNmZmY7XG5cblxuLy8gQWNjZW50IGNvbG9yc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGJsdWU6ICAgICAgICAgICAgICAgICAgIzIyNzViYjtcbkBibHVlRGFyazogICAgICAgICAgICAgICMwMDY0Y2Q7XG5AZ3JlZW46ICAgICAgICAgICAgICAgICAjNDZhNTQ2O1xuQHJlZDogICAgICAgICAgICAgICAgICAgI2JkMjYxZDtcbkB5ZWxsb3c6ICAgICAgICAgICAgICAgICNmZmM0MGQ7XG5Ab3JhbmdlOiAgICAgICAgICAgICAgICAjZjg5NDA2O1xuQHBpbms6ICAgICAgICAgICAgICAgICAgI2MzMzI1ZjtcbkBwdXJwbGU6ICAgICAgICAgICAgICAgICM3YTQzYjY7XG5cbi8qKlxuICogQGdyb3VwIENvbG9yXG4gKiBAbGFiZWwgQmFzZSBDb2xvciAodXNlZCBmb3IgbmF2YmFyLCB3aWRnZXQgdGl0bGVzLCBldGMuKVxuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICMyMjc1YmJcbiAqL1xuQGJhc2VDb2xvcjpcdFx0XHRcdEBibHVlO1xuXG4vKipcbiAqIEBncm91cCBDb2xvclxuICogQGxhYmVsIEhlYWRlci9Gb290ZXIgQ29sb3JcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjMjIyXG4gKi9cbkBoZWFkZXJGb290ZXJDb2xvcjpcdFx0QGdyYXlEYXJrZXI7XG5cbi8qKlxuICogQGdyb3VwIENvbG9yXG4gKiBAbGFiZWwgUHJlLUZvb3RlciBDb2xvclxuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICNkZGRcbiAqL1xuQHByZUZvb3RlckNvbG9yOlx0XHRAZ3JheUxpZ2h0ZXI7XG5cbi8qKlxuICogQGdyb3VwIENvbG9yXG4gKiBAbGFiZWwgQ29sb3Igb2YgbGlua3NcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjMjI3NWJiXG4gKi9cbkBsaW5rQ29sb3I6ICAgICAgICAgICAgIEBibHVlO1xuXG4vKipcbiAqIEBncm91cCBDb2xvclxuICogQGxhYmVsIEhvdmVyIGNvbG9yIG9mIGxpbmtzXG4gKiBAdHlwZSBjb2xvclxuICogQGRlZmF1bHRfdmFsdWUgIzIyNzViYlxuICovXG5AbGlua0NvbG9ySG92ZXI6ICAgICAgICBsaWdodGVuKEBsaW5rQ29sb3IsIDEwJSk7XG5cbi8qKlxuICogQGdyb3VwIENvbG9yXG4gKiBAbGFiZWwgQmFja2dyb3VuZCBjb2xvciBvZiBwb3N0IG1ldGEgYm94ZXMgKGF1dGhvciBiaW8sIHJlbGF0ZWQgcG9zdHMsIGV0Yy4pXG4gKiBAdHlwZSBjb2xvclxuICogQGRlZmF1bHRfdmFsdWUgI2ZmZlxuICovXG5AcG9zdEJveEJhY2tncm91bmRDb2xvcjpcdCNmZmY7XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIExBWU9VVFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGNvbnRhaW5lck1heFdpZHRoOlx0XHQxMTcwcHg7XG5cbi8qKlxuICogQGdyb3VwIEJhc2ljc1xuICogQGxhYmVsIEJvZHkgQmFja2dyb3VuZCBDb2xvclxuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICNmZmZcbiAqL1xuQGJvZHlCYWNrZ3JvdW5kOiAgICAgICAgQHdoaXRlO1xuXG4vKipcbiAqIEBncm91cCBCYXNpY3NcbiAqIEBsYWJlbCBQYWdlIEJhY2tncm91bmQgQ29sb3JcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjZmZmXG4gKi9cbkBwYWdlQmFja2dyb3VuZDogICAgICAgIEB3aGl0ZTtcblxuLyoqXG4gKiBAZ3JvdXAgQmFzaWNzXG4gKiBAbGFiZWwgVGV4dCBDb2xvclxuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICMzMzNcbiAqL1xuQHRleHRDb2xvcjogICAgICAgICAgICAgQGdyYXlEYXJrO1xuLyoqXG4gKiBAZ3JvdXAgQmFzaWNzXG4gKiBAbGFiZWwgRGVmYXVsdCBWZXJ0aWNhbCBTcGFjaW5nXG4gKiBAdHlwZSBwaXhlbHNcbiAqIEBkZWZhdWx0X3ZhbHVlIDI0cHhcbiAqL1xuQGJhc2VsaW5lOlx0XHRcdFx0MjRweDtcblxuLy8gR3JpZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGdyaWRDb2x1bW5zOiAgICAgICAgICAgICAxMjtcbkBmbHVpZEdyaWRDb2x1bW5XaWR0aDogICAgNi4zODI5Nzg3MjMlO1xuQGZsdWlkR3JpZEd1dHRlcldpZHRoOiAgICAyLjEyNzY1OTU3NCU7XG5AZ3JpZFJvd1dpZHRoOiAgICAgICAgICAgIDEwMCU7XG5cbi8vIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaGlnaGRlbnNpdHk6IH5cIm9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpXCIsXG4gICAgICAgICAgICAgIH5cIm9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpXCIsXG4gICAgICAgICAgICAgIH5cIm9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMy8yIClcIixcbiAgICAgICAgICAgICAgflwib25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpXCI7XG5cbkBtb2JpbGU6ICAgICAgflwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUyOXB4KVwiO1xuXG5AdGFibGV0OiAgICAgIH5cIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk3OXB4KVwiO1xuQHRhYmxldERvd246ICB+XCJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpXCI7XG5AdGFibGV0VXA6ICAgIH5cIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweClcIjtcblxuQGRlc2t0b3A6ICAgICB+XCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTI4cHgpXCI7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUWVBPR1JBUEhZXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEBncm91cCBUeXBvZ3JhcGh5XG4gKiBAbGFiZWwgU2FucyBGb250IEZhbWlseVxuICogQHR5cGUgdGV4dFxuICogQGRlZmF1bHRfdmFsdWUgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXG4gKi9cbkBzYW5zRm9udEZhbWlseTogICAgICAgIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuLyoqXG4gKiBAZ3JvdXAgVHlwb2dyYXBoeVxuICogQGxhYmVsIFNlcmlmIEZvbnQgRmFtaWx5XG4gKiBAdHlwZSB0ZXh0XG4gKi9cbkBzZXJpZkZvbnRGYW1pbHk6ICAgICAgIEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZjtcbkBtb25vRm9udEZhbWlseTogICAgICAgIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcblxuLyoqXG4gKiBAZ3JvdXAgVHlwb2dyYXBoeVxuICogQGxhYmVsIEJhc2UgRm9udCBTaXplXG4gKiBAdHlwZSBwaXhlbHNcbiAqL1xuQGJhc2VGb250U2l6ZTogICAgICAgICAgMTZweDtcblxuLyoqXG4gKiBAZ3JvdXAgVHlwb2dyYXBoeVxuICogQGxhYmVsIFNhbnMgRm9udCBGYW1pbHlcbiAqIEB0eXBlIGRyb3Bkb3duXG4gKiBAb3B0aW9ucyBAc2VyaWZGb250RmFtaWx5fEBzYW5zRm9udEZhbWlseVxuICogQGRlZmF1bHRfdmFsdWUgQHNlcmlmRm9udEZhbWlseVxuICovXG5AYmFzZUZvbnRGYW1pbHk6ICAgICAgICBAc2VyaWZGb250RmFtaWx5O1xuLyoqXG4gKiBAZ3JvdXAgVHlwb2dyYXBoeVxuICogQGxhYmVsIEJhc2UgTGluZSBIZWlnaHRcbiAqIEB0eXBlIHRleHRcbiAqIEBkZWZhdWx0X3ZhbHVlIDEuNVxuICovXG5AYmFzZUxpbmVIZWlnaHQ6ICAgICAgICAxLjU7XG5cbkBhbHRGb250RmFtaWx5OiAgICAgICAgIEBzYW5zRm9udEZhbWlseTtcbkBiYXNlRm9udFdlaWdodDpcdFx0bm9ybWFsO1xuXG5AaGVhZGluZ3NGb250RmFtaWx5OiAgICBAc2Fuc0ZvbnRGYW1pbHk7IC8vIGVtcHR5IHRvIHVzZSBkZWZhdWx0LCBAYmFzZUZvbnRGYW1pbHlcbkBoZWFkaW5nc0ZvbnRXZWlnaHQ6ICAgIGJvbGQ7IC8vIGVtcHR5IHRvIHVzZSBkZWZhdWx0LCBAYmFzZUZvbnRXZWlnaHRcbkBoZWFkaW5nc0NvbG9yOiAgICAgICAgIGluaGVyaXQ7IC8vIGVtcHR5IHRvIHVzZSBkZWZhdWx0LCBAdGV4dENvbG9yXG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZPUk1TLCBUQUJMRVMgQU5EIEJVVFRPTlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFRhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQHRhYmxlQmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7IC8vIG92ZXJhbGwgYmFja2dyb3VuZC1jb2xvclxuQHRhYmxlQmFja2dyb3VuZEFjY2VudDogICAgICAgICAgICAgI2Y5ZjlmOTsgLy8gZm9yIHN0cmlwaW5nXG5AdGFibGVCYWNrZ3JvdW5kSG92ZXI6ICAgICAgICAgICAgICAjZjVmNWY1OyAvLyBmb3IgaG92ZXJcbkB0YWJsZUJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICNkZGQ7IC8vIHRhYmxlIGFuZCBjZWxsIGJvcmRlclxuXG5cbi8vIEJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBidG5CYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgIEB3aGl0ZTtcbkBidG5CYWNrZ3JvdW5kSGlnaGxpZ2h0OiAgICAgICAgICAgIGRhcmtlbihAd2hpdGUsIDEwJSk7XG5AYnRuQm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAjY2NjO1xuXG5AYnRuUHJpbWFyeUJhY2tncm91bmQ6ICAgICAgICAgICAgICBAYmFzZUNvbG9yO1xuQGJ0blByaW1hcnlCYWNrZ3JvdW5kSGlnaGxpZ2h0OiAgICAgc3BpbihAYnRuUHJpbWFyeUJhY2tncm91bmQsIDE1JSk7XG5cblxuLy8gRm9ybXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbnB1dEJhY2tncm91bmQ6ICAgICAgICAgICAgICAgQHdoaXRlO1xuQGlucHV0Qm9yZGVyOiAgICAgICAgICAgICAgICAgICAjY2NjO1xuQGlucHV0Qm9yZGVyUmFkaXVzOiAgICAgICAgICAgICAzcHg7XG5AaW5wdXREaXNhYmxlZEJhY2tncm91bmQ6ICAgICAgIEBncmF5TGlnaHRlcjtcbkBmb3JtQWN0aW9uc0JhY2tncm91bmQ6ICAgICAgICAgI2Y1ZjVmNTtcblxuQHBsYWNlaG9sZGVyVGV4dDogICAgICAgICBAZ3JheUxpZ2h0O1xuXG5cbi8vIEZvcm0gc3RhdGVzIGFuZCBhbGVydHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkB3YXJuaW5nVGV4dDogICAgICAgICAgICAgI2MwOTg1MztcbkB3YXJuaW5nQmFja2dyb3VuZDogICAgICAgI2ZjZjhlMztcbkB3YXJuaW5nQm9yZGVyOiAgICAgICAgICAgZGFya2VuKHNwaW4oQHdhcm5pbmdCYWNrZ3JvdW5kLCAtMTApLCAzJSk7XG5cbkBlcnJvclRleHQ6ICAgICAgICAgICAgICAgI2I5NGE0ODtcbkBlcnJvckJhY2tncm91bmQ6ICAgICAgICAgI2YyZGVkZTtcbkBlcnJvckJvcmRlcjogICAgICAgICAgICAgZGFya2VuKHNwaW4oQGVycm9yQmFja2dyb3VuZCwgLTEwKSwgMyUpO1xuXG5Ac3VjY2Vzc1RleHQ6ICAgICAgICAgICAgICM0Njg4NDc7XG5Ac3VjY2Vzc0JhY2tncm91bmQ6ICAgICAgICNkZmYwZDg7XG5Ac3VjY2Vzc0JvcmRlcjogICAgICAgICAgIGRhcmtlbihzcGluKEBzdWNjZXNzQmFja2dyb3VuZCwgLTEwKSwgNSUpO1xuXG5AaW5mb1RleHQ6ICAgICAgICAgICAgICAgICMzYTg3YWQ7XG5AaW5mb0JhY2tncm91bmQ6ICAgICAgICAgICNkOWVkZjc7XG5AaW5mb0JvcmRlcjogICAgICAgICAgICAgIGRhcmtlbihzcGluKEBpbmZvQmFja2dyb3VuZCwgLTEwKSwgNyUpO1xuXG4vLyBaLWluZGV4IG1hc3RlciBsaXN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AemluZGV4RHJvcGRvd246ICAgICAgICAgIDEwMDA7XG5AemluZGV4UG9wb3ZlcjogICAgICAgICAgIDEwMTA7XG5AemluZGV4VG9vbHRpcDogICAgICAgICAgIDEwMjA7XG5AemluZGV4Rml4ZWROYXZiYXI6ICAgICAgIDEwMzA7XG5AemluZGV4TW9kYWxCYWNrZHJvcDogICAgIDEwNDA7XG5AemluZGV4TW9kYWw6ICAgICAgICAgICAgIDEwNTA7XG5cbi8vIE5hdmJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG5hdmJhckhlaWdodDogICAgICAgICAgICAgICAgICAgIDQwcHg7XG5AbmF2YmFyRm9udFNpemU6ICAgICAgICAgICAgICAgICAgMTVweDtcbkBuYXZiYXJCYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICBAYm9keUJhY2tncm91bmQ7XG4vLyBOYXZiYXIgYnV0dG9uIChidXJnZXIpIGZvciB0b2dnbGluZyBuYXZiYXIgaXRlbXMgaW4gcmVzcG9uc2l2ZSBsYXlvdXRzXG5AaWNvbmJhckhlaWdodDogM3B4O1xuXG4gICAgLy8gTmF2YmFyIGRyb3Bkb3duc1xuICAgIEBkcm9wZG93bkJhY2tncm91bmQ6IEB3aGl0ZTtcbiAgICBAZHJvcGRvd25Cb3JkZXI6IHJnYmEoMCwwLDAsLjIpO1xuICAgIEBkcm9wZG93bkRpdmlkZXJUb3A6ICNlNWU1ZTU7XG4gICAgQGRyb3Bkb3duRGl2aWRlckJvdHRvbTogQHdoaXRlO1xuXG4gICAgLy8gTWFpbiBuYXZiYXJcbiAgICBAbmF2YmFyVGV4dDogQHRleHRDb2xvcjtcbiAgICBAbmF2YmFyTGlua0NvbG9yOiBAbmF2YmFyVGV4dDtcbiAgICBAbmF2YmFyTGlua0NvbG9ySG92ZXI6IGRhcmtlbihAbmF2YmFyTGlua0NvbG9yLCA1JSk7XG4gICAgQG5hdmJhckxpbmtCYWNrZ3JvdW5kQWN0aXZlOiBkYXJrZW4oQG5hdmJhckJhY2tncm91bmQsIDUlKTtcbiAgICBAbmF2YmFyRHJvcGRvd25DYXJldENvbG9yOiBAbmF2YmFyTGlua0NvbG9yO1xuICAgIEBuYXZiYXJEcm9wZG93bkNhcmV0Q29sb3JIb3ZlcjogQG5hdmJhckxpbmtDb2xvckhvdmVyO1xuICAgIEBuYXZiYXJSdWxlQ29sb3I6IEBncmF5TGlnaHQ7XG5cbiAgICAvLyBTdGlja3kgbmF2YmFyXG4gICAgQHN0aWNreU5hdmJhclRleHQ6IEB0ZXh0Q29sb3I7XG4gICAgQHN0aWNreU5hdmJhckxpbmtDb2xvcjogQHN0aWNreU5hdmJhclRleHQ7XG4gICAgQHN0aWNreU5hdmJhckxpbmtDb2xvckhvdmVyOiBkYXJrZW4oQHN0aWNreU5hdmJhckxpbmtDb2xvciwgNSUpO1xuICAgIEBzdGlja3lOYXZiYXJCYWNrZ3JvdW5kQ29sb3I6IEB3aGl0ZTtcbiAgICBAc3RpY2t5TmF2YmFyRHJvcGRvd25DYXJldENvbG9yOiBAc3RpY2t5TmF2YmFyTGlua0NvbG9yO1xuICAgIEBzdGlja3lOYXZiYXJEcm9wZG93bkNhcmV0Q29sb3JIb3ZlcjogQHN0aWNreU5hdmJhckxpbmtDb2xvckhvdmVyO1xuXG5cbi8vIFNvY2lhbCBCcmFuZHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkByc3M6ICNmODk0MDY7XG5AZmFjZWJvb2s6ICMzYTU3OTU7XG5AdHdpdHRlcjogIzU1YWNlZTtcbkB5b3V0dWJlOiAjZTUyZDI3O1xuQGdwbHVzOiAjZGQ0YjM5O1xuQGZsaWNrcjogI2ZmMDA4NDtcbkBsaW5rZWRpbjogIzAwN2JiNjtcbkB0dW1ibHI6ICMzNTQ2NWM7XG5AcGludGVyZXN0OiAjY2IyMDI3O1xuQGluc3RhZ3JhbTogIzEyNTY4ODtcbkBnaXRodWI6ICM0MTgzYzQ7IiwiI2NyZWF0aXZlLWNvbW1vbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICBpbWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDkwcHg7XG5cbiAgICBtYXJnaW4tcmlnaHQ6IDJlbTtcblxuICAgIC8vIGltcG9ydCB0aGVzZSBzdHlsZXMgZnJvbSAjaW5uLWxvZ29cbiAgICAvLyBzZWUgdGhpcyB2ZXJ5LXByZWNpc2UgbWF0aDogaHR0cHM6Ly9naXRodWIuY29tL0lOTi9sYXJnby9ibG9iLzA5MzY3YjE3ZTRkNDk1NzhkYmNjMjJkOWMwODI5ZDM2NjhhMWUzZjUvbGVzcy9pbmMvZm9vdGVyLmxlc3MjTDU1XG4gICAgbWFyZ2luLXRvcDogMjIuMDQ5MTMxMjE2M3B4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2LjUzNjg0ODQxMjJweDtcbiAgfVxufVxuIiwiLy8gaW1wb3J0IHZhcmlhYmxlcyBhbmQgbWl4aW5zIGZyb20gbGFyZ29cbkBpbXBvcnQgXCJ2YXJpYWJsZXMubGVzc1wiO1xuQGltcG9ydCBcIm1peGlucy5sZXNzXCI7XG5cbi8vIGxlc3MgZmlsZXMgZm9yIHRoaXMgY2hpbGQgdGhlbWVcbkBpbXBvcnQgJ3ZhcnMubGVzcyc7XG5AaW1wb3J0ICdfaGVhZGVyLmxlc3MnO1xuQGltcG9ydCAnX3dpZGdldHMubGVzcyc7XG5AaW1wb3J0ICdtZW1iZXJzLmxlc3MnO1xuQGltcG9ydCAncmVzb3VyY2VzLmxlc3MnO1xuQGltcG9ydCAnX2Zvb3Rlci5sZXNzJztcblxuI3NpdGUtZm9vdGVyIGEsXG4jYm9pbGVycGxhdGUgYSB7XG4gIGNvbG9yOiAjZWVlO1xufVxuI2JvaWxlcnBsYXRlIGE6aG92ZXIsXG4uZG9uYXRlLWJ0biBhOmhvdmVyLFxuI3NpdGUtZm9vdGVyIGE6aG92ZXIsXG4jcmVsYXRlZC1wb3N0LW5hdiBhOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG59XG5AbWVkaWEgKCBtYXgtd2lkdGg6IDk4MHB4ICkge1xuICAubG9hZC1tb3JlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB9XG59IFxuQG1lZGlhICggbWF4LXdpZHRoOiA3NjhweCApIHtcbiAgI3NpdGUtZm9vdGVyIHtcbiAgICAud2lkZ2V0LWFyZWEsXG4gICAgLndpZGdldCxcbiAgICBkaXZbY2xhc3NePVwic3BhblwiXSB7XG5cdCAgbWFyZ2luLWJvdHRvbTogMDtcblx0ICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuXHQgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIHVsIGxpIHtcblx0ICBmb250LXNpemU6IDE4cHg7XG5cdCAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB9XG4gIH1cbn1cblxuLmhvbWUge1xuICAjY29udGVudC1tYWluIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuMTI3Njk1NzQlO1xuICB9XG4gIC5zdG9yaWVzIGgyLmVudHJ5LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gIH1cbn1cbiNob21lcGFnZS1mZWF0dXJlZCBoNC5yZWxhdGVkLXN0b3J5IHtcbiAgZm9udC1zaXplOiAyMHB4O1x0XG59XG4uaWNvbi1saXN0c2VydjpiZWZvcmUgeyBjb250ZW50OiAnXFw3NSc7IH0gLy8gdXNlIHRoZSBtYWlsIGljb25cblxuI21jX2VtYmVkX3NpZ251cCB7XG4gIGlucHV0IHtcbiAgICB3aWR0aDogOTAlO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDEwcHggYXV0bztcbiAgICAmLmJ1dHRvbiB7XG5cdCAgbWF4LXdpZHRoOiA2NSU7XG5cdCAgYmFja2dyb3VuZC1jb2xvcjogQHJlZDtcblx0ICBib3JkZXI6IG5vbmU7XG5cdCAgY29sb3I6ICNmZmY7XG5cdCAgJjpob3ZlciB7XG5cdCAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEByZWQsMTAlKTtcblx0ICB9XG4gICAgfVxuICB9XG59XG4iXX0= */