@charset "UTF-8";
html {
  height: 100%;
}

#body-wrapper .container {
  padding: 2rem 0 2rem;
}
.header-fixed #body-wrapper {
  padding-top: 4rem;
}

.header-fixed .hero + #start > #body-wrapper {
  padding-top: 0;
}

section.section {
  padding-left: 1rem;
  padding-right: 1rem;
  position: relative;
}

.overlay-light, .overlay-dark, .overlay-light-gradient, .overlay-dark-gradient {
  z-index: 0;
}

.vertical-centered {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: center;
      justify-content: center;
}

.hero {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  padding-top: 6rem;
  padding-bottom: 7rem;
  background-size: cover;
  background-position: center;
}
.hero h1 {
  color: black;
  font-size: 4rem;
}
.hero h2 {
  color: rgba(0, 0, 0, 0.8);
  font-size: 2.5rem;
}
.hero.hero-fullscreen {
  min-height: 100vh;
}
.hero.hero-large {
  min-height: 500px;
}
.hero.hero-medium {
  min-height: 400px;
}
.hero.hero-small {
  min-height: 110px;
}
.hero.hero-tiny {
  min-height: 8rem;
}
.header-fixed .hero {
  background-position: 50% 0;
}
@media (max-width: 840px) {
  .hero h1 {
    font-size: 3rem;
  }
  .hero h2 {
    font-size: 1.75rem;
  }
}
@media (max-width: 600px) {
  .hero h1 {
    font-size: 2rem;
  }
  .hero h2 {
    font-size: 1.25rem;
  }
}
.hero.text-light h1 {
  color: #fff;
}
.hero.text-light h2 {
  color: rgba(255, 255, 255, 0.8);
}
.hero p {
  font-size: 0.9rem;
  font-weight: 300;
}
.hero #to-start {
  display: inline-block;
  position: absolute;
  bottom: 10px;
  font-size: 2rem;
  cursor: pointer;
}

.image-overlay {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
}
.overlay-light .image-overlay {
  background: rgba(255, 255, 255, 0.4);
}
.overlay-light-gradient .image-overlay {
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2));
}
.overlay-dark .image-overlay {
  background: rgba(0, 0, 0, 0.4);
}
.overlay-dark-gradient .image-overlay {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.2));
}

html {
  font-size: 16px;
}
@media screen and (min-width: 480px) {
  html {
    font-size: calc(16px + 4 * (100vw - 480px) / 800);
  }
}
@media screen and (min-width: 1280px) {
  html {
    font-size: 20px;
  }
}

h1, h2, h3, h4, h5, h6 {
  margin-top: 2rem;
  font-family: "Lato", sans-serif, "Helvetica Neue", sans-serif;
  color: #d9d9d9;
}

h1, .h1 {
  font-size: 3rem;
}

h2, .h2 {
  font-size: 1.8rem;
}

h6, .h6 {
  font-weight: 400;
}

.title-center h1, .title-center h2 {
  text-align: center;
}

.title-h1h2 h1 {
  font-weight: 100;
  margin-bottom: 0;
  line-height: 1.1;
}
.title-h1h2 h1 strong, .title-h1h2 h1 bold {
  font-weight: 400;
}
.title-h1h2 h1 + h2 {
  line-height: 1.1;
  margin-top: 0;
}

.title-h1h2 h1 + h2, .title-center h1 + h2 {
  margin-bottom: 50px;
  font-weight: 700;
}

a:focus {
  outline: none !important;
  box-shadow: none !important;
}

img {
  max-width: 100%;
}

.table > table {
  border-spacing: 0;
  border-collapse: collapse;
  width: 100%;
}

pre code, pre.xdebug-var-dump {
  background: #fafafa;
  display: block;
  padding: 1rem !important;
  line-height: 1.5;
  color: inherit;
  border-radius: 2px;
  overflow-x: auto;
}

pre[class*=language-] code {
  border-radius: inherit;
  padding: 0 !important;
  overflow-x: initial;
}

pre code:not(.hljs):not([class*=language-]) {
  background: #f8f8f8;
}

i.fa.fa-heart.pulse, i.fa.fa-heart-o.pulse {
  color: #920;
}

b,
strong {
  font-weight: 700;
}

.heavy {
  font-weight: 700;
}

.light {
  font-weight: 200;
}

.text-light {
  color: rgba(255, 255, 255, 0.8);
}
.text-light h1, .text-light h2, .text-light h3, .text-light h4, .text-light h5, .text-light h6 {
  color: rgba(255, 255, 255, 0.9);
}

#error {
  text-align: center;
  position: relative;
  margin-top: 5rem;
}
#error .icon {
  font-size: 50px;
}

#messages {
  margin-bottom: 1rem;
}
#messages .icon {
  font-size: 1rem;
}

ul,
ol {
  margin-left: 1.6rem;
}
ul ul,
ul ol,
ol ul,
ol ol {
  margin-left: 1.6rem;
}

ul {
  list-style: disc outside;
}

ol {
  list-style: decimal outside;
}

.notices {
  margin: 1.5rem 0;
}
.notices p {
  margin: 1rem 0;
}

form {
  /** Reset some defaults for Quarky Theme **/
}
form .button-wrapper {
  margin-top: 0.75rem;
  margin-bottom: 1rem;
}
form span.required {
  color: #e85600;
  font-weight: 700;
  font-size: 1.2rem;
}
form .form-input[type=range] {
  -webkit-appearance: slider-horizontal;
          appearance: slider-horizontal;
}
form .form-input[type=range]:focus {
  box-shadow: none;
  border: none;
}
form .form-group:not(.form-field-toggleable) .checkboxes {
  display: inherit;
}
form .form-group:not(.form-field-toggleable) .checkboxes label {
  display: inherit;
  padding: 0.1rem 0.4rem 0.1rem 1.2rem;
  margin: inherit;
}
form .form-group:not(.form-field-toggleable) .checkboxes label:before {
  display: none;
}

#grav-login > form {
  margin: 2rem auto 0;
  max-width: 350px;
}
#grav-login .form-label {
  display: none;
}
#grav-login .form-data {
  margin: 1rem 0;
}
#grav-login .form-input {
  text-align: center;
}
#grav-login .button-wrapper {
  text-align: right;
}
#grav-login .button-wrapper .form-data.rememberme {
  margin: 0;
  float: left;
}
#grav-login .login-form button[type=submit] {
  background: #eeb830;
  border-color: #edb322;
  color: #fff;
}
#grav-login .login-form button[type=submit]:focus, #grav-login .login-form button[type=submit]:hover {
  background: #ecb018;
  border-color: #e3a713;
  color: #fff;
}
#grav-login .login-form button[type=submit]:active, #grav-login .login-form button[type=submit].active {
  background: #e7ab13;
  border-color: #d9a112;
  color: #fff;
}
#grav-login .twofa-form button[type=submit]:first-child {
  background: #eeb830;
  border-color: #edb322;
  color: #fff;
  float: right;
  margin-left: 4px;
}
#grav-login .twofa-form button[type=submit]:first-child:focus, #grav-login .twofa-form button[type=submit]:first-child:hover {
  background: #ecb018;
  border-color: #e3a713;
  color: #fff;
}
#grav-login .twofa-form button[type=submit]:first-child:active, #grav-login .twofa-form button[type=submit]:first-child.active {
  background: #e7ab13;
  border-color: #d9a112;
  color: #fff;
}

.mobile-container {
  position: absolute;
  top: 40%;
  left: 0;
  margin: 0 auto;
  z-index: 2;
}

.mobile-logo svg, .mobile-logo img {
  height: 42px;
  margin-top: 0.7rem;
  margin-left: 1.4rem;
}
.mobile-logo svg path, .mobile-logo img path {
  fill: #fff;
}

.mobile-menu {
  display: none;
  top: 0;
  right: 0;
  z-index: 3;
}
.header-fixed .mobile-menu {
  position: fixed;
}
@media (max-width: 840px) {
  .mobile-menu {
    display: block;
  }
}
.mobile-menu .button_container {
  position: absolute;
  top: 1.3rem;
  right: 1rem;
  height: 24px;
  width: 28px;
  cursor: pointer;
  z-index: 100;
  transition: opacity 0.25s ease, top 0.5s ease;
}
.mobile-menu .button_container:hover {
  opacity: 0.7;
}
.mobile-menu .button_container.active {
  position: fixed;
}
.mobile-menu .button_container.active .top {
  transform: translateY(8px) translateX(0) rotate(45deg);
  background: #FFF;
}
.mobile-menu .button_container.active .middle {
  opacity: 0;
  background: #FFF;
}
.mobile-menu .button_container.active .bottom {
  transform: translateY(-8px) translateX(0) rotate(-45deg);
  background: #FFF;
}
.mobile-menu .button_container span {
  background: #eeb830;
  border: none;
  height: 4px;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  transition: all 0.35s ease;
  cursor: pointer;
}
.mobile-menu .button_container span:nth-of-type(2) {
  top: 8px;
}
.mobile-menu .button_container span:nth-of-type(3) {
  top: 16px;
}

.overlay {
  position: fixed;
  background: #000;
  top: 0;
  left: 0;
  width: 100%;
  height: 0%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s, visibility 0.35s, height 0.35s;
}
.overlay.open {
  opacity: 0.95;
  visibility: visible;
  height: 100%;
}
.overlay nav {
  position: relative;
  margin: 0 auto;
  text-align: center;
}

.overlay-menu {
  height: calc(100% - 90px);
  overflow-y: scroll;
}
.overlay-menu > .tree {
  text-align: left;
}

.treemenu.treemenu-root {
  margin: 1rem;
}
.treemenu li {
  list-style: none;
  margin: 0 0 1px;
  padding: 5px 0;
  line-height: 1.2rem;
  background: rgba(98, 98, 130, 0.1);
}
.treemenu li a {
  display: block;
  margin-left: 1.2rem;
  font-size: 1rem;
}
.treemenu li a:hover, .treemenu li a:focus, .treemenu li a.active {
  color: #efbd3e !important;
  text-decoration: none;
}
.treemenu ul {
  margin: 0 0 0 1rem;
}
.treemenu .toggler {
  cursor: pointer;
  vertical-align: top;
  font-size: 1.1rem;
  line-height: 1rem;
  padding-left: 5px;
  float: left;
}
.treemenu .toggler:before {
  display: inline-block;
  margin-right: 2pt;
}
.treemenu li.tree-empty > .toggler {
  opacity: 0.3;
  cursor: default;
}
.treemenu li.tree-empty > .toggler:before {
  content: "•";
}
.treemenu li.tree-closed > .toggler:before {
  content: "+";
}
.treemenu li.tree-opened > .toggler:before {
  content: "−";
}

.mobile-nav-open {
  overflow-y: hidden;
}

.default-animation, .modular-features .feature-icon, .modular-features.small .feature-icon i, #header .logo svg, #header .logo img, #header .navbar-section, #header {
  transition: all 0.5s ease;
}

.pulse {
  animation-name: pulse_animation;
  animation-duration: 2000ms;
  transform-origin: 70% 70%;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

@keyframes pulse_animation {
  0% {
    transform: scale(1);
  }
  30% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.08);
  }
  50% {
    transform: scale(1);
  }
  60% {
    transform: scale(1);
  }
  70% {
    transform: scale(1.05);
  }
  80% {
    transform: scale(1);
  }
  100% {
    transform: scale(1);
  }
}
#header {
  width: 100%;
  height: 4rem;
  border-bottom: 0px solid rgba(166, 166, 189, 0.2);
  font-size: 0.7rem;
  font-weight: 700;
  background: #222;
  color: #fff;
  background: #222;
  color: #fff;
}
#header a {
  color: rgba(255, 255, 255, 0.9) !important;
}
#header a.active {
  color: #fff !important;
}
#header .dropmenu ul ul a {
  color: #15151c !important;
}
#header .logo svg path {
  fill: #fff;
}
.header-dark.header-transparent #header:not(.scrolled) {
  background: rgba(0, 0, 0, 0.05);
}
.header-transparent #header:not(.scrolled) {
  background: rgba(255, 255, 255, 0.05);
}
#header .navbar-section {
  height: 4rem;
}
@media (max-width: 840px) {
  #header .navbar-section {
    margin-right: 2rem;
  }
}
@media (max-width: 840px) {
  #header .navbar-section.desktop-menu {
    display: none;
  }
}
#header .logo svg, #header .logo img {
  height: 42px;
  display: inherit;
}
.header-fixed #header {
  position: fixed;
  top: 0;
  z-index: 2;
}

body.header-fixed.header-animated #header.scrolled {
  height: 2.8rem;
}
body.header-fixed.header-animated #header.scrolled .navbar-section {
  height: 2.8rem;
}
body.header-fixed.header-animated #header.scrolled .logo svg, body.header-fixed.header-animated #header.scrolled .logo img {
  height: 28px;
}
body.header-fixed.header-animated #header.scrolled ~ .mobile-menu .button_container {
  top: 0.5rem;
}

.login-status-wrapper {
  white-space: nowrap;
}

body.sticky-footer {
  height: 100%;
  min-height: 100vh;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
}
body.sticky-footer #page-wrapper {
  -ms-flex: 1 0 auto;
      flex: 1 0 auto;
}

#footer {
  color: #fff;
  padding: 1rem 1rem 0;
  text-align: center;
}

@media (max-width: 840px) {
  .dropmenu {
    display: none;
  }
}
.dropmenu ul {
  white-space: nowrap;
  margin: 0;
  display: -ms-flexbox;
  display: flex;
}
.dropmenu ul li {
  position: relative;
  margin: 0;
}
.dropmenu ul li a {
  text-decoration: none;
  padding: 7px 30px 7px 20px;
  display: block;
}
.dropmenu ul li a:hover, .dropmenu ul li a:focus, .dropmenu ul li a.active {
  color: #eeb830 !important;
}
.dropmenu ul li a:before {
  content: "\f107";
  font-family: "FontAwesome";
  display: inline-block;
  vertical-align: middle;
  float: right;
  margin-right: -20px;
}
.dropmenu ul li a:only-child {
  padding-right: 20px;
}
.dropmenu ul li a:only-child:before {
  content: "";
}
.dropmenu ul li:hover > ul {
  display: block;
  visibility: visible;
}
.dropmenu ul ul li a:before {
  content: "\f105";
}
.dropmenu ul ul {
  position: absolute;
  top: 100%;
  list-style: none;
  background: #fff;
  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.1);
  visibility: hidden;
}
.dropmenu ul ul ul {
  position: absolute;
  left: 100%;
  top: 0;
}
.dropmenu > ul > li {
  display: inline-block;
}
.dropmenu.animated ul li {
  transition: background 0.7s, color 0.5s;
}
.dropmenu.animated ul li:hover > ul {
  opacity: 1;
  transform: translateY(0);
}
.dropmenu.animated ul ul {
  transition: transform 0.3s, opacity 0.5s;
  opacity: 0;
  transform: translateY(-10px);
}

/** Extra columns spacing **/
.extra-spacing:not(.col-12), :not(.col12) > .e-content {
  padding-right: 1rem;
}
@media (max-width: 840px) {
  .extra-spacing:not(.col-12), :not(.col12) > .e-content {
    padding-right: 0;
  }
}

/** Breadcrumbs styling **/
#breadcrumbs {
  padding-left: 0;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  margin-top: -1rem;
  margin-bottom: 1rem;
}
#breadcrumbs i {
  display: none;
}
#breadcrumbs span, #breadcrumbs a {
  padding: 0 0.5rem;
}
#breadcrumbs span:first-child, #breadcrumbs a:first-child {
  padding-left: 0;
}
#breadcrumbs span:not(:first-child)::before, #breadcrumbs a:not(:first-child)::before {
  color: #e7e9ed;
  content: "/";
  padding-right: 1rem;
}

/** Blog Listing **/
.blog-listing .bricklayer-column {
  padding-left: 0px;
  padding-right: 25px;
}
.blog-listing .card {
  margin-bottom: 25px;
  border: 0;
  box-shadow: 0 10px 45px -9px rgba(0, 0, 0, 0.1);
}
.blog-listing .card-footer {
  text-align: right;
}
.blog-listing .blog-date {
  font-size: 13px;
}
/** Blog Item **/
.content-title {
  margin-bottom: 2rem;
}
.content-title h2 {
  margin-bottom: 0.5rem;
}

.label {
  font-size: 12px;
  text-transform: uppercase;
}

/** Pagination **/
ul.pagination {
  -ms-flex-pack: center;
      justify-content: center;
}

.prev-next {
  margin-top: 4rem;
}

/** Sidebar specific tweaks **/
#sidebar ul.related-pages {
  box-shadow: none;
  padding: 0;
  z-index: 1;
}
#sidebar ul.related-pages li {
  border-bottom: 1px solid #8989a7;
}
#sidebar ul.related-pages li:last-child {
  border-bottom: 0;
}
#sidebar ul.archives {
  list-style: none;
  margin-left: 0;
}
#sidebar ul.archives .label {
  vertical-align: text-top;
}

.modular-hero #to-start {
  bottom: 3.5rem;
}

.modular-features {
  text-align: center;
}
.modular-features.offset-box .frame-box {
  margin: -3rem -1.4rem 3rem;
  padding: 1rem 1rem;
  background: #fff;
  box-shadow: 0 0 75px 0 rgba(21, 21, 28, 0.1);
}
.modular-features.small .columns {
  margin-top: -1rem;
}
.modular-features.small .column:hover .feature-icon i {
  color: #eeb830;
}
.modular-features.small .feature-icon {
  display: block;
  -ms-flex-pack: left;
      justify-content: left;
}
.modular-features.small .feature-icon i {
  position: relative;
  display: inherit;
  font-size: 70px;
  margin: 0 auto 1rem;
  transform: none;
  left: auto;
  top: auto;
  color: #a6a6bd;
}
.modular-features.small .feature-icon h6 {
  text-transform: none;
}
.modular-features .frame-box {
  padding: 3rem 0;
}
.modular-features .frame-box > p {
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
.modular-features .column {
  padding: 1rem;
}
.modular-features .column:hover .feature-icon {
  color: #a6a6bd;
}
.modular-features .column:hover .feature-icon h6 {
  color: #eeb830;
}
.modular-features .column:hover .feature-content {
  color: #626282;
}
.modular-features .feature-icon {
  font-size: 130px;
  height: 100px;
  color: #e1e1e8;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  position: relative;
  margin: 1rem 0;
}
.modular-features .feature-icon i {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
}
.modular-features .feature-icon h6 {
  background: #fff;
  line-height: 1;
  z-index: 1;
  text-transform: uppercase;
  font-weight: 600;
  margin: 0;
  display: block;
  color: #626282;
}
.modular-features .feature-content {
  color: #a6a6bd;
}

.modular-text {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.modular-text .columns.left {
  -ms-flex-direction: row-reverse;
      flex-direction: row-reverse;
}

.image-grid {
  column-count: 1;
  column-gap: 6px;
}

.image-item {
  display: inline-block;
  width: 100%;
}
.image-item img {
  width: 100%;
  height: auto;
}

@media (min-width: 768px) {
  .image-grid {
    column-count: 3;
  }
}
.form-input {
  color: #15151c;
  background: #fff;
}
.form-input:-ms-input-placeholder {
  color: #8989a7;
}
.form-input::-ms-input-placeholder {
  color: #8989a7;
}
.form-input::placeholder {
  color: #8989a7;
}

form span.required {
  color: #7e0014;
}

.form-data.basic-captcha input.form-input {
  height: inherit;
}

/* Ensuring the image fits the screen either by width or height */
.featherlight-content img {
  max-height: 100vh;
  max-width: 100vw;
  width: auto;
  height: auto;
  margin: auto;
}

/* Styling navigation arrows: only shown when mouse is moving on desktop */
/* Closing button at the top-right corner */
/* Hiding the navigation buttons on mobile */
/* Additional styles for hiding navigation on inactivity */
.logo-footer {
  height: 1.1em; /* This will make the image the same height as the text on the line */
  width: auto; /* This will keep the aspect ratio of the image */
  position: relative;
  top: 0.2em;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRoZW1lL19mcmFtZXdvcmsuc2NzcyIsInRoZW1lL192YXJpYWJsZXMuc2NzcyIsInRoZW1lL19taXhpbnMuc2NzcyIsInNwZWN0cmUvX3ZhcmlhYmxlcy5zY3NzIiwidGhlbWUvX3R5cG9ncmFwaHkuc2NzcyIsInRoZW1lL19mb250cy5zY3NzIiwidGhlbWUvX2Zvcm1zLnNjc3MiLCJ0aGVtZS9fbW9iaWxlLnNjc3MiLCJ0aGVtZS9fYW5pbWF0aW9uLnNjc3MiLCJ0aGVtZS9faGVhZGVyLnNjc3MiLCJ0aGVtZS9fZm9vdGVyLnNjc3MiLCJ0aGVtZS9fbWVudS5zY3NzIiwidGhlbWUvX2Jsb2cuc2NzcyIsInRoZW1lL19vbmVwYWdlLnNjc3MiLCJ0aGVtZS9fY3VzdG9tLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0VBQ0U7OztBQUlBO0VBQ0UsU0NRVzs7QURKYjtFQUNFLGFDU2tCOzs7QURKcEI7RUFDRTs7O0FBSUo7RUFDRSxjQ1RjO0VEVWQsZUNWYztFRFdkOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFLE9DeEJlO0VEeUJmOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QUU5REE7RUZzRUE7SUFDRTs7RUFFRjtJQUNFOzs7QUV0RUY7RUYyRUE7SUFDRTs7RUFFRjtJQUNFOzs7QUFNRjtFQUNFLE9DdkdROztBRHlHVjtFQUNFOztBQUlKO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7OztBRWxGQTtFQUNFLFdEcERxQjs7QUNxRHJCO0VBRkY7SUFH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RTs7QUFFQTtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFHRTtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUNBO0VBQ0U7O0FBTU47RUFDRTtFQUNBOztBQUVBO0VBQ0U7OztBQzdHSjtFQUNFOzs7QUFJSjtFQUNFOztBQUdFO0VBQ0U7RUFDQTtFQUNBLFlaVFE7RVlVUjs7QUFNRjtFQUNFOztBQUlBO0VBQ0UsT1p6QlE7O0FZNkJaO0VBQ0U7RUFDQTs7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT1p0Q0s7O0FZMENQO0VBQ0U7O0FBS047RUFDRTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFJSjtFQUNFOztBQUdFO0VBQ0UsT1ovREs7O0FZZ0VMO0VBQ0UsT1pyRU07O0FZd0VWO0VBQ0UsT1pwRVU7O0FZeUVoQjtFQUNFO0VBQ0E7RUFDQSxPVi9EZTtFVWdFZjtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRSxZWjlGUTtFWStGUjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPWm5HWTs7QVl1R2hCO0VBQ0UsT1p6R1M7OztBWTZHYjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7O0FDcEhKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBSVI7RUFDSTtJQUNJOzs7QUFNUjtFQUNJLE9ieEJTO0VheUJULFlieEJVOztBYXlCVjtFQUNJOzs7QUFHUjtFQUNJOzs7QUFLQTtFQUNJOzs7QUFLUjtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFVQTtBQWNBO0FBT0E7QUFPQTtFQUNJO0VBQ0E7RUFDQTtFQUNBIiwiZmlsZSI6InRoZW1lLmNzcyIsInNvdXJjZXNDb250ZW50IjpbImh0bWwge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbiNib2R5LXdyYXBwZXIge1xuICAuY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAkdmVydC1wYWRkaW5nO1xuICB9XG5cbiAgLy8gRml4ZWQgSGVhZGVyIHNvbHV0aW9uXG4gIC5oZWFkZXItZml4ZWQgJiB7XG4gICAgcGFkZGluZy10b3A6ICRoZWFkZXItaGVpZ2h0LWxhcmdlO1xuICB9XG59XG5cbi5oZWFkZXItZml4ZWQge1xuICAuaGVybyArICNzdGFydCA+ICNib2R5LXdyYXBwZXIge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5cbnNlY3Rpb24uc2VjdGlvbiB7XG4gIHBhZGRpbmctbGVmdDogJGhvcml6LXBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRob3Jpei1wYWRkaW5nO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5vdmVybGF5LWxpZ2h0LCAub3ZlcmxheS1kYXJrLCAub3ZlcmxheS1saWdodC1ncmFkaWVudCwgLm92ZXJsYXktZGFyay1ncmFkaWVudCB7XG4gIHotaW5kZXg6IDA7XG59XG5cbi52ZXJ0aWNhbC1jZW50ZXJlZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vLyBIZXJvXG4uaGVybyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIHBhZGRpbmctdG9wOiA2cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogN3JlbTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXG4gIGgxIHtcbiAgICBjb2xvcjogJGhlYWRlci10ZXh0LWRhcms7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICB9XG5cbiAgaDIge1xuICAgIGNvbG9yOiByZ2JhKCRoZWFkZXItdGV4dC1kYXJrLCAwLjgpO1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICB9XG5cbiAgJi5oZXJvLWZ1bGxzY3JlZW4ge1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICB9XG5cbiAgJi5oZXJvLWxhcmdlIHtcbiAgICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgfVxuXG4gICYuaGVyby1tZWRpdW0ge1xuICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICB9XG5cbiAgJi5oZXJvLXNtYWxsIHtcbiAgICBtaW4taGVpZ2h0OiAxMTBweDtcbiAgfVxuXG4gICYuaGVyby10aW55IHtcbiAgICBtaW4taGVpZ2h0OiA4cmVtO1xuICB9XG5cbiAgLmhlYWRlci1maXhlZCAmIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMDtcbiAgfVxuXG4gIC8vJi5wYXJhbGxheCB7XG4gIC8vICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAvL31cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XG4gICAgaDEge1xuICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgIH1cbiAgICBoMiB7XG4gICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbSkge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIH1cbiAgfVxuXG5cbiAgJi50ZXh0LWxpZ2h0IHtcbiAgICBoMSB7XG4gICAgICBjb2xvcjogJGhlYWRlci10ZXh0LWxpZ2h0O1xuICAgIH1cbiAgICBoMiB7XG4gICAgICBjb2xvcjogcmdiYSgkaGVhZGVyLXRleHQtbGlnaHQsIDAuOCk7XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICB9XG5cbiAgI3RvLXN0YXJ0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTBweDtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIE92ZXJsYXlcbi5pbWFnZS1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IC0xO1xuXG4gIC5vdmVybGF5LWxpZ2h0ICYge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoI2ZmZiwgMC40KTtcbiAgfVxuXG4gIC5vdmVybGF5LWxpZ2h0LWdyYWRpZW50ICYge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoI2ZmZiwwLjUpLCByZ2JhKCNmZmYsMC4yKSk7XG4gIH1cblxuICAub3ZlcmxheS1kYXJrICYge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoIzAwMCwgMC40KTtcbiAgfVxuXG4gIC5vdmVybGF5LWRhcmstZ3JhZGllbnQgJiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgjMDAwLDAuNSksIHJnYmEoIzAwMCwwLjIpKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuIiwiLy8gU3BlY3RyZSBPdmVycmlkZXNcbiRwcmltYXJ5LWNvbG9yOiAjZWViODMwICFkZWZhdWx0OyAvLyBmcm9tIFJvYnluJ3Mgc3R5bGUgZ3VpZGVcbi8vJGRhcmstY29sb3I6ICMxMTExMWYgIWRlZmF1bHQ7IC8vIGZyb20gUm9ieW4ncyBzdHlsZSBndWlkZSwgYnV0IHRvbyBpbnRlbnNlIGZvciBteSB0YXN0ZVxuJGRhcmstY29sb3I6ICMxNTE1MWMgIWRlZmF1bHQ7XG4kbGlnaHQtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kZ3JheS1jb2xvcjogbGlnaHRlbigkZGFyay1jb2xvciwgNjAlKSAhZGVmYXVsdDtcbiRncmF5LWNvbG9yLWRhcms6IGRhcmtlbigkZ3JheS1jb2xvciwgMjUlKSAhZGVmYXVsdDtcbiRib3JkZXItY29sb3I6IGxpZ2h0ZW4oJGRhcmstY29sb3IsIDUwJSkgIWRlZmF1bHQ7XG4kYmctY29sb3I6ICRkYXJrLWNvbG9yICFkZWZhdWx0O1xuJGJvZHktZm9udC1jb2xvcjogZGFya2VuKCRsaWdodC1jb2xvciwgNSUpICFkZWZhdWx0O1xuJGJhc2UtZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcblxuLy8gTGF5b3V0XG4kaG9yaXotcGFkZGluZzogMXJlbTtcbiR2ZXJ0LXBhZGRpbmc6IDJyZW0gMCAycmVtO1xuXG4vLyBGb250c1xuJG1pbi1yZXNwb25zaXZlLWZvbnQtc2l6ZTogMTZweDtcblxuLy8gSGVhZGVyXG4kaGVhZGVyLWhlaWdodC1sYXJnZTogNHJlbTtcbiRoZWFkZXItaGVpZ2h0LW1lZGl1bTogMi44cmVtO1xuJGhlYWRlci1oZWlnaHQtc21hbGw6IDIuM3JlbTtcbiRoZWFkZXItY29sb3ItZGFyazogIzIyMjtcbiRoZWFkZXItdGV4dC1saWdodDogJGxpZ2h0LWNvbG9yO1xuJGhlYWRlci10ZXh0LWRhcms6IGRhcmtlbigkZGFyay1jb2xvciwgMTUlKTtcblxuLy8gRHJvcGRvd24gTWVudVxuJGRyb3BtZW51LWJnOiAkbGlnaHQtY29sb3I7XG4kZHJvcG1lbnUtaG92ZXItdGV4dDogJHByaW1hcnktY29sb3I7XG4kZHJvcG1lbnUtaG9yaXotcGFkZGluZzogMjBweDtcbiRkcm9wbWVudS12ZXJ0LXBhZGRpbmc6IDdweDtcbiRkcm9wbWVudS1jaGlsZC1wYWRkaW5nOiAxMHB4O1xuJGRyb3BtZW51LXNoYWRvdzogMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcblxuLy8gTW9iaWxlIE1lbnVcbiRtb2JpbGUtY29sb3ItbWFpbjogJHByaW1hcnktY29sb3I7XG4kbW9iaWxlLWNvbG9yLWFjdGl2ZTogI0ZGRjtcbiRtb2JpbGUtY29sb3ItbGluazogI0ZGRjtcbiRtb2JpbGUtYnV0dG9uLWhlaWdodDogMjRweDtcbiRtb2JpbGUtYnV0dG9uLXdpZHRoOiAyOHB4O1xuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcG9pbnQpIHtcbiAgQGlmICRwb2ludCA9PSAyeCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6JHNpemUtMngpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkcG9pbnQgPT0geGwge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2l6ZS14bCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gIH0gQGVsc2UgaWYgJHBvaW50ID09IGxnIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNpemUtbGcpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkcG9pbnQgPT0gbWQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2l6ZS1tZCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRwb2ludCA9PSBzbSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzaXplLXNtKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJHBvaW50ID09IHhzIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNpemUteHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSAgQGVsc2Uge1xuICAgIEB3YXJuIFwiQnJlYWtwb2ludCBtaXhpbiBzdXBwb3J0czogeHMsIHNtLCBtZCwgbGcsIHhsLCAyeFwiO1xuICB9XG59XG5cbkBtaXhpbiB2ZXJ0aWNhbC1hbGlnbigkcG9zaXRpb246IHJlbGF0aXZlKSB7XG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbkBtaXhpbiBidXR0b24tcHJpbWFyeSgpIHtcbiAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3ItZGFyaztcbiAgY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgJjpmb2N1cyxcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRwcmltYXJ5LWNvbG9yLWRhcmssIDIlKTtcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbigkcHJpbWFyeS1jb2xvci1kYXJrLCA1JSk7XG4gICAgY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgfVxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IGRhcmtlbigkcHJpbWFyeS1jb2xvci1kYXJrLCA0JSk7XG4gICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJHByaW1hcnktY29sb3ItZGFyaywgNyUpO1xuICAgIGNvbG9yOiAkbGlnaHQtY29sb3I7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJHZhbHVlKSB7XG4gIEByZXR1cm4gbWF0aC5kaXYoJHZhbHVlLCAkdmFsdWUgKiAwICsgMSk7XG59XG5cbkBtaXhpbiBmbHVpZC10eXBlKCRtaW4tdncsICRtYXgtdncsICRtaW4tZm9udC1zaXplLCAkbWF4LWZvbnQtc2l6ZSkge1xuICAkdTE6IHVuaXQoJG1pbi12dyk7XG4gICR1MjogdW5pdCgkbWF4LXZ3KTtcbiAgJHUzOiB1bml0KCRtaW4tZm9udC1zaXplKTtcbiAgJHU0OiB1bml0KCRtYXgtZm9udC1zaXplKTtcblxuICBAaWYgJHUxID09ICR1MiBhbmQgJHUxID09ICR1MyBhbmQgJHUxID09ICR1NCB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6ICRtaW4tZm9udC1zaXplO1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJG1pbi12dykge1xuICAgICAgICBmb250LXNpemU6IGNhbGMoI3skbWluLWZvbnQtc2l6ZX0gKyAje3N0cmlwLXVuaXQoJG1heC1mb250LXNpemUgLSAkbWluLWZvbnQtc2l6ZSl9ICogKCgxMDB2dyAtICN7JG1pbi12d30pIC8gI3tzdHJpcC11bml0KCRtYXgtdncgLSAkbWluLXZ3KX0pKTtcbiAgICAgIH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtYXgtdncpIHtcbiAgICAgICAgZm9udC1zaXplOiAkbWF4LWZvbnQtc2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIENvcmUgdmFyaWFibGVzXG4kdmVyc2lvbjogXCIwLjUuOFwiO1xuXG4vLyBDb3JlIGZlYXR1cmVzXG4kcnRsOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gQ29yZSBjb2xvcnNcbiRwcmltYXJ5LWNvbG9yOiAjNTc1NWQ5ICFkZWZhdWx0O1xuJHByaW1hcnktY29sb3ItZGFyazogZGFya2VuKCRwcmltYXJ5LWNvbG9yLCAzJSkgIWRlZmF1bHQ7XG4kcHJpbWFyeS1jb2xvci1saWdodDogbGlnaHRlbigkcHJpbWFyeS1jb2xvciwgMyUpICFkZWZhdWx0O1xuJHNlY29uZGFyeS1jb2xvcjogbGlnaHRlbigkcHJpbWFyeS1jb2xvciwgMzcuNSUpICFkZWZhdWx0O1xuJHNlY29uZGFyeS1jb2xvci1kYXJrOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgMyUpICFkZWZhdWx0O1xuJHNlY29uZGFyeS1jb2xvci1saWdodDogbGlnaHRlbigkc2Vjb25kYXJ5LWNvbG9yLCAzJSkgIWRlZmF1bHQ7XG5cbi8vIEdyYXkgY29sb3JzXG4kZGFyay1jb2xvcjogIzMwMzc0MiAhZGVmYXVsdDtcbiRsaWdodC1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRncmF5LWNvbG9yOiBsaWdodGVuKCRkYXJrLWNvbG9yLCA1NSUpICFkZWZhdWx0O1xuJGdyYXktY29sb3ItZGFyazogZGFya2VuKCRncmF5LWNvbG9yLCAzMCUpICFkZWZhdWx0O1xuJGdyYXktY29sb3ItbGlnaHQ6IGxpZ2h0ZW4oJGdyYXktY29sb3IsIDIwJSkgIWRlZmF1bHQ7XG5cbiRib3JkZXItY29sb3I6IGxpZ2h0ZW4oJGRhcmstY29sb3IsIDY1JSkgIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yLWRhcms6IGRhcmtlbigkYm9yZGVyLWNvbG9yLCAxMCUpICFkZWZhdWx0O1xuJGJvcmRlci1jb2xvci1saWdodDogbGlnaHRlbigkYm9yZGVyLWNvbG9yLCA4JSkgIWRlZmF1bHQ7XG4kYmctY29sb3I6IGxpZ2h0ZW4oJGRhcmstY29sb3IsIDc1JSkgIWRlZmF1bHQ7XG4kYmctY29sb3ItZGFyazogZGFya2VuKCRiZy1jb2xvciwgMyUpICFkZWZhdWx0O1xuJGJnLWNvbG9yLWxpZ2h0OiAkbGlnaHQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIENvbnRyb2wgY29sb3JzXG4kc3VjY2Vzcy1jb2xvcjogIzMyYjY0MyAhZGVmYXVsdDtcbiR3YXJuaW5nLWNvbG9yOiAjZmZiNzAwICFkZWZhdWx0O1xuJGVycm9yLWNvbG9yOiAjZTg1NjAwICFkZWZhdWx0O1xuXG4vLyBPdGhlciBjb2xvcnNcbiRjb2RlLWNvbG9yOiAjZDczZTQ4ICFkZWZhdWx0O1xuJGhpZ2hsaWdodC1jb2xvcjogI2ZmZTliMyAhZGVmYXVsdDtcbiRib2R5LWJnOiAkYmctY29sb3ItbGlnaHQgIWRlZmF1bHQ7XG4kYm9keS1mb250LWNvbG9yOiBsaWdodGVuKCRkYXJrLWNvbG9yLCA1JSkgIWRlZmF1bHQ7XG4kbGluay1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kbGluay1jb2xvci1kYXJrOiBkYXJrZW4oJGxpbmstY29sb3IsIDEwJSkgIWRlZmF1bHQ7XG4kbGluay1jb2xvci1saWdodDogbGlnaHRlbigkbGluay1jb2xvciwgMTAlKSAhZGVmYXVsdDtcblxuLy8gRm9udHNcbi8vIENyZWRpdDogaHR0cHM6Ly93d3cuc21hc2hpbmdtYWdhemluZS5jb20vMjAxNS8xMS91c2luZy1zeXN0ZW0tdWktZm9udHMtcHJhY3RpY2FsLWd1aWRlL1xuJGJhc2UtZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIHN5c3RlbS11aSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90byAhZGVmYXVsdDtcbiRtb25vLWZvbnQtZmFtaWx5OiBcIlNGIE1vbm9cIiwgXCJTZWdvZSBVSSBNb25vXCIsIFwiUm9ib3RvIE1vbm9cIiwgTWVubG8sIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcbiRmYWxsYmFjay1mb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJGNqay16aC1oYW5zLWZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseSwgXCJQaW5nRmFuZyBTQ1wiLCBcIkhpcmFnaW5vIFNhbnMgR0JcIiwgXCJNaWNyb3NvZnQgWWFIZWlcIiwgJGZhbGxiYWNrLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGNqay16aC1oYW50LWZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseSwgXCJQaW5nRmFuZyBUQ1wiLCBcIkhpcmFnaW5vIFNhbnMgQ05TXCIsIFwiTWljcm9zb2Z0IEpoZW5nSGVpXCIsICRmYWxsYmFjay1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRjamstanAtZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5LCBcIkhpcmFnaW5vIFNhbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCJZdSBHb3RoaWNcIiwgWXVHb3RoaWMsIE1laXJ5bywgJGZhbGxiYWNrLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGNqay1rby1mb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHksIFwiTWFsZ3VuIEdvdGhpY1wiLCAkZmFsbGJhY2stZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kYm9keS1mb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHksICRmYWxsYmFjay1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8gVW5pdCBzaXplc1xuJHVuaXQtbzogLjA1cmVtICFkZWZhdWx0O1xuJHVuaXQtaDogLjFyZW0gIWRlZmF1bHQ7XG4kdW5pdC0xOiAuMnJlbSAhZGVmYXVsdDtcbiR1bml0LTI6IC40cmVtICFkZWZhdWx0O1xuJHVuaXQtMzogLjZyZW0gIWRlZmF1bHQ7XG4kdW5pdC00OiAuOHJlbSAhZGVmYXVsdDtcbiR1bml0LTU6IDFyZW0gIWRlZmF1bHQ7XG4kdW5pdC02OiAxLjJyZW0gIWRlZmF1bHQ7XG4kdW5pdC03OiAxLjRyZW0gIWRlZmF1bHQ7XG4kdW5pdC04OiAxLjZyZW0gIWRlZmF1bHQ7XG4kdW5pdC05OiAxLjhyZW0gIWRlZmF1bHQ7XG4kdW5pdC0xMDogMnJlbSAhZGVmYXVsdDtcbiR1bml0LTEyOiAyLjRyZW0gIWRlZmF1bHQ7XG4kdW5pdC0xNjogMy4ycmVtICFkZWZhdWx0O1xuXG4vLyBGb250IHNpemVzXG4kaHRtbC1mb250LXNpemU6IDIwcHggIWRlZmF1bHQ7XG4kaHRtbC1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuJGZvbnQtc2l6ZTogLjhyZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLXNtOiAuN3JlbSAhZGVmYXVsdDtcbiRmb250LXNpemUtbGc6IC45cmVtICFkZWZhdWx0O1xuJGxpbmUtaGVpZ2h0OiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vIFNpemVzXG4kbGF5b3V0LXNwYWNpbmc6ICR1bml0LTIgIWRlZmF1bHQ7XG4kbGF5b3V0LXNwYWNpbmctc206ICR1bml0LTEgIWRlZmF1bHQ7XG4kbGF5b3V0LXNwYWNpbmctbGc6ICR1bml0LTQgIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1czogJHVuaXQtaCAhZGVmYXVsdDtcbiRib3JkZXItd2lkdGg6ICR1bml0LW8gIWRlZmF1bHQ7XG4kYm9yZGVyLXdpZHRoLWxnOiAkdW5pdC1oICFkZWZhdWx0O1xuJGNvbnRyb2wtc2l6ZTogJHVuaXQtOSAhZGVmYXVsdDtcbiRjb250cm9sLXNpemUtc206ICR1bml0LTcgIWRlZmF1bHQ7XG4kY29udHJvbC1zaXplLWxnOiAkdW5pdC0xMCAhZGVmYXVsdDtcbiRjb250cm9sLXBhZGRpbmcteDogJHVuaXQtMiAhZGVmYXVsdDtcbiRjb250cm9sLXBhZGRpbmcteC1zbTogJHVuaXQtMiAqIC43NSAhZGVmYXVsdDtcbiRjb250cm9sLXBhZGRpbmcteC1sZzogJHVuaXQtMiAqIDEuNSAhZGVmYXVsdDtcbiRjb250cm9sLXBhZGRpbmcteTogKCRjb250cm9sLXNpemUgLSAkbGluZS1oZWlnaHQpICogMC41IC0gJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRjb250cm9sLXBhZGRpbmcteS1zbTogKCRjb250cm9sLXNpemUtc20gLSAkbGluZS1oZWlnaHQpICogMC41IC0gJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRjb250cm9sLXBhZGRpbmcteS1sZzogKCRjb250cm9sLXNpemUtbGcgLSAkbGluZS1oZWlnaHQpICogMC41IC0gJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRjb250cm9sLWljb24tc2l6ZTogLjhyZW0gIWRlZmF1bHQ7XG5cbiRjb250cm9sLXdpZHRoLXhzOiAxODBweCAhZGVmYXVsdDtcbiRjb250cm9sLXdpZHRoLXNtOiAzMjBweCAhZGVmYXVsdDtcbiRjb250cm9sLXdpZHRoLW1kOiA2NDBweCAhZGVmYXVsdDtcbiRjb250cm9sLXdpZHRoLWxnOiA5NjBweCAhZGVmYXVsdDtcbiRjb250cm9sLXdpZHRoLXhsOiAxMjgwcHggIWRlZmF1bHQ7XG5cbi8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHNcbiRzaXplLXhzOiA0ODBweCAhZGVmYXVsdDtcbiRzaXplLXNtOiA2MDBweCAhZGVmYXVsdDtcbiRzaXplLW1kOiA4NDBweCAhZGVmYXVsdDtcbiRzaXplLWxnOiA5NjBweCAhZGVmYXVsdDtcbiRzaXplLXhsOiAxMjgwcHggIWRlZmF1bHQ7XG4kc2l6ZS0yeDogMTQ0MHB4ICFkZWZhdWx0O1xuXG4kcmVzcG9uc2l2ZS1icmVha3BvaW50OiAkc2l6ZS14cyAhZGVmYXVsdDtcblxuLy8gWi1pbmRleFxuJHppbmRleC0wOiAxICFkZWZhdWx0O1xuJHppbmRleC0xOiAxMDAgIWRlZmF1bHQ7XG4kemluZGV4LTI6IDIwMCAhZGVmYXVsdDtcbiR6aW5kZXgtMzogMzAwICFkZWZhdWx0O1xuJHppbmRleC00OiA0MDAgIWRlZmF1bHQ7XG4iLCJodG1sIHtcbiAgQGluY2x1ZGUgZmx1aWQtdHlwZSgkc2l6ZS14cywgJHNpemUteGwsICRtaW4tcmVzcG9uc2l2ZS1mb250LXNpemUsICRodG1sLWZvbnQtc2l6ZSk7XG59XG5cbi8vIEhlYWRlciBPdmVycmlkZXNcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQtZmFtaWx5O1xuICBjb2xvcjogZGFya2VuKCRib2R5LWZvbnQtY29sb3IsIDEwJSk7XG59XG5cbmgxLCAuaDEge1xuICBmb250LXNpemU6IDNyZW07XG59XG5cbmgyLCAuaDIge1xuICBmb250LXNpemU6IDEuOHJlbTtcbn1cblxuaDYsIC5oNiB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi50aXRsZS1jZW50ZXIge1xuICBoMSwgaDIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4udGl0bGUtaDFoMiB7XG4gIGgxICB7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG5cbiAgICBzdHJvbmcsIGJvbGQge1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB9XG4gIH1cbiAgaDEgKyBoMiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbn1cblxuLy8gVHlwb2dyYXBoeSBIaW50c1xuLnRpdGxlLWgxaDIsIC50aXRsZS1jZW50ZXIge1xuICBoMSArIGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cbn1cblxuYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8vIFRhYmxlc1xuLnRhYmxlID4gdGFibGUge1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cblxuLy8gQ29kZWJsb2Nrc1xucHJlIGNvZGUsIHByZS54ZGVidWctdmFyLWR1bXB7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxcmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuICBjb2RlIHtcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy14OiBpbml0aWFsO1xuICB9XG59XG5cbnByZSB7XG4gIGNvZGU6bm90KC5obGpzKTpub3QoW2NsYXNzKj1cImxhbmd1YWdlLVwiXSkge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gIH1cbn1cblxuLy8gSWNvbiBUd2Vha3NcbmkuZmEge1xuXG5cbiAgJi5mYS1oZWFydCwgJi5mYS1oZWFydC1vIHtcbiAgICAmLnB1bHNlIHtcbiAgICAgIGNvbG9yOiAjOTIwXG4gICAgfVxuICB9XG59XG5cbi8vIEZvbnQgV2VpZ2h0c1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5oZWF2eSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG59XG5cbi8vIENvbG9yc1xuLnRleHQtbGlnaHQge1xuICBjb2xvcjogcmdiYSgkbGlnaHQtY29sb3IsIDAuOCk7XG5cbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgY29sb3I6IHJnYmEoJGxpZ2h0LWNvbG9yLCAwLjkpO1xuICB9XG59XG5cbi8vIEVycm9yIGNvbmZpZ3VyYXRpb25cbiNlcnJvciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiA1cmVtO1xuXG4gIC5pY29uIHtcbiAgICBmb250LXNpemU6IDUwcHg7XG4gIH1cbn1cblxuLy8gTWVzc2FnZXNcbiNtZXNzYWdlcyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgLmljb24ge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuXG4vLyBMaXN0c1xudWwsXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAkdW5pdC04O1xuXG4gIHVsLFxuICBvbCB7XG4gICAgbWFyZ2luLWxlZnQ6ICR1bml0LTg7XG4gIH1cbn1cblxudWwge1xuICBsaXN0LXN0eWxlOiBkaXNjIG91dHNpZGU7XG59XG5cbm9sIHtcbiAgbGlzdC1zdHlsZTogZGVjaW1hbCBvdXRzaWRlO1xufVxuXG4vLyBOb3RpY2VzXG4ubm90aWNlcyB7XG4gIG1hcmdpbjogMS41cmVtIDA7XG4gIHAge1xuICAgIG1hcmdpbjogMXJlbSAwO1xuICB9XG59XG5cblxuIiwiJHRpdGxlLWZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseSwgJGZhbGxiYWNrLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuIiwiZm9ybSB7XG4gIC5idXR0b24td3JhcHBlciB7XG4gICAgbWFyZ2luLXRvcDogMC43NXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgc3Bhbi5yZXF1aXJlZCB7XG4gICAgY29sb3I6ICRlcnJvci1jb2xvcjtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB9XG5cbiAgLmZvcm0taW5wdXRbdHlwZT1yYW5nZV0ge1xuICAgIGFwcGVhcmFuY2U6IHNsaWRlci1ob3Jpem9udGFsO1xuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVzZXQgc29tZSBkZWZhdWx0cyBmb3IgUXVhcmt5IFRoZW1lICoqL1xuICAuZm9ybS1ncm91cDpub3QoLmZvcm0tZmllbGQtdG9nZ2xlYWJsZSkge1xuICAgIC5jaGVja2JveGVzIHtcbiAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG5cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgcGFkZGluZzogKCgkY29udHJvbC1zaXplLXNtIC0gJGxpbmUtaGVpZ2h0KSAqIDAuNSkgJGNvbnRyb2wtcGFkZGluZy14ICgoJGNvbnRyb2wtc2l6ZS1zbSAtICRsaW5lLWhlaWdodCkgKiAwLjUpICgkY29udHJvbC1pY29uLXNpemUgKyAkY29udHJvbC1wYWRkaW5nLXgpO1xuICAgICAgICBtYXJnaW46IGluaGVyaXQ7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4jZ3Jhdi1sb2dpbiB7XG5cbiAgPiBmb3JtIHtcbiAgICBtYXJnaW46IDJyZW0gYXV0byAwO1xuICAgIG1heC13aWR0aDogMzUwcHg7XG4gIH1cbiAgLmZvcm0tbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmZvcm0tZGF0YSB7XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gIH1cbiAgLmZvcm0taW5wdXQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuYnV0dG9uLXdyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgLmZvcm0tZGF0YS5yZW1lbWJlcm1lIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgfVxuXG4gIC5sb2dpbi1mb3JtIHtcbiAgICBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tcHJpbWFyeTtcbiAgICB9XG4gIH1cblxuICAudHdvZmEtZm9ybSB7XG4gICAgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl06Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLXByaW1hcnk7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuXG4ubW9iaWxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLy93aWR0aDogMTAwJTtcbiAgLy9oZWlnaHQ6IDEwMCU7XG4gIHRvcDogNDAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW46ICAwIGF1dG87XG4gIHotaW5kZXg6IDI7XG59XG5cbi5tb2JpbGUtbG9nbyB7XG4gIHN2ZywgaW1nIHtcbiAgICBoZWlnaHQ6IDQycHg7XG4gICAgbWFyZ2luLXRvcDogLjdyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDEuNHJlbTtcblxuICAgIHBhdGgge1xuICAgICAgZmlsbDogJGxpZ2h0LWNvbG9yO1xuICAgIH1cblxuICB9XG59XG5cbi8vIEhhbWJ1cmdlciBNZW51XG4ubW9iaWxlLW1lbnUge1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDM7XG5cbiAgLmhlYWRlci1maXhlZCAmIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuYnV0dG9uX2NvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMS4zcmVtO1xuICAgIHJpZ2h0OiAkaG9yaXotcGFkZGluZztcbiAgICBoZWlnaHQ6ICRtb2JpbGUtYnV0dG9uLWhlaWdodDtcbiAgICB3aWR0aDogJG1vYmlsZS1idXR0b24td2lkdGg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4yNXMgZWFzZSwgdG9wIDAuNXMgZWFzZTtcblxuICAgICRiYXItb2Zmc2V0OiBtYXRoLmRpdigkbW9iaWxlLWJ1dHRvbi1oZWlnaHQsIDMpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAuNztcbiAgICB9XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAgIC50b3Age1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGJhci1vZmZzZXQpIHRyYW5zbGF0ZVgoMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJG1vYmlsZS1jb2xvci1hY3RpdmU7XG4gICAgICB9XG4gICAgICAubWlkZGxlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJG1vYmlsZS1jb2xvci1hY3RpdmU7XG4gICAgICB9XG5cbiAgICAgIC5ib3R0b20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSgkYmFyLW9mZnNldCkpIHRyYW5zbGF0ZVgoMCkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRtb2JpbGUtY29sb3ItYWN0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgYmFja2dyb3VuZDogJG1vYmlsZS1jb2xvci1tYWluO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2l0aW9uOiAgYWxsIC4zNXMgZWFzZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgIHRvcDogJGJhci1vZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLW9mLXR5cGUoMykge1xuICAgICAgICB0b3A6ICRiYXItb2Zmc2V0ICogMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMCU7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMzVzLCB2aXNpYmlsaXR5IC4zNXMsIGhlaWdodCAuMzVzO1xuXG4gICYub3BlbiB7XG4gICAgb3BhY2l0eTogLjk1O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gIH1cbiAgbmF2IHtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLm92ZXJsYXktbWVudSB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gOTBweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAmID4gLnRyZWUge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cblxuXG4udHJlZW1lbnUge1xuXG4gICYudHJlZW1lbnUtcm9vdCB7XG4gICAgbWFyZ2luOiAxcmVtO1xuICB9XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwIDAgMXB4O1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XG5cbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRncmF5LWNvbG9yLWRhcmssMC4xKTtcblxuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tbGVmdDogMS4ycmVtO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuXG4gICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci1saWdodCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMCAwIDAgMXJlbTtcbiAgfVxuXG4gIC50b2dnbGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAycHQ7XG4gICAgfVxuICB9XG5cbiAgbGkudHJlZS1lbXB0eSAgPiAudG9nZ2xlciB7XG4gICAgb3BhY2l0eTogMC4zOyBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcMjAyMlwiO1xuICAgIH1cbiAgfVxuXG4gIGxpLnRyZWUtY2xvc2VkID4gLnRvZ2dsZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIitcIjtcbiAgfVxuXG4gIGxpLnRyZWUtb3BlbmVkID4gLnRvZ2dsZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjIxMlwiO1xuICB9XG59XG5cbi5tb2JpbGUtbmF2LW9wZW4ge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG4iLCIuZGVmYXVsdC1hbmltYXRpb24ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLyBQdWxzZSBBbmltYXRpb25cbi5wdWxzZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwdWxzZV9hbmltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMjAwMG1zO1xuICB0cmFuc2Zvcm0tb3JpZ2luOjcwJSA3MCU7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2VfYW5pbWF0aW9uIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDMwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KTsgfVxuICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDYwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNzAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsgfVxuICA4MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG59XG4iLCIjaGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlYWRlci1oZWlnaHQtbGFyZ2U7XG4gIGJvcmRlci1ib3R0b206IDBweCBzb2xpZCByZ2JhKCRncmF5LWNvbG9yLCAwLjIpO1xuICBAZXh0ZW5kIC5kZWZhdWx0LWFuaW1hdGlvbjtcblxuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICBiYWNrZ3JvdW5kOiAkaGVhZGVyLWNvbG9yLWRhcms7XG4gIGNvbG9yOiAkbGlnaHQtY29sb3I7XG5cbiAgYmFja2dyb3VuZDogJGhlYWRlci1jb2xvci1kYXJrO1xuICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICBhIHtcbiAgICBjb2xvcjogcmdiYSgkbGlnaHQtY29sb3IsIDAuOSkgIWltcG9ydGFudDtcbiAgfVxuICBhLmFjdGl2ZSB7XG4gICAgY29sb3I6ICRsaWdodC1jb2xvciAhaW1wb3J0YW50O1xuICB9XG4gIC5kcm9wbWVudSB1bCB1bCBhIHtcbiAgICAgIGNvbG9yOiAkZGFyay1jb2xvciAhaW1wb3J0YW50O1xuICB9XG4gIC5sb2dvIHN2ZyBwYXRoIHtcbiAgICBmaWxsOiAkbGlnaHQtY29sb3I7XG4gICAgfVxuXG4gIC5oZWFkZXItZGFyay5oZWFkZXItdHJhbnNwYXJlbnQgJjpub3QoLnNjcm9sbGVkKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgjMDAwLCAwLjA1KTtcbiAgfVxuXG4gIC5oZWFkZXItdHJhbnNwYXJlbnQgJjpub3QoLnNjcm9sbGVkKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgjZmZmLCAwLjA1KTtcbiAgICAvL2JvcmRlci1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5uYXZiYXItc2VjdGlvbiB7XG4gICAgaGVpZ2h0OiAkaGVhZGVyLWhlaWdodC1sYXJnZTtcbiAgICBAZXh0ZW5kIC5kZWZhdWx0LWFuaW1hdGlvbjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLXNlY3Rpb24uZGVza3RvcC1tZW51IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5sb2dvIHtcbiAgICBzdmcsIGltZyB7XG4gICAgICBoZWlnaHQ6IDQycHg7XG4gICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRml4ZWQgSGVhZGVyIHNvbHV0aW9uXG4gIC5oZWFkZXItZml4ZWQgJiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAyO1xuICB9XG59XG5cbi8vIEFuaW1hdGUgRml4ZWQgSGVhZGVyXG5ib2R5LmhlYWRlci1maXhlZC5oZWFkZXItYW5pbWF0ZWQge1xuICAjaGVhZGVyLnNjcm9sbGVkIHtcbiAgICBoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0LW1lZGl1bTtcblxuICAgIC5uYXZiYXItc2VjdGlvbiB7XG4gICAgICBoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0LW1lZGl1bTtcbiAgICB9XG5cbiAgICAubG9nbyB7XG4gICAgICBzdmcsIGltZyB7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB+IC5tb2JpbGUtbWVudSAuYnV0dG9uX2NvbnRhaW5lciB7XG4gICAgICB0b3A6IDAuNXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLmxvZ2luLXN0YXR1cy13cmFwcGVyIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8vIFN0aWNreSBGb290ZXIgc29sdXRpb25cbmJvZHkuc3RpY2t5LWZvb3RlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgI3BhZ2Utd3JhcHBlciB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cbn1cblxuI2Zvb3RlciB7XG4gIGNvbG9yOiAkbGlnaHQtY29sb3I7XG4gIHBhZGRpbmc6IDFyZW0gJGhvcml6LXBhZGRpbmcgMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLmRyb3BtZW51IHtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgbGkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAkZHJvcG1lbnUtdmVydC1wYWRkaW5nICgkZHJvcG1lbnUtaG9yaXotcGFkZGluZyArICRkcm9wbWVudS1jaGlsZC1wYWRkaW5nKSAkZHJvcG1lbnUtdmVydC1wYWRkaW5nICRkcm9wbWVudS1ob3Jpei1wYWRkaW5nO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XG4gICAgICAgICAgY29sb3I6ICRkcm9wbWVudS1ob3Zlci10ZXh0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJ1xcZjEwNyc7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogLSAoMiAqJGRyb3BtZW51LWNoaWxkLXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpvbmx5LWNoaWxkIHtcbiAgICAgICAgICAvL2JhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogJGRyb3BtZW51LWhvcml6LXBhZGRpbmc7XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgICYgPiB1bCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHVsIGxpIGE6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXGYxMDUnO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJvcG1lbnUtYmc7XG4gICAgICBib3gtc2hhZG93OiAkZHJvcG1lbnUtc2hhZG93O1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgICB1bCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgJiA+IHVsID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gIC8vIEFuaW1hdGlvbiBvcHRpb25zXG4gICYuYW5pbWF0ZWQge1xuICAgIHVsIGxpIHtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjdzLCBjb2xvciAwLjVzO1xuICAgIH1cblxuICAgIHVsIGxpOmhvdmVyID4gdWwge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG5cbiAgICB1bCB1bCB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzLCBvcGFjaXR5IC41cztcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuICAgIH1cbiAgfVxufSIsIi8qKiBFeHRyYSBjb2x1bW5zIHNwYWNpbmcgKiovXG4uZXh0cmEtc3BhY2luZzpub3QoLmNvbC0xMiksIDpub3QoLmNvbDEyKSA+IC5lLWNvbnRlbnQge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cbi8qKiBCcmVhZGNydW1icyBzdHlsaW5nICoqL1xuI2JyZWFkY3J1bWJzIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuXG4gIGkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBzcGFuLCBhIHtcbiAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICBzcGFuLCBhIHtcbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpOjpiZWZvcmUge1xuICAgICAgY29sb3I6ICNlN2U5ZWQ7XG4gICAgICBjb250ZW50OiBcIi9cIjtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgfVxuICB9XG59XG5cbi8qKiBCbG9nIExpc3RpbmcgKiovXG4uYmxvZy1saXN0aW5nIHtcblxuICAuYnJpY2tsYXllci1jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG5cbiAgfVxuICAuY2FyZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDQ1cHggLTlweCByZ2JhKDAsMCwwLDAuMSk7XG4gIH1cblxuICAuY2FyZC1mb290ZXIge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgLmJsb2ctZGF0ZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICB9XG5cbiAgLmxhYmVsIHtcblxuICB9XG59XG5cbi8qKiBCbG9nIEl0ZW0gKiovXG4uY29udGVudC10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgaDIge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgfVxufVxuXG4ubGFiZWwge1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi8qKiBQYWdpbmF0aW9uICoqL1xudWwucGFnaW5hdGlvbiB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ucHJldi1uZXh0IHtcbiAgbWFyZ2luLXRvcDogNHJlbTtcbn1cblxuLyoqIFNpZGViYXIgc3BlY2lmaWMgdHdlYWtzICoqL1xuI3NpZGViYXIge1xuXG4gIHVsLnJlbGF0ZWQtcGFnZXMge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgbGkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgdWwuYXJjaGl2ZXMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICAubGFiZWwge1xuICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICAgIH1cbiAgfVxufVxuIiwiLm1vZHVsYXItaGVybyB7XG4gICN0by1zdGFydCB7XG4gICAgYm90dG9tOiAzLjVyZW07XG4gIH1cbn1cblxuLm1vZHVsYXItZmVhdHVyZXMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgJi5vZmZzZXQtYm94IHtcbiAgICAuZnJhbWUtYm94IHtcbiAgICAgIG1hcmdpbjogLTNyZW0gKC0xcmVtIC0gJGxheW91dC1zcGFjaW5nKSAzcmVtO1xuICAgICAgcGFkZGluZzogMXJlbSAxcmVtO1xuICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LWNvbG9yO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDc1cHggMCByZ2JhKCRkYXJrLWNvbG9yLCAwLjEpO1xuICAgIH1cbiAgfVxuXG4gICYuc21hbGwge1xuXG4gICAgLmNvbHVtbnMge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuXG4gICAgLmNvbHVtbjpob3ZlciB7XG4gICAgICAuZmVhdHVyZS1pY29uIGkge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZlYXR1cmUtaWNvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcblxuXG4gICAgICBpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDcwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDFyZW07XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBjb2xvcjogJGdyYXktY29sb3I7XG4gICAgICAgIEBleHRlbmQgLmRlZmF1bHQtYW5pbWF0aW9uO1xuXG4gICAgICB9XG4gICAgICBoNiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mcmFtZS1ib3gge1xuICAgIHBhZGRpbmc6IDNyZW0gMDtcblxuICAgID4gcCB7XG4gICAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLmNvbHVtbiB7XG4gICAgcGFkZGluZzogMXJlbTtcblxuICAgICY6aG92ZXIge1xuICAgICAgLmZlYXR1cmUtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAkZ3JheS1jb2xvcjtcbiAgICAgICAgaDYge1xuICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmZlYXR1cmUtY29udGVudCB7XG4gICAgICAgIGNvbG9yOiAkZ3JheS1jb2xvci1kYXJrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mZWF0dXJlLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMTMwcHg7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBjb2xvcjogJGdyYXktY29sb3ItbGlnaHQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDFyZW0gMDtcbiAgICBAZXh0ZW5kIC5kZWZhdWx0LWFuaW1hdGlvbjtcblxuICAgIGkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG5cbiAgICBoNiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtY29sb3I7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6ICRncmF5LWNvbG9yLWRhcms7XG4gICAgfVxuICB9XG5cbiAgLmZlYXR1cmUtY29udGVudCB7XG4gICAgY29sb3I6ICRncmF5LWNvbG9yO1xuICB9XG59XG5cbi5tb2R1bGFyLXRleHQge1xuICBwYWRkaW5nLXRvcDogNHJlbTtcbiAgcGFkZGluZy1ib3R0b206IDRyZW07XG5cbiAgLmNvbHVtbnMubGVmdCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG59IiwiJHRlc3QtY29sb3I6ICNjNTMwZWUgIWRlZmF1bHQ7XG5cbi8vIFBvcnRmb2xpbyBncmlkXG4uaW1hZ2UtZ3JpZCB7XG4gICAgY29sdW1uLWNvdW50OiAxOyAvLyAxIGNvbHVtbiBvbiBtb2JpbGVcbiAgICBjb2x1bW4tZ2FwOiA2cHg7IC8vIEFkanVzdCBhcyBuZWVkZWRcbn1cblxuLmltYWdlLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTsgLy8gRnVsbCB3aWR0aCBvZiB0aGUgY29sdW1uXG5cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC8vIEFkanVzdCB0aGlzIHZhbHVlIGFzIG5lZWRlZFxuICAgIC5pbWFnZS1ncmlkIHtcbiAgICAgICAgY29sdW1uLWNvdW50OiAzOyAvLyAzIGNvbHVtbnMgb24gbGFyZ2VyIHNjcmVlbnNcbiAgICB9XG59XG5cbi8vIEZvcm1cblxuLmZvcm0taW5wdXQge1xuICAgIGNvbG9yOiAkZGFyay1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtY29sb3I7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogZGFya2VuKCRncmF5LWNvbG9yLCAxMCUpO1xuICAgIH1cbn1cbmZvcm0gc3Bhbi5yZXF1aXJlZCB7XG4gICAgY29sb3I6ICM3ZTAwMTQ7XG59XG5cblxuLmZvcm0tZGF0YS5iYXNpYy1jYXB0Y2hhIHtcbiAgICBpbnB1dC5mb3JtLWlucHV0IHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbn1cblxuLy8gRmVhdGhlcmxpZ2h0IGxpZ2h0Ym94XG4vKiBFbnN1cmluZyB0aGUgaW1hZ2UgZml0cyB0aGUgc2NyZWVuIGVpdGhlciBieSB3aWR0aCBvciBoZWlnaHQgKi9cbi5mZWF0aGVybGlnaHQtY29udGVudCBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoOyAvLyAxMDAlIG9mIHRoZSB2aWV3cG9ydCBoZWlnaHRcbiAgICBtYXgtd2lkdGg6IDEwMHZ3OyAvLyAxMDAlIG9mIHRoZSB2aWV3cG9ydCB3aWR0aFxuICAgIHdpZHRoOiBhdXRvOyAvLyBLZWVwIHRoZSBpbWFnZSdzIGFzcGVjdCByYXRpb1xuICAgIGhlaWdodDogYXV0bzsgLy8gS2VlcCB0aGUgaW1hZ2UncyBhc3BlY3QgcmF0aW9cbiAgICBtYXJnaW46IGF1dG87IC8vIENlbnRlciB0aGUgaW1hZ2Vcbn1cblxuLyogU3R5bGluZyBuYXZpZ2F0aW9uIGFycm93czogb25seSBzaG93biB3aGVuIG1vdXNlIGlzIG1vdmluZyBvbiBkZXNrdG9wICovXG4vLy5mZWF0aGVybGlnaHQtbmV4dCwgLmZlYXRoZXJsaWdodC1wcmV2aW91cyB7XG4vLyAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IC8vIEluaXRpYWxseSBoaWRkZW5cbi8vfVxuLy9AbWVkaWEgKGhvdmVyOiBob3ZlcikgeyAvLyBDaGVjayBpZiB0aGUgZGV2aWNlIHN1cHBvcnRzIGhvdmVyaW5nXG4vLyAgICAuZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtcHJldmlvdXM6aG92ZXIsIC5mZWF0aGVybGlnaHQgLmZlYXRoZXJsaWdodC1uZXh0OmhvdmVyIHtcbi8vICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuLy8gICAgfVxuLy99XG5cbi8qIENsb3NpbmcgYnV0dG9uIGF0IHRoZSB0b3AtcmlnaHQgY29ybmVyICovXG4vLy5mZWF0aGVybGlnaHQtY2xvc2UtaWNvbiB7XG4vLyAgICBjb2xvcjogI2ZmZjsgLy8gV2hpdGUgY29sb3IgZm9yIHZpc2liaWxpdHlcbi8vICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgIHJpZ2h0OiAyMHB4O1xuLy8gICAgdG9wOiAyMHB4O1xuLy8gICAgZm9udC1zaXplOiAyZW07XG4vL1xuLy8gICAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuLy8gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IC8vIEFsd2F5cyBkaXNwbGF5IHRoZSBjbG9zZSBidXR0b24gb24gbW9iaWxlXG4vLyAgICB9XG4vL31cblxuXG4vKiBIaWRpbmcgdGhlIG5hdmlnYXRpb24gYnV0dG9ucyBvbiBtb2JpbGUgKi9cbi8vQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7IC8vIEFkanVzdCBhY2NvcmRpbmcgdG8geW91ciBtb2JpbGUgYnJlYWtwb2ludFxuLy8gICAgLmZlYXRoZXJsaWdodC1uZXh0LCAuZmVhdGhlcmxpZ2h0LXByZXZpb3VzIHtcbi8vICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4vLyAgICB9XG4vL31cblxuLyogQWRkaXRpb25hbCBzdHlsZXMgZm9yIGhpZGluZyBuYXZpZ2F0aW9uIG9uIGluYWN0aXZpdHkgKi9cbi8vYm9keTpob3ZlciAuZmVhdGhlcmxpZ2h0LW5leHQsIGJvZHk6aG92ZXIgLmZlYXRoZXJsaWdodC1wcmV2aW91cyB7XG4vLyAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyAvLyBTaG93IG9uIGRlc2t0b3Agd2hlbiBtb3VzZSBtb3Zlc1xuLy99XG5cblxuLy8gRm9vdGVyXG4ubG9nby1mb290ZXIge1xuICAgIGhlaWdodDogMS4xZW07IC8qIFRoaXMgd2lsbCBtYWtlIHRoZSBpbWFnZSB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIHRleHQgb24gdGhlIGxpbmUgKi9cbiAgICB3aWR0aDogYXV0bzsgLyogVGhpcyB3aWxsIGtlZXAgdGhlIGFzcGVjdCByYXRpbyBvZiB0aGUgaW1hZ2UgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjJlbTtcbn1cblxuIl19 */
