@charset "UTF-8";
/**
 * Foundation for Sites by ZURB
 * Version 6.3.1
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
.animated {
  animation-duration: 0.5s;
  animation-fill-mode: both;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 5%, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInUp {
  animation-name: fadeInUp;
}

.element-invisible, .buscador, .login-correo, .login-unet {
  display: none;
}

header {
  background-color: #D2A92D;
}

.logo-busqueda {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

.logo-busqueda::before, .logo-busqueda::after {
  display: table;
  content: ' ';
}

.logo-busqueda::after {
  clear: both;
}

.logo-busqueda .logo {
  width: 58.33333%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding: 0 0.625rem 0 0;
}

.logo-busqueda .buscador-idioma-correo {
  width: 41.66667%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  color: #18386b;
  text-align: right;
  margin-top: 20px;
}

@media print, screen and (min-width: 40em) {
  .logo-busqueda .buscador-idioma-correo {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

/*.logo-busqueda
{
     @include grid-row;

     .logo{
         @include grid-column(7);
     }
     .buscador-idioma-correo
     {
          @include grid-column(5);
          color: $azul-base;
          text-align: right;
          margin-top: 20px;
     }
} */
.banderas a {
  color: #f3f3f3;
}

.icono {
  font-size: 25px;
  cursor: pointer;
}

a.nturl:after {
  position: absolute;
  content: '';
  height: 20px;
  border: solid 1px #18386b;
  top: -3px;
  right: -6px;
}

a.nturl:last-child:after {
  border: none;
}

a.flag {
  position: relative;
  color: #18386b;
  padding-left: 5px;
}

.contenedor {
  color: #333;
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

.contenedor::before, .contenedor::after {
  display: table;
  content: ' ';
}

.contenedor::after {
  clear: both;
}

.iconos {
  width: 33.33333%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  float: right;
}

.desplegables {
  width: 66.66667%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.formulario {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

.formulario::before, .formulario::after {
  display: table;
  content: ' ';
}

.formulario::after {
  clear: both;
}

.form-passwd, .form-usuario {
  width: 41.66667%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.btn-submit {
  width: 16.66667%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.option {
  position: relative;
}

.form-usuario {
  padding-right: 10px;
}

.icon-search, .icon-mail {
  font-size: 25px;
  cursor: pointer;
}

nav {
  background-color: #18386b;
}

nav #menu-principal {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

nav #menu-principal::before, nav #menu-principal::after {
  display: table;
  content: ' ';
}

nav #menu-principal::after {
  clear: both;
}

nav a {
  color: #f3f3f3;
  text-transform: uppercase;
}

.title-bar-title {
  display: inline-block;
  color: #f3f3f3;
}

button.menu-icono {
  font-size: 30px;
  border: solid 1px #f3f3f3;
  border-radius: 5px;
  color: #f3f3f3;
  margin: 5px;
}

.menu > li > a:hover {
  color: #D2A92D;
}

.menu > li.active > a:hover {
  color: #18386b;
}

.login_correo {
  width: 66.66667%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  float: right;
}

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

ul.logos li {
  display: inline-block;
  padding: 24px;
}

footer {
  background-color: #18386b;
  border-bottom: #D2A92D solid 18px;
  color: #f3f3f3;
  padding-top: 25px;
}

footer p {
  color: #f3f3f3;
}

.menu-footer {
  width: 75%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  margin-bottom: 1rem;
}

.logo-footer {
  width: 25%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .logo-footer {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

ul.nav-footer {
  margin-left: 0;
}

ul.nav-footer li {
  display: inline-block;
  padding-right: 15px;
}

ul.nav-footer a {
  color: #f3f3f3;
}

ul.nav-footer a:hover {
  text-decoration: underline;
}

.unach {
  width: 66.66667%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  margin-top: 1rem;
}

.redes {
  width: 16.66667%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

ul#redessociales {
  margin-left: 0;
}

ul#redessociales li {
  display: inline-block;
  float: right;
  padding: 10px  10px 0px 0px;
}

ul#redessociales span {
  font-size: 30px;
}

ul#redessociales a {
  color: #f3f3f3;
}

.slider {
  width: 75%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding-right: 2.5rem;
}

.lateral, #menu-lateral {
  width: 25%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .lateral, #menu-lateral {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

li.subelemento {
  padding-left: 50px;
}

li.etiqueta > p {
  display: block;
  padding: 1rem;
  margin-bottom: 0;
  line-height: 1;
  text-align: right;
  border-bottom: 1px solid #333;
  font-size: 1rem;
}

li.etiqueta {
  display: block;
  float: none;
  width: auto;
}

.moduleItemIntrotext img {
  width: 270px;
  height: 152px;
}

footer {
  font-size: 14px;
}

footer hr {
  margin: 0;
}

.titulos {
  text-shadow: 0 2px 2px grey;
  text-transform: uppercase;
}

.lic-imagen {
  width: 28%;
  display: inline-block;
  margin-bottom: 2rem;
}

.lic-nombre {
  width: 50%;
  display: inline-block;
  padding-left: 3%;
  font-size: 20px;
}

.integrante {
  width: 47%;
  display: inline-block;
  vertical-align: top;
  margin-bottom: 2.5rem;
}

.primero .datos {
  text-align: left;
}

.foto {
  width: 33.33333%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.datos {
  width: 66.66667%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

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

.integrante:nth-child(1) {
  width: 100%;
}

.integrante:nth-child(1) img {
  display: block;
  margin-left: auto;
}

.persona {
  width: 49%;
  margin-bottom: 30px;
  text-align: center;
  display: inline-block;
}

.persona p {
  margin-bottom: 0;
}

.persona:nth-child(1) {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .persona:nth-child(1) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.primero {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  text-align: center;
  margin-bottom: 30px;
}

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

.primero p {
  margin-bottom: 0;
}

.primero img {
  min-height: 200px;
  display: block;
  margin-left: auto;
}

span.icono.directorio {
  cursor: auto;
}

.animated {
  animation-duration: 0.5s;
  animation-fill-mode: both;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 5%, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInUp {
  animation-name: fadeInUp;
}

@keyframes fadeOutDown {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
}

.fadeOutDown {
  animation-name: fadeOutDown;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.fadeIn {
  animation-name: fadeIn;
}

@keyframes rotateInUpLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
  to {
    transform-origin: left bottom;
    transform: none;
    opacity: 1;
  }
}

.rotateInUpLeft {
  animation-name: rotateInUpLeft;
}

@keyframes rotateOutUpRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }
  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}

.rotateOutUpRight {
  animation-name: rotateOutUpRight;
}

.owl-carousel .owl-item img {
  height: 425px;
}

.titulo-item {
  color: #fff;
  padding: 8px;
  background-color: #18386b;
}

.titulo-item a {
  color: #f3f3f3;
  font-size: 1rem;
}

.item {
  position: relative;
}

.owl-theme .owl-dots,
.owl-theme .owl-nav {
  text-align: center;
  -webkit-tap-highlight-color: transparent;
  position: relative;
}

.owl-theme .owl-nav {
  margin-top: 10px;
}

.owl-theme .owl-nav [class*=owl-] {
  color: #FFF;
  font-size: 14px;
  margin: 5px;
  padding: 4px 7px;
  background: #D6D6D6;
  display: inline-block;
  cursor: pointer;
  border-radius: 3px;
}

.owl-theme .owl-nav [class*=owl-]:hover {
  background: #869791;
  color: #FFF;
  text-decoration: none;
}

.owl-theme .owl-nav .disabled {
  opacity: .5;
  cursor: default;
}

.owl-theme .owl-nav.disabled + .owl-dots {
  margin-top: 10px;
}

.owl-theme .owl-dots .owl-dot {
  display: inline-block;
  zoom: 1;
}

.owl-theme .owl-dots .owl-dot span {
  width: 10px;
  height: 10px;
  margin: 5px 7px;
  background: #869791;
  display: block;
  -webkit-backface-visibility: visible;
  transition: opacity .2s ease;
  border-radius: 30px;
}

.owl-theme .owl-dots .owl-dot.active span,
.owl-theme .owl-dots .owl-dot:hover span {
  background: #333;
}

.owl-nav {
  display: none;
}

.listado {
  text-align: right;
}

.listado a {
  font-weight: bold;
  color: #1e376a;
  font-size: 14px;
}

div.page-header {
  margin-top: 1rem;
}

/*Articulos K2*/
div#itemListLeading {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

div#itemListLeading::before, div#itemListLeading::after {
  display: table;
  content: ' ';
}

div#itemListLeading::after {
  clear: both;
}

li.evento {
  margin-bottom: 24px;
}

div.catItemBody {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  padding: 0;
  position: relative;
}

div.catItemBody::before, div.catItemBody::after {
  display: table;
  content: ' ';
}

div.catItemBody::after {
  clear: both;
}

div.catItemImageBlock {
  padding: 0;
  margin: 0;
  width: 33.33333%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  div.catItemImageBlock {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

div.catItemImageBlock a {
  display: block;
}

div.catItemImageBlock img {
  height: 190px;
  width: 408px;
}

.dia {
  position: absolute;
  background: white;
  padding: 10px;
  top: 170px;
  left: 20px;
}

.catItemTitle {
  width: 66.66667%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

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

.catItemTitle a {
  color: #18386b;
}

div.itemToolbar ul li {
  display: inline-block;
}

div.catItemView {
  margin: 30px 0;
}

span.pagenav {
  padding-left: 10px;
}

div.itemView {
  padding: 1rem;
}

div.itemToolbar {
  width: 100%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  position: relative;
  z-index: 500;
  margin-top: -4rem;
}

.item-page, #k2Container, .weblink-category {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .item-page, #k2Container, .weblink-category {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.itemFullText {
  width: 75%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  padding-left: 28px;
}

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

.itemImageBlock {
  width: 25%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

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

span.itemImage {
  padding: 10px;
  margin-right: 15px;
}

.separadortxt {
  border-left: solid 1.5px #18386b;
}

.itemAttachmentsBlocks > span {
  background-color: #18386b;
  color: #f3f3f3;
  padding: 8px;
}

ul.itemAttachments {
  margin-top: 13px;
}

a#fontIncrease, a#fontDecrease, a.fontIncrease, a.fontDecrease {
  padding: 10px;
}

.txt_content {
  transition: all 0.5s;
}

.social-share {
  position: absolute;
  z-index: 10;
  width: 300px;
  padding: 1rem;
  border: 1px solid #cacaca;
  overflow: hidden;
  background-color: #fefefe;
}

.icon-share, div.itemToolbar ul li a {
  cursor: pointer;
  color: #333;
  font-family: inherit;
}

div.itemToolbar ul li span.itemTextResizerTitle {
  color: #333;
}

.cat-list-row {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin-bottom: 2rem;
}

@media print, screen and (min-width: 40em) {
  .cat-list-row {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.cat-list-row a {
  font-weight: bold;
}

.link-description {
  width: 66.66667%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .link-description {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.img-intro-right {
  width: 33.33333%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .img-intro-right {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

span.list-hits {
  float: right;
}

.separator-links {
  border-bottom: 1px solid #18386b;
}

ul.category.list-striped.list-condensed {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  list-style: none;
}

ul.category.list-striped.list-condensed::before, ul.category.list-striped.list-condensed::after {
  display: table;
  content: ' ';
}

ul.category.list-striped.list-condensed::after {
  clear: both;
}

ul.navegacion {
  margin: 0.5rem 1rem 0rem 0;
  list-style: none;
  float: right;
}

ul.navegacion::before, ul.navegacion::after {
  display: table;
  content: ' ';
}

ul.navegacion::after {
  clear: both;
}

ul.navegacion li {
  float: left;
  font-size: 0.6875rem;
  color: #0a0a0a;
  cursor: default;
  text-transform: uppercase;
}

ul.navegacion li:not(:last-child)::after {
  position: relative;
  top: 1px;
  margin: 0 0.75rem;
  opacity: 1;
  content: "/";
  color: #cacaca;
}

ul.navegacion a {
  color: #1779ba;
}

ul.navegacion a:hover {
  text-decoration: underline;
}

.tooltip {
  display: none !important;
}

.pull-right {
  float: right;
}

ul.nav.nav-tabs.nav-stacked {
  background-color: #fad701;
  padding: 14px 27px;
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
  border-radius: 5px;
}

hr.lic {
  border-bottom: solid 2px #18386b;
}

a.toclink.active {
  font-weight: bold;
}

.pager li {
  list-style: none;
}

.pager li:last-child {
  float: right;
}

.pager li:first-child {
  float: left;
}

img.articulo-imagen {
  width: 260px;
  height: 175px;
}

.bloque-principal a, .bloque-secundario a, .servicios a {
  font-size: 14px;
  font-weight: bold;
  color: #18386b;
}

div#k2Container {
  margin-top: 35px;
}

a.moduleItemCategory {
  display: block;
  text-align: right;
  padding-right: 2rem;
}

.novisible {
  opacity: 0;
}

ul.tabs {
  border: none;
}

.barra-lateral img {
  margin-left: auto;
  margin-right: auto;
  display: block;
}

.item-page {
  position: relative;
}

.barra-lateral {
  width: 25%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding-right: 1.75rem;
}

.barra-lateral a {
  color: #333;
}

.separador-articulo {
  border-left: solid 1px;
  position: absolute;
  width: 10px;
  height: 600px;
  left: 33.5%;
}

.contenido-lateral {
  width: 75%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding-left: 2.375rem;
  min-height: 600px;
  border-left: 1.5px solid #18386B;
}

li.tabs-title.is-active a {
  font-weight: initial;
  background-color: #18386b;
  color: #fefefe;
}

.separador {
  border-left: solid 1.5px #18386b;
  position: absolute;
  left: 27.5%;
}

div.itemToolbar ul li a.fontDecrease {
  margin: 0 0 0 2px;
}

div.itemToolbar ul li a.fontDecrease img {
  width: 13px;
  height: 13px;
  font-size: 13px;
}

div.itemToolbar ul li a.fontIncrease {
  margin: 0 0 0 2px;
}

div.itemToolbar ul li a.fontIncrease img {
  width: 13px;
  height: 13px;
  font-size: 13px;
}

div.itemToolbar ul li a.fontDecrease span,
div.itemToolbar ul li a.fontIncrease span {
  display: none;
}

div.itemToolbar ul li a.fontIncrease, div.itemToolbar ul li a.fontDecrease {
  background: none;
  text-decoration: none;
  vertical-align: middle;
  font-family: 'simple-line-icons';
  speak: none;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.institucional.blog, .item-page {
  margin-top: 22px;
  position: relative;
  margin-bottom: 20px;
}

.mapa {
  display: none;
}

.institucional .page-header h2 {
  font-size: 1.875rem;
}

.rd {
  margin-top: 1.5625rem;
}

ul#contenido-tabs {
  margin-top: 20px;
}

li.subelemento a {
  border-bottom: none;
  font-size: 14px;
  color: grey;
}

li.subelemento a:hover {
  color: #333;
}

li.subelemento.is-active a {
  color: #333;
  text-decoration: underline;
  background: none;
}

ul.submenu a {
  color: #333;
}

@font-face {
  font-family: 'fontello';
  src: url("../font/fontello.eot?12061384");
  src: url("../font/fontello.eot?12061384#iefix") format("embedded-opentype"), url("../font/fontello.woff2?12061384") format("woff2"), url("../font/fontello.woff?12061384") format("woff"), url("../font/fontello.ttf?12061384") format("truetype"), url("../font/fontello.svg?12061384#fontello") format("svg");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'MyriadWebProRegular';
  src: url("../font/myriad-web-pro.eot");
  src: url("../font/myriad-web-pro.eot") format("embedded-opentype"), url("../font/myriad-web-pro.svg#MyriadWebProRegular") format("svg"), url("../font/myriad-web-pro.woff") format("woff"), url("../font/myriad-web-pro.ttf") format("truetype");
}

.icon-facebook:before {
  content: '\e800';
}

/* '' */
.icon-twitter:before {
  content: '\e801';
}

/* '' */
.icon-youtube:before {
  content: '\e802';
}

/* '' */
.icon-unet:before {
  content: '\e803';
}

/* '' */
.icon-search:before {
  content: '\e804';
}

/* '' */
.icon-right-dir:before, div.links > a:before {
  content: '\e805';
}

/* '' */
.icon-location:before, p.direccion:before {
  content: '\e806';
}

/* '' */
.icon-phone:before, p.tel:before {
  content: '\e807';
}

/* '' */
.icon-down-dir:before {
  content: '\e808';
}

/* '' */
.icon-menu:before {
  content: '\f0c9';
}

/* '' */
.icon-mail:before, p.contacto:before {
  content: '\f0e0';
}

/* '' */
.icon-share:before {
  content: '\f1e0';
}

/* '' */
.icon-mouse-pointer:before, p.web:before {
  content: '\f245';
}

/* '' */
.icon-zoom-in:before, a.fontIncrease:before {
  content: '\e809';
}

/* '' */
.icon-zoom-out:before, a.fontDecrease:before {
  content: '\e80a';
}

/* '' */
a.fontIncrease:before, a.fontDecrease:before {
  font-size: 17px;
}

.principal:after {
  content: "\e808";
  font-family: "fontello";
  padding-left: 5px;
  font-size: 1rem;
}

[class^="icon-"]:before, p.contacto:before, p.tel:before, [class*=" icon-"]:before, div.links > a:before, p.direccion:before, p.web:before, p.contacto:before, p.tel:before, p.web:before, a.fontDecrease:before, a.fontIncrease:before {
  font-family: "fontello";
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: .2em;
  text-align: center;
  /* opacity: .8; */
  /* For safety - reset parent styles, that can break glyph codes*/
  font-variant: normal;
  text-transform: none;
  /* fix buttons height, for twitter bootstrap */
  line-height: 1em;
  /* Animation center compensation - margins should be symmetric */
  /* remove if not needed */
  margin-left: .2em;
  /* you can be more comfortable with increased icons size */
  /* font-size: 120%; */
  /* Font smoothing. That was taken from TWBS */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Uncomment for 3D effect */
  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}

.icon-envelope:before {
  display: none;
}

div.links > a:before {
  font-size: 19px;
  color: #18386b;
  text-decoration: none;
}

.seccion {
  width: 75%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.seccion-centro {
  width: 50%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.search {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  margin-top: 1.5625rem;
}

.search::before, .search::after {
  display: table;
  content: ' ';
}

.search::after {
  clear: both;
}

.lateral {
  width: 25%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.lateral .moduletable {
  margin: 0 0 25px 0;
  margin-top: 0;
}

.articulo_cuatro {
  width: 25%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding-right: 0.9375rem;
}

.articulo_cuatro .moduletable {
  width: 33.33333%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding-right: 1.875rem;
  padding-bottom: 20px;
}

.articulo_tres {
  width: 33.33333%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

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

.articulo {
  padding-right: 1.875rem;
}

.articulo_dos {
  width: 50%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding-right: 1.875rem;
}

.articulo_full {
  width: 100%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.articulos_1 {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin-bottom: 20px;
  padding-right: 1.875rem;
}

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

.articulos_2 {
  width: 50%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding-right: 1.875rem;
}

.articulos_3 {
  width: 33.33333%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding-right: 1.875rem;
}

.articulos_4 {
  width: 25%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding-right: 1.875rem;
}

.full {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

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

.top {
  margin-top: 1.5625rem;
}

.bt {
  margin-bottom: 1.5625rem;
}

.seccion .titulo {
  margin-right: 30px;
}

.titulo {
  margin-bottom: 1rem;
}

.titulo p {
  color: #fefefe;
  text-transform: uppercase;
  margin-bottom: 0;
  background-color: #18386b;
  border-bottom: solid 4px #D2A92D;
  width: 25%;
  padding-left: 10px;
}

.lateral .moduletable > h3,
.bloque-lateral .moduletable > h3,
.bloque-principal .moduletable > h3,
.bloque-secundario .moduletable > h3,
.bloque-7 .moduletable > h3, .moduletable > h3 {
  color: #fefefe;
  text-transform: uppercase;
  margin-bottom: 1rem;
  background-color: #18386b;
  border-bottom: solid 4px #D2A92D;
  padding-left: 10px;
  font-size: 1rem;
}

/*.lateral .moduletable > h3,.bloque-lateral .moduletable > h3,.bloque-principal .moduletable > h3,.bloque-secundario .moduletable >h3{
    width: 250px;
}
.bloque-principal .moduletable > h3,.bloque-secundario .moduletable >h3,.bloque-7 .moduletable > h3{
    width: 23%
}*/
.moduletable > h3 {
  width: 250px;
}

/*.bloque-secundario .moduletable >h3{
  *  width: 38%
}*/
ul.mas-titulares {
  list-style: none;
  margin-left: 0;
}

ul.mas-titulares li {
  padding-bottom: 10px;
}

.fecha-evento {
  display: inline-block;
  width: 54px;
  background-color: #18386b;
  color: #f3f3f3;
  text-align: center;
  margin-right: 10px;
  font-size: 14px;
  text-transform: uppercase;
  vertical-align: top;
}

.fecha-evento span {
  font-size: 18px;
}

.fecha-evento p {
  margin-bottom: 0;
}

.titular {
  width: 230px;
  display: inline-block;
  vertical-align: top;
}

.titulo-evento {
  width: 230px;
  display: inline-block;
  vertical-align: top;
  font-size: 15px;
}

.bloque-principal {
  width: 75%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.bloque-lateral {
  width: 25%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.bloque-secundario {
  width: 50%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.bloque-7 .moduletable {
  padding-right: 1rem;
}

.bloque-secundario-3 .moduletable {
  width: 33.33333%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding-right: 1rem;
}

.bloque-secundario-3 {
  width: 75%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.moduletable.espacio {
  padding-left: 1rem;
}

.bloque-secundario-1 .moduletable {
  width: 25%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .bloque-secundario-1 .moduletable {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.moduletable.bottom {
  margin-top: 40px;
}

fieldset.phrases, .fieldset.only {
  width: 50%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  fieldset.phrases, .fieldset.only {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.resultados {
  margin: 25px 0;
}

.pagination .current a {
  color: #fefefe;
}

.pagination .current a:hover {
  background-color: #18386b;
}

.datos-ubicacion {
  width: 50%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .datos-ubicacion {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.datos-ubicacion p {
  margin-bottom: 1rem;
}

ul.pagination li a:hover {
  color: #fefefe;
}

.fields-container {
  display: none;
}

.contenedor.bloque-3-4.bt {
  margin-top: 25px;
}

/**
 * @version    2.8.x
 * @package    K2
 * @author     JoomlaWorks http://www.joomlaworks.net
 * @copyright  Copyright (c) 2006 - 2017 JoomlaWorks Ltd. All rights reserved.
 * @license    GNU/GPL license:http://www.gnu.org/copyleft/gpl.html
 */
/*
	### Legend ###
	Colors used:
		#fafafa (light grey) used as background on all toolbars, category and user/author boxes
*/
/*------------------------------------------------------------------------------
	Common Elements
--------------------------------------------------------------------------------*/
/* --- Basic typography --- */
a:active,
a:focus {
  outline: 0;
}

img {
  border: none;
}

/* --- Global K2 container --- */
#k2Container {
  padding: 0 0 24px 0;
}

body.contentpane #k2Container {
  padding: 16px;
}

/* used in popups */
/* --- General padding --- */
.k2Padding {
  padding: 4px;
}

/* --- Clearing --- */
.clr {
  clear: both;
  height: 0;
  line-height: 0;
  display: block;
  float: none;
  padding: 0;
  margin: 0;
  border: none;
}

/* --- Striped rows (add a different background color enable stripped rows in various listings with K2 content) --- */
.even {
  padding: 2px;
}

.odd {
  padding: 2px;
}

/* --- RSS feed icon --- */
div.k2FeedIcon {
  padding: 4px 8px;
}

div.k2FeedIcon a,
div.k2FeedIcon a:hover {
  display: block;
  float: right;
  margin: 0;
  padding: 0;
  width: 16px;
  height: 16px;
}

div.k2FeedIcon a span,
div.k2FeedIcon a:hover span {
  display: none;
}

/* --- Rating --- */
.itemRatingForm {
  display: block;
  vertical-align: middle;
  line-height: 25px;
  float: left;
}

.itemRatingLog {
  font-size: 11px;
  margin: 0;
  padding: 0 0 0 4px;
  float: left;
}

div.itemRatingForm .formLogLoading {
  background: url(../images/loaders/generic.gif) no-repeat left center;
  height: 25px;
  padding: 0 0 0 20px;
}

.itemRatingList,
.itemRatingList a:hover,
.itemRatingList .itemCurrentRating {
  background: transparent url(../images/ratingstars.gif) left -1000px repeat-x;
}

.itemRatingList {
  position: relative;
  float: left;
  width: 125px;
  height: 25px;
  overflow: hidden;
  list-style: none;
  margin: 0;
  padding: 0;
  background-position: left top;
}

.itemRatingList li {
  display: inline;
  background: none;
  padding: 0;
}

.itemRatingList a,
.itemRatingList .itemCurrentRating {
  position: absolute;
  top: 0;
  left: 0;
  text-indent: -1000px;
  height: 25px;
  line-height: 25px;
  outline: none;
  overflow: hidden;
  border: none;
  cursor: pointer;
}

.itemRatingList a:hover {
  background-position: left bottom;
}

.itemRatingList a.one-star {
  width: 20%;
  z-index: 6;
}

.itemRatingList a.two-stars {
  width: 40%;
  z-index: 5;
}

.itemRatingList a.three-stars {
  width: 60%;
  z-index: 4;
}

.itemRatingList a.four-stars {
  width: 80%;
  z-index: 3;
}

.itemRatingList a.five-stars {
  width: 100%;
  z-index: 2;
}

.itemRatingList .itemCurrentRating {
  z-index: 1;
  background-position: 0 center;
  margin: 0;
  padding: 0;
}

span.siteRoot {
  display: none;
}

/* --- CSS added with JavaScript --- */
.smallerFontSize {
  font-size: 100%;
  line-height: inherit;
}

.largerFontSize {
  font-size: 150%;
  line-height: 140%;
}

/* --- ReCaptcha --- */
.recaptchatable .recaptcha_image_cell,
#recaptcha_table {
  background-color: #fff !important;
}

#recaptcha_table {
  border-color: #ccc !important;
}

#recaptcha_response_field {
  border-color: #ccc !important;
  background-color: #fff !important;
}

.k2-recaptcha-v2 {
  margin-top: 12px;
}

/* --- Primary lists in modules --- */
div.k2LatestCommentsBlock ul,
div.k2TopCommentersBlock ul,
div.k2ItemsBlock ul,
div.k2LoginBlock ul,
div.k2UserBlock ul.k2UserBlockActions,
div.k2UserBlock ul.k2UserBlockRenderedMenu,
div.k2ArchivesBlock ul,
div.k2AuthorsListBlock ul,
div.k2CategoriesListBlock ul,
div.k2UsersBlock ul {
  margin: 0;
  padding: 0 4px;
  list-style: none;
}

/* Example CSS: padding:0;margin:0;list-style:none; */
div.k2LatestCommentsBlock ul li,
div.k2TopCommentersBlock ul li,
div.k2ItemsBlock ul li,
div.k2LoginBlock ul li,
div.k2ArchivesBlock ul li,
div.k2AuthorsListBlock ul li,
div.k2CategoriesListBlock ul li,
div.k2UsersBlock ul li {
  display: block;
  padding: 0;
  margin: 0 0 24px 0;
}

/* Example CSS: display:block;clear:both;padding:2px 0;border-bottom:1px dotted #ccc; */
.clearList {
  display: none;
  float: none;
  clear: both;
}

/* this class is used to clear all previous floating list elements */
.lastItem {
  border: none;
}

/* class appended on last list item */
/* --- Avatars --- */
.k2Avatar img {
  display: block;
  float: left;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 50%;
  padding: 2px;
  margin: 2px 4px 4px 0;
}

/* --- Read more --- */
/* --- Pagination --- */
div.k2Pagination {
  padding: 8px;
  margin: 24px 0 4px 0;
  text-align: center;
}

div.k2Pagination ul {
  text-align: center;
}

div.k2Pagination ul li {
  display: inline-block;
  margin: 0;
  padding: 0;
}

div.k2Pagination ul li a {
  display: inline-block;
  padding: 4px 8px;
  margin: 0 8px;
  vertical-align: middle;
  text-decoration: none;
}

div.k2Pagination ul li a:hover {
  background: #fafafa;
  cursor: pointer;
}

div.k2Pagination ul li.active a {
  background: #fafafa;
}

div.k2Pagination ul li a span {
  vertical-align: middle;
}

/* --- Featured flags: the classes are repeated further below to indicate placement in the CSS structure --- */
div.itemIsFeatured,
div.catItemIsFeatured,
div.userItemIsFeatured {
  position: relative;
}

div.itemIsFeatured:before,
div.catItemIsFeatured:before,
div.userItemIsFeatured:before {
  position: absolute;
  top: 10px;
  right: 10px;
  color: #CF1919;
  font-size: 20px;
}

/* --- Separators --- */
.k2HorizontalSep {
  border: 0;
  padding: 0;
  margin: 0 8px;
}

/* --- Edit Buttons --- */
span.itemEditLink,
span.catItemEditLink,
span.userItemEditLink,
span.userItemAddLink {
  float: right;
  display: block;
  padding: 0;
  margin: 0;
  width: 120px;
  text-align: right;
}

span.itemEditLink a,
span.catItemEditLink a,
span.userItemEditLink a,
span.userItemAddLink a {
  display: inline-block;
  padding: 4px 8px;
  margin: 0;
  background: #2d96dd;
  color: #fff;
  border: 0;
  border-radius: 4px;
  font-size: 11px;
  line-height: 100%;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
}

span.itemEditLink a:hover,
span.catItemEditLink a:hover,
span.userItemEditLink a:hover,
span.userItemAddLink a:hover {
  background: #217dbb;
}

/*------------------------------------------------------------------------------
	Component - Item view
--------------------------------------------------------------------------------*/
a.itemPrintThisPage {
  display: block;
  width: 160px;
  margin: 4px auto 16px;
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 4px;
  text-align: center;
  font-size: 14px;
}

a.itemPrintThisPage:hover {
  background: #fafafa;
  text-decoration: none;
}

div.itemView {
  padding: 8px 0 24px 0;
  margin: 0 0 24px 0;
}

/* this is the item container for this view */
/* Attach a class for each featured item */
div.itemHeader span.itemDateCreated {
  color: #999;
  font-size: 11px;
}

div.itemHeader h2.itemTitle {
  padding: 10px 0 4px 0;
  margin: 0;
}

div.itemHeader h2.itemTitle span sup {
  font-size: 12px;
  color: #CF1919;
  text-decoration: none;
}

/* "Featured" presented in superscript */
div.itemHeader span.itemAuthor {
  display: block;
  padding: 0;
  margin: 0;
}

div.itemHeader span.itemAuthor a:before {
  content: " ";
}

div.itemToolbar ul {
  text-align: right;
  list-style: none;
  padding: 0;
  margin: 23px 13px 0 0px;
}

div.itemToolbar ul li {
  list-style: none;
  padding: 0 4px 0 8px;
  margin: 0;
  border-left: 1px solid #ccc;
  text-align: center;
  background: none;
  font-size: 12px;
}

div.itemToolbar ul > li:first-child {
  border: none;
}

/* remove the first CSS border from the left of the toolbar */
div.itemToolbar ul li a {
  font-size: 12px;
  font-weight: normal;
}

div.itemToolbar ul li a img {
  vertical-align: middle;
}

div.itemToolbar ul li a#fontDecrease {
  margin: 0 0 0 2px;
}

div.itemToolbar ul li a#fontDecrease img {
  width: 13px;
  height: 13px;
  font-size: 13px;
}

div.itemToolbar ul li a#fontIncrease {
  margin: 0 0 0 2px;
}

div.itemToolbar ul li a#fontIncrease img {
  width: 13px;
  height: 13px;
  font-size: 13px;
}

div.itemToolbar ul li a#fontDecrease span,
div.itemToolbar ul li a#fontIncrease span {
  display: none;
}

div.itemRatingBlock {
  padding: 8px 0;
}

div.itemRatingBlock span {
  display: block;
  float: left;
  font-style: normal;
  padding: 0 4px 0 0;
  margin: 0;
  color: #999;
}

div.itemBody {
  padding: 8px 0;
  margin: 0;
}

div.itemImageBlock {
  padding: 8px 0;
  margin: 0 0 16px 0;
}

span.itemImage {
  display: block;
  text-align: center;
  margin: 0 0 8px 0;
}

span.itemImage img {
  max-width: 100%;
  height: auto;
}

span.itemImageCaption {
  color: #666;
  float: left;
  display: block;
  font-size: 11px;
}

span.itemImageCredits {
  color: #999;
  float: right;
  display: block;
  font-style: italic;
  font-size: 11px;
}

@media screen and (max-width: 600px) {
  span.itemImageCaption,
  span.itemImageCredits {
    float: none;
    text-align: center;
  }
}

div.itemIntroText {
  color: #444;
  font-size: 18px;
  font-weight: bold;
  line-height: 24px;
  padding: 4px 0 12px 0;
}

div.itemFullText h3 {
  margin: 0;
  padding: 16px 0 4px 0;
}

div.itemExtraFields {
  margin: 16px 0 0 0;
  padding: 8px 0 0 0;
  border-top: 1px dotted #ddd;
}

div.itemExtraFields h3 {
  margin: 0;
  padding: 0 0 8px 0;
}

div.itemExtraFields ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

div.itemExtraFields ul li {
  display: block;
}

div.itemExtraFields ul li span.itemExtraFieldsLabel {
  display: block;
  float: left;
  font-weight: bold;
  margin: 0 4px 0 0;
  width: 30%;
}

div.itemContentFooter {
  display: block;
  text-align: right;
  padding: 4px 0;
  margin: 16px 0 4px 0;
  color: #999;
}

span.itemHits {
  float: left;
}

div.itemSocialSharing {
  padding: 8px 0;
  position: absolute;
  border: 1px solid #cacaca;
  background-color: #fefefe;
}

div.itemTwitterButton {
  float: left;
  margin: 2px 24px 0 0;
}

div.itemFacebookButton {
  float: left;
  margin-right: 24px;
  width: 200px;
}

div.itemLinks {
  margin: 16px 0;
  padding: 0;
}

div.itemCategory span {
  font-weight: bold;
  color: #555;
  padding: 0 4px 0 0;
}

div.itemTagsBlock span {
  font-weight: bold;
  color: #555;
  padding: 0 4px 0 0;
}

div.itemTagsBlock ul.itemTags {
  list-style: none;
  padding: 0;
  margin: 0;
  display: inline;
}

div.itemTagsBlock ul.itemTags li {
  display: inline;
  list-style: none;
  padding: 0 4px 0 0;
  margin: 0;
  text-align: center;
}

div.itemTagsBlock ul.itemTags li a:before {
  content: "#";
}

div.itemAttachmentsBlock {
  padding: 4px;
  border-bottom: 1px dotted #ccc;
}

div.itemAttachmentsBlock span {
  font-weight: bold;
  color: #555;
  padding: 0 4px 0 0;
}

div.itemAttachmentsBlock ul.itemAttachments {
  list-style: none;
  padding: 0;
  margin: 0;
  display: inline;
}

div.itemAttachmentsBlock ul.itemAttachments li {
  display: inline;
  list-style: none;
  padding: 0 4px;
  margin: 0;
  text-align: center;
}

div.itemAttachmentsBlock ul.itemAttachments li span {
  font-size: 10px;
  color: #999;
  font-weight: normal;
}

/* Author block */
div.itemAuthorBlock {
  background: #fafafa;
  border: 1px solid #ddd;
  border-radius: 4px;
  margin: 0 0 16px 0;
  padding: 8px;
}

div.itemAuthorBlock img.itemAuthorAvatar {
  float: left;
  display: block;
  background: #fff;
  padding: 4px;
  border: 1px solid #ddd;
  margin: 0 8px 0 0;
  border-radius: 50%;
}

div.itemAuthorBlock div.itemAuthorDetails {
  margin: 0;
  padding: 4px 0 0 0;
}

div.itemAuthorBlock div.itemAuthorDetails h3.authorName {
  margin: 0 0 4px 0;
  padding: 0;
}

div.itemAuthorBlock div.itemAuthorDetails h3.authorName a {
  font-size: 16px;
}

div.itemAuthorBlock div.itemAuthorDetails span.itemAuthorUrl {
  font-weight: bold;
  color: #555;
}

div.itemAuthorBlock div.itemAuthorDetails span.itemAuthorEmail {
  font-weight: bold;
  color: #555;
}

div.itemAuthorBlock div.itemAuthorDetails span.itemAuthorUrl a,
div.itemAuthorBlock div.itemAuthorDetails span.itemAuthorEmail a {
  font-weight: normal;
}

/* Author latest */
div.itemAuthorLatest {
  margin-bottom: 16px;
  padding: 0;
}

/* Related by tag */
div.itemRelated {
  margin-bottom: 16px;
  padding: 0;
}

/* Add overflow-x:scroll; if you want to enable the scrolling features, as explained in item.php */
div.itemRelated ul li.k2ScrollerElement {
  float: left;
  overflow: hidden;
  border: 1px solid #ddd;
  padding: 4px;
  margin: 0 4px 4px 0;
  background: #fff;
}

/* you need to insert this class in the related li element in item.php for this styling to take effect */
div.itemRelated ul li.clr {
  clear: both;
  height: 0;
  line-height: 0;
  display: block;
  float: none;
  padding: 0;
  margin: 0;
  border: none;
}

/* Video */
div.itemVideoBlock {
  margin: 0 0 16px 0;
  padding: 16px;
  background: #010101 url(../images/videobg.gif) repeat-x bottom;
  color: #eee;
}

div.itemVideoBlock div.itemVideoEmbedded {
  text-align: center;
}

/* for embedded videos (not using AllVideos) */
div.itemVideoBlock span.itemVideo {
  display: block;
  overflow: hidden;
}

div.itemVideoBlock span.itemVideoCaption {
  color: #eee;
  float: left;
  display: block;
  font-size: 11px;
  font-weight: bold;
  width: 60%;
}

div.itemVideoBlock span.itemVideoCredits {
  color: #eee;
  float: right;
  display: block;
  font-style: italic;
  font-size: 11px;
  width: 35%;
  text-align: right;
}

@media screen and (max-width: 600px) {
  div.itemVideoBlock span.itemVideoCaption,
  div.itemVideoBlock span.itemVideoCredits {
    float: none;
    text-align: center;
    width: auto;
  }
}

/* Image Gallery */
div.itemImageGallery {
  margin: 0 0 16px 0;
  padding: 0;
}

/* Article navigation */
div.itemNavigation {
  padding: 8px;
  margin: 0 0 24px 0;
  background: #fafafa;
  border-radius: 4px;
}

div.itemNavigation span.itemNavigationTitle {
  color: #999;
}

div.itemNavigation a.itemPrevious {
  padding: 0 12px;
}

div.itemNavigation a.itemNext {
  padding: 0 12px;
}

/* Comments */
div.itemComments {
  background: #fafafa;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 16px;
}

div.itemComments ul.itemCommentsList {
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}

div.itemComments ul.itemCommentsList li {
  display: block;
  padding: 4px;
  margin: 0 0 8px 0;
  border-bottom: 1px solid #ddd;
  background: #fff;
}

div.itemComments ul.itemCommentsList li.authorResponse {
  background: #f5fdff;
}

div.itemComments ul.itemCommentsList li.unpublishedComment {
  background: #ffeaea;
}

div.itemComments ul.itemCommentsList li img {
  float: left;
  margin: 4px 4px 4px 0;
  padding: 4px;
}

div.itemComments ul.itemCommentsList li span.commentDate {
  padding: 0 4px 0 0;
  margin: 0 8px 0 0;
  border-right: 1px solid #ccc;
  font-weight: bold;
  font-size: 14px;
}

div.itemComments ul.itemCommentsList li span.commentAuthorName {
  font-weight: bold;
  font-size: 14px;
}

div.itemComments ul.itemCommentsList li p {
  padding: 4px 0;
}

div.itemComments ul.itemCommentsList li span.commentAuthorEmail {
  display: none;
}

div.itemComments ul.itemCommentsList li span.commentLink {
  float: right;
  margin-left: 8px;
}

div.itemComments ul.itemCommentsList li span.commentLink a {
  font-size: 11px;
  color: #999;
  text-decoration: underline;
}

div.itemComments ul.itemCommentsList li span.commentLink a:hover {
  font-size: 11px;
  color: #555;
  text-decoration: underline;
}

div.itemComments ul.itemCommentsList li span.commentToolbar {
  display: block;
  clear: both;
}

div.itemComments ul.itemCommentsList li span.commentToolbar a {
  font-size: 11px;
  color: #999;
  text-decoration: underline;
  margin-right: 4px;
}

div.itemComments ul.itemCommentsList li span.commentToolbar a:hover {
  font-size: 11px;
  color: #555;
  text-decoration: underline;
}

div.itemComments ul.itemCommentsList li span.commentToolbarLoading {
  background: url(../images/loaders/search.gif) no-repeat 100% 50%;
}

div.itemCommentsPagination {
  padding: 4px;
  margin: 0 0 24px 0;
}

/* Joomla 1.5 - 2.5 */
div.itemCommentsPagination span.pagination {
  display: block;
  float: right;
  clear: both;
}

/* Joomla 3.x */
div.itemCommentsPagination ul {
  text-align: center;
}

div.itemCommentsPagination ul li {
  display: inline-block;
  margin: 0;
  padding: 0;
}

div.itemCommentsPagination ul li a {
  display: inline-block;
  padding: 4px 8px;
  margin: 0 8px;
  border: 1px solid #ddd;
  border-radius: 4px;
  vertical-align: middle;
  background: #fff;
  text-decoration: none;
}

div.itemCommentsPagination ul li a:hover {
  background: #fafafa;
  cursor: pointer;
}

div.itemCommentsPagination ul li.active a {
  background: #fafafa;
}

div.itemCommentsPagination ul li a span {
  vertical-align: middle;
}

div.itemCommentsForm h3 {
  margin: 0;
  padding: 0 0 4px 0;
}

div.itemCommentsForm p.itemCommentsFormNotes {
  border-top: 2px solid #ccc;
  padding: 8px 0;
}

div.itemCommentsForm form {
  margin: 0;
  padding: 0;
  width: 100%;
}

div.itemCommentsForm form label.formComment,
div.itemCommentsForm form label.formName,
div.itemCommentsForm form label.formEmail,
div.itemCommentsForm form label.formUrl,
div.itemCommentsForm form label.formRecaptcha {
  display: block;
  margin: 12px 0 0 2px;
}

div.itemCommentsForm form textarea.inputbox {
  display: block;
  width: 100%;
  height: 200px;
  margin: 0;
  padding: 8px;
  box-sizing: border-box;
}

div.itemCommentsForm form input.inputbox {
  display: block;
  width: 100%;
  margin: 0;
  padding: 8px;
  line-height: 150%;
  height: auto;
  box-sizing: border-box;
}

div.itemCommentsForm form input#submitCommentButton {
  display: block;
  margin: 16px 0 0 0;
  padding: 8px 16px;
  background: #2d96dd;
  color: #fff;
  border: 0;
  border-radius: 4px;
  font-size: 16px;
  font-weight: bold;
}

div.itemCommentsForm form input#submitCommentButton:hover {
  background: #217dbb;
}

div.itemCommentsForm form span#formLog {
  margin: 24px;
  padding: 8px 12px;
  border-radius: 4px;
  text-align: center;
  display: none;
}

div.itemCommentsForm form span#formLog.k2FormLogError {
  display: block;
  background: #f00;
  color: #fff;
}

div.itemCommentsForm form span#formLog.k2FormLogSuccess {
  display: block;
  background: #18ac00;
  color: #fff;
}

div.itemCommentsForm form .formLogLoading {
  background: url(../images/loaders/generic.gif) no-repeat left center;
}

div.itemCommentsLoginFirst {
  display: block;
  margin: 24px;
  padding: 8px 12px;
  background: #f00;
  color: #fff;
  border-radius: 4px;
}

/* "Report comment" form */
div.k2ReportCommentFormContainer {
  padding: 8px;
  width: 480px;
  margin: 0 auto;
}

div.k2ReportCommentFormContainer blockquote {
  width: 462px;
  background: #fafafa;
  border: 1px solid #ddd;
  padding: 8px;
  margin: 0 0 8px 0;
}

div.k2ReportCommentFormContainer blockquote span.quoteIconLeft {
  font-style: italic;
  font-weight: bold;
  font-size: 40px;
  color: #135CAE;
  line-height: 30px;
  vertical-align: top;
  display: block;
  float: left;
}

div.k2ReportCommentFormContainer blockquote span.quoteIconRight {
  font-style: italic;
  font-weight: bold;
  font-size: 40px;
  color: #135CAE;
  line-height: 30px;
  vertical-align: top;
  display: block;
  float: right;
}

div.k2ReportCommentFormContainer blockquote span.theComment {
  font-style: italic;
  font-size: 12px;
  font-weight: normal;
  color: #000;
  padding: 0 4px;
}

div.k2ReportCommentFormContainer form label {
  display: block;
  font-weight: bold;
}

div.k2ReportCommentFormContainer form input,
div.k2ReportCommentFormContainer form textarea {
  display: block;
  border: 1px solid #ddd;
  font-size: 12px;
  padding: 2px;
  margin: 0 0 8px 0;
  width: 474px;
}

div.k2ReportCommentFormContainer form #recaptcha {
  margin-bottom: 24px;
}

div.k2ReportCommentFormContainer form span#formLog {
  margin: 24px;
  padding: 8px 12px;
  background: #fafafa;
  border-radius: 4px;
  text-align: center;
  display: none;
}

div.k2ReportCommentFormContainer form .formLogLoading {
  background: url(../images/loaders/generic.gif) no-repeat left center;
}

/* Back to top link */
div.itemBackToTop {
  text-align: right;
}

div.itemBackToTop a {
  text-decoration: underline;
}

div.itemBackToTop a:hover {
  text-decoration: underline;
}

/*------------------------------------------------------------------------------
	Component - Itemlist view (category)
--------------------------------------------------------------------------------*/
/* --- Category block --- */
div.itemListCategory {
  background: #fafafa;
  border: 1px solid #ddd;
  border-radius: 4px;
  margin: 0 0 24px 0;
  padding: 8px;
}

span.catItemAddLink {
  display: block;
  padding: 8px 0;
  margin: 0 0 4px 0;
  border-bottom: 1px dotted #ccc;
  text-align: right;
}

span.catItemAddLink a {
  padding: 4px 16px;
  border: 1px solid #ddd;
  background: #fafafa;
  text-decoration: none;
}

span.catItemAddLink a:hover {
  background: #ffffcc;
}

div.itemListCategory img {
  float: left;
  display: block;
  margin: 0 8px 0 0;
}

/* --- Sub-category block --- */
div.subCategoryContainer {
  float: left;
}

/* this class is appended to the last container on each row of items (useful when you want to set 0 padding/margin to the last container) */
div.subCategory {
  background: #fafafa;
  border: 1px solid #ddd;
  margin: 4px;
  padding: 8px;
}

div.subCategory a.subCategoryImage,
div.subCategory a.subCategoryImage:hover {
  text-align: center;
  display: block;
}

div.subCategory a.subCategoryImage img,
div.subCategory a.subCategoryImage:hover img {
  margin: 0 8px 0 0;
}

/* --- Item groups --- */
div#itemListLinks {
  background: #fafafa;
  border: 1px solid #ddd;
  margin: 8px 0;
  padding: 8px;
}

div.itemContainer {
  float: left;
}

/* this class is appended to the last container on each row of items (useful when you want to set 0 padding/margin to the last container) */
@media screen and (max-width: 600px) {
  div.itemContainer, div.subCategoryContainer {
    float: none;
    display: block;
    width: 100% !important;
  }
}

/* --- Item block for each item group --- */
div.catItemView {
  margin-bottom: 48px;
  padding: 4px;
}

/* this is the container for each K2 item on this view */
/* Attach a class for each featured item */
div.catItemHeader span.catItemDateCreated {
  color: #999;
  font-size: 11px;
}

div.catItemHeader h3.catItemTitle {
  padding: 10px 0 4px 0;
  margin: 0;
}

div.catItemHeader h3.catItemTitle span sup {
  font-size: 12px;
  color: #CF1919;
  text-decoration: none;
}

/* superscript */
div.catItemHeader span.catItemAuthor {
  display: block;
  padding: 0;
  margin: 0;
}

div.catItemRatingBlock {
  padding: 8px 0;
}

div.catItemRatingBlock span {
  display: block;
  float: left;
  font-style: normal;
  padding: 0 4px 0 0;
  margin: 0;
  color: #999;
}

div.catItemBody {
  padding: 8px 0;
  margin: 0;
}

div.catItemImageBlock {
  padding: 8px 0;
  margin: 0 0 16px 0;
}

span.catItemImage {
  display: block;
  text-align: center;
  margin: 0 0 8px 0;
}

span.catItemImage img {
  max-width: 100%;
  height: auto;
}

div.catItemIntroText {
  font-size: inherit;
  font-weight: normal;
  line-height: inherit;
  padding: 4px 0 12px 0;
}

div.catItemExtraFields,
div.genericItemExtraFields {
  margin: 16px 0 0 0;
  padding: 8px 0 0 0;
  border-top: 1px dotted #ddd;
}

div.catItemExtraFields h4,
div.genericItemExtraFields h4 {
  margin: 0;
  padding: 0 0 8px 0;
}

div.catItemExtraFields ul,
div.genericItemExtraFields ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

div.catItemExtraFields ul li,
div.genericItemExtraFields ul li {
  display: block;
}

div.catItemExtraFields ul li span.catItemExtraFieldsLabel,
div.genericItemExtraFields ul li span.genericItemExtraFieldsLabel {
  display: block;
  float: left;
  font-weight: bold;
  margin: 0 4px 0 0;
  width: 30%;
}

div.catItemLinks {
  margin: 0 0 16px 0;
  padding: 0;
}

div.catItemHitsBlock {
  padding: 4px 0;
}

div.catItemCategory {
  padding: 4px 0;
}

div.catItemCategory span {
  font-weight: bold;
  padding: 0 4px 0 0;
}

div.catItemTagsBlock {
  padding: 4px 0;
}

div.catItemTagsBlock span {
  font-weight: bold;
  padding: 0 4px 0 0;
}

div.catItemTagsBlock ul.catItemTags {
  list-style: none;
  padding: 0;
  margin: 0;
  display: inline;
}

div.catItemTagsBlock ul.catItemTags li {
  display: inline;
  list-style: none;
  padding: 0 4px 0 0;
  margin: 0;
  text-align: center;
}

div.catItemTagsBlock ul.catItemTags li a:before {
  content: "#";
}

div.catItemAttachmentsBlock {
  padding: 4px;
  border-bottom: 1px dotted #ccc;
}

div.catItemAttachmentsBlock span {
  font-weight: bold;
  color: #555;
  padding: 0 4px 0 0;
}

div.catItemAttachmentsBlock ul.catItemAttachments {
  list-style: none;
  padding: 0;
  margin: 0;
  display: inline;
}

div.catItemAttachmentsBlock ul.catItemAttachments li {
  display: inline;
  list-style: none;
  padding: 0 4px;
  margin: 0;
  text-align: center;
}

div.catItemAttachmentsBlock ul.catItemAttachments li span {
  font-size: 10px;
  color: #999;
  font-weight: normal;
}

/* Video */
div.catItemVideoBlock {
  margin: 0 0 16px 0;
  padding: 16px;
  background: #010101 url(../images/videobg.gif) repeat-x bottom;
}

div.catItemVideoBlock div.catItemVideoEmbedded {
  text-align: center;
}

/* for embedded videos (not using AllVideos) */
div.catItemVideoBlock span.catItemVideo {
  display: block;
}

/* Image Gallery */
div.catItemImageGallery {
  margin: 0 0 16px 0;
  padding: 0;
}

/* Anchor link to comments */
div.catItemCommentsLink {
  display: inline;
  margin: 0 8px 0 0;
  padding: 0 8px 0 0;
  border-right: 1px solid #ccc;
}

/* Read more link */
div.catItemReadMore {
  display: inline;
}

/* Modified date */
span.catItemDateModified {
  display: block;
  text-align: right;
  padding: 4px;
  margin: 4px 0;
  color: #999;
  border-top: 1px solid #ddd;
}

/*------------------------------------------------------------------------------
	Component - Itemlist view (user)
--------------------------------------------------------------------------------*/
/* User info block */
div.userBlock {
  background: #fafafa;
  border: 1px solid #ddd;
  border-radius: 4px;
  margin: 0 0 24px 0;
  padding: 8px;
}

div.userBlock img {
  display: block;
  float: left;
  background: #fff;
  padding: 4px;
  border: 1px solid #ddd;
  margin: 0 8px 0 0;
  border-radius: 50%;
}

div.userBlock div.userDescription {
  padding: 4px 0;
}

div.userBlock div.userAdditionalInfo {
  padding: 4px 0;
  margin: 8px 0 0 0;
}

span.userURL {
  font-weight: bold;
  color: #555;
  display: block;
}

span.userEmail {
  font-weight: bold;
  color: #555;
  display: block;
}

/* User items */
div.userItemView {
  margin-bottom: 48px;
}

/* this is the item container for this view */
/* Attach a class for each featured item */
div.userItemViewUnpublished {
  opacity: 0.9;
  border: 4px dashed #ccc;
  background: #fffff2;
  padding: 8px;
  margin: 8px 0;
}

div.userItemHeader span.userItemDateCreated {
  color: #999;
  font-size: 11px;
}

div.userItemHeader h3.userItemTitle {
  padding: 10px 0 4px 0;
  margin: 0;
}

div.userItemHeader h3.userItemTitle span sup {
  font-size: 12px;
  color: #CF1919;
  text-decoration: none;
}

/* "Unpublished" presented in superscript */
div.userItemBody {
  padding: 8px 0;
  margin: 0;
}

div.userItemImageBlock {
  padding: 0;
  margin: 0;
  float: left;
}

span.userItemImage {
  display: block;
  text-align: center;
  margin: 0 8px 8px 0;
}

span.userItemImage img {
  max-width: 100%;
  height: auto;
}

div.userItemIntroText {
  font-size: inherit;
  font-weight: normal;
  line-height: inherit;
  padding: 4px 0 12px 0;
}

div.userItemLinks {
  margin: 0 0 16px 0;
  padding: 0;
}

div.userItemCategory {
  padding: 4px 0;
}

div.userItemCategory span {
  font-weight: bold;
  color: #555;
  padding: 0 4px 0 0;
}

div.userItemTagsBlock {
  padding: 4px 0;
}

div.userItemTagsBlock span {
  font-weight: bold;
  color: #555;
  padding: 0 4px 0 0;
}

div.userItemTagsBlock ul.userItemTags {
  list-style: none;
  padding: 0;
  margin: 0;
  display: inline;
}

div.userItemTagsBlock ul.userItemTags li {
  display: inline;
  list-style: none;
  padding: 0 4px 0 0;
  margin: 0;
  text-align: center;
}

div.userItemTagsBlock ul.userItemTags li a:before {
  content: "#";
}

/* Anchor link to comments */
div.userItemCommentsLink {
  display: inline;
  margin: 0 8px 0 0;
  padding: 0 8px 0 0;
  border-right: 1px solid #ccc;
}

/* Read more link */
div.userItemReadMore {
  display: inline;
}

/*------------------------------------------------------------------------------
	Component - Itemlist view (tag)
--------------------------------------------------------------------------------*/
div.tagItemView {
  margin-bottom: 48px;
}

/* this is the item container for this view */
div.tagItemHeader span.tagItemDateCreated {
  color: #999;
  font-size: 11px;
}

div.tagItemHeader h2.tagItemTitle {
  padding: 10px 0 4px 0;
  margin: 0;
}

div.tagItemBody {
  padding: 8px 0;
  margin: 0;
}

div.tagItemImageBlock {
  padding: 0;
  margin: 0;
  float: left;
}

span.tagItemImage {
  display: block;
  text-align: center;
  margin: 0 8px 8px 0;
}

span.tagItemImage img {
  max-width: 100%;
  height: auto;
}

div.tagItemIntroText {
  font-size: inherit;
  font-weight: normal;
  line-height: inherit;
  padding: 4px 0 12px 0;
}

div.tagItemCategory {
  display: inline;
  margin: 0 8px 0 0;
  padding: 0 8px 0 0;
  border-right: 1px solid #ccc;
}

div.tagItemCategory span {
  font-weight: bold;
  color: #555;
  padding: 0 4px 0 0;
}

/* Read more link */
div.tagItemReadMore {
  display: inline;
}

/*------------------------------------------------------------------------------
	Component - Itemlist view (generic)
--------------------------------------------------------------------------------*/
div.genericItemView {
  margin-bottom: 48px;
}

/* this is the item container for this view */
div.genericItemHeader span.genericItemDateCreated {
  color: #999;
  font-size: 11px;
}

div.genericItemHeader h2.genericItemTitle {
  padding: 10px 0 4px 0;
  margin: 0;
}

div.genericItemBody {
  padding: 8px 0;
  margin: 0;
}

div.genericItemImageBlock {
  padding: 0;
  margin: 0;
  float: left;
}

span.genericItemImage {
  display: block;
  text-align: center;
  margin: 0 8px 8px 0;
}

span.genericItemImage img {
  max-width: 100%;
  height: auto;
}

div.genericItemIntroText {
  font-size: inherit;
  font-weight: normal;
  line-height: inherit;
  padding: 4px 0 12px 0;
}

div.genericItemCategory {
  display: inline;
  margin: 0 8px 0 0;
  padding: 0 8px 0 0;
  border-right: 1px solid #ccc;
}

div.genericItemCategory span {
  font-weight: bold;
  color: #555;
  padding: 0 4px 0 0;
}

/* Read more link */
div.genericItemReadMore {
  display: inline;
}

/* No results found message */
div#genericItemListNothingFound {
  padding: 40px;
  text-align: center;
}

div#genericItemListNothingFound p {
  font-size: 20px;
  color: #999;
}

/* --- Google Search (use Firebug or similar tools to inspect the generated HTML, then style accordingly --- */
#k2GoogleSearchContainer .gsc-control {
  width: auto !important;
}

#k2GoogleSearchContainer .gsc-control .gsc-above-wrapper-area,
#k2GoogleSearchContainer .gsc-control .gsc-resultsHeader,
#k2GoogleSearchContainer .gsc-control .gsc-url-bottom {
  display: none !important;
}

/* Hide unneeded elements of the results page */
/*------------------------------------------------------------------------------
	Component - Latest view
--------------------------------------------------------------------------------*/
div.latestItemsContainer {
  float: left;
}

@media screen and (max-width: 600px) {
  div.latestItemsContainer {
    float: none;
    display: block;
    width: 100% !important;
  }
}

/* Category info block */
div.latestItemsCategory {
  background: #fafafa;
  border: 1px solid #ddd;
  border-radius: 4px;
  margin: 0 8px 24px 0;
  padding: 8px;
}

div.latestItemsCategoryImage {
  text-align: center;
}

div.latestItemsCategoryImage img {
  margin: 0 8px 0 0;
}

/* User info block */
div.latestItemsUser {
  background: #fafafa;
  border: 1px solid #ddd;
  border-radius: 4px;
  margin: 0 8px 24px 0;
  padding: 8px;
}

div.latestItemsUser img {
  display: block;
  float: left;
  background: #fff;
  padding: 4px;
  border: 1px solid #ddd;
  margin: 0 8px 0 0;
  border-radius: 50%;
}

div.latestItemsUser p.latestItemsUserDescription {
  padding: 4px 0;
}

div.latestItemsUser p.latestItemsUserAdditionalInfo {
  padding: 4px 0;
  margin: 8px 0 0 0;
}

span.latestItemsUserURL {
  font-weight: bold;
  color: #555;
  display: block;
}

span.latestItemsUserEmail {
  font-weight: bold;
  color: #555;
  display: block;
}

/* Latest items list */
div.latestItemList {
  padding: 0 8px 8px 0;
}

div.latestItemHeader h3.latestItemTitle {
  padding: 10px 0 4px 0;
  margin: 0;
}

span.latestItemDateCreated {
  color: #999;
  font-size: 11px;
}

div.latestItemBody {
  padding: 8px 0;
  margin: 0;
}

div.latestItemImageBlock {
  padding: 0;
  margin: 0;
  float: left;
}

span.latestItemImage {
  display: block;
  text-align: center;
  margin: 0 8px 8px 0;
}

span.latestItemImage img {
  max-width: 100%;
  height: auto;
}

@media screen and (max-width: 600px) {
  div.latestItemImageBlock {
    float: none;
    display: block;
  }
}

div.latestItemIntroText {
  font-size: inherit;
  font-weight: normal;
  line-height: inherit;
  padding: 4px 0 12px 0;
}

div.latestItemLinks {
  margin: 0 0 16px 0;
  padding: 0;
}

div.latestItemCategory {
  padding: 4px 0;
}

div.latestItemCategory span {
  font-weight: bold;
  color: #555;
  padding: 0 4px 0 0;
}

div.latestItemTagsBlock {
  padding: 4px 0;
}

div.latestItemTagsBlock span {
  font-weight: bold;
  color: #555;
  padding: 0 4px 0 0;
}

div.latestItemTagsBlock ul.latestItemTags {
  list-style: none;
  padding: 0;
  margin: 0;
  display: inline;
}

div.latestItemTagsBlock ul.latestItemTags li {
  display: inline;
  list-style: none;
  padding: 0 4px 0 0;
  margin: 0;
  text-align: center;
}

div.latestItemTagsBlock ul.latestItemTags li a:before {
  content: "#";
}

/* Video */
div.latestItemVideoBlock {
  margin: 0 0 16px 0;
  padding: 16px;
  background: #010101 url(../images/videobg.gif) repeat-x bottom;
}

div.latestItemVideoBlock span.latestItemVideo {
  display: block;
}

/* Anchor link to comments */
div.latestItemCommentsLink {
  display: inline;
  margin: 0 8px 0 0;
  padding: 0 8px 0 0;
  border-right: 1px solid #ccc;
}

/* Read more link */
div.latestItemReadMore {
  display: inline;
}

/* Items presented in a list */
h2.latestItemTitleList {
  padding: 2px 0;
  margin: 8px 0 2px 0;
  border-bottom: 1px dotted #ccc;
}

/*------------------------------------------------------------------------------
	Modules - mod_k2_content
--------------------------------------------------------------------------------*/
div.k2ItemsBlock ul li div.moduleItemIntrotext {
  display: block;
  padding: 4px 0;
}

div.k2ItemsBlock ul li div.moduleItemIntrotext a.moduleItemImage img {
  float: right;
  margin: 2px 0 4px 4px;
  padding: 0;
}

div.moduleItemExtraFields ul li span.moduleItemExtraFieldsLabel {
  display: block;
  float: left;
  font-weight: bold;
  margin: 0 4px 0 0;
  width: 30%;
}

div.k2ItemsBlock ul li div.moduleItemTags a {
  padding: 0 2px;
}

div.k2ItemsBlock ul li a.moduleItemComments {
  border-right: 1px solid #ccc;
  padding: 0 4px 0 0;
  margin: 0 8px 0 0;
}

div.k2ItemsBlock ul li span.moduleItemHits {
  border-right: 1px solid #ccc;
  padding: 0 4px 0 0;
  margin: 0 8px 0 0;
}

/*------------------------------------------------------------------------------
	Modules - mod_k2_tools
--------------------------------------------------------------------------------*/
/* --- Breadcrumbs --- */
div.k2BreadcrumbsBlock span.bcTitle {
  padding: 0 4px 0 0;
  color: #999;
}

div.k2BreadcrumbsBlock span.bcSeparator {
  padding: 0 4px;
  font-size: 14px;
}

/* --- Calendar --- */
div.k2CalendarBlock {
  height: 190px;
  margin-bottom: 8px;
}

/* use this height value so that the calendar height won't change on Month change via ajax */
div.k2CalendarLoader {
  background: #fff url(../images/loaders/calendar.gif) no-repeat 50% 50%;
}

table.calendar {
  margin: 0 auto;
  background: #fff;
  border-collapse: collapse;
}

table.calendar tr td {
  text-align: center;
  vertical-align: middle;
  padding: 2px;
  border: 1px solid #f4f4f4;
  background: #fff;
}

table.calendar tr td.calendarNavMonthPrev {
  background: #fafafa;
  text-align: left;
}

table.calendar tr td.calendarNavMonthPrev a {
  font-size: 20px;
  text-decoration: none;
}

table.calendar tr td.calendarNavMonthPrev a:hover {
  font-size: 20px;
  text-decoration: none;
}

table.calendar tr td.calendarCurrentMonth {
  background: #fafafa;
}

table.calendar tr td.calendarNavMonthNext {
  background: #fafafa;
  text-align: right;
}

table.calendar tr td.calendarNavMonthNext a {
  font-size: 20px;
  text-decoration: none;
}

table.calendar tr td.calendarNavMonthNext a:hover {
  font-size: 20px;
  text-decoration: none;
}

table.calendar tr td.calendarDayName {
  background: #e9e9e9;
  font-size: 11px;
  width: 14.2%;
}

table.calendar tr td.calendarDateEmpty {
  background: #fbfbfb;
}

table.calendar tr td.calendarDateLinked {
  padding: 0;
}

table.calendar tr td.calendarDateLinked a {
  display: block;
  padding: 2px;
  text-decoration: none;
  background: #fafafa;
}

table.calendar tr td.calendarDateLinked a:hover {
  display: block;
  background: #135cae;
  color: #fff;
  padding: 2px;
  text-decoration: none;
}

table.calendar tr td.calendarToday {
  background: #135cae;
  color: #fff;
}

table.calendar tr td.calendarTodayLinked {
  background: #135cae;
  color: #fff;
  padding: 0;
}

table.calendar tr td.calendarTodayLinked a {
  display: block;
  padding: 2px;
  color: #fff;
  text-decoration: none;
}

table.calendar tr td.calendarTodayLinked a:hover {
  display: block;
  background: #BFD9FF;
  padding: 2px;
  text-decoration: none;
}

/* --- Category Tree Select Box --- */
div.k2CategorySelectBlock form select {
  width: auto;
}

div.k2CategoriesListBlock ul li a span.catTitle {
  padding-right: 4px;
}

div.k2CategoriesListBlock ul li.activeCategory a {
  font-weight: bold;
}

/* --- Search Box --- */
div.k2SearchBlock form input.k2SearchLoading {
  background: url(../images/loaders/search.gif) no-repeat 100% 50%;
}

div.k2SearchBlock div.k2LiveSearchResults {
  display: none;
  background: #fff;
  position: absolute;
  z-index: 99;
  border: 1px solid #ddd;
  margin-top: -1px;
}

/* Live search results (fetched via ajax) */
div.k2SearchBlock div.k2LiveSearchResults ul.liveSearchResults {
  list-style: none;
  margin: 0;
  padding: 0;
}

div.k2SearchBlock div.k2LiveSearchResults ul.liveSearchResults li {
  border: none;
  margin: 0;
  padding: 0;
}

div.k2SearchBlock div.k2LiveSearchResults ul.liveSearchResults li a {
  display: block;
  padding: 1px 2px;
  border-top: 1px dotted #ddd;
}

div.k2SearchBlock div.k2LiveSearchResults ul.liveSearchResults li a:hover {
  background: #fffff0;
}

/* --- Tag Cloud --- */
div.k2TagCloudBlock {
  padding: 8px 0;
}

div.k2TagCloudBlock a {
  padding: 4px;
  float: left;
  display: block;
}

div.k2TagCloudBlock a:hover {
  padding: 4px;
  float: left;
  display: block;
  background: #135cae;
  color: #fff;
  text-decoration: none;
}

/* --- Custom Code --- */
/*------------------------------------------------------------------------------
	Modules - mod_k2_user (mod_k2_login is removed since v2.6.x)
--------------------------------------------------------------------------------*/
div.k2LoginBlock fieldset.input {
  margin: 0;
  padding: 0 0 8px 0;
}

div.k2LoginBlock fieldset.input p {
  margin: 0;
  padding: 0 0 4px 0;
}

div.k2LoginBlock fieldset.input p label {
  display: block;
}

div.k2LoginBlock fieldset.input p input {
  display: block;
}

div.k2LoginBlock fieldset.input p#form-login-remember label,
div.k2LoginBlock fieldset.input p#form-login-remember input {
  display: inline;
}

a.ubUserFeedIcon,
a.ubUserFeedIcon:hover {
  display: inline-block;
  margin: 0 2px 0 0;
  padding: 0;
  font-size: 15px;
}

a.ubUserFeedIcon span,
a.ubUserFeedIcon:hover span {
  display: none;
}

a.ubUserURL,
a.ubUserURL:hover {
  display: inline-block;
  margin: 0 2px 0 0;
  padding: 0;
  font-size: 15px;
}

a.ubUserURL span,
a.ubUserURL:hover span {
  display: none;
}

span.ubUserEmail {
  display: inline-block;
  margin: 0 2px 0 0;
  padding: 0;
  overflow: hidden;
  font-size: 15px;
}

span.ubUserEmail a {
  display: inline-block;
  margin: 0;
  padding: 0;
  width: 16px;
  height: 16px;
  text-indent: -9999px;
}

div#contador {
  width: 16.66667%;
  float: left;
  padding-right: 0;
  padding-left: 0;
  padding: 10px 0;
}

div#contador a {
  display: none;
}

.vrow, .vrowd {
  display: inline-block;
}

.vrow, .vrowd {
  display: inline-block;
}

.vrow {
  color: #18386b;
  background-color: white;
  font-size: 14px;
  font-weight: bold;
  padding: 9px 24px;
}

.vrowd {
  color: #fad701;
  border: solid 2px white;
  padding: 7px 27px;
  margin-left: -3px;
}

.idioma a {
  font-size: 14px;
  font-weight: bold;
}

.bloque_investigador {
  width: 33%;
  display: inline-block;
  vertical-align: top;
  margin: 14px 0;
  padding: 5px;
  font-size: 14px;
  text-align: center;
}

.contenedor.investigadores h5 {
  margin: 15px 0;
}

img.fotos {
  display: block;
  margin: 0 auto;
}

.nombrein {
  text-transform: uppercase;
  padding-top: 7px;
}

/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
/* Document
       ========================================================================== */
/**
     * 1. Change the default font family in all browsers (opinionated).
     * 2. Correct the line height in all browsers.
     * 3. Prevent adjustments of font size after orientation changes in
     *    IE on Windows Phone and in iOS.
     */
html {
  font-family: sans-serif;
  /* 1 */
  line-height: 1.15;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 3 */
  -webkit-text-size-adjust: 100%;
  /* 3 */
}

/* Sections
       ========================================================================== */
/**
     * Remove the margin in all browsers (opinionated).
     */
body {
  margin: 0;
}

/**
     * Add the correct display in IE 9-.
     */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
     * Correct the font size and margin on `h1` elements within `section` and
     * `article` contexts in Chrome, Firefox, and Safari.
     */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
figcaption,
figure {
  display: block;
}

/**
     * Add the correct margin in IE 8.
     */
figure {
  margin: 1em 40px;
}

/**
     * 1. Add the correct box sizing in Firefox.
     * 2. Show the overflow in Edge and IE.
     */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
     * Add the correct display in IE.
     */
main {
  display: block;
}

/**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Links
       ========================================================================== */
/**
     * 1. Remove the gray background on active links in IE 10.
     * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
     */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */
}

/**
     * Remove the outline on focused links when they are also active or hovered
     * in all browsers (opinionated).
     */
a:active,
a:hover {
  outline-width: 0;
}

/* Text-level semantics
       ========================================================================== */
/**
     * 1. Remove the bottom border in Firefox 39-.
     * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
     */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}

/**
     * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
     */
b,
strong {
  font-weight: inherit;
}

/**
     * Add the correct font weight in Chrome, Edge, and Safari.
     */
b,
strong {
  font-weight: bolder;
}

/**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
     * Add the correct font style in Android 4.3-.
     */
dfn {
  font-style: italic;
}

/**
     * Add the correct background and color in IE 9-.
     */
mark {
  background-color: #ff0;
  color: #000;
}

/**
     * Add the correct font size in all browsers.
     */
small {
  font-size: 80%;
}

/**
     * Prevent `sub` and `sup` elements from affecting the line height in
     * all browsers.
     */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
audio,
video {
  display: inline-block;
}

/**
     * Add the correct display in iOS 4-7.
     */
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
     * Remove the border on images inside links in IE 10-.
     */
img {
  border-style: none;
}

/**
     * Hide the overflow in IE.
     */
svg:not(:root) {
  overflow: hidden;
}

/* Forms
       ========================================================================== */
/**
     * 1. Change the font styles in all browsers (opinionated).
     * 2. Remove the margin in Firefox and Safari.
     */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
     * Show the overflow in IE.
     */
button {
  overflow: visible;
}

/**
     * Remove the inheritance of text transform in Edge, Firefox, and IE.
     * 1. Remove the inheritance of text transform in Firefox.
     */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
     * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
     *    controls in Android 4.
     * 2. Correct the inability to style clickable types in iOS and Safari.
     */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
  /**
       * Remove the inner border and padding in Firefox.
       */
  /**
       * Restore the focus styles unset by the previous rule.
       */
}

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

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

/**
     * Show the overflow in Edge.
     */
input {
  overflow: visible;
}

/**
     * 1. Add the correct box sizing in IE 10-.
     * 2. Remove the padding in IE 10-.
     */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
     * Correct the cursor style of increment and decrement buttons in Chrome.
     */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
     * 1. Correct the odd appearance in Chrome and Safari.
     * 2. Correct the outline style in Safari.
     */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
  /**
       * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
       */
}

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

/**
     * 1. Correct the inability to style clickable types in iOS and Safari.
     * 2. Change font properties to `inherit` in Safari.
     */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/**
     * Change the border, margin, and padding in all browsers (opinionated).
     */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
     * 1. Correct the text wrapping in Edge and IE.
     * 2. Correct the color inheritance from `fieldset` elements in IE.
     * 3. Remove the padding so developers are not caught out when they zero out
     *    `fieldset` elements in all browsers.
     */
legend {
  box-sizing: border-box;
  /* 1 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  color: inherit;
  /* 2 */
  white-space: normal;
  /* 1 */
}

/**
     * 1. Add the correct display in IE 9-.
     * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
     */
progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}

/**
     * Remove the default vertical scrollbar in IE.
     */
textarea {
  overflow: auto;
}

/* Interactive
       ========================================================================== */
/*
     * Add the correct display in Edge, IE, and Firefox.
     */
details {
  display: block;
}

/*
     * Add the correct display in all browsers.
     */
summary {
  display: list-item;
}

/*
     * Add the correct display in IE 9-.
     */
menu {
  display: block;
}

/* Scripting
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
canvas {
  display: inline-block;
}

/**
     * Add the correct display in IE.
     */
template {
  display: none;
}

/* Hidden
       ========================================================================== */
/**
     * Add the correct display in IE 10-.
     */
[hidden] {
  display: none;
}

.foundation-mq {
  font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em";
}

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

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

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

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

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

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

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

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

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

pre {
  overflow: auto;
}

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

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

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

p {
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

em,
i {
  font-style: italic;
  line-height: inherit;
}

strong,
b {
  font-weight: bold;
  line-height: inherit;
}

small {
  font-size: 80%;
  line-height: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "MyriadWebProRegular", sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
}

h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small {
  line-height: 0;
  color: #cacaca;
}

h1 {
  font-size: 1.5rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h2 {
  font-size: 1.25rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h3 {
  font-size: 1.1875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h4 {
  font-size: 1.125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h5 {
  font-size: 1.0625rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h6 {
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

@media print, screen and (min-width: 40em) {
  h1 {
    font-size: 2.625rem;
  }
  h2 {
    font-size: 1.875rem;
  }
  h3 {
    font-size: 1.5625rem;
  }
  h4 {
    font-size: 1.25rem;
  }
  h5 {
    font-size: 1.0625rem;
  }
  h6 {
    font-size: 0.875rem;
  }
}

a {
  line-height: inherit;
  color: #1779ba;
  text-decoration: none;
  cursor: pointer;
}

a:hover, a:focus {
  color: #1468a0;
}

a img {
  border: 0;
}

hr {
  clear: both;
  max-width: 75rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0;
}

ul,
ol,
dl {
  margin-bottom: 1rem;
  list-style-position: outside;
  line-height: 1.6;
}

li {
  font-size: inherit;
}

ul {
  margin-left: 1.25rem;
  list-style-type: disc;
}

ol {
  margin-left: 1.25rem;
}

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0;
}

dl {
  margin-bottom: 1rem;
}

dl dt {
  margin-bottom: 0.3rem;
  font-weight: bold;
}

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca;
}

blockquote, blockquote p {
  line-height: 1.6;
  color: #8a8a8a;
}

cite {
  display: block;
  font-size: 0.8125rem;
  color: #8a8a8a;
}

cite:before {
  content: "— ";
}

abbr {
  border-bottom: 1px dotted #0a0a0a;
  color: #0a0a0a;
  cursor: help;
}

figure {
  margin: 0;
}

code {
  padding: 0.125rem 0.3125rem 0.0625rem;
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
}

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #0a0a0a;
}

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #8a8a8a;
}

.lead {
  font-size: 125%;
  line-height: 1.6;
}

.stat {
  font-size: 2.5rem;
  line-height: 1;
}

p + .stat {
  margin-top: -1rem;
}

.no-bullet {
  margin-left: 0;
  list-style: none;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

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

.text-justify {
  text-align: justify;
}

@media print, screen and (min-width: 40em) {
  .medium-text-left {
    text-align: left;
  }
  .medium-text-right {
    text-align: right;
  }
  .medium-text-center {
    text-align: center;
  }
  .medium-text-justify {
    text-align: justify;
  }
}

@media print, screen and (min-width: 64em) {
  .large-text-left {
    text-align: left;
  }
  .large-text-right {
    text-align: right;
  }
  .large-text-center {
    text-align: center;
  }
  .large-text-justify {
    text-align: justify;
  }
}

.show-for-print {
  display: none !important;
}

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: black !important;
    text-shadow: none !important;
  }
  .show-for-print {
    display: block !important;
  }
  .hide-for-print {
    display: none !important;
  }
  table.show-for-print {
    display: table !important;
  }
  thead.show-for-print {
    display: table-header-group !important;
  }
  tbody.show-for-print {
    display: table-row-group !important;
  }
  tr.show-for-print {
    display: table-row !important;
  }
  td.show-for-print {
    display: table-cell !important;
  }
  th.show-for-print {
    display: table-cell !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: '';
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  @page {
    margin: 0.5cm;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .print-break-inside {
    page-break-inside: auto;
  }
}

.top-bar::before, .top-bar::after {
  display: table;
  content: ' ';
}

.top-bar::after {
  clear: both;
}

.top-bar input {
  max-width: 200px;
  margin-right: 1rem;
}

.top-bar .input-group-field {
  width: 100%;
  margin-right: 0;
}

.top-bar input.button {
  width: auto;
}

.top-bar .top-bar-left,
.top-bar .top-bar-right {
  width: 100%;
}

@media print, screen and (min-width: 40em) {
  .top-bar .top-bar-left,
  .top-bar .top-bar-right {
    width: auto;
  }
}

@media screen and (max-width: 63.9375em) {
  .top-bar.stacked-for-medium .top-bar-left,
  .top-bar.stacked-for-medium .top-bar-right {
    width: 100%;
  }
}

@media screen and (max-width: 74.9375em) {
  .top-bar.stacked-for-large .top-bar-left,
  .top-bar.stacked-for-large .top-bar-right {
    width: 100%;
  }
}

.top-bar-title {
  display: inline-block;
  float: left;
  padding: 0.5rem 1rem 0.5rem 0;
}

.top-bar-title .menu-icon {
  bottom: 2px;
}

.top-bar-left {
  float: left;
}

.top-bar-right {
  float: right;
}

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  color: #0a0a0a;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

[type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
textarea:focus {
  outline: none;
  border: 1px solid #8a8a8a;
  background-color: #fefefe;
  box-shadow: 0 0 5px #cacaca;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

textarea {
  max-width: 100%;
}

textarea[rows] {
  height: auto;
}

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #cacaca;
}

input::placeholder,
textarea::placeholder {
  color: #cacaca;
}

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: not-allowed;
}

[type='submit'],
[type='button'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 0;
}

input[type='search'] {
  box-sizing: border-box;
}

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem;
}

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0;
}

[type='checkbox'] + label[for],
[type='radio'] + label[for] {
  cursor: pointer;
}

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem;
}

[type='file'] {
  width: 100%;
}

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a;
}

label.middle {
  margin: 0 0 1rem;
  padding: 0.5625rem 0;
}

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #0a0a0a;
}

.input-group {
  display: table;
  width: 100%;
  margin-bottom: 1rem;
}

.input-group > :first-child {
  border-radius: 0 0 0 0;
}

.input-group > :last-child > * {
  border-radius: 0 0 0 0;
}

.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  margin: 0;
  white-space: nowrap;
  display: table-cell;
  vertical-align: middle;
}

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #0a0a0a;
  text-align: center;
  white-space: nowrap;
  width: 1%;
  height: 100%;
}

.input-group-label:first-child {
  border-right: 0;
}

.input-group-label:last-child {
  border-left: 0;
}

.input-group-field {
  border-radius: 0;
  height: 2.5rem;
}

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  width: 1%;
  height: 100%;
}

.input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  height: 2.5rem;
  padding-top: 0;
  padding-bottom: 0;
  font-size: 1rem;
}

.input-group .input-group-button {
  display: table-cell;
}

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

legend {
  max-width: 100%;
  margin-bottom: 0.5rem;
}

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #cacaca;
}

.fieldset legend {
  margin: 0;
  margin-left: -0.1875rem;
  padding: 0 0.1875rem;
  background: #fefefe;
}

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  line-height: normal;
  color: #0a0a0a;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

@media screen and (min-width: 0\0) {
  select {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
  }
}

select:focus {
  outline: none;
  border: 1px solid #8a8a8a;
  background-color: #fefefe;
  box-shadow: 0 0 5px #cacaca;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

select:disabled {
  background-color: #e6e6e6;
  cursor: not-allowed;
}

select::-ms-expand {
  display: none;
}

select[multiple] {
  height: auto;
  background-image: none;
}

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

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

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

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

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

.form-error.is-visible {
  display: block;
}

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 0.85em 1em;
  -webkit-appearance: none;
  border: 1px solid transparent;
  border-radius: 0;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-size: 0.9rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: #1779ba;
  color: #fefefe;
}

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

.button:hover, .button:focus {
  background-color: #14679e;
  color: #fefefe;
}

.button.tiny {
  font-size: 0.6rem;
}

.button.small {
  font-size: 0.75rem;
}

.button.large {
  font-size: 1.25rem;
}

.button.expanded {
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

.button.primary {
  background-color: #1779ba;
  color: #fefefe;
}

.button.primary:hover, .button.primary:focus {
  background-color: #126195;
  color: #fefefe;
}

.button.secondary {
  background-color: #767676;
  color: #fefefe;
}

.button.secondary:hover, .button.secondary:focus {
  background-color: #5e5e5e;
  color: #fefefe;
}

.button.success {
  background-color: #3adb76;
  color: #0a0a0a;
}

.button.success:hover, .button.success:focus {
  background-color: #22bb5b;
  color: #0a0a0a;
}

.button.warning {
  background-color: #ffae00;
  color: #0a0a0a;
}

.button.warning:hover, .button.warning:focus {
  background-color: #cc8b00;
  color: #0a0a0a;
}

.button.alert {
  background-color: #cc4b37;
  color: #fefefe;
}

.button.alert:hover, .button.alert:focus {
  background-color: #a53b2a;
  color: #fefefe;
}

.button.hollow {
  border: 1px solid #1779ba;
  color: #1779ba;
}

.button.hollow, .button.hollow:hover, .button.hollow:focus {
  background-color: transparent;
}

.button.hollow:hover, .button.hollow:focus {
  border-color: #0c3d5d;
  color: #0c3d5d;
}

.button.hollow.primary {
  border: 1px solid #1779ba;
  color: #1779ba;
}

.button.hollow.primary:hover, .button.hollow.primary:focus {
  border-color: #0c3d5d;
  color: #0c3d5d;
}

.button.hollow.secondary {
  border: 1px solid #767676;
  color: #767676;
}

.button.hollow.secondary:hover, .button.hollow.secondary:focus {
  border-color: #3b3b3b;
  color: #3b3b3b;
}

.button.hollow.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}

.button.hollow.success:hover, .button.hollow.success:focus {
  border-color: #157539;
  color: #157539;
}

.button.hollow.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.hollow.warning:hover, .button.hollow.warning:focus {
  border-color: #805700;
  color: #805700;
}

.button.hollow.alert {
  border: 1px solid #cc4b37;
  color: #cc4b37;
}

.button.hollow.alert:hover, .button.hollow.alert:focus {
  border-color: #67251a;
  color: #67251a;
}

.button.disabled, .button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled, .button.disabled:hover, .button.disabled:focus, .button[disabled], .button[disabled]:hover, .button[disabled]:focus {
  background-color: #1779ba;
  color: #fefefe;
}

.button.disabled.primary, .button[disabled].primary {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus {
  background-color: #1779ba;
  color: #fefefe;
}

.button.disabled.secondary, .button[disabled].secondary {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
  background-color: #767676;
  color: #fefefe;
}

.button.disabled.success, .button[disabled].success {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
  background-color: #3adb76;
  color: #0a0a0a;
}

.button.disabled.warning, .button[disabled].warning {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus {
  background-color: #ffae00;
  color: #0a0a0a;
}

.button.disabled.alert, .button[disabled].alert {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
  background-color: #cc4b37;
  color: #fefefe;
}

.button.dropdown::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4em;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #fefefe transparent transparent;
  position: relative;
  top: 0.4em;
  display: inline-block;
  float: right;
  margin-left: 1em;
}

.button.dropdown.hollow::after {
  border-top-color: #1779ba;
}

.button.dropdown.hollow.primary::after {
  border-top-color: #1779ba;
}

.button.dropdown.hollow.secondary::after {
  border-top-color: #767676;
}

.button.dropdown.hollow.success::after {
  border-top-color: #3adb76;
}

.button.dropdown.hollow.warning::after {
  border-top-color: #ffae00;
}

.button.dropdown.hollow.alert::after {
  border-top-color: #cc4b37;
}

.button.arrow-only::after {
  top: -0.1em;
  float: none;
  margin-left: 0;
}

.button-group {
  margin-bottom: 1rem;
  font-size: 0;
}

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

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

.button-group .button {
  margin: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  font-size: 0.9rem;
}

.button-group .button:last-child {
  margin-right: 0;
}

.button-group.tiny .button {
  font-size: 0.6rem;
}

.button-group.small .button {
  font-size: 0.75rem;
}

.button-group.large .button {
  font-size: 1.25rem;
}

.button-group.expanded {
  margin-right: -1px;
}

.button-group.expanded::before, .button-group.expanded::after {
  display: none;
}

.button-group.expanded .button:first-child:last-child {
  width: 100%;
}

.button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {
  display: inline-block;
  width: calc(50% - 1px);
  margin-right: 1px;
}

.button-group.expanded .button:first-child:nth-last-child(2):last-child, .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {
  margin-right: -6px;
}

.button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {
  display: inline-block;
  width: calc(33.33333% - 1px);
  margin-right: 1px;
}

.button-group.expanded .button:first-child:nth-last-child(3):last-child, .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {
  margin-right: -6px;
}

.button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {
  display: inline-block;
  width: calc(25% - 1px);
  margin-right: 1px;
}

.button-group.expanded .button:first-child:nth-last-child(4):last-child, .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {
  margin-right: -6px;
}

.button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {
  display: inline-block;
  width: calc(20% - 1px);
  margin-right: 1px;
}

.button-group.expanded .button:first-child:nth-last-child(5):last-child, .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {
  margin-right: -6px;
}

.button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {
  display: inline-block;
  width: calc(16.66667% - 1px);
  margin-right: 1px;
}

.button-group.expanded .button:first-child:nth-last-child(6):last-child, .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {
  margin-right: -6px;
}

.button-group.primary .button {
  background-color: #1779ba;
  color: #fefefe;
}

.button-group.primary .button:hover, .button-group.primary .button:focus {
  background-color: #126195;
  color: #fefefe;
}

.button-group.secondary .button {
  background-color: #767676;
  color: #fefefe;
}

.button-group.secondary .button:hover, .button-group.secondary .button:focus {
  background-color: #5e5e5e;
  color: #fefefe;
}

.button-group.success .button {
  background-color: #3adb76;
  color: #0a0a0a;
}

.button-group.success .button:hover, .button-group.success .button:focus {
  background-color: #22bb5b;
  color: #0a0a0a;
}

.button-group.warning .button {
  background-color: #ffae00;
  color: #0a0a0a;
}

.button-group.warning .button:hover, .button-group.warning .button:focus {
  background-color: #cc8b00;
  color: #0a0a0a;
}

.button-group.alert .button {
  background-color: #cc4b37;
  color: #fefefe;
}

.button-group.alert .button:hover, .button-group.alert .button:focus {
  background-color: #a53b2a;
  color: #fefefe;
}

.button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
  width: 100%;
}

.button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
  margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .button-group.stacked-for-small .button {
    width: auto;
    margin-bottom: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .button-group.stacked-for-medium .button {
    width: auto;
    margin-bottom: 0;
  }
}

@media screen and (max-width: 39.9375em) {
  .button-group.stacked-for-small.expanded {
    display: block;
  }
  .button-group.stacked-for-small.expanded .button {
    display: block;
    margin-right: 0;
  }
}

.accordion {
  margin-left: 0;
  background: #fefefe;
  list-style-type: none;
}

.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0;
}

.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0;
}

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  line-height: 1;
  color: #1779ba;
}

:last-child:not(.is-active) > .accordion-title {
  border-bottom: 1px solid #e6e6e6;
  border-radius: 0 0 0 0;
}

.accordion-title:hover, .accordion-title:focus {
  background-color: #e6e6e6;
}

.accordion-title::before {
  position: absolute;
  top: 50%;
  right: 1rem;
  margin-top: -0.5rem;
  content: '+';
}

.is-active > .accordion-title::before {
  content: '\2013';
}

.accordion-content {
  display: none;
  padding: 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  background-color: #fefefe;
  color: #0a0a0a;
}

:last-child > .accordion-content:last-child {
  border-bottom: 1px solid #e6e6e6;
}

.is-accordion-submenu-parent > a {
  position: relative;
}

.is-accordion-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1779ba transparent transparent;
  position: absolute;
  top: 50%;
  margin-top: -3px;
  right: 1rem;
}

.is-accordion-submenu-parent[aria-expanded='true'] > a::after {
  -ms-transform: rotate(180deg);
      transform: rotate(180deg);
  -ms-transform-origin: 50% 50%;
      transform-origin: 50% 50%;
}

.menu {
  margin: 0;
  list-style-type: none;
}

.menu > li {
  display: table-cell;
  vertical-align: middle;
}

[data-whatinput='mouse'] .menu > li {
  outline: 0;
}

.menu > li > a {
  display: block;
  padding: 1.25rem 1.2rem;
  line-height: 1;
  font-size: 14px;
}

.menu input,
.menu select,
.menu a,
.menu button {
  margin-bottom: 0;
}

.menu > li > a img,
.menu > li > a i,
.menu > li > a svg {
  vertical-align: middle;
}

.menu > li > a img + span,
.menu > li > a i + span,
.menu > li > a svg + span {
  vertical-align: middle;
}

.menu > li > a img,
.menu > li > a i,
.menu > li > a svg {
  margin-right: 0.25rem;
  display: inline-block;
}

.menu > li, .menu.horizontal > li {
  display: table-cell;
}

.menu.expanded {
  display: table;
  width: 100%;
  table-layout: fixed;
}

.menu.expanded > li:first-child:last-child {
  width: 100%;
}

.menu.vertical > li {
  display: block;
}

@media print, screen and (min-width: 40em) {
  .menu.medium-horizontal > li {
    display: table-cell;
  }
  .menu.medium-expanded {
    display: table;
    width: 100%;
    table-layout: fixed;
  }
  .menu.medium-expanded > li:first-child:last-child {
    width: 100%;
  }
  .menu.medium-vertical > li {
    display: block;
  }
}

@media print, screen and (min-width: 64em) {
  .menu.large-horizontal > li {
    display: table-cell;
  }
  .menu.large-expanded {
    display: table;
    width: 100%;
    table-layout: fixed;
  }
  .menu.large-expanded > li:first-child:last-child {
    width: 100%;
  }
  .menu.large-vertical > li {
    display: block;
  }
}

.menu.simple li {
  display: inline-block;
  vertical-align: top;
  line-height: 1;
}

.menu.simple a {
  padding: 0;
}

.menu.simple li {
  margin-left: 0;
  margin-right: 1rem;
}

.menu.simple.align-right li {
  margin-right: 0;
  margin-left: 1rem;
}

.menu.align-right::before, .menu.align-right::after {
  display: table;
  content: ' ';
}

.menu.align-right::after {
  clear: both;
}

.menu.align-right > li {
  float: right;
}

.menu.icon-top > li > a {
  text-align: center;
}

.menu.icon-top > li > a img,
.menu.icon-top > li > a i,
.menu.icon-top > li > a svg {
  display: block;
  margin: 0 auto 0.25rem;
}

.menu.icon-top.vertical a > span {
  margin: auto;
}

.menu.nested {
  margin-left: 1rem;
}

.menu .active > a {
  background: #D2A92D;
  color: #18386b;
}

.menu.menu-bordered li {
  border: 1px solid #e6e6e6;
}

.menu.menu-bordered li:not(:first-child) {
  border-top: 0;
}

.menu.menu-hover li:hover {
  background-color: #e6e6e6;
}

.menu-text {
  padding-top: 0;
  padding-bottom: 0;
  padding: 0.7rem 1rem;
  font-weight: bold;
  line-height: 1;
  color: inherit;
}

.menu-centered {
  text-align: center;
}

.menu-centered > .menu {
  display: inline-block;
  vertical-align: top;
}

.no-js [data-responsive-menu] ul {
  display: none;
}

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #fefefe;
  box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
  content: '';
}

.menu-icon:hover::after {
  background: #cacaca;
  box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
}

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon.dark::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #0a0a0a;
  box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
  content: '';
}

.menu-icon.dark:hover::after {
  background: #8a8a8a;
  box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
}

.is-drilldown {
  position: relative;
  overflow: hidden;
}

.is-drilldown li {
  display: block;
}

.is-drilldown.animate-height {
  transition: height 0.5s;
}

.is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  transition: transform 0.15s linear;
}

.is-drilldown-submenu.is-active {
  z-index: 1;
  display: block;
  -ms-transform: translateX(-100%);
      transform: translateX(-100%);
}

.is-drilldown-submenu.is-closing {
  -ms-transform: translateX(100%);
      transform: translateX(100%);
}

.drilldown-submenu-cover-previous {
  min-height: 100%;
}

.is-drilldown-submenu-parent > a {
  position: relative;
}

.is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba;
  position: absolute;
  top: 50%;
  margin-top: -6px;
  right: 1rem;
}

.js-drilldown-back > a::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
  border-left-width: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem;
  border-left-width: 0;
}

.dropdown-pane {
  position: absolute;
  z-index: 10;
  display: block;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-size: 1rem;
}

.dropdown-pane.is-open {
  visibility: visible;
}

.dropdown-pane.tiny {
  width: 100px;
}

.dropdown-pane.small {
  width: 200px;
}

.dropdown-pane.large {
  width: 400px;
}

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto;
}

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0;
  z-index: 100;
}

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem;
}

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1779ba transparent transparent;
  right: 5px;
  margin-top: -3px;
}

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0;
}

.no-js .dropdown.menu ul {
  display: none;
}

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0;
}

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto;
}

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}

.dropdown.menu.vertical > li > a::after {
  right: 14px;
}

.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
}

.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba;
}

@media print, screen and (min-width: 40em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
    z-index: 100;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    margin-top: -3px;
  }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
  }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent;
  }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba;
  }
}

@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
    z-index: 100;
  }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    margin-top: -3px;
  }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
  }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent;
  }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba;
  }
}

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto;
}

.is-dropdown-menu.vertical {
  width: 100px;
}

.is-dropdown-menu.vertical.align-right {
  float: right;
}

.is-dropdown-submenu-parent {
  position: relative;
}

.is-dropdown-submenu-parent a::after {
  position: absolute;
  top: 50%;
  right: 5px;
  margin-top: -6px;
}

.is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
  top: 100%;
  left: auto;
}

.is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto;
}

.is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  background: #f3f3f3;
}

.is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
  right: 14px;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba;
}

.is-dropdown-submenu .is-dropdown-submenu {
  margin-top: -1px;
}

.is-dropdown-submenu > li {
  width: 100%;
}

.is-dropdown-submenu.js-dropdown-active {
  display: block;
}

.pagination {
  margin-left: 0;
  margin-bottom: 1rem;
}

.pagination::before, .pagination::after {
  display: table;
  content: ' ';
}

.pagination::after {
  clear: both;
}

.pagination li {
  margin-right: 0.0625rem;
  border-radius: 0;
  font-size: 0.875rem;
  display: none;
}

.pagination li:last-child, .pagination li:first-child {
  display: inline-block;
}

@media print, screen and (min-width: 40em) {
  .pagination li {
    display: inline-block;
  }
}

.pagination a,
.pagination button {
  display: block;
  padding: 0.1875rem 0.625rem;
  border-radius: 0;
  color: #0a0a0a;
}

.pagination a:hover,
.pagination button:hover {
  background: #18386b;
}

.pagination .current {
  padding: 0.1875rem 0.625rem;
  background: #18386b;
  color: #fefefe;
  cursor: default;
}

.pagination .disabled {
  padding: 0.1875rem 0.625rem;
  color: #cacaca;
  cursor: not-allowed;
}

.pagination .disabled:hover {
  background: transparent;
}

.pagination .ellipsis::after {
  padding: 0.1875rem 0.625rem;
  content: '\2026';
  color: #0a0a0a;
}

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: '\00ab';
}

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: '\00bb';
}

.breadcrumbs {
  margin: 0.5rem 1rem 0rem 0;
  list-style: none;
}

.breadcrumbs::before, .breadcrumbs::after {
  display: table;
  content: ' ';
}

.breadcrumbs::after {
  clear: both;
}

.breadcrumbs li {
  float: left;
  font-size: 0.6875rem;
  color: #0a0a0a;
  cursor: default;
  text-transform: uppercase;
}

.breadcrumbs li:not(:last-child)::after {
  position: relative;
  top: 1px;
  margin: 0 0.75rem;
  opacity: 1;
  content: "/";
  color: #cacaca;
}

.breadcrumbs a {
  color: #1779ba;
}

.breadcrumbs a:hover {
  text-decoration: underline;
}

.breadcrumbs .disabled {
  color: #cacaca;
  cursor: not-allowed;
}

table {
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0;
}

thead,
tbody,
tfoot {
  border: 1px solid #f1f1f1;
  background-color: #fefefe;
}

caption {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
}

thead {
  background: #f8f8f8;
  color: #0a0a0a;
}

tfoot {
  background: #f1f1f1;
  color: #0a0a0a;
}

thead tr,
tfoot tr {
  background: transparent;
}

thead th,
thead td,
tfoot th,
tfoot td {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
  text-align: left;
}

tbody th,
tbody td {
  padding: 0.5rem 0.625rem 0.625rem;
}

tbody tr:nth-child(even) {
  border-bottom: 0;
  background-color: #f1f1f1;
}

table.unstriped tbody {
  background-color: #fefefe;
}

table.unstriped tbody tr {
  border-bottom: 0;
  border-bottom: 1px solid #f1f1f1;
  background-color: #fefefe;
}

@media screen and (max-width: 63.9375em) {
  table.stack thead {
    display: none;
  }
  table.stack tfoot {
    display: none;
  }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block;
  }
  table.stack td {
    border-top: 0;
  }
}

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto;
}

table.hover thead tr:hover {
  background-color: #f3f3f3;
}

table.hover tfoot tr:hover {
  background-color: #ececec;
}

table.hover tbody tr:hover {
  background-color: #f9f9f9;
}

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #ececec;
}

.table-scroll {
  overflow-x: auto;
}

.table-scroll table {
  width: auto;
}

.tabs {
  margin: 0;
  border: 1px solid #e6e6e6;
  background: #fefefe;
  list-style-type: none;
}

.tabs::before, .tabs::after {
  display: table;
  content: ' ';
}

.tabs::after {
  clear: both;
}

.tabs.vertical > li {
  display: block;
  float: none;
  width: auto;
}

.tabs.simple > li > a {
  padding: 0;
}

.tabs.simple > li > a:hover {
  background: transparent;
}

.tabs.primary {
  background: #1779ba;
}

.tabs.primary > li > a {
  color: #fefefe;
}

.tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
  background: #1673b1;
}

.tabs-title {
  float: left;
}

.tabs-title > a {
  display: block;
  padding: 1rem;
  font-size: 1rem;
  line-height: 1;
  text-align: right;
  border-bottom: 1px solid #333;
}

.tabs-title > a:hover {
  background: #fefefe;
  color: #1468a0;
}

.tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
  font-weight: bold;
}

.tabs-content.vertical {
  border: 1px solid #e6e6e6;
  border-left: 0;
}

.tabs-panel {
  display: none;
  padding: 1rem;
}

.tabs-panel[aria-hidden="false"] {
  display: block;
}

@media only screen and (max-width: 1332px) {
  .titular {
    width: 205px;
  }
}

@media only screen and (max-width: 1250px) {
  .titular {
    width: 175px;
  }
  .unach {
    width: 50%;
    float: left;
    padding-right: 0;
    padding-left: 0;
  }
  div#contador, .redes {
    width: 25%;
    float: left;
    padding-right: 0;
    padding-left: 0;
  }
}

@media only screen and (max-width: 1120px) {
  .titular {
    width: 150px;
  }
}

@media only screen and (max-width: 1023px) {
  table {
    width: 100% !important;
  }
  .top-bar .top-bar-left {
    width: 100% !important;
  }
  ul.submenu li:nth-child(even) {
    float: left;
    margin-right: 0px;
  }
  .slider, .lateral, .bloque-principal, .bloque-lateral, .bloque-secundario {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-bottom: 1.25rem;
  }
}

@media only screen and (max-width: 1023px) and (min-width: 40em) {
  .slider, .lateral, .bloque-principal, .bloque-lateral, .bloque-secundario {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 1023px) {
  /* .bloque-7 .moduletable > h3,.lateral .moduletable > h3,.bloque-lateral .moduletable > h3, .bloque-principal .moduletable > h3,.bloque-secundario .moduletable >h3{
        width: 100%;
    } */
  .moduletable > h3 {
    width: 100%;
  }
  .titular {
    width: 80%;
    padding-left: 10px;
  }
  .unach {
    width: 100%;
    float: left;
    padding-right: 0;
    padding-left: 0;
  }
  .redes, div#contador {
    width: 50%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 1023px) and (min-width: 40em) {
  .redes, div#contador {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  .dir-img {
    display: none !important;
  }
  div.itemToolbar {
    margin-top: -3rem;
    margin-left: 0;
  }
  .persona {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .persona {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  div#contador, .redes, .unach {
    width: 33.33333%;
    float: left;
    padding-right: 0;
    padding-left: 0;
  }
  img#img_ref {
    margin: 0 auto;
    display: block;
  }
  .bloque_investigador {
    width: 100%;
    display: block;
  }
  .owl-carousel .owl-item img {
    height: 300px;
  }
  .datos-ubicacion {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .datos-ubicacion {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  .bloque-secundario-3 .moduletable {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .bloque-secundario-3 .moduletable {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  .bloque-secundario-3, .bloque-secundario-1 .moduletable, .bloque-7 .moduletable {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .bloque-secundario-3, .bloque-secundario-1 .moduletable, .bloque-7 .moduletable {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  .logo-busqueda .logo {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .logo-busqueda .logo {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  .logo-busqueda .buscador-idioma-correo {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .logo-busqueda .buscador-idioma-correo {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  ul.navegacion {
    margin-right: 1.5rem;
  }
  .itemFullText, .itemImageBlock, .articulos_4 {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .itemFullText, .itemImageBlock, .articulos_4 {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  div.itemFullText {
    border-left: none;
  }
  .titulo-item {
    left: 0;
    width: 100%;
  }
  .titulo-item a {
    font-size: 1.5rem;
  }
  ul.mas-titulares li {
    padding-right: 40px;
    display: block;
  }
  .seccion, .lateral, .seccion-centro {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .seccion, .lateral, .seccion-centro {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  .titulo {
    margin-top: 30px;
  }
  .titulo p {
    width: 100%;
    text-align: center;
  }
  img.articulo-imagen, img.act-imagen {
    height: auto;
  }
  .destacado img, img.act-imagen {
    height: auto !important;
    display: block;
    margin: 0 auto;
  }
  .destacado a {
    text-align: center;
    display: block;
  }
  .unach {
    width: 58.33333%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .unach {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  .redes {
    width: 41.66667%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .redes {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  .menu-footer, .logo-footer {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .menu-footer, .logo-footer {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  .owl-theme .owl-dots,
  .owl-theme .owl-nav {
    margin-top: 0px;
  }
  .owl-theme .owl-dots .owl-dot span {
    background: #d4d4d4;
  }
  .articulo_cuatro {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .articulo_cuatro {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  .articulo_cuatro a {
    text-align: center;
    display: block;
    margin-bottom: 20px;
  }
  .articulo_cuatro .bloque-principal .moduletable > h3 {
    width: 70%;
  }
  .barra-lateral, #menu-lateral, .contenido-lateral {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    border-left: none;
  }
}

@media only screen and (max-width: 900px) and (min-width: 40em) {
  .barra-lateral, #menu-lateral, .contenido-lateral {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 900px) {
  .separador {
    display: none;
  }
  ul#contenido-tabs {
    margin-bottom: 30px;
  }
  .bloques {
    margin-bottom: 25px;
  }
}

@media only screen and (max-width: 650px) {
  .owl-carousel .owl-item img {
    height: 200px;
  }
  .articulos_3 {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 650px) and (min-width: 40em) {
  .articulos_3 {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 650px) {
  .iconos, .desplegables {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 650px) and (min-width: 40em) {
  .iconos, .desplegables {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 650px) {
  div.page-header {
    margin-top: 5.5rem;
  }
  .mensaje-bienvenida-rector .mensaje, .mensaje-bienvenida-rector .foto {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 650px) and (min-width: 40em) {
  .mensaje-bienvenida-rector .mensaje, .mensaje-bienvenida-rector .foto {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 650px) {
  div.page-header {
    text-align: center;
  }
  .articulo_tres, .articulo_dos, .articulos_2, .articulos_3 {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 650px) and (min-width: 40em) {
  .articulo_tres, .articulo_dos, .articulos_2, .articulos_3 {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 650px) {
  img.articulo-imagen, .efemeride img {
    display: block;
    margin: 0 auto;
    padding-bottom: 5px;
  }
  .articulo_tres a, .articulo_dos a {
    text-align: center;
    display: block;
    margin-bottom: 20px;
  }
  .titulo-evento {
    padding-left: 10px;
  }
  .fecha-evento {
    margin-right: 0;
  }
  .unach, .redes {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 650px) and (min-width: 40em) {
  .unach, .redes {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media only screen and (max-width: 585px) {
  .titulo-evento {
    width: 70%;
  }
  .logo-busqueda .buscador-idioma-correo {
    text-align: center;
    margin-top: 15px;
    padding-bottom: 20px;
  }
  .redes, div#contador {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media only screen and (max-width: 585px) and (min-width: 40em) {
  .redes, div#contador {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

/*

@include foundation-badge;


@include foundation-callout;
@include foundation-card;
@include foundation-close-button;

@include foundation-menu-icon;
@include foundation-drilldown-menu;
@include foundation-dropdown;
@include foundation-dropdown-menu;
@include foundation-responsive-embed;
@include foundation-label;
@include foundation-media-object;
@include foundation-off-canvas;
@include foundation-orbit;

@include foundation-progress-bar;
// @include foundation-progress-element;
// @include foundation-meter-element;
@include foundation-slider;
@include foundation-sticky;

@include foundation-switch;

@include foundation-tabs;
@include foundation-thumbnail;
@include foundation-title-bar;
@include foundation-tooltip;
@include foundation-top-bar;
@include foundation-visibility-classes;
@include foundation-float-classes;
// @include foundation-flex-classes;

@include motion-ui-transitions;
@include motion-ui-animations;
*/

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3VuZGF0aW9uLnNjc3MiLCJfbGF5b3V0LnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19zaXplLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jb2x1bW4uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiX3RyYW5zaWNpb25lcy5zY3NzIiwiX3NsaWRlci5zY3NzIiwiX2pvb21sYS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIl9tZW51LWxhdGVyYWwuc2NzcyIsIl9tZW51LWRlZmF1bHQuc2NzcyIsIl9mb250cy5zY3NzIiwiX2Jsb3F1ZXMuc2NzcyIsIl9rMi5zY3NzIiwiX2NvbnRhZG9yLXRyYWR1Y3Rvci5zY3NzIiwiX2ludmVzdGlnYWRvcmVzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmFyaWFibGVzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmVydGljYWwtcmh5dGhtLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b3AtYmFyLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi1tZW51LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LWljb24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLW1lbnUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFicy5zY3NzIiwiX21lZGlhcXVlcnlzLnNjc3MiLCJhcHAuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7Ozs7O0VETUU7QUVORjtFQUNFLHdCQUF3QjtFQUN4Qix5QkFBeUI7QUZRM0I7O0FFTkE7RUFDRTtJQUNFLFVBQVU7SUFDVixnQ0FBZ0M7RUZTbEM7RUVOQTtJQUNFLFVBQVU7SUFDVixlQUFlO0VGUWpCO0FBQ0Y7O0FFTEE7RUFDRSx3QkFBd0I7QUZRMUI7O0FFTEE7RUFFSSxhQUFhO0FGT2pCOztBRUxBO0VBQ0kseUJDeUJXO0FIakJmOztBRU5BO0VFc0VFLGdCQ1R1RDtFRDFCckQsa0JBQWtCO0VBQ2xCLGlCQUFpQjtBSnhCckI7O0FNMEdFO0VBRUUsY0FBYztFQUNkLFlBQVk7QU54R2hCOztBTWdIRTtFQUNFLFdBQVc7QU43R2Y7O0FFckJBO0VLYkUsZ0JDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELGdCTHVFUztFS3RFVCxlTHNFUztFSDVESix1QkFBdUI7QUZ1QmhDOztBRTdCQTtFS2JFLGdCQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0VSbUIvQixjQ1VRO0VEVFIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBRnlCMUI7O0FXeUZNO0VUaElOO0lRTEksd0JBRnFDO0lBR3JDLHVCQUhxQztFVm9EdkM7QUFDRjs7QUU3QkE7Ozs7Ozs7Ozs7Ozs7O0dGNkNHO0FFN0JIO0VBQ0ksY0NWUztBSHlDYjs7QUU1QkE7RUFFSSxlQUFlO0VBQ2YsZUFBZTtBRjhCbkI7O0FFNUJBO0VBRUksa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0VBQ1oseUJDekJjO0VEMEJkLFNBQVM7RUFFVCxXQUFXO0FGNkJmOztBRXhCQTtFQUNJLFlBQVc7QUYyQmY7O0FFekJBO0VBQ0ksa0JBQWtCO0VBQ2xCLGNDdENjO0VEdUNkLGlCQUFpQjtBRjRCckI7O0FFekJBO0VBQ0ksV0N4Q087RUM2Q1QsZ0JDVHVEO0VEMUJyRCxrQkFBa0I7RUFDbEIsaUJBQWlCO0FKNERyQjs7QU1zQkU7RUFFRSxjQUFjO0VBQ2QsWUFBWTtBTnBCaEI7O0FNNEJFO0VBQ0UsV0FBVztBTnpCZjs7QUU3QkE7RUt6RkUsZ0JDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELGdCTHVFUztFS3RFVCxlTHNFUztFSFlULFlBQVk7QUZtQ2hCOztBRWhDQTtFSzlGRSxnQkNlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsZ0JMdUVTO0VLdEVULGVMc0VTO0FMc0RiOztBRXBDQTtFRWRFLGdCQ1R1RDtFRDFCckQsa0JBQWtCO0VBQ2xCLGlCQUFpQjtBSjBGckI7O0FNUkU7RUFFRSxjQUFjO0VBQ2QsWUFBWTtBTlVoQjs7QU1GRTtFQUNFLFdBQVc7QU5LZjs7QUVoREE7RUtwR0UsZ0JDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELGdCTHVFUztFS3RFVCxlTHNFUztBTDRFYjs7QUVuREE7RUt4R0UsZ0JDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELGdCTHVFUztFS3RFVCxlTHNFUztBTG1GYjs7QUVuREE7RUFDSSxrQkFBa0I7QUZzRHRCOztBRXBEQTtFQUNJLG1CQUFtQjtBRnVEdkI7O0FFbkRBO0VBRUksZUFBZTtFQUNmLGVBQWU7QUZxRG5COztBRW5EQTtFQUVJLHlCQzNGYztBSGdKbEI7O0FFdkRBO0VFekNFLGdCQ1R1RDtFRDFCckQsa0JBQWtCO0VBQ2xCLGlCQUFpQjtBSndJckI7O0FNdERFO0VBRUUsY0FBYztFQUNkLFlBQVk7QU53RGhCOztBTWhERTtFQUNFLFdBQVc7QU5tRGY7O0FFdEVBO0VBUU8sY0MvRk07RURnR04seUJBQXlCO0FGa0VoQzs7QUU5REE7RUFDSSxxQkFBcUI7RUFDckIsY0N0R1M7QUh1S2I7O0FFOURBO0VBQ0MsZUFBZTtFQUNmLHlCQzNHWTtFRDRHWixrQkFBa0I7RUFDbEIsY0M3R1k7RUQ4R1osV0FBVztBRmlFWjs7QUU5REE7RUFDSSxjQ25IVztBSG9MZjs7QUUvREE7RUFDSSxjQ3ZIYztBSHlMbEI7O0FFaEVBO0VLNUpFLGdCQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0VSd0pyQyxZQUFZO0FGc0VoQjs7QVd2Rk07RVRlTjtJUXBKSSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWb092QztBQUNGOztBRXhFQTtFQUNJLHFCQUFxQjtFQUNyQixhQUFhO0FGMkVqQjs7QUV2RUE7RUFFSSx5QkN4SWM7RUR5SWQsaUNBQWlDO0VBQ2pDLGNDeElTO0VEeUlULGlCQUFpQjtBRnlFckI7O0FFOUVBO0VBUVEsY0M1SUs7QUhzTmI7O0FFdkVBO0VLcExFLFVDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELGdCTHVFUztFS3RFVCxlTHNFUztFSHdHYixtQkFBbUI7QUY0RW5COztBRTFFQTtFS3pMRSxVQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0FWb1F6Qzs7QVc3SE07RVQ0Q047SVFqTEksd0JBRnFDO0lBR3JDLHVCQUhxQztFVjBRdkM7QUFDRjs7QUVuRkE7RUFDSSxjQUFjO0FGc0ZsQjs7QUV2RkE7RUFHUSxxQkFBcUI7RUFDckIsbUJBQW1CO0FGd0YzQjs7QUU1RkE7RUFPUSxjQ2hLSztBSHlQYjs7QUVoR0E7RUFVWSwwQkFBMEI7QUYwRnRDOztBRXBGQTtFSzlNRSxnQkNlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsZ0JMdUVTO0VLdEVULGVMc0VTO0VIaUliLGdCQUFnQjtBRjBGaEI7O0FFeEZBO0VLbE5FLGdCQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCxnQkx1RVM7RUt0RVQsZUxzRVM7QUxrT2I7O0FF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c0JBO0VBQWMsYUFBWTtBZDhzQjFCOztBYzVzQkE7RVB2REUsV0NlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsZ0JMdUVTO0VLdEVULGVMc0VTO0VTdEJULGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osaUJBQWlCO0Fka3RCckI7O0FjN3NCQTtFUGhFRSxXQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0FWOHdCekM7O0FXdm9CTTtFRzdFTjtJSnhESSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWb3hCdkM7QUFDRjs7QWN2dEJBO0VQcEVFLFVDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELHVCQUZxQztFQUdyQyxzQkFIcUM7RUlnRXJDLGtCQUFrQjtBZDZ0QnRCOztBV3RwQk07RUd6RU47SUo1REksd0JBRnFDO0lBR3JDLHVCQUhxQztFVm15QnZDO0FBQ0Y7O0FjbHVCQTtFUHhFRSxVQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0FWMnlCekM7O0FXcHFCTTtFR3JFTjtJSmhFSSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWaXpCdkM7QUFDRjs7QWM1dUJBO0VBQ0ksYUFBYTtFQUNiLGtCQUFrQjtBZCt1QnRCOztBYzV1QkE7RUFDSSxnQ1gvQ2M7QUg4eEJsQjs7QWM3dUJBO0VBQ0kseUJYbERjO0VXbURkLGNYakRTO0VXa0RULFlBQVk7QWRndkJoQjs7QWM5dUJBO0VBQ0ksZ0JBQWdCO0FkaXZCcEI7O0FjOXVCQTtFQUVJLGFBQWE7QWRndkJqQjs7QWM5dUJDO0VBQ0Esb0JBQW9CO0FkaXZCckI7O0FjOXVCQTtFQUVJLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtFQUNaLGFBQWE7RUFDYix5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtBZGd2QjdCOztBYzV1QkE7RUFDSSxlQUFlO0VBQ2YsV1g3RU87RVc4RVAsb0JBQW9CO0FkK3VCeEI7O0FjN3VCQTtFQUNJLFdYakZPO0FIaTBCWDs7QWM3dUJBO0VQMUhFLFdDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELHVCQUZxQztFQUdyQyxzQkFIcUM7RUlzSHBDLG1CQUFtQjtBZG12QnhCOztBV2x1Qk07RUduQk47SUpsSEksd0JBRnFDO0lBR3JDLHVCQUhxQztFVisyQnZDO0FBQ0Y7O0FjNXZCQTtFQUlTLGlCQUFpQjtBZDR2QjFCOztBY3h2QkE7RVBsSUUsZ0JDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELHVCQUZxQztFQUdyQyxzQkFIcUM7QVYyM0J6Qzs7QVdwdkJNO0VHWE47SUoxSEksd0JBRnFDO0lBR3JDLHVCQUhxQztFVmk0QnZDO0FBQ0Y7O0FjbndCQTtFUHJJRSxnQkNlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsdUJBRnFDO0VBR3JDLHNCQUhxQztBVnk0QnpDOztBV2x3Qk07RUdSTjtJSjdISSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWKzRCdkM7QUFDRjs7QWM3d0JBO0VBQ0ksWUFBWTtBZGd4QmhCOztBYzl3QkE7RUFFSSxnQ1gzR2M7QUgyM0JsQjs7QWM3d0JBO0VWOURFLGdCQ1R1RDtFRDFCckQsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFVWtHakIsZ0JBQWdCO0Fka3hCcEI7O0FNbHlCRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0FOb3lCaEI7O0FNNXhCRTtFQUNFLFdBQVc7QU4reEJmOztBY3Z4QkE7RUN0SEUsMEJaNkxvQztFWTVMcEMsZ0JBQWdCO0VEd0hkLFlBQVk7QWQweEJoQjs7QU1qekJFO0VBRUUsY0FBYztFQUNkLFlBQVk7QU5tekJoQjs7QU0zeUJFO0VBQ0UsV0FBVztBTjh5QmY7O0FleDVCRTtFQUNFLFdBQU87RUFFUCxvQlZrQ3FEO0VVakNyRCxjWllXO0VZWFgsZUFBZTtFQUdiLHlCQUF5QjtBZnc1Qi9COztBZWo1Qk07RUFDRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLGlCWjRLeUI7RVkzS3pCLFVBQVU7RUFDVixZQVA2QztFQVE3QyxjWlBhO0FIMjVCckI7O0FlMzRCRTtFQUNFLGNaeEJjO0FIczZCbEI7O0FlNTRCSTtFQUNFLDBCQUEwQjtBZis0QmhD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Z0I7RUFFaEIsZ0VBQUE7RUFDQSx5QkFBQTtFQUNBLGlCQUFpQjtFQUVqQiwwREFBQTtFQUNBLHFCQUFBO0VBRUEsNkNBQUE7RUFDQSxtQ0FBbUM7RUFDbkMsa0NBQWtDO0VBRWxDLDRCQUFBO0VBQ0EsdURBQUE7QWxCdXRDRjs7QWtCcHRDQTtFQUNJLGFBQWE7QWxCdXRDakI7O0FrQnJ0Q0E7RUFDSSxlQUFlO0VBQ2YsY2YxQ2M7RWUyQ2QscUJBQXFCO0FsQnd0Q3pCOztBbUJuekNBO0VaYUUsVUNlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsZ0JMdUVTO0VLdEVULGVMc0VTO0FMOHRDYjs7QW1CdnpDQTtFWlVFLFVDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELGdCTHVFUztFS3RFVCxlTHNFUztBTHF1Q2I7O0FtQjN6Q0E7RWYwRkUsZ0JDVHVEO0VEMUJyRCxrQkFBa0I7RUFDbEIsaUJBQWlCO0VldERqQixxQmQrRXFEO0FMaXZDekQ7O0FNeHJDRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0FOMHJDaEI7O0FNbHJDRTtFQUNFLFdBQVc7QU5xckNmOztBbUJ2MENBO0VaR0UsVUNlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsZ0JMdUVTO0VLdEVULGVMc0VTO0FMNHZDYjs7QW1COTBDQTtFQUlFLGtCQUFpQjtFQUNqQixhQUFZO0FuQjgwQ2Q7O0FtQjMwQ0E7RVpMRSxVQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCxnQkx1RVM7RUt0RVQsZUxzRVM7RWN4RVQsd0JBQXdCO0FuQmkxQzVCOztBbUI5MENBO0VaVkUsZ0JDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELGdCTHVFUztFS3RFVCxlTHNFUztFY2xFVCx1QkFBdUI7RUFDdkIsb0JBQW9CO0FuQm0xQ3hCOztBbUJoMUNBO0VaakJFLGdCQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0FWazJDekM7O0FXM3RDTTtFUTVITjtJVFRJLHdCQUZxQztJQUdyQyx1QkFIcUM7RVZ3MkN2QztBQUNGOztBbUIxMUNBO0VBQ0ksdUJBQXVCO0FuQjYxQzNCOztBbUIzMUNBO0VaeEJFLFVDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELGdCTHVFUztFS3RFVCxlTHNFUztFY3JEVCx1QkFBdUI7QW5CaTJDM0I7O0FtQi8xQ0E7RVo1QkUsV0NlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsZ0JMdUVTO0VLdEVULGVMc0VTO0FMbXpDYjs7QW1CajJDQTtFWmpDRSxXQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0VTNkJyQyxtQkFBbUI7RUFDbkIsdUJBQXVCO0FuQnUyQzNCOztBVzl2Q007RVE1R047SVR6Qkksd0JBRnFDO0lBR3JDLHVCQUhxQztFVjI0Q3ZDO0FBQ0Y7O0FtQjUyQ0E7RVp0Q0UsVUNlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsZ0JMdUVTO0VLdEVULGVMc0VTO0VjdkNSLHVCQUF1QjtBbkJrM0M1Qjs7QW1CLzJDQTtFWjNDRSxnQkNlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsZ0JMdUVTO0VLdEVULGVMc0VTO0VjbENSLHVCQUF1QjtBbkJxM0M1Qjs7QW1CbDNDQTtFWmhERSxVQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCxnQkx1RVM7RUt0RVQsZUxzRVM7RWM3QlIsdUJBQXVCO0FuQnczQzVCOztBbUJwM0NBO0VadERFLFdDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELHVCQUZxQztFQUdyQyxzQkFIcUM7QVYyNkN6Qzs7QVdweUNNO0VRdkZOO0lUOUNJLHdCQUZxQztJQUdyQyx1QkFIcUM7RVZpN0N2QztBQUNGOztBbUI1M0NBO0VBQ0kscUJkYXFEO0FMazNDekQ7O0FtQjczQ0E7RUFDSSx3QmRVcUQ7QUxzM0N6RDs7QW1CMzNDQTtFQUNJLGtCQUFrQjtBbkI4M0N0Qjs7QW1CNTNDQTtFQUVLLG1CQUFrQjtBbkI4M0N2Qjs7QW1CaDRDQTtFQUlJLGNoQnRCVztFZ0J1QlgseUJBQXlCO0VBQ3pCLGdCQUFnQjtFQUNoQix5QmhCNUNjO0VnQjZDZCxnQ2hCNUNXO0VnQjZDWCxVQUFVO0VBQ1Ysa0JBQWtCO0FuQmc0Q3RCOztBbUI3M0NBOzs7OztFQU1LLGNoQnJDVTtFZ0JzQ1gseUJBQXlCO0VBQ3pCLG1CZG5CcUQ7RWNvQnJELHlCaEIzRGM7RWdCNERkLGdDaEIzRFc7RWdCNERYLGtCQUFrQjtFQUNsQixlZHZCcUQ7QUxzNUN6RDs7QW1CejNDQTs7Ozs7RW5CZzRDRTtBbUIxM0NGO0VBQ0ksWUFDSjtBbkIyM0NBOztBbUIxM0NBOztFbkI4M0NFO0FtQjEzQ0Y7RUFFSSxnQkFBZ0I7RUFDaEIsY0FBYTtBbkIyM0NqQjs7QW1COTNDQTtFQUtRLG9CQUFvQjtBbkI2M0M1Qjs7QW1CdjNDQTtFQUNJLHFCQUFxQjtFQUNyQixXQUFXO0VBQ1gseUJoQi9GYztFZ0JnR2QsY2hCOUZTO0VnQitGVCxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGVBQWM7RUFDZCx5QkFBeUI7RUFDekIsbUJBQW1CO0FuQjAzQ3ZCOztBbUJuNENBO0VBYVEsZUFBZTtBbkIwM0N2Qjs7QW1CdjRDQTtFQWlCRSxnQkFBZTtBbkIwM0NqQjs7QW1CdjNDQTtFQUVDLFlBQVk7RUFDWixxQkFBcUI7RUFDckIsbUJBQW1CO0FuQnkzQ3BCOztBbUJ0M0NBO0VBQ0MsWUFBWTtFQUNaLHFCQUFxQjtFQUNyQixtQkFBbUI7RUFDbkIsZUFBYztBbkJ5M0NmOztBbUJyM0NBO0VabEtFLFVDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELGdCTHVFUztFS3RFVCxlTHNFUztBTCs4Q2I7O0FtQngzQ0E7RVp0S0UsVUNlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsZ0JMdUVTO0VLdEVULGVMc0VTO0FMczlDYjs7QW1CNTNDQTtFWnpLRSxVQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCxnQkx1RVM7RUt0RVQsZUxzRVM7QUw2OUNiOztBbUJoNENBO0VBRUksbUJBQW1CO0FuQms0Q3ZCOztBbUJoNENBO0VaaExFLGdCQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCxnQkx1RVM7RUt0RVQsZUxzRVM7RWNtR1QsbUJBQW1CO0FuQnM0Q3ZCOztBbUJwNENBO0VacExFLFVDZXFEO0VBK0JyRCxXQ3lDeUQ7RUMvRXZELGdCTHVFUztFS3RFVCxlTHNFUztBTGcvQ2I7O0FtQnY0Q0E7RUFDSSxrQkFBa0I7QW5CMDRDdEI7O0FtQnY0Q0E7RVo1TEUsVUNlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsdUJBRnFDO0VBR3JDLHNCQUhxQztBVm9rRHpDOztBVzc3Q007RVErQ047SVRwTEksd0JBRnFDO0lBR3JDLHVCQUhxQztFVjBrRHZDO0FBQ0Y7O0FtQi80Q0E7RUFDSSxnQkFBZ0I7QW5CazVDcEI7O0FtQi80Q0E7RVp0TUUsVUNlcUQ7RUErQnJELFdDeUN5RDtFQy9FdkQsdUJBRnFDO0VBR3JDLHNCQUhxQztBVnNsRHpDOztBVy84Q007RVF5RE47SVQ5TEksd0JBRnFDO0lBR3JDLHVCQUhxQztFVjRsRHZDO0FBQ0Y7O0FtQno1Q0E7RUFDSSxjQUFjO0FuQjQ1Q2xCOztBbUJ6NUNBO0VBQ0ksY2hCekpXO0FIcWpEZjs7QW1CNzVDQTtFQUlRLHlCaEIvS1U7QUg0a0RsQjs7QW1CMTVDQTtFWnJORSxVQ2VxRDtFQStCckQsV0N5Q3lEO0VDL0V2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0FWZ25EekM7O0FXeitDTTtFUXdFTjtJVDdNSSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWc25EdkM7QUFDRjs7QW1CeDZDQTtFQUtJLG1CQUFtQjtBbkJ1NkN2Qjs7QW1CajZDQTtFQUNJLGNoQjNLVztBSCtrRGY7O0FtQmo2Q0E7RUFDQyxhQUFZO0FuQm82Q2I7O0FtQmo2Q0E7RUFDSSxnQkFBZ0I7QW5CbzZDcEI7O0FvQjNwREE7Ozs7OztFcEJtcURFO0FvQjNwREY7Ozs7Q3BCZ3FEQztBb0J4cEREOztpRnBCMnBEaUY7QW9CdnBEakYsNkJBQUE7QUFDQTs7RUFDUyxVQUFTO0FwQjBwRGxCOztBb0J6cERBO0VBQUssWUFBVztBcEI2cERoQjs7QW9CM3BEQSxnQ0FBQTtBQUNBO0VBQWMsbUJBQWtCO0FwQitwRGhDOztBb0I5cERBO0VBQStCLGFBQVk7QXBCa3FEM0M7O0FvQmxxRDhDLG1C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QWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHdCQUF3QjtBdkIreEg5Qjs7QXVCNXhISTtFQUNFLGVBQWU7QXZCK3hIckI7O0F1QjV4SEk7RUFDRSxXQUFXO0F2Qit4SGpCOztBdUIxeEhJO21GdkI2eEgrRTtBdUIxeEgvRTs7TXZCNnhIRTtBdUJ6eEhGOztFQUVFLHFCQUFxQjtBdkIyeEgzQjs7QXVCeHhISTs7TXZCNHhIRTtBdUJ4eEhGO0VBQ0UsYUFBYTtFQUNiLFNBQVM7QXZCMHhIZjs7QXVCdnhISTs7TXZCMnhIRTtBb0Ivb0lOO0VHeVhNLGtCQUFrQjtBdkJ5eEh4Qjs7QXVCdHhISTs7TXZCMHhIRTtBdUJ0eEhGO0VBQ0UsZ0JBQWdCO0F2Qnd4SHRCOztBdUJueEhJO21GdkJzeEgrRTtBdUJueEgvRTs7O012QnV4SEU7QXVCbHhIRjs7Ozs7RUFLRSx1QkN6WnVCO0VEeVpTLE1BQUE7RUFDaEMsZUFBZTtFQUFFLE1BQUE7RUFLZixpQkFBaUI7RUFBRSxNQUFBO0VBRXJCLFNBQVM7RUFBRSxNQUFBO0F2Qm14SGpCOztBdUJoeEhJOztNdkJveEhFO0F1Qmh4SEY7RUFDRSxpQkFBaUI7QXZCa3hIdkI7O0F1Qi93SEk7OztNdkJveEhFO0F1Qi93SEY7O0VBQ1MsTUFBQTtFQUNQLG9CQUFvQjtBdkJreEgxQjs7QXVCL3dISTs7OztNdkJxeEhFO0F1Qi93SEY7Ozs7RUFJRSwwQkFBMEI7RUFBRSxNQUFBO0F2Qmt4SGxDOztBdUIvd0hJOzs7O0VBS0U7O1F2Qmt4SEU7RXVCendIRjs7UXZCNHdIRTtBQUNSOztBdUIzeEhJOzs7O0VBVUksa0JBQWtCO0VBQ2xCLFVBQVU7QXZCd3hIbEI7O0F1Qm55SEk7Ozs7RUFtQkksOEJBQThCO0F2QnV4SHRDOztBdUJueEhJOztNdkJ1eEhFO0F1Qm54SEY7RUFDRSxpQkFBaUI7QXZCcXhIdkI7O0F1Qmx4SEk7OztNdkJ1eEhFO0FBQ047O0V1Qmp4SE0sc0JBQXNCO0VBQUUsTUFBQTtFQUN4QixVQUFVO0VBQUUsTUFBQTtBdkJzeEhsQjs7QXVCbnhISTs7TXZCdXhIRTtBQUNOOztFdUJseEhNLFlBQVk7QXZCcXhIbEI7O0F1Qmx4SEk7OztNdkJ1eEhFO0FBQ047RXVCbHhITSw2QkFBNkI7RUFBRSxNQUFBO0VBQy9CLG9CQUFvQjtFQUFFLE1BQUE7RUFFdEI7O1F2QnN4SEU7QUFDUjs7QUFFQTtFdUJueEhRLHdCQUF3QjtBdkJxeEhoQzs7QXVCanhISTs7O012QnN4SEU7QXVCanhIRjtFQUNFLDBCQUEwQjtFQUFFLE1BQUE7RUFDNUIsYUFBYTtFQUFFLE1BQUE7QXZCcXhIckI7O0F1Qmx4SEk7O012QnN4SEU7QXVCbHhIRjtFQUNFLHlCQUF5QjtFQUN6QixhQUFhO0VBQ2IsOEJBQThCO0F2Qm94SHBDOztBdUJqeEhJOzs7OztNdkJ3eEhFO0F1Qmp4SEY7RUFDRSxzQkFBc0I7RUFBRSxNQUFBO0VBQ3hCLGNBQWM7RUFBRSxNQUFBO0VBQ2hCLGVBQWU7RUFBRSxNQUFBO0VBQ2pCLFVBQVU7RUFBRSxNQUFBO0VBQ1osY0FBYztFQUFFLE1BQUE7RUFDaEIsbUJBQW1CO0VBQUUsTUFBQTtBdkJ5eEgzQjs7QXVCdHhISTs7O012QjJ4SEU7QXVCdHhIRjtFQUNFLHFCQUFxQjtFQUFFLE1BQUE7RUFDdkIsd0JBQXdCO0VBQUUsTUFBQTtBdkIweEhoQzs7QXVCdnhISTs7TXZCMnhIRTtBdUJ2eEhGO0VBQ0UsY0FBYztBdkJ5eEhwQjs7QXVCcHhISTttRnZCdXhIK0U7QXVCcHhIL0U7O012QnV4SEU7QXVCbnhIRjtFQUNFLGNBQWM7QXZCcXhIcEI7O0F1Qmx4SEk7O012QnN4SEU7QXVCbHhIRjtFQUNFLGtCQUFrQjtBdkJveEh4Qjs7QXVCanhISTs7TXZCcXhIRTtBdUJqeEhGO0VBQ0UsY0FBYztBdkJteEhwQjs7QXVCMXZISTttRnZCNnZIK0U7QXVCMXZIL0U7O012QjZ2SEU7QXVCenZIRjtFQUNFLHFCQUFxQjtBdkIydkgzQjs7QXVCeHZISTs7TXZCNHZIRTtBdUJ4dkhGO0VBQ0UsYUFBYTtBdkIwdkhuQjs7QXVCcnZISTttRnZCd3ZIK0U7QXVCcnZIL0U7O012Qnd2SEU7QUFDTjtFdUJwdkhNLGFBQWE7QXZCc3ZIbkI7O0FTbnlJRTtFQUNFLHdFQUFnRDtBVHN5SXBEOztBdUJoMklJO0VkOERBLHNCQUFzQjtFQUN0QixlTm5FbUI7QUh5Mkl2Qjs7QVNseUlFOzs7RUFHRSxtQkFBbUI7QVRxeUl2Qjs7QXVCbjFJSTtFZG1EQSxTQUFTO0VBQ1QsVUFBVTtFQUVWLG1CTnBFVztFTXNFWCw4Q05uRWdEO0VNb0VoRCxtQk5oRXlCO0VNaUV6QixnQk5wRm1CO0VNcUZuQixjTjFFVztFTTZFVCxtQ0FBbUM7RUFDbkMsa0NBQWtDO0FUZ3lJeEM7O0FvQjE1SUE7RVhnSUkscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUd0QixlQUFlO0VBQ2YsWUFBWTtFQUNaLCtCQUErQjtBVDR4SW5DOztBdUI3MkhJO0VkMWFBLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsZ0JOdkZhO0FIazNJakI7O0FTdnhJRTtFQUNFLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsZ0JOOUZhO0FIdzNJakI7O0FTcnhJRTs7Ozs7O0VBS0ksMEJBQTBCO0FUeXhJaEM7O0F1QnJoSUk7RWQ1UEEsVUFBVTtFQUVWLHdCQUFnQjtLQUFoQixxQkFBZ0I7VUFBaEIsZ0JBQWdCO0VBQ2hCLFNBQVM7RUFDVCxnQk5wSGE7RU1xSGIsdUJBQXVCO0VBRXZCLGNBQWM7QVRteElsQjs7QUFFQTtFTXZ5SUksVUFBVTtBTnl5SWQ7O0F1Qmp1SUk7RWRqREEsY0FBYztBVHN4SWxCOztBU2x4SUU7RUFDRSx5QkFBeUI7QVRxeEk3Qjs7QVNseElFO0VBQ0Usd0JBQXdCO0FUcXhJNUI7O0EwQnh1SUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQkUsU0FBUztFQUNULFVBQVU7QTFCMnVJZDs7QTBCdnVJRTtFQUdFLGtCQUFrQjtFQUNsQixnQnZCL0lzQjtFdUJnSnRCLGtDdkI5SXlDO0FIczNJN0M7O0EwQnB1SUU7O0VBRUUsa0JBQWtCO0VBQ2xCLG9CQUFvQjtBMUJ1dUl4Qjs7QTBCbnVJRTs7RUFFRSxpQnZCN05xQjtFdUI4TnJCLG9CQUFvQjtBMUJzdUl4Qjs7QXVCcnJJSTtFRzVDQSxjdkJyS2lCO0V1QnNLakIsb0JBQW9CO0ExQnF1SXhCOztBMEJqdUlFOzs7Ozs7RUFNRSw4Q3ZCblBnRDtFdUJvUGhELGtCdkJ6TXNCO0V1QjBNdEIsbUJ2QmpQeUI7RXVCa1B6QixjdkJ6TWtCO0V1QjBNbEIsa0N2QnJMc0M7QUh5NUkxQzs7QTBCOXVJRTs7Ozs7O0VBYUksY0FBYztFQUNkLGN2QmpRZTtBSDIrSXJCOztBdUJwOElJO0VHdU9RLGlCckJ2UDZDO0VxQm1RN0MsZ0J2QnRPVztFdUI4T1gsYUFBYTtFQU9iLHFCdkJwUGlCO0FINjdJN0I7O0EwQnh1SVE7RUFJSSxrQnJCdlA2QztFcUJtUTdDLGdCdkJ0T1c7RXVCOE9YLGFBQWE7RUFPYixxQnZCcFBpQjtBSG84STdCOztBMEIvdUlRO0VBSUksb0JyQnZQNkM7RXFCbVE3QyxnQnZCdE9XO0V1QjhPWCxhQUFhO0VBT2IscUJ2QnBQaUI7QUgyOEk3Qjs7QTBCdHZJUTtFQUlJLG1CckJ2UDZDO0VxQm1RN0MsZ0J2QnRPVztFdUI4T1gsYUFBYTtFQU9iLHFCdkJwUGlCO0FIazlJN0I7O0EwQjd2SVE7RUFJSSxvQnJCdlA2QztFcUJtUTdDLGdCdkJ0T1c7RXVCOE9YLGFBQWE7RUFPYixxQnZCcFBpQjtBSHk5STdCOztBMEJwd0lRO0VBSUksZXJCdlA2QztFcUJtUTdDLGdCdkJ0T1c7RXVCOE9YLGFBQWE7RUFPYixxQnZCcFBpQjtBSGcrSTdCOztBVzM3SU07RVluREY7SUd1T1EsbUJyQnZQNkM7RUxtZ0p2RDtFMEJoeElNO0lBSUksbUJyQnZQNkM7RUxzZ0p2RDtFMEJueElNO0lBSUksb0JyQnZQNkM7RUx5Z0p2RDtFMEJ0eElNO0lBSUksa0JyQnZQNkM7RUw0Z0p2RDtFMEJ6eElNO0lBSUksb0JyQnZQNkM7RUwrZ0p2RDtFMEI1eElNO0lBSUksbUJyQnZQNkM7RUxraEp2RDtBQUNGOztBdUJsMklJO0VHMEdBLG9CQUFvQjtFQUNwQixjdkIxVGM7RXVCMlRkLHFCdkI5TnlCO0V1QmdPekIsZUFBZTtBMUIydkluQjs7QTBCaHdJRTtFQVNJLGN2QnJPMkQ7QUhnK0lqRTs7QTBCcHdJRTtFQWdCSSxTQUFTO0ExQnd2SWY7O0F1Qjk1SUk7RUc0S0EsV0FBVztFQUVYLGdCckJsVHFEO0VxQm1UckQsU0FBUztFQUNULG9CdkJqUHlCO0V1Qm1QekIsYUFBYTtFQUNiLGVBQWU7RUFDZixnQ3ZCL1VpQjtFdUJnVmpCLGNBQWM7QTFCb3ZJbEI7O0EwQmh2SUU7OztFQUdFLG1CdkIzUTBCO0V1QjRRMUIsNEJ2QjFQeUI7RXVCMlB6QixnQnZCOVFzQjtBSGlnSjFCOztBMEIvdUlFO0VBQ0Usa0JBQWtCO0ExQmt2SXRCOztBMEI5dUlFO0VBQ0Usb0J2QnBRc0I7RXVCcVF0QixxQnZCdlFrQjtBSHcvSXRCOztBMEI3dUlFO0VBQ0Usb0J2QjFRc0I7QUgwL0kxQjs7QTBCNXVJRTtFQUVJLG9CdkIvUTJCO0V1QmdSM0IsZ0JBQWdCO0ExQjh1SXRCOztBMEJ6dUlFO0VBQ0UsbUJ2QnJSeUI7QUhpZ0o3Qjs7QTBCN3VJRTtFQUlJLHFCdkJ0UjhCO0V1QnVSOUIsaUJ2Qi9XbUI7QUg0bEp6Qjs7QTBCeHVJRTtFQUNFLGdCdkJwVDBCO0V1QnFUMUIsc0NyQjFXcUQ7RXFCMldyRCw4QnZCbFlpQjtBSDZtSnJCOztBMEI5dUlFO0VBTUksZ0J2QjFUb0I7RXVCMlRwQixjdkJyWWE7QUhpbkpuQjs7QTBCdnVJRTtFQUNFLGNBQWM7RUFDZCxvQnJCdFhxRDtFcUJ1WHJELGN2QjdZZTtBSHVuSm5COztBMEI3dUlFO0VBTUksYXZCeFNnQjtBSG1oSnRCOztBMEJ0dUlFO0VBQ0UsaUN2QnJaVztFdUJzWlgsY3ZCdFpXO0V1QnVaWCxZQUFZO0ExQnl1SWhCOztBdUJyL0lJO0VHaVJBLFNBQVM7QTFCd3VJYjs7QTBCcHVJRTtFQUNFLHFDckI1WXFEO0VxQjhZckQseUJ2QnJhaUI7RXVCc2FqQix5QnZCdmFnQjtFdUJ5YWhCLDREdkJ0WG1FO0V1QnVYbkUsbUJ2Qi9aeUI7RXVCZ2F6QixjdkJ4YVc7QUg2b0pmOztBMEJqdUlFO0VBQ0UsU0FBUztFQUNULDJCckJwWlM7RXFCc1pULHlCdkJuYmdCO0V1QnFiaEIsNER2QmxZbUU7RXVCbVluRSxjdkJuYlc7QUhxcEpmOztBMkJ6cUpFO0VBQ0Usa0J4QjBJeUI7RXdCekl6QixxQnhCMEk0QjtFd0J4STVCLG1CeEJ3QnlCO0V3QnZCekIsZ0J4Qm1Jc0I7RXdCbEl0QixjeEJhZTtBSDhwSm5COztBMkJ2cUpFO0VBQ0UsZXhCMkhxQztFd0IxSHJDLGdCeEIySGlCO0FIK2lKckI7O0EyQnRxSkU7RUFDRSxpQnhCNEhtQjtFd0IzSG5CLGNBQWM7QTNCeXFKbEI7O0EyQnZxSkk7RUFDRSxpQkFBaUI7QTNCMHFKdkI7O0EyQnJxSkU7RUFDRSxjQUFnQztFQUNoQyxnQkFBZ0I7QTNCd3FKcEI7O0E0QnJ1SlU7RUFDRSxnQkFSZTtBNUJndkozQjs7QTRCenVKVTtFQUNFLGlCQVJzQjtBNUJvdkpsQzs7QTRCN3VKVTtFQUNFLGtCQVI4QjtBNUJ3dkoxQzs7QTRCanZKVTtFQUNFLG1CQVJ1QztBNUI0dkpuRDs7QVd4bUpNO0VpQmxKSTtJQUNFLGdCQUhlO0U1Qml3SnpCO0U0Qi92SlE7SUFDRSxpQkFIc0I7RTVCb3dKaEM7RTRCbHdKUTtJQUNFLGtCQUg4QjtFNUJ1d0p4QztFNEJyd0pRO0lBQ0UsbUJBSHVDO0U1QjB3SmpEO0FBQ0Y7O0FXdm5KTTtFaUJsSkk7SUFDRSxnQkFIZTtFNUJneEp6QjtFNEI5d0pRO0lBQ0UsaUJBSHNCO0U1Qm14SmhDO0U0Qmp4SlE7SUFDRSxrQkFIOEI7RTVCc3hKeEM7RTRCcHhKUTtJQUNFLG1CQUh1QztFNUJ5eEpqRDtBQUNGOztBNkJweEpFO0VBQWtCLHdCQUF3QjtBN0J3eEo1Qzs7QTZCdHhKRTtFQUNFO0lBRUksa0NBQWtDO0lBR3BDLDJCQUEyQjtJQUUzQix1QkFBdUI7SUFDdkIsNEJBQTRCO0U3QnF4SmhDO0U2Qmh5SkE7SUFjb0IseUJBQXlCO0U3QnF4SjdDO0U2QnB4SkU7SUFBa0Isd0JBQXdCO0U3QnV4SjVDO0U2QnJ4SkU7SUFBdUIseUJBQXlCO0U3Qnd4SmxEO0U2QnZ4SkU7SUFBdUIsc0NBQXNDO0U3QjB4Si9EO0U2Qnp4SkU7SUFBdUIsbUNBQW1DO0U3QjR4SjVEO0U2QjN4SkU7SUFBb0IsNkJBQTZCO0U3Qjh4Sm5EO0U2Qjd4SkU7SUFBb0IsOEJBQThCO0U3Qmd5SnBEO0U2Qi94SkU7SUFBb0IsOEJBQThCO0U3Qmt5SnBEO0U2Qi94SkU7O0lBQ1ksMEJBQTBCO0U3Qmt5SnhDO0U2Qmh5Skk7SUFBZ0IsNEJBQTRCO0U3Qm15SmhEO0U2Qi94SkU7OztJQUVxQixXQUFXO0U3Qmt5SmxDO0U2Qi94SkU7SUFBb0IsNkJBQTZCO0U3Qmt5Sm5EO0U2Qi94SkU7O0lBRUUseUIxQldhO0kwQlZiLHdCQUF3QjtFN0JpeUo1QjtFNkI3eEpFO0lBQVEsMkJBQTJCO0U3Qmd5SnJDO0U2Qjl4SkU7O0lBQ00sd0JBQXdCO0U3Qml5SmhDO0VvQnowSkY7SVMwQ1UsMEJBQTBCO0U3Qmt5SmxDO0U2Qmh5SkU7SUFBUSxhQUFhO0U3Qm15SnZCO0U2Qmp5SkU7OztJQUdFLFVBQVU7SUFDVixTQUFTO0U3Qm15SmI7RTZCL3hKRTs7SUFDSyx1QkFBdUI7RTdCa3lKOUI7RTZCL3hKRTtJQUNFLHVCQUF1QjtFN0JpeUozQjtBQUNGOztBTW51SkU7RUFFRSxjQUFjO0VBQ2QsWUFBWTtBTnF1SmhCOztBTTd0SkU7RUFDRSxXQUFXO0FOZ3VKZjs7QThCbDBKRTtFQUNFLGdCM0JvakJzQjtFMkJuakJ0QixrQkFBb0M7QTlCcTBKeEM7O0E4QmowSkU7RUFDRSxXQUFXO0VBQ1gsZUFBaUM7QTlCbzBKckM7O0E4QmowSkU7RUFDRSxXQUFXO0E5Qm8wSmY7O0E4Qmx6Skk7O0VBRUUsV0FBVztBOUJxekpqQjs7QVdydkpNO0VtQmxFRjs7SUF1QkUsV0FBVztFOUJzeUpmO0FBQ0Y7O0FXdnZKTTtFbUJ2RUY7O0lBRUUsV0FBVztFOUJrMEpmO0FBQ0Y7O0FXOXZKTTtFbUJ2RUY7O0lBRUUsV0FBVztFOUJ5MEpmO0FBQ0Y7O0E4QjN3Skk7RUFDRSxxQkFBcUI7RUFDckIsV0FBVztFQUNYLDZCM0JrZHFDO0FINHpJM0M7O0E4Qmp4Skk7RUFNSSxXQUFXO0E5Qit3Sm5COztBOEIzd0pJO0VBQ0UsV0FBVztBOUI4d0pqQjs7QThCM3dKSTtFQUNFLFlBQVk7QTlCOHdKbEI7O0FBRUE7O0UrQjEySkUsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsaUJBTGlFO0VBTWpFLGdCMUJLdUQ7RTBCSnZELGVBQTBCO0VBRTFCLHlCNUJyQm1CO0U0QnNCbkIsZ0I1QlZlO0U0QldmLHlCNUJwQmE7RTRCcUJiLGlENUJ0QmE7RTRCd0JiLG9CNUJpU3lCO0U0QmhTekIsZTFCSnVEO0UwQkt2RCxtQjVCbEIyQjtFNEJtQjNCLGM1QjNCYTtFNEI4QlgsMkQ1QnNTOEQ7RTRCalI5RCx3QkFBZ0I7S0FBaEIscUJBQWdCO1VBQWhCLGdCQUFnQjtBL0JxMUpwQjs7QUFFQTs7RStCdjJKSSxhQUFhO0VBQ2IseUI1QnJDZTtFNEJzQ2YseUI1QnBDVztFNEJxQ1gsMkI1QnhDaUI7RTRCMkNmLDJENUIyUjREO0FINmtKbEU7O0F1Qng0SUk7RVFqZEEsZUFBZTtBL0I2MUpuQjs7QStCOTFKRTtFQUlJLFlBQVk7QS9CODFKbEI7O0ErQjExSkU7O0VBSUksYzVCckVlO0FIZzZKckI7O0ErQi8xSkU7O0VBSUksYzVCckVlO0FIZzZKckI7O0ErQi8xSkU7OztFQVVJLHlCNUI1RWM7RTRCNkVkLG1CNUJ5UDZCO0FIa21KbkM7O0FBRUE7O0UrQnQxSkksd0JBQWdCO0tBQWhCLHFCQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIsZ0I1QnhFYTtBSGk2SmpCOztBK0JyMUpFO0VBQ0Usc0JBQXNCO0EvQncxSjFCOztBQUVBOzs7RWdDeCtKSSxnQjNCNEVxRDtBTGc2SnpEOztBQUVBOztFZ0N4K0pJLHFCQUFxQjtFQUNyQix3QkFBd0I7RUFFeEIsbUJBQWtEO0VBQ2xELGtCM0JrRXFEO0UyQmpFckQsZ0JBQWdCO0FoQzArSnBCOztBQUVBOztFZ0N6K0pNLGVBQWU7QWhDNCtKckI7O0FnQ3YrSkU7O0VBRUUsb0JBQW1EO0FoQzArSnZEOztBQUVBO0VnQ3YrSkksV0FBVztBaEN5K0pmOztBaUNyK0pFO0VBakJBLGNBQWM7RUFDZCxTQUFTO0VBRVQsbUI1QjREdUQ7RTRCM0R2RCxtQjlCOEMyQjtFOEI3QzNCLGdCOUJ3VjBCO0U4QnZWMUIsYzlCb0NhO0FIcTlKZjs7QWlDOStKRTtFQUxBLGdCNUJtRHVEO0U0QmxEdkQsb0JBQThEO0FqQ3UvSmhFOztBa0N4Z0tFO0VBR0UsbUJBRnVDO0VBR3ZDLG9CN0IrRHFEO0U2QjlEckQsa0IvQm9Wd0I7RStCblZ4QixjL0J3Q1c7QUhpK0pmOztBbUMxZ0tFO0VBQ0UsY0FBd0M7RUFDeEMsV0FBVztFQUNYLG1COUIyRHFEO0FMazlKekQ7O0FtQ2hoS0U7RUFVSSxzQmhDeUNXO0FIaStKakI7O0FtQ3BoS0U7RUFlTSxzQkFBaUg7QW5DeWdLekg7O0FtQ3BnS0U7Ozs7RUFDRSxTQUFTO0VBQ1QsbUJBQW1CO0VBR2pCLG1CQUFtQjtFQUNuQixzQkFBc0I7QW5Dd2dLNUI7O0FtQ3BnS0U7RUFFRSxlaEN3VHVCO0VnQ3ZUdkIseUJoQ01pQjtFZ0NMakIsbUJoQ0lnQjtFZ0NGaEIsY2hDS1c7RWdDSlgsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQVFqQixTQUFTO0VBQ1QsWUFBWTtBbkM4L0psQjs7QW1DL2dLRTtFQXNCTSxlQUFpQztBbkM2L0p6Qzs7QW1DbmhLRTtFQTBCTSxjQUFnQztBbkM2L0p4Qzs7QW1DeC9KRTtFQUVFLGdCQUFnQjtFQVFkLGNBekU2QztBbkM0aktuRDs7QW1DLytKRTtFQUVFLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsa0JBQWtCO0VBTWhCLFNBQVM7RUFDVCxZQUFZO0FuQzQrSmxCOztBbUN2L0pFOzs7O0VBbUJJLGNBaEc2QztFQWlHN0MsY0FBYztFQUNkLGlCQUFpQjtFQUVqQixlOUJwQ21EO0FMOGdLekQ7O0FtQ3ArSk07RUFDSSxtQkFBbUI7QW5DdStKN0I7O0F1QmxrSkk7RWFoZ0JBLFNBQVM7RUFDVCxVQUFVO0VBQ1YsU0FBUztBcENza0tiOztBdUIzakpJO0VhdmdCQSxlQUFlO0VBQ2YscUJBQWtDO0FwQ3NrS3RDOztBb0Nua0tFO0VBekJBLGtCL0JvRVc7RStCbkVYLGdCL0I4RHVEO0UrQjdEdkQseUJqQ3NDbUI7QUgwaktyQjs7QW9DOWxLRTtFQUVFLFNBQVM7RUFDVCx1Qi9Cd0RxRDtFK0J2RHJELG9CL0J1RHFEO0UrQnREckQsbUJqQ2tDVztBSDhqS2Y7O0FTMTlKRTtFNEJqSkEsaUJBRmlFO0VBR2pFLGdCaENnRXVEO0VnQy9EdkQsZUFBNEI7RUFFNUIsd0JBQWdCO0tBQWhCLHFCQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIseUJsQ3FDbUI7RWtDcENuQixnQmxDZ0RlO0VrQy9DZix5QmxDc0NhO0VrQ3BDYixvQmxDNFZ5QjtFa0MzVnpCLGVoQ3VEdUQ7RWdDdER2RCxtQkFBbUI7RUFDbkIsY2xDZ0NhO0VHMkRiLHdPQUF5TjtFK0J2RnZOLDhCQUE4QjtFQUM5Qix1Q0FBMEQ7RUFDMUQsNEJBQTRCO0VBQzVCLHdCQUF3QjtFQUV4QixxQkFBdUQ7RUFJdkQsMkRsQ3VWOEQ7QUhneEpsRTs7QU12aEtFO0VHd0NBO0lIckNJLHVXQUF1VztFTnloSzNXO0FBQ0Y7O0FxQ3ptS0U7RUFDRSxhQUFhO0VBQ2IseUJsQ1llO0VrQ1hmLHlCbENhVztFa0NaWCwyQmxDU2lCO0VrQ05mLDJEbEM0VTREO0FIOHhKbEU7O0FxQ3JtS0U7RUFDRSx5QmxDRGdCO0VrQ0VoQixtQmxDb1UrQjtBSG95Sm5DOztBcUNwbUtFO0VBQ0UsYUFBYTtBckN1bUtqQjs7QXFDcG1LRTtFQUNFLFlBQVk7RUFDWixzQkFBc0I7QXJDdW1LMUI7O0FzQ3ZvS0U7RUFDRSxxQm5DaUJZO0VtQ2hCWix5QkFBK0Q7QXRDMG9LbkU7O0FzQ3pvS0k7RUFDRSxjbkNjVTtBSDhuS2hCOztBc0M3b0tJO0VBQ0UsY25DY1U7QUg4bktoQjs7QXNDbG5LSTtFQUNFLGNuQ2JVO0FIa29LaEI7O0FzQ2huS0U7RUF6QkEsYUFBYTtFQUNiLG1CQUFnQztFQUNoQyxtQmpDK0J1RDtFaUM3QnZELGtCakM2QnVEO0VpQzVCdkQsaUJuQ2dCdUI7RW1DZnZCLGNuQ0NjO0FIMm9LaEI7O0FzQ3puS0U7RUFJSSxjQUFjO0F0Q3luS3BCOztBdUMxOUpFO0VBbEtBLHFCQUFxQjtFQUNyQixzQkFBc0I7RUFDdEIsa0JwQ3NLa0M7RW9DNUpoQyxtQnBDMkp1QjtFb0N4SnpCLHdCQUF3QjtFQUN4Qiw2QkFBNkI7RUFDN0IsZ0JwQ3JCZTtFb0NzQmYsaUVwQ3VLdUU7RW9Dckt2RSxpQnBDOEplO0VvQzdKZixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGVBQWU7RUFxQ2YseUJwQ25GZ0I7RW9Db0ZoQixjcEMxRWE7QUgwcEtmOztBQUVBO0VNOWlLSSxVQUFVO0FOZ2pLZDs7QXVDbGxLRTtFQUNFLHlCcEMyR3VFO0VvQzFHdkUsY3BDOUVXO0FIbXFLZjs7QXVDcC9KRTtFQU1NLGlCcENRTTtBSDArSmQ7O0F1Q3gvSkU7RUFNTSxrQnBDU1E7QUg2K0poQjs7QXVDNS9KRTtFQU1NLGtCcENXUTtBSCsrSmhCOztBdUNoZ0tFO0VBcElFLGNBQWM7RUFDZCxXQUFXO0VBQ1gsZUFBZTtFQUNmLGNBQWM7QXZDd29LbEI7O0F1Q3ZnS0U7RUF0R0EseUJwQ25GZ0I7RW9Db0ZoQixjcEMxRWE7QUgycktmOztBdUMvbUtFO0VBQ0UseUJBUG9GO0VBUXBGLGNwQzlFVztBSGdzS2Y7O0F1Q2poS0U7RUF0R0EseUJwQ2xGa0I7RW9DbUZsQixjcEMxRWE7QUhxc0tmOztBdUN6bktFO0VBQ0UseUJBUG9GO0VBUXBGLGNwQzlFVztBSDBzS2Y7O0F1QzNoS0U7RUF0R0EseUJwQ2pGZ0I7RW9Da0ZoQixjcEMzRWE7QUhndEtmOztBdUNub0tFO0VBQ0UseUJBUG9GO0VBUXBGLGNwQy9FVztBSHF0S2Y7O0F1Q3JpS0U7RUF0R0EseUJwQ2hGZ0I7RW9DaUZoQixjcEMzRWE7QUgwdEtmOztBdUM3b0tFO0VBQ0UseUJBUG9GO0VBUXBGLGNwQy9FVztBSCt0S2Y7O0F1Qy9pS0U7RUF0R0EseUJwQy9FYztFb0NnRmQsY3BDMUVhO0FIbXVLZjs7QXVDdnBLRTtFQUNFLHlCQVBvRjtFQVFwRixjcEM5RVc7QUh3dUtmOztBdUN6aktFO0VBOUVBLHlCcEMzR2dCO0VvQzRHaEIsY3BDNUdnQjtBSHV2S2xCOztBdUN6cEtFO0VBRUUsNkJBQTZCO0F2QzJwS2pDOztBdUM3b0tFO0VBQ0UscUJBTjZEO0VBTzdELGNBUDZEO0F2Q3VwS2pFOztBdUN2a0tFO0VBOUVBLHlCcEMzR2dCO0VvQzRHaEIsY3BDNUdnQjtBSHF3S2xCOztBdUN2cEtFO0VBQ0UscUJBTjZEO0VBTzdELGNBUDZEO0F2Q2lxS2pFOztBdUNqbEtFO0VBOUVBLHlCcEMxR2tCO0VvQzJHbEIsY3BDM0drQjtBSDh3S3BCOztBdUNqcUtFO0VBQ0UscUJBTjZEO0VBTzdELGNBUDZEO0F2QzJxS2pFOztBdUMzbEtFO0VBOUVBLHlCcEN6R2dCO0VvQzBHaEIsY3BDMUdnQjtBSHV4S2xCOztBdUMzcUtFO0VBQ0UscUJBTjZEO0VBTzdELGNBUDZEO0F2Q3FyS2pFOztBdUNybUtFO0VBOUVBLHlCcEN4R2dCO0VvQ3lHaEIsY3BDekdnQjtBSGd5S2xCOztBdUNycktFO0VBQ0UscUJBTjZEO0VBTzdELGNBUDZEO0F2QytyS2pFOztBdUMvbUtFO0VBOUVBLHlCcEN2R2M7RW9Dd0dkLGNwQ3hHYztBSHl5S2hCOztBdUMvcktFO0VBQ0UscUJBTjZEO0VBTzdELGNBUDZEO0F2Q3lzS2pFOztBdUN6bktFO0VBMURBLGFwQzhFNEI7RW9DN0U1QixtQkFBbUI7QXZDdXJLckI7O0F1Q3JyS0U7RUFDRSx5QnBDbkljO0VvQ29JZCxjcEMxSFc7QUhrektmOztBdUNub0tFO0VBMURBLGFwQzhFNEI7RW9DN0U1QixtQkFBbUI7QXZDaXNLckI7O0F1Qy9yS0U7RUFDRSx5QnBDbkljO0VvQ29JZCxjcEMxSFc7QUg0ektmOztBdUM3b0tFO0VBMURBLGFwQzhFNEI7RW9DN0U1QixtQkFBbUI7QXZDMnNLckI7O0F1Q3pzS0U7RUFDRSx5QnBDbElnQjtFb0NtSWhCLGNwQzFIVztBSHMwS2Y7O0F1Q3ZwS0U7RUExREEsYXBDOEU0QjtFb0M3RTVCLG1CQUFtQjtBdkNxdEtyQjs7QXVDbnRLRTtFQUNFLHlCcENqSWM7RW9Da0lkLGNwQzNIVztBSGkxS2Y7O0F1Q2pxS0U7RUExREEsYXBDOEU0QjtFb0M3RTVCLG1CQUFtQjtBdkMrdEtyQjs7QXVDN3RLRTtFQUNFLHlCcENoSWM7RW9DaUlkLGNwQzNIVztBSDIxS2Y7O0F1QzNxS0U7RUExREEsYXBDOEU0QjtFb0M3RTVCLG1CQUFtQjtBdkN5dUtyQjs7QXVDdnVLRTtFQUNFLHlCcEMvSFk7RW9DZ0laLGNwQzFIVztBSG8yS2Y7O0F1Qzd0S0U7RWpDekxBLGNBQWM7RUFDZCxRQUFRO0VBQ1IsU0FBUztFQUVULG1CaUNpTFk7RWpDL0taLFdBQVc7RUFHVCxzQkFBc0I7RUFDdEIsdUJBQXVCO0VBQ3ZCLDZDQUFxRDtFaUNnTHJELGtCQUFrQjtFQUNsQixVQUFVO0VBRVYscUJBQXFCO0VBQ3JCLFlBQU87RUFDUCxnQnBDc0N1QjtBSGdzSzNCOztBdUNyc0tFO0VBb0VRLHlCcEM3UFE7QUhrNEtsQjs7QXVDenNLRTtFQTBFWSx5QnBDblFJO0FIczRLbEI7O0F1QzdzS0U7RUEwRVkseUJwQ2xRTTtBSHk0S3BCOztBdUNqdEtFO0VBMEVZLHlCcENqUUk7QUg0NEtsQjs7QXVDcnRLRTtFQTBFWSx5QnBDaFFJO0FIKzRLbEI7O0F1Q3p0S0U7RUEwRVkseUJwQy9QRTtBSGs1S2hCOztBdUM3dEtFO0VBbUZJLFdBQVc7RUFDWCxXQUFXO0VBQ1gsY0FBZ0M7QXZDOG9LdEM7O0F3Q254S0U7RUEvSkEsbUJyQzJPdUI7RXFDbk9yQixZQUFZO0F4Qys2S2hCOztBTTEwS0U7RUFFRSxjQUFjO0VBQ2QsWUFBWTtBTjQwS2hCOztBTXAwS0U7RUFDRSxXQUFXO0FOdTBLZjs7QXdDcjdLRTtFQUNFLFNBQVM7RUFDVCxpQnJDK05xQjtFcUM5TnJCLGtCckM4TnFCO0VxQzdOckIsaUJyQ2dOYTtBSHd1S2pCOztBd0NsN0tJO0VBQ0UsZUFBaUM7QXhDcTdLdkM7O0F3QzV5S0U7RUFNTSxpQnJDd0RNO0FIa3ZLZDs7QXdDaHpLRTtFQU1NLGtCckN5RFE7QUhxdktoQjs7QXdDcHpLRTtFQU1NLGtCckMyRFE7QUh1dktoQjs7QXdDeHpLRTtFQTVHRSxrQnJDeUxxQjtBSCt1S3pCOztBd0N0NktJO0VBRUUsYUFBYTtBeEN3NktuQjs7QXdDOTVLTTtFQUNFLFdBQ0Y7QXhDZzZLTjs7QXdDMzVLVTtFQUNFLHFCQUFxQjtFQUNyQixzQkFBZ0Q7RUFDaEQsaUJyQ2lLYTtBSDZ2S3pCOztBd0M1NUtZO0VBQ0Usa0JBQW1FO0F4Qys1S2pGOztBd0NyNktVO0VBQ0UscUJBQXFCO0VBQ3JCLDRCQUFnRDtFQUNoRCxpQnJDaUthO0FIdXdLekI7O0F3Q3Q2S1k7RUFDRSxrQkFBbUU7QXhDeTZLakY7O0F3Qy82S1U7RUFDRSxxQkFBcUI7RUFDckIsc0JBQWdEO0VBQ2hELGlCckNpS2E7QUhpeEt6Qjs7QXdDaDdLWTtFQUNFLGtCQUFtRTtBeENtN0tqRjs7QXdDejdLVTtFQUNFLHFCQUFxQjtFQUNyQixzQkFBZ0Q7RUFDaEQsaUJyQ2lLYTtBSDJ4S3pCOztBd0MxN0tZO0VBQ0Usa0JBQW1FO0F4QzY3S2pGOztBd0NuOEtVO0VBQ0UscUJBQXFCO0VBQ3JCLDRCQUFnRDtFQUNoRCxpQnJDaUthO0FIcXlLekI7O0F3Q3A4S1k7RUFDRSxrQkFBbUU7QXhDdThLakY7O0F3Q3QzS0U7RUR0REEseUJwQ25GZ0I7RW9Db0ZoQixjcEMxRWE7QUgwL0tmOztBdUM5NktFO0VBQ0UseUJBUG9GO0VBUXBGLGNwQzlFVztBSCsvS2Y7O0F3Q2g0S0U7RUR0REEseUJwQ2xGa0I7RW9DbUZsQixjcEMxRWE7QUhvZ0xmOztBdUN4N0tFO0VBQ0UseUJBUG9GO0VBUXBGLGNwQzlFVztBSHlnTGY7O0F3QzE0S0U7RUR0REEseUJwQ2pGZ0I7RW9Da0ZoQixjcEMzRWE7QUgrZ0xmOztBdUNsOEtFO0VBQ0UseUJBUG9GO0VBUXBGLGNwQy9FVztBSG9oTGY7O0F3Q3A1S0U7RUR0REEseUJwQ2hGZ0I7RW9DaUZoQixjcEMzRWE7QUh5aExmOztBdUM1OEtFO0VBQ0UseUJBUG9GO0VBUXBGLGNwQy9FVztBSDhoTGY7O0F3Qzk1S0U7RUR0REEseUJwQy9FYztFb0NnRmQsY3BDMUVhO0FIa2lMZjs7QXVDdDlLRTtFQUNFLHlCQVBvRjtFQVFwRixjcEM5RVc7QUh1aUxmOztBd0N2K0tFO0VBS0ksV0FBVztBeENzK0tqQjs7QXdDbitLSTtFQUNFLGdCQUFnQjtBeENzK0t0Qjs7QVd4OUtNO0U2QmFKO0lBS0ksV0FBVztJQUViLGdCQUFnQjtFeEMwOEtsQjtBQUNGOztBVy85S007RTZCYUo7SUFLSSxXQUFXO0lBRWIsZ0JBQWdCO0V4Q2k5S2xCO0FBQ0Y7O0FXaitLTTtFNkJtQ0o7SUFnRE0sY0FBYztFeENtNUtwQjtFd0NuOEtBO0lBbURRLGNBQWM7SUFDZCxlQUFpQztFeENtNUt6QztBQUNGOztBeUNyZ0xFO0VBbEZBLGNBQWdDO0VBQ2hDLG1CdENlYTtFc0NkYixxQkFBcUI7QXpDMmxMdkI7O0F5Q3RsTEU7RUFDRSxzQkFBZ0Q7QXpDeWxMcEQ7O0F5Q3RsTEU7RUFDRSxzQnRDYWE7QUg0a0xqQjs7QXlDM2dMRTtFQWxFQSxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLHFCdENtSW1DO0VzQ2pJbkMseUJ0Q2hCa0I7RXNDaUJsQixnQkFBZ0I7RUFHaEIsY0FBYztFQUNkLGN0QzNCZ0I7QUh5bUxsQjs7QXlDNWtMRTtFQUNFLGdDdEN4QmdCO0VzQ3lCaEIsc0J0Q1phO0FIMmxMakI7O0F5QzVrTEU7RUFFRSx5QnRDOUJnQjtBSDRtTHBCOztBeUMxa0xJO0VBQ0Usa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixXQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIsWUFBWTtBekM2a0xsQjs7QXlDMWtMSTtFQUNFLGdCQUFnQjtBekM2a0x0Qjs7QXlDdGlMRTtFQTNCQSxhQUFhO0VBQ2IsYXRDNkY4QjtFc0MzRjlCLHlCdEMxRGtCO0VzQzJEbEIsZ0JBQWdCO0VBQ2hCLHlCdEN4RGE7RXNDMERiLGN0QzNEYTtBSDhuTGY7O0F5Q2prTEU7RUFDRSxnQ3RDakVnQjtBSHFvTHBCOztBMENuckxJO0VBQ0Usa0JBQWtCO0ExQ3NyTHhCOztBMEN2ckxJO0VwQ0FGLGNBQWM7RUFDZCxR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aEIsYzdDaEVhO0U2Q2lFYixlQUFlO0FoRHl3TWpCOztBZ0Q3dU1FO0VBcEJBLDJCM0NyRHVEO0UyQ3NEdkQsYzdDN0VtQjtFNkM4RW5CLG1CQUFtQjtBaERxd01yQjs7QWdEbndNRTtFQUNFLHVCQUF1QjtBaERzd00zQjs7QWdEdnZNRTtFQU5BLDJCM0NuRXVEO0UyQ29FdkQsZ0JBQWdCO0VBQ2hCLGM3QzFGYTtBSDIxTWY7O0FnRDV1TUk7O0VBRUUscUJBQXFCO0VBQ3JCLG9CQUFzQztFQUN0QyxnQkFBZ0I7QWhEK3VNdEI7O0FnRDV1TUk7O0VBRUUscUJBQXFCO0VBQ3JCLG1CQUFxQztFQUNyQyxnQkFBZ0I7QWhEK3VNdEI7O0FlajFNRTtFQTVDQSwwQlo2TG9DO0VZNUxwQyxnQkFBZ0I7QWZpNE1sQjs7QU1oeU1FO0VBRUUsY0FBYztFQUNkLFlBQVk7QU5reU1oQjs7QU0xeE1FO0VBQ0UsV0FBVztBTjZ4TWY7O0FldjRNRTtFQUNFLFdBQU87RUFFUCxvQlZrQ3FEO0VVakNyRCxjWllXO0VZWFgsZUFBZTtFQUdiLHlCQUF5QjtBZnU0TS9COztBZWg0TU07RUFDRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLGlCWjRLeUI7RVkzS3pCLFVBQVU7RUFDVixZQVA2QztFQVE3QyxjWlBhO0FIMDRNckI7O0FlMTNNRTtFQUNFLGNaeEJjO0FIcTVNbEI7O0FlMzNNSTtFQUNFLDBCQUEwQjtBZjgzTWhDOztBZXgzTUU7RUFJSSxjWjlCZTtFWStCZixtQkFBbUI7QWZ3M016Qjs7QWlEenFNRTtFQWpIQSxXQUFXO0VBQ1gsbUI5Q3RIa0I7RThDdUhsQixnQjlDbkhlO0FIaTVNakI7O0FpRHAzTUU7OztFQUdFLHlCQ2xCNkM7RURtQjdDLHlCOUMxQ1c7QUhpNk1mOztBaURuM01FO0VBQ0UsaUM1QzNCcUQ7RTRDNEJyRCxpQjlDeENxQjtBSDg1TXpCOztBNkI5Nk1JO0VvQjZEQSxtQkM5QjZDO0VEK0I3QyxjOUN2RFc7QUg0Nk1mOztBaURqM01FO0VBQ0UsbUJDcEM2QztFRHFDN0MsYzlDN0RXO0FIaTdNZjs7QWlEaDNNRTs7RUFJSSx1QkFBdUI7QWpEaTNNN0I7O0FpRHIzTUU7Ozs7RUFVSSxpQzVDdERtRDtFNEN1RG5ELGlCOUNuRW1CO0U4Q29FbkIsZ0JBQVk7QWpEazNNbEI7O0FpRDcyTUU7O0VBR0ksaUM1Q2hFbUQ7QUwrNk16RDs7QWlEcjdNTTtFQUNFLGdCQUFnQjtFQUNoQix5QkNPeUM7QWxEaTdNakQ7O0FpRHoyTU07RUFFRSx5QjlDakdPO0FINDhNZjs7QWlEOTZNRTtFQUNFLGdCQUFnQjtFQUNoQixnQ0NUNkM7RURVN0MseUI5Q2pDVztBSGs5TWY7O0FXdDNNTTtFc0MwSEY7SUFDRSxhQUFhO0VqRGd3TWpCO0VpRDV2TUE7SUFDRSxhQUFhO0VqRDh2TWY7RWlEM3ZNQTs7O0lBR0UsY0FBYztFakQ2dk1oQjtFaUQxdk1BO0lBQ0UsYUFBYTtFakQ0dk1mO0FBQ0Y7O0FpRDl1TUU7RUEzR0EsY0FBYztFQUNkLFdBQVc7RUFDWCxnQkFBZ0I7QWpENjFNbEI7O0FpRHQxTUk7RUFDRSx5QjlDdVZtRTtBSGtnTXpFOztBaURuMU1JO0VBQ0UseUI5Q2tWbUU7QUhvZ016RTs7QWlEaDFNSTtFQUNFLHlCOUNtVXlEO0FIZ2hNL0Q7O0FpRDUwTU07RUFDRSx5QjlDNFRtRjtBSG1oTTNGOztBaUQ1dk1FO0VBQ0UsZ0JBQWdCO0FqRCt2TXBCOztBaURod01FO0VBSUksV0FBVztBakRnd01qQjs7QW1EaDdNRTtFQW5GQSxTaER1Zlk7RWdEdGZaLHlCaERIa0I7RWdESWxCLG1CaERBYTtFZ0RDYixxQkFBcUI7QW5EdWdOdkI7O0FNMzdNRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0FONjdNaEI7O0FNcjdNRTtFQUNFLFdBQVc7QU53N01mOztBbUQzZ05FO0VBQ0UsY0FBYztFQUNkLFdBQVc7RUFDWCxXQUFXO0FuRDhnTmY7O0FtRDU3TUU7RUFFSSxVQUFVO0FuRDg3TWhCOztBbURoOE1FO0VBS00sdUJBQXVCO0FuRCs3TS9COztBbUR6N01FO0VBQ0UsbUJoRGpIYztBSDZpTmxCOztBbUQ3N01FO0VBSUksY2hEMUdTO0FIdWlOZjs7QW1EajhNRTtFQVFNLG1CRHZGeUM7QWxEb2hOakQ7O0FtRHg3TUU7RUE3RkEsV0FBTztBbkR5aE5UOztBbUR2aE5FO0VBQ0UsY0FBYztFQUNkLGFBQWE7RUFDZCxlQUFlO0VBQ2QsY0FBYztFQUVkLGlCQUFpQjtFQUNqQiw2QmhEL0NPO0FId2tOWDs7QW1EdmhOSTtFQUNFLG1CaERsQ1M7RWdEbUNULGNBQTRDO0FuRDBoTmxEOztBbUR2aE5JO0VBSUUsaUJBQWlCO0FuRHVoTnZCOztBbUR0OE1FO0VBM0RBLHlCaERwRWtCO0VnRHFFbEIsY0FBZ0M7QW5EcWdObEM7O0FtRHY4TUU7RUF2REEsYUFBYTtFQUNiLGFoRHdid0I7QUgwa00xQjs7QW1EaGdORTtFQUNFLGNBQWM7QW5EbWdObEI7O0FvRGxwTkE7RWpDZ0tBO0lpQzNKWSxZQUFZO0VwRGtwTnRCO0FBQ0Y7O0FvRDlvTkE7RWpDc0pBO0lpQ2xKWSxZQUFZO0VwRCtvTnRCO0VFbDhNRjtJSzlNRSxVQ2VxRDtJQStCckQsV0N5Q3lEO0lDL0V2RCxnQkx1RVM7SUt0RVQsZUxzRVM7RUx1a05YO0VvRDlvTkU7STdDUkYsVUNlcUQ7SUErQnJELFdDeUN5RDtJQy9FdkQsZ0JMdUVTO0lLdEVULGVMc0VTO0VMNmtOWDtBQUNGOztBb0Qzb05BO0VqQ2lJQTtJaUM3SFksWUFBWTtFcEQ0b050QjtBQUNGOztBb0R2b05BO0VIcVFFO0lHblFNLHNCQUFzQjtFcEQwb041QjtFb0R4b05FO0lBRUksc0JBQXNCO0VwRHlvTjVCO0VvRHRvTkU7SUFDSSxXQUFXO0lBQ1gsaUJBQWlCO0VwRHdvTnZCO0VvRHJvTkU7STdDMUNGLFdDZXFEO0lBK0JyRCxXQ3lDeUQ7SUMvRXZELHVCQUZxQztJQUdyQyxzQkFIcUM7STBDc0NqQyxzQi9DOEJpRDtFTDRtTnZEO0FBQ0Y7O0FXMWlOTTtFeUNuR0Y7STFDbENBLHdCQUZxQztJQUdyQyx1QkFIcUM7RVZ1ck52QztBQUNGOztBb0RscU5BO0VBbUJJOztPcERvcE5HO0VtQnRsTlA7SWlDMURJLFdBQVc7RXBEbXBOYjtFbUJuak5GO0lpQzNGWSxVQUFVO0lBQ1Ysa0JBQWtCO0VwRGlwTjVCO0VFNS9NRjtJSzlNRSxXQ2VxRDtJQStCckQsV0N5Q3lEO0lDL0V2RCxnQkx1RVM7SUt0RVQsZUxzRVM7RUxpb05YO0VvRGhwTkY7STdDaEVFLFVDZXFEO0lBK0JyRCxXQ3lDeUQ7SUMvRXZELHVCQUZxQztJQUdyQyxzQkFIcUM7RVZndE52QztBQUNGOztBVzFrTk07RXlDN0VOO0kxQ3hESSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWdXROdkM7QUFDRjs7QW9EcnBOQTtFQUNJO0lBQ0ksd0JBQXdCO0VwRHdwTjlCO0VjNXFORjtJc0N1QlEsaUJBQWlCO0lBQ2pCLGNBQWM7RXBEd3BOcEI7RUUvNU1GO0lLeFVFLFdDZXFEO0lBK0JyRCxXQ3lDeUQ7SUMvRXZELHVCQUZxQztJQUdyQyxzQkFIcUM7RVZ1dU52QztBQUNGOztBV2ptTk07RVQyTE47SVFoVUksd0JBRnFDO0lBR3JDLHVCQUhxQztFVjh1TnZDO0FBQ0Y7O0FvRDVxTkE7RUFlSTtJN0N4RkYsZ0JDZXFEO0lBK0JyRCxXQ3lDeUQ7SUMvRXZELGdCTHVFUztJS3RFVCxlTHNFUztFTDhxTlg7RW9EaHFORDtJQUNHLGNBQWM7SUFDZCxjQUFjO0VwRGtxTmhCO0VzQi93TkY7SThCaUhJLFdBQVc7SUFDWCxjQUFjO0VwRGlxTmhCO0VhbnhORjtJdUN5SFEsYUFBYTtFcEQ2cE5uQjtFbUJuak5GO0lack5FLFdDZXFEO0lBK0JyRCxXQ3lDeUQ7SUMvRXZELHVCQUZxQztJQUdyQyxzQkFIcUM7RVZ3d052QztBQUNGOztBV2xvTk07RVF3RU47SVQ3TUksd0JBRnFDO0lBR3JDLHVCQUhxQztFVit3TnZDO0FBQ0Y7O0FvRDdzTkE7RWpDdUdBO0laaExFLFdDZXFEO0lBK0JyRCxXQ3lDeUQ7SUMvRXZELHVCQUZxQztJQUdyQyxzQkFIcUM7RVZ3eE52QztBQUNGOztBV2xwTk07RVFtQ047SVR4S0ksd0JBRnFDO0lBR3JDLHVCQUhxQztFVit4TnZDO0FBQ0Y7O0FvRDd0TkE7RUFnREE7STdDekhFLFdDZXFEO0lBK0JyRCxXQ3lDeUQ7SUMvRXZELHVCQUZxQztJQUdyQyxzQkFIcUM7RVZ3eU52QztBQUNGOztBV2xxTk07RXlDcEJOO0kxQ2pISSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWK3lOdkM7QUFDRjs7QW9EN3VOQTtFbEQ1REE7SUtiRSxXQ2VxRDtJQStCckQsV0N5Q3lEO0lDL0V2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0VWd3pOdkM7QUFDRjs7QVdsck5NO0VUaElOO0lRTEksd0JBRnFDO0lBR3JDLHVCQUhxQztFVit6TnZDO0FBQ0Y7O0FvRDd2TkE7RWxENURBO0lLYkUsV0NlcUQ7SUErQnJELFdDeUN5RDtJQy9FdkQsdUJBRnFDO0lBR3JDLHNCQUhxQztFVncwTnZDO0FBQ0Y7O0FXbHNOTTtFVGhJTjtJUUxJLHdCQUZxQztJQUdyQyx1QkFIcUM7RVYrME52QztBQUNGOztBb0Q3d05BO0V0QzhFQTtJc0NUUSxvQkFBbUI7RXBENnNOekI7RW9EenNORTtJN0NsSkYsV0NlcUQ7SUErQnJELFdDeUN5RDtJQy9FdkQsdUJBRnFDO0lBR3JDLHNCQUhxQztFVjIxTnZDO0FBQ0Y7O0FXcnROTTtFeUNLRjtJMUMxSUEsd0JBRnFDO0lBR3JDLHVCQUhxQztFVmsyTnZDO0FBQ0Y7O0FvRGh5TkE7RUE2RUk7SUFDSSxpQkFBaUI7RXBEdXROdkI7RWF6M05GO0l1Q3NLUSxPQUFPO0lBQ1AsV0FBVztFcERzdE5qQjtFYTczTkY7SXVDMEtZLGlCQUFpQjtFcERzdE4zQjtFbUJqd05GO0lpQytDUSxtQkFBbUI7SUFDbkIsY0FBYztFcERxdE5wQjtFb0RudE5FO0k3Q3RLRixXQ2VxRDtJQStCckQsV0N5Q3lEO0lDL0V2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0VWeTNOdkM7QUFDRjs7QVdudk5NO0V5Q3lCRjtJMUM5SkEsd0JBRnFDO0lBR3JDLHVCQUhxQztFVmc0TnZDO0FBQ0Y7O0FvRDl6TkE7RWpDREE7SWlDd0dRLGdCQUFlO0VwRDR0TnJCO0VtQnAwTkY7SWlDMEdZLFdBQVc7SUFDWCxrQkFBa0I7RXBENnRONUI7RW9EMXRORTtJQUNJLFlBQVk7RXBENHRObEI7RW9EMXRORTtJQUVJLHVCQUF1QjtJQUN2QixjQUFjO0lBQ2QsY0FBYztFcEQydE5wQjtFb0R0dE5FO0lBRUksa0JBQWtCO0lBQ2xCLGNBQWM7RXBEdXROcEI7RUU5c05GO0lLOU1FLGdCQ2VxRDtJQStCckQsV0N5Q3lEO0lDL0V2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0VWNDVOdkM7QUFDRjs7QVd0eE5NO0VUaUVOO0lRdE1JLHdCQUZxQztJQUdyQyx1QkFIcUM7RVZtNk52QztBQUNGOztBb0RqMk5BO0VsRHlJQTtJS2xORSxnQkNlcUQ7SUErQnJELFdDeUN5RDtJQy9FdkQsdUJBRnFDO0lBR3JDLHNCQUhxQztFVjQ2TnZDO0FBQ0Y7O0FXdHlOTTtFVHFFTjtJUTFNSSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWbTdOdkM7QUFDRjs7QW9EajNOQTtFQXlJSTtJN0NsTkYsV0NlcUQ7SUErQnJELFdDeUN5RDtJQy9FdkQsdUJBRnFDO0lBR3JDLHNCQUhxQztFVjQ3TnZDO0FBQ0Y7O0FXdHpOTTtFeUNxRUY7STFDMU1BLHdCQUZxQztJQUdyQyx1QkFIcUM7RVZtOE52QztBQUNGOztBb0RqNE5BO0V2Q25FQTs7SXVDb05RLGVBQWU7RXBEc3ZOckI7RWF2Nk5GO0l1Q3VMUSxtQkFBbUI7RXBEbXZOekI7RW1COThORjtJWkxFLFdDZXFEO0lBK0JyRCxXQ3lDeUQ7SUMvRXZELHVCQUZxQztJQUdyQyxzQkFIcUM7RVZtOU52QztBQUNGOztBVzcwTk07RVF4SU47SVRHSSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWMDlOdkM7QUFDRjs7QW9EeDVOQTtFQTBKSTtJQUlRLGtCQUFrQjtJQUNsQixjQUFjO0lBQ2QsbUJBQW1CO0VwRCt2TjdCO0VvRHJ3TkU7SUFTUSxVQUNKO0VwRDh2Tk47RW9EM3ZORTtJN0NoUEYsV0NlcUQ7SUErQnJELFdDeUN5RDtJQy9FdkQsdUJBRnFDO0lBR3JDLHNCQUhxQztJMEM0T3BDLGlCQUFpQjtFcERnd05wQjtBQUNGOztBV3QyTk07RXlDbUdGO0kxQ3hPQSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWbS9OdkM7QUFDRjs7QW9EajdOQTtFcEN0Q0E7SW9Da05TLGFBQWE7RXBEMHdOcEI7RWdCMzdORjtJb0N1TEksbUJBQW1CO0VwRHV3TnJCO0VvRHJ3TkY7SUFDSSxtQkFBbUI7RXBEdXdOckI7QUFDRjs7QW9EbndOQTtFdkNqUkE7SXVDcVJRLGFBQWE7RXBEb3dObkI7RW1CaCtORjtJWjNDRSxXQ2VxRDtJQStCckQsV0N5Q3lEO0lDL0V2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0VWMmdPdkM7QUFDRjs7QVdyNE5NO0VRbEdOO0lUbkNJLHdCQUZxQztJQUdyQyx1QkFIcUM7RVZraE92QztBQUNGOztBb0R0eE5BO0VBWUk7STdDL1FGLFdDZXFEO0lBK0JyRCxXQ3lDeUQ7SUMvRXZELHVCQUZxQztJQUdyQyxzQkFIcUM7RVYyaE92QztBQUNGOztBV3I1Tk07RXlDa0lGO0kxQ3ZRQSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWa2lPdkM7QUFDRjs7QW9EdHlOQTtFdENqUkE7SXNDa1NRLGtCQUFrQjtFcEQweE54QjtFb0R4eE5FO0k3Q3RSRixXQ2VxRDtJQStCckQsV0N5Q3lEO0lDL0V2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0VWOGlPdkM7QUFDRjs7QVd4Nk5NO0V5Q3lJRjtJMUM5UUEsd0JBRnFDO0lBR3JDLHVCQUhxQztFVnFqT3ZDO0FBQ0Y7O0FvRHp6TkE7RXRDalJBO0lzQzBTUSxrQkFBa0I7RXBEcXlOeEI7RW9EbnlORTtJN0M5UkYsV0NlcUQ7SUErQnJELFdDeUN5RDtJQy9FdkQsdUJBRnFDO0lBR3JDLHNCQUhxQztFVmlrT3ZDO0FBQ0Y7O0FXMzdOTTtFeUNpSkY7STFDdFJBLHdCQUZxQztJQUdyQyx1QkFIcUM7RVZ3a092QztBQUNGOztBb0Q1ME5BO0VBOEJJO0lBQ0ksY0FBYztJQUNkLGNBQWM7SUFDZCxtQkFBbUI7RXBEa3pOekI7RW9EL3lORTtJQUNJLGtCQUFrQjtJQUNsQixjQUFjO0lBQ2QsbUJBQW1CO0VwRGl6TnpCO0VtQmo4TkY7SWlDcUpZLGtCQUFpQjtFcEQreU4zQjtFbUIvOU5GO0lpQ3NMWSxlQUFlO0VwRDR5TnpCO0VvRHp5TkU7STdDeFRGLFdDZXFEO0lBK0JyRCxXQ3lDeUQ7SUMvRXZELHVCQUZxQztJQUdyQyxzQkFIcUM7RVZpbU92QztBQUNGOztBVzM5Tk07RXlDMktGO0kxQ2hUQSx3QkFGcUM7SUFHckMsdUJBSHFDO0VWd21PdkM7QUFDRjs7QW9EanpOQTtFakNwS0E7SWlDd0tZLFVBQVM7RXBEa3pObkI7RUV2bU9GO0lrRCtUWSxrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtFcEQyeU45QjtFb0R6ak9GO0k3Q2hFRSxXQ2VxRDtJQStCckQsV0N5Q3lEO0lDL0V2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0VWeW5PdkM7QUFDRjs7QVduL05NO0V5QzdFTjtJMUN4REksd0JBRnFDO0lBR3JDLHVCQUhxQztFVmdvT3ZDO0FBQ0Y7O0FxRHpsT0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NyRGlvT0MiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjMuMVxuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbi5hbmltYXRlZCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1JSwgMCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcbn1cblxuLmVsZW1lbnQtaW52aXNpYmxlLCAuYnVzY2Fkb3IsIC5sb2dpbi1jb3JyZW8sIC5sb2dpbi11bmV0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0QyQTkyRDtcbn1cblxuLmxvZ28tYnVzcXVlZGEge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubG9nby1idXNxdWVkYTo6YmVmb3JlLCAubG9nby1idXNxdWVkYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xufVxuXG4ubG9nby1idXNxdWVkYTo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLmxvZ28tYnVzcXVlZGEgLmxvZ28ge1xuICB3aWR0aDogNTguMzMzMzMlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nOiAwIDAuNjI1cmVtIDAgMDtcbn1cblxuLmxvZ28tYnVzcXVlZGEgLmJ1c2NhZG9yLWlkaW9tYS1jb3JyZW8ge1xuICB3aWR0aDogNDEuNjY2NjclO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIGNvbG9yOiAjMTgzODZiO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmxvZ28tYnVzcXVlZGEgLmJ1c2NhZG9yLWlkaW9tYS1jb3JyZW8ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4vKi5sb2dvLWJ1c3F1ZWRhXG57XG4gICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuXG4gICAgIC5sb2dve1xuICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNyk7XG4gICAgIH1cbiAgICAgLmJ1c2NhZG9yLWlkaW9tYS1jb3JyZW9cbiAgICAge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDUpO1xuICAgICAgICAgIGNvbG9yOiAkYXp1bC1iYXNlO1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgIH1cbn0gKi9cbi5iYW5kZXJhcyBhIHtcbiAgY29sb3I6ICNmM2YzZjM7XG59XG5cbi5pY29ubyB7XG4gIGZvbnQtc2l6ZTogMjVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5hLm50dXJsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjMTgzODZiO1xuICB0b3A6IC0zcHg7XG4gIHJpZ2h0OiAtNnB4O1xufVxuXG5hLm50dXJsOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbmEuZmxhZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICMxODM4NmI7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uY29udGVuZWRvciB7XG4gIGNvbG9yOiAjMzMzO1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4uY29udGVuZWRvcjo6YmVmb3JlLCAuY29udGVuZWRvcjo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xufVxuXG4uY29udGVuZWRvcjo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLmljb25vcyB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmRlc3BsZWdhYmxlcyB7XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5mb3JtdWxhcmlvIHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLmZvcm11bGFyaW86OmJlZm9yZSwgLmZvcm11bGFyaW86OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbn1cblxuLmZvcm11bGFyaW86OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5mb3JtLXBhc3N3ZCwgLmZvcm0tdXN1YXJpbyB7XG4gIHdpZHRoOiA0MS42NjY2NyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5idG4tc3VibWl0IHtcbiAgd2lkdGg6IDE2LjY2NjY3JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLm9wdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZvcm0tdXN1YXJpbyB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbi5pY29uLXNlYXJjaCwgLmljb24tbWFpbCB7XG4gIGZvbnQtc2l6ZTogMjVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5uYXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgzODZiO1xufVxuXG5uYXYgI21lbnUtcHJpbmNpcGFsIHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxubmF2ICNtZW51LXByaW5jaXBhbDo6YmVmb3JlLCBuYXYgI21lbnUtcHJpbmNpcGFsOjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG59XG5cbm5hdiAjbWVudS1wcmluY2lwYWw6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbm5hdiBhIHtcbiAgY29sb3I6ICNmM2YzZjM7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi50aXRsZS1iYXItdGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiAjZjNmM2YzO1xufVxuXG5idXR0b24ubWVudS1pY29ubyB7XG4gIGZvbnQtc2l6ZTogMzBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2YzZjNmMztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogI2YzZjNmMztcbiAgbWFyZ2luOiA1cHg7XG59XG5cbi5tZW51ID4gbGkgPiBhOmhvdmVyIHtcbiAgY29sb3I6ICNEMkE5MkQ7XG59XG5cbi5tZW51ID4gbGkuYWN0aXZlID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjMTgzODZiO1xufVxuXG4ubG9naW5fY29ycmVvIHtcbiAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5sb2dpbl9jb3JyZW8ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG51bC5sb2dvcyBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMjRweDtcbn1cblxuZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4Mzg2YjtcbiAgYm9yZGVyLWJvdHRvbTogI0QyQTkyRCBzb2xpZCAxOHB4O1xuICBjb2xvcjogI2YzZjNmMztcbiAgcGFkZGluZy10b3A6IDI1cHg7XG59XG5cbmZvb3RlciBwIHtcbiAgY29sb3I6ICNmM2YzZjM7XG59XG5cbi5tZW51LWZvb3RlciB7XG4gIHdpZHRoOiA3NSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5sb2dvLWZvb3RlciB7XG4gIHdpZHRoOiAyNSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmxvZ28tZm9vdGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxudWwubmF2LWZvb3RlciB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG51bC5uYXYtZm9vdGVyIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG51bC5uYXYtZm9vdGVyIGEge1xuICBjb2xvcjogI2YzZjNmMztcbn1cblxudWwubmF2LWZvb3RlciBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi51bmFjaCB7XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5yZWRlcyB7XG4gIHdpZHRoOiAxNi42NjY2NyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbnVsI3JlZGVzc29jaWFsZXMge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxudWwjcmVkZXNzb2NpYWxlcyBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nOiAxMHB4ICAxMHB4IDBweCAwcHg7XG59XG5cbnVsI3JlZGVzc29jaWFsZXMgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMzBweDtcbn1cblxudWwjcmVkZXNzb2NpYWxlcyBhIHtcbiAgY29sb3I6ICNmM2YzZjM7XG59XG5cbi5zbGlkZXIge1xuICB3aWR0aDogNzUlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XG59XG5cbi5sYXRlcmFsLCAjbWVudS1sYXRlcmFsIHtcbiAgd2lkdGg6IDI1JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubGF0ZXJhbCwgI21lbnUtbGF0ZXJhbCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbmxpLnN1YmVsZW1lbnRvIHtcbiAgcGFkZGluZy1sZWZ0OiA1MHB4O1xufVxuXG5saS5ldGlxdWV0YSA+IHAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMztcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG5saS5ldGlxdWV0YSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5tb2R1bGVJdGVtSW50cm90ZXh0IGltZyB7XG4gIHdpZHRoOiAyNzBweDtcbiAgaGVpZ2h0OiAxNTJweDtcbn1cblxuZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5mb290ZXIgaHIge1xuICBtYXJnaW46IDA7XG59XG5cbi50aXR1bG9zIHtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDJweCBncmV5O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ubGljLWltYWdlbiB7XG4gIHdpZHRoOiAyOCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLmxpYy1ub21icmUge1xuICB3aWR0aDogNTAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMyU7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLmludGVncmFudGUge1xuICB3aWR0aDogNDclO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbn1cblxuLnByaW1lcm8gLmRhdG9zIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmZvdG8ge1xuICB3aWR0aDogMzMuMzMzMzMlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uZGF0b3Mge1xuICB3aWR0aDogNjYuNjY2NjclO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5kYXRvcyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5pbnRlZ3JhbnRlOm50aC1jaGlsZCgxKSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uaW50ZWdyYW50ZTpudGgtY2hpbGQoMSkgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ucGVyc29uYSB7XG4gIHdpZHRoOiA0OSU7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ucGVyc29uYSBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnBlcnNvbmE6bnRoLWNoaWxkKDEpIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnBlcnNvbmE6bnRoLWNoaWxkKDEpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLnByaW1lcm8ge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wcmltZXJvIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLnByaW1lcm8gcCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5wcmltZXJvIGltZyB7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbnNwYW4uaWNvbm8uZGlyZWN0b3JpbyB7XG4gIGN1cnNvcjogYXV0bztcbn1cblxuLmFuaW1hdGVkIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDUlLCAwKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblVwIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXREb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0RG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5mYWRlSW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluO1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluVXBMZWZ0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluVXBMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBMZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dFVwUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBSaWdodDtcbn1cblxuLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gaW1nIHtcbiAgaGVpZ2h0OiA0MjVweDtcbn1cblxuLnRpdHVsby1pdGVtIHtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4Mzg2Yjtcbn1cblxuLnRpdHVsby1pdGVtIGEge1xuICBjb2xvcjogI2YzZjNmMztcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4uaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm93bC10aGVtZSAub3dsLWRvdHMsXG4ub3dsLXRoZW1lIC5vd2wtbmF2IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5vd2wtdGhlbWUgLm93bC1uYXYge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4ub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV0ge1xuICBjb2xvcjogI0ZGRjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW46IDVweDtcbiAgcGFkZGluZzogNHB4IDdweDtcbiAgYmFja2dyb3VuZDogI0Q2RDZENjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLm93bC10aGVtZSAub3dsLW5hdiBbY2xhc3MqPW93bC1dOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzg2OTc5MTtcbiAgY29sb3I6ICNGRkY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm93bC10aGVtZSAub3dsLW5hdiAuZGlzYWJsZWQge1xuICBvcGFjaXR5OiAuNTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ub3dsLXRoZW1lIC5vd2wtbmF2LmRpc2FibGVkICsgLm93bC1kb3RzIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLm93bC10aGVtZSAub3dsLWRvdHMgLm93bC1kb3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHpvb206IDE7XG59XG5cbi5vd2wtdGhlbWUgLm93bC1kb3RzIC5vd2wtZG90IHNwYW4ge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW46IDVweCA3cHg7XG4gIGJhY2tncm91bmQ6ICM4Njk3OTE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XG59XG5cbi5vd2wtdGhlbWUgLm93bC1kb3RzIC5vd2wtZG90LmFjdGl2ZSBzcGFuLFxuLm93bC10aGVtZSAub3dsLWRvdHMgLm93bC1kb3Q6aG92ZXIgc3BhbiB7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG59XG5cbi5vd2wtbmF2IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmxpc3RhZG8ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmxpc3RhZG8gYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzFlMzc2YTtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5kaXYucGFnZS1oZWFkZXIge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4vKkFydGljdWxvcyBLMiovXG5kaXYjaXRlbUxpc3RMZWFkaW5nIHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuZGl2I2l0ZW1MaXN0TGVhZGluZzo6YmVmb3JlLCBkaXYjaXRlbUxpc3RMZWFkaW5nOjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG59XG5cbmRpdiNpdGVtTGlzdExlYWRpbmc6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbmxpLmV2ZW50byB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbmRpdi5jYXRJdGVtQm9keSB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuZGl2LmNhdEl0ZW1Cb2R5OjpiZWZvcmUsIGRpdi5jYXRJdGVtQm9keTo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xufVxuXG5kaXYuY2F0SXRlbUJvZHk6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbmRpdi5jYXRJdGVtSW1hZ2VCbG9jayB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBkaXYuY2F0SXRlbUltYWdlQmxvY2sge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5kaXYuY2F0SXRlbUltYWdlQmxvY2sgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5kaXYuY2F0SXRlbUltYWdlQmxvY2sgaW1nIHtcbiAgaGVpZ2h0OiAxOTBweDtcbiAgd2lkdGg6IDQwOHB4O1xufVxuXG4uZGlhIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMTBweDtcbiAgdG9wOiAxNzBweDtcbiAgbGVmdDogMjBweDtcbn1cblxuLmNhdEl0ZW1UaXRsZSB7XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNhdEl0ZW1UaXRsZSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5jYXRJdGVtVGl0bGUgYSB7XG4gIGNvbG9yOiAjMTgzODZiO1xufVxuXG5kaXYuaXRlbVRvb2xiYXIgdWwgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbmRpdi5jYXRJdGVtVmlldyB7XG4gIG1hcmdpbjogMzBweCAwO1xufVxuXG5zcGFuLnBhZ2VuYXYge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbmRpdi5pdGVtVmlldyB7XG4gIHBhZGRpbmc6IDFyZW07XG59XG5cbmRpdi5pdGVtVG9vbGJhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDUwMDtcbiAgbWFyZ2luLXRvcDogLTRyZW07XG59XG5cbi5pdGVtLXBhZ2UsICNrMkNvbnRhaW5lciwgLndlYmxpbmstY2F0ZWdvcnkge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaXRlbS1wYWdlLCAjazJDb250YWluZXIsIC53ZWJsaW5rLWNhdGVnb3J5IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLml0ZW1GdWxsVGV4dCB7XG4gIHdpZHRoOiA3NSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAyOHB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaXRlbUZ1bGxUZXh0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLml0ZW1JbWFnZUJsb2NrIHtcbiAgd2lkdGg6IDI1JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaXRlbUltYWdlQmxvY2sge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5zcGFuLml0ZW1JbWFnZSB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbn1cblxuLnNlcGFyYWRvcnR4dCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxLjVweCAjMTgzODZiO1xufVxuXG4uaXRlbUF0dGFjaG1lbnRzQmxvY2tzID4gc3BhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODM4NmI7XG4gIGNvbG9yOiAjZjNmM2YzO1xuICBwYWRkaW5nOiA4cHg7XG59XG5cbnVsLml0ZW1BdHRhY2htZW50cyB7XG4gIG1hcmdpbi10b3A6IDEzcHg7XG59XG5cbmEjZm9udEluY3JlYXNlLCBhI2ZvbnREZWNyZWFzZSwgYS5mb250SW5jcmVhc2UsIGEuZm9udERlY3JlYXNlIHtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLnR4dF9jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG59XG5cbi5zb2NpYWwtc2hhcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB3aWR0aDogMzAwcHg7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG59XG5cbi5pY29uLXNoYXJlLCBkaXYuaXRlbVRvb2xiYXIgdWwgbGkgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICMzMzM7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuXG5kaXYuaXRlbVRvb2xiYXIgdWwgbGkgc3Bhbi5pdGVtVGV4dFJlc2l6ZXJUaXRsZSB7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG4uY2F0LWxpc3Qtcm93IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNhdC1saXN0LXJvdyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5jYXQtbGlzdC1yb3cgYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ubGluay1kZXNjcmlwdGlvbiB7XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmxpbmstZGVzY3JpcHRpb24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4uaW1nLWludHJvLXJpZ2h0IHtcbiAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaW1nLWludHJvLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuc3Bhbi5saXN0LWhpdHMge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5zZXBhcmF0b3ItbGlua3Mge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzE4Mzg2Yjtcbn1cblxudWwuY2F0ZWdvcnkubGlzdC1zdHJpcGVkLmxpc3QtY29uZGVuc2VkIHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxudWwuY2F0ZWdvcnkubGlzdC1zdHJpcGVkLmxpc3QtY29uZGVuc2VkOjpiZWZvcmUsIHVsLmNhdGVnb3J5Lmxpc3Qtc3RyaXBlZC5saXN0LWNvbmRlbnNlZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xufVxuXG51bC5jYXRlZ29yeS5saXN0LXN0cmlwZWQubGlzdC1jb25kZW5zZWQ6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbnVsLm5hdmVnYWNpb24ge1xuICBtYXJnaW46IDAuNXJlbSAxcmVtIDByZW0gMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG51bC5uYXZlZ2FjaW9uOjpiZWZvcmUsIHVsLm5hdmVnYWNpb246OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbn1cblxudWwubmF2ZWdhY2lvbjo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxudWwubmF2ZWdhY2lvbiBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxudWwubmF2ZWdhY2lvbiBsaTpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxcHg7XG4gIG1hcmdpbjogMCAwLjc1cmVtO1xuICBvcGFjaXR5OiAxO1xuICBjb250ZW50OiBcIi9cIjtcbiAgY29sb3I6ICNjYWNhY2E7XG59XG5cbnVsLm5hdmVnYWNpb24gYSB7XG4gIGNvbG9yOiAjMTc3OWJhO1xufVxuXG51bC5uYXZlZ2FjaW9uIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnRvb2x0aXAge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5wdWxsLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG51bC5uYXYubmF2LXRhYnMubmF2LXN0YWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFkNzAxO1xuICBwYWRkaW5nOiAxNHB4IDI3cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNiksIDAgMnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbmhyLmxpYyB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMTgzODZiO1xufVxuXG5hLnRvY2xpbmsuYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5wYWdlciBsaSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5wYWdlciBsaTpsYXN0LWNoaWxkIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ucGFnZXIgbGk6Zmlyc3QtY2hpbGQge1xuICBmbG9hdDogbGVmdDtcbn1cblxuaW1nLmFydGljdWxvLWltYWdlbiB7XG4gIHdpZHRoOiAyNjBweDtcbiAgaGVpZ2h0OiAxNzVweDtcbn1cblxuLmJsb3F1ZS1wcmluY2lwYWwgYSwgLmJsb3F1ZS1zZWN1bmRhcmlvIGEsIC5zZXJ2aWNpb3MgYSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMTgzODZiO1xufVxuXG5kaXYjazJDb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAzNXB4O1xufVxuXG5hLm1vZHVsZUl0ZW1DYXRlZ29yeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZy1yaWdodDogMnJlbTtcbn1cblxuLm5vdmlzaWJsZSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbnVsLnRhYnMge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5iYXJyYS1sYXRlcmFsIGltZyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaXRlbS1wYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYmFycmEtbGF0ZXJhbCB7XG4gIHdpZHRoOiAyNSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNzVyZW07XG59XG5cbi5iYXJyYS1sYXRlcmFsIGEge1xuICBjb2xvcjogIzMzMztcbn1cblxuLnNlcGFyYWRvci1hcnRpY3VsbyB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogNjAwcHg7XG4gIGxlZnQ6IDMzLjUlO1xufVxuXG4uY29udGVuaWRvLWxhdGVyYWwge1xuICB3aWR0aDogNzUlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDIuMzc1cmVtO1xuICBtaW4taGVpZ2h0OiA2MDBweDtcbiAgYm9yZGVyLWxlZnQ6IDEuNXB4IHNvbGlkICMxODM4NkI7XG59XG5cbmxpLnRhYnMtdGl0bGUuaXMtYWN0aXZlIGEge1xuICBmb250LXdlaWdodDogaW5pdGlhbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4Mzg2YjtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5zZXBhcmFkb3Ige1xuICBib3JkZXItbGVmdDogc29saWQgMS41cHggIzE4Mzg2YjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAyNy41JTtcbn1cblxuZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEuZm9udERlY3JlYXNlIHtcbiAgbWFyZ2luOiAwIDAgMCAycHg7XG59XG5cbmRpdi5pdGVtVG9vbGJhciB1bCBsaSBhLmZvbnREZWNyZWFzZSBpbWcge1xuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbmRpdi5pdGVtVG9vbGJhciB1bCBsaSBhLmZvbnRJbmNyZWFzZSB7XG4gIG1hcmdpbjogMCAwIDAgMnB4O1xufVxuXG5kaXYuaXRlbVRvb2xiYXIgdWwgbGkgYS5mb250SW5jcmVhc2UgaW1nIHtcbiAgd2lkdGg6IDEzcHg7XG4gIGhlaWdodDogMTNweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG5kaXYuaXRlbVRvb2xiYXIgdWwgbGkgYS5mb250RGVjcmVhc2Ugc3BhbixcbmRpdi5pdGVtVG9vbGJhciB1bCBsaSBhLmZvbnRJbmNyZWFzZSBzcGFuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEuZm9udEluY3JlYXNlLCBkaXYuaXRlbVRvb2xiYXIgdWwgbGkgYS5mb250RGVjcmVhc2Uge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtZmFtaWx5OiAnc2ltcGxlLWxpbmUtaWNvbnMnO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLmluc3RpdHVjaW9uYWwuYmxvZywgLml0ZW0tcGFnZSB7XG4gIG1hcmdpbi10b3A6IDIycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLm1hcGEge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uaW5zdGl0dWNpb25hbCAucGFnZS1oZWFkZXIgaDIge1xuICBmb250LXNpemU6IDEuODc1cmVtO1xufVxuXG4ucmQge1xuICBtYXJnaW4tdG9wOiAxLjU2MjVyZW07XG59XG5cbnVsI2NvbnRlbmlkby10YWJzIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxubGkuc3ViZWxlbWVudG8gYSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6IGdyZXk7XG59XG5cbmxpLnN1YmVsZW1lbnRvIGE6aG92ZXIge1xuICBjb2xvcjogIzMzMztcbn1cblxubGkuc3ViZWxlbWVudG8uaXMtYWN0aXZlIGEge1xuICBjb2xvcjogIzMzMztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbnVsLnN1Ym1lbnUgYSB7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdmb250ZWxsbyc7XG4gIHNyYzogdXJsKFwiLi4vZm9udC9mb250ZWxsby5lb3Q/MTIwNjEzODRcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udC9mb250ZWxsby5lb3Q/MTIwNjEzODQjaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnQvZm9udGVsbG8ud29mZjI/MTIwNjEzODRcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnQvZm9udGVsbG8ud29mZj8xMjA2MTM4NFwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250L2ZvbnRlbGxvLnR0Zj8xMjA2MTM4NFwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udC9mb250ZWxsby5zdmc/MTIwNjEzODQjZm9udGVsbG9cIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ015cmlhZFdlYlByb1JlZ3VsYXInO1xuICBzcmM6IHVybChcIi4uL2ZvbnQvbXlyaWFkLXdlYi1wcm8uZW90XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnQvbXlyaWFkLXdlYi1wcm8uZW90XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250L215cmlhZC13ZWItcHJvLnN2ZyNNeXJpYWRXZWJQcm9SZWd1bGFyXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiLi4vZm9udC9teXJpYWQtd2ViLXByby53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnQvbXlyaWFkLXdlYi1wcm8udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuXG4uaWNvbi1mYWNlYm9vazpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODAwJztcbn1cblxuLyogJ+6ggCcgKi9cbi5pY29uLXR3aXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwMSc7XG59XG5cbi8qICfuoIEnICovXG4uaWNvbi15b3V0dWJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDInO1xufVxuXG4vKiAn7qCCJyAqL1xuLmljb24tdW5ldDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODAzJztcbn1cblxuLyogJ+6ggycgKi9cbi5pY29uLXNlYXJjaDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODA0Jztcbn1cblxuLyogJ+6ghCcgKi9cbi5pY29uLXJpZ2h0LWRpcjpiZWZvcmUsIGRpdi5saW5rcyA+IGE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwNSc7XG59XG5cbi8qICfuoIUnICovXG4uaWNvbi1sb2NhdGlvbjpiZWZvcmUsIHAuZGlyZWNjaW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDYnO1xufVxuXG4vKiAn7qCGJyAqL1xuLmljb24tcGhvbmU6YmVmb3JlLCBwLnRlbDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODA3Jztcbn1cblxuLyogJ+6ghycgKi9cbi5pY29uLWRvd24tZGlyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDgnO1xufVxuXG4vKiAn7qCIJyAqL1xuLmljb24tbWVudTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMGM5Jztcbn1cblxuLyogJ++DiScgKi9cbi5pY29uLW1haWw6YmVmb3JlLCBwLmNvbnRhY3RvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwZTAnO1xufVxuXG4vKiAn74OgJyAqL1xuLmljb24tc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjFlMCc7XG59XG5cbi8qICfvh6AnICovXG4uaWNvbi1tb3VzZS1wb2ludGVyOmJlZm9yZSwgcC53ZWI6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjI0NSc7XG59XG5cbi8qICfviYUnICovXG4uaWNvbi16b29tLWluOmJlZm9yZSwgYS5mb250SW5jcmVhc2U6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwOSc7XG59XG5cbi8qICfuoIknICovXG4uaWNvbi16b29tLW91dDpiZWZvcmUsIGEuZm9udERlY3JlYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MGEnO1xufVxuXG4vKiAn7qCKJyAqL1xuYS5mb250SW5jcmVhc2U6YmVmb3JlLCBhLmZvbnREZWNyZWFzZTpiZWZvcmUge1xuICBmb250LXNpemU6IDE3cHg7XG59XG5cbi5wcmluY2lwYWw6YWZ0ZXIge1xuICBjb250ZW50OiBcIlxcZTgwOFwiO1xuICBmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG5bY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlLCBwLmNvbnRhY3RvOmJlZm9yZSwgcC50ZWw6YmVmb3JlLCBbY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSwgZGl2LmxpbmtzID4gYTpiZWZvcmUsIHAuZGlyZWNjaW9uOmJlZm9yZSwgcC53ZWI6YmVmb3JlLCBwLmNvbnRhY3RvOmJlZm9yZSwgcC50ZWw6YmVmb3JlLCBwLndlYjpiZWZvcmUsIGEuZm9udERlY3JlYXNlOmJlZm9yZSwgYS5mb250SW5jcmVhc2U6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwiZm9udGVsbG9cIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcGVhazogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHdpZHRoOiAxZW07XG4gIG1hcmdpbi1yaWdodDogLjJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvKiBvcGFjaXR5OiAuODsgKi9cbiAgLyogRm9yIHNhZmV0eSAtIHJlc2V0IHBhcmVudCBzdHlsZXMsIHRoYXQgY2FuIGJyZWFrIGdseXBoIGNvZGVzKi9cbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAvKiBmaXggYnV0dG9ucyBoZWlnaHQsIGZvciB0d2l0dGVyIGJvb3RzdHJhcCAqL1xuICBsaW5lLWhlaWdodDogMWVtO1xuICAvKiBBbmltYXRpb24gY2VudGVyIGNvbXBlbnNhdGlvbiAtIG1hcmdpbnMgc2hvdWxkIGJlIHN5bW1ldHJpYyAqL1xuICAvKiByZW1vdmUgaWYgbm90IG5lZWRlZCAqL1xuICBtYXJnaW4tbGVmdDogLjJlbTtcbiAgLyogeW91IGNhbiBiZSBtb3JlIGNvbWZvcnRhYmxlIHdpdGggaW5jcmVhc2VkIGljb25zIHNpemUgKi9cbiAgLyogZm9udC1zaXplOiAxMjAlOyAqL1xuICAvKiBGb250IHNtb290aGluZy4gVGhhdCB3YXMgdGFrZW4gZnJvbSBUV0JTICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAvKiBVbmNvbW1lbnQgZm9yIDNEIGVmZmVjdCAqL1xuICAvKiB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggcmdiYSgxMjcsIDEyNywgMTI3LCAwLjMpOyAqL1xufVxuXG4uaWNvbi1lbnZlbG9wZTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5kaXYubGlua3MgPiBhOmJlZm9yZSB7XG4gIGZvbnQtc2l6ZTogMTlweDtcbiAgY29sb3I6ICMxODM4NmI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNlY2Npb24ge1xuICB3aWR0aDogNzUlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uc2VjY2lvbi1jZW50cm8ge1xuICB3aWR0aDogNTAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uc2VhcmNoIHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXRvcDogMS41NjI1cmVtO1xufVxuXG4uc2VhcmNoOjpiZWZvcmUsIC5zZWFyY2g6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbn1cblxuLnNlYXJjaDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLmxhdGVyYWwge1xuICB3aWR0aDogMjUlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4ubGF0ZXJhbCAubW9kdWxldGFibGUge1xuICBtYXJnaW46IDAgMCAyNXB4IDA7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5hcnRpY3Vsb19jdWF0cm8ge1xuICB3aWR0aDogMjUlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG59XG5cbi5hcnRpY3Vsb19jdWF0cm8gLm1vZHVsZXRhYmxlIHtcbiAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuXG4uYXJ0aWN1bG9fdHJlcyB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmFydGljdWxvX3RyZXMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4uYXJ0aWN1bG8ge1xuICBwYWRkaW5nLXJpZ2h0OiAxLjg3NXJlbTtcbn1cblxuLmFydGljdWxvX2RvcyB7XG4gIHdpZHRoOiA1MCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xufVxuXG4uYXJ0aWN1bG9fZnVsbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uYXJ0aWN1bG9zXzEge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjg3NXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmFydGljdWxvc18xIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLmFydGljdWxvc18yIHtcbiAgd2lkdGg6IDUwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG59XG5cbi5hcnRpY3Vsb3NfMyB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xufVxuXG4uYXJ0aWN1bG9zXzQge1xuICB3aWR0aDogMjUlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjg3NXJlbTtcbn1cblxuLmZ1bGwge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZnVsbCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi50b3Age1xuICBtYXJnaW4tdG9wOiAxLjU2MjVyZW07XG59XG5cbi5idCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTtcbn1cblxuLnNlY2Npb24gLnRpdHVsbyB7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbn1cblxuLnRpdHVsbyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi50aXR1bG8gcCB7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgzODZiO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCA0cHggI0QyQTkyRDtcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4ubGF0ZXJhbCAubW9kdWxldGFibGUgPiBoMyxcbi5ibG9xdWUtbGF0ZXJhbCAubW9kdWxldGFibGUgPiBoMyxcbi5ibG9xdWUtcHJpbmNpcGFsIC5tb2R1bGV0YWJsZSA+IGgzLFxuLmJsb3F1ZS1zZWN1bmRhcmlvIC5tb2R1bGV0YWJsZSA+IGgzLFxuLmJsb3F1ZS03IC5tb2R1bGV0YWJsZSA+IGgzLCAubW9kdWxldGFibGUgPiBoMyB7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgzODZiO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCA0cHggI0QyQTkyRDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbi8qLmxhdGVyYWwgLm1vZHVsZXRhYmxlID4gaDMsLmJsb3F1ZS1sYXRlcmFsIC5tb2R1bGV0YWJsZSA+IGgzLC5ibG9xdWUtcHJpbmNpcGFsIC5tb2R1bGV0YWJsZSA+IGgzLC5ibG9xdWUtc2VjdW5kYXJpbyAubW9kdWxldGFibGUgPmgze1xuICAgIHdpZHRoOiAyNTBweDtcbn1cbi5ibG9xdWUtcHJpbmNpcGFsIC5tb2R1bGV0YWJsZSA+IGgzLC5ibG9xdWUtc2VjdW5kYXJpbyAubW9kdWxldGFibGUgPmgzLC5ibG9xdWUtNyAubW9kdWxldGFibGUgPiBoM3tcbiAgICB3aWR0aDogMjMlXG59Ki9cbi5tb2R1bGV0YWJsZSA+IGgzIHtcbiAgd2lkdGg6IDI1MHB4O1xufVxuXG4vKi5ibG9xdWUtc2VjdW5kYXJpbyAubW9kdWxldGFibGUgPmgze1xuICAqICB3aWR0aDogMzglXG59Ki9cbnVsLm1hcy10aXR1bGFyZXMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxudWwubWFzLXRpdHVsYXJlcyBsaSB7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4uZmVjaGEtZXZlbnRvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNTRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4Mzg2YjtcbiAgY29sb3I6ICNmM2YzZjM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5mZWNoYS1ldmVudG8gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmZlY2hhLWV2ZW50byBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnRpdHVsYXIge1xuICB3aWR0aDogMjMwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLnRpdHVsby1ldmVudG8ge1xuICB3aWR0aDogMjMwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4uYmxvcXVlLXByaW5jaXBhbCB7XG4gIHdpZHRoOiA3NSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5ibG9xdWUtbGF0ZXJhbCB7XG4gIHdpZHRoOiAyNSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5ibG9xdWUtc2VjdW5kYXJpbyB7XG4gIHdpZHRoOiA1MCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5ibG9xdWUtNyAubW9kdWxldGFibGUge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG4uYmxvcXVlLXNlY3VuZGFyaW8tMyAubW9kdWxldGFibGUge1xuICB3aWR0aDogMzMuMzMzMzMlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG4uYmxvcXVlLXNlY3VuZGFyaW8tMyB7XG4gIHdpZHRoOiA3NSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5tb2R1bGV0YWJsZS5lc3BhY2lvIHtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuXG4uYmxvcXVlLXNlY3VuZGFyaW8tMSAubW9kdWxldGFibGUge1xuICB3aWR0aDogMjUlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ibG9xdWUtc2VjdW5kYXJpby0xIC5tb2R1bGV0YWJsZSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5tb2R1bGV0YWJsZS5ib3R0b20ge1xuICBtYXJnaW4tdG9wOiA0MHB4O1xufVxuXG5maWVsZHNldC5waHJhc2VzLCAuZmllbGRzZXQub25seSB7XG4gIHdpZHRoOiA1MCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgZmllbGRzZXQucGhyYXNlcywgLmZpZWxkc2V0Lm9ubHkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4ucmVzdWx0YWRvcyB7XG4gIG1hcmdpbjogMjVweCAwO1xufVxuXG4ucGFnaW5hdGlvbiAuY3VycmVudCBhIHtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5wYWdpbmF0aW9uIC5jdXJyZW50IGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgzODZiO1xufVxuXG4uZGF0b3MtdWJpY2FjaW9uIHtcbiAgd2lkdGg6IDUwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZGF0b3MtdWJpY2FjaW9uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLmRhdG9zLXViaWNhY2lvbiBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxudWwucGFnaW5hdGlvbiBsaSBhOmhvdmVyIHtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5maWVsZHMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNvbnRlbmVkb3IuYmxvcXVlLTMtNC5idCB7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG59XG5cbi8qKlxuICogQHZlcnNpb24gICAgMi44LnhcbiAqIEBwYWNrYWdlICAgIEsyXG4gKiBAYXV0aG9yICAgICBKb29tbGFXb3JrcyBodHRwOi8vd3d3Lmpvb21sYXdvcmtzLm5ldFxuICogQGNvcHlyaWdodCAgQ29weXJpZ2h0IChjKSAyMDA2IC0gMjAxNyBKb29tbGFXb3JrcyBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBAbGljZW5zZSAgICBHTlUvR1BMIGxpY2Vuc2U6aHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2dwbC5odG1sXG4gKi9cbi8qXG5cdCMjIyBMZWdlbmQgIyMjXG5cdENvbG9ycyB1c2VkOlxuXHRcdCNmYWZhZmEgKGxpZ2h0IGdyZXkpIHVzZWQgYXMgYmFja2dyb3VuZCBvbiBhbGwgdG9vbGJhcnMsIGNhdGVnb3J5IGFuZCB1c2VyL2F1dGhvciBib3hlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdENvbW1vbiBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogLS0tIEJhc2ljIHR5cG9ncmFwaHkgLS0tICovXG5hOmFjdGl2ZSxcbmE6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuXG5pbWcge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi8qIC0tLSBHbG9iYWwgSzIgY29udGFpbmVyIC0tLSAqL1xuI2syQ29udGFpbmVyIHtcbiAgcGFkZGluZzogMCAwIDI0cHggMDtcbn1cblxuYm9keS5jb250ZW50cGFuZSAjazJDb250YWluZXIge1xuICBwYWRkaW5nOiAxNnB4O1xufVxuXG4vKiB1c2VkIGluIHBvcHVwcyAqL1xuLyogLS0tIEdlbmVyYWwgcGFkZGluZyAtLS0gKi9cbi5rMlBhZGRpbmcge1xuICBwYWRkaW5nOiA0cHg7XG59XG5cbi8qIC0tLSBDbGVhcmluZyAtLS0gKi9cbi5jbHIge1xuICBjbGVhcjogYm90aDtcbiAgaGVpZ2h0OiAwO1xuICBsaW5lLWhlaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLyogLS0tIFN0cmlwZWQgcm93cyAoYWRkIGEgZGlmZmVyZW50IGJhY2tncm91bmQgY29sb3IgZW5hYmxlIHN0cmlwcGVkIHJvd3MgaW4gdmFyaW91cyBsaXN0aW5ncyB3aXRoIEsyIGNvbnRlbnQpIC0tLSAqL1xuLmV2ZW4ge1xuICBwYWRkaW5nOiAycHg7XG59XG5cbi5vZGQge1xuICBwYWRkaW5nOiAycHg7XG59XG5cbi8qIC0tLSBSU1MgZmVlZCBpY29uIC0tLSAqL1xuZGl2LmsyRmVlZEljb24ge1xuICBwYWRkaW5nOiA0cHggOHB4O1xufVxuXG5kaXYuazJGZWVkSWNvbiBhLFxuZGl2LmsyRmVlZEljb24gYTpob3ZlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cblxuZGl2LmsyRmVlZEljb24gYSBzcGFuLFxuZGl2LmsyRmVlZEljb24gYTpob3ZlciBzcGFuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogLS0tIFJhdGluZyAtLS0gKi9cbi5pdGVtUmF0aW5nRm9ybSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBsaW5lLWhlaWdodDogMjVweDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5pdGVtUmF0aW5nTG9nIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMCAwIDRweDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbmRpdi5pdGVtUmF0aW5nRm9ybSAuZm9ybUxvZ0xvYWRpbmcge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2xvYWRlcnMvZ2VuZXJpYy5naWYpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nOiAwIDAgMCAyMHB4O1xufVxuXG4uaXRlbVJhdGluZ0xpc3QsXG4uaXRlbVJhdGluZ0xpc3QgYTpob3Zlcixcbi5pdGVtUmF0aW5nTGlzdCAuaXRlbUN1cnJlbnRSYXRpbmcge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vaW1hZ2VzL3JhdGluZ3N0YXJzLmdpZikgbGVmdCAtMTAwMHB4IHJlcGVhdC14O1xufVxuXG4uaXRlbVJhdGluZ0xpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTI1cHg7XG4gIGhlaWdodDogMjVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDtcbn1cblxuLml0ZW1SYXRpbmdMaXN0IGxpIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uaXRlbVJhdGluZ0xpc3QgYSxcbi5pdGVtUmF0aW5nTGlzdCAuaXRlbUN1cnJlbnRSYXRpbmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgdGV4dC1pbmRlbnQ6IC0xMDAwcHg7XG4gIGhlaWdodDogMjVweDtcbiAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uaXRlbVJhdGluZ0xpc3QgYTpob3ZlciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgYm90dG9tO1xufVxuXG4uaXRlbVJhdGluZ0xpc3QgYS5vbmUtc3RhciB7XG4gIHdpZHRoOiAyMCU7XG4gIHotaW5kZXg6IDY7XG59XG5cbi5pdGVtUmF0aW5nTGlzdCBhLnR3by1zdGFycyB7XG4gIHdpZHRoOiA0MCU7XG4gIHotaW5kZXg6IDU7XG59XG5cbi5pdGVtUmF0aW5nTGlzdCBhLnRocmVlLXN0YXJzIHtcbiAgd2lkdGg6IDYwJTtcbiAgei1pbmRleDogNDtcbn1cblxuLml0ZW1SYXRpbmdMaXN0IGEuZm91ci1zdGFycyB7XG4gIHdpZHRoOiA4MCU7XG4gIHotaW5kZXg6IDM7XG59XG5cbi5pdGVtUmF0aW5nTGlzdCBhLmZpdmUtc3RhcnMge1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMjtcbn1cblxuLml0ZW1SYXRpbmdMaXN0IC5pdGVtQ3VycmVudFJhdGluZyB7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnNwYW4uc2l0ZVJvb3Qge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiAtLS0gQ1NTIGFkZGVkIHdpdGggSmF2YVNjcmlwdCAtLS0gKi9cbi5zbWFsbGVyRm9udFNpemUge1xuICBmb250LXNpemU6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4ubGFyZ2VyRm9udFNpemUge1xuICBmb250LXNpemU6IDE1MCU7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xufVxuXG4vKiAtLS0gUmVDYXB0Y2hhIC0tLSAqL1xuLnJlY2FwdGNoYXRhYmxlIC5yZWNhcHRjaGFfaW1hZ2VfY2VsbCxcbiNyZWNhcHRjaGFfdGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG59XG5cbiNyZWNhcHRjaGFfdGFibGUge1xuICBib3JkZXItY29sb3I6ICNjY2MgIWltcG9ydGFudDtcbn1cblxuI3JlY2FwdGNoYV9yZXNwb25zZV9maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogI2NjYyAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5rMi1yZWNhcHRjaGEtdjIge1xuICBtYXJnaW4tdG9wOiAxMnB4O1xufVxuXG4vKiAtLS0gUHJpbWFyeSBsaXN0cyBpbiBtb2R1bGVzIC0tLSAqL1xuZGl2LmsyTGF0ZXN0Q29tbWVudHNCbG9jayB1bCxcbmRpdi5rMlRvcENvbW1lbnRlcnNCbG9jayB1bCxcbmRpdi5rMkl0ZW1zQmxvY2sgdWwsXG5kaXYuazJMb2dpbkJsb2NrIHVsLFxuZGl2LmsyVXNlckJsb2NrIHVsLmsyVXNlckJsb2NrQWN0aW9ucyxcbmRpdi5rMlVzZXJCbG9jayB1bC5rMlVzZXJCbG9ja1JlbmRlcmVkTWVudSxcbmRpdi5rMkFyY2hpdmVzQmxvY2sgdWwsXG5kaXYuazJBdXRob3JzTGlzdEJsb2NrIHVsLFxuZGl2LmsyQ2F0ZWdvcmllc0xpc3RCbG9jayB1bCxcbmRpdi5rMlVzZXJzQmxvY2sgdWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKiBFeGFtcGxlIENTUzogcGFkZGluZzowO21hcmdpbjowO2xpc3Qtc3R5bGU6bm9uZTsgKi9cbmRpdi5rMkxhdGVzdENvbW1lbnRzQmxvY2sgdWwgbGksXG5kaXYuazJUb3BDb21tZW50ZXJzQmxvY2sgdWwgbGksXG5kaXYuazJJdGVtc0Jsb2NrIHVsIGxpLFxuZGl2LmsyTG9naW5CbG9jayB1bCBsaSxcbmRpdi5rMkFyY2hpdmVzQmxvY2sgdWwgbGksXG5kaXYuazJBdXRob3JzTGlzdEJsb2NrIHVsIGxpLFxuZGl2LmsyQ2F0ZWdvcmllc0xpc3RCbG9jayB1bCBsaSxcbmRpdi5rMlVzZXJzQmxvY2sgdWwgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDAgMjRweCAwO1xufVxuXG4vKiBFeGFtcGxlIENTUzogZGlzcGxheTpibG9jaztjbGVhcjpib3RoO3BhZGRpbmc6MnB4IDA7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkICNjY2M7ICovXG4uY2xlYXJMaXN0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxvYXQ6IG5vbmU7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4vKiB0aGlzIGNsYXNzIGlzIHVzZWQgdG8gY2xlYXIgYWxsIHByZXZpb3VzIGZsb2F0aW5nIGxpc3QgZWxlbWVudHMgKi9cbi5sYXN0SXRlbSB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLyogY2xhc3MgYXBwZW5kZWQgb24gbGFzdCBsaXN0IGl0ZW0gKi9cbi8qIC0tLSBBdmF0YXJzIC0tLSAqL1xuLmsyQXZhdGFyIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwYWRkaW5nOiAycHg7XG4gIG1hcmdpbjogMnB4IDRweCA0cHggMDtcbn1cblxuLyogLS0tIFJlYWQgbW9yZSAtLS0gKi9cbi8qIC0tLSBQYWdpbmF0aW9uIC0tLSAqL1xuZGl2LmsyUGFnaW5hdGlvbiB7XG4gIHBhZGRpbmc6IDhweDtcbiAgbWFyZ2luOiAyNHB4IDAgNHB4IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuZGl2LmsyUGFnaW5hdGlvbiB1bCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuZGl2LmsyUGFnaW5hdGlvbiB1bCBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5kaXYuazJQYWdpbmF0aW9uIHVsIGxpIGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIG1hcmdpbjogMCA4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuZGl2LmsyUGFnaW5hdGlvbiB1bCBsaSBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5kaXYuazJQYWdpbmF0aW9uIHVsIGxpLmFjdGl2ZSBhIHtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbn1cblxuZGl2LmsyUGFnaW5hdGlvbiB1bCBsaSBhIHNwYW4ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiAtLS0gRmVhdHVyZWQgZmxhZ3M6IHRoZSBjbGFzc2VzIGFyZSByZXBlYXRlZCBmdXJ0aGVyIGJlbG93IHRvIGluZGljYXRlIHBsYWNlbWVudCBpbiB0aGUgQ1NTIHN0cnVjdHVyZSAtLS0gKi9cbmRpdi5pdGVtSXNGZWF0dXJlZCxcbmRpdi5jYXRJdGVtSXNGZWF0dXJlZCxcbmRpdi51c2VySXRlbUlzRmVhdHVyZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmRpdi5pdGVtSXNGZWF0dXJlZDpiZWZvcmUsXG5kaXYuY2F0SXRlbUlzRmVhdHVyZWQ6YmVmb3JlLFxuZGl2LnVzZXJJdGVtSXNGZWF0dXJlZDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIGNvbG9yOiAjQ0YxOTE5O1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi8qIC0tLSBTZXBhcmF0b3JzIC0tLSAqL1xuLmsySG9yaXpvbnRhbFNlcCB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDhweDtcbn1cblxuLyogLS0tIEVkaXQgQnV0dG9ucyAtLS0gKi9cbnNwYW4uaXRlbUVkaXRMaW5rLFxuc3Bhbi5jYXRJdGVtRWRpdExpbmssXG5zcGFuLnVzZXJJdGVtRWRpdExpbmssXG5zcGFuLnVzZXJJdGVtQWRkTGluayB7XG4gIGZsb2F0OiByaWdodDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEyMHB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuc3Bhbi5pdGVtRWRpdExpbmsgYSxcbnNwYW4uY2F0SXRlbUVkaXRMaW5rIGEsXG5zcGFuLnVzZXJJdGVtRWRpdExpbmsgYSxcbnNwYW4udXNlckl0ZW1BZGRMaW5rIGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogIzJkOTZkZDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbnNwYW4uaXRlbUVkaXRMaW5rIGE6aG92ZXIsXG5zcGFuLmNhdEl0ZW1FZGl0TGluayBhOmhvdmVyLFxuc3Bhbi51c2VySXRlbUVkaXRMaW5rIGE6aG92ZXIsXG5zcGFuLnVzZXJJdGVtQWRkTGluayBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzIxN2RiYjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Q29tcG9uZW50IC0gSXRlbSB2aWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5hLml0ZW1QcmludFRoaXNQYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxNjBweDtcbiAgbWFyZ2luOiA0cHggYXV0byAxNnB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbmEuaXRlbVByaW50VGhpc1BhZ2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmRpdi5pdGVtVmlldyB7XG4gIHBhZGRpbmc6IDhweCAwIDI0cHggMDtcbiAgbWFyZ2luOiAwIDAgMjRweCAwO1xufVxuXG4vKiB0aGlzIGlzIHRoZSBpdGVtIGNvbnRhaW5lciBmb3IgdGhpcyB2aWV3ICovXG4vKiBBdHRhY2ggYSBjbGFzcyBmb3IgZWFjaCBmZWF0dXJlZCBpdGVtICovXG5kaXYuaXRlbUhlYWRlciBzcGFuLml0ZW1EYXRlQ3JlYXRlZCB7XG4gIGNvbG9yOiAjOTk5O1xuICBmb250LXNpemU6IDExcHg7XG59XG5cbmRpdi5pdGVtSGVhZGVyIGgyLml0ZW1UaXRsZSB7XG4gIHBhZGRpbmc6IDEwcHggMCA0cHggMDtcbiAgbWFyZ2luOiAwO1xufVxuXG5kaXYuaXRlbUhlYWRlciBoMi5pdGVtVGl0bGUgc3BhbiBzdXAge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjQ0YxOTE5O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qIFwiRmVhdHVyZWRcIiBwcmVzZW50ZWQgaW4gc3VwZXJzY3JpcHQgKi9cbmRpdi5pdGVtSGVhZGVyIHNwYW4uaXRlbUF1dGhvciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbmRpdi5pdGVtSGVhZGVyIHNwYW4uaXRlbUF1dGhvciBhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xufVxuXG5kaXYuaXRlbVRvb2xiYXIgdWwge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAyM3B4IDEzcHggMCAwcHg7XG59XG5cbmRpdi5pdGVtVG9vbGJhciB1bCBsaSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDAgNHB4IDAgOHB4O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbmRpdi5pdGVtVG9vbGJhciB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4vKiByZW1vdmUgdGhlIGZpcnN0IENTUyBib3JkZXIgZnJvbSB0aGUgbGVmdCBvZiB0aGUgdG9vbGJhciAqL1xuZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbmRpdi5pdGVtVG9vbGJhciB1bCBsaSBhIGltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbmRpdi5pdGVtVG9vbGJhciB1bCBsaSBhI2ZvbnREZWNyZWFzZSB7XG4gIG1hcmdpbjogMCAwIDAgMnB4O1xufVxuXG5kaXYuaXRlbVRvb2xiYXIgdWwgbGkgYSNmb250RGVjcmVhc2UgaW1nIHtcbiAgd2lkdGg6IDEzcHg7XG4gIGhlaWdodDogMTNweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG5kaXYuaXRlbVRvb2xiYXIgdWwgbGkgYSNmb250SW5jcmVhc2Uge1xuICBtYXJnaW46IDAgMCAwIDJweDtcbn1cblxuZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEjZm9udEluY3JlYXNlIGltZyB7XG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEjZm9udERlY3JlYXNlIHNwYW4sXG5kaXYuaXRlbVRvb2xiYXIgdWwgbGkgYSNmb250SW5jcmVhc2Ugc3BhbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmRpdi5pdGVtUmF0aW5nQmxvY2sge1xuICBwYWRkaW5nOiA4cHggMDtcbn1cblxuZGl2Lml0ZW1SYXRpbmdCbG9jayBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzk5OTtcbn1cblxuZGl2Lml0ZW1Cb2R5IHtcbiAgcGFkZGluZzogOHB4IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuZGl2Lml0ZW1JbWFnZUJsb2NrIHtcbiAgcGFkZGluZzogOHB4IDA7XG4gIG1hcmdpbjogMCAwIDE2cHggMDtcbn1cblxuc3Bhbi5pdGVtSW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDAgMCA4cHggMDtcbn1cblxuc3Bhbi5pdGVtSW1hZ2UgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbnNwYW4uaXRlbUltYWdlQ2FwdGlvbiB7XG4gIGNvbG9yOiAjNjY2O1xuICBmbG9hdDogbGVmdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuc3Bhbi5pdGVtSW1hZ2VDcmVkaXRzIHtcbiAgY29sb3I6ICM5OTk7XG4gIGZsb2F0OiByaWdodDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICBzcGFuLml0ZW1JbWFnZUNhcHRpb24sXG4gIHNwYW4uaXRlbUltYWdlQ3JlZGl0cyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbmRpdi5pdGVtSW50cm9UZXh0IHtcbiAgY29sb3I6ICM0NDQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBwYWRkaW5nOiA0cHggMCAxMnB4IDA7XG59XG5cbmRpdi5pdGVtRnVsbFRleHQgaDMge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDE2cHggMCA0cHggMDtcbn1cblxuZGl2Lml0ZW1FeHRyYUZpZWxkcyB7XG4gIG1hcmdpbjogMTZweCAwIDAgMDtcbiAgcGFkZGluZzogOHB4IDAgMCAwO1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICNkZGQ7XG59XG5cbmRpdi5pdGVtRXh0cmFGaWVsZHMgaDMge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMCA4cHggMDtcbn1cblxuZGl2Lml0ZW1FeHRyYUZpZWxkcyB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuZGl2Lml0ZW1FeHRyYUZpZWxkcyB1bCBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5kaXYuaXRlbUV4dHJhRmllbGRzIHVsIGxpIHNwYW4uaXRlbUV4dHJhRmllbGRzTGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW46IDAgNHB4IDAgMDtcbiAgd2lkdGg6IDMwJTtcbn1cblxuZGl2Lml0ZW1Db250ZW50Rm9vdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nOiA0cHggMDtcbiAgbWFyZ2luOiAxNnB4IDAgNHB4IDA7XG4gIGNvbG9yOiAjOTk5O1xufVxuXG5zcGFuLml0ZW1IaXRzIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbmRpdi5pdGVtU29jaWFsU2hhcmluZyB7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG59XG5cbmRpdi5pdGVtVHdpdHRlckJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDJweCAyNHB4IDAgMDtcbn1cblxuZGl2Lml0ZW1GYWNlYm9va0J1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XG4gIHdpZHRoOiAyMDBweDtcbn1cblxuZGl2Lml0ZW1MaW5rcyB7XG4gIG1hcmdpbjogMTZweCAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5kaXYuaXRlbUNhdGVnb3J5IHNwYW4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICM1NTU7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbn1cblxuZGl2Lml0ZW1UYWdzQmxvY2sgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzU1NTtcbiAgcGFkZGluZzogMCA0cHggMCAwO1xufVxuXG5kaXYuaXRlbVRhZ3NCbG9jayB1bC5pdGVtVGFncyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG5kaXYuaXRlbVRhZ3NCbG9jayB1bC5pdGVtVGFncyBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMCA0cHggMCAwO1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuZGl2Lml0ZW1UYWdzQmxvY2sgdWwuaXRlbVRhZ3MgbGkgYTpiZWZvcmUge1xuICBjb250ZW50OiBcIiNcIjtcbn1cblxuZGl2Lml0ZW1BdHRhY2htZW50c0Jsb2NrIHtcbiAgcGFkZGluZzogNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNjY2M7XG59XG5cbmRpdi5pdGVtQXR0YWNobWVudHNCbG9jayBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNTU1O1xuICBwYWRkaW5nOiAwIDRweCAwIDA7XG59XG5cbmRpdi5pdGVtQXR0YWNobWVudHNCbG9jayB1bC5pdGVtQXR0YWNobWVudHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuZGl2Lml0ZW1BdHRhY2htZW50c0Jsb2NrIHVsLml0ZW1BdHRhY2htZW50cyBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMCA0cHg7XG4gIG1hcmdpbjogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5kaXYuaXRlbUF0dGFjaG1lbnRzQmxvY2sgdWwuaXRlbUF0dGFjaG1lbnRzIGxpIHNwYW4ge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiAjOTk5O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4vKiBBdXRob3IgYmxvY2sgKi9cbmRpdi5pdGVtQXV0aG9yQmxvY2sge1xuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG1hcmdpbjogMCAwIDE2cHggMDtcbiAgcGFkZGluZzogOHB4O1xufVxuXG5kaXYuaXRlbUF1dGhvckJsb2NrIGltZy5pdGVtQXV0aG9yQXZhdGFyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwYWRkaW5nOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIG1hcmdpbjogMCA4cHggMCAwO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbmRpdi5pdGVtQXV0aG9yQmxvY2sgZGl2Lml0ZW1BdXRob3JEZXRhaWxzIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA0cHggMCAwIDA7XG59XG5cbmRpdi5pdGVtQXV0aG9yQmxvY2sgZGl2Lml0ZW1BdXRob3JEZXRhaWxzIGgzLmF1dGhvck5hbWUge1xuICBtYXJnaW46IDAgMCA0cHggMDtcbiAgcGFkZGluZzogMDtcbn1cblxuZGl2Lml0ZW1BdXRob3JCbG9jayBkaXYuaXRlbUF1dGhvckRldGFpbHMgaDMuYXV0aG9yTmFtZSBhIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG5kaXYuaXRlbUF1dGhvckJsb2NrIGRpdi5pdGVtQXV0aG9yRGV0YWlscyBzcGFuLml0ZW1BdXRob3JVcmwge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICM1NTU7XG59XG5cbmRpdi5pdGVtQXV0aG9yQmxvY2sgZGl2Lml0ZW1BdXRob3JEZXRhaWxzIHNwYW4uaXRlbUF1dGhvckVtYWlsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNTU1O1xufVxuXG5kaXYuaXRlbUF1dGhvckJsb2NrIGRpdi5pdGVtQXV0aG9yRGV0YWlscyBzcGFuLml0ZW1BdXRob3JVcmwgYSxcbmRpdi5pdGVtQXV0aG9yQmxvY2sgZGl2Lml0ZW1BdXRob3JEZXRhaWxzIHNwYW4uaXRlbUF1dGhvckVtYWlsIGEge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4vKiBBdXRob3IgbGF0ZXN0ICovXG5kaXYuaXRlbUF1dGhvckxhdGVzdCB7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qIFJlbGF0ZWQgYnkgdGFnICovXG5kaXYuaXRlbVJlbGF0ZWQge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKiBBZGQgb3ZlcmZsb3cteDpzY3JvbGw7IGlmIHlvdSB3YW50IHRvIGVuYWJsZSB0aGUgc2Nyb2xsaW5nIGZlYXR1cmVzLCBhcyBleHBsYWluZWQgaW4gaXRlbS5waHAgKi9cbmRpdi5pdGVtUmVsYXRlZCB1bCBsaS5rMlNjcm9sbGVyRWxlbWVudCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbjogMCA0cHggNHB4IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi8qIHlvdSBuZWVkIHRvIGluc2VydCB0aGlzIGNsYXNzIGluIHRoZSByZWxhdGVkIGxpIGVsZW1lbnQgaW4gaXRlbS5waHAgZm9yIHRoaXMgc3R5bGluZyB0byB0YWtlIGVmZmVjdCAqL1xuZGl2Lml0ZW1SZWxhdGVkIHVsIGxpLmNsciB7XG4gIGNsZWFyOiBib3RoO1xuICBoZWlnaHQ6IDA7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4vKiBWaWRlbyAqL1xuZGl2Lml0ZW1WaWRlb0Jsb2NrIHtcbiAgbWFyZ2luOiAwIDAgMTZweCAwO1xuICBwYWRkaW5nOiAxNnB4O1xuICBiYWNrZ3JvdW5kOiAjMDEwMTAxIHVybCguLi9pbWFnZXMvdmlkZW9iZy5naWYpIHJlcGVhdC14IGJvdHRvbTtcbiAgY29sb3I6ICNlZWU7XG59XG5cbmRpdi5pdGVtVmlkZW9CbG9jayBkaXYuaXRlbVZpZGVvRW1iZWRkZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIGZvciBlbWJlZGRlZCB2aWRlb3MgKG5vdCB1c2luZyBBbGxWaWRlb3MpICovXG5kaXYuaXRlbVZpZGVvQmxvY2sgc3Bhbi5pdGVtVmlkZW8ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuZGl2Lml0ZW1WaWRlb0Jsb2NrIHNwYW4uaXRlbVZpZGVvQ2FwdGlvbiB7XG4gIGNvbG9yOiAjZWVlO1xuICBmbG9hdDogbGVmdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdpZHRoOiA2MCU7XG59XG5cbmRpdi5pdGVtVmlkZW9CbG9jayBzcGFuLml0ZW1WaWRlb0NyZWRpdHMge1xuICBjb2xvcjogI2VlZTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDExcHg7XG4gIHdpZHRoOiAzNSU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICBkaXYuaXRlbVZpZGVvQmxvY2sgc3Bhbi5pdGVtVmlkZW9DYXB0aW9uLFxuICBkaXYuaXRlbVZpZGVvQmxvY2sgc3Bhbi5pdGVtVmlkZW9DcmVkaXRzIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLyogSW1hZ2UgR2FsbGVyeSAqL1xuZGl2Lml0ZW1JbWFnZUdhbGxlcnkge1xuICBtYXJnaW46IDAgMCAxNnB4IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qIEFydGljbGUgbmF2aWdhdGlvbiAqL1xuZGl2Lml0ZW1OYXZpZ2F0aW9uIHtcbiAgcGFkZGluZzogOHB4O1xuICBtYXJnaW46IDAgMCAyNHB4IDA7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuZGl2Lml0ZW1OYXZpZ2F0aW9uIHNwYW4uaXRlbU5hdmlnYXRpb25UaXRsZSB7XG4gIGNvbG9yOiAjOTk5O1xufVxuXG5kaXYuaXRlbU5hdmlnYXRpb24gYS5pdGVtUHJldmlvdXMge1xuICBwYWRkaW5nOiAwIDEycHg7XG59XG5cbmRpdi5pdGVtTmF2aWdhdGlvbiBhLml0ZW1OZXh0IHtcbiAgcGFkZGluZzogMCAxMnB4O1xufVxuXG4vKiBDb21tZW50cyAqL1xuZGl2Lml0ZW1Db21tZW50cyB7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogMTZweDtcbn1cblxuZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IHtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG5kaXYuaXRlbUNvbW1lbnRzIHVsLml0ZW1Db21tZW50c0xpc3QgbGkuYXV0aG9yUmVzcG9uc2Uge1xuICBiYWNrZ3JvdW5kOiAjZjVmZGZmO1xufVxuXG5kaXYuaXRlbUNvbW1lbnRzIHVsLml0ZW1Db21tZW50c0xpc3QgbGkudW5wdWJsaXNoZWRDb21tZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZWFlYTtcbn1cblxuZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IGxpIGltZyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDRweCA0cHggNHB4IDA7XG4gIHBhZGRpbmc6IDRweDtcbn1cblxuZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IGxpIHNwYW4uY29tbWVudERhdGUge1xuICBwYWRkaW5nOiAwIDRweCAwIDA7XG4gIG1hcmdpbjogMCA4cHggMCAwO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5kaXYuaXRlbUNvbW1lbnRzIHVsLml0ZW1Db21tZW50c0xpc3QgbGkgc3Bhbi5jb21tZW50QXV0aG9yTmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbmRpdi5pdGVtQ29tbWVudHMgdWwuaXRlbUNvbW1lbnRzTGlzdCBsaSBwIHtcbiAgcGFkZGluZzogNHB4IDA7XG59XG5cbmRpdi5pdGVtQ29tbWVudHMgdWwuaXRlbUNvbW1lbnRzTGlzdCBsaSBzcGFuLmNvbW1lbnRBdXRob3JFbWFpbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmRpdi5pdGVtQ29tbWVudHMgdWwuaXRlbUNvbW1lbnRzTGlzdCBsaSBzcGFuLmNvbW1lbnRMaW5rIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuXG5kaXYuaXRlbUNvbW1lbnRzIHVsLml0ZW1Db21tZW50c0xpc3QgbGkgc3Bhbi5jb21tZW50TGluayBhIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogIzk5OTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbmRpdi5pdGVtQ29tbWVudHMgdWwuaXRlbUNvbW1lbnRzTGlzdCBsaSBzcGFuLmNvbW1lbnRMaW5rIGE6aG92ZXIge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjNTU1O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IGxpIHNwYW4uY29tbWVudFRvb2xiYXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG59XG5cbmRpdi5pdGVtQ29tbWVudHMgdWwuaXRlbUNvbW1lbnRzTGlzdCBsaSBzcGFuLmNvbW1lbnRUb29sYmFyIGEge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjOTk5O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XG59XG5cbmRpdi5pdGVtQ29tbWVudHMgdWwuaXRlbUNvbW1lbnRzTGlzdCBsaSBzcGFuLmNvbW1lbnRUb29sYmFyIGE6aG92ZXIge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjNTU1O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IGxpIHNwYW4uY29tbWVudFRvb2xiYXJMb2FkaW5nIHtcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9sb2FkZXJzL3NlYXJjaC5naWYpIG5vLXJlcGVhdCAxMDAlIDUwJTtcbn1cblxuZGl2Lml0ZW1Db21tZW50c1BhZ2luYXRpb24ge1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbjogMCAwIDI0cHggMDtcbn1cblxuLyogSm9vbWxhIDEuNSAtIDIuNSAqL1xuZGl2Lml0ZW1Db21tZW50c1BhZ2luYXRpb24gc3Bhbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi8qIEpvb21sYSAzLnggKi9cbmRpdi5pdGVtQ29tbWVudHNQYWdpbmF0aW9uIHVsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5kaXYuaXRlbUNvbW1lbnRzUGFnaW5hdGlvbiB1bCBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5kaXYuaXRlbUNvbW1lbnRzUGFnaW5hdGlvbiB1bCBsaSBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBtYXJnaW46IDAgOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuZGl2Lml0ZW1Db21tZW50c1BhZ2luYXRpb24gdWwgbGkgYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuZGl2Lml0ZW1Db21tZW50c1BhZ2luYXRpb24gdWwgbGkuYWN0aXZlIGEge1xuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xufVxuXG5kaXYuaXRlbUNvbW1lbnRzUGFnaW5hdGlvbiB1bCBsaSBhIHNwYW4ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5kaXYuaXRlbUNvbW1lbnRzRm9ybSBoMyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAwIDRweCAwO1xufVxuXG5kaXYuaXRlbUNvbW1lbnRzRm9ybSBwLml0ZW1Db21tZW50c0Zvcm1Ob3RlcyB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nOiA4cHggMDtcbn1cblxuZGl2Lml0ZW1Db21tZW50c0Zvcm0gZm9ybSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmRpdi5pdGVtQ29tbWVudHNGb3JtIGZvcm0gbGFiZWwuZm9ybUNvbW1lbnQsXG5kaXYuaXRlbUNvbW1lbnRzRm9ybSBmb3JtIGxhYmVsLmZvcm1OYW1lLFxuZGl2Lml0ZW1Db21tZW50c0Zvcm0gZm9ybSBsYWJlbC5mb3JtRW1haWwsXG5kaXYuaXRlbUNvbW1lbnRzRm9ybSBmb3JtIGxhYmVsLmZvcm1VcmwsXG5kaXYuaXRlbUNvbW1lbnRzRm9ybSBmb3JtIGxhYmVsLmZvcm1SZWNhcHRjaGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxMnB4IDAgMCAycHg7XG59XG5cbmRpdi5pdGVtQ29tbWVudHNGb3JtIGZvcm0gdGV4dGFyZWEuaW5wdXRib3gge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjAwcHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogOHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5kaXYuaXRlbUNvbW1lbnRzRm9ybSBmb3JtIGlucHV0LmlucHV0Ym94IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDhweDtcbiAgbGluZS1oZWlnaHQ6IDE1MCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuZGl2Lml0ZW1Db21tZW50c0Zvcm0gZm9ybSBpbnB1dCNzdWJtaXRDb21tZW50QnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMTZweCAwIDAgMDtcbiAgcGFkZGluZzogOHB4IDE2cHg7XG4gIGJhY2tncm91bmQ6ICMyZDk2ZGQ7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuZGl2Lml0ZW1Db21tZW50c0Zvcm0gZm9ybSBpbnB1dCNzdWJtaXRDb21tZW50QnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzIxN2RiYjtcbn1cblxuZGl2Lml0ZW1Db21tZW50c0Zvcm0gZm9ybSBzcGFuI2Zvcm1Mb2cge1xuICBtYXJnaW46IDI0cHg7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuZGl2Lml0ZW1Db21tZW50c0Zvcm0gZm9ybSBzcGFuI2Zvcm1Mb2cuazJGb3JtTG9nRXJyb3Ige1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogI2YwMDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbmRpdi5pdGVtQ29tbWVudHNGb3JtIGZvcm0gc3BhbiNmb3JtTG9nLmsyRm9ybUxvZ1N1Y2Nlc3Mge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogIzE4YWMwMDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbmRpdi5pdGVtQ29tbWVudHNGb3JtIGZvcm0gLmZvcm1Mb2dMb2FkaW5nIHtcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9sb2FkZXJzL2dlbmVyaWMuZ2lmKSBuby1yZXBlYXQgbGVmdCBjZW50ZXI7XG59XG5cbmRpdi5pdGVtQ29tbWVudHNMb2dpbkZpcnN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMjRweDtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGJhY2tncm91bmQ6ICNmMDA7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi8qIFwiUmVwb3J0IGNvbW1lbnRcIiBmb3JtICovXG5kaXYuazJSZXBvcnRDb21tZW50Rm9ybUNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDhweDtcbiAgd2lkdGg6IDQ4MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuZGl2LmsyUmVwb3J0Q29tbWVudEZvcm1Db250YWluZXIgYmxvY2txdW90ZSB7XG4gIHdpZHRoOiA0NjJweDtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZzogOHB4O1xuICBtYXJnaW46IDAgMCA4cHggMDtcbn1cblxuZGl2LmsyUmVwb3J0Q29tbWVudEZvcm1Db250YWluZXIgYmxvY2txdW90ZSBzcGFuLnF1b3RlSWNvbkxlZnQge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDQwcHg7XG4gIGNvbG9yOiAjMTM1Q0FFO1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG5kaXYuazJSZXBvcnRDb21tZW50Rm9ybUNvbnRhaW5lciBibG9ja3F1b3RlIHNwYW4ucXVvdGVJY29uUmlnaHQge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDQwcHg7XG4gIGNvbG9yOiAjMTM1Q0FFO1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuZGl2LmsyUmVwb3J0Q29tbWVudEZvcm1Db250YWluZXIgYmxvY2txdW90ZSBzcGFuLnRoZUNvbW1lbnQge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwMDA7XG4gIHBhZGRpbmc6IDAgNHB4O1xufVxuXG5kaXYuazJSZXBvcnRDb21tZW50Rm9ybUNvbnRhaW5lciBmb3JtIGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5kaXYuazJSZXBvcnRDb21tZW50Rm9ybUNvbnRhaW5lciBmb3JtIGlucHV0LFxuZGl2LmsyUmVwb3J0Q29tbWVudEZvcm1Db250YWluZXIgZm9ybSB0ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDJweDtcbiAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gIHdpZHRoOiA0NzRweDtcbn1cblxuZGl2LmsyUmVwb3J0Q29tbWVudEZvcm1Db250YWluZXIgZm9ybSAjcmVjYXB0Y2hhIHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuZGl2LmsyUmVwb3J0Q29tbWVudEZvcm1Db250YWluZXIgZm9ybSBzcGFuI2Zvcm1Mb2cge1xuICBtYXJnaW46IDI0cHg7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuZGl2LmsyUmVwb3J0Q29tbWVudEZvcm1Db250YWluZXIgZm9ybSAuZm9ybUxvZ0xvYWRpbmcge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2xvYWRlcnMvZ2VuZXJpYy5naWYpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjtcbn1cblxuLyogQmFjayB0byB0b3AgbGluayAqL1xuZGl2Lml0ZW1CYWNrVG9Ub3Age1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuZGl2Lml0ZW1CYWNrVG9Ub3AgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG5kaXYuaXRlbUJhY2tUb1RvcCBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdENvbXBvbmVudCAtIEl0ZW1saXN0IHZpZXcgKGNhdGVnb3J5KVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogLS0tIENhdGVnb3J5IGJsb2NrIC0tLSAqL1xuZGl2Lml0ZW1MaXN0Q2F0ZWdvcnkge1xuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG1hcmdpbjogMCAwIDI0cHggMDtcbiAgcGFkZGluZzogOHB4O1xufVxuXG5zcGFuLmNhdEl0ZW1BZGRMaW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBtYXJnaW46IDAgMCA0cHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjY2NjO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuc3Bhbi5jYXRJdGVtQWRkTGluayBhIHtcbiAgcGFkZGluZzogNHB4IDE2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuc3Bhbi5jYXRJdGVtQWRkTGluayBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZjYztcbn1cblxuZGl2Lml0ZW1MaXN0Q2F0ZWdvcnkgaW1nIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgOHB4IDAgMDtcbn1cblxuLyogLS0tIFN1Yi1jYXRlZ29yeSBibG9jayAtLS0gKi9cbmRpdi5zdWJDYXRlZ29yeUNvbnRhaW5lciB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4vKiB0aGlzIGNsYXNzIGlzIGFwcGVuZGVkIHRvIHRoZSBsYXN0IGNvbnRhaW5lciBvbiBlYWNoIHJvdyBvZiBpdGVtcyAodXNlZnVsIHdoZW4geW91IHdhbnQgdG8gc2V0IDAgcGFkZGluZy9tYXJnaW4gdG8gdGhlIGxhc3QgY29udGFpbmVyKSAqL1xuZGl2LnN1YkNhdGVnb3J5IHtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgbWFyZ2luOiA0cHg7XG4gIHBhZGRpbmc6IDhweDtcbn1cblxuZGl2LnN1YkNhdGVnb3J5IGEuc3ViQ2F0ZWdvcnlJbWFnZSxcbmRpdi5zdWJDYXRlZ29yeSBhLnN1YkNhdGVnb3J5SW1hZ2U6aG92ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5kaXYuc3ViQ2F0ZWdvcnkgYS5zdWJDYXRlZ29yeUltYWdlIGltZyxcbmRpdi5zdWJDYXRlZ29yeSBhLnN1YkNhdGVnb3J5SW1hZ2U6aG92ZXIgaW1nIHtcbiAgbWFyZ2luOiAwIDhweCAwIDA7XG59XG5cbi8qIC0tLSBJdGVtIGdyb3VwcyAtLS0gKi9cbmRpdiNpdGVtTGlzdExpbmtzIHtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgbWFyZ2luOiA4cHggMDtcbiAgcGFkZGluZzogOHB4O1xufVxuXG5kaXYuaXRlbUNvbnRhaW5lciB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4vKiB0aGlzIGNsYXNzIGlzIGFwcGVuZGVkIHRvIHRoZSBsYXN0IGNvbnRhaW5lciBvbiBlYWNoIHJvdyBvZiBpdGVtcyAodXNlZnVsIHdoZW4geW91IHdhbnQgdG8gc2V0IDAgcGFkZGluZy9tYXJnaW4gdG8gdGhlIGxhc3QgY29udGFpbmVyKSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgZGl2Lml0ZW1Db250YWluZXIsIGRpdi5zdWJDYXRlZ29yeUNvbnRhaW5lciB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiAtLS0gSXRlbSBibG9jayBmb3IgZWFjaCBpdGVtIGdyb3VwIC0tLSAqL1xuZGl2LmNhdEl0ZW1WaWV3IHtcbiAgbWFyZ2luLWJvdHRvbTogNDhweDtcbiAgcGFkZGluZzogNHB4O1xufVxuXG4vKiB0aGlzIGlzIHRoZSBjb250YWluZXIgZm9yIGVhY2ggSzIgaXRlbSBvbiB0aGlzIHZpZXcgKi9cbi8qIEF0dGFjaCBhIGNsYXNzIGZvciBlYWNoIGZlYXR1cmVkIGl0ZW0gKi9cbmRpdi5jYXRJdGVtSGVhZGVyIHNwYW4uY2F0SXRlbURhdGVDcmVhdGVkIHtcbiAgY29sb3I6ICM5OTk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuZGl2LmNhdEl0ZW1IZWFkZXIgaDMuY2F0SXRlbVRpdGxlIHtcbiAgcGFkZGluZzogMTBweCAwIDRweCAwO1xuICBtYXJnaW46IDA7XG59XG5cbmRpdi5jYXRJdGVtSGVhZGVyIGgzLmNhdEl0ZW1UaXRsZSBzcGFuIHN1cCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNDRjE5MTk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLyogc3VwZXJzY3JpcHQgKi9cbmRpdi5jYXRJdGVtSGVhZGVyIHNwYW4uY2F0SXRlbUF1dGhvciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbmRpdi5jYXRJdGVtUmF0aW5nQmxvY2sge1xuICBwYWRkaW5nOiA4cHggMDtcbn1cblxuZGl2LmNhdEl0ZW1SYXRpbmdCbG9jayBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzk5OTtcbn1cblxuZGl2LmNhdEl0ZW1Cb2R5IHtcbiAgcGFkZGluZzogOHB4IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuZGl2LmNhdEl0ZW1JbWFnZUJsb2NrIHtcbiAgcGFkZGluZzogOHB4IDA7XG4gIG1hcmdpbjogMCAwIDE2cHggMDtcbn1cblxuc3Bhbi5jYXRJdGVtSW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDAgMCA4cHggMDtcbn1cblxuc3Bhbi5jYXRJdGVtSW1hZ2UgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmRpdi5jYXRJdGVtSW50cm9UZXh0IHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgcGFkZGluZzogNHB4IDAgMTJweCAwO1xufVxuXG5kaXYuY2F0SXRlbUV4dHJhRmllbGRzLFxuZGl2LmdlbmVyaWNJdGVtRXh0cmFGaWVsZHMge1xuICBtYXJnaW46IDE2cHggMCAwIDA7XG4gIHBhZGRpbmc6IDhweCAwIDAgMDtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjZGRkO1xufVxuXG5kaXYuY2F0SXRlbUV4dHJhRmllbGRzIGg0LFxuZGl2LmdlbmVyaWNJdGVtRXh0cmFGaWVsZHMgaDQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMCA4cHggMDtcbn1cblxuZGl2LmNhdEl0ZW1FeHRyYUZpZWxkcyB1bCxcbmRpdi5nZW5lcmljSXRlbUV4dHJhRmllbGRzIHVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5kaXYuY2F0SXRlbUV4dHJhRmllbGRzIHVsIGxpLFxuZGl2LmdlbmVyaWNJdGVtRXh0cmFGaWVsZHMgdWwgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuZGl2LmNhdEl0ZW1FeHRyYUZpZWxkcyB1bCBsaSBzcGFuLmNhdEl0ZW1FeHRyYUZpZWxkc0xhYmVsLFxuZGl2LmdlbmVyaWNJdGVtRXh0cmFGaWVsZHMgdWwgbGkgc3Bhbi5nZW5lcmljSXRlbUV4dHJhRmllbGRzTGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW46IDAgNHB4IDAgMDtcbiAgd2lkdGg6IDMwJTtcbn1cblxuZGl2LmNhdEl0ZW1MaW5rcyB7XG4gIG1hcmdpbjogMCAwIDE2cHggMDtcbiAgcGFkZGluZzogMDtcbn1cblxuZGl2LmNhdEl0ZW1IaXRzQmxvY2sge1xuICBwYWRkaW5nOiA0cHggMDtcbn1cblxuZGl2LmNhdEl0ZW1DYXRlZ29yeSB7XG4gIHBhZGRpbmc6IDRweCAwO1xufVxuXG5kaXYuY2F0SXRlbUNhdGVnb3J5IHNwYW4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogMCA0cHggMCAwO1xufVxuXG5kaXYuY2F0SXRlbVRhZ3NCbG9jayB7XG4gIHBhZGRpbmc6IDRweCAwO1xufVxuXG5kaXYuY2F0SXRlbVRhZ3NCbG9jayBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbn1cblxuZGl2LmNhdEl0ZW1UYWdzQmxvY2sgdWwuY2F0SXRlbVRhZ3Mge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuZGl2LmNhdEl0ZW1UYWdzQmxvY2sgdWwuY2F0SXRlbVRhZ3MgbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbmRpdi5jYXRJdGVtVGFnc0Jsb2NrIHVsLmNhdEl0ZW1UYWdzIGxpIGE6YmVmb3JlIHtcbiAgY29udGVudDogXCIjXCI7XG59XG5cbmRpdi5jYXRJdGVtQXR0YWNobWVudHNCbG9jayB7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjY2NjO1xufVxuXG5kaXYuY2F0SXRlbUF0dGFjaG1lbnRzQmxvY2sgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzU1NTtcbiAgcGFkZGluZzogMCA0cHggMCAwO1xufVxuXG5kaXYuY2F0SXRlbUF0dGFjaG1lbnRzQmxvY2sgdWwuY2F0SXRlbUF0dGFjaG1lbnRzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbmRpdi5jYXRJdGVtQXR0YWNobWVudHNCbG9jayB1bC5jYXRJdGVtQXR0YWNobWVudHMgbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuZGl2LmNhdEl0ZW1BdHRhY2htZW50c0Jsb2NrIHVsLmNhdEl0ZW1BdHRhY2htZW50cyBsaSBzcGFuIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogIzk5OTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyogVmlkZW8gKi9cbmRpdi5jYXRJdGVtVmlkZW9CbG9jayB7XG4gIG1hcmdpbjogMCAwIDE2cHggMDtcbiAgcGFkZGluZzogMTZweDtcbiAgYmFja2dyb3VuZDogIzAxMDEwMSB1cmwoLi4vaW1hZ2VzL3ZpZGVvYmcuZ2lmKSByZXBlYXQteCBib3R0b207XG59XG5cbmRpdi5jYXRJdGVtVmlkZW9CbG9jayBkaXYuY2F0SXRlbVZpZGVvRW1iZWRkZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIGZvciBlbWJlZGRlZCB2aWRlb3MgKG5vdCB1c2luZyBBbGxWaWRlb3MpICovXG5kaXYuY2F0SXRlbVZpZGVvQmxvY2sgc3Bhbi5jYXRJdGVtVmlkZW8ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogSW1hZ2UgR2FsbGVyeSAqL1xuZGl2LmNhdEl0ZW1JbWFnZUdhbGxlcnkge1xuICBtYXJnaW46IDAgMCAxNnB4IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qIEFuY2hvciBsaW5rIHRvIGNvbW1lbnRzICovXG5kaXYuY2F0SXRlbUNvbW1lbnRzTGluayB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luOiAwIDhweCAwIDA7XG4gIHBhZGRpbmc6IDAgOHB4IDAgMDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbn1cblxuLyogUmVhZCBtb3JlIGxpbmsgKi9cbmRpdi5jYXRJdGVtUmVhZE1vcmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi8qIE1vZGlmaWVkIGRhdGUgKi9cbnNwYW4uY2F0SXRlbURhdGVNb2RpZmllZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZzogNHB4O1xuICBtYXJnaW46IDRweCAwO1xuICBjb2xvcjogIzk5OTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdENvbXBvbmVudCAtIEl0ZW1saXN0IHZpZXcgKHVzZXIpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VyIGluZm8gYmxvY2sgKi9cbmRpdi51c2VyQmxvY2sge1xuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG1hcmdpbjogMCAwIDI0cHggMDtcbiAgcGFkZGluZzogOHB4O1xufVxuXG5kaXYudXNlckJsb2NrIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcGFkZGluZzogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBtYXJnaW46IDAgOHB4IDAgMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5kaXYudXNlckJsb2NrIGRpdi51c2VyRGVzY3JpcHRpb24ge1xuICBwYWRkaW5nOiA0cHggMDtcbn1cblxuZGl2LnVzZXJCbG9jayBkaXYudXNlckFkZGl0aW9uYWxJbmZvIHtcbiAgcGFkZGluZzogNHB4IDA7XG4gIG1hcmdpbjogOHB4IDAgMCAwO1xufVxuXG5zcGFuLnVzZXJVUkwge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICM1NTU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zcGFuLnVzZXJFbWFpbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzU1NTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIFVzZXIgaXRlbXMgKi9cbmRpdi51c2VySXRlbVZpZXcge1xuICBtYXJnaW4tYm90dG9tOiA0OHB4O1xufVxuXG4vKiB0aGlzIGlzIHRoZSBpdGVtIGNvbnRhaW5lciBmb3IgdGhpcyB2aWV3ICovXG4vKiBBdHRhY2ggYSBjbGFzcyBmb3IgZWFjaCBmZWF0dXJlZCBpdGVtICovXG5kaXYudXNlckl0ZW1WaWV3VW5wdWJsaXNoZWQge1xuICBvcGFjaXR5OiAwLjk7XG4gIGJvcmRlcjogNHB4IGRhc2hlZCAjY2NjO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmYyO1xuICBwYWRkaW5nOiA4cHg7XG4gIG1hcmdpbjogOHB4IDA7XG59XG5cbmRpdi51c2VySXRlbUhlYWRlciBzcGFuLnVzZXJJdGVtRGF0ZUNyZWF0ZWQge1xuICBjb2xvcjogIzk5OTtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG5kaXYudXNlckl0ZW1IZWFkZXIgaDMudXNlckl0ZW1UaXRsZSB7XG4gIHBhZGRpbmc6IDEwcHggMCA0cHggMDtcbiAgbWFyZ2luOiAwO1xufVxuXG5kaXYudXNlckl0ZW1IZWFkZXIgaDMudXNlckl0ZW1UaXRsZSBzcGFuIHN1cCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNDRjE5MTk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLyogXCJVbnB1Ymxpc2hlZFwiIHByZXNlbnRlZCBpbiBzdXBlcnNjcmlwdCAqL1xuZGl2LnVzZXJJdGVtQm9keSB7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBtYXJnaW46IDA7XG59XG5cbmRpdi51c2VySXRlbUltYWdlQmxvY2sge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG5zcGFuLnVzZXJJdGVtSW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDAgOHB4IDhweCAwO1xufVxuXG5zcGFuLnVzZXJJdGVtSW1hZ2UgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmRpdi51c2VySXRlbUludHJvVGV4dCB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IDRweCAwIDEycHggMDtcbn1cblxuZGl2LnVzZXJJdGVtTGlua3Mge1xuICBtYXJnaW46IDAgMCAxNnB4IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmRpdi51c2VySXRlbUNhdGVnb3J5IHtcbiAgcGFkZGluZzogNHB4IDA7XG59XG5cbmRpdi51c2VySXRlbUNhdGVnb3J5IHNwYW4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICM1NTU7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbn1cblxuZGl2LnVzZXJJdGVtVGFnc0Jsb2NrIHtcbiAgcGFkZGluZzogNHB4IDA7XG59XG5cbmRpdi51c2VySXRlbVRhZ3NCbG9jayBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNTU1O1xuICBwYWRkaW5nOiAwIDRweCAwIDA7XG59XG5cbmRpdi51c2VySXRlbVRhZ3NCbG9jayB1bC51c2VySXRlbVRhZ3Mge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuZGl2LnVzZXJJdGVtVGFnc0Jsb2NrIHVsLnVzZXJJdGVtVGFncyBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMCA0cHggMCAwO1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuZGl2LnVzZXJJdGVtVGFnc0Jsb2NrIHVsLnVzZXJJdGVtVGFncyBsaSBhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiI1wiO1xufVxuXG4vKiBBbmNob3IgbGluayB0byBjb21tZW50cyAqL1xuZGl2LnVzZXJJdGVtQ29tbWVudHNMaW5rIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW46IDAgOHB4IDAgMDtcbiAgcGFkZGluZzogMCA4cHggMCAwO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjO1xufVxuXG4vKiBSZWFkIG1vcmUgbGluayAqL1xuZGl2LnVzZXJJdGVtUmVhZE1vcmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdENvbXBvbmVudCAtIEl0ZW1saXN0IHZpZXcgKHRhZylcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmRpdi50YWdJdGVtVmlldyB7XG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7XG59XG5cbi8qIHRoaXMgaXMgdGhlIGl0ZW0gY29udGFpbmVyIGZvciB0aGlzIHZpZXcgKi9cbmRpdi50YWdJdGVtSGVhZGVyIHNwYW4udGFnSXRlbURhdGVDcmVhdGVkIHtcbiAgY29sb3I6ICM5OTk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuZGl2LnRhZ0l0ZW1IZWFkZXIgaDIudGFnSXRlbVRpdGxlIHtcbiAgcGFkZGluZzogMTBweCAwIDRweCAwO1xuICBtYXJnaW46IDA7XG59XG5cbmRpdi50YWdJdGVtQm9keSB7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBtYXJnaW46IDA7XG59XG5cbmRpdi50YWdJdGVtSW1hZ2VCbG9jayB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbnNwYW4udGFnSXRlbUltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwIDhweCA4cHggMDtcbn1cblxuc3Bhbi50YWdJdGVtSW1hZ2UgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmRpdi50YWdJdGVtSW50cm9UZXh0IHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgcGFkZGluZzogNHB4IDAgMTJweCAwO1xufVxuXG5kaXYudGFnSXRlbUNhdGVnb3J5IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW46IDAgOHB4IDAgMDtcbiAgcGFkZGluZzogMCA4cHggMCAwO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjO1xufVxuXG5kaXYudGFnSXRlbUNhdGVnb3J5IHNwYW4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICM1NTU7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbn1cblxuLyogUmVhZCBtb3JlIGxpbmsgKi9cbmRpdi50YWdJdGVtUmVhZE1vcmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdENvbXBvbmVudCAtIEl0ZW1saXN0IHZpZXcgKGdlbmVyaWMpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5kaXYuZ2VuZXJpY0l0ZW1WaWV3IHtcbiAgbWFyZ2luLWJvdHRvbTogNDhweDtcbn1cblxuLyogdGhpcyBpcyB0aGUgaXRlbSBjb250YWluZXIgZm9yIHRoaXMgdmlldyAqL1xuZGl2LmdlbmVyaWNJdGVtSGVhZGVyIHNwYW4uZ2VuZXJpY0l0ZW1EYXRlQ3JlYXRlZCB7XG4gIGNvbG9yOiAjOTk5O1xuICBmb250LXNpemU6IDExcHg7XG59XG5cbmRpdi5nZW5lcmljSXRlbUhlYWRlciBoMi5nZW5lcmljSXRlbVRpdGxlIHtcbiAgcGFkZGluZzogMTBweCAwIDRweCAwO1xuICBtYXJnaW46IDA7XG59XG5cbmRpdi5nZW5lcmljSXRlbUJvZHkge1xuICBwYWRkaW5nOiA4cHggMDtcbiAgbWFyZ2luOiAwO1xufVxuXG5kaXYuZ2VuZXJpY0l0ZW1JbWFnZUJsb2NrIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBmbG9hdDogbGVmdDtcbn1cblxuc3Bhbi5nZW5lcmljSXRlbUltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwIDhweCA4cHggMDtcbn1cblxuc3Bhbi5nZW5lcmljSXRlbUltYWdlIGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5kaXYuZ2VuZXJpY0l0ZW1JbnRyb1RleHQge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBwYWRkaW5nOiA0cHggMCAxMnB4IDA7XG59XG5cbmRpdi5nZW5lcmljSXRlbUNhdGVnb3J5IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW46IDAgOHB4IDAgMDtcbiAgcGFkZGluZzogMCA4cHggMCAwO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjO1xufVxuXG5kaXYuZ2VuZXJpY0l0ZW1DYXRlZ29yeSBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNTU1O1xuICBwYWRkaW5nOiAwIDRweCAwIDA7XG59XG5cbi8qIFJlYWQgbW9yZSBsaW5rICovXG5kaXYuZ2VuZXJpY0l0ZW1SZWFkTW9yZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLyogTm8gcmVzdWx0cyBmb3VuZCBtZXNzYWdlICovXG5kaXYjZ2VuZXJpY0l0ZW1MaXN0Tm90aGluZ0ZvdW5kIHtcbiAgcGFkZGluZzogNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5kaXYjZ2VuZXJpY0l0ZW1MaXN0Tm90aGluZ0ZvdW5kIHAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjOTk5O1xufVxuXG4vKiAtLS0gR29vZ2xlIFNlYXJjaCAodXNlIEZpcmVidWcgb3Igc2ltaWxhciB0b29scyB0byBpbnNwZWN0IHRoZSBnZW5lcmF0ZWQgSFRNTCwgdGhlbiBzdHlsZSBhY2NvcmRpbmdseSAtLS0gKi9cbiNrMkdvb2dsZVNlYXJjaENvbnRhaW5lciAuZ3NjLWNvbnRyb2wge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4jazJHb29nbGVTZWFyY2hDb250YWluZXIgLmdzYy1jb250cm9sIC5nc2MtYWJvdmUtd3JhcHBlci1hcmVhLFxuI2syR29vZ2xlU2VhcmNoQ29udGFpbmVyIC5nc2MtY29udHJvbCAuZ3NjLXJlc3VsdHNIZWFkZXIsXG4jazJHb29nbGVTZWFyY2hDb250YWluZXIgLmdzYy1jb250cm9sIC5nc2MtdXJsLWJvdHRvbSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogSGlkZSB1bm5lZWRlZCBlbGVtZW50cyBvZiB0aGUgcmVzdWx0cyBwYWdlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRDb21wb25lbnQgLSBMYXRlc3Qgdmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuZGl2LmxhdGVzdEl0ZW1zQ29udGFpbmVyIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIGRpdi5sYXRlc3RJdGVtc0NvbnRhaW5lciB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBDYXRlZ29yeSBpbmZvIGJsb2NrICovXG5kaXYubGF0ZXN0SXRlbXNDYXRlZ29yeSB7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgbWFyZ2luOiAwIDhweCAyNHB4IDA7XG4gIHBhZGRpbmc6IDhweDtcbn1cblxuZGl2LmxhdGVzdEl0ZW1zQ2F0ZWdvcnlJbWFnZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuZGl2LmxhdGVzdEl0ZW1zQ2F0ZWdvcnlJbWFnZSBpbWcge1xuICBtYXJnaW46IDAgOHB4IDAgMDtcbn1cblxuLyogVXNlciBpbmZvIGJsb2NrICovXG5kaXYubGF0ZXN0SXRlbXNVc2VyIHtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBtYXJnaW46IDAgOHB4IDI0cHggMDtcbiAgcGFkZGluZzogOHB4O1xufVxuXG5kaXYubGF0ZXN0SXRlbXNVc2VyIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcGFkZGluZzogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBtYXJnaW46IDAgOHB4IDAgMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5kaXYubGF0ZXN0SXRlbXNVc2VyIHAubGF0ZXN0SXRlbXNVc2VyRGVzY3JpcHRpb24ge1xuICBwYWRkaW5nOiA0cHggMDtcbn1cblxuZGl2LmxhdGVzdEl0ZW1zVXNlciBwLmxhdGVzdEl0ZW1zVXNlckFkZGl0aW9uYWxJbmZvIHtcbiAgcGFkZGluZzogNHB4IDA7XG4gIG1hcmdpbjogOHB4IDAgMCAwO1xufVxuXG5zcGFuLmxhdGVzdEl0ZW1zVXNlclVSTCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzU1NTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbnNwYW4ubGF0ZXN0SXRlbXNVc2VyRW1haWwge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICM1NTU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBMYXRlc3QgaXRlbXMgbGlzdCAqL1xuZGl2LmxhdGVzdEl0ZW1MaXN0IHtcbiAgcGFkZGluZzogMCA4cHggOHB4IDA7XG59XG5cbmRpdi5sYXRlc3RJdGVtSGVhZGVyIGgzLmxhdGVzdEl0ZW1UaXRsZSB7XG4gIHBhZGRpbmc6IDEwcHggMCA0cHggMDtcbiAgbWFyZ2luOiAwO1xufVxuXG5zcGFuLmxhdGVzdEl0ZW1EYXRlQ3JlYXRlZCB7XG4gIGNvbG9yOiAjOTk5O1xuICBmb250LXNpemU6IDExcHg7XG59XG5cbmRpdi5sYXRlc3RJdGVtQm9keSB7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBtYXJnaW46IDA7XG59XG5cbmRpdi5sYXRlc3RJdGVtSW1hZ2VCbG9jayB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbnNwYW4ubGF0ZXN0SXRlbUltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwIDhweCA4cHggMDtcbn1cblxuc3Bhbi5sYXRlc3RJdGVtSW1hZ2UgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIGRpdi5sYXRlc3RJdGVtSW1hZ2VCbG9jayB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuZGl2LmxhdGVzdEl0ZW1JbnRyb1RleHQge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBwYWRkaW5nOiA0cHggMCAxMnB4IDA7XG59XG5cbmRpdi5sYXRlc3RJdGVtTGlua3Mge1xuICBtYXJnaW46IDAgMCAxNnB4IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmRpdi5sYXRlc3RJdGVtQ2F0ZWdvcnkge1xuICBwYWRkaW5nOiA0cHggMDtcbn1cblxuZGl2LmxhdGVzdEl0ZW1DYXRlZ29yeSBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNTU1O1xuICBwYWRkaW5nOiAwIDRweCAwIDA7XG59XG5cbmRpdi5sYXRlc3RJdGVtVGFnc0Jsb2NrIHtcbiAgcGFkZGluZzogNHB4IDA7XG59XG5cbmRpdi5sYXRlc3RJdGVtVGFnc0Jsb2NrIHNwYW4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICM1NTU7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbn1cblxuZGl2LmxhdGVzdEl0ZW1UYWdzQmxvY2sgdWwubGF0ZXN0SXRlbVRhZ3Mge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuZGl2LmxhdGVzdEl0ZW1UYWdzQmxvY2sgdWwubGF0ZXN0SXRlbVRhZ3MgbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbmRpdi5sYXRlc3RJdGVtVGFnc0Jsb2NrIHVsLmxhdGVzdEl0ZW1UYWdzIGxpIGE6YmVmb3JlIHtcbiAgY29udGVudDogXCIjXCI7XG59XG5cbi8qIFZpZGVvICovXG5kaXYubGF0ZXN0SXRlbVZpZGVvQmxvY2sge1xuICBtYXJnaW46IDAgMCAxNnB4IDA7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJhY2tncm91bmQ6ICMwMTAxMDEgdXJsKC4uL2ltYWdlcy92aWRlb2JnLmdpZikgcmVwZWF0LXggYm90dG9tO1xufVxuXG5kaXYubGF0ZXN0SXRlbVZpZGVvQmxvY2sgc3Bhbi5sYXRlc3RJdGVtVmlkZW8ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogQW5jaG9yIGxpbmsgdG8gY29tbWVudHMgKi9cbmRpdi5sYXRlc3RJdGVtQ29tbWVudHNMaW5rIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW46IDAgOHB4IDAgMDtcbiAgcGFkZGluZzogMCA4cHggMCAwO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjO1xufVxuXG4vKiBSZWFkIG1vcmUgbGluayAqL1xuZGl2LmxhdGVzdEl0ZW1SZWFkTW9yZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLyogSXRlbXMgcHJlc2VudGVkIGluIGEgbGlzdCAqL1xuaDIubGF0ZXN0SXRlbVRpdGxlTGlzdCB7XG4gIHBhZGRpbmc6IDJweCAwO1xuICBtYXJnaW46IDhweCAwIDJweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNjY2M7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdE1vZHVsZXMgLSBtb2RfazJfY29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuZGl2LmsySXRlbXNCbG9jayB1bCBsaSBkaXYubW9kdWxlSXRlbUludHJvdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA0cHggMDtcbn1cblxuZGl2LmsySXRlbXNCbG9jayB1bCBsaSBkaXYubW9kdWxlSXRlbUludHJvdGV4dCBhLm1vZHVsZUl0ZW1JbWFnZSBpbWcge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMnB4IDAgNHB4IDRweDtcbiAgcGFkZGluZzogMDtcbn1cblxuZGl2Lm1vZHVsZUl0ZW1FeHRyYUZpZWxkcyB1bCBsaSBzcGFuLm1vZHVsZUl0ZW1FeHRyYUZpZWxkc0xhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luOiAwIDRweCAwIDA7XG4gIHdpZHRoOiAzMCU7XG59XG5cbmRpdi5rMkl0ZW1zQmxvY2sgdWwgbGkgZGl2Lm1vZHVsZUl0ZW1UYWdzIGEge1xuICBwYWRkaW5nOiAwIDJweDtcbn1cblxuZGl2LmsySXRlbXNCbG9jayB1bCBsaSBhLm1vZHVsZUl0ZW1Db21tZW50cyB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbiAgbWFyZ2luOiAwIDhweCAwIDA7XG59XG5cbmRpdi5rMkl0ZW1zQmxvY2sgdWwgbGkgc3Bhbi5tb2R1bGVJdGVtSGl0cyB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDAgNHB4IDAgMDtcbiAgbWFyZ2luOiAwIDhweCAwIDA7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdE1vZHVsZXMgLSBtb2RfazJfdG9vbHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIC0tLSBCcmVhZGNydW1icyAtLS0gKi9cbmRpdi5rMkJyZWFkY3J1bWJzQmxvY2sgc3Bhbi5iY1RpdGxlIHtcbiAgcGFkZGluZzogMCA0cHggMCAwO1xuICBjb2xvcjogIzk5OTtcbn1cblxuZGl2LmsyQnJlYWRjcnVtYnNCbG9jayBzcGFuLmJjU2VwYXJhdG9yIHtcbiAgcGFkZGluZzogMCA0cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLyogLS0tIENhbGVuZGFyIC0tLSAqL1xuZGl2LmsyQ2FsZW5kYXJCbG9jayB7XG4gIGhlaWdodDogMTkwcHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLyogdXNlIHRoaXMgaGVpZ2h0IHZhbHVlIHNvIHRoYXQgdGhlIGNhbGVuZGFyIGhlaWdodCB3b24ndCBjaGFuZ2Ugb24gTW9udGggY2hhbmdlIHZpYSBhamF4ICovXG5kaXYuazJDYWxlbmRhckxvYWRlciB7XG4gIGJhY2tncm91bmQ6ICNmZmYgdXJsKC4uL2ltYWdlcy9sb2FkZXJzL2NhbGVuZGFyLmdpZikgbm8tcmVwZWF0IDUwJSA1MCU7XG59XG5cbnRhYmxlLmNhbGVuZGFyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbnRhYmxlLmNhbGVuZGFyIHRyIHRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nOiAycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmNGY0ZjQ7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyTmF2TW9udGhQcmV2IHtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxudGFibGUuY2FsZW5kYXIgdHIgdGQuY2FsZW5kYXJOYXZNb250aFByZXYgYSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG50YWJsZS5jYWxlbmRhciB0ciB0ZC5jYWxlbmRhck5hdk1vbnRoUHJldiBhOmhvdmVyIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyQ3VycmVudE1vbnRoIHtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbn1cblxudGFibGUuY2FsZW5kYXIgdHIgdGQuY2FsZW5kYXJOYXZNb250aE5leHQge1xuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxudGFibGUuY2FsZW5kYXIgdHIgdGQuY2FsZW5kYXJOYXZNb250aE5leHQgYSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG50YWJsZS5jYWxlbmRhciB0ciB0ZC5jYWxlbmRhck5hdk1vbnRoTmV4dCBhOmhvdmVyIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyRGF5TmFtZSB7XG4gIGJhY2tncm91bmQ6ICNlOWU5ZTk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgd2lkdGg6IDE0LjIlO1xufVxuXG50YWJsZS5jYWxlbmRhciB0ciB0ZC5jYWxlbmRhckRhdGVFbXB0eSB7XG4gIGJhY2tncm91bmQ6ICNmYmZiZmI7XG59XG5cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyRGF0ZUxpbmtlZCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyRGF0ZUxpbmtlZCBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDJweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xufVxuXG50YWJsZS5jYWxlbmRhciB0ciB0ZC5jYWxlbmRhckRhdGVMaW5rZWQgYTpob3ZlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiAjMTM1Y2FlO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMnB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyVG9kYXkge1xuICBiYWNrZ3JvdW5kOiAjMTM1Y2FlO1xuICBjb2xvcjogI2ZmZjtcbn1cblxudGFibGUuY2FsZW5kYXIgdHIgdGQuY2FsZW5kYXJUb2RheUxpbmtlZCB7XG4gIGJhY2tncm91bmQ6ICMxMzVjYWU7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAwO1xufVxuXG50YWJsZS5jYWxlbmRhciB0ciB0ZC5jYWxlbmRhclRvZGF5TGlua2VkIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMnB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG50YWJsZS5jYWxlbmRhciB0ciB0ZC5jYWxlbmRhclRvZGF5TGlua2VkIGE6aG92ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogI0JGRDlGRjtcbiAgcGFkZGluZzogMnB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qIC0tLSBDYXRlZ29yeSBUcmVlIFNlbGVjdCBCb3ggLS0tICovXG5kaXYuazJDYXRlZ29yeVNlbGVjdEJsb2NrIGZvcm0gc2VsZWN0IHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbmRpdi5rMkNhdGVnb3JpZXNMaXN0QmxvY2sgdWwgbGkgYSBzcGFuLmNhdFRpdGxlIHtcbiAgcGFkZGluZy1yaWdodDogNHB4O1xufVxuXG5kaXYuazJDYXRlZ29yaWVzTGlzdEJsb2NrIHVsIGxpLmFjdGl2ZUNhdGVnb3J5IGEge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogLS0tIFNlYXJjaCBCb3ggLS0tICovXG5kaXYuazJTZWFyY2hCbG9jayBmb3JtIGlucHV0LmsyU2VhcmNoTG9hZGluZyB7XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbG9hZGVycy9zZWFyY2guZ2lmKSBuby1yZXBlYXQgMTAwJSA1MCU7XG59XG5cbmRpdi5rMlNlYXJjaEJsb2NrIGRpdi5rMkxpdmVTZWFyY2hSZXN1bHRzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5OTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgbWFyZ2luLXRvcDogLTFweDtcbn1cblxuLyogTGl2ZSBzZWFyY2ggcmVzdWx0cyAoZmV0Y2hlZCB2aWEgYWpheCkgKi9cbmRpdi5rMlNlYXJjaEJsb2NrIGRpdi5rMkxpdmVTZWFyY2hSZXN1bHRzIHVsLmxpdmVTZWFyY2hSZXN1bHRzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5kaXYuazJTZWFyY2hCbG9jayBkaXYuazJMaXZlU2VhcmNoUmVzdWx0cyB1bC5saXZlU2VhcmNoUmVzdWx0cyBsaSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5kaXYuazJTZWFyY2hCbG9jayBkaXYuazJMaXZlU2VhcmNoUmVzdWx0cyB1bC5saXZlU2VhcmNoUmVzdWx0cyBsaSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDFweCAycHg7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgI2RkZDtcbn1cblxuZGl2LmsyU2VhcmNoQmxvY2sgZGl2LmsyTGl2ZVNlYXJjaFJlc3VsdHMgdWwubGl2ZVNlYXJjaFJlc3VsdHMgbGkgYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZjA7XG59XG5cbi8qIC0tLSBUYWcgQ2xvdWQgLS0tICovXG5kaXYuazJUYWdDbG91ZEJsb2NrIHtcbiAgcGFkZGluZzogOHB4IDA7XG59XG5cbmRpdi5rMlRhZ0Nsb3VkQmxvY2sgYSB7XG4gIHBhZGRpbmc6IDRweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5kaXYuazJUYWdDbG91ZEJsb2NrIGE6aG92ZXIge1xuICBwYWRkaW5nOiA0cHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogIzEzNWNhZTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLyogLS0tIEN1c3RvbSBDb2RlIC0tLSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0TW9kdWxlcyAtIG1vZF9rMl91c2VyIChtb2RfazJfbG9naW4gaXMgcmVtb3ZlZCBzaW5jZSB2Mi42LngpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5kaXYuazJMb2dpbkJsb2NrIGZpZWxkc2V0LmlucHV0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDAgOHB4IDA7XG59XG5cbmRpdi5rMkxvZ2luQmxvY2sgZmllbGRzZXQuaW5wdXQgcCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAwIDRweCAwO1xufVxuXG5kaXYuazJMb2dpbkJsb2NrIGZpZWxkc2V0LmlucHV0IHAgbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuZGl2LmsyTG9naW5CbG9jayBmaWVsZHNldC5pbnB1dCBwIGlucHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmRpdi5rMkxvZ2luQmxvY2sgZmllbGRzZXQuaW5wdXQgcCNmb3JtLWxvZ2luLXJlbWVtYmVyIGxhYmVsLFxuZGl2LmsyTG9naW5CbG9jayBmaWVsZHNldC5pbnB1dCBwI2Zvcm0tbG9naW4tcmVtZW1iZXIgaW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbmEudWJVc2VyRmVlZEljb24sXG5hLnViVXNlckZlZWRJY29uOmhvdmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMnB4IDAgMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG5hLnViVXNlckZlZWRJY29uIHNwYW4sXG5hLnViVXNlckZlZWRJY29uOmhvdmVyIHNwYW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5hLnViVXNlclVSTCxcbmEudWJVc2VyVVJMOmhvdmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMnB4IDAgMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG5hLnViVXNlclVSTCBzcGFuLFxuYS51YlVzZXJVUkw6aG92ZXIgc3BhbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbnNwYW4udWJVc2VyRW1haWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAycHggMCAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbnNwYW4udWJVc2VyRW1haWwgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbn1cblxuZGl2I2NvbnRhZG9yIHtcbiAgd2lkdGg6IDE2LjY2NjY3JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZzogMTBweCAwO1xufVxuXG5kaXYjY29udGFkb3IgYSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52cm93LCAudnJvd2Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi52cm93LCAudnJvd2Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi52cm93IHtcbiAgY29sb3I6ICMxODM4NmI7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiA5cHggMjRweDtcbn1cblxuLnZyb3dkIHtcbiAgY29sb3I6ICNmYWQ3MDE7XG4gIGJvcmRlcjogc29saWQgMnB4IHdoaXRlO1xuICBwYWRkaW5nOiA3cHggMjdweDtcbiAgbWFyZ2luLWxlZnQ6IC0zcHg7XG59XG5cbi5pZGlvbWEgYSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5ibG9xdWVfaW52ZXN0aWdhZG9yIHtcbiAgd2lkdGg6IDMzJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtYXJnaW46IDE0cHggMDtcbiAgcGFkZGluZzogNXB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNvbnRlbmVkb3IuaW52ZXN0aWdhZG9yZXMgaDUge1xuICBtYXJnaW46IDE1cHggMDtcbn1cblxuaW1nLmZvdG9zIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ubm9tYnJlaW4ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nLXRvcDogN3B4O1xufVxuXG4vKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuLyogRG9jdW1lbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAyICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5maWdjYXB0aW9uLFxuZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cblxuLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovXG59XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZS13aWR0aDogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAgICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovXG59XG5cbi8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICAgICAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKipcbiAgICAgKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovXG59XG5cbi8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICAgKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG59XG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgICAgICovXG4gIC8qKlxuICAgICAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgICAgICovXG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAgICAgKi9cbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICAgICAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAgICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG4gIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqL1xufVxuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICAgICAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgICAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovXG59XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgICAgKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEhpZGRlblxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gICAgICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT00MGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7XG59XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDEwMCU7XG59XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBcIk15cmlhZFdlYlByb1JlZ3VsYXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xufVxuXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5tYXBfY2FudmFzIGltZyxcbi5tYXBfY2FudmFzIGVtYmVkLFxuLm1hcF9jYW52YXMgb2JqZWN0LFxuLm1xYS1kaXNwbGF5IGltZyxcbi5tcWEtZGlzcGxheSBlbWJlZCxcbi5tcWEtZGlzcGxheSBvYmplY3Qge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24ge1xuICBvdXRsaW5lOiAwO1xufVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4uaXMtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5wIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS42O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG5lbSxcbmkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiTXlyaWFkV2ViUHJvUmVndWxhclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG5oMSBzbWFsbCxcbmgyIHNtYWxsLFxuaDMgc21hbGwsXG5oNCBzbWFsbCxcbmg1IHNtYWxsLFxuaDYgc21hbGwge1xuICBsaW5lLWhlaWdodDogMDtcbiAgY29sb3I6ICNjYWNhY2E7XG59XG5cbmgxIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuaDIge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuaDMge1xuICBmb250LXNpemU6IDEuMTg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuaDUge1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBoMSB7XG4gICAgZm9udC1zaXplOiAyLjYyNXJlbTtcbiAgfVxuICBoMiB7XG4gICAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgfVxuICBoMyB7XG4gICAgZm9udC1zaXplOiAxLjU2MjVyZW07XG4gIH1cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgfVxuICBoNSB7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gIH1cbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIH1cbn1cblxuYSB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogIzE3NzliYTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmE6aG92ZXIsIGE6Zm9jdXMge1xuICBjb2xvcjogIzE0NjhhMDtcbn1cblxuYSBpbWcge1xuICBib3JkZXI6IDA7XG59XG5cbmhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG51bCxcbm9sLFxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xufVxuXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xufVxuXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbmRsIGR0IHtcbiAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNTYyNXJlbSAxLjI1cmVtIDAgMS4xODc1cmVtO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjYWNhY2E7XG59XG5cbmJsb2NrcXVvdGUsIGJsb2NrcXVvdGUgcCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiAjOGE4YThhO1xufVxuXG5jaXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBjb2xvcjogIzhhOGE4YTtcbn1cblxuY2l0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAlCBcIjtcbn1cblxuYWJiciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzBhMGEwYTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGN1cnNvcjogaGVscDtcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5jb2RlIHtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4zMTI1cmVtIDAuMDYyNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG5rYmQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4uc3ViaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjOGE4YThhO1xufVxuXG4ubGVhZCB7XG4gIGZvbnQtc2l6ZTogMTI1JTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbnAgKyAuc3RhdCB7XG4gIG1hcmdpbi10b3A6IC0xcmVtO1xufVxuXG4ubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAubWVkaXVtLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC5tZWRpdW0tdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubWVkaXVtLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5sYXJnZS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICAubGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubGFyZ2UtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICB9XG59XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50O1xuICB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDtcbiAgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gIH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gIH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcbiAgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gIH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207XG4gIH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMztcbiAgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICB9XG4gIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICB9XG59XG5cbi50b3AtYmFyOjpiZWZvcmUsIC50b3AtYmFyOjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG59XG5cbi50b3AtYmFyOjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4udG9wLWJhciBpbnB1dCB7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cblxuLnRvcC1iYXIgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLnRvcC1iYXIgaW5wdXQuYnV0dG9uIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi50b3AtYmFyIC50b3AtYmFyLWxlZnQsXG4udG9wLWJhciAudG9wLWJhci1yaWdodCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAudG9wLWJhciAudG9wLWJhci1sZWZ0LFxuICAudG9wLWJhciAudG9wLWJhci1yaWdodCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSAudG9wLWJhci1sZWZ0LFxuICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0gLnRvcC1iYXItcmlnaHQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAudG9wLWJhci5zdGFja2VkLWZvci1sYXJnZSAudG9wLWJhci1sZWZ0LFxuICAudG9wLWJhci5zdGFja2VkLWZvci1sYXJnZSAudG9wLWJhci1yaWdodCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLnRvcC1iYXItdGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMDtcbn1cblxuLnRvcC1iYXItdGl0bGUgLm1lbnUtaWNvbiB7XG4gIGJvdHRvbTogMnB4O1xufVxuXG4udG9wLWJhci1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi50b3AtYmFyLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMTAsIDEwLCAxMCwgMC4xKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG5bdHlwZT0ndGV4dCddOmZvY3VzLCBbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cywgW3R5cGU9J2RhdGUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLCBbdHlwZT0nbW9udGgnXTpmb2N1cywgW3R5cGU9J3dlZWsnXTpmb2N1cywgW3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSdudW1iZXInXTpmb2N1cywgW3R5cGU9J3NlYXJjaCddOmZvY3VzLCBbdHlwZT0ndGVsJ106Zm9jdXMsIFt0eXBlPSd0aW1lJ106Zm9jdXMsIFt0eXBlPSd1cmwnXTpmb2N1cywgW3R5cGU9J2NvbG9yJ106Zm9jdXMsXG50ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggI2NhY2FjYTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG59XG5cbnRleHRhcmVhIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG50ZXh0YXJlYVtyb3dzXSB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuaW5wdXQ6OnBsYWNlaG9sZGVyLFxudGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNjYWNhY2E7XG59XG5cbmlucHV0OmRpc2FibGVkLCBpbnB1dFtyZWFkb25seV0sXG50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cblt0eXBlPSdzdWJtaXQnXSxcblt0eXBlPSdidXR0b24nXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW46IDAgMCAxcmVtO1xufVxuXG5bdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cblt0eXBlPSdjaGVja2JveCddICsgbGFiZWxbZm9yXSxcblt0eXBlPSdyYWRpbyddICsgbGFiZWxbZm9yXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxubGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbmxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn1cblxuW3R5cGU9J2ZpbGUnXSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG5sYWJlbC5taWRkbGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMDtcbn1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4uaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5pbnB1dC1ncm91cCA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7XG59XG5cbi5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkID4gKiB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7XG59XG5cbi5pbnB1dC1ncm91cC1sYWJlbCwgLmlucHV0LWdyb3VwLWZpZWxkLCAuaW5wdXQtZ3JvdXAtYnV0dG9uLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdpZHRoOiAxJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWw6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG5cbi5pbnB1dC1ncm91cC1sYWJlbDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG5cbi5pbnB1dC1ncm91cC1maWVsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGhlaWdodDogMi41cmVtO1xufVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgaGVpZ2h0OiAyLjVyZW07XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4uaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG59XG5cbmxlZ2VuZCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uZmllbGRzZXQge1xuICBtYXJnaW46IDEuMTI1cmVtIDA7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG59XG5cbi5maWVsZHNldCBsZWdlbmQge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1sZWZ0OiAtMC4xODc1cmVtO1xuICBwYWRkaW5nOiAwIDAuMTg3NXJlbTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbn1cblxuc2VsZWN0IHtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogcmdiJTI4MTM4LCAxMzgsIDEzOCUyOSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcbiAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMXJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCkge1xuICBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT1cIik7XG4gIH1cbn1cblxuc2VsZWN0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogMCAwIDVweCAjY2FjYWNhO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbn1cblxuc2VsZWN0OmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuc2VsZWN0W211bHRpcGxlXSB7XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBib3JkZXItY29sb3I6ICNjYzRiMzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWVjZWE7XG59XG5cbi5pcy1pbnZhbGlkLWlucHV0Om5vdCg6Zm9jdXMpOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2M0YjM3O1xufVxuXG4uaXMtaW52YWxpZC1sYWJlbCB7XG4gIGNvbG9yOiAjY2M0YjM3O1xufVxuXG4uZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjY2M0YjM3O1xufVxuXG4uZm9ybS1lcnJvci5pcy12aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgcGFkZGluZzogMC44NWVtIDFlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbiB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5idXR0b246aG92ZXIsIC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ2NzllO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi50aW55IHtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG5cbi5idXR0b24uc21hbGwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi5idXR0b24ubGFyZ2Uge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbi5idXR0b24uZXhwYW5kZWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5idXR0b24ucHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5idXR0b24ucHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMjYxOTU7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLnNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWU1ZTVlO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi5zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbi5idXR0b24uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5zdWNjZXNzOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyYmI1YjtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbi5idXR0b24ud2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4uYnV0dG9uLndhcm5pbmc6aG92ZXIsIC5idXR0b24ud2FybmluZzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzhiMDA7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4uYnV0dG9uLmFsZXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24uYWxlcnQ6aG92ZXIsIC5idXR0b24uYWxlcnQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTUzYjJhO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi5ob2xsb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMTc3OWJhO1xuICBjb2xvcjogIzE3NzliYTtcbn1cblxuLmJ1dHRvbi5ob2xsb3csIC5idXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMwYzNkNWQ7XG4gIGNvbG9yOiAjMGMzZDVkO1xufVxuXG4uYnV0dG9uLmhvbGxvdy5wcmltYXJ5IHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgY29sb3I6ICMxNzc5YmE7XG59XG5cbi5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMwYzNkNWQ7XG4gIGNvbG9yOiAjMGMzZDVkO1xufVxuXG4uYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnkge1xuICBib3JkZXI6IDFweCBzb2xpZCAjNzY3Njc2O1xuICBjb2xvcjogIzc2NzY3Njtcbn1cblxuLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMzYjNiM2I7XG4gIGNvbG9yOiAjM2IzYjNiO1xufVxuXG4uYnV0dG9uLmhvbGxvdy5zdWNjZXNzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgY29sb3I6ICMzYWRiNzY7XG59XG5cbi5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMxNTc1Mzk7XG4gIGNvbG9yOiAjMTU3NTM5O1xufVxuXG4uYnV0dG9uLmhvbGxvdy53YXJuaW5nIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgY29sb3I6ICNmZmFlMDA7XG59XG5cbi5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM4MDU3MDA7XG4gIGNvbG9yOiAjODA1NzAwO1xufVxuXG4uYnV0dG9uLmhvbGxvdy5hbGVydCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYzRiMzc7XG4gIGNvbG9yOiAjY2M0YjM3O1xufVxuXG4uYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM2NzI1MWE7XG4gIGNvbG9yOiAjNjcyNTFhO1xufVxuXG4uYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5idXR0b24uZGlzYWJsZWQsIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5IHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5LCAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnk6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeTpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeSwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeSwgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5IHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnksIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeTpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3MsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3Mge1xuICBvcGFjaXR5OiAwLjI1O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3MsIC5idXR0b24uZGlzYWJsZWQuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzOmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbi5idXR0b24uZGlzYWJsZWQud2FybmluZywgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZyB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5idXR0b24uZGlzYWJsZWQud2FybmluZywgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmc6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmcsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmc6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmc6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxuLmJ1dHRvbi5kaXNhYmxlZC5hbGVydCwgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQge1xuICBvcGFjaXR5OiAwLjI1O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uYnV0dG9uLmRpc2FibGVkLmFsZXJ0LCAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydCwgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQ6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24uZHJvcGRvd246OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgMC40ZW07XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjZmVmZWZlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMC40ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uYnV0dG9uLmRyb3Bkb3duLmhvbGxvdzo6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjMTc3OWJhO1xufVxuXG4uYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5wcmltYXJ5OjphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6ICMxNzc5YmE7XG59XG5cbi5idXR0b24uZHJvcGRvd24uaG9sbG93LnNlY29uZGFyeTo6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjNzY3Njc2O1xufVxuXG4uYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zdWNjZXNzOjphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6ICMzYWRiNzY7XG59XG5cbi5idXR0b24uZHJvcGRvd24uaG9sbG93Lndhcm5pbmc6OmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmYWUwMDtcbn1cblxuLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuYWxlcnQ6OmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2NjNGIzNztcbn1cblxuLmJ1dHRvbi5hcnJvdy1vbmx5OjphZnRlciB7XG4gIHRvcDogLTAuMWVtO1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5idXR0b24tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IDA7XG59XG5cbi5idXR0b24tZ3JvdXA6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xufVxuXG4uYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4uYnV0dG9uLWdyb3VwIC5idXR0b24ge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xuICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG4uYnV0dG9uLWdyb3VwIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLmJ1dHRvbi1ncm91cC50aW55IC5idXR0b24ge1xuICBmb250LXNpemU6IDAuNnJlbTtcbn1cblxuLmJ1dHRvbi1ncm91cC5zbWFsbCAuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xufVxuXG4uYnV0dG9uLWdyb3VwLmxhcmdlIC5idXR0b24ge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbi5idXR0b24tZ3JvdXAuZXhwYW5kZWQge1xuICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG59XG5cbi5idXR0b24tZ3JvdXAuZXhwYW5kZWQ6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMiksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB+IC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIDFweCk7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMik6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpIH4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMyksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgzKTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgzKSB+IC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDFweCk7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMyk6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpIH4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNCksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg0KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg0KSB+IC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDI1JSAtIDFweCk7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNCk6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpIH4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNSksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KSB+IC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDIwJSAtIDFweCk7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNSk6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDUpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDUpIH4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNiksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg2KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg2KSB+IC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDFweCk7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNik6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDYpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDYpIH4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI2MTk1O1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVlNWU1ZTtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbi5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4uYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4uYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxuLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b24ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIC5idXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4uYWNjb3JkaW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLmFjY29yZGlvbi1pdGVtOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDtcbn1cblxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7XG59XG5cbi5hY2NvcmRpb24tdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzE3NzliYTtcbn1cblxuOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gLmFjY29yZGlvbi10aXRsZSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xufVxuXG4uYWNjb3JkaW9uLXRpdGxlOmhvdmVyLCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbn1cblxuLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDFyZW07XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIGNvbnRlbnQ6ICcrJztcbn1cblxuLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXDIwMTMnO1xufVxuXG4uYWNjb3JkaW9uLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxuOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLWNvbnRlbnQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2O1xufVxuXG4uaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTNweDtcbiAgcmlnaHQ6IDFyZW07XG59XG5cbi5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gYTo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xufVxuXG4ubWVudSB7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4ubWVudSA+IGxpIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5tZW51ID4gbGkge1xuICBvdXRsaW5lOiAwO1xufVxuXG4ubWVudSA+IGxpID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxLjI1cmVtIDEuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1lbnUgaW5wdXQsXG4ubWVudSBzZWxlY3QsXG4ubWVudSBhLFxuLm1lbnUgYnV0dG9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1lbnUgPiBsaSA+IGEgaW1nLFxuLm1lbnUgPiBsaSA+IGEgaSxcbi5tZW51ID4gbGkgPiBhIHN2ZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5tZW51ID4gbGkgPiBhIGltZyArIHNwYW4sXG4ubWVudSA+IGxpID4gYSBpICsgc3Bhbixcbi5tZW51ID4gbGkgPiBhIHN2ZyArIHNwYW4ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubWVudSA+IGxpID4gYSBpbWcsXG4ubWVudSA+IGxpID4gYSBpLFxuLm1lbnUgPiBsaSA+IGEgc3ZnIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5tZW51ID4gbGksIC5tZW51Lmhvcml6b250YWwgPiBsaSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5tZW51LmV4cGFuZGVkIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuXG4ubWVudS5leHBhbmRlZCA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1lbnUudmVydGljYWwgPiBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB9XG4gIC5tZW51Lm1lZGl1bS1leHBhbmRlZCB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgfVxuICAubWVudS5tZWRpdW0tZXhwYW5kZWQgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB9XG4gIC5tZW51LmxhcmdlLWV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB9XG4gIC5tZW51LmxhcmdlLWV4cGFuZGVkID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLm1lbnUuc2ltcGxlIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLm1lbnUuc2ltcGxlIGEge1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWVudS5zaW1wbGUgbGkge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xufVxuXG4ubWVudS5zaW1wbGUuYWxpZ24tcmlnaHQgbGkge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuXG4ubWVudS5hbGlnbi1yaWdodDo6YmVmb3JlLCAubWVudS5hbGlnbi1yaWdodDo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xufVxuXG4ubWVudS5hbGlnbi1yaWdodDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLm1lbnUuYWxpZ24tcmlnaHQgPiBsaSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZW51Lmljb24tdG9wID4gbGkgPiBhIGltZyxcbi5tZW51Lmljb24tdG9wID4gbGkgPiBhIGksXG4ubWVudS5pY29uLXRvcCA+IGxpID4gYSBzdmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG8gMC4yNXJlbTtcbn1cblxuLm1lbnUuaWNvbi10b3AudmVydGljYWwgYSA+IHNwYW4ge1xuICBtYXJnaW46IGF1dG87XG59XG5cbi5tZW51Lm5lc3RlZCB7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuXG4ubWVudSAuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQ6ICNEMkE5MkQ7XG4gIGNvbG9yOiAjMTgzODZiO1xufVxuXG4ubWVudS5tZW51LWJvcmRlcmVkIGxpIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbn1cblxuLm1lbnUubWVudS1ib3JkZXJlZCBsaTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3A6IDA7XG59XG5cbi5tZW51Lm1lbnUtaG92ZXIgbGk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xufVxuXG4ubWVudS10ZXh0IHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLm1lbnUtY2VudGVyZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZW51LWNlbnRlcmVkID4gLm1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1lbnUtaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tZW51LWljb246OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IDAgN3B4IDAgI2ZlZmVmZSwgMCAxNHB4IDAgI2ZlZmVmZTtcbiAgY29udGVudDogJyc7XG59XG5cbi5tZW51LWljb246aG92ZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogI2NhY2FjYTtcbiAgYm94LXNoYWRvdzogMCA3cHggMCAjY2FjYWNhLCAwIDE0cHggMCAjY2FjYWNhO1xufVxuXG4ubWVudS1pY29uLmRhcmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubWVudS1pY29uLmRhcms6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6ICMwYTBhMGE7XG4gIGJveC1zaGFkb3c6IDAgN3B4IDAgIzBhMGEwYSwgMCAxNHB4IDAgIzBhMGEwYTtcbiAgY29udGVudDogJyc7XG59XG5cbi5tZW51LWljb24uZGFyazpob3Zlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjOGE4YThhO1xuICBib3gtc2hhZG93OiAwIDdweCAwICM4YThhOGEsIDAgMTRweCAwICM4YThhOGE7XG59XG5cbi5pcy1kcmlsbGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5pcy1kcmlsbGRvd24gbGkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmlzLWRyaWxsZG93bi5hbmltYXRlLWhlaWdodCB7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xufVxuXG4uaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xufVxuXG4uaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtYWN0aXZlIHtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG59XG5cbi5pcy1kcmlsbGRvd24tc3VibWVudS5pcy1jbG9zaW5nIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuXG4uZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4uaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgcmlnaHQ6IDFyZW07XG59XG5cbi5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG59XG5cbi5kcm9wZG93bi1wYW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAzMDBweDtcbiAgcGFkZGluZzogMXJlbTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbi5kcm9wZG93bi1wYW5lLmlzLW9wZW4ge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZHJvcGRvd24tcGFuZS50aW55IHtcbiAgd2lkdGg6IDEwMHB4O1xufVxuXG4uZHJvcGRvd24tcGFuZS5zbWFsbCB7XG4gIHdpZHRoOiAyMDBweDtcbn1cblxuLmRyb3Bkb3duLXBhbmUubGFyZ2Uge1xuICB3aWR0aDogNDAwcHg7XG59XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAwO1xufVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xufVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtM3B4O1xufVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgYSB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5uby1qcyAuZHJvcGRvd24ubWVudSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7XG59XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxMDAlO1xufVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICByaWdodDogMTRweDtcbn1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xufVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxMDA7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxMDA7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTtcbiAgfVxufVxuXG4uZHJvcGRvd24ubWVudS5hbGlnbi1yaWdodCAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDtcbn1cblxuLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwuYWxpZ24tcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IGE6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDVweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogMTAwJTtcbiAgbGVmdDogYXV0bztcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTAwJTtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgYmFja2dyb3VuZDogI2YzZjNmMztcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICByaWdodDogMTRweDtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSA+IGxpIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucGFnaW5hdGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4ucGFnaW5hdGlvbjo6YmVmb3JlLCAucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xufVxuXG4ucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnBhZ2luYXRpb24gbGkge1xuICBtYXJnaW4tcmlnaHQ6IDAuMDYyNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnBhZ2luYXRpb24gbGk6bGFzdC1jaGlsZCwgLnBhZ2luYXRpb24gbGk6Zmlyc3QtY2hpbGQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wYWdpbmF0aW9uIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLnBhZ2luYXRpb24gYSxcbi5wYWdpbmF0aW9uIGJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4ucGFnaW5hdGlvbiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzE4Mzg2Yjtcbn1cblxuLnBhZ2luYXRpb24gLmN1cnJlbnQge1xuICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gIGJhY2tncm91bmQ6ICMxODM4NmI7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5wYWdpbmF0aW9uIC5kaXNhYmxlZCB7XG4gIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgY29sb3I6ICNjYWNhY2E7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5wYWdpbmF0aW9uIC5kaXNhYmxlZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4ucGFnaW5hdGlvbiAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbi5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbi5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBjb250ZW50OiAnXFwwMGFiJztcbn1cblxuLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbi5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBjb250ZW50OiAnXFwwMGJiJztcbn1cblxuLmJyZWFkY3J1bWJzIHtcbiAgbWFyZ2luOiAwLjVyZW0gMXJlbSAwcmVtIDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5icmVhZGNydW1iczo6YmVmb3JlLCAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbn1cblxuLmJyZWFkY3J1bWJzOjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4uYnJlYWRjcnVtYnMgbGkge1xuICBmbG9hdDogbGVmdDtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGNvbG9yOiAjMGEwYTBhO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5icmVhZGNydW1icyBsaTpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxcHg7XG4gIG1hcmdpbjogMCAwLjc1cmVtO1xuICBvcGFjaXR5OiAxO1xuICBjb250ZW50OiBcIi9cIjtcbiAgY29sb3I6ICNjYWNhY2E7XG59XG5cbi5icmVhZGNydW1icyBhIHtcbiAgY29sb3I6ICMxNzc5YmE7XG59XG5cbi5icmVhZGNydW1icyBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5icmVhZGNydW1icyAuZGlzYWJsZWQge1xuICBjb2xvcjogI2NhY2FjYTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxudGhlYWQsXG50Ym9keSxcbnRmb290IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2YxZjFmMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbn1cblxuY2FwdGlvbiB7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbnRoZWFkIHtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbnRmb290IHtcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbnRoZWFkIHRyLFxudGZvb3QgdHIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxudGhlYWQgdGgsXG50aGVhZCB0ZCxcbnRmb290IHRoLFxudGZvb3QgdGQge1xuICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50Ym9keSB0aCxcbnRib2R5IHRkIHtcbiAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xufVxuXG50Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xufVxuXG50YWJsZS51bnN0cmlwZWQgdGJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xufVxuXG50YWJsZS51bnN0cmlwZWQgdGJvZHkgdHIge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YxZjFmMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIHRhYmxlLnN0YWNrIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIHRhYmxlLnN0YWNrIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIHRhYmxlLnN0YWNrIHRyLFxuICB0YWJsZS5zdGFjayB0aCxcbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIHRhYmxlLnN0YWNrIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG59XG5cbnRhYmxlLnNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxudGFibGUuaG92ZXIgdGhlYWQgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xufVxuXG50YWJsZS5ob3ZlciB0Zm9vdCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7XG59XG5cbnRhYmxlLmhvdmVyIHRib2R5IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cblxudGFibGUuaG92ZXI6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYztcbn1cblxuLnRhYmxlLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi50YWJsZS1zY3JvbGwgdGFibGUge1xuICB3aWR0aDogYXV0bztcbn1cblxuLnRhYnMge1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLnRhYnM6OmJlZm9yZSwgLnRhYnM6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbn1cblxuLnRhYnM6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi50YWJzLnZlcnRpY2FsID4gbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4udGFicy5zaW1wbGUgPiBsaSA+IGEge1xuICBwYWRkaW5nOiAwO1xufVxuXG4udGFicy5zaW1wbGUgPiBsaSA+IGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLnRhYnMucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMxNzc5YmE7XG59XG5cbi50YWJzLnByaW1hcnkgPiBsaSA+IGEge1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLnRhYnMucHJpbWFyeSA+IGxpID4gYTpob3ZlciwgLnRhYnMucHJpbWFyeSA+IGxpID4gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICMxNjczYjE7XG59XG5cbi50YWJzLXRpdGxlIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi50YWJzLXRpdGxlID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxcmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7XG59XG5cbi50YWJzLXRpdGxlID4gYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGNvbG9yOiAjMTQ2OGEwO1xufVxuXG4udGFicy10aXRsZSA+IGE6Zm9jdXMsIC50YWJzLXRpdGxlID4gYVthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG4udGFicy1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07XG59XG5cbi50YWJzLXBhbmVsW2FyaWEtaGlkZGVuPVwiZmFsc2VcIl0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMzMycHgpIHtcbiAgLnRpdHVsYXIge1xuICAgIHdpZHRoOiAyMDVweDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNTBweCkge1xuICAudGl0dWxhciB7XG4gICAgd2lkdGg6IDE3NXB4O1xuICB9XG4gIC51bmFjaCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuICBkaXYjY29udGFkb3IsIC5yZWRlcyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMjBweCkge1xuICAudGl0dWxhciB7XG4gICAgd2lkdGg6IDE1MHB4O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC50b3AtYmFyIC50b3AtYmFyLWxlZnQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdWwuc3VibWVudSBsaTpudGgtY2hpbGQoZXZlbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICB9XG4gIC5zbGlkZXIsIC5sYXRlcmFsLCAuYmxvcXVlLXByaW5jaXBhbCwgLmJsb3F1ZS1sYXRlcmFsLCAuYmxvcXVlLXNlY3VuZGFyaW8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNsaWRlciwgLmxhdGVyYWwsIC5ibG9xdWUtcHJpbmNpcGFsLCAuYmxvcXVlLWxhdGVyYWwsIC5ibG9xdWUtc2VjdW5kYXJpbyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC8qIC5ibG9xdWUtNyAubW9kdWxldGFibGUgPiBoMywubGF0ZXJhbCAubW9kdWxldGFibGUgPiBoMywuYmxvcXVlLWxhdGVyYWwgLm1vZHVsZXRhYmxlID4gaDMsIC5ibG9xdWUtcHJpbmNpcGFsIC5tb2R1bGV0YWJsZSA+IGgzLC5ibG9xdWUtc2VjdW5kYXJpbyAubW9kdWxldGFibGUgPmgze1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9ICovXG4gIC5tb2R1bGV0YWJsZSA+IGgzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudGl0dWxhciB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIH1cbiAgLnVuYWNoIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuICAucmVkZXMsIGRpdiNjb250YWRvciB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmVkZXMsIGRpdiNjb250YWRvciB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLmRpci1pbWcge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICBkaXYuaXRlbVRvb2xiYXIge1xuICAgIG1hcmdpbi10b3A6IC0zcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5wZXJzb25hIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wZXJzb25hIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICBkaXYjY29udGFkb3IsIC5yZWRlcywgLnVuYWNoIHtcbiAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIGltZyNpbWdfcmVmIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuYmxvcXVlX2ludmVzdGlnYWRvciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gaW1nIHtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICB9XG4gIC5kYXRvcy11YmljYWNpb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmRhdG9zLXViaWNhY2lvbiB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLmJsb3F1ZS1zZWN1bmRhcmlvLTMgLm1vZHVsZXRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ibG9xdWUtc2VjdW5kYXJpby0zIC5tb2R1bGV0YWJsZSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLmJsb3F1ZS1zZWN1bmRhcmlvLTMsIC5ibG9xdWUtc2VjdW5kYXJpby0xIC5tb2R1bGV0YWJsZSwgLmJsb3F1ZS03IC5tb2R1bGV0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYmxvcXVlLXNlY3VuZGFyaW8tMywgLmJsb3F1ZS1zZWN1bmRhcmlvLTEgLm1vZHVsZXRhYmxlLCAuYmxvcXVlLTcgLm1vZHVsZXRhYmxlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICAubG9nby1idXNxdWVkYSAubG9nbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubG9nby1idXNxdWVkYSAubG9nbyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLmxvZ28tYnVzcXVlZGEgLmJ1c2NhZG9yLWlkaW9tYS1jb3JyZW8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmxvZ28tYnVzcXVlZGEgLmJ1c2NhZG9yLWlkaW9tYS1jb3JyZW8ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIHVsLm5hdmVnYWNpb24ge1xuICAgIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICB9XG4gIC5pdGVtRnVsbFRleHQsIC5pdGVtSW1hZ2VCbG9jaywgLmFydGljdWxvc180IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5pdGVtRnVsbFRleHQsIC5pdGVtSW1hZ2VCbG9jaywgLmFydGljdWxvc180IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICBkaXYuaXRlbUZ1bGxUZXh0IHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgfVxuICAudGl0dWxvLWl0ZW0ge1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnRpdHVsby1pdGVtIGEge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG4gIHVsLm1hcy10aXR1bGFyZXMgbGkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLnNlY2Npb24sIC5sYXRlcmFsLCAuc2VjY2lvbi1jZW50cm8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNlY2Npb24sIC5sYXRlcmFsLCAuc2VjY2lvbi1jZW50cm8ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC50aXR1bG8ge1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gIH1cbiAgLnRpdHVsbyBwIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgaW1nLmFydGljdWxvLWltYWdlbiwgaW1nLmFjdC1pbWFnZW4ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZGVzdGFjYWRvIGltZywgaW1nLmFjdC1pbWFnZW4ge1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG4gIC5kZXN0YWNhZG8gYSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC51bmFjaCB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC51bmFjaCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLnJlZGVzIHtcbiAgICB3aWR0aDogNDEuNjY2NjclO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJlZGVzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICAubWVudS1mb290ZXIsIC5sb2dvLWZvb3RlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVudS1mb290ZXIsIC5sb2dvLWZvb3RlciB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLm93bC10aGVtZSAub3dsLWRvdHMsXG4gIC5vd2wtdGhlbWUgLm93bC1uYXYge1xuICAgIG1hcmdpbi10b3A6IDBweDtcbiAgfVxuICAub3dsLXRoZW1lIC5vd2wtZG90cyAub3dsLWRvdCBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDRkNGQ0O1xuICB9XG4gIC5hcnRpY3Vsb19jdWF0cm8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmFydGljdWxvX2N1YXRybyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLmFydGljdWxvX2N1YXRybyBhIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuICAuYXJ0aWN1bG9fY3VhdHJvIC5ibG9xdWUtcHJpbmNpcGFsIC5tb2R1bGV0YWJsZSA+IGgzIHtcbiAgICB3aWR0aDogNzAlO1xuICB9XG4gIC5iYXJyYS1sYXRlcmFsLCAjbWVudS1sYXRlcmFsLCAuY29udGVuaWRvLWxhdGVyYWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmJhcnJhLWxhdGVyYWwsICNtZW51LWxhdGVyYWwsIC5jb250ZW5pZG8tbGF0ZXJhbCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLnNlcGFyYWRvciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICB1bCNjb250ZW5pZG8tdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgfVxuICAuYmxvcXVlcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1MHB4KSB7XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZyB7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgfVxuICAuYXJ0aWN1bG9zXzMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NTBweCkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmFydGljdWxvc18zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NTBweCkge1xuICAuaWNvbm9zLCAuZGVzcGxlZ2FibGVzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjUwcHgpIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5pY29ub3MsIC5kZXNwbGVnYWJsZXMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1MHB4KSB7XG4gIGRpdi5wYWdlLWhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogNS41cmVtO1xuICB9XG4gIC5tZW5zYWplLWJpZW52ZW5pZGEtcmVjdG9yIC5tZW5zYWplLCAubWVuc2FqZS1iaWVudmVuaWRhLXJlY3RvciAuZm90byB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1MHB4KSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVuc2FqZS1iaWVudmVuaWRhLXJlY3RvciAubWVuc2FqZSwgLm1lbnNhamUtYmllbnZlbmlkYS1yZWN0b3IgLmZvdG8ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1MHB4KSB7XG4gIGRpdi5wYWdlLWhlYWRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5hcnRpY3Vsb190cmVzLCAuYXJ0aWN1bG9fZG9zLCAuYXJ0aWN1bG9zXzIsIC5hcnRpY3Vsb3NfMyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1MHB4KSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYXJ0aWN1bG9fdHJlcywgLmFydGljdWxvX2RvcywgLmFydGljdWxvc18yLCAuYXJ0aWN1bG9zXzMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1MHB4KSB7XG4gIGltZy5hcnRpY3Vsby1pbWFnZW4sIC5lZmVtZXJpZGUgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICB9XG4gIC5hcnRpY3Vsb190cmVzIGEsIC5hcnRpY3Vsb19kb3MgYSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cbiAgLnRpdHVsby1ldmVudG8ge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuICAuZmVjaGEtZXZlbnRvIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbiAgLnVuYWNoLCAucmVkZXMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NTBweCkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnVuYWNoLCAucmVkZXMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU4NXB4KSB7XG4gIC50aXR1bG8tZXZlbnRvIHtcbiAgICB3aWR0aDogNzAlO1xuICB9XG4gIC5sb2dvLWJ1c3F1ZWRhIC5idXNjYWRvci1pZGlvbWEtY29ycmVvIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgfVxuICAucmVkZXMsIGRpdiNjb250YWRvciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU4NXB4KSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmVkZXMsIGRpdiNjb250YWRvciB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi8qXG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG5cblxuQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtZWxlbWVudDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tbWV0ZXItZWxlbWVudDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcblxuQGluY2x1ZGUgbW90aW9uLXVpLXRyYW5zaXRpb25zO1xuQGluY2x1ZGUgbW90aW9uLXVpLWFuaW1hdGlvbnM7XG4qL1xuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuMy4xXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBEZXBlbmRlbmNpZXNcbkBpbXBvcnQgJy4uL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyBTZXR0aW5nc1xuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyBTYXNzIHV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gR2xvYmFsIHZhcmlhYmxlcyBhbmQgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuLy9AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZygkZmxleDogZmFsc2UpIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5cbiAgQGlmICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbiAgfVxufVxuIiwiLmFuaW1hdGVkIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuQGtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1JSwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblVwIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xufVxuXG4uZWxlbWVudC1pbnZpc2libGUsLmJ1c2NhZG9yLC5sb2dpbi1jb3JyZW8sLmxvZ2luLXVuZXRcbntcbiAgICBkaXNwbGF5OiBub25lO1xufVxuaGVhZGVyeyBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZG9yYWRvO1xufVxuLmxvZ28tYnVzcXVlZGFcbntcbiAgICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAgLmxvZ297XG4gICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig3LDApO1xuICAgICAgICAgcGFkZGluZzogMCAwLjYyNXJlbSAwIDA7XG5cbiAgICAgfVxuICAgICAuYnVzY2Fkb3ItaWRpb21hLWNvcnJlb1xuICAgICB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNSk7XG4gICAgICAgICAgY29sb3I6ICRhenVsLWJhc2U7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgfVxufVxuLyoubG9nby1idXNxdWVkYVxue1xuICAgICBAaW5jbHVkZSBncmlkLXJvdztcblxuICAgICAubG9nb3tcbiAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDcpO1xuICAgICB9XG4gICAgIC5idXNjYWRvci1pZGlvbWEtY29ycmVvXG4gICAgIHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig1KTtcbiAgICAgICAgICBjb2xvcjogJGF6dWwtYmFzZTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICB9XG59ICovXG5cbi5iYW5kZXJhcyBhIHtcbiAgICBjb2xvcjogJGdyaXM7XG59XG5cbi5pY29ub1xue1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5hLm50dXJsOmFmdGVyIHtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiAnJztcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggJGF6dWwtYmFzZTtcbiAgICB0b3A6IC0zcHg7XG4gICAgLy9tYXJnaW4tbGVmdDogOXB4O1xuICAgIHJpZ2h0OiAtNnB4O1xuXG5cbn1cblxuYS5udHVybDpsYXN0LWNoaWxkOmFmdGVye1xuICAgIGJvcmRlcjpub25lO1xufVxuYS5mbGFne1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogJGF6dWxfYmFzZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cbi8vY29udGVuZWRvci1wcmluY2lwYWxcbi5jb250ZW5lZG9ye1xuICAgIGNvbG9yOiRuZWdybztcbiAgICBAaW5jbHVkZSBncmlkLXJvdztcbiAgICAvL21hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgLy9tYXJnaW4tdG9wOjMwcHg7XG5cbiAgICAvL2F7XG4gICAgICAvLyAgY29sb3I6ICRhenVsLWJhc2U7IFxuICAgIC8vfVxufVxuXG4vL0JVU0NBRE9SXG4uaWNvbm9ze1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDQsMCk7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uZGVzcGxlZ2FibGVze1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDgsMCk7XG59XG4uZm9ybXVsYXJpb3tcbiAgICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG59XG4uZm9ybS1wYXNzd2QsLmZvcm0tdXN1YXJpb1xue1xuICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig1LDApO1xufVxuLmJ0bi1zdWJtaXRcbntcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigyLDApO1xufVxuXG4vL0NvcnJlb1xuXG4ub3B0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZm9ybS11c3VhcmlvIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuXG4vL2hlZGFlclxuLmljb24tc2VhcmNoLC5pY29uLW1haWxcbntcbiAgICBmb250LXNpemU6IDI1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxubmF2XG57XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGF6dWwtYmFzZTtcbiAgICNtZW51LXByaW5jaXBhbHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gICB9XG5cbiAgIGF7XG4gICAgICAgY29sb3I6JGdyaXM7XG4gICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgIH1cbn1cblxuLnRpdGxlLWJhci10aXRsZXtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICRncmlzO1xufVxuXG5idXR0b24ubWVudS1pY29ub3tcbiBmb250LXNpemU6IDMwcHg7XG4gYm9yZGVyOnNvbGlkIDFweCAkZ3JpcztcbiBib3JkZXItcmFkaXVzOiA1cHg7XG4gY29sb3I6ICRncmlzO1xuIG1hcmdpbjogNXB4O1xufVxuXG4ubWVudSA+IGxpID4gYTpob3ZlciB7XG4gICAgY29sb3I6ICRkb3JhZG87XG59XG4ubWVudSA+IGxpLmFjdGl2ZSA+IGE6aG92ZXIge1xuICAgIGNvbG9yOiAkYXp1bC1iYXNlO1xufVxuLmxvZ2luX2NvcnJlb3tcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig4KTtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cblxuXG51bC5sb2dvcyBsaXtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMjRweDtcbn1cblxuLy9Gb290ZXJcbmZvb3Rlclxue1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhenVsLWJhc2U7XG4gICAgYm9yZGVyLWJvdHRvbTogJGRvcmFkbyBzb2xpZCAxOHB4O1xuICAgIGNvbG9yOiAkZ3JpcztcbiAgICBwYWRkaW5nLXRvcDogMjVweDtcblxuICAgIHB7XG4gICAgICAgIGNvbG9yOiAkZ3JpcztcbiAgICB9XG59XG4ubWVudS1mb290ZXJcbntcbkBpbmNsdWRlIGdyaWQtY29sdW1uKDksMCk7XG5tYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuLmxvZ28tZm9vdGVyXG57XG5AaW5jbHVkZSBncmlkLWNvbHVtbigzKTtcbn1cblxudWwubmF2LWZvb3RlcntcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBsaXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgIH1cbiAgICBhe1xuICAgICAgICBjb2xvcjogJGdyaXM7XG4gICAgICAgICAgICAgICAgJjpob3ZlclxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4udW5hY2h7XG5AaW5jbHVkZSBncmlkLWNvbHVtbig4LDApO1xubWFyZ2luLXRvcDogMXJlbTtcbn1cbi5yZWRlc3tcbkBpbmNsdWRlIGdyaWQtY29sdW1uKDIsMCk7XG5cblxufVxuXG4gIHVsI3JlZGVzc29jaWFsZXN7XG5cbiAgbWFyZ2luLWxlZnQ6MDtcbiAgICAgICAgbGl7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4ICAxMHB4IDBweCAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFue1xuXG4gICAgICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBhe1xuICAgICAgICAgICAgY29sb3I6ICRncmlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gXG4vL0xBWU9VVCBJTlNUSVRVQ0lPTkFMXG5cbi5zbGlkZXJ7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oOSwwKTtcbiAgICBwYWRkaW5nLXJpZ2h0OjIuNXJlbTtcbn1cbi5sYXRlcmFsLCNtZW51LWxhdGVyYWx7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMyk7XG59XG4gbGkuc3ViZWxlbWVudG97XG4gICAgIHBhZGRpbmctbGVmdDogNTBweDtcbiB9XG5cbmxpLmV0aXF1ZXRhID4gcCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAvL2NvbG9yOiAkY29sb3I7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuZWdybztcbiAgICBmb250LXNpemU6IDFyZW07XG59XG5cblxuXG5saS5ldGlxdWV0YXtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLm1vZHVsZUl0ZW1JbnRyb3RleHQgaW1nIHtcbiAgICB3aWR0aDogMjcwcHg7XG4gICAgaGVpZ2h0OiAxNTJweDtcbn1cblxuZm9vdGVyXG57XG4gICAgZm9udC1zaXplOiAxNHB4O1xuXG4gICAgaHIge1xuICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi50aXR1bG9ze1xuICAgIHRleHQtc2hhZG93OjAgMnB4IDJweCBncmV5O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4ubGljLWltYWdlbiB7XG4gICAgd2lkdGg6IDI4JTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLmxpYy1ub21icmUge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMyU7XG4gICAgZm9udC1zaXplOiAyMHB4O1xufVxuXG5cbi8vZGlyZWN0b3Jpb1xuLmludGVncmFudGV7XG4gICAgd2lkdGg6IDQ3JTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XG59XG5cbi5wcmltZXJvIC5kYXRvcyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5mb3Rve1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDQsMCk7XG59XG4uZGF0b3N7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oOCk7XG59XG4uaW50ZWdyYW50ZTpudGgtY2hpbGQoMSl7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5pbnRlZ3JhbnRlOm50aC1jaGlsZCgxKSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4vL0RpcmVjdG9yaW9cblxuLnBlcnNvbmF7XG4gICAgIHdpZHRoOiA0OSU7XG4gICAgIG1hcmdpbi1ib3R0b206MzBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgcHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgIFxufVxuXG4ucGVyc29uYTpudGgtY2hpbGQoMSkge1xuICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xufVxuLnByaW1lcm97XG4gQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206MzBweDtcblxuICAgIHB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgaW1neyBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgXG4gICAgfVxufVxuc3Bhbi5pY29uby5kaXJlY3RvcmlvIHtcbiAgICBjdXJzb3I6IGF1dG87XG59XG4iLCIvLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3Ncbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBUYWJsZSBvZiBDb250ZW50czpcbi8vXG4vLyAgIDEuIEdsb2JhbFxuLy8gICAyLiBCcmVha3BvaW50c1xuLy8gICAzLiBUaGUgR3JpZFxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAgIDYuIEFiaWRlXG4vLyAgIDcuIEFjY29yZGlvblxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxuLy8gICA5LiBCYWRnZVxuLy8gIDEwLiBCcmVhZGNydW1ic1xuLy8gIDExLiBCdXR0b25cbi8vICAxMi4gQnV0dG9uIEdyb3VwXG4vLyAgMTMuIENhbGxvdXRcbi8vICAxNC4gQ2FyZFxuLy8gIDE1LiBDbG9zZSBCdXR0b25cbi8vICAxNi4gRHJpbGxkb3duXG4vLyAgMTcuIERyb3Bkb3duXG4vLyAgMTguIERyb3Bkb3duIE1lbnVcbi8vICAxOS4gRm9ybXNcbi8vICAyMC4gTGFiZWxcbi8vICAyMS4gTWVkaWEgT2JqZWN0XG4vLyAgMjIuIE1lbnVcbi8vICAyMy4gTWV0ZXJcbi8vICAyNC4gT2ZmLWNhbnZhc1xuLy8gIDI1LiBPcmJpdFxuLy8gIDI2LiBQYWdpbmF0aW9uXG4vLyAgMjcuIFByb2dyZXNzIEJhclxuLy8gIDI4LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAgMjkuIFJldmVhbFxuLy8gIDMwLiBTbGlkZXJcbi8vICAzMS4gU3dpdGNoXG4vLyAgMzIuIFRhYmxlXG4vLyAgMzMuIFRhYnNcbi8vICAzNC4gVGh1bWJuYWlsXG4vLyAgMzUuIFRpdGxlIEJhclxuLy8gIDM2LiBUb29sdGlwXG4vLyAgMzcuIFRvcCBCYXJcblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cblxuLy9Db2xvcmVzIFVOQUNIXG4kYXp1bC1iYXNlOiMxODM4NmI7XG4kZG9yYWRvOiNEMkE5MkQ7XG4kZ3JpczojZjNmM2YzO1xuJG5lZ3JvOiMzMzM7XG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlO1xuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCk7XG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNTtcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbik7XG4kbGlnaHQtZ3JheTogI2U2ZTZlNjtcbiRtZWRpdW0tZ3JheTogI2NhY2FjYTtcbiRkYXJrLWdyYXk6ICM4YThhOGE7XG4kYmxhY2s6ICMwYTBhMGE7XG4kd2hpdGU6ICNmZWZlZmU7XG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2s7XG4kYm9keS1mb250LWZhbWlseTogJ015cmlhZFdlYlByb1JlZ3VsYXInLCBzYW5zLXNlcmlmOyAvLydIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQ7XG4kZ2xvYmFsLXJhZGl1czogMDtcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0cjtcbiRnbG9iYWwtZmxleGJveDogZmFsc2U7XG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XG5cbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuLy8gMi4gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbik7XG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2U7XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKTtcblxuLy8gMy4gVGhlIEdyaWRcbi8vIC0tLS0tLS0tLS0tXG5cbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbi1jb3VudDogMTI7XG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAoXG4gIHNtYWxsOiAyMHB4LFxuICBtZWRpdW06IDMwcHgsXG4pO1xuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IGZhbHNlO1xuJGJsb2NrLWdyaWQtbWF4OiA4O1xuXG4vLyA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0O1xuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDIpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMzApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTQpLFxuICApLFxuKTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjY7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJztcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweDtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogJHdoaXRlO1xuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luOjAuNXJlbSAxcmVtIDByZW0gMDsgLy8wIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlO1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbTtcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRidXR0b24tZmlsbDogc29saWQ7XG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuJGJ1dHRvbi1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjaztcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlO1xuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlO1xuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcblxuLy8gMTIuIEJ1dHRvbiBHcm91cFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nO1xuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWU7XG5cbi8vIDEzLiBDYWxsb3V0XG4vLyAtLS0tLS0tLS0tLVxuXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMDtcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW07XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDYXJkXG4vLyAtLS0tLS0tLVxuXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGNhcmQtc2hhZG93OiBub25lO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kY2FyZC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wO1xuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAoXG4gIHNtYWxsOiAwLjY2cmVtLFxuICBtZWRpdW06IDFyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxuICBzbWFsbDogMC4zM2VtLFxuICBtZWRpdW06IDAuNXJlbSxcbik7XG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxO1xuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2s7XG5cbi8vIDE2LiBEcmlsbGRvd25cbi8vIC0tLS0tLS0tLS0tLS1cblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG5cbi8vIDE3LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xuJGRyb3Bkb3duLWJhY2tncm91bmQ6JGJvZHktYmFja2dyb3VuZDtcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtO1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDsgXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pO1xuXG4vLyAxOC4gRHJvcGRvd24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWU7XG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHg7XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuXG4vLyAxOS4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2s7XG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtO1xuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjaztcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjg7XG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kaW5wdXQtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKTtcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5O1xuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQ7XG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlO1xuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjAuIExhYmVsXG4vLyAtLS0tLS0tLS1cblxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGxhYmVsLWNvbG9yOiAkd2hpdGU7XG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2s7XG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbTtcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMS4gTWVkaWEgT2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlO1xuXG4vLyAyMi4gTWVudVxuLy8gLS0tLS0tLS1cblxuJG1lbnUtbWFyZ2luOiAwO1xuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbTtcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW07XG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRtZW51LWJvcmRlcjogJGxpZ2h0LWdyYXk7XG5cbi8vIDIzLiBNZXRlclxuLy8gLS0tLS0tLS0tXG5cbiRtZXRlci1oZWlnaHQ6IDFyZW07XG4kbWV0ZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRtZXRlci1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kbWV0ZXItZmlsbC1nb29kOiAkc3VjY2Vzcy1jb2xvcjtcbiRtZXRlci1maWxsLW1lZGl1bTogJHdhcm5pbmctY29sb3I7XG4kbWV0ZXItZmlsbC1iYWQ6ICRhbGVydC1jb2xvcjtcblxuLy8gMjQuIE9mZi1jYW52YXNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRvZmZjYW52YXMtc2l6ZTogMjUwcHg7XG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemU6IDI1MHB4O1xuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KTtcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDE7XG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMDtcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTtcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWU7XG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpO1xuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcblxuLy8gMjUuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5O1xuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwO1xuXG4vLyAyNi4gUGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS1cblxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpO1xuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3I7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZTtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO1xuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2U7XG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWU7XG5cbi8vIDI3LiBQcm9ncmVzcyBCYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJHByb2dyZXNzLWhlaWdodDogMXJlbTtcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjguIFJlc3BvbnNpdmUgRW1iZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pO1xuXG4vLyAyOS4gUmV2ZWFsXG4vLyAtLS0tLS0tLS0tXG5cbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlO1xuJHJldmVhbC13aWR0aDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDMwLiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzMS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDMyLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG5cbi8vIDMzLiBUYWJzXG4vLyAtLS0tLS0tLVxuXG4kdGFiLW1hcmdpbjogMDtcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheTtcbiR0YWItYWN0aXZlLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4kdGFiLWV4cGFuZC1tYXg6IDY7XG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXk7XG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gMzQuIFRodW1ibmFpbFxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZTtcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSk7XG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDM1LiBUaXRsZSBCYXJcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjaztcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbTtcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkO1xuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXk7XG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuXG4vLyAzNi4gVG9vbHRpcFxuLy8gLS0tLS0tLS0tLS1cblxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXk7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlO1xuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbTtcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbTtcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2O1xuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzcuIFRvcCBCYXJcbi8vIC0tLS0tLS0tLS0tXG5cbiR0b3BiYXItcGFkZGluZzogMC41cmVtO1xuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHg7XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudCAhZ2xvYmFsO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgcm93LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gQ29sdW1uIGNvdW50IGZvciB0aGlzIHJvdy4gYG51bGxgIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC5cbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2YgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIGNsZWFyZml4LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjZjogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi1zaXplKSkgLyAyICogLTE7XG5cbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldCBhIGdyaWQgcm93IHNpemVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbkBtaXhpbiBncmlkLXJvdy1zaXplKCRzaXplOiAkZ3JpZC1yb3ctd2lkdGgpIHtcbiAgQGlmICRzaXplID09IGV4cGFuZCB7XG4gICAgJHNpemU6IG5vbmU7XG4gIH1cblxuICBtYXgtd2lkdGg6ICRzaXplO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIC8vIFVzaW5nIHJlbSBhcyBiYXNlIGFsbG93cyBjb3JyZWN0IHNjYWxpbmdcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmICRjb3VudCA9PSAxIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGVtIGludG8gcmVtIGlmIHNvbWVvbmUgaGFuZHMgb3ZlciAnZW0nc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogMXJlbTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtIG9yIGVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlID09IDByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCwgcGVyY2VudGFnZSwgcmVtIG9yIGVtIHZhbHVlIHRvIGEgdW5pdGxlc3MgdmFsdWUgYmFzZWQgb24gYSBnaXZlbiBmb250IHNpemUuIElkZWFsIGZvciB3b3JraW5nIG91dCB1bml0bGVzcyBsaW5lIGhlaWdodHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydCB0byBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGZvbnQgc2l6ZSB0byB1c2UgdG8gd29yayBvdXQgdGhlIGxpbmUgaGVpZ2h0IC0gZGVmYXVsdHMgdG8gJGdsb2JhbC1mb250LXNpemVcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcbkBmdW5jdGlvbiB1bml0bGVzcy1jYWxjKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBGaXJzdCwgbGV0cyBjb252ZXJ0IG91ciAkYmFzZSB0byBwaXhlbHNcblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gTm93IGxldHMgY29udmVydCBvdXIgdmFsdWUgdG8gcGl4ZWxzIHRvb1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICclJyB7XG4gICAgJHZhbHVlOiAoJHZhbHVlIC8gMTAwJSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICAvLyAncHgnXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyB7XG4gICAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIC8vIGFzc3VtZSB0aGF0IGxpbmUtaGVpZ2h0cyBncmVhdGVybiB0aGVuIDEwIGFyZSBtZWFudCB0byBiZSBhYnNvbHV0ZSBpbiAncHgnXG4gIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAoJHZhbHVlID4gMTApIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJzsgICAgXG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogdHJ1ZSkge1xuICAkbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcblxuICBAaWYgbm90ICRzbWFsbCB7XG4gICAgJGxpc3Q6IHNsLXJlbW92ZSgkbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUgaW4gJGxpc3Qge1xuICAgICQtemYtc2l6ZTogJG5hbWUgIWdsb2JhbDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlIG9yIGJyZWFrcG9pbnQgbmFtZSB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbmFtZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIHdpZHRoIG9mIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkd2lkdGggWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCB0byBtYWtlIHRoZSBjb2x1bW4uIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXNpemUoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXNpemVcbkBtaXhpbiBncmlkLWNvbC1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBiYXNlZCBvbiBhIG51bWJlciBvZiBmYWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGNvbHVtbnNcbi8vLyAgIFdpZHRoIG9mIHRoZSBjb2x1bW4uIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHBlcmNlbnRhZ2UgdmFsdWUgd2lsbCBtYWtlIHRoZSBjb2x1bW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIHNpbmdsZSBkaWdpdCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBzcGFuIHRoYXQgbnVtYmVyIG9mIGNvbHVtbnMgd2lkZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgY29sdW1uIGNvdW50IG9mIHRoZSBwYXJlbnQgcm93LlxuLy8vICAgLSBBIGxpc3Qgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiICh3aXRob3V0IHF1b3Rlcykgd2lsbCBtYWtlIGEgY29sdW1uIHRoYXQgaXMgKngqIGNvbHVtbnMgd2lkZSwgYXNzdW1pbmcgKnkqIHRvdGFsIGNvbHVtbnMgZm9yIHRoZSBwYXJlbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIGNhbGN1bGF0ZWQgcGVyY2VudGFnZSB2YWx1ZS5cbkBmdW5jdGlvbiBncmlkLWNvbHVtbigkY29sdW1ucykge1xuICAkd2lkdGg6IDAlO1xuXG4gIC8vIFBhcnNpbmcgcGVyY2VudHMsIGRlY2ltYWxzLCBhbmQgY29sdW1uIGNvdW50c1xuICBAaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRjb2x1bW5zKSA9PSAnJScge1xuICAgICAgJHdpZHRoOiAkY29sdW1ucztcbiAgICB9XG4gICAgQGVsc2UgaWYgJGNvbHVtbnMgPCAxIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRncmlkLWNvbHVtbi1jb3VudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdsaXN0JyB7XG4gICAgQGlmIGxlbmd0aCgkY29sdW1ucykgIT0gMyB7XG4gICAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIi4nO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UobnRoKCRjb2x1bW5zLCAxKSAvIG50aCgkY29sdW1ucywgMykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFueXRoaW5nIGVsc2UgaXMgaW5jb3JyZWN0XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiLic7XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xuICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gTGFzdCBjb2x1bW4gYWxpZ25tZW50XG4gIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFdpZHRoIG9mIHRoZSBndXR0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBjb2x1bW4gcm93LiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLXJvdztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAmLFxuICAmOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBmdW5jdGlvbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEByZXR1cm4gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AbWl4aW4gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygkZ3V0dGVycyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtYXR0cmlidXRlLW5lc3RpbmcsIGZvcmNlLXBzZXVkby1uZXN0aW5nLCBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG4kcHJpbWFyeS1jb2xvcjogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJHNlY29uZGFyeS1jb2xvcjogZ2V0LWNvbG9yKHNlY29uZGFyeSk7XG4kc3VjY2Vzcy1jb2xvcjogZ2V0LWNvbG9yKHN1Y2Nlc3MpO1xuJHdhcm5pbmctY29sb3I6IGdldC1jb2xvcih3YXJuaW5nKTtcbiRhbGVydC1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIC16Zi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplKCk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkZ3V0dGVyIFthdXRvXVxuLy8vICAgU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRndXR0ZXJzIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBndXR0ZXIgcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRndXR0ZXJzIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRndXR0ZXIsICRndXR0ZXJzKSB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gIH1cbn1cblxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigwKTtcbn1cblxuLy8vIFVuLWNvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlLWFkZGluZyB0aGUgcGFkZGluZy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLlxuQG1peGluIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbHVtbi1ndXR0ZXIoKS4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXIpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1ndXR0ZXJcbkBtaXhpbiBncmlkLWNvbC1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXIsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bmNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bmNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGdyaWQtY29sLWd1dHRlcigpLiBncmlkLWNvbC11bmNvbGxhcHNlKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcik7XG59XG5cbi8vLyBTZXRzIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zIHRvIG1hdGNoIGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbWFyZ2luIFthdXRvXVxuLy8vICAgVGhlIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkbWFyZ2lucyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkbWFyZ2lucyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcmdpbnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tbWFyZ2luIChcbiAgJG1hcmdpbjogYXV0byxcbiAgJG1hcmdpbnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkbWFyZ2luLCAkbWFyZ2lucykge1xuICAgICRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1lvdXIgc21hbGxlc3QgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLmFuaW1hdGVkIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuQGtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1JSwgMCk7XG4gIH1cbiBcbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0RG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmZhZGVJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG59XG5cblxuQGtleWZyYW1lcyByb3RhdGVJblVwTGVmdCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluVXBMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBMZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0VXBSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcFJpZ2h0O1xufVxuXG4iLCIub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWd7XG4gICAgaGVpZ2h0OiA0MjVweDtcbn1cbi50aXR1bG8taXRlbSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhenVsLWJhc2U7XG4gICAgXG5cbiAgICBhe1xuICAgICAgICBjb2xvcjogJGdyaXM7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG59XG5cbi5pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IFxufVxuXG5cbi5vd2wtdGhlbWUgLm93bC1kb3RzLFxuLm93bC10aGVtZSAub3dsLW5hdiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm93bC10aGVtZSAub3dsLW5hdiB7XG4gICAgbWFyZ2luLXRvcDogMTBweFxufVxuLm93bC10aGVtZSAub3dsLW5hdiBbY2xhc3MqPW93bC1dIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbWFyZ2luOiA1cHg7XG4gICAgcGFkZGluZzogNHB4IDdweDtcbiAgICBiYWNrZ3JvdW5kOiAjRDZENkQ2O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4XG59XG4ub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM4Njk3OTE7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG59XG4ub3dsLXRoZW1lIC5vd2wtbmF2IC5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogLjU7XG4gICAgY3Vyc29yOiBkZWZhdWx0XG59XG4ub3dsLXRoZW1lIC5vd2wtbmF2LmRpc2FibGVkKy5vd2wtZG90cyB7XG4gICAgbWFyZ2luLXRvcDogMTBweFxufVxuLm93bC10aGVtZSAub3dsLWRvdHMgLm93bC1kb3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB6b29tOiAxXG59XG4ub3dsLXRoZW1lIC5vd2wtZG90cyAub3dsLWRvdCBzcGFuIHtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiA1cHggN3B4O1xuICAgIGJhY2tncm91bmQ6ICM4Njk3OTE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzIGVhc2U7XG4gICAgYm9yZGVyLXJhZGl1czogMzBweFxufVxuLm93bC10aGVtZSAub3dsLWRvdHMgLm93bC1kb3QuYWN0aXZlIHNwYW4sXG4ub3dsLXRoZW1lIC5vd2wtZG90cyAub3dsLWRvdDpob3ZlciBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kOiAjMzMzO1xufVxuLm93bC1uYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4gXG4ubGlzdGFkbyB7XG50ZXh0LWFsaWduOiByaWdodDtcblx0XHRhIHtcblx0XHRcdFxuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRjb2xvcjogIzFlMzc2YTtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR9XG59IiwiZGl2LnBhZ2UtaGVhZGVyXG57XG4gICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG5cbi8qQXJ0aWN1bG9zIEsyKi9cbmRpdiNpdGVtTGlzdExlYWRpbmdcbntcbiAgICBAaW5jbHVkZSBncmlkLXJvdygpO1xuXG5cbn1cblxubGkuZXZlbnRvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG5kaXYuY2F0SXRlbUJvZHlcbntcbiAgICAgQGluY2x1ZGUgZ3JpZC1yb3coKTtcbiAgICAgcGFkZGluZzogMCA7XG4gICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgLy9ib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsMCwwLC4xNSksIDAgM3B4IDNweCByZ2JhKDAsMCwwLC4xNSk7XG59XG5cbmRpdi5jYXRJdGVtSW1hZ2VCbG9ja3tcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNCk7XG4gICAvLyBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihjZW50ZXIpO1xuXG4gICAgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIGltZ3tcbiAgICAgICAgaGVpZ2h0OiAxOTBweDtcbiAgICAgICAgd2lkdGg6IDQwOHB4O1xuICAgIH1cbn1cblxuLmRpYSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgdG9wOiAxNzBweDtcbiAgICBsZWZ0OiAyMHB4O1xufVxuLmNhdEl0ZW1UaXRsZXtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig4KTtcblxuXG4gICAgYXtcbiAgICAgICAgY29sb3I6JGF6dWwtYmFzZTtcbiAgICB9XG59XG5cbmRpdi5pdGVtVG9vbGJhciB1bCBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5kaXYuY2F0SXRlbVZpZXd7XG4gICAgbWFyZ2luOiAzMHB4IDA7XG59XG5zcGFuLnBhZ2VuYXYge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbn1cbmRpdi5pdGVtVmlldyB7cGFkZGluZzoxcmVtOyB9XG5cbmRpdi5pdGVtVG9vbGJhcntcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMiwwKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogNTAwO1xuICAgIG1hcmdpbi10b3A6IC00cmVtO1xuICAgIC8vbWFyZ2luLWxlZnQ6IDFyZW07XG4gICBcbiAgIFxufVxuLml0ZW0tcGFnZSwjazJDb250YWluZXIsLndlYmxpbmstY2F0ZWdvcnl7XG4gICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XG59XG5cbi5pdGVtRnVsbFRleHR7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oOSk7XG4gICAgcGFkZGluZy1sZWZ0OiAyOHB4O1xufVxuLml0ZW1JbWFnZUJsb2Nre1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDMpXG59XG5cbnNwYW4uaXRlbUltYWdle1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxuXG4uc2VwYXJhZG9ydHh0IHtcbiAgICBib3JkZXItbGVmdDogc29saWQgMS41cHggJGF6dWwtYmFzZTtcbn1cbi5pdGVtQXR0YWNobWVudHNCbG9ja3MgPiBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXp1bC1iYXNlO1xuICAgIGNvbG9yOiRncmlzO1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbnVsLml0ZW1BdHRhY2htZW50cyB7XG4gICAgbWFyZ2luLXRvcDogMTNweDtcbn1cbi8vYmFycmEgZGUgaGVycmFtaWVudGFzXG5hI2ZvbnRJbmNyZWFzZSxhI2ZvbnREZWNyZWFzZSxhLmZvbnRJbmNyZWFzZSxhLmZvbnREZWNyZWFzZVxue1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG4gLnR4dF9jb250ZW50e1xuIHRyYW5zaXRpb246IGFsbCAwLjVzO1xufVxuXG4uc29jaWFsLXNoYXJle1xuICAgIC8vQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgIC8vIHdpZHRoOiA0MjVweDtcbn1cblxuLmljb24tc2hhcmUsZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGF7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAkbmVncm87XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5kaXYuaXRlbVRvb2xiYXIgdWwgbGkgc3Bhbi5pdGVtVGV4dFJlc2l6ZXJUaXRsZXtcbiAgICBjb2xvcjokbmVncm87XG59XG4vL3B1YmxpY2FjaW9uZXNcbi5jYXQtbGlzdC1yb3d7XG4gICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTtcbiAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgYXtcbiAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICB9XG59XG5cbi5saW5rLWRlc2NyaXB0aW9ue1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDgpO1xufVxuLmltZy1pbnRyby1yaWdodFxue1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDQpO1xufVxuc3Bhbi5saXN0LWhpdHMge1xuICAgIGZsb2F0OiByaWdodDtcbn1cbi5zZXBhcmF0b3ItbGlua3NcbntcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGF6dWwtYmFzZTtcbn1cblxudWwuY2F0ZWdvcnkubGlzdC1zdHJpcGVkLmxpc3QtY29uZGVuc2Vke1xuICAgIEBpbmNsdWRlIGdyaWQtcm93KCk7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLy9SdXRhIGRlIG5hdmVnYWNpw7NuXG51bC5uYXZlZ2FjaW9ue1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcbiAgIC8vIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBmbG9hdDogcmlnaHQ7XG5cbn1cblxuLnRvb2x0aXB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vL2ZhbWlsaWEgZGUgc2l0aW9zIFVOQUNIXG4ucHVsbC1yaWdodHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbnVsLm5hdi5uYXYtdGFicy5uYXYtc3RhY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZDcwMTtcbiAgICBwYWRkaW5nOiAxNHB4IDI3cHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwwLjE2KSwgMCAycHggMTBweCAwIHJnYmEoMCwwLDAsMC4xMik7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4vL2xpY2VuY2lhdHVyYXNcbmhyLmxpYyB7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMnB4ICRhenVsLWJhc2U7O1xufVxuXG5hLnRvY2xpbmsuYWN0aXZlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnBhZ2Vye1xuXG4gICAgbGl7XG4gICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgIH1cbiAgICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgIH1cbiAgICB9XG4gXG5cbn1cblxuXG5cbi8vbm90aWNpYXMgTU9EVUxPXG5pbWcuYXJ0aWN1bG8taW1hZ2VuIHtcbiAgICB3aWR0aDogMjYwcHg7XG4gICAgaGVpZ2h0OiAxNzVweDtcbn1cblxuLmJsb3F1ZS1wcmluY2lwYWwgYSwuYmxvcXVlLXNlY3VuZGFyaW8gYSwuc2VydmljaW9zIGEge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogIzE4Mzg2Yjtcbn1cblxuZGl2I2syQ29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xufVxuYS5tb2R1bGVJdGVtQ2F0ZWdvcnkge1xuICAgIGRpc3BsYXk6ICBibG9jaztcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xufVxuXG4ubm92aXNpYmxle1xuICAgIG9wYWNpdHk6IDA7XG59IiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWRjcnVtYnNcbi8vLy9cblxuLy8vIE1hcmdpbiBhcm91bmQgYSBicmVhZGNydW1icyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgYWN0aXZlIGJyZWFkY3J1bWIgbGluay5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBkaXNhYmxlZCBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIG1ha2VzIGJyZWFkY3J1bWIgbGlua3MgdXBwZXJjYXNlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBhIHNsYXNoIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgc2xhc2guXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBicmVhZGNydW1icyBjb250YWluZXIsIGFsb25nIHdpdGggdGhlIHN0eWxlcyBmb3IgdGhlIGA8bGk+YCBhbmQgYDxhPmAgZWxlbWVudHMgaW5zaWRlIG9mIGl0LlxuQG1peGluIGJyZWFkY3J1bWJzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRicmVhZGNydW1icy1tYXJnaW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLy8gSXRlbSB3cmFwcGVyXG4gIGxpIHtcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2xhc2g6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ2x0cicsICcvJywgJ1xcXFwnKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgIG1hcmdpbjogMCAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGFzaDtcbiAgICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwidWwudGFic3tcbiAgICBib3JkZXI6IG5vbmU7XG59XG4vLyBhcnRpY3Vsb3MgYSBkb3MgY29sdW1uYXNcblxuLmJhcnJhLWxhdGVyYWwgaW1ne1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBcbn1cbi5pdGVtLXBhZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmJhcnJhLWxhdGVyYWx7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMywwKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygyOCk7XG4gICAgXG4gICAgYXtcbiAgICAgICAgY29sb3I6JG5lZ3JvO1xuICAgIH1cbn1cblxuLnNlcGFyYWRvci1hcnRpY3VsbyB7XG4gICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiA2MDBweDtcbiAgICBsZWZ0OiAzMy41JTtcbn1cbi5jb250ZW5pZG8tbGF0ZXJhbHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig5LDApO1xuICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygzOCk7XG4gICAgbWluLWhlaWdodDogNjAwcHg7XG4gICAgYm9yZGVyLWxlZnQ6MS41cHggc29saWQgIzE4Mzg2QjtcblxufVxuXG5saS50YWJzLXRpdGxlLmlzLWFjdGl2ZSBhe1xuICAgIGZvbnQtd2VpZ2h0OiBpbml0aWFsO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhenVsLWJhc2U7XG4gICAgY29sb3I6ICR3aGl0ZTtcbn1cblxuXG4vL2Rpdi50YWJzLXBhbmVsIC5pdGVtVG9vbGJhcntcbi8vICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuLy99XG4uc2VwYXJhZG9yIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDEuNXB4ICRhenVsLWJhc2U7XG4gICAgLy9oZWlnaHQ6IDgwMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAyNy41JTtcbn1cblxuXG5cdGRpdi5pdGVtVG9vbGJhciB1bCBsaSBhLmZvbnREZWNyZWFzZSB7bWFyZ2luOjAgMCAwIDJweDt9XG5cdGRpdi5pdGVtVG9vbGJhciB1bCBsaSBhLmZvbnREZWNyZWFzZSBpbWcge3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHg7Zm9udC1zaXplOjEzcHg7fVxuXHRkaXYuaXRlbVRvb2xiYXIgdWwgbGkgYS5mb250SW5jcmVhc2Uge21hcmdpbjowIDAgMCAycHg7fVxuXHRkaXYuaXRlbVRvb2xiYXIgdWwgbGkgYS5mb250SW5jcmVhc2UgaW1nIHt3aWR0aDoxM3B4O2hlaWdodDoxM3B4O2ZvbnQtc2l6ZToxM3B4O31cblx0ZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEuZm9udERlY3JlYXNlIHNwYW4sXG5cdGRpdi5pdGVtVG9vbGJhciB1bCBsaSBhLmZvbnRJbmNyZWFzZSBzcGFuIHtkaXNwbGF5Om5vbmU7fVxuXG5kaXYuaXRlbVRvb2xiYXIgdWwgbGkgYS5mb250SW5jcmVhc2UsZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEuZm9udERlY3JlYXNlIHtiYWNrZ3JvdW5kOm5vbmU7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQtZmFtaWx5OidzaW1wbGUtbGluZS1pY29ucyc7c3BlYWs6bm9uZTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7fVxuXG4uaW5zdGl0dWNpb25hbC5ibG9nLC5pdGVtLXBhZ2Uge1xuICAgIG1hcmdpbi10b3A6IDIycHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4ubWFwYXtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uaW5zdGl0dWNpb25hbCAucGFnZS1oZWFkZXIgaDJ7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG59XG4ucmR7XG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjUpO1xufVxuXG51bCNjb250ZW5pZG8tdGFicyB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxubGkuc3ViZWxlbWVudG8gYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6IGdyZXk7XG5cbiAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjokbmVncm87XG4gICAgfVxuXG5cbn1cblxubGkuc3ViZWxlbWVudG8uaXMtYWN0aXZlIGF7XG4gICAgICAgIGNvbG9yOiRuZWdybztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuIiwidWwuc3VibWVudSBhIHtcbiAgICBjb2xvcjogJG5lZ3JvO1xufSIsIi8vRm9udHNcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnZm9udGVsbG8nO1xuICBzcmM6IHVybCgnLi4vZm9udC9mb250ZWxsby5lb3Q/MTIwNjEzODQnKTtcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvZm9udGVsbG8uZW90PzEyMDYxMzg0I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgIHVybCgnLi4vZm9udC9mb250ZWxsby53b2ZmMj8xMjA2MTM4NCcpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICB1cmwoJy4uL2ZvbnQvZm9udGVsbG8ud29mZj8xMjA2MTM4NCcpIGZvcm1hdCgnd29mZicpLFxuICAgICAgIHVybCgnLi4vZm9udC9mb250ZWxsby50dGY/MTIwNjEzODQnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgdXJsKCcuLi9mb250L2ZvbnRlbGxvLnN2Zz8xMjA2MTM4NCNmb250ZWxsbycpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdNeXJpYWRXZWJQcm9SZWd1bGFyJztcbiAgICBzcmM6IHVybCgnLi4vZm9udC9teXJpYWQtd2ViLXByby5lb3QnKTtcbiAgICBzcmM6IHVybCgnLi4vZm9udC9teXJpYWQtd2ViLXByby5lb3QnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgXHQgdXJsKCcuLi9mb250L215cmlhZC13ZWItcHJvLnN2ZyNNeXJpYWRXZWJQcm9SZWd1bGFyJykgZm9ybWF0KCdzdmcnKSxcbiAgICAgICAgIHVybCgnLi4vZm9udC9teXJpYWQtd2ViLXByby53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnQvbXlyaWFkLXdlYi1wcm8udHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xufSBcblxuXG4gXG5cbi5pY29uLWZhY2Vib29rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDAnOyB9IC8qICfuoIAnICovXG4uaWNvbi10d2l0dGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDEnOyB9IC8qICfuoIEnICovXG4uaWNvbi15b3V0dWJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDInOyB9IC8qICfuoIInICovXG4uaWNvbi11bmV0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDMnOyB9IC8qICfuoIMnICovXG4uaWNvbi1zZWFyY2g6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNCc7IH0gLyogJ+6ghCcgKi9cbi5pY29uLXJpZ2h0LWRpcjpiZWZvcmUsZGl2LmxpbmtzID4gYTpiZWZvcmUgIHsgY29udGVudDogJ1xcZTgwNSc7IH0gLyogJ+6ghScgKi9cbi5pY29uLWxvY2F0aW9uOmJlZm9yZSwgcC5kaXJlY2Npb246YmVmb3JlICB7IGNvbnRlbnQ6ICdcXGU4MDYnOyB9IC8qICfuoIYnICovXG4uaWNvbi1waG9uZTpiZWZvcmUscC50ZWw6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNyc7IH0gLyogJ+6ghycgKi9cbi5pY29uLWRvd24tZGlyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDgnOyB9IC8qICfuoIgnICovXG4uaWNvbi1tZW51OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYwYzknOyB9IC8qICfvg4knICovXG4uaWNvbi1tYWlsOmJlZm9yZSxwLmNvbnRhY3RvOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYwZTAnOyB9IC8qICfvg6AnICovXG4uaWNvbi1zaGFyZTpiZWZvcmUgeyBjb250ZW50OiAnXFxmMWUwJzsgfSAvKiAn74egJyAqL1xuLmljb24tbW91c2UtcG9pbnRlcjpiZWZvcmUscC53ZWI6YmVmb3JlIHsgY29udGVudDogJ1xcZjI0NSc7IH0gLyogJ++JhScgKi9cbi5pY29uLXpvb20taW46YmVmb3JlLGEuZm9udEluY3JlYXNlOmJlZm9yZSAgeyBjb250ZW50OiAnXFxlODA5JzsgfSAvKiAn7qCJJyAqL1xuLmljb24tem9vbS1vdXQ6YmVmb3JlLGEuZm9udERlY3JlYXNlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGEnOyB9IC8qICfuoIonICovXG5cbmEuZm9udEluY3JlYXNlOmJlZm9yZSAsYS5mb250RGVjcmVhc2U6YmVmb3JlICB7IGZvbnQtc2l6ZToxN3B4OyB9XG5cbi5wcmluY2lwYWw6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXFxlODA4XCI7XG4gICAgZm9udC1mYW1pbHk6IFwiZm9udGVsbG9cIjtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBmb250LXNpemU6IDFyZW07XG59XG5cbltjbGFzc149XCJpY29uLVwiXTpiZWZvcmUscC5jb250YWN0bzpiZWZvcmUscC50ZWw6YmVmb3JlLCBbY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSxkaXYubGlua3MgPiBhOmJlZm9yZSxwLmRpcmVjY2lvbjpiZWZvcmUscC53ZWI6YmVmb3JlLHAuY29udGFjdG86YmVmb3JlLHAudGVsOmJlZm9yZSxwLndlYjpiZWZvcmUsYS5mb250RGVjcmVhc2U6YmVmb3JlLGEuZm9udEluY3JlYXNlOmJlZm9yZSAge1xuICBmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNwZWFrOiBub25lO1xuIFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgd2lkdGg6IDFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IFxuICAvKiBvcGFjaXR5OiAuODsgKi9cbiBcbiAgLyogRm9yIHNhZmV0eSAtIHJlc2V0IHBhcmVudCBzdHlsZXMsIHRoYXQgY2FuIGJyZWFrIGdseXBoIGNvZGVzKi9cbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuIFxuICAvKiBmaXggYnV0dG9ucyBoZWlnaHQsIGZvciB0d2l0dGVyIGJvb3RzdHJhcCAqL1xuICBsaW5lLWhlaWdodDogMWVtO1xuIFxuICAvKiBBbmltYXRpb24gY2VudGVyIGNvbXBlbnNhdGlvbiAtIG1hcmdpbnMgc2hvdWxkIGJlIHN5bW1ldHJpYyAqL1xuICAvKiByZW1vdmUgaWYgbm90IG5lZWRlZCAqL1xuICBtYXJnaW4tbGVmdDogLjJlbTtcbiBcbiAgLyogeW91IGNhbiBiZSBtb3JlIGNvbWZvcnRhYmxlIHdpdGggaW5jcmVhc2VkIGljb25zIHNpemUgKi9cbiAgLyogZm9udC1zaXplOiAxMjAlOyAqL1xuIFxuICAvKiBGb250IHNtb290aGluZy4gVGhhdCB3YXMgdGFrZW4gZnJvbSBUV0JTICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuIFxuICAvKiBVbmNvbW1lbnQgZm9yIDNEIGVmZmVjdCAqL1xuICAvKiB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggcmdiYSgxMjcsIDEyNywgMTI3LCAwLjMpOyAqL1xufVxuXG4uaWNvbi1lbnZlbG9wZTpiZWZvcmV7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbmRpdi5saW5rcyA+IGE6YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDE5cHg7XG4gICAgY29sb3I6JGF6dWwtYmFzZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgXG59XG4iLCIvL1NlY2Npb25lc1xuLnNlY2Npb257IFxuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDksMCk7XG59XG4uc2VjY2lvbi1jZW50cm97XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNiwwKTtcbn1cbi5zZWFyY2gge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDI1KTtcbn1cbi5sYXRlcmFse1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDMsMCk7XG5cblx0XHQubW9kdWxldGFibGV7XG5cdFx0bWFyZ2luOjAgMCAyNXB4IDA7XG5cdFx0bWFyZ2luLXRvcDowO1xuXHRcdH1cbn1cbi5hcnRpY3Vsb19jdWF0cm97XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMywwKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG59XG5cbi5hcnRpY3Vsb19jdWF0cm97XG4gICAgLm1vZHVsZXRhYmxle1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig0LDApO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgIH1cbn1cbi5hcnRpY3Vsb190cmVze1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDQpO1xuICAgLy8gcGFkZGluZy1yaWdodDogMS44NzVyZW07XG59XG4uYXJ0aWN1bG97XG4gICAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG59XG4uYXJ0aWN1bG9fZG9ze1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDYsMCk7XG4gICAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG59XG4uYXJ0aWN1bG9fZnVsbHtcblxuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyLDApO1xuXG59XG4uYXJ0aWN1bG9zXzF7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG59XG4uYXJ0aWN1bG9zXzJ7XG4gICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDYsMCk7XG4gICAgIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xufVxuXG4uYXJ0aWN1bG9zXzN7XG4gICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDQsMCk7XG4gICAgIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xufVxuXG4uYXJ0aWN1bG9zXzR7XG4gICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDMsMCk7XG4gICAgIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xufVxuXG5cbi5mdWxse1xuXG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xuXG59XG5cbi50b3B7XG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjUpO1xufVxuLmJ0e1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI1KTtcbn1cblxuXG4vL1RpdHVsbyBkZSBsYXMgc2VjY2lvbmVzXG4uc2VjY2lvbiAudGl0dWxvIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG59XG4udGl0dWxvXG57XG4gICAgIG1hcmdpbi1ib3R0b206MXJlbTtcbiAgICBwe1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhenVsX2Jhc2U7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgNHB4ICRkb3JhZG87XG4gICAgd2lkdGg6IDI1JTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgfVxufVxuLmxhdGVyYWwgLm1vZHVsZXRhYmxlID4gaDMsXG4uYmxvcXVlLWxhdGVyYWwgLm1vZHVsZXRhYmxlID4gaDMsXG4uYmxvcXVlLXByaW5jaXBhbCAubW9kdWxldGFibGUgPiBoMyxcbi5ibG9xdWUtc2VjdW5kYXJpbyAubW9kdWxldGFibGUgPmgzLFxuLmJsb3F1ZS03IC5tb2R1bGV0YWJsZSA+IGgzLC5tb2R1bGV0YWJsZSA+IGgzXG57XG4gICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGF6dWxfYmFzZTtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCA0cHggJGRvcmFkbztcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAvLyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblxufVxuXG4vKi5sYXRlcmFsIC5tb2R1bGV0YWJsZSA+IGgzLC5ibG9xdWUtbGF0ZXJhbCAubW9kdWxldGFibGUgPiBoMywuYmxvcXVlLXByaW5jaXBhbCAubW9kdWxldGFibGUgPiBoMywuYmxvcXVlLXNlY3VuZGFyaW8gLm1vZHVsZXRhYmxlID5oM3tcbiAgICB3aWR0aDogMjUwcHg7XG59XG4uYmxvcXVlLXByaW5jaXBhbCAubW9kdWxldGFibGUgPiBoMywuYmxvcXVlLXNlY3VuZGFyaW8gLm1vZHVsZXRhYmxlID5oMywuYmxvcXVlLTcgLm1vZHVsZXRhYmxlID4gaDN7XG4gICAgd2lkdGg6IDIzJVxufSovXG4ubW9kdWxldGFibGUgPiBoM3tcbiAgICB3aWR0aDogMjUwcHhcbn1cbi8qLmJsb3F1ZS1zZWN1bmRhcmlvIC5tb2R1bGV0YWJsZSA+aDN7XG4gICogIHdpZHRoOiAzOCVcbn0qL1xuLy9CYXJyYSBsYXRlcmFsXG51bC5tYXMtdGl0dWxhcmVzXG57XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDowO1xuICAgIGxpe1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICB9XG5cblxufVxuLy9FdmVudG9zIFVOQUNIXG4uZmVjaGEtZXZlbnRvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGF6dWwtYmFzZTtcbiAgICBjb2xvcjogJGdyaXM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBmb250LXNpemU6MTRweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cblxuICAgIHNwYW57XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG5cblx0cHtcblx0XHRtYXJnaW4tYm90dG9tOjA7XG5cdH1cbn1cbi50aXR1bGFyIHtcblxuIHdpZHRoOiAyMzBweDtcbiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gdmVydGljYWwtYWxpZ246IHRvcDtcblxufVxuLnRpdHVsby1ldmVudG97XG4gd2lkdGg6IDIzMHB4O1xuIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuIGZvbnQtc2l6ZToxNXB4O1xufVxuXG4vL2FwYXJ0YWRvc1xuLmJsb3F1ZS1wcmluY2lwYWx7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oOSwwKTtcbn1cblxuLmJsb3F1ZS1sYXRlcmFse1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDMsMCk7XG59XG4uYmxvcXVlLXNlY3VuZGFyaW97XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNiwwKTtcbn1cbi5ibG9xdWUtNyAubW9kdWxldGFibGV7XG4gIC8vICBAaW5jbHVkZSBncmlkLWNvbHVtbigzLDApO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG59XG4uYmxvcXVlLXNlY3VuZGFyaW8tMyAubW9kdWxldGFibGV7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNCwwKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuLmJsb3F1ZS1zZWN1bmRhcmlvLTN7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oOSwwKTtcbn1cblxuLm1vZHVsZXRhYmxlLmVzcGFjaW8ge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cblxuLmJsb3F1ZS1zZWN1bmRhcmlvLTEgIC5tb2R1bGV0YWJsZXtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigzKTtcbn1cblxuXG5cbi5tb2R1bGV0YWJsZS5ib3R0b217XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbn1cblxuZmllbGRzZXQucGhyYXNlcywuZmllbGRzZXQub25seXtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig2KTtcbn1cblxuLnJlc3VsdGFkb3Mge1xuICAgIG1hcmdpbjogMjVweCAwO1xufVxuXG4ucGFnaW5hdGlvbiAuY3VycmVudCBhe1xuICAgIGNvbG9yOiR3aGl0ZTtcblxuICAgICY6aG92ZXJ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhenVsLWJhc2U7XG4gICAgfVxufVxuLmRhdG9zLXViaWNhY2lvbntcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig2KTtcblxuXHRwe1xuXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuXHR9XG59XG5cblxudWwucGFnaW5hdGlvbiBsaSBhOmhvdmVyIHtcbiAgICBjb2xvcjogJHdoaXRlO1xufVxuXG4uZmllbGRzLWNvbnRhaW5lcntcblx0ZGlzcGxheTpub25lO1xufVxuXG4uY29udGVuZWRvci5ibG9xdWUtMy00LmJ0e1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG59XG4iLCIvKipcbiAqIEB2ZXJzaW9uICAgIDIuOC54XG4gKiBAcGFja2FnZSAgICBLMlxuICogQGF1dGhvciAgICAgSm9vbWxhV29ya3MgaHR0cDovL3d3dy5qb29tbGF3b3Jrcy5uZXRcbiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTcgSm9vbWxhV29ya3MgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogQGxpY2Vuc2UgICAgR05VL0dQTCBsaWNlbnNlOmh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9ncGwuaHRtbFxuICovXG5cbi8qXG5cdCMjIyBMZWdlbmQgIyMjXG5cdENvbG9ycyB1c2VkOlxuXHRcdCNmYWZhZmEgKGxpZ2h0IGdyZXkpIHVzZWQgYXMgYmFja2dyb3VuZCBvbiBhbGwgdG9vbGJhcnMsIGNhdGVnb3J5IGFuZCB1c2VyL2F1dGhvciBib3hlc1xuKi9cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdENvbW1vbiBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiAtLS0gQmFzaWMgdHlwb2dyYXBoeSAtLS0gKi9cbmE6YWN0aXZlLFxuYTpmb2N1cyB7b3V0bGluZTowO31cbmltZyB7Ym9yZGVyOm5vbmU7fVxuXG4vKiAtLS0gR2xvYmFsIEsyIGNvbnRhaW5lciAtLS0gKi9cbiNrMkNvbnRhaW5lciB7cGFkZGluZzowIDAgMjRweCAwO31cbmJvZHkuY29udGVudHBhbmUgI2syQ29udGFpbmVyIHtwYWRkaW5nOjE2cHg7fSAvKiB1c2VkIGluIHBvcHVwcyAqL1xuXG4vKiAtLS0gR2VuZXJhbCBwYWRkaW5nIC0tLSAqL1xuLmsyUGFkZGluZyB7cGFkZGluZzo0cHg7fVxuXG4vKiAtLS0gQ2xlYXJpbmcgLS0tICovXG4uY2xyIHtjbGVhcjpib3RoO2hlaWdodDowO2xpbmUtaGVpZ2h0OjA7ZGlzcGxheTpibG9jaztmbG9hdDpub25lO3BhZGRpbmc6MDttYXJnaW46MDtib3JkZXI6bm9uZTt9XG5cbi8qIC0tLSBTdHJpcGVkIHJvd3MgKGFkZCBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGNvbG9yIGVuYWJsZSBzdHJpcHBlZCByb3dzIGluIHZhcmlvdXMgbGlzdGluZ3Mgd2l0aCBLMiBjb250ZW50KSAtLS0gKi9cbi5ldmVuIHtwYWRkaW5nOjJweDt9XG4ub2RkIHtwYWRkaW5nOjJweDt9XG5cbi8qIC0tLSBSU1MgZmVlZCBpY29uIC0tLSAqL1xuZGl2LmsyRmVlZEljb24ge3BhZGRpbmc6NHB4IDhweDt9XG5kaXYuazJGZWVkSWNvbiBhLFxuZGl2LmsyRmVlZEljb24gYTpob3ZlciB7ZGlzcGxheTpibG9jaztmbG9hdDpyaWdodDttYXJnaW46MDtwYWRkaW5nOjA7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDt9XG5kaXYuazJGZWVkSWNvbiBhIHNwYW4sXG5kaXYuazJGZWVkSWNvbiBhOmhvdmVyIHNwYW4ge2Rpc3BsYXk6bm9uZTt9XG5cbi8qIC0tLSBSYXRpbmcgLS0tICovXG4uaXRlbVJhdGluZ0Zvcm0ge2Rpc3BsYXk6YmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjI1cHg7ZmxvYXQ6bGVmdDt9XG4uaXRlbVJhdGluZ0xvZyB7Zm9udC1zaXplOjExcHg7bWFyZ2luOjA7cGFkZGluZzowIDAgMCA0cHg7ZmxvYXQ6bGVmdDt9XG5kaXYuaXRlbVJhdGluZ0Zvcm0gLmZvcm1Mb2dMb2FkaW5nIHtiYWNrZ3JvdW5kOnVybCguLi9pbWFnZXMvbG9hZGVycy9nZW5lcmljLmdpZikgbm8tcmVwZWF0IGxlZnQgY2VudGVyO2hlaWdodDoyNXB4O3BhZGRpbmc6MCAwIDAgMjBweDt9XG4uaXRlbVJhdGluZ0xpc3QsXG4uaXRlbVJhdGluZ0xpc3QgYTpob3Zlcixcbi5pdGVtUmF0aW5nTGlzdCAuaXRlbUN1cnJlbnRSYXRpbmcge2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgdXJsKC4uL2ltYWdlcy9yYXRpbmdzdGFycy5naWYpIGxlZnQgLTEwMDBweCByZXBlYXQteDt9XG4uaXRlbVJhdGluZ0xpc3Qge3Bvc2l0aW9uOnJlbGF0aXZlO2Zsb2F0OmxlZnQ7d2lkdGg6MTI1cHg7aGVpZ2h0OjI1cHg7b3ZlcmZsb3c6aGlkZGVuO2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IHRvcDt9XG4uaXRlbVJhdGluZ0xpc3QgbGkge2Rpc3BsYXk6aW5saW5lO2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nOjA7fVxuLml0ZW1SYXRpbmdMaXN0IGEsXG4uaXRlbVJhdGluZ0xpc3QgLml0ZW1DdXJyZW50UmF0aW5nIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7dGV4dC1pbmRlbnQ6LTEwMDBweDtoZWlnaHQ6MjVweDtsaW5lLWhlaWdodDoyNXB4O291dGxpbmU6bm9uZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7fVxuLml0ZW1SYXRpbmdMaXN0IGE6aG92ZXIge2JhY2tncm91bmQtcG9zaXRpb246bGVmdCBib3R0b207fVxuLml0ZW1SYXRpbmdMaXN0IGEub25lLXN0YXIge3dpZHRoOjIwJTt6LWluZGV4OjY7fVxuLml0ZW1SYXRpbmdMaXN0IGEudHdvLXN0YXJzIHt3aWR0aDo0MCU7ei1pbmRleDo1O31cbi5pdGVtUmF0aW5nTGlzdCBhLnRocmVlLXN0YXJzIHt3aWR0aDo2MCU7ei1pbmRleDo0O31cbi5pdGVtUmF0aW5nTGlzdCBhLmZvdXItc3RhcnMge3dpZHRoOjgwJTt6LWluZGV4OjM7fVxuLml0ZW1SYXRpbmdMaXN0IGEuZml2ZS1zdGFycyB7d2lkdGg6MTAwJTt6LWluZGV4OjI7fVxuLml0ZW1SYXRpbmdMaXN0IC5pdGVtQ3VycmVudFJhdGluZyB7ei1pbmRleDoxO2JhY2tncm91bmQtcG9zaXRpb246MCBjZW50ZXI7bWFyZ2luOjA7cGFkZGluZzowO31cbnNwYW4uc2l0ZVJvb3Qge2Rpc3BsYXk6bm9uZTt9XG5cbi8qIC0tLSBDU1MgYWRkZWQgd2l0aCBKYXZhU2NyaXB0IC0tLSAqL1xuLnNtYWxsZXJGb250U2l6ZSB7Zm9udC1zaXplOjEwMCU7bGluZS1oZWlnaHQ6aW5oZXJpdDt9XG4ubGFyZ2VyRm9udFNpemUge2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjE0MCU7fVxuXG4vKiAtLS0gUmVDYXB0Y2hhIC0tLSAqL1xuLnJlY2FwdGNoYXRhYmxlIC5yZWNhcHRjaGFfaW1hZ2VfY2VsbCxcbiNyZWNhcHRjaGFfdGFibGUge2JhY2tncm91bmQtY29sb3I6I2ZmZiAhaW1wb3J0YW50O31cbiNyZWNhcHRjaGFfdGFibGUge2JvcmRlci1jb2xvcjojY2NjICFpbXBvcnRhbnQ7fVxuI3JlY2FwdGNoYV9yZXNwb25zZV9maWVsZCB7Ym9yZGVyLWNvbG9yOiNjY2MgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYgIWltcG9ydGFudDt9XG4uazItcmVjYXB0Y2hhLXYyIHttYXJnaW4tdG9wOjEycHg7fVxuXG5cblxuLyogLS0tIFByaW1hcnkgbGlzdHMgaW4gbW9kdWxlcyAtLS0gKi9cbmRpdi5rMkxhdGVzdENvbW1lbnRzQmxvY2sgdWwsXG5kaXYuazJUb3BDb21tZW50ZXJzQmxvY2sgdWwsXG5kaXYuazJJdGVtc0Jsb2NrIHVsLFxuZGl2LmsyTG9naW5CbG9jayB1bCxcbmRpdi5rMlVzZXJCbG9jayB1bC5rMlVzZXJCbG9ja0FjdGlvbnMsXG5kaXYuazJVc2VyQmxvY2sgdWwuazJVc2VyQmxvY2tSZW5kZXJlZE1lbnUsXG5kaXYuazJBcmNoaXZlc0Jsb2NrIHVsLFxuZGl2LmsyQXV0aG9yc0xpc3RCbG9jayB1bCxcbmRpdi5rMkNhdGVnb3JpZXNMaXN0QmxvY2sgdWwsXG5kaXYuazJVc2Vyc0Jsb2NrIHVsIHttYXJnaW46MDtwYWRkaW5nOjAgNHB4O2xpc3Qtc3R5bGU6bm9uZTt9IC8qIEV4YW1wbGUgQ1NTOiBwYWRkaW5nOjA7bWFyZ2luOjA7bGlzdC1zdHlsZTpub25lOyAqL1xuXG5kaXYuazJMYXRlc3RDb21tZW50c0Jsb2NrIHVsIGxpLFxuZGl2LmsyVG9wQ29tbWVudGVyc0Jsb2NrIHVsIGxpLFxuZGl2LmsySXRlbXNCbG9jayB1bCBsaSxcbmRpdi5rMkxvZ2luQmxvY2sgdWwgbGksXG5kaXYuazJBcmNoaXZlc0Jsb2NrIHVsIGxpLFxuZGl2LmsyQXV0aG9yc0xpc3RCbG9jayB1bCBsaSxcbmRpdi5rMkNhdGVnb3JpZXNMaXN0QmxvY2sgdWwgbGksXG5kaXYuazJVc2Vyc0Jsb2NrIHVsIGxpIHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MDttYXJnaW46MCAwIDI0cHggMDt9IC8qIEV4YW1wbGUgQ1NTOiBkaXNwbGF5OmJsb2NrO2NsZWFyOmJvdGg7cGFkZGluZzoycHggMDtib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgI2NjYzsgKi9cblxuLmNsZWFyTGlzdCB7ZGlzcGxheTpub25lO2Zsb2F0Om5vbmU7Y2xlYXI6Ym90aDt9IC8qIHRoaXMgY2xhc3MgaXMgdXNlZCB0byBjbGVhciBhbGwgcHJldmlvdXMgZmxvYXRpbmcgbGlzdCBlbGVtZW50cyAqL1xuLmxhc3RJdGVtIHtib3JkZXI6bm9uZTt9IC8qIGNsYXNzIGFwcGVuZGVkIG9uIGxhc3QgbGlzdCBpdGVtICovXG5cbi8qIC0tLSBBdmF0YXJzIC0tLSAqL1xuLmsyQXZhdGFyIGltZyB7ZGlzcGxheTpibG9jaztmbG9hdDpsZWZ0O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym9yZGVyLXJhZGl1czo1MCU7cGFkZGluZzoycHg7bWFyZ2luOjJweCA0cHggNHB4IDA7fVxuXG4vKiAtLS0gUmVhZCBtb3JlIC0tLSAqL1xuYS5rMlJlYWRNb3JlIHt9XG5hLmsyUmVhZE1vcmU6aG92ZXIge31cblxuLyogLS0tIFBhZ2luYXRpb24gLS0tICovXG5kaXYuazJQYWdpbmF0aW9uIHtwYWRkaW5nOjhweDttYXJnaW46MjRweCAwIDRweCAwO3RleHQtYWxpZ246Y2VudGVyO31cbmRpdi5rMlBhZ2luYXRpb24gdWwge3RleHQtYWxpZ246Y2VudGVyO31cbmRpdi5rMlBhZ2luYXRpb24gdWwgbGkge2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowO3BhZGRpbmc6MDt9XG5kaXYuazJQYWdpbmF0aW9uIHVsIGxpIGEge2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6NHB4IDhweDttYXJnaW46MCA4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3RleHQtZGVjb3JhdGlvbjpub25lO31cbmRpdi5rMlBhZ2luYXRpb24gdWwgbGkgYTpob3ZlciB7YmFja2dyb3VuZDojZmFmYWZhO2N1cnNvcjpwb2ludGVyO31cbmRpdi5rMlBhZ2luYXRpb24gdWwgbGkuYWN0aXZlIGEge2JhY2tncm91bmQ6I2ZhZmFmYTt9XG5kaXYuazJQYWdpbmF0aW9uIHVsIGxpIGEgc3BhbiB7dmVydGljYWwtYWxpZ246bWlkZGxlO31cblxuXG4vKiAtLS0gRmVhdHVyZWQgZmxhZ3M6IHRoZSBjbGFzc2VzIGFyZSByZXBlYXRlZCBmdXJ0aGVyIGJlbG93IHRvIGluZGljYXRlIHBsYWNlbWVudCBpbiB0aGUgQ1NTIHN0cnVjdHVyZSAtLS0gKi9cbmRpdi5pdGVtSXNGZWF0dXJlZCxcbmRpdi5jYXRJdGVtSXNGZWF0dXJlZCxcbmRpdi51c2VySXRlbUlzRmVhdHVyZWQge3Bvc2l0aW9uOnJlbGF0aXZlO31cbmRpdi5pdGVtSXNGZWF0dXJlZDpiZWZvcmUsXG5kaXYuY2F0SXRlbUlzRmVhdHVyZWQ6YmVmb3JlLFxuZGl2LnVzZXJJdGVtSXNGZWF0dXJlZDpiZWZvcmUge3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O3JpZ2h0OjEwcHg7Y29sb3I6I0NGMTkxOTtmb250LXNpemU6MjBweDt9XG5cbi8qIC0tLSBTZXBhcmF0b3JzIC0tLSAqL1xuLmsySG9yaXpvbnRhbFNlcCB7Ym9yZGVyOjA7cGFkZGluZzowO21hcmdpbjowIDhweDt9XG5cbi8qIC0tLSBFZGl0IEJ1dHRvbnMgLS0tICovXG5zcGFuLml0ZW1FZGl0TGluayxcbnNwYW4uY2F0SXRlbUVkaXRMaW5rLFxuc3Bhbi51c2VySXRlbUVkaXRMaW5rLFxuc3Bhbi51c2VySXRlbUFkZExpbmsge2Zsb2F0OnJpZ2h0O2Rpc3BsYXk6YmxvY2s7cGFkZGluZzowO21hcmdpbjowO3dpZHRoOjEyMHB4O3RleHQtYWxpZ246cmlnaHQ7fVxuXHRzcGFuLml0ZW1FZGl0TGluayBhLFxuXHRzcGFuLmNhdEl0ZW1FZGl0TGluayBhLFxuXHRzcGFuLnVzZXJJdGVtRWRpdExpbmsgYSxcblx0c3Bhbi51c2VySXRlbUFkZExpbmsgYSB7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzo0cHggOHB4O21hcmdpbjowO2JhY2tncm91bmQ6IzJkOTZkZDtjb2xvcjojZmZmO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxMXB4O2xpbmUtaGVpZ2h0OjEwMCU7Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTt9XG5cdHNwYW4uaXRlbUVkaXRMaW5rIGE6aG92ZXIsXG5cdHNwYW4uY2F0SXRlbUVkaXRMaW5rIGE6aG92ZXIsXG5cdHNwYW4udXNlckl0ZW1FZGl0TGluayBhOmhvdmVyLFxuXHRzcGFuLnVzZXJJdGVtQWRkTGluayBhOmhvdmVyIHtiYWNrZ3JvdW5kOiMyMTdkYmI7fVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Q29tcG9uZW50IC0gSXRlbSB2aWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5hLml0ZW1QcmludFRoaXNQYWdlIHtkaXNwbGF5OmJsb2NrO3dpZHRoOjE2MHB4O21hcmdpbjo0cHggYXV0byAxNnB4O3BhZGRpbmc6OHB4O2JvcmRlcjoxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjRweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTRweDt9XG5hLml0ZW1QcmludFRoaXNQYWdlOmhvdmVyIHtiYWNrZ3JvdW5kOiNmYWZhZmE7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fVxuXG5kaXYuaXRlbVZpZXcge3BhZGRpbmc6OHB4IDAgMjRweCAwO21hcmdpbjowIDAgMjRweCAwO30gLyogdGhpcyBpcyB0aGUgaXRlbSBjb250YWluZXIgZm9yIHRoaXMgdmlldyAqL1xuZGl2Lml0ZW1Jc0ZlYXR1cmVkIHt9IC8qIEF0dGFjaCBhIGNsYXNzIGZvciBlYWNoIGZlYXR1cmVkIGl0ZW0gKi9cblxuXG5cbmRpdi5pdGVtSGVhZGVyIHt9XG5cdGRpdi5pdGVtSGVhZGVyIHNwYW4uaXRlbURhdGVDcmVhdGVkIHtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxMXB4O31cblx0ZGl2Lml0ZW1IZWFkZXIgaDIuaXRlbVRpdGxlIHtwYWRkaW5nOjEwcHggMCA0cHggMDttYXJnaW46MDt9XG5cdGRpdi5pdGVtSGVhZGVyIGgyLml0ZW1UaXRsZSBzcGFuIHt9XG5cdGRpdi5pdGVtSGVhZGVyIGgyLml0ZW1UaXRsZSBzcGFuIHN1cCB7Zm9udC1zaXplOjEycHg7Y29sb3I6I0NGMTkxOTt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC8qIFwiRmVhdHVyZWRcIiBwcmVzZW50ZWQgaW4gc3VwZXJzY3JpcHQgKi9cblx0ZGl2Lml0ZW1IZWFkZXIgc3Bhbi5pdGVtQXV0aG9yIHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MDttYXJnaW46MDt9XG5cdGRpdi5pdGVtSGVhZGVyIHNwYW4uaXRlbUF1dGhvciBhOmJlZm9yZSB7Y29udGVudDpcIiBcIjt9XG5cdGRpdi5pdGVtSGVhZGVyIHNwYW4uaXRlbUF1dGhvciBhIHt9XG5cdGRpdi5pdGVtSGVhZGVyIHNwYW4uaXRlbUF1dGhvciBhOmhvdmVyIHt9XG5cblxuXHRkaXYuaXRlbVRvb2xiYXIgdWwge3RleHQtYWxpZ246cmlnaHQ7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MDttYXJnaW46MjNweCAxM3B4IDAgMHB4O31cblx0ZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIHtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowIDRweCAwIDhweDttYXJnaW46MDtib3JkZXItbGVmdDoxcHggc29saWQgI2NjYzt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOm5vbmU7Zm9udC1zaXplOjEycHg7fVxuXHRkaXYuaXRlbVRvb2xiYXIgdWwgPiBsaTpmaXJzdC1jaGlsZCB7Ym9yZGVyOm5vbmU7fSAvKiByZW1vdmUgdGhlIGZpcnN0IENTUyBib3JkZXIgZnJvbSB0aGUgbGVmdCBvZiB0aGUgdG9vbGJhciAqL1xuXHRkaXYuaXRlbVRvb2xiYXIgdWwgbGkgYSB7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6bm9ybWFsO31cblx0ZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGE6aG92ZXIge31cblx0ZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEgc3BhbiB7fVxuXHRkaXYuaXRlbVRvb2xiYXIgdWwgbGkgYS5pdGVtUHJpbnRMaW5rIHt9XG5cdGRpdi5pdGVtVG9vbGJhciB1bCBsaSBhLml0ZW1QcmludExpbmsgc3BhbiB7fVxuXHRkaXYuaXRlbVRvb2xiYXIgdWwgbGkgYS5pdGVtRW1haWxMaW5rIHt9XG5cdGRpdi5pdGVtVG9vbGJhciB1bCBsaSBhLml0ZW1FbWFpbExpbmsgc3BhbiB7fVxuXHRkaXYuaXRlbVRvb2xiYXIgdWwgbGkgYS5pdGVtVmlkZW9MaW5rIHt9XG5cdGRpdi5pdGVtVG9vbGJhciB1bCBsaSBhLml0ZW1WaWRlb0xpbmsgc3BhbiB7fVxuXHRkaXYuaXRlbVRvb2xiYXIgdWwgbGkgYS5pdGVtSW1hZ2VHYWxsZXJ5TGluayB7fVxuXHRkaXYuaXRlbVRvb2xiYXIgdWwgbGkgYS5pdGVtSW1hZ2VHYWxsZXJ5TGluayBzcGFuIHt9XG5cdGRpdi5pdGVtVG9vbGJhciB1bCBsaSBhLml0ZW1Db21tZW50c0xpbmsge31cblx0ZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEuaXRlbUNvbW1lbnRzTGluayBzcGFuIHt9XG5cdGRpdi5pdGVtVG9vbGJhciB1bCBsaSBhIGltZyB7dmVydGljYWwtYWxpZ246bWlkZGxlO31cblx0ZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIHNwYW4uaXRlbVRleHRSZXNpemVyVGl0bGUge31cblx0ZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEjZm9udERlY3JlYXNlIHttYXJnaW46MCAwIDAgMnB4O31cblx0ZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEjZm9udERlY3JlYXNlIGltZyB7d2lkdGg6MTNweDtoZWlnaHQ6MTNweDtmb250LXNpemU6MTNweDt9XG5cdGRpdi5pdGVtVG9vbGJhciB1bCBsaSBhI2ZvbnRJbmNyZWFzZSB7bWFyZ2luOjAgMCAwIDJweDt9XG5cdGRpdi5pdGVtVG9vbGJhciB1bCBsaSBhI2ZvbnRJbmNyZWFzZSBpbWcge3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHg7Zm9udC1zaXplOjEzcHg7fVxuXHRkaXYuaXRlbVRvb2xiYXIgdWwgbGkgYSNmb250RGVjcmVhc2Ugc3Bhbixcblx0ZGl2Lml0ZW1Ub29sYmFyIHVsIGxpIGEjZm9udEluY3JlYXNlIHNwYW4ge2Rpc3BsYXk6bm9uZTt9XG5cbmRpdi5pdGVtUmF0aW5nQmxvY2sge3BhZGRpbmc6OHB4IDA7fVxuXHRkaXYuaXRlbVJhdGluZ0Jsb2NrIHNwYW4ge2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDtmb250LXN0eWxlOm5vcm1hbDtwYWRkaW5nOjAgNHB4IDAgMDttYXJnaW46MDtjb2xvcjojOTk5O31cblxuZGl2Lml0ZW1Cb2R5IHtwYWRkaW5nOjhweCAwO21hcmdpbjowO31cblxuZGl2Lml0ZW1JbWFnZUJsb2NrIHtwYWRkaW5nOjhweCAwO21hcmdpbjowIDAgMTZweCAwO31cblx0c3Bhbi5pdGVtSW1hZ2Uge2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjAgMCA4cHggMDt9XG5cdHNwYW4uaXRlbUltYWdlIGltZyB7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG87fVxuXHRzcGFuLml0ZW1JbWFnZUNhcHRpb24ge2NvbG9yOiM2NjY7ZmxvYXQ6bGVmdDtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxMXB4O31cblx0c3Bhbi5pdGVtSW1hZ2VDcmVkaXRzIHtjb2xvcjojOTk5O2Zsb2F0OnJpZ2h0O2Rpc3BsYXk6YmxvY2s7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1zaXplOjExcHg7fVxuXHRAbWVkaWEgc2NyZWVuIGFuZCAoIG1heC13aWR0aDo2MDBweCApe1xuXHRcdHNwYW4uaXRlbUltYWdlQ2FwdGlvbixcblx0XHRzcGFuLml0ZW1JbWFnZUNyZWRpdHMge2Zsb2F0Om5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7fVxuXHR9XG5cbmRpdi5pdGVtSW50cm9UZXh0IHtjb2xvcjojNDQ0O2ZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7bGluZS1oZWlnaHQ6MjRweDtwYWRkaW5nOjRweCAwIDEycHggMDt9XG5cdGRpdi5pdGVtSW50cm9UZXh0IGltZyB7fVxuXG5kaXYuaXRlbUZ1bGxUZXh0IHt9XG5cdGRpdi5pdGVtRnVsbFRleHQgaDMge21hcmdpbjowO3BhZGRpbmc6MTZweCAwIDRweCAwO31cblx0ZGl2Lml0ZW1GdWxsVGV4dCBwIHt9XG5cdGRpdi5pdGVtRnVsbFRleHQgaW1nIHt9XG5cbmRpdi5pdGVtRXh0cmFGaWVsZHMge21hcmdpbjoxNnB4IDAgMCAwO3BhZGRpbmc6OHB4IDAgMCAwO2JvcmRlci10b3A6MXB4IGRvdHRlZCAjZGRkO31cblx0ZGl2Lml0ZW1FeHRyYUZpZWxkcyBoMyB7bWFyZ2luOjA7cGFkZGluZzowIDAgOHB4IDA7fVxuXHRkaXYuaXRlbUV4dHJhRmllbGRzIHVsIHttYXJnaW46MDtwYWRkaW5nOjA7bGlzdC1zdHlsZTpub25lO31cblx0ZGl2Lml0ZW1FeHRyYUZpZWxkcyB1bCBsaSB7ZGlzcGxheTpibG9jazt9XG5cdGRpdi5pdGVtRXh0cmFGaWVsZHMgdWwgbGkgc3Bhbi5pdGVtRXh0cmFGaWVsZHNMYWJlbCB7ZGlzcGxheTpibG9jaztmbG9hdDpsZWZ0O2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luOjAgNHB4IDAgMDt3aWR0aDozMCU7fVxuXHRkaXYuaXRlbUV4dHJhRmllbGRzIHVsIGxpIHNwYW4uaXRlbUV4dHJhRmllbGRzVmFsdWUge31cblxuZGl2Lml0ZW1Db250ZW50Rm9vdGVyIHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246cmlnaHQ7cGFkZGluZzo0cHggMDttYXJnaW46MTZweCAwIDRweCAwO2NvbG9yOiM5OTk7fVxuXHRzcGFuLml0ZW1IaXRzIHtmbG9hdDpsZWZ0O31cblx0c3Bhbi5pdGVtRGF0ZU1vZGlmaWVkIHt9XG5cbmRpdi5pdGVtU29jaWFsU2hhcmluZyB7cGFkZGluZzo4cHggMDsgcG9zaXRpb246IGFic29sdXRlOyBib3JkZXI6MXB4IHNvbGlkICNjYWNhY2E7YmFja2dyb3VuZC1jb2xvcjojZmVmZWZlO31cblx0ZGl2Lml0ZW1Ud2l0dGVyQnV0dG9uIHtmbG9hdDpsZWZ0O21hcmdpbjoycHggMjRweCAwIDA7fVxuXHRkaXYuaXRlbUZhY2Vib29rQnV0dG9uIHtmbG9hdDpsZWZ0O21hcmdpbi1yaWdodDoyNHB4O3dpZHRoOjIwMHB4O31cblx0ZGl2Lml0ZW1Hb29nbGVQbHVzT25lQnV0dG9uIHt9XG5cbmRpdi5pdGVtTGlua3Mge21hcmdpbjoxNnB4IDA7cGFkZGluZzowO31cblxuZGl2Lml0ZW1DYXRlZ29yeSB7fVxuXHRkaXYuaXRlbUNhdGVnb3J5IHNwYW4ge2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6IzU1NTtwYWRkaW5nOjAgNHB4IDAgMDt9XG5cdGRpdi5pdGVtQ2F0ZWdvcnkgYSB7fVxuZGl2Lml0ZW1UYWdzQmxvY2sge31cblx0ZGl2Lml0ZW1UYWdzQmxvY2sgc3BhbiB7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojNTU1O3BhZGRpbmc6MCA0cHggMCAwO31cblx0ZGl2Lml0ZW1UYWdzQmxvY2sgdWwuaXRlbVRhZ3Mge2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjA7ZGlzcGxheTppbmxpbmU7fVxuXHRkaXYuaXRlbVRhZ3NCbG9jayB1bC5pdGVtVGFncyBsaSB7ZGlzcGxheTppbmxpbmU7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MCA0cHggMCAwO21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyO31cblx0ZGl2Lml0ZW1UYWdzQmxvY2sgdWwuaXRlbVRhZ3MgbGkgYTpiZWZvcmUge2NvbnRlbnQ6XCIjXCI7fVxuXHRkaXYuaXRlbVRhZ3NCbG9jayB1bC5pdGVtVGFncyBsaSBhIHt9XG5cdGRpdi5pdGVtVGFnc0Jsb2NrIHVsLml0ZW1UYWdzIGxpIGE6aG92ZXIge31cblxuZGl2Lml0ZW1BdHRhY2htZW50c0Jsb2NrIHtwYWRkaW5nOjRweDtib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgI2NjYzt9XG5cdGRpdi5pdGVtQXR0YWNobWVudHNCbG9jayBzcGFuIHtmb250LXdlaWdodDpib2xkO2NvbG9yOiM1NTU7cGFkZGluZzowIDRweCAwIDA7fVxuXHRkaXYuaXRlbUF0dGFjaG1lbnRzQmxvY2sgdWwuaXRlbUF0dGFjaG1lbnRzIHtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowO21hcmdpbjowO2Rpc3BsYXk6aW5saW5lO31cblx0ZGl2Lml0ZW1BdHRhY2htZW50c0Jsb2NrIHVsLml0ZW1BdHRhY2htZW50cyBsaSB7ZGlzcGxheTppbmxpbmU7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MCA0cHg7bWFyZ2luOjA7dGV4dC1hbGlnbjpjZW50ZXI7fVxuXHRkaXYuaXRlbUF0dGFjaG1lbnRzQmxvY2sgdWwuaXRlbUF0dGFjaG1lbnRzIGxpIGEge31cblx0ZGl2Lml0ZW1BdHRhY2htZW50c0Jsb2NrIHVsLml0ZW1BdHRhY2htZW50cyBsaSBhOmhvdmVyIHt9XG5cdGRpdi5pdGVtQXR0YWNobWVudHNCbG9jayB1bC5pdGVtQXR0YWNobWVudHMgbGkgc3BhbiB7Zm9udC1zaXplOjEwcHg7Y29sb3I6Izk5OTtmb250LXdlaWdodDpub3JtYWw7fVxuXG4vKiBBdXRob3IgYmxvY2sgKi9cbmRpdi5pdGVtQXV0aG9yQmxvY2sge2JhY2tncm91bmQ6I2ZhZmFmYTtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym9yZGVyLXJhZGl1czo0cHg7bWFyZ2luOjAgMCAxNnB4IDA7cGFkZGluZzo4cHg7fVxuXHRkaXYuaXRlbUF1dGhvckJsb2NrIGltZy5pdGVtQXV0aG9yQXZhdGFyIHtmbG9hdDpsZWZ0O2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6NHB4O2JvcmRlcjoxcHggc29saWQgI2RkZDttYXJnaW46MCA4cHggMCAwO2JvcmRlci1yYWRpdXM6NTAlO31cblx0ZGl2Lml0ZW1BdXRob3JCbG9jayBkaXYuaXRlbUF1dGhvckRldGFpbHMge21hcmdpbjowO3BhZGRpbmc6NHB4IDAgMCAwO31cblx0ZGl2Lml0ZW1BdXRob3JCbG9jayBkaXYuaXRlbUF1dGhvckRldGFpbHMgaDMuYXV0aG9yTmFtZSB7bWFyZ2luOjAgMCA0cHggMDtwYWRkaW5nOjA7fVxuXHRkaXYuaXRlbUF1dGhvckJsb2NrIGRpdi5pdGVtQXV0aG9yRGV0YWlscyBoMy5hdXRob3JOYW1lIGEge2ZvbnQtc2l6ZToxNnB4O31cblx0ZGl2Lml0ZW1BdXRob3JCbG9jayBkaXYuaXRlbUF1dGhvckRldGFpbHMgaDMuYXV0aG9yTmFtZSBhOmhvdmVyIHt9XG5cdGRpdi5pdGVtQXV0aG9yQmxvY2sgZGl2Lml0ZW1BdXRob3JEZXRhaWxzIHAge31cblx0ZGl2Lml0ZW1BdXRob3JCbG9jayBkaXYuaXRlbUF1dGhvckRldGFpbHMgc3Bhbi5pdGVtQXV0aG9yVXJsIHtmb250LXdlaWdodDpib2xkO2NvbG9yOiM1NTU7fVxuXHRkaXYuaXRlbUF1dGhvckJsb2NrIGRpdi5pdGVtQXV0aG9yRGV0YWlscyBzcGFuLml0ZW1BdXRob3JFbWFpbCB7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojNTU1O31cblx0ZGl2Lml0ZW1BdXRob3JCbG9jayBkaXYuaXRlbUF1dGhvckRldGFpbHMgc3Bhbi5pdGVtQXV0aG9yVXJsIGEsXG5cdGRpdi5pdGVtQXV0aG9yQmxvY2sgZGl2Lml0ZW1BdXRob3JEZXRhaWxzIHNwYW4uaXRlbUF1dGhvckVtYWlsIGEge2ZvbnQtd2VpZ2h0Om5vcm1hbDt9XG5cbi8qIEF1dGhvciBsYXRlc3QgKi9cbmRpdi5pdGVtQXV0aG9yTGF0ZXN0IHttYXJnaW4tYm90dG9tOjE2cHg7cGFkZGluZzowO31cblx0ZGl2Lml0ZW1BdXRob3JMYXRlc3QgaDMge31cblx0ZGl2Lml0ZW1BdXRob3JMYXRlc3QgdWwge31cblx0XHRkaXYuaXRlbUF1dGhvckxhdGVzdCB1bCBsaSB7fVxuXHRcdFx0ZGl2Lml0ZW1BdXRob3JMYXRlc3QgdWwgbGkgYSB7fVxuXHRcdFx0ZGl2Lml0ZW1BdXRob3JMYXRlc3QgdWwgbGkgYTpob3ZlciB7fVxuXG4vKiBSZWxhdGVkIGJ5IHRhZyAqL1xuZGl2Lml0ZW1SZWxhdGVkIHttYXJnaW4tYm90dG9tOjE2cHg7cGFkZGluZzowO30gLyogQWRkIG92ZXJmbG93LXg6c2Nyb2xsOyBpZiB5b3Ugd2FudCB0byBlbmFibGUgdGhlIHNjcm9sbGluZyBmZWF0dXJlcywgYXMgZXhwbGFpbmVkIGluIGl0ZW0ucGhwICovXG5cdGRpdi5pdGVtUmVsYXRlZCBoMyB7fVxuXHRkaXYuaXRlbVJlbGF0ZWQgdWwge31cblx0XHRkaXYuaXRlbVJlbGF0ZWQgdWwgbGkge31cblx0XHRkaXYuaXRlbVJlbGF0ZWQgdWwgbGkuazJTY3JvbGxlckVsZW1lbnQge2Zsb2F0OmxlZnQ7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjoxcHggc29saWQgI2RkZDtwYWRkaW5nOjRweDttYXJnaW46MCA0cHggNHB4IDA7YmFja2dyb3VuZDojZmZmO30gLyogeW91IG5lZWQgdG8gaW5zZXJ0IHRoaXMgY2xhc3MgaW4gdGhlIHJlbGF0ZWQgbGkgZWxlbWVudCBpbiBpdGVtLnBocCBmb3IgdGhpcyBzdHlsaW5nIHRvIHRha2UgZWZmZWN0ICovXG5cdFx0ZGl2Lml0ZW1SZWxhdGVkIHVsIGxpLmNsciB7Y2xlYXI6Ym90aDtoZWlnaHQ6MDtsaW5lLWhlaWdodDowO2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOm5vbmU7fVxuXHRcdFx0YS5pdGVtUmVsVGl0bGUge31cblx0XHRcdGRpdi5pdGVtUmVsQ2F0IHt9XG5cdFx0XHRcdGRpdi5pdGVtUmVsQ2F0IGEge31cblx0XHRcdGRpdi5pdGVtUmVsQXV0aG9yIHt9XG5cdFx0XHRcdGRpdi5pdGVtUmVsQXV0aG9yIGEge31cblx0XHRcdGltZy5pdGVtUmVsSW1nIHt9XG5cdFx0XHRkaXYuaXRlbVJlbEludHJvdGV4dCB7fVxuXHRcdFx0ZGl2Lml0ZW1SZWxGdWxsdGV4dCB7fVxuXHRcdFx0ZGl2Lml0ZW1SZWxNZWRpYSB7fVxuXHRcdFx0ZGl2Lml0ZW1SZWxJbWFnZUdhbGxlcnkge31cblxuLyogVmlkZW8gKi9cbmRpdi5pdGVtVmlkZW9CbG9jayB7bWFyZ2luOjAgMCAxNnB4IDA7cGFkZGluZzoxNnB4O2JhY2tncm91bmQ6IzAxMDEwMSB1cmwoLi4vaW1hZ2VzL3ZpZGVvYmcuZ2lmKSByZXBlYXQteCBib3R0b207Y29sb3I6I2VlZTt9XG5cdGRpdi5pdGVtVmlkZW9CbG9jayBkaXYuaXRlbVZpZGVvRW1iZWRkZWQge3RleHQtYWxpZ246Y2VudGVyO30gLyogZm9yIGVtYmVkZGVkIHZpZGVvcyAobm90IHVzaW5nIEFsbFZpZGVvcykgKi9cblx0ZGl2Lml0ZW1WaWRlb0Jsb2NrIHNwYW4uaXRlbVZpZGVvIHtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt9XG5cdGRpdi5pdGVtVmlkZW9CbG9jayBzcGFuLml0ZW1WaWRlb0NhcHRpb24ge2NvbG9yOiNlZWU7ZmxvYXQ6bGVmdDtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OmJvbGQ7d2lkdGg6NjAlO31cblx0ZGl2Lml0ZW1WaWRlb0Jsb2NrIHNwYW4uaXRlbVZpZGVvQ3JlZGl0cyB7Y29sb3I6I2VlZTtmbG9hdDpyaWdodDtkaXNwbGF5OmJsb2NrO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtc2l6ZToxMXB4O3dpZHRoOjM1JTt0ZXh0LWFsaWduOnJpZ2h0O31cblx0QG1lZGlhIHNjcmVlbiBhbmQgKCBtYXgtd2lkdGg6NjAwcHggKXtcblx0XHRkaXYuaXRlbVZpZGVvQmxvY2sgc3Bhbi5pdGVtVmlkZW9DYXB0aW9uLFxuXHRcdGRpdi5pdGVtVmlkZW9CbG9jayBzcGFuLml0ZW1WaWRlb0NyZWRpdHMge2Zsb2F0Om5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6YXV0bzt9XG5cdH1cblxuLyogSW1hZ2UgR2FsbGVyeSAqL1xuZGl2Lml0ZW1JbWFnZUdhbGxlcnkge21hcmdpbjowIDAgMTZweCAwO3BhZGRpbmc6MDt9XG5cbi8qIEFydGljbGUgbmF2aWdhdGlvbiAqL1xuZGl2Lml0ZW1OYXZpZ2F0aW9uIHtwYWRkaW5nOjhweDttYXJnaW46MCAwIDI0cHggMDtiYWNrZ3JvdW5kOiNmYWZhZmE7Ym9yZGVyLXJhZGl1czo0cHg7fVxuXHRkaXYuaXRlbU5hdmlnYXRpb24gc3Bhbi5pdGVtTmF2aWdhdGlvblRpdGxlIHtjb2xvcjojOTk5O31cblx0ZGl2Lml0ZW1OYXZpZ2F0aW9uIGEuaXRlbVByZXZpb3VzIHtwYWRkaW5nOjAgMTJweDt9XG5cdGRpdi5pdGVtTmF2aWdhdGlvbiBhLml0ZW1OZXh0IHtwYWRkaW5nOjAgMTJweDt9XG5cbi8qIENvbW1lbnRzICovXG5kaXYuaXRlbUNvbW1lbnRzIHtiYWNrZ3JvdW5kOiNmYWZhZmE7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yYWRpdXM6NHB4O3BhZGRpbmc6MTZweDt9XG5cblx0ZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IHttYXJnaW46MCAwIDE2cHg7cGFkZGluZzowO2xpc3Qtc3R5bGU6bm9uZTt9XG5cdGRpdi5pdGVtQ29tbWVudHMgdWwuaXRlbUNvbW1lbnRzTGlzdCBsaSB7ZGlzcGxheTpibG9jaztwYWRkaW5nOjRweDttYXJnaW46MCAwIDhweCAwO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7YmFja2dyb3VuZDojZmZmO31cblx0ZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IGxpLmF1dGhvclJlc3BvbnNlIHtiYWNrZ3JvdW5kOiNmNWZkZmY7fVxuXHRkaXYuaXRlbUNvbW1lbnRzIHVsLml0ZW1Db21tZW50c0xpc3QgbGkudW5wdWJsaXNoZWRDb21tZW50IHtiYWNrZ3JvdW5kOiNmZmVhZWE7fVxuXHRkaXYuaXRlbUNvbW1lbnRzIHVsLml0ZW1Db21tZW50c0xpc3QgbGkgaW1nIHtmbG9hdDpsZWZ0O21hcmdpbjo0cHggNHB4IDRweCAwO3BhZGRpbmc6NHB4O31cblx0ZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IGxpIHNwYW4uY29tbWVudERhdGUge3BhZGRpbmc6MCA0cHggMCAwO21hcmdpbjowIDhweCAwIDA7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjE0cHg7fVxuXHRkaXYuaXRlbUNvbW1lbnRzIHVsLml0ZW1Db21tZW50c0xpc3QgbGkgc3Bhbi5jb21tZW50QXV0aG9yTmFtZSB7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6MTRweDt9XG5cdGRpdi5pdGVtQ29tbWVudHMgdWwuaXRlbUNvbW1lbnRzTGlzdCBsaSBwIHtwYWRkaW5nOjRweCAwO31cblx0ZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IGxpIHNwYW4uY29tbWVudEF1dGhvckVtYWlsIHtkaXNwbGF5Om5vbmU7fVxuXHRkaXYuaXRlbUNvbW1lbnRzIHVsLml0ZW1Db21tZW50c0xpc3QgbGkgc3Bhbi5jb21tZW50TGluayB7ZmxvYXQ6cmlnaHQ7bWFyZ2luLWxlZnQ6OHB4O31cblx0ZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IGxpIHNwYW4uY29tbWVudExpbmsgYSB7Zm9udC1zaXplOjExcHg7Y29sb3I6Izk5OTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO31cblx0ZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IGxpIHNwYW4uY29tbWVudExpbmsgYTpob3ZlciB7Zm9udC1zaXplOjExcHg7Y29sb3I6IzU1NTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO31cblxuXHRkaXYuaXRlbUNvbW1lbnRzIHVsLml0ZW1Db21tZW50c0xpc3QgbGkgc3Bhbi5jb21tZW50VG9vbGJhciB7ZGlzcGxheTpibG9jaztjbGVhcjpib3RoO31cblx0ZGl2Lml0ZW1Db21tZW50cyB1bC5pdGVtQ29tbWVudHNMaXN0IGxpIHNwYW4uY29tbWVudFRvb2xiYXIgYSB7Zm9udC1zaXplOjExcHg7Y29sb3I6Izk5OTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO21hcmdpbi1yaWdodDo0cHg7fVxuXHRkaXYuaXRlbUNvbW1lbnRzIHVsLml0ZW1Db21tZW50c0xpc3QgbGkgc3Bhbi5jb21tZW50VG9vbGJhciBhOmhvdmVyIHtmb250LXNpemU6MTFweDtjb2xvcjojNTU1O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fVxuXHRkaXYuaXRlbUNvbW1lbnRzIHVsLml0ZW1Db21tZW50c0xpc3QgbGkgc3Bhbi5jb21tZW50VG9vbGJhckxvYWRpbmcge2JhY2tncm91bmQ6dXJsKC4uL2ltYWdlcy9sb2FkZXJzL3NlYXJjaC5naWYpIG5vLXJlcGVhdCAxMDAlIDUwJTt9XG5cbmRpdi5pdGVtQ29tbWVudHNQYWdpbmF0aW9uIHtwYWRkaW5nOjRweDttYXJnaW46MCAwIDI0cHggMDt9XG5cdC8qIEpvb21sYSAxLjUgLSAyLjUgKi9cblx0ZGl2Lml0ZW1Db21tZW50c1BhZ2luYXRpb24gc3Bhbi5wYWdpbmF0aW9uIHtkaXNwbGF5OmJsb2NrO2Zsb2F0OnJpZ2h0O2NsZWFyOmJvdGg7fVxuXHQvKiBKb29tbGEgMy54ICovXG5cdGRpdi5pdGVtQ29tbWVudHNQYWdpbmF0aW9uIHVsIHt0ZXh0LWFsaWduOmNlbnRlcjt9XG5cdGRpdi5pdGVtQ29tbWVudHNQYWdpbmF0aW9uIHVsIGxpIHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MDtwYWRkaW5nOjA7fVxuXHRkaXYuaXRlbUNvbW1lbnRzUGFnaW5hdGlvbiB1bCBsaSBhIHtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjRweCA4cHg7bWFyZ2luOjAgOHB4O2JvcmRlcjoxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YmFja2dyb3VuZDojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO31cblx0ZGl2Lml0ZW1Db21tZW50c1BhZ2luYXRpb24gdWwgbGkgYTpob3ZlciB7YmFja2dyb3VuZDojZmFmYWZhO2N1cnNvcjpwb2ludGVyO31cblx0ZGl2Lml0ZW1Db21tZW50c1BhZ2luYXRpb24gdWwgbGkuYWN0aXZlIGEge2JhY2tncm91bmQ6I2ZhZmFmYTt9XG5cdGRpdi5pdGVtQ29tbWVudHNQYWdpbmF0aW9uIHVsIGxpIGEgc3BhbiB7dmVydGljYWwtYWxpZ246bWlkZGxlO31cblxuZGl2Lml0ZW1Db21tZW50c0Zvcm0gaDMge21hcmdpbjowO3BhZGRpbmc6MCAwIDRweCAwO31cblx0ZGl2Lml0ZW1Db21tZW50c0Zvcm0gcC5pdGVtQ29tbWVudHNGb3JtTm90ZXMge2JvcmRlci10b3A6MnB4IHNvbGlkICNjY2M7cGFkZGluZzo4cHggMDt9XG5cdGRpdi5pdGVtQ29tbWVudHNGb3JtIGZvcm0ge21hcmdpbjowO3BhZGRpbmc6MDt3aWR0aDoxMDAlO31cblx0ZGl2Lml0ZW1Db21tZW50c0Zvcm0gZm9ybSBsYWJlbC5mb3JtQ29tbWVudCxcblx0ZGl2Lml0ZW1Db21tZW50c0Zvcm0gZm9ybSBsYWJlbC5mb3JtTmFtZSxcblx0ZGl2Lml0ZW1Db21tZW50c0Zvcm0gZm9ybSBsYWJlbC5mb3JtRW1haWwsXG5cdGRpdi5pdGVtQ29tbWVudHNGb3JtIGZvcm0gbGFiZWwuZm9ybVVybCxcblx0ZGl2Lml0ZW1Db21tZW50c0Zvcm0gZm9ybSBsYWJlbC5mb3JtUmVjYXB0Y2hhIHtkaXNwbGF5OmJsb2NrO21hcmdpbjoxMnB4IDAgMCAycHg7fVxuXHRkaXYuaXRlbUNvbW1lbnRzRm9ybSBmb3JtIHRleHRhcmVhLmlucHV0Ym94IHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjIwMHB4O21hcmdpbjowO3BhZGRpbmc6OHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt9XG5cdGRpdi5pdGVtQ29tbWVudHNGb3JtIGZvcm0gaW5wdXQuaW5wdXRib3gge2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttYXJnaW46MDtwYWRkaW5nOjhweDtsaW5lLWhlaWdodDoxNTAlO2hlaWdodDphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt9XG5cdGRpdi5pdGVtQ29tbWVudHNGb3JtIGZvcm0gaW5wdXQjc3VibWl0Q29tbWVudEJ1dHRvbiB7ZGlzcGxheTpibG9jazttYXJnaW46MTZweCAwIDAgMDtwYWRkaW5nOjhweCAxNnB4O2JhY2tncm91bmQ6IzJkOTZkZDtjb2xvcjojZmZmO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OmJvbGQ7fVxuXHRkaXYuaXRlbUNvbW1lbnRzRm9ybSBmb3JtIGlucHV0I3N1Ym1pdENvbW1lbnRCdXR0b246aG92ZXIge2JhY2tncm91bmQ6IzIxN2RiYjt9XG5cdGRpdi5pdGVtQ29tbWVudHNGb3JtIGZvcm0gc3BhbiNmb3JtTG9nIHttYXJnaW46MjRweDtwYWRkaW5nOjhweCAxMnB4O2JvcmRlci1yYWRpdXM6NHB4O3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6bm9uZTt9XG5cdFx0ZGl2Lml0ZW1Db21tZW50c0Zvcm0gZm9ybSBzcGFuI2Zvcm1Mb2cuazJGb3JtTG9nRXJyb3Ige2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojZjAwO2NvbG9yOiNmZmY7fVxuXHRcdGRpdi5pdGVtQ29tbWVudHNGb3JtIGZvcm0gc3BhbiNmb3JtTG9nLmsyRm9ybUxvZ1N1Y2Nlc3Mge2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojMThhYzAwO2NvbG9yOiNmZmY7fVxuXHRkaXYuaXRlbUNvbW1lbnRzRm9ybSBmb3JtIC5mb3JtTG9nTG9hZGluZyB7YmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL2xvYWRlcnMvZ2VuZXJpYy5naWYpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjt9XG5cbmRpdi5pdGVtQ29tbWVudHNMb2dpbkZpcnN0IHtkaXNwbGF5OmJsb2NrO21hcmdpbjoyNHB4O3BhZGRpbmc6OHB4IDEycHg7YmFja2dyb3VuZDojZjAwO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo0cHg7fVxuXG4vKiBcIlJlcG9ydCBjb21tZW50XCIgZm9ybSAqL1xuZGl2LmsyUmVwb3J0Q29tbWVudEZvcm1Db250YWluZXIge3BhZGRpbmc6OHB4O3dpZHRoOjQ4MHB4O21hcmdpbjowIGF1dG87fVxuXHRkaXYuazJSZXBvcnRDb21tZW50Rm9ybUNvbnRhaW5lciBibG9ja3F1b3RlIHt3aWR0aDo0NjJweDtiYWNrZ3JvdW5kOiNmYWZhZmE7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO3BhZGRpbmc6OHB4O21hcmdpbjowIDAgOHB4IDA7fVxuXHRkaXYuazJSZXBvcnRDb21tZW50Rm9ybUNvbnRhaW5lciBibG9ja3F1b3RlIHNwYW4ucXVvdGVJY29uTGVmdCB7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6NDBweDtjb2xvcjojMTM1Q0FFO2xpbmUtaGVpZ2h0OjMwcHg7dmVydGljYWwtYWxpZ246dG9wO2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDt9XG5cdGRpdi5rMlJlcG9ydENvbW1lbnRGb3JtQ29udGFpbmVyIGJsb2NrcXVvdGUgc3Bhbi5xdW90ZUljb25SaWdodCB7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6NDBweDtjb2xvcjojMTM1Q0FFO2xpbmUtaGVpZ2h0OjMwcHg7dmVydGljYWwtYWxpZ246dG9wO2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6cmlnaHQ7fVxuXHRkaXYuazJSZXBvcnRDb21tZW50Rm9ybUNvbnRhaW5lciBibG9ja3F1b3RlIHNwYW4udGhlQ29tbWVudCB7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiMwMDA7cGFkZGluZzowIDRweDt9XG5cdGRpdi5rMlJlcG9ydENvbW1lbnRGb3JtQ29udGFpbmVyIGZvcm0gbGFiZWwge2Rpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6Ym9sZDt9XG5cdGRpdi5rMlJlcG9ydENvbW1lbnRGb3JtQ29udGFpbmVyIGZvcm0gaW5wdXQsXG5cdGRpdi5rMlJlcG9ydENvbW1lbnRGb3JtQ29udGFpbmVyIGZvcm0gdGV4dGFyZWEge2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6MnB4O21hcmdpbjowIDAgOHB4IDA7d2lkdGg6NDc0cHg7fVxuXHRkaXYuazJSZXBvcnRDb21tZW50Rm9ybUNvbnRhaW5lciBmb3JtICNyZWNhcHRjaGEge21hcmdpbi1ib3R0b206MjRweDt9XG5cdGRpdi5rMlJlcG9ydENvbW1lbnRGb3JtQ29udGFpbmVyIGZvcm0gc3BhbiNmb3JtTG9nIHttYXJnaW46MjRweDtwYWRkaW5nOjhweCAxMnB4O2JhY2tncm91bmQ6I2ZhZmFmYTtib3JkZXItcmFkaXVzOjRweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5Om5vbmU7fVxuXHRkaXYuazJSZXBvcnRDb21tZW50Rm9ybUNvbnRhaW5lciBmb3JtIC5mb3JtTG9nTG9hZGluZyB7YmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL2xvYWRlcnMvZ2VuZXJpYy5naWYpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjt9XG5cbi8qIEJhY2sgdG8gdG9wIGxpbmsgKi9cbmRpdi5pdGVtQmFja1RvVG9wIHt0ZXh0LWFsaWduOnJpZ2h0O31cblx0ZGl2Lml0ZW1CYWNrVG9Ub3AgYSB7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9XG5cdGRpdi5pdGVtQmFja1RvVG9wIGE6aG92ZXIge3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Q29tcG9uZW50IC0gSXRlbWxpc3QgdmlldyAoY2F0ZWdvcnkpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmRpdi5pdGVtTGlzdENhdGVnb3JpZXNCbG9jayB7fVxuXG4vKiAtLS0gQ2F0ZWdvcnkgYmxvY2sgLS0tICovXG5kaXYuaXRlbUxpc3RDYXRlZ29yeSB7YmFja2dyb3VuZDojZmFmYWZhO2JvcmRlcjoxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjRweDttYXJnaW46MCAwIDI0cHggMDtwYWRkaW5nOjhweDt9XG5cdHNwYW4uY2F0SXRlbUFkZExpbmsge2Rpc3BsYXk6YmxvY2s7cGFkZGluZzo4cHggMDttYXJnaW46MCAwIDRweCAwO2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjY2NjO3RleHQtYWxpZ246cmlnaHQ7fVxuXHRzcGFuLmNhdEl0ZW1BZGRMaW5rIGEge3BhZGRpbmc6NHB4IDE2cHg7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2ZhZmFmYTt0ZXh0LWRlY29yYXRpb246bm9uZTt9XG5cdHNwYW4uY2F0SXRlbUFkZExpbmsgYTpob3ZlciB7YmFja2dyb3VuZDojZmZmZmNjO31cblx0ZGl2Lml0ZW1MaXN0Q2F0ZWdvcnkgaW1nIHtmbG9hdDpsZWZ0O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjAgOHB4IDAgMDt9XG5cdGRpdi5pdGVtTGlzdENhdGVnb3J5IGgyIHt9XG5cdGRpdi5pdGVtTGlzdENhdGVnb3J5IHAge31cblxuLyogLS0tIFN1Yi1jYXRlZ29yeSBibG9jayAtLS0gKi9cbmRpdi5pdGVtTGlzdFN1YkNhdGVnb3JpZXMge31cblx0ZGl2Lml0ZW1MaXN0U3ViQ2F0ZWdvcmllcyBoMyB7fVxuXHRcdGRpdi5zdWJDYXRlZ29yeUNvbnRhaW5lciB7ZmxvYXQ6bGVmdDt9XG5cdFx0ZGl2LnN1YkNhdGVnb3J5Q29udGFpbmVyTGFzdCB7fSAvKiB0aGlzIGNsYXNzIGlzIGFwcGVuZGVkIHRvIHRoZSBsYXN0IGNvbnRhaW5lciBvbiBlYWNoIHJvdyBvZiBpdGVtcyAodXNlZnVsIHdoZW4geW91IHdhbnQgdG8gc2V0IDAgcGFkZGluZy9tYXJnaW4gdG8gdGhlIGxhc3QgY29udGFpbmVyKSAqL1xuXHRcdFx0ZGl2LnN1YkNhdGVnb3J5IHtiYWNrZ3JvdW5kOiNmYWZhZmE7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO21hcmdpbjo0cHg7cGFkZGluZzo4cHg7fVxuXHRcdFx0XHRkaXYuc3ViQ2F0ZWdvcnkgYS5zdWJDYXRlZ29yeUltYWdlLFxuXHRcdFx0XHRkaXYuc3ViQ2F0ZWdvcnkgYS5zdWJDYXRlZ29yeUltYWdlOmhvdmVyIHt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrO31cblx0XHRcdFx0ZGl2LnN1YkNhdGVnb3J5IGEuc3ViQ2F0ZWdvcnlJbWFnZSBpbWcsXG5cdFx0XHRcdGRpdi5zdWJDYXRlZ29yeSBhLnN1YkNhdGVnb3J5SW1hZ2U6aG92ZXIgaW1nIHttYXJnaW46MCA4cHggMCAwO31cblxuLyogLS0tIEl0ZW0gZ3JvdXBzIC0tLSAqL1xuZGl2Lml0ZW1MaXN0IHt9XG5cdFxuXHRkaXYjaXRlbUxpc3RMaW5rcyB7YmFja2dyb3VuZDojZmFmYWZhO2JvcmRlcjoxcHggc29saWQgI2RkZDttYXJnaW46OHB4IDA7cGFkZGluZzo4cHg7fVxuXG5cdFx0ZGl2Lml0ZW1Db250YWluZXIge2Zsb2F0OmxlZnQ7fVxuXHRcdGRpdi5pdGVtQ29udGFpbmVyTGFzdCB7fSAvKiB0aGlzIGNsYXNzIGlzIGFwcGVuZGVkIHRvIHRoZSBsYXN0IGNvbnRhaW5lciBvbiBlYWNoIHJvdyBvZiBpdGVtcyAodXNlZnVsIHdoZW4geW91IHdhbnQgdG8gc2V0IDAgcGFkZGluZy9tYXJnaW4gdG8gdGhlIGxhc3QgY29udGFpbmVyKSAqL1xuXHRcdEBtZWRpYSBzY3JlZW4gYW5kICggbWF4LXdpZHRoOjYwMHB4ICl7XG5cdFx0XHRkaXYuaXRlbUNvbnRhaW5lciwgZGl2LnN1YkNhdGVnb3J5Q29udGFpbmVyIHtmbG9hdDpub25lO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7fVxuXHRcdH1cblxuLyogLS0tIEl0ZW0gYmxvY2sgZm9yIGVhY2ggaXRlbSBncm91cCAtLS0gKi9cbmRpdi5jYXRJdGVtVmlldyB7bWFyZ2luLWJvdHRvbTo0OHB4O3BhZGRpbmc6NHB4O30gLyogdGhpcyBpcyB0aGUgY29udGFpbmVyIGZvciBlYWNoIEsyIGl0ZW0gb24gdGhpcyB2aWV3ICovXG5cblx0XG5cblx0ZGl2LmNhdEl0ZW1Jc0ZlYXR1cmVkIHt9IC8qIEF0dGFjaCBhIGNsYXNzIGZvciBlYWNoIGZlYXR1cmVkIGl0ZW0gKi9cblxuc3Bhbi5jYXRJdGVtRWRpdExpbmsge31cblx0c3Bhbi5jYXRJdGVtRWRpdExpbmsgYSB7fVxuXHRzcGFuLmNhdEl0ZW1FZGl0TGluayBhOmhvdmVyIHt9XG5cbmRpdi5jYXRJdGVtSGVhZGVyIHt9XG5cdGRpdi5jYXRJdGVtSGVhZGVyIHNwYW4uY2F0SXRlbURhdGVDcmVhdGVkIHtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxMXB4O31cblx0ZGl2LmNhdEl0ZW1IZWFkZXIgaDMuY2F0SXRlbVRpdGxlIHtwYWRkaW5nOjEwcHggMCA0cHggMDttYXJnaW46MDt9XG5cdGRpdi5jYXRJdGVtSGVhZGVyIGgzLmNhdEl0ZW1UaXRsZSBzcGFuIHt9XG5cdGRpdi5jYXRJdGVtSGVhZGVyIGgzLmNhdEl0ZW1UaXRsZSBzcGFuIHN1cCB7Zm9udC1zaXplOjEycHg7Y29sb3I6I0NGMTkxOTt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC8qIHN1cGVyc2NyaXB0ICovXG5cdGRpdi5jYXRJdGVtSGVhZGVyIHNwYW4uY2F0SXRlbUF1dGhvciB7ZGlzcGxheTpibG9jaztwYWRkaW5nOjA7bWFyZ2luOjA7fVxuXHRkaXYuY2F0SXRlbUhlYWRlciBzcGFuLmNhdEl0ZW1BdXRob3IgYSB7fVxuXHRkaXYuY2F0SXRlbUhlYWRlciBzcGFuLmNhdEl0ZW1BdXRob3IgYTpob3ZlciB7fVxuXG5kaXYuY2F0SXRlbVJhdGluZ0Jsb2NrIHtwYWRkaW5nOjhweCAwO31cblx0ZGl2LmNhdEl0ZW1SYXRpbmdCbG9jayBzcGFuIHtkaXNwbGF5OmJsb2NrO2Zsb2F0OmxlZnQ7Zm9udC1zdHlsZTpub3JtYWw7cGFkZGluZzowIDRweCAwIDA7bWFyZ2luOjA7Y29sb3I6Izk5OTt9XG5cbmRpdi5jYXRJdGVtQm9keSB7cGFkZGluZzo4cHggMDttYXJnaW46MDt9XG5cbmRpdi5jYXRJdGVtSW1hZ2VCbG9jayB7cGFkZGluZzo4cHggMDttYXJnaW46MCAwIDE2cHggMDt9XG5cdHNwYW4uY2F0SXRlbUltYWdlIHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowIDAgOHB4IDA7fVxuXHRzcGFuLmNhdEl0ZW1JbWFnZSBpbWcge21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvO31cblxuZGl2LmNhdEl0ZW1JbnRyb1RleHQge2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0Om5vcm1hbDtsaW5lLWhlaWdodDppbmhlcml0O3BhZGRpbmc6NHB4IDAgMTJweCAwO31cblx0ZGl2LmNhdEl0ZW1JbnRyb1RleHQgaW1nIHt9XG5cbmRpdi5jYXRJdGVtRXh0cmFGaWVsZHMsXG5kaXYuZ2VuZXJpY0l0ZW1FeHRyYUZpZWxkcyB7bWFyZ2luOjE2cHggMCAwIDA7cGFkZGluZzo4cHggMCAwIDA7Ym9yZGVyLXRvcDoxcHggZG90dGVkICNkZGQ7fVxuXHRkaXYuY2F0SXRlbUV4dHJhRmllbGRzIGg0LFxuXHRkaXYuZ2VuZXJpY0l0ZW1FeHRyYUZpZWxkcyBoNCB7bWFyZ2luOjA7cGFkZGluZzowIDAgOHB4IDA7fVxuXHRkaXYuY2F0SXRlbUV4dHJhRmllbGRzIHVsLFxuXHRkaXYuZ2VuZXJpY0l0ZW1FeHRyYUZpZWxkcyB1bCB7bWFyZ2luOjA7cGFkZGluZzowO2xpc3Qtc3R5bGU6bm9uZTt9XG5cdGRpdi5jYXRJdGVtRXh0cmFGaWVsZHMgdWwgbGksXG5cdGRpdi5nZW5lcmljSXRlbUV4dHJhRmllbGRzIHVsIGxpIHtkaXNwbGF5OmJsb2NrO31cblx0ZGl2LmNhdEl0ZW1FeHRyYUZpZWxkcyB1bCBsaSBzcGFuLmNhdEl0ZW1FeHRyYUZpZWxkc0xhYmVsLFxuXHRkaXYuZ2VuZXJpY0l0ZW1FeHRyYUZpZWxkcyB1bCBsaSBzcGFuLmdlbmVyaWNJdGVtRXh0cmFGaWVsZHNMYWJlbCB7ZGlzcGxheTpibG9jaztmbG9hdDpsZWZ0O2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luOjAgNHB4IDAgMDt3aWR0aDozMCU7fVxuXHRkaXYuY2F0SXRlbUV4dHJhRmllbGRzIHVsIGxpIHNwYW4uY2F0SXRlbUV4dHJhRmllbGRzVmFsdWUge31cblxuZGl2LmNhdEl0ZW1MaW5rcyB7bWFyZ2luOjAgMCAxNnB4IDA7cGFkZGluZzowO31cblxuZGl2LmNhdEl0ZW1IaXRzQmxvY2sge3BhZGRpbmc6NHB4IDA7fVxuXHRzcGFuLmNhdEl0ZW1IaXRzIHt9XG5cbmRpdi5jYXRJdGVtQ2F0ZWdvcnkge3BhZGRpbmc6NHB4IDA7fVxuXHRkaXYuY2F0SXRlbUNhdGVnb3J5IHNwYW4ge2ZvbnQtd2VpZ2h0OmJvbGQ7cGFkZGluZzowIDRweCAwIDA7fVxuXHRkaXYuY2F0SXRlbUNhdGVnb3J5IGEge31cblxuZGl2LmNhdEl0ZW1UYWdzQmxvY2sge3BhZGRpbmc6NHB4IDA7fVxuXHRkaXYuY2F0SXRlbVRhZ3NCbG9jayBzcGFuIHtmb250LXdlaWdodDpib2xkO3BhZGRpbmc6MCA0cHggMCAwO31cblx0ZGl2LmNhdEl0ZW1UYWdzQmxvY2sgdWwuY2F0SXRlbVRhZ3Mge2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjA7ZGlzcGxheTppbmxpbmU7fVxuXHRkaXYuY2F0SXRlbVRhZ3NCbG9jayB1bC5jYXRJdGVtVGFncyBsaSB7ZGlzcGxheTppbmxpbmU7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MCA0cHggMCAwO21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyO31cblx0ZGl2LmNhdEl0ZW1UYWdzQmxvY2sgdWwuY2F0SXRlbVRhZ3MgbGkgYTpiZWZvcmUge2NvbnRlbnQ6XCIjXCI7fVxuXG5cbmRpdi5jYXRJdGVtQXR0YWNobWVudHNCbG9jayB7cGFkZGluZzo0cHg7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkICNjY2M7fVxuXHRkaXYuY2F0SXRlbUF0dGFjaG1lbnRzQmxvY2sgc3BhbiB7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojNTU1O3BhZGRpbmc6MCA0cHggMCAwO31cblx0ZGl2LmNhdEl0ZW1BdHRhY2htZW50c0Jsb2NrIHVsLmNhdEl0ZW1BdHRhY2htZW50cyB7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MDttYXJnaW46MDtkaXNwbGF5OmlubGluZTt9XG5cdGRpdi5jYXRJdGVtQXR0YWNobWVudHNCbG9jayB1bC5jYXRJdGVtQXR0YWNobWVudHMgbGkge2Rpc3BsYXk6aW5saW5lO2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjAgNHB4O21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyO31cblxuXHRkaXYuY2F0SXRlbUF0dGFjaG1lbnRzQmxvY2sgdWwuY2F0SXRlbUF0dGFjaG1lbnRzIGxpIHNwYW4ge2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiM5OTk7Zm9udC13ZWlnaHQ6bm9ybWFsO31cblxuLyogVmlkZW8gKi9cbmRpdi5jYXRJdGVtVmlkZW9CbG9jayB7bWFyZ2luOjAgMCAxNnB4IDA7cGFkZGluZzoxNnB4O2JhY2tncm91bmQ6IzAxMDEwMSB1cmwoLi4vaW1hZ2VzL3ZpZGVvYmcuZ2lmKSByZXBlYXQteCBib3R0b207fVxuXHRkaXYuY2F0SXRlbVZpZGVvQmxvY2sgZGl2LmNhdEl0ZW1WaWRlb0VtYmVkZGVkIHt0ZXh0LWFsaWduOmNlbnRlcjt9IC8qIGZvciBlbWJlZGRlZCB2aWRlb3MgKG5vdCB1c2luZyBBbGxWaWRlb3MpICovXG5cdGRpdi5jYXRJdGVtVmlkZW9CbG9jayBzcGFuLmNhdEl0ZW1WaWRlbyB7ZGlzcGxheTpibG9jazt9XG5cbi8qIEltYWdlIEdhbGxlcnkgKi9cbmRpdi5jYXRJdGVtSW1hZ2VHYWxsZXJ5IHttYXJnaW46MCAwIDE2cHggMDtwYWRkaW5nOjA7fVxuXG4vKiBBbmNob3IgbGluayB0byBjb21tZW50cyAqL1xuZGl2LmNhdEl0ZW1Db21tZW50c0xpbmsge2Rpc3BsYXk6aW5saW5lO21hcmdpbjowIDhweCAwIDA7cGFkZGluZzowIDhweCAwIDA7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjO31cblx0ZGl2LmNhdEl0ZW1Db21tZW50c0xpbmsgYSB7fVxuXHRkaXYuY2F0SXRlbUNvbW1lbnRzTGluayBhOmhvdmVyIHt9XG5cbi8qIFJlYWQgbW9yZSBsaW5rICovXG5kaXYuY2F0SXRlbVJlYWRNb3JlIHtkaXNwbGF5OmlubGluZTt9XG5cdGRpdi5jYXRJdGVtUmVhZE1vcmUgYSB7fVxuXHRkaXYuY2F0SXRlbVJlYWRNb3JlIGE6aG92ZXIge31cblxuLyogTW9kaWZpZWQgZGF0ZSAqL1xuc3Bhbi5jYXRJdGVtRGF0ZU1vZGlmaWVkIHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246cmlnaHQ7cGFkZGluZzo0cHg7bWFyZ2luOjRweCAwO2NvbG9yOiM5OTk7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RkZDt9XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRDb21wb25lbnQgLSBJdGVtbGlzdCB2aWV3ICh1c2VyKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBVc2VyIGluZm8gYmxvY2sgKi9cbmRpdi51c2VyVmlldyB7fVxuXHRkaXYudXNlckJsb2NrIHtiYWNrZ3JvdW5kOiNmYWZhZmE7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yYWRpdXM6NHB4O21hcmdpbjowIDAgMjRweCAwO3BhZGRpbmc6OHB4O31cblxuXHRcdGRpdi51c2VyQmxvY2sgaW1nIHtkaXNwbGF5OmJsb2NrO2Zsb2F0OmxlZnQ7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6NHB4O2JvcmRlcjoxcHggc29saWQgI2RkZDttYXJnaW46MCA4cHggMCAwO2JvcmRlci1yYWRpdXM6NTAlO31cblx0XHRkaXYudXNlckJsb2NrIGgyIHt9XG5cdFx0ZGl2LnVzZXJCbG9jayBkaXYudXNlckRlc2NyaXB0aW9uIHtwYWRkaW5nOjRweCAwO31cblx0XHRkaXYudXNlckJsb2NrIGRpdi51c2VyQWRkaXRpb25hbEluZm8ge3BhZGRpbmc6NHB4IDA7bWFyZ2luOjhweCAwIDAgMDt9XG5cdFx0XHRzcGFuLnVzZXJVUkwge2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6IzU1NTtkaXNwbGF5OmJsb2NrO31cblx0XHRcdHNwYW4udXNlckVtYWlsIHtmb250LXdlaWdodDpib2xkO2NvbG9yOiM1NTU7ZGlzcGxheTpibG9jazt9XG5cblx0XHRkaXYudXNlckl0ZW1MaXN0IHt9XG5cbi8qIFVzZXIgaXRlbXMgKi9cbmRpdi51c2VySXRlbVZpZXcge21hcmdpbi1ib3R0b206NDhweDt9IC8qIHRoaXMgaXMgdGhlIGl0ZW0gY29udGFpbmVyIGZvciB0aGlzIHZpZXcgKi9cbmRpdi51c2VySXRlbUlzRmVhdHVyZWQge30gLyogQXR0YWNoIGEgY2xhc3MgZm9yIGVhY2ggZmVhdHVyZWQgaXRlbSAqL1xuXG5kaXYudXNlckl0ZW1WaWV3VW5wdWJsaXNoZWQge29wYWNpdHk6MC45O2JvcmRlcjo0cHggZGFzaGVkICNjY2M7YmFja2dyb3VuZDojZmZmZmYyO3BhZGRpbmc6OHB4O21hcmdpbjo4cHggMDt9XG5cbnNwYW4udXNlckl0ZW1FZGl0TGluayB7fVxuXHRzcGFuLnVzZXJJdGVtRWRpdExpbmsgYSB7fVxuXHRzcGFuLnVzZXJJdGVtRWRpdExpbmsgYTpob3ZlciB7fVxuXG5kaXYudXNlckl0ZW1IZWFkZXIge31cblx0ZGl2LnVzZXJJdGVtSGVhZGVyIHNwYW4udXNlckl0ZW1EYXRlQ3JlYXRlZCB7Y29sb3I6Izk5OTtmb250LXNpemU6MTFweDt9XG5cdGRpdi51c2VySXRlbUhlYWRlciBoMy51c2VySXRlbVRpdGxlIHtwYWRkaW5nOjEwcHggMCA0cHggMDttYXJnaW46MDt9XG5cdGRpdi51c2VySXRlbUhlYWRlciBoMy51c2VySXRlbVRpdGxlIHNwYW4gc3VwIHtmb250LXNpemU6MTJweDtjb2xvcjojQ0YxOTE5O3RleHQtZGVjb3JhdGlvbjpub25lO30gLyogXCJVbnB1Ymxpc2hlZFwiIHByZXNlbnRlZCBpbiBzdXBlcnNjcmlwdCAqL1xuXG5kaXYudXNlckl0ZW1Cb2R5IHtwYWRkaW5nOjhweCAwO21hcmdpbjowO31cblxuZGl2LnVzZXJJdGVtSW1hZ2VCbG9jayB7cGFkZGluZzowO21hcmdpbjowO2Zsb2F0OmxlZnQ7fVxuXHRzcGFuLnVzZXJJdGVtSW1hZ2Uge2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjAgOHB4IDhweCAwO31cblx0c3Bhbi51c2VySXRlbUltYWdlIGltZyB7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG87fVxuXG5kaXYudXNlckl0ZW1JbnRyb1RleHQge2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0Om5vcm1hbDtsaW5lLWhlaWdodDppbmhlcml0O3BhZGRpbmc6NHB4IDAgMTJweCAwO31cblx0ZGl2LnVzZXJJdGVtSW50cm9UZXh0IGltZyB7fVxuXG5kaXYudXNlckl0ZW1MaW5rcyB7bWFyZ2luOjAgMCAxNnB4IDA7cGFkZGluZzowO31cblxuZGl2LnVzZXJJdGVtQ2F0ZWdvcnkge3BhZGRpbmc6NHB4IDA7fVxuXHRkaXYudXNlckl0ZW1DYXRlZ29yeSBzcGFuIHtmb250LXdlaWdodDpib2xkO2NvbG9yOiM1NTU7cGFkZGluZzowIDRweCAwIDA7fVxuXHRkaXYudXNlckl0ZW1DYXRlZ29yeSBhIHt9XG5cbmRpdi51c2VySXRlbVRhZ3NCbG9jayB7cGFkZGluZzo0cHggMDt9XG5cdGRpdi51c2VySXRlbVRhZ3NCbG9jayBzcGFuIHtmb250LXdlaWdodDpib2xkO2NvbG9yOiM1NTU7cGFkZGluZzowIDRweCAwIDA7fVxuXHRkaXYudXNlckl0ZW1UYWdzQmxvY2sgdWwudXNlckl0ZW1UYWdzIHtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowO21hcmdpbjowO2Rpc3BsYXk6aW5saW5lO31cblx0ZGl2LnVzZXJJdGVtVGFnc0Jsb2NrIHVsLnVzZXJJdGVtVGFncyBsaSB7ZGlzcGxheTppbmxpbmU7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MCA0cHggMCAwO21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyO31cblx0ZGl2LnVzZXJJdGVtVGFnc0Jsb2NrIHVsLnVzZXJJdGVtVGFncyBsaSBhOmJlZm9yZSB7Y29udGVudDpcIiNcIjt9XG5cblxuLyogQW5jaG9yIGxpbmsgdG8gY29tbWVudHMgKi9cbmRpdi51c2VySXRlbUNvbW1lbnRzTGluayB7ZGlzcGxheTppbmxpbmU7bWFyZ2luOjAgOHB4IDAgMDtwYWRkaW5nOjAgOHB4IDAgMDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7fVxuXG5cbi8qIFJlYWQgbW9yZSBsaW5rICovXG5kaXYudXNlckl0ZW1SZWFkTW9yZSB7ZGlzcGxheTppbmxpbmU7fVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Q29tcG9uZW50IC0gSXRlbWxpc3QgdmlldyAodGFnKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuZGl2LnRhZ1ZpZXcge31cblxuZGl2LnRhZ0l0ZW1MaXN0IHt9XG5cbmRpdi50YWdJdGVtVmlldyB7bWFyZ2luLWJvdHRvbTo0OHB4O30gLyogdGhpcyBpcyB0aGUgaXRlbSBjb250YWluZXIgZm9yIHRoaXMgdmlldyAqL1xuXG5kaXYudGFnSXRlbUhlYWRlciB7fVxuXHRkaXYudGFnSXRlbUhlYWRlciBzcGFuLnRhZ0l0ZW1EYXRlQ3JlYXRlZCB7Y29sb3I6Izk5OTtmb250LXNpemU6MTFweDt9XG5cdGRpdi50YWdJdGVtSGVhZGVyIGgyLnRhZ0l0ZW1UaXRsZSB7cGFkZGluZzoxMHB4IDAgNHB4IDA7bWFyZ2luOjA7fVxuXG5kaXYudGFnSXRlbUJvZHkge3BhZGRpbmc6OHB4IDA7bWFyZ2luOjA7fVxuXG5kaXYudGFnSXRlbUltYWdlQmxvY2sge3BhZGRpbmc6MDttYXJnaW46MDtmbG9hdDpsZWZ0O31cblx0c3Bhbi50YWdJdGVtSW1hZ2Uge2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjAgOHB4IDhweCAwO31cblx0c3Bhbi50YWdJdGVtSW1hZ2UgaW1nIHttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0bzt9XG5cbmRpdi50YWdJdGVtSW50cm9UZXh0IHtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDpub3JtYWw7bGluZS1oZWlnaHQ6aW5oZXJpdDtwYWRkaW5nOjRweCAwIDEycHggMDt9XG5cblx0ZGl2LnRhZ0l0ZW1DYXRlZ29yeSB7ZGlzcGxheTppbmxpbmU7bWFyZ2luOjAgOHB4IDAgMDtwYWRkaW5nOjAgOHB4IDAgMDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7fVxuXHRcdGRpdi50YWdJdGVtQ2F0ZWdvcnkgc3BhbiB7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojNTU1O3BhZGRpbmc6MCA0cHggMCAwO31cblx0XHRkaXYudGFnSXRlbUNhdGVnb3J5IGEge31cblxuLyogUmVhZCBtb3JlIGxpbmsgKi9cbmRpdi50YWdJdGVtUmVhZE1vcmUge2Rpc3BsYXk6aW5saW5lO31cblx0ZGl2LnRhZ0l0ZW1SZWFkTW9yZSBhIHt9XG5cdGRpdi50YWdJdGVtUmVhZE1vcmUgYTpob3ZlciB7fVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Q29tcG9uZW50IC0gSXRlbWxpc3QgdmlldyAoZ2VuZXJpYylcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG5kaXYuZ2VuZXJpY0l0ZW1WaWV3IHttYXJnaW4tYm90dG9tOjQ4cHg7fSAvKiB0aGlzIGlzIHRoZSBpdGVtIGNvbnRhaW5lciBmb3IgdGhpcyB2aWV3ICovXG5cblxuXHRkaXYuZ2VuZXJpY0l0ZW1IZWFkZXIgc3Bhbi5nZW5lcmljSXRlbURhdGVDcmVhdGVkIHtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxMXB4O31cblx0ZGl2LmdlbmVyaWNJdGVtSGVhZGVyIGgyLmdlbmVyaWNJdGVtVGl0bGUge3BhZGRpbmc6MTBweCAwIDRweCAwO21hcmdpbjowO31cblxuZGl2LmdlbmVyaWNJdGVtQm9keSB7cGFkZGluZzo4cHggMDttYXJnaW46MDt9XG5cbmRpdi5nZW5lcmljSXRlbUltYWdlQmxvY2sge3BhZGRpbmc6MDttYXJnaW46MDtmbG9hdDpsZWZ0O31cblx0c3Bhbi5nZW5lcmljSXRlbUltYWdlIHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowIDhweCA4cHggMDt9XG5cdHNwYW4uZ2VuZXJpY0l0ZW1JbWFnZSBpbWcge21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvO31cblxuZGl2LmdlbmVyaWNJdGVtSW50cm9UZXh0IHtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDpub3JtYWw7bGluZS1oZWlnaHQ6aW5oZXJpdDtwYWRkaW5nOjRweCAwIDEycHggMDt9XG5cblxuXHRcblxuXHRkaXYuZ2VuZXJpY0l0ZW1DYXRlZ29yeSB7ZGlzcGxheTppbmxpbmU7bWFyZ2luOjAgOHB4IDAgMDtwYWRkaW5nOjAgOHB4IDAgMDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7fVxuXHRcdGRpdi5nZW5lcmljSXRlbUNhdGVnb3J5IHNwYW4ge2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6IzU1NTtwYWRkaW5nOjAgNHB4IDAgMDt9XG5cblxuLyogUmVhZCBtb3JlIGxpbmsgKi9cbmRpdi5nZW5lcmljSXRlbVJlYWRNb3JlIHtkaXNwbGF5OmlubGluZTt9XG5cblxuLyogTm8gcmVzdWx0cyBmb3VuZCBtZXNzYWdlICovXG5kaXYjZ2VuZXJpY0l0ZW1MaXN0Tm90aGluZ0ZvdW5kIHtwYWRkaW5nOjQwcHg7dGV4dC1hbGlnbjpjZW50ZXI7fVxuXHRkaXYjZ2VuZXJpY0l0ZW1MaXN0Tm90aGluZ0ZvdW5kIHAge2ZvbnQtc2l6ZToyMHB4O2NvbG9yOiM5OTk7fVxuXG4vKiAtLS0gR29vZ2xlIFNlYXJjaCAodXNlIEZpcmVidWcgb3Igc2ltaWxhciB0b29scyB0byBpbnNwZWN0IHRoZSBnZW5lcmF0ZWQgSFRNTCwgdGhlbiBzdHlsZSBhY2NvcmRpbmdseSAtLS0gKi9cbiNrMkdvb2dsZVNlYXJjaENvbnRhaW5lciAuZ3NjLWNvbnRyb2wge3dpZHRoOmF1dG8gIWltcG9ydGFudDt9XG4jazJHb29nbGVTZWFyY2hDb250YWluZXIgLmdzYy1jb250cm9sIC5nc2MtYWJvdmUtd3JhcHBlci1hcmVhLFxuI2syR29vZ2xlU2VhcmNoQ29udGFpbmVyIC5nc2MtY29udHJvbCAuZ3NjLXJlc3VsdHNIZWFkZXIsXG4jazJHb29nbGVTZWFyY2hDb250YWluZXIgLmdzYy1jb250cm9sIC5nc2MtdXJsLWJvdHRvbSB7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fSAvKiBIaWRlIHVubmVlZGVkIGVsZW1lbnRzIG9mIHRoZSByZXN1bHRzIHBhZ2UgKi9cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdENvbXBvbmVudCAtIExhdGVzdCB2aWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmRpdi5sYXRlc3RJdGVtc0NvbnRhaW5lciB7ZmxvYXQ6bGVmdDt9XG5AbWVkaWEgc2NyZWVuIGFuZCAoIG1heC13aWR0aDo2MDBweCApe1xuXHRkaXYubGF0ZXN0SXRlbXNDb250YWluZXIge2Zsb2F0Om5vbmU7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlIWltcG9ydGFudDt9XG59XG5cbi8qIENhdGVnb3J5IGluZm8gYmxvY2sgKi9cbmRpdi5sYXRlc3RJdGVtc0NhdGVnb3J5IHtiYWNrZ3JvdW5kOiNmYWZhZmE7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yYWRpdXM6NHB4O21hcmdpbjowIDhweCAyNHB4IDA7cGFkZGluZzo4cHg7fVxuXHRkaXYubGF0ZXN0SXRlbXNDYXRlZ29yeUltYWdlIHt0ZXh0LWFsaWduOmNlbnRlcjt9XG5cdGRpdi5sYXRlc3RJdGVtc0NhdGVnb3J5SW1hZ2UgaW1nIHttYXJnaW46MCA4cHggMCAwO31cbmRpdi5sYXRlc3RJdGVtc0NhdGVnb3J5IGgyIHt9XG5kaXYubGF0ZXN0SXRlbXNDYXRlZ29yeSBwIHt9XG5cbi8qIFVzZXIgaW5mbyBibG9jayAqL1xuZGl2LmxhdGVzdEl0ZW1zVXNlciB7YmFja2dyb3VuZDojZmFmYWZhO2JvcmRlcjoxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjRweDttYXJnaW46MCA4cHggMjRweCAwO3BhZGRpbmc6OHB4O31cblx0ZGl2LmxhdGVzdEl0ZW1zVXNlciBpbWcge2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHg7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO21hcmdpbjowIDhweCAwIDA7Ym9yZGVyLXJhZGl1czo1MCU7fVxuXHRkaXYubGF0ZXN0SXRlbXNVc2VyIGgyIHt9XG5cdGRpdi5sYXRlc3RJdGVtc1VzZXIgcC5sYXRlc3RJdGVtc1VzZXJEZXNjcmlwdGlvbiB7cGFkZGluZzo0cHggMDt9XG5cdGRpdi5sYXRlc3RJdGVtc1VzZXIgcC5sYXRlc3RJdGVtc1VzZXJBZGRpdGlvbmFsSW5mbyB7cGFkZGluZzo0cHggMDttYXJnaW46OHB4IDAgMCAwO31cblx0XHRzcGFuLmxhdGVzdEl0ZW1zVXNlclVSTCB7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojNTU1O2Rpc3BsYXk6YmxvY2s7fVxuXHRcdHNwYW4ubGF0ZXN0SXRlbXNVc2VyRW1haWwge2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6IzU1NTtkaXNwbGF5OmJsb2NrO31cblxuLyogTGF0ZXN0IGl0ZW1zIGxpc3QgKi9cbmRpdi5sYXRlc3RJdGVtTGlzdCB7cGFkZGluZzowIDhweCA4cHggMDt9XG5cblxuXHRkaXYubGF0ZXN0SXRlbUhlYWRlciBoMy5sYXRlc3RJdGVtVGl0bGUge3BhZGRpbmc6MTBweCAwIDRweCAwO21hcmdpbjowO31cblxuc3Bhbi5sYXRlc3RJdGVtRGF0ZUNyZWF0ZWQge2NvbG9yOiM5OTk7Zm9udC1zaXplOjExcHg7fVxuXG5kaXYubGF0ZXN0SXRlbUJvZHkge3BhZGRpbmc6OHB4IDA7bWFyZ2luOjA7fVxuXG5kaXYubGF0ZXN0SXRlbUltYWdlQmxvY2sge3BhZGRpbmc6MDttYXJnaW46MDtmbG9hdDpsZWZ0O31cblx0c3Bhbi5sYXRlc3RJdGVtSW1hZ2Uge2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjAgOHB4IDhweCAwO31cblx0c3Bhbi5sYXRlc3RJdGVtSW1hZ2UgaW1nIHttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0bzt9XG5cdEBtZWRpYSBzY3JlZW4gYW5kICggbWF4LXdpZHRoOjYwMHB4ICl7XG5cdFx0ZGl2LmxhdGVzdEl0ZW1JbWFnZUJsb2NrIHtmbG9hdDpub25lO2Rpc3BsYXk6YmxvY2s7fVxuXHR9XG5cbmRpdi5sYXRlc3RJdGVtSW50cm9UZXh0IHtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDpub3JtYWw7bGluZS1oZWlnaHQ6aW5oZXJpdDtwYWRkaW5nOjRweCAwIDEycHggMDt9XG5cdGRpdi5sYXRlc3RJdGVtSW50cm9UZXh0IGltZyB7fVxuXG5kaXYubGF0ZXN0SXRlbUxpbmtzIHttYXJnaW46MCAwIDE2cHggMDtwYWRkaW5nOjA7fVxuXG5kaXYubGF0ZXN0SXRlbUNhdGVnb3J5IHtwYWRkaW5nOjRweCAwO31cblx0ZGl2LmxhdGVzdEl0ZW1DYXRlZ29yeSBzcGFuIHtmb250LXdlaWdodDpib2xkO2NvbG9yOiM1NTU7cGFkZGluZzowIDRweCAwIDA7fVxuXHRkaXYubGF0ZXN0SXRlbUNhdGVnb3J5IGEge31cblxuZGl2LmxhdGVzdEl0ZW1UYWdzQmxvY2sge3BhZGRpbmc6NHB4IDA7fVxuXHRkaXYubGF0ZXN0SXRlbVRhZ3NCbG9jayBzcGFuIHtmb250LXdlaWdodDpib2xkO2NvbG9yOiM1NTU7cGFkZGluZzowIDRweCAwIDA7fVxuXHRkaXYubGF0ZXN0SXRlbVRhZ3NCbG9jayB1bC5sYXRlc3RJdGVtVGFncyB7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MDttYXJnaW46MDtkaXNwbGF5OmlubGluZTt9XG5cdGRpdi5sYXRlc3RJdGVtVGFnc0Jsb2NrIHVsLmxhdGVzdEl0ZW1UYWdzIGxpIHtkaXNwbGF5OmlubGluZTtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowIDRweCAwIDA7bWFyZ2luOjA7dGV4dC1hbGlnbjpjZW50ZXI7fVxuXHRkaXYubGF0ZXN0SXRlbVRhZ3NCbG9jayB1bC5sYXRlc3RJdGVtVGFncyBsaSBhOmJlZm9yZSB7Y29udGVudDpcIiNcIjt9XG5cblxuLyogVmlkZW8gKi9cbmRpdi5sYXRlc3RJdGVtVmlkZW9CbG9jayB7bWFyZ2luOjAgMCAxNnB4IDA7cGFkZGluZzoxNnB4O2JhY2tncm91bmQ6IzAxMDEwMSB1cmwoLi4vaW1hZ2VzL3ZpZGVvYmcuZ2lmKSByZXBlYXQteCBib3R0b207fVxuXHRkaXYubGF0ZXN0SXRlbVZpZGVvQmxvY2sgc3Bhbi5sYXRlc3RJdGVtVmlkZW8ge2Rpc3BsYXk6YmxvY2s7fVxuXG4vKiBBbmNob3IgbGluayB0byBjb21tZW50cyAqL1xuZGl2LmxhdGVzdEl0ZW1Db21tZW50c0xpbmsge2Rpc3BsYXk6aW5saW5lO21hcmdpbjowIDhweCAwIDA7cGFkZGluZzowIDhweCAwIDA7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjO31cblxuXG4vKiBSZWFkIG1vcmUgbGluayAqL1xuZGl2LmxhdGVzdEl0ZW1SZWFkTW9yZSB7ZGlzcGxheTppbmxpbmU7fVxuXG5cbi8qIEl0ZW1zIHByZXNlbnRlZCBpbiBhIGxpc3QgKi9cbmgyLmxhdGVzdEl0ZW1UaXRsZUxpc3Qge3BhZGRpbmc6MnB4IDA7bWFyZ2luOjhweCAwIDJweCAwO2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjY2NjO31cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0TW9kdWxlcyAtIG1vZF9rMl9jb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmRpdi5rMkl0ZW1zQmxvY2sgdWwgbGkgZGl2Lm1vZHVsZUl0ZW1JbnRyb3RleHQge2Rpc3BsYXk6YmxvY2s7cGFkZGluZzo0cHggMDt9XG5kaXYuazJJdGVtc0Jsb2NrIHVsIGxpIGRpdi5tb2R1bGVJdGVtSW50cm90ZXh0IGEubW9kdWxlSXRlbUltYWdlIGltZyB7ZmxvYXQ6cmlnaHQ7bWFyZ2luOjJweCAwIDRweCA0cHg7cGFkZGluZzowO31cblxuXG5cdGRpdi5tb2R1bGVJdGVtRXh0cmFGaWVsZHMgdWwgbGkgc3Bhbi5tb2R1bGVJdGVtRXh0cmFGaWVsZHNMYWJlbCB7ZGlzcGxheTpibG9jaztmbG9hdDpsZWZ0O2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luOjAgNHB4IDAgMDt3aWR0aDozMCU7fVxuXG5cblxuZGl2LmsySXRlbXNCbG9jayB1bCBsaSBkaXYubW9kdWxlSXRlbVRhZ3MgYSB7cGFkZGluZzowIDJweDt9XG5cblxuZGl2LmsySXRlbXNCbG9jayB1bCBsaSBhLm1vZHVsZUl0ZW1Db21tZW50cyB7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6MCA0cHggMCAwO21hcmdpbjowIDhweCAwIDA7fVxuXG5kaXYuazJJdGVtc0Jsb2NrIHVsIGxpIHNwYW4ubW9kdWxlSXRlbUhpdHMge2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjYztwYWRkaW5nOjAgNHB4IDAgMDttYXJnaW46MCA4cHggMCAwO31cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdE1vZHVsZXMgLSBtb2RfazJfdG9vbHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4vKiAtLS0gQnJlYWRjcnVtYnMgLS0tICovXG5cbmRpdi5rMkJyZWFkY3J1bWJzQmxvY2sgc3Bhbi5iY1RpdGxlIHtwYWRkaW5nOjAgNHB4IDAgMDtjb2xvcjojOTk5O31cblxuZGl2LmsyQnJlYWRjcnVtYnNCbG9jayBzcGFuLmJjU2VwYXJhdG9yIHtwYWRkaW5nOjAgNHB4O2ZvbnQtc2l6ZToxNHB4O31cblxuLyogLS0tIENhbGVuZGFyIC0tLSAqL1xuZGl2LmsyQ2FsZW5kYXJCbG9jayB7aGVpZ2h0OjE5MHB4O21hcmdpbi1ib3R0b206OHB4O30gLyogdXNlIHRoaXMgaGVpZ2h0IHZhbHVlIHNvIHRoYXQgdGhlIGNhbGVuZGFyIGhlaWdodCB3b24ndCBjaGFuZ2Ugb24gTW9udGggY2hhbmdlIHZpYSBhamF4ICovXG5kaXYuazJDYWxlbmRhckxvYWRlciB7YmFja2dyb3VuZDojZmZmIHVybCguLi9pbWFnZXMvbG9hZGVycy9jYWxlbmRhci5naWYpIG5vLXJlcGVhdCA1MCUgNTAlO31cbnRhYmxlLmNhbGVuZGFyIHttYXJnaW46MCBhdXRvO2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7fVxudGFibGUuY2FsZW5kYXIgdHIgdGQge3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtwYWRkaW5nOjJweDtib3JkZXI6MXB4IHNvbGlkICNmNGY0ZjQ7YmFja2dyb3VuZDojZmZmO31cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyTmF2TW9udGhQcmV2IHtiYWNrZ3JvdW5kOiNmYWZhZmE7dGV4dC1hbGlnbjpsZWZ0O31cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyTmF2TW9udGhQcmV2IGEge2ZvbnQtc2l6ZToyMHB4O3RleHQtZGVjb3JhdGlvbjpub25lO31cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyTmF2TW9udGhQcmV2IGE6aG92ZXIge2ZvbnQtc2l6ZToyMHB4O3RleHQtZGVjb3JhdGlvbjpub25lO31cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyQ3VycmVudE1vbnRoIHtiYWNrZ3JvdW5kOiNmYWZhZmE7fVxudGFibGUuY2FsZW5kYXIgdHIgdGQuY2FsZW5kYXJOYXZNb250aE5leHQge2JhY2tncm91bmQ6I2ZhZmFmYTt0ZXh0LWFsaWduOnJpZ2h0O31cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyTmF2TW9udGhOZXh0IGEge2ZvbnQtc2l6ZToyMHB4O3RleHQtZGVjb3JhdGlvbjpub25lO31cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyTmF2TW9udGhOZXh0IGE6aG92ZXIge2ZvbnQtc2l6ZToyMHB4O3RleHQtZGVjb3JhdGlvbjpub25lO31cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyRGF5TmFtZSB7YmFja2dyb3VuZDojZTllOWU5O2ZvbnQtc2l6ZToxMXB4O3dpZHRoOjE0LjIlO31cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyRGF0ZUVtcHR5IHtiYWNrZ3JvdW5kOiNmYmZiZmI7fVxuXG50YWJsZS5jYWxlbmRhciB0ciB0ZC5jYWxlbmRhckRhdGVMaW5rZWQge3BhZGRpbmc6MDt9XG50YWJsZS5jYWxlbmRhciB0ciB0ZC5jYWxlbmRhckRhdGVMaW5rZWQgYSB7ZGlzcGxheTpibG9jaztwYWRkaW5nOjJweDt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kOiNmYWZhZmE7fVxudGFibGUuY2FsZW5kYXIgdHIgdGQuY2FsZW5kYXJEYXRlTGlua2VkIGE6aG92ZXIge2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojMTM1Y2FlO2NvbG9yOiNmZmY7cGFkZGluZzoycHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fVxudGFibGUuY2FsZW5kYXIgdHIgdGQuY2FsZW5kYXJUb2RheSB7YmFja2dyb3VuZDojMTM1Y2FlO2NvbG9yOiNmZmY7fVxudGFibGUuY2FsZW5kYXIgdHIgdGQuY2FsZW5kYXJUb2RheUxpbmtlZCB7YmFja2dyb3VuZDojMTM1Y2FlO2NvbG9yOiNmZmY7cGFkZGluZzowO31cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyVG9kYXlMaW5rZWQgYSB7ZGlzcGxheTpibG9jaztwYWRkaW5nOjJweDtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO31cbnRhYmxlLmNhbGVuZGFyIHRyIHRkLmNhbGVuZGFyVG9kYXlMaW5rZWQgYTpob3ZlciB7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kOiNCRkQ5RkY7cGFkZGluZzoycHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fVxuXG4vKiAtLS0gQ2F0ZWdvcnkgVHJlZSBTZWxlY3QgQm94IC0tLSAqL1xuZGl2LmsyQ2F0ZWdvcnlTZWxlY3RCbG9jayB7fVxuZGl2LmsyQ2F0ZWdvcnlTZWxlY3RCbG9jayBmb3JtIHNlbGVjdCB7d2lkdGg6YXV0bzt9XG5cbmRpdi5rMkNhdGVnb3JpZXNMaXN0QmxvY2sgdWwgbGkgYSBzcGFuLmNhdFRpdGxlIHtwYWRkaW5nLXJpZ2h0OjRweDt9XG5cblxuZGl2LmsyQ2F0ZWdvcmllc0xpc3RCbG9jayB1bCBsaS5hY3RpdmVDYXRlZ29yeSBhIHtmb250LXdlaWdodDpib2xkO31cblxuXG5cbi8qIC0tLSBTZWFyY2ggQm94IC0tLSAqL1xuXG5kaXYuazJTZWFyY2hCbG9jayBmb3JtIGlucHV0LmsyU2VhcmNoTG9hZGluZyB7YmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL2xvYWRlcnMvc2VhcmNoLmdpZikgbm8tcmVwZWF0IDEwMCUgNTAlO31cbmRpdi5rMlNlYXJjaEJsb2NrIGRpdi5rMkxpdmVTZWFyY2hSZXN1bHRzIHtkaXNwbGF5Om5vbmU7YmFja2dyb3VuZDojZmZmO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6OTk7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO21hcmdpbi10b3A6LTFweDt9XG5cdC8qIExpdmUgc2VhcmNoIHJlc3VsdHMgKGZldGNoZWQgdmlhIGFqYXgpICovXG5cdGRpdi5rMlNlYXJjaEJsb2NrIGRpdi5rMkxpdmVTZWFyY2hSZXN1bHRzIHVsLmxpdmVTZWFyY2hSZXN1bHRzIHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO31cblx0ZGl2LmsyU2VhcmNoQmxvY2sgZGl2LmsyTGl2ZVNlYXJjaFJlc3VsdHMgdWwubGl2ZVNlYXJjaFJlc3VsdHMgbGkge2JvcmRlcjpub25lO21hcmdpbjowO3BhZGRpbmc6MDt9XG5cdGRpdi5rMlNlYXJjaEJsb2NrIGRpdi5rMkxpdmVTZWFyY2hSZXN1bHRzIHVsLmxpdmVTZWFyY2hSZXN1bHRzIGxpIGEge2Rpc3BsYXk6YmxvY2s7cGFkZGluZzoxcHggMnB4O2JvcmRlci10b3A6MXB4IGRvdHRlZCAjZGRkO31cblx0ZGl2LmsyU2VhcmNoQmxvY2sgZGl2LmsyTGl2ZVNlYXJjaFJlc3VsdHMgdWwubGl2ZVNlYXJjaFJlc3VsdHMgbGkgYTpob3ZlciB7YmFja2dyb3VuZDojZmZmZmYwO31cblxuLyogLS0tIFRhZyBDbG91ZCAtLS0gKi9cbmRpdi5rMlRhZ0Nsb3VkQmxvY2sge3BhZGRpbmc6OHB4IDA7fVxuZGl2LmsyVGFnQ2xvdWRCbG9jayBhIHtwYWRkaW5nOjRweDtmbG9hdDpsZWZ0O2Rpc3BsYXk6YmxvY2s7fVxuZGl2LmsyVGFnQ2xvdWRCbG9jayBhOmhvdmVyIHtwYWRkaW5nOjRweDtmbG9hdDpsZWZ0O2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojMTM1Y2FlO2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fVxuXG4vKiAtLS0gQ3VzdG9tIENvZGUgLS0tICovXG5kaXYuazJDdXN0b21Db2RlQmxvY2sge31cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdE1vZHVsZXMgLSBtb2RfazJfdXNlciAobW9kX2syX2xvZ2luIGlzIHJlbW92ZWQgc2luY2UgdjIuNi54KVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cblxuXHRkaXYuazJMb2dpbkJsb2NrIGZpZWxkc2V0LmlucHV0IHttYXJnaW46MDtwYWRkaW5nOjAgMCA4cHggMDt9XG5cdGRpdi5rMkxvZ2luQmxvY2sgZmllbGRzZXQuaW5wdXQgcCB7bWFyZ2luOjA7cGFkZGluZzowIDAgNHB4IDA7fVxuXHRkaXYuazJMb2dpbkJsb2NrIGZpZWxkc2V0LmlucHV0IHAgbGFiZWwge2Rpc3BsYXk6YmxvY2s7fVxuXHRkaXYuazJMb2dpbkJsb2NrIGZpZWxkc2V0LmlucHV0IHAgaW5wdXQge2Rpc3BsYXk6YmxvY2s7fVxuXHRkaXYuazJMb2dpbkJsb2NrIGZpZWxkc2V0LmlucHV0IHAjZm9ybS1sb2dpbi1yZW1lbWJlciBsYWJlbCxcblx0ZGl2LmsyTG9naW5CbG9jayBmaWVsZHNldC5pbnB1dCBwI2Zvcm0tbG9naW4tcmVtZW1iZXIgaW5wdXQge2Rpc3BsYXk6aW5saW5lO31cblx0ZGl2LmsyTG9naW5CbG9jayBmaWVsZHNldC5pbnB1dCBpbnB1dC5idXR0b24ge31cblxuXG5cdGRpdi5rMkxvZ2luQmxvY2sgcC5wb3N0VGV4dCB7fVxuXG5cdGEudWJVc2VyRmVlZEljb24sXG5cdGEudWJVc2VyRmVlZEljb246aG92ZXIge2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIDJweCAwIDA7cGFkZGluZzowO2ZvbnQtc2l6ZToxNXB4O31cblx0YS51YlVzZXJGZWVkSWNvbiBzcGFuLFxuXHRhLnViVXNlckZlZWRJY29uOmhvdmVyIHNwYW4ge2Rpc3BsYXk6bm9uZTt9XG5cdGEudWJVc2VyVVJMLFxuXHRhLnViVXNlclVSTDpob3ZlciB7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjAgMnB4IDAgMDtwYWRkaW5nOjA7Zm9udC1zaXplOjE1cHg7fVxuXHRhLnViVXNlclVSTCBzcGFuLFxuXHRhLnViVXNlclVSTDpob3ZlciBzcGFuIHtkaXNwbGF5Om5vbmU7fVxuXHRzcGFuLnViVXNlckVtYWlsIHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MCAycHggMCAwO3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW47Zm9udC1zaXplOjE1cHg7fVxuXHRzcGFuLnViVXNlckVtYWlsIGEge2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowO3BhZGRpbmc6MDt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O3RleHQtaW5kZW50Oi05OTk5cHg7fVxuIiwiXG4vLyBDb250YWRvclxuZGl2I2NvbnRhZG9ye1xuQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMiwwKTtcbnBhZGRpbmc6MTBweCAwOyBcbn1cbmRpdiNjb250YWRvciBhe1xuZGlzcGxheTpub25lO1xufVxuLnZyb3csLnZyb3dkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi52cm93LC52cm93ZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5cblxuLnZyb3cge2NvbG9yOiAjMTgzODZiO2JhY2tncm91bmQtY29sb3I6IHdoaXRlO2ZvbnQtc2l6ZTogMTRweDtmb250LXdlaWdodDogYm9sZDtwYWRkaW5nOiA5cHggMjRweDt9XG5cbi52cm93ZCB7XG4gICAgY29sb3I6ICNmYWQ3MDE7XG4gICAgYm9yZGVyOiBzb2xpZCAycHggd2hpdGU7XG4gICAgcGFkZGluZzogN3B4IDI3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG59XG5cbi5pZGlvbWEgYSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufSIsIi5ibG9xdWVfaW52ZXN0aWdhZG9yIHtcbiAgICB3aWR0aDogMzMlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIG1hcmdpbjogMTRweCAwO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY29udGVuZWRvci5pbnZlc3RpZ2Fkb3JlcyBoNSB7XG4gICAgbWFyZ2luOiAxNXB4IDA7XG59XG5cbmltZy5mb3RvcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5ub21icmVpbntcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmctdG9wOiA3cHg7XG59IiwiLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgbm9ybWFsaXplKCkgbWl4aW4uXG5AZnVuY3Rpb24gX25vcm1hbGl6ZS1pbmNsdWRlKCRzZWN0aW9uLCAkZXhjbHVkZTogbnVsbCkge1xuICAvLyBJbml0aWFsaXplIHRoZSBnbG9iYWwgdmFyaWFibGVzIG5lZWRlZCBieSB0aGlzIGZ1bmN0aW9uLlxuICBAaWYgbm90IGdsb2JhbF92YXJpYWJsZV9leGlzdHMoX25vcm1hbGl6ZS1pbmNsdWRlKSB7XG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogKCkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiAoKSAhZ2xvYmFsO1xuICB9XG4gIC8vIFNpbmNlIHdlIGFyZSBnaXZlbiAyIHBhcmFtZXRlcnMsIHNldCB0aGUgZ2xvYmFsIHZhcmlhYmxlcy5cbiAgQGlmICRleGNsdWRlICE9IG51bGwge1xuICAgICRpbmNsdWRlOiAkc2VjdGlvbjtcbiAgICAvLyBTYXNzIGRvZXNuJ3QgaGF2ZSBzdGF0aWMgdmFyaWFibGVzLCBzbyB0aGUgd29yay1hcm91bmQgaXMgdG8gc3R1ZmYgdGhlc2VcbiAgICAvLyB2YWx1ZXMgaW50byBnbG9iYWwgdmFyaWFibGVzIHNvIHdlIGNhbiBhY2Nlc3MgdGhlbSBpbiBmdXR1cmUgY2FsbHMuXG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogaWYodHlwZS1vZigkaW5jbHVkZSkgPT0gJ2xpc3QnLCAkaW5jbHVkZSwgKCRpbmNsdWRlKSkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiBpZih0eXBlLW9mKCRleGNsdWRlKSA9PSAnbGlzdCcsICRleGNsdWRlLCAoJGV4Y2x1ZGUpKSAhZ2xvYmFsO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICRzZWN0aW9uIGlzIGluIHRoZSAkaW5jbHVkZSBsaXN0LlxuICBAaWYgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgJHNlY3Rpb24pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gSWYgJGluY2x1ZGUgaXMgc2V0IHRvIChhbGwpLCBtYWtlIHN1cmUgJHNlY3Rpb24gaXMgbm90IGluICRleGNsdWRlLlxuICBAZWxzZSBpZiBub3QgaW5kZXgoJF9ub3JtYWxpemUtZXhjbHVkZSwgJHNlY3Rpb24pIGFuZCBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCBhbGwpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZSgkaW5jbHVkZTogKGFsbCksICRleGNsdWRlOiAoKSkge1xuICAvLyBJbml0aWFsaXplIHRoZSBoZWxwZXIgZnVuY3Rpb24gYnkgcGFzc2luZyBpdCB0aGlzIG1peGluJ3MgcGFyYW1ldGVycy5cbiAgJGluaXQ6IF9ub3JtYWxpemUtaW5jbHVkZSgkaW5jbHVkZSwgJGV4Y2x1ZGUpO1xuXG4gIC8vIElmIHdlJ3ZlIGN1c3RvbWl6ZWQgYW55IGZvbnQgdmFyaWFibGVzLCB3ZSdsbCBuZWVkIGV4dHJhIHByb3BlcnRpZXMuXG4gIEBpZiAkYmFzZS1mb250LXNpemUgIT0gMTZweFxuICAgIG9yICRiYXNlLWxpbmUtaGVpZ2h0ICE9IDI0cHhcbiAgICBvciAkYmFzZS11bml0ICE9ICdlbSdcbiAgICBvciAkaDEtZm9udC1zaXplICE9IDIgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDItZm9udC1zaXplICE9IDEuNSAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDMtZm9udC1zaXplICE9IDEuMTcgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDQtZm9udC1zaXplICE9IDEgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDUtZm9udC1zaXplICE9IDAuODMgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDYtZm9udC1zaXplICE9IDAuNjcgKiAkYmFzZS1mb250LXNpemUge1xuICAgICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZG9jdW1lbnQpIHtcbiAgICAvKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5cbiAgICBodG1sIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLy8gQ29ycmVjdCBvbGQgYnJvd3NlciBidWcgdGhhdCBwcmV2ZW50ZWQgYWNjZXNzaWJsZSByZXNpemluZyBvZiB0ZXh0XG4gICAgICAgIC8vIHdoZW4gcm9vdCBmb250LXNpemUgaXMgc2V0IHdpdGggcHggb3IgZW0uXG4gICAgICAgIGZvbnQtc2l6ZTogKCRiYXNlLWZvbnQtc2l6ZSAvIDE2cHgpICogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNlY3Rpb25zKSB7XG4gICAgLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGFydGljbGUsXG4gICAgYXNpZGUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBuYXYsXG4gICAgc2VjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiAqL1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMC42N2VtIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIGgyIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgyLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgzLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg0LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg1IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg1LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg2IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg2LWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShncm91cGluZykge1xuICAgIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cblxuICAgICAgZGwsXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICovXG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGZpZ2NhcHRpb24sXG4gICAgZmlndXJlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cblxuICAgIGZpZ3VyZSB7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDFlbSAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuXG4gICAgaHIge1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIG1haW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBwLFxuICAgICAgcHJlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgcHJlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGxpbmtzKSB7XG4gICAgLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGE6YWN0aXZlLFxuICAgIGE6aG92ZXIge1xuICAgICAgb3V0bGluZS13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHRleHQpIHtcbiAgICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGFiYnJbdGl0bGVdIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgY29kZSxcbiAgICBrYmQsXG4gICAgc2FtcCB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuXG4gICAgZGZuIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtYXJrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1YixcbiAgICBzdXAge1xuICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBzdWIge1xuICAgICAgYm90dG9tOiAtMC4yNWVtO1xuICAgIH1cblxuICAgIHN1cCB7XG4gICAgICB0b3A6IC0wLjVlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGVtYmVkZGVkKSB7XG4gICAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGF1ZGlvLFxuICAgIHZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuXG4gICAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgc3ZnOm5vdCg6cm9vdCkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGZvcm1zKSB7XG4gICAgLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgb3B0Z3JvdXAsXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgbWFyZ2luOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBidXR0b24ge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIHNlbGVjdCB7IC8qIDEgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cblxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi9cblxuICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuXG4gICAgaW5wdXQge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi9cblxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gICAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBmaWVsZHNldCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShpbnRlcmFjdGl2ZSkge1xuICAgIC8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKlxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICAgKiAyLiBTZXQgY29uc2lzdGVudCBzcGFjZSBmb3IgdGhlIGxpc3Qgc3R5bGUgaW1hZ2UuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTsgLyogMSAqL1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDsgLyogMiAqL1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgbWVudSAmLFxuICAgICAgICBvbCAmLFxuICAgICAgICB1bCAmIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNjcmlwdGluZykge1xuICAgIC8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZW1wbGF0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaGlkZGVuKSB7XG4gICAgLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFtoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gVmFyaWFibGVzXG4vL1xuLy8gWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB2YWx1ZXMgYnkgc2V0dGluZyB0aGUgdmFyaWFibGVzIGluIHlvdXIgU2Fzc1xuLy8gYmVmb3JlIGltcG9ydGluZyB0aGUgbm9ybWFsaXplLXNjc3MgbGlicmFyeS5cblxuLy8gVGhlIGZvbnQgc2l6ZSBzZXQgb24gdGhlIHJvb3QgaHRtbCBlbGVtZW50LlxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgYmFzZSBsaW5lIGhlaWdodCBkZXRlcm1pbmVzIHRoZSBiYXNpYyB1bml0IG9mIHZlcnRpY2FsIHJoeXRobS5cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgbGVuZ3RoIHVuaXQgaW4gd2hpY2ggdG8gb3V0cHV0IHZlcnRpY2FsIHJoeXRobSB2YWx1ZXMuXG4vLyBTdXBwb3J0ZWQgdmFsdWVzOiBweCwgZW0sIHJlbS5cbiRiYXNlLXVuaXQ6ICdlbScgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5LlxuJGJhc2UtZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb250IHNpemVzIGZvciBoMS1oNi5cbiRoMS1mb250LXNpemU6IDIgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAxLjUgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogMS4xNyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IDEgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAwLjgzICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMC42NyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8gVGhlIGFtb3VudCBsaXN0cyBhbmQgYmxvY2txdW90ZXMgYXJlIGluZGVudGVkLlxuJGluZGVudC1hbW91bnQ6IDQwcHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgY29udHJvbHMgd2hldGhlciBub3JtYWxpemUtc2NzcyB3aWxsIG91dHB1dFxuLy8gZm9udC1zaXplcywgbGluZS1oZWlnaHRzIGFuZCBibG9jay1sZXZlbCB0b3AvYm90dG9tIG1hcmdpbnMgdGhhdCBmb3JtIGEgYmFzaWNcbi8vIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgcGFnZSwgd2hpY2ggZGlmZmVycyBmcm9tIHRoZSBvcmlnaW5hbCBOb3JtYWxpemUuY3NzLlxuLy8gSG93ZXZlciwgY2hhbmdpbmcgYW55IG9mIHRoZSB2YXJpYWJsZXMgYWJvdmUgd2lsbCBjYXVzZVxuLy8gJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0gdG8gYmUgYXV0b21hdGljYWxseSBzZXQgdG8gdHJ1ZS5cbiRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxuLy8gQ1NTLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgcm9idXN0IHNvbHV0aW9uLCBsb29rIGF0IHRoZSBleGNlbGxlbnQgVHlwZXlcbi8vIGxpYnJhcnkuIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwdGFyYW50by90eXBleVxuXG5AZnVuY3Rpb24gbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplLCAkdW5pdDogJGJhc2UtdW5pdCkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9IHB4IHtcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBAaWYgJHVuaXQgPT0gcmVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSBlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcbiAgfVxuICBAZWxzZSB7IC8vICR1bml0ID09IHB4XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbn1cblxuQG1peGluIG5vcm1hbGl6ZS1mb250LXNpemUoJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XG4gICRzZXA6IHNwYWNlO1xuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcbiAgfVxuXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWUtbGlzdCB7XG4gICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICR2YWx1ZSAhPSAwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcbiAgICB9XG4gICAgJG5vcm1hbGl6ZWQtdmFsdWVzOiBhcHBlbmQoJG5vcm1hbGl6ZWQtdmFsdWVzLCAkdmFsdWUsICRzZXApO1xuICB9XG4gICN7JHByb3BlcnR5fTogJG5vcm1hbGl6ZWQtdmFsdWVzO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLW1hcmdpbigkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKG1hcmdpbiwgJHZhbHVlcywgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkZm9udC1zaXplLCAkbWluLWxpbmUtcGFkZGluZzogMnB4KSB7XG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xuICAvLyBJZiBsaW5lcyBhcmUgY3JhbXBlZCBpbmNsdWRlIHNvbWUgZXh0cmEgbGVhZGluZy5cbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xuICAgICRsaW5lczogJGxpbmVzICsgMTtcbiAgfVxuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKGxpbmUtaGVpZ2h0LCAkbGluZXMsICRmb250LXNpemUpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7ICBcbiAgICB9XG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xuICB9XG4gIEByZXR1cm4gJGhlYWRlci1zdHlsZXM7XG59XG5cbi8vIElmIGl0IGV4aXN0cyAkaGVhZGVycy1zaXplcyBpcyB1c2VkIHRvIGJ1aWxkICRoZWFkZXItc3R5bGVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xuICAkaGVhZGVyLXN0eWxlczogYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcyk7XG59XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZW9jcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQc2V1ZG8gY29udGVudCBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICAvL21hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2l0YXRpb25zXG4gIGNpdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIGN1cnNvcjogaGVscDtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcblxuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIC8vIFVzZSB0byByZW1vdmUgdGhlIGJ1bGxldHMgZnJvbSBhbiB1bm9yZGVyZWQgbGlzdFxuICAubm8tYnVsbGV0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudCB7XG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAudGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZS1hbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBAaWYgJHByaW50LWhyZWZzIHtcbiAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgLy8gSGVscGVyIHRvIHJlLWFsbG93IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgY2VydGFpbiBlbGVtZW50cyAoZS5nLiBwcmUsIGJsb2NrcXVvdGUsIHRyKVxuICAgIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b3AtYmFyXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXIuIFRoaXMgY29sb3IgYWxzbyBjYXNjYWRlcyB0byBtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgQ29sb3Jcbi8vJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igc3VibWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLiBVc2VmdWxsIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyB0cmFuc3BhcmVudC5cbi8vLyBAdHlwZSBDb2xvclxuLy8kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBmb3IgdGhlIHRvcCBiYXIgdGl0bGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBgPGlucHV0PmAgZWxlbWVudHMgaW5zaWRlIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHRvcCBiYXIgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0b3AgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiB0b3AtYmFyLWNvbnRhaW5lciB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAvLyBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgLy8gYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIGRpZmZlcm50IGZyb20gJHRvcGJhci1iYWNrZ3JvdW5kLXN1Ym1lbnVcbiAgQGlmICgkdG9wYmFyLWJhY2tncm91bmQgIT0gJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQpIHtcbiAgICB1bCB1bCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0cmFpbiB3aWR0aCBvZiBpbnB1dHMgYnkgZGVmYXVsdCB0byBtYWtlIHRoZW0gZWFzaWVyIHRvIGFycmFuZ2VcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogJHRvcGJhci1pbnB1dC13aWR0aDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgfVxuXG4gIC8vIFRoZSBhYm92ZSBzdHlsZXMgc2hvdWxkbid0IGFwcGx5IHRvIGlucHV0IGdyb3VwIGZpZWxkc1xuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICB9XG5cbiAgaW5wdXQuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXG5AbWl4aW4gdG9wLWJhci11bnN0YWNrIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcblxuICAgIC8vIFN0YWNrIG9uIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBpbmNsdWRlIHRvcC1iYXItdW5zdGFjaztcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAmLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWItc2VjdGlvbnNcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBtYXJnaW46ICR0b3BiYXItdGl0bGUtc3BhY2luZztcbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG5cbiAgICAgIC5tZW51LWljb24ge1xuICAgICAgICBib3R0b206IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcblxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgJGZvcm0tc3BhY2luZyAqIDEuNSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyKTtcblxuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peCgkYmFja2dyb3VuZCwgJHdoaXRlLCAkYmFja2dyb3VuZC1saWdodGVuKTtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG5cbiAgQGlmICh0eXBlLW9mKCRidXR0b24tcGFkZGluZykgPT0gJ21hcCcpIHtcbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gJGJ1dHRvbi1wYWRkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIH1cblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgdHJhbnNpdGlvbjogJGJ1dHRvbi10cmFuc2l0aW9uO1xuXG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLFxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZShcbiAgJGNvbG9yOiAkcHJpbWFyeS1jb2xvcixcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLCBcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRiYWNrZ3JvdW5kIFskcHJpbWFyeS1jb2xvcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpO1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb2xsb3cgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRjb2xvciwgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b24tZ3JvdXBcbi8vLy9cblxuLy8vIE1hcmdpbiBmb3IgYnV0dG9uIGdyb3Vwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJyAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGJ1dHRvbnMgdGhhdCBjYW4gYmUgaW4gYW4gZXZlbi13aWR0aCBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERldGVybWluZXMgaWYgJGJ1dHRvbi1yYWRpdXMgaXMgYXBwbGllZCB0byBlYWNoIGJ1dHRvbiBvciB0aGUgYnV0dG9uIGdyb3VwIGFzIGEgd2hvbGUuIFVzZSAkZ2xvYmFsLXJhZGl1cyBpbiBfc2V0dGluZ3Muc2NzcyB0byBjaGFuZ2UgcmFkaXVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZ1xuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gICN7JGNoaWxkLXNlbGVjdG9yfSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICB9XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmcsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRzcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIE9uZSBjaGlsZFxuICAgICAgJjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCVcbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxIC8gJGkpfSAtICN7JHNwYWNpbmd9KTtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nICogLSRidXR0b25ncm91cC1leHBhbmQtbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC11bnN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24tZ3JvdXAge1xuICAuYnV0dG9uLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggR3JvdXBcbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtZWxlbWVudC1uZXN0aW5nXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYW4gYWNjb3JkaW9uIGdyb3VwLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBhY2NvcmRpb24gdGl0bGVzLlxuLy8vIEB0eXBlIE51bWJlclxuLy8kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaXN0IGl0ZW0gd2l0aGluIGFuIGFjY29yZGlvbiB1bC5cbkBtaXhpbiBhY2NvcmRpb24taXRlbSB7XG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZyxcbiAgLy8kZm9udC1zaXplOiAkYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3IsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcblxuICAvL2ZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDEzJztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvbi1tZW51XG4vLy8vXG5cbi8vLyBTZXRzIGlmIGFjY29yZGlvbiBtZW51cyBoYXZlIHRoZSBkZWZhdWx0IGFycm93IHN0eWxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG4gIEBpZiAkYWNjb3JkaW9ubWVudS1hcnJvd3Mge1xuICAgIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICRkb3JhZG8gIWRlZmF1bHQ7IC8vJHdoaXRlIFxuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFuIGhvdmVyZWQgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgZm9yIGJvcmRlcmVkIG1lbnVcbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtYm9yZGVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIE1lbnUuXG5AbWl4aW4gbWVudS1iYXNlIHtcbiAgbWFyZ2luOiAkbWVudS1tYXJnaW47XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zIGFyZSB0YWJsZSBjZWxsIHRvIGFsbG93IGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgPiBsaSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgbGluZSBoZWlnaHQgdG8gbWFrZSB0aGUgaGVpZ2h0IG9mIHRoZSBvdmVyYWxsIGl0ZW0gZWFzaWVyIHRvIGNhbGN1bGF0ZVxuICA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMS4yNXJlbSAxLjJyZW07Ly8kbWVudS1pdGVtLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICA+IGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB9XG5cbiAgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgICA+IGxpIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgID4gbGkge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgPiBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgID4gbGkgID4gYSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgID4gbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51LiBTZXQgdG8gYG51bGxgIHRvIGRvIG5vdCBnZW5lcmF0ZSBzdHlsZXMgZm9yIGRpcmVjdGlvbi5cbkBtaXhpbiBtZW51LXNpbXBsZSgkZGlyOiAkZ2xvYmFsLWxlZnQpIHtcbiAgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIEBpZiAkZGlyICE9IG51bGwge1xuICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlLWRpcmVjdGlvbigkZGlyKTtcbiAgfVxufVxuXG4vLy8gRGlyZWN0aW9uIG1vZGlmaWVyIGZvciBhIHNpbXBsZSBNZW51XG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51XG5AbWl4aW4gbWVudS1zaW1wbGUtZGlyZWN0aW9uKCRkaXI6ICRnbG9iYWwtbGVmdCkge1xuICAkbm8tbWFyZ2luLWRpcjogJGRpcjtcbiAgJG1hcmdpbi1kaXI6IGRpcmVjdGlvbi1vcHBvc2l0ZSgkZGlyKTtcblxuICBsaSB7XG4gICAgbWFyZ2luLSN7JG5vLW1hcmdpbi1kaXJ9OiAwO1xuICAgIG1hcmdpbi0jeyRtYXJnaW4tZGlyfTogZ2V0LXNpZGUoJG1lbnUtaXRlbS1wYWRkaW5nLCAkbWFyZ2luLWRpcik7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG5lc3RlZCBNZW51LCBieSBhZGRpbmcgYG1hcmdpbi1sZWZ0YCB0byB0aGUgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkcGFkZGluZyBbYXV0b10gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbkBtaXhpbiBtZW51LW5lc3RlZCgkbWFyZ2luOiAkbWVudS1tYXJnaW4tbmVzdGVkKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRtYXJnaW47XG59XG5cbi8vLyBBZGRzIHN1cHBvcnQgZm9yIGljb25zIHRvIE1lbnUgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkcG9zaXRpb24gW3NpZGVdIC0gUG9zaXRpb25pbmcgZm9yIGljb25zLiBDYW4gYmUgYHNpZGVgIChsZWZ0LCBvciByaWdodCBvbiBSVEwpIG9yIGB0b3BgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCB0aGUgc2hhcmVkIENTUyBiZXR3ZWVuIHNpZGUtIGFuZCB0b3AtYWxpZ25lZCBpY29ucyBmcm9tIGJlaW5nIHByaW50ZWQuIFNldCB0aGlzIHRvIGBmYWxzZWAgaWYgeW91J3JlIGNhbGxpbmcgdGhlIG1peGluIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIGVsZW1lbnQuXG5AbWl4aW4gbWVudS1pY29ucygkcG9zaXRpb246IHNpZGUsICRiYXNlOiB0cnVlKSB7XG4gIEBpZiAkYmFzZSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgaW1nLFxuICAgICAgICBpLFxuICAgICAgICBzdmcge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICArIHNwYW4ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBvc2l0aW9uID09IHNpZGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1lbnUtaWNvbi1zcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRtZW51LWljb24tc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWVudS1pY29uLXNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHBhZGRpbmc6ICRtZW51LWl0ZW0tcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcbiAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuXG4gICAgLy8gRGVmYXVsdCBvcmllbnRhdGlvbjogaG9yaXpvbnRhbFxuICAgICYsICYuaG9yaXpvbnRhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIG1vZGlmaWVyIGZvciBob3Jpem9udGFsIG9yaWVudGF0aW9uXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBvcmllbnRhdGlvbiBtb2RpZmllclxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiBmYWxzZSkge1xuICAgICAgJi4jeyQtemYtc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcblxuICAgICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGUtZGlyZWN0aW9uKCRnbG9iYWwtcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgICAgICA+IGxpIHtcbiAgICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIGljb25zXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zKHRvcCwgJGJhc2U6IGZhbHNlKTtcbiAgICAgIC8vIE1ha2UgdmVydGljYWwgbWVudSB3aXRoIGljb25zIG9uIHRvcCB3b3JrXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgYSA+IHNwYW4ge1xuICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZG9yYWRvO1xuICAgICBjb2xvcjogJGF6dWwtYmFzZTtcbiAgICB9XG5cbiAgICAvLyBNZW51IHdpdGggYm9yZGVyXG4gICAgJi5tZW51LWJvcmRlcmVkIHtcbiAgICAgIGxpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG1lbnUtYm9yZGVyO1xuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWVudSB3aXRoIGJhY2tncm91bmQgaG92ZXJcbiAgICAmLm1lbnUtaG92ZXIge1xuICAgICAgbGk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtdGV4dCB7XG4gICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICB9XG5cbiAgLy8gQWxpZ24gY2VudGVyXG4gIC5tZW51LWNlbnRlcmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICA+IC5tZW51IHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBjZW50ZXIsICR5OiB0b3ApO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUtaWNvbiB7XG4gIC5tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFwcGxpZWQgdG8gbmVzdGVkIDx1bD5zXG4gIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2luZyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XG4gICAgfVxuICB9XG5cbiAgLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgQGlmICRkcmlsbGRvd24tYXJyb3dzIHtcbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcblxuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJGRyb3Bkb3duLXdpZHRoO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcblxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlcjogJGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGRyb3Bkb3duLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG5cbiAgZm9udC1zaXplOiAkZHJvcGRvd24tZm9udC1zaXplO1xuXG4gICYuaXMtb3BlbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93biB7XG4gIC5kcm9wZG93bi1wYW5lIHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcbiAgICAuZHJvcGRvd24tcGFuZS4jeyRuYW1lfSB7XG4gICAgICB3aWR0aDogJHNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XG4vLy8vXG5cbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG5AbWl4aW4gbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICB9XG5cbiAgJi5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cbn1cblxuQG1peGluIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgPiBsaS5vcGVucy1sZWZ0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogMS41cmVtO1xuICAgICAgfVxuXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkZHJvcGRvd25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1sZWZ0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLXJpZ2h0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSBsZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudSB7XG4gIC5kcm9wZG93bi5tZW51IHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIH1cblxuICAgIC5uby1qcyAmIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplO1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG5cbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1pbi13aWR0aDogJGRyb3Bkb3dubWVudS1taW4td2lkdGg7XG5cbiAgIC8vIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGdyaXM7XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJiwgLy8gd2h5IGlzIHRoaXMgbGluZSBuZWVkZWQ/IE9wZW5pbmcgaXMgaGFuZGxlZCBieSBKUyBhbmQgdGhpcyBjYXVzZXMgc29tZSB1Z2x5IGZsaWNrZXJpbmcgd2hlbiB0aGUgc3ViIGlzIHJlLXBvc2l0aW9uZWQgYXV0b21hdGljYWxseS4uLlxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcGFnaW5hdGlvblxuLy8vL1xuXG4vLy8gRm9udCBzaXplIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBvZiB0aGUgcGFnaW5hdGlvbiBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBlbGxpcHNpcyBpbiBhIHBhZ2luYXRpb24gbWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIElmIGBmYWxzZWAsIGRvbid0IGRpc3BsYXkgcGFnZSBudW1iZXIgbGlua3Mgb24gbW9iaWxlLCBvbmx5IG5leHQvcHJldmlvdXMgbGlua3Ncbi8vLyBhbmQgb3B0aW9uYWxseSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXkgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgb24gbW9iaWxlIGV2ZW4gaWYgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4vLy8gVGhpcyBwYXJhbWV0ZXIgd2lsbCBvbmx5IG92ZXJyaWRlIHRoZSB2aXNpYmlsaXR5IHNldHRpbmcgb2YgdGhlIGN1cnJlbnQgaXRlbSBmb3IgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7YCxcbi8vLyBpdCB3aWxsIG5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgdmlzaWJpbGl0eSB3aGVuIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgdHJ1ZWAuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIgKFxuICAkbWFyZ2luLWJvdHRvbTogJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbSxcbiAgJGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplLFxuICAkc3BhY2luZzogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nLFxuICAkcmFkaXVzOiAkcGFnaW5hdGlvbi1yYWRpdXMsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcixcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhenVsLWJhc2UvLyRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAvLyBMaXN0IGl0ZW1cbiAgbGkge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbSB7XG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGN1cnJlbnQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtY3VycmVudDogJGF6dWwtYmFzZSxcbiAgJGNvbG9yLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jdXJyZW50O1xuICBjb2xvcjogJGNvbG9yLWN1cnJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29sb3I6ICRjb2xvcjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGVsbGlwc2lzIGZvciB1c2UgaW4gYSBwYWdpbmF0aW9uIGxpc3QuXG5AbWl4aW4gcGFnaW5hdGlvbi1lbGxpcHNpcyAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3Jcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29udGVudDogJ1xcMjAyNic7XG4gIGNvbG9yOiAkY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXBhZ2luYXRpb24ge1xuICAucGFnaW5hdGlvbiB7XG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1jb250YWluZXI7XG5cbiAgICAuY3VycmVudCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudDtcbiAgICB9XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1lbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZ2luYXRpb24tYXJyb3dzIHtcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJ1xcMDBhYic7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbiAgICAucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAnXFwwMGJiJztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBmb3JjZS1lbGVtZW50LW5lc3RpbmcsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGFibGVzIGFyZSBzdHJpcGVkIGJ5IGRlZmF1bHQgYW5kIGFuIC51bnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC4gSWYgYGZhbHNlYCwgYSAuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0ciB7XG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS11bnN0cmlwZSgpIHtcbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWRcbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBmb290XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICR0YWJsZS1pcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFja2VkIHRhYmxlLiBVc2VmdWwgZm9yIHNtYWxsLXNjcmVlbiBsYXlvdXRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGhlYWRlciBbJHNob3ctaGVhZGVyLWZvci1zdGFja2VkXSAtIFNob3cgdGhlIGZpcnN0IHRoIG9mIGhlYWRlciB3aGVuIHN0YWNrZWQuXG5AbWl4aW4gdGFibGUtc3RhY2soJGhlYWRlcjogJHNob3ctaGVhZGVyLWZvci1zdGFja2VkKSB7XG4gIEBpZiAkaGVhZGVyIHtcbiAgICB0aGVhZCB7XG4gICAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICB0aCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgQGluY2x1ZGUgdGFibGUtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgdGFibGUuc2Nyb2xsIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1zY3JvbGw7XG4gIH1cblxuICB0YWJsZS5ob3ZlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtaG92ZXI7XG4gIH1cblxuICAudGFibGUtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgdGFibGUge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsdW1pbmFuY2Ugb2YuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuQGZ1bmN0aW9uIGNvbG9yLWx1bWluYW5jZSgkY29sb3IpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmXG4gICRyZ2JhOiByZWQoJGNvbG9yKSwgZ3JlZW4oJGNvbG9yKSwgYmx1ZSgkY29sb3IpO1xuICAkcmdiYTI6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgJHJnYjogbnRoKCRyZ2JhLCAkaSk7XG4gICAgJHJnYjogJHJnYiAvIDI1NTtcblxuICAgICRyZ2I6IGlmKCRyZ2IgPCAwLjAzOTI4LCAkcmdiIC8gMTIuOTIsIHBvdygoJHJnYiArIDAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcblxuICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gIH1cblxuICBAcmV0dXJuIDAuMjEyNiAqIG50aCgkcmdiYTIsIDEpICsgMC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKTtcbn1cblxuLy8vIENoZWNrcyB0aGUgY29udHJhc3QgcmF0aW8gb2YgdHdvIGNvbG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjEgLSBGaXJzdCBjb2xvciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjIgLSBTZWNvbmQgY29sb3IgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBjb250cmFzdCByYXRpbyBvZiB0aGUgY29tcGFyZWQgY29sb3JzLlxuQGZ1bmN0aW9uIGNvbG9yLWNvbnRyYXN0KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI2NvbnRyYXN0LXJhdGlvZGVmXG4gICRsdW1pbmFuY2UxOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMSkgKyAwLjA1O1xuICAkbHVtaW5hbmNlMjogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjIpICsgMC4wNTtcbiAgJHJhdGlvOiAkbHVtaW5hbmNlMSAvICRsdW1pbmFuY2UyO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gIH1cblxuICAkcmF0aW86IHJvdW5kKCRyYXRpbyAqIDEwKSAvIDEwO1xuXG4gIEByZXR1cm4gJHJhdGlvO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRiYXNlYCwgYW5kIHJldHVybnMgdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IxIC0gRmlyc3QgY29sb3IgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IyIC0gU2Vjb25kIGNvbG9yIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgY29udHJhc3QgcmF0aW8gb2YgdGhlIGNvbXBhcmVkIGNvbG9ycy5cbkBmdW5jdGlvbiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYXNlLCAkY29sb3JzOiAoJHdoaXRlLCAkYmxhY2spLCAkdG9sZXJhbmNlOiAwKSB7XG4gICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAxKSk7XG4gICRiZXN0OiBudGgoJGNvbG9ycywgMSk7XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGNvbG9ycykge1xuICAgICRjdXJyZW50LWNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgQGlmICgkY3VycmVudC1jb250cmFzdCAtICRjb250cmFzdCA+ICR0b2xlcmFuY2UpIHtcbiAgICAgICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgICAgJGJlc3Q6IG50aCgkY29sb3JzLCAkaSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkY29udHJhc3QgPCAzKSB7XG4gICAgQHdhcm4gXCJDb250cmFzdCByYXRpbyBvZiAjeyRiZXN0fSBvbiAjeyRiYXNlfSBpcyBwcmV0dHkgYmFkLCBqdXN0ICN7JGNvbnRyYXN0fVwiO1xuICB9XG5cbiAgQHJldHVybiAkYmVzdDtcbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGRhcmtlciBpZiBpdCdzIGxpZ2h0LCBvciBsaWdodGVyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBHZXQgY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEBwYXJhbSB7a2V5fSBjb2xvciBrZXkgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbkBmdW5jdGlvbiBnZXQtY29sb3IoJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdnaXZlbiAka2V5IGlzIG5vdCBhdmFpbGFibGUgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSc7XG4gIH1cbn1cblxuLy8vIFRyYW5zZmVycyB0aGUgY29sb3JzIGluIHRoZSBgJGZvdW5kYXRpb24tcGFsZXR0ZWBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSB7XG4gICAgJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2VzcykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykge1xuICAgICR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSB7XG4gICAgJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgZm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYGV4cGFuZC1uYCBjbGFzc2VzIHRvIGluY2x1ZGUgaW4gdGhlIENTUy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gdGFicy1jb250YWluZXIgKFxuICAkbWFyZ2luOiAkdGFiLW1hcmdpbixcbiAgJGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZCxcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRtYXJnaW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250YWluZXIgdG8gaGF2ZSB2ZXJ0aWNhbCB0YWJzLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRhaW5lcigpYC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbCB7XG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGxpbmtzIHdpdGhpbiBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIGA8bGk+YCBlbGVtZW50cyBpbnNpZGUgYSB0YWIgY29udGFpbmVyLlxuQG1peGluIHRhYnMtdGl0bGUgKFxuICAkcGFkZGluZzogJHRhYi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICR0YWItaXRlbS1mb250LXNpemUsXG4gICRjb2xvcjogJHRhYi1jb2xvcixcbiAgJGNvbG9yLWFjdGl2ZTogJHRhYi1hY3RpdmUtY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGJhY2tncm91bmQtYWN0aXZlOiAkdGFiLWJhY2tncm91bmQtYWN0aXZlXG4pIHtcbiAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcblxuICA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLy9jb2xvcjogJGNvbG9yO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbmVncm87XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICAvL2JhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIC8vY29sb3I6ICRjb2xvci1hY3RpdmU7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IChcbiAgJGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0YWItY29udGVudC1jb2xvcixcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCAoXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gdGFicy1wYW5lbCAoXG4gICRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZ1xuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICZbYXJpYS1oaWRkZW49XCJmYWxzZVwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIC8vQGluY2x1ZGUgdGFicy1jb250ZW50O1xuICB9XG5cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XG4gIH1cbn1cbiIsIlxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMzMycHgpIHtcbiAgIFxuXG4gICAgICAgIC50aXR1bGFye1xuXG4gICAgICAgICAgICB3aWR0aDogMjA1cHg7XG4gICAgICAgIH1cbn1cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNTBweCkge1xuXG4gICAgIC50aXR1bGFye1xuXG4gICAgICAgICAgICB3aWR0aDogMTc1cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC51bmFjaHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNiwwKTtcbiAgICB9XG5cbiAgICBkaXYjY29udGFkb3IsLnJlZGVze1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigzLDApO1xuXG4gICAgfVxuICAgICAgICBcbiAgICAgICAgXG59XG5cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMjBweCkge1xuICAgIFxuICAgICAudGl0dWxhcntcblxuICAgICAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgICB9XG4gICAgICAgIFxufVxuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgdGFibGV7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC50b3AtYmFyIC50b3AtYmFyLWxlZnRcbiAgICB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgdWwuc3VibWVudSBsaTpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgfVxuXG4gICAgLnNsaWRlciwubGF0ZXJhbCwuYmxvcXVlLXByaW5jaXBhbCwuYmxvcXVlLWxhdGVyYWwsLmJsb3F1ZS1zZWN1bmRhcmlve1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKVxuICAgIH1cbiAgICBcbiAgICAvKiAuYmxvcXVlLTcgLm1vZHVsZXRhYmxlID4gaDMsLmxhdGVyYWwgLm1vZHVsZXRhYmxlID4gaDMsLmJsb3F1ZS1sYXRlcmFsIC5tb2R1bGV0YWJsZSA+IGgzLCAuYmxvcXVlLXByaW5jaXBhbCAubW9kdWxldGFibGUgPiBoMywuYmxvcXVlLXNlY3VuZGFyaW8gLm1vZHVsZXRhYmxlID5oM3tcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfSAqL1xuICAgIC5tb2R1bGV0YWJsZSA+IGgze1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG5cbiAgICAgICAgLnRpdHVsYXJ7XG4gICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICB9XG5cdFx0XG5cdFx0LnVuYWNoe1xuQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIsMCk7IFxuXG59XG4ucmVkZXMsZGl2I2NvbnRhZG9ye1xuQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNik7IFxuXG4gIFxufVxuXG5cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5kaXItaW1ne1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIGRpdi5pdGVtVG9vbGJhcntcbiAgICAgICAgbWFyZ2luLXRvcDogLTNyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgIFxuICAgIH1cblxuICAgIC5wZXJzb25he1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XG4gICAgfVxuICAgIFxuXG4gICAgZGl2I2NvbnRhZG9yLC5yZWRlcywudW5hY2h7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDQsMCk7XG5cbiAgICB9XG5cdFxuXHRpbWcjaW1nX3JlZiB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbiAgICAuYmxvcXVlX2ludmVzdGlnYWRvciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIFxuXG59XG4gICAgXG4gICAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gaW1ne1xuXG4gICAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgfVxuXG5cbi5kYXRvcy11YmljYWNpb257XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpOyAgXG59XG5cbiAgICBcbiAgICAuYmxvcXVlLXNlY3VuZGFyaW8tMyAgLm1vZHVsZXRhYmxle1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTtcbiAgICBcbn1cblxuLmJsb3F1ZS1zZWN1bmRhcmlvLTMsLmJsb3F1ZS1zZWN1bmRhcmlvLTEgLm1vZHVsZXRhYmxlLC5ibG9xdWUtNyAubW9kdWxldGFibGV7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xufVxuXG4gICAgLy9CVVNDQURPUlxuICAgIC5sb2dvLWJ1c3F1ZWRhXG4gICAge1xuICAgICAgICBcblxuICAgICAgICAubG9nb3tcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTtcbiAgICAgICAgfVxuICAgICAgICAuYnVzY2Fkb3ItaWRpb21hLWNvcnJlb1xuICAgICAgICB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XG5cbiAgICAgICAgfVxuICAgIH1cbiAgIFxuICAgIHVsLm5hdmVnYWNpb257XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OjEuNXJlbTtcblxuXG4gICAgfVxuICAgIC5pdGVtRnVsbFRleHQsLml0ZW1JbWFnZUJsb2NrLC5hcnRpY3Vsb3NfNHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xuXG4gICAgfVxuICAgIGRpdi5pdGVtRnVsbFRleHR7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIH1cbiAgIFxuICAgIC50aXR1bG8taXRlbXtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgYXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIHVsLm1hcy10aXR1bGFyZXMgbGl7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAuc2VjY2lvbiwubGF0ZXJhbCwuc2VjY2lvbi1jZW50cm9cbiAgICB7XG5cbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xuXG5cbiAgICB9XG5cbiAgICAudGl0dWxvXG4gICAge1xuICAgICAgICBtYXJnaW4tdG9wOjMwcHg7XG4gICAgICAgIHB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbWcuYXJ0aWN1bG8taW1hZ2VuLGltZy5hY3QtaW1hZ2Vue1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC5kZXN0YWNhZG8gaW1nLGltZy5hY3QtaW1hZ2Vue1xuXG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cblxuICAgIH1cblxuICAgIC5kZXN0YWNhZG8gYXtcblxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgfVxuXG4gICAgLnVuYWNoe1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig3KTsgXG4gICAgfVxuICAgIC5yZWRlc3tcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNSk7IFxuXG5cbiAgICB9XG5cbiAgICAubWVudS1mb290ZXIsLmxvZ28tZm9vdGVyXG4gICAge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7IFxuICAgIH1cblxuICAgIC5vd2wtdGhlbWUgLm93bC1kb3RzLFxuICAgIC5vd2wtdGhlbWUgLm93bC1uYXYge1xuXG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcblxuICAgIH1cblxuICAgIC5vd2wtdGhlbWUgLm93bC1kb3RzIC5vd2wtZG90IHNwYW4ge1xuXG4gICAgICAgIGJhY2tncm91bmQ6ICNkNGQ0ZDQ7XG5cbiAgICB9XG4gICAgLmFydGljdWxvX2N1YXRyb3tcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpOyBcblxuICAgICAgICBhe1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5ibG9xdWUtcHJpbmNpcGFsIC5tb2R1bGV0YWJsZSA+IGgze1xuICAgICAgICAgICAgd2lkdGg6IDcwJVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vRG9zIGNvbHVtbmFzXG4gICAgLmJhcnJhLWxhdGVyYWwsI21lbnUtbGF0ZXJhbCwuY29udGVuaWRvLWxhdGVyYWx7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xuICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgfVxuICAgICAuc2VwYXJhZG9ye1xuICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgfVxuIC8vICAgIC50YWJzLnZlcnRpY2FsID4gbGl7XG4vLyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vL31cbiB1bCNjb250ZW5pZG8tdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cbi5ibG9xdWVzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xufVxufVxuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjUwcHgpIHtcbiAgICBcbiAgICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWd7XG5cbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICB9XG4uYXJ0aWN1bG9zXzN7XG4gICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTtcbiAgIFxufVxuXG4gICAgLy9CVVNDQURPUlxuICAgIC5pY29ub3MsLmRlc3BsZWdhYmxlc3tcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xuICAgIH1cbiAgICBkaXYucGFnZS1oZWFkZXJcbiAgICB7XG4gICAgICAgIG1hcmdpbi10b3A6IDUuNXJlbTtcbiAgICB9XG4gICAgLm1lbnNhamUtYmllbnZlbmlkYS1yZWN0b3J7XG4gICAgICAgIC5tZW5zYWplLC5mb3Rve1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRpdi5wYWdlLWhlYWRlcntcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAuYXJ0aWN1bG9fdHJlcywuYXJ0aWN1bG9fZG9zLC5hcnRpY3Vsb3NfMiwuYXJ0aWN1bG9zXzN7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTsgXG4gICAgfVxuICAgIGltZy5hcnRpY3Vsby1pbWFnZW4sLmVmZW1lcmlkZSBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgLmFydGljdWxvX3RyZXMgYSwuYXJ0aWN1bG9fZG9zIGEge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cbiAgICBcbiAgICAudGl0dWxvLWV2ZW50b3tcblxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OjEwcHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5mZWNoYS1ldmVudG97XG5cbiAgICAgICAgICAgXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgIC51bmFjaCwgLnJlZGVze1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7IFxuICAgIH1cblxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU4NXB4KSB7XG5cbiAgIC50aXR1bG8tZXZlbnRve1xuXG4gICAgICAgICAgICB3aWR0aDo3MCU7XG4gICAgICAgIH1cbiAgICAgICAgIC5sb2dvLWJ1c3F1ZWRhXG4gICAge1xuICAgICAgIFxuXG4gICAgICAgIFxuICAgICAgICAuYnVzY2Fkb3ItaWRpb21hLWNvcnJlb1xuICAgICAgICB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcblxuICAgICAgICB9XG4gICAgfVxuXHQucmVkZXMsZGl2I2NvbnRhZG9ye1xuQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpOyBcblxuICBcbn1cbn0iLCJAY2hhcnNldCAndXRmLTgnO1xuIFxuQGltcG9ydCAnc2V0dGluZ3MnO1xuQGltcG9ydCAnZm91bmRhdGlvbic7XG5AaW1wb3J0ICdtb3Rpb24tdWknO1xuXG5AaW1wb3J0ICdsYXlvdXQnO1xuLy8qKioqKioqKioqKioqKioqXG4vL1NvbG8gcGFyYSBjZXVuZVxuLy9AaW1wb3J0ICdjZXVuZSc7XG4vLyoqKioqKioqKioqKioqKipcbkBpbXBvcnQgJ3RyYW5zaWNpb25lcyc7XG5AaW1wb3J0ICdzbGlkZXInOyBcbkBpbXBvcnQgJ2pvb21sYSc7IFxuQGltcG9ydCAnbWVudS1sYXRlcmFsJzsgXG5AaW1wb3J0ICdtZW51LWRlZmF1bHQnOyAgXG5AaW1wb3J0ICdmb250cyc7IFxuQGltcG9ydCAnYmxvcXVlcyc7XG5AaW1wb3J0ICdrMic7XG5AaW1wb3J0ICdjb250YWRvci10cmFkdWN0b3InO1xuQGltcG9ydCAnaW52ZXN0aWdhZG9yZXMnOyAgXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7IFxuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy9ObyBmdW5jaW9uYSBlbiBndWxwNFxuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbi8vQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uOyBcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTsgXG5AaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uOyBcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlOyAgXG5cbi8vU09MTyBQQVJBIEVYVEVOU0lPTlxuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlOyBcbi8vQGltcG9ydCAnZXh0ZW5zaW9uJztcbi8vKioqKioqKioqKioqKioqKioqKioqXG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbkBpbXBvcnQgJ21lZGlhcXVlcnlzJztcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG5cbi8vXG5cbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcmFuZ2UtaW5wdXQ7XG4vKlxuXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuXG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuXG5AaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcblxuQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWVsZW1lbnQ7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLW1ldGVyLWVsZW1lbnQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcblxuQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG5cbkBpbmNsdWRlIG1vdGlvbi11aS10cmFuc2l0aW9ucztcbkBpbmNsdWRlIG1vdGlvbi11aS1hbmltYXRpb25zO1xuKi9cbiJdfQ== */
