.glightbox-container {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999999 !important;
  overflow: hidden;
  -ms-touch-action: none;
  touch-action: none;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  outline: none;
}

.glightbox-container.inactive {
  display: none;
}

.glightbox-container .gcontainer {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 9999;
  overflow: hidden;
}

.glightbox-container .gslider {
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
  height: 100%;
  left: 0;
  top: 0;
  width: 100%;
  position: relative;
  overflow: hidden;
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.glightbox-container .gslide {
  width: 100%;
  position: absolute;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  opacity: 0;
}

.glightbox-container .gslide.current {
  opacity: 1;
  z-index: 99999;
  position: relative;
}

.glightbox-container .gslide.prev {
  opacity: 1;
  z-index: 9999;
}

.glightbox-container .gslide-inner-content {
  width: 100%;
}

.glightbox-container .ginner-container {
  position: relative;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  max-width: 100%;
  margin: auto;
  height: 100vh;
}

.glightbox-container .ginner-container.gvideo-container {
  width: 100%;
}

.glightbox-container .ginner-container.desc-bottom,
.glightbox-container .ginner-container.desc-top {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}

.glightbox-container .ginner-container.desc-left,
.glightbox-container .ginner-container.desc-right {
  max-width: 100% !important;
}

.gslide iframe,
.gslide video {
  outline: none !important;
  border: none;
  min-height: 165px;
  -webkit-overflow-scrolling: touch;
  -ms-touch-action: auto;
  touch-action: auto;
}

.gslide:not(.current) {
  pointer-events: none;
}

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

.gslide-image img {
  max-height: 100vh;
  display: block;
  padding: 0;
  float: none;
  outline: none;
  border: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  max-width: 100vw;
  width: auto;
  height: auto;
  -o-object-fit: cover;
  object-fit: cover;
  -ms-touch-action: none;
  touch-action: none;
  margin: auto;
  min-width: 200px;
}

.desc-top .gslide-image img,
.desc-bottom .gslide-image img {
  width: auto;
}

.desc-left .gslide-image img,
.desc-right .gslide-image img {
  width: auto;
  max-width: 100%;
}

.gslide-image img.zoomable {
  position: relative;
}

.gslide-image img.dragging {
  cursor: -webkit-grabbing !important;
  cursor: grabbing !important;
  -webkit-transition: none;
  transition: none;
}

.gslide-video {
  position: relative;
  max-width: 100vh;
  width: 100% !important;
}

.gslide-video .plyr__poster-enabled.plyr--loading .plyr__poster {
  display: none;
}

.gslide-video .gvideo-wrapper {
  width: 100%;
  /* max-width: 160vmin; */
  margin: auto;
}

.gslide-video::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgba(255, 0, 0, 0.34);
  display: none;
}

.gslide-video.playing::before {
  display: none;
}

.gslide-video.fullscreen {
  max-width: 100% !important;
  min-width: 100%;
  height: 75vh;
}

.gslide-video.fullscreen video {
  max-width: 100% !important;
  width: 100% !important;
}

.gslide-inline {
  background: #fff;
  text-align: left;
  max-height: calc(100vh - 40px);
  overflow: auto;
  max-width: 100%;
  margin: auto;
}

.gslide-inline .ginlined-content {
  padding: 20px;
  width: 100%;
}

.gslide-inline .dragging {
  cursor: -webkit-grabbing !important;
  cursor: grabbing !important;
  -webkit-transition: none;
  transition: none;
}

.ginlined-content {
  overflow: auto;
  display: block !important;
  opacity: 1;
}

.gslide-external {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  min-width: 100%;
  background: #fff;
  padding: 0;
  overflow: auto;
  max-height: 75vh;
  height: 100%;
}

.gslide-media {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: auto;
}

.zoomed .gslide-media {
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
}

.desc-top .gslide-media,
.desc-bottom .gslide-media {
  margin: 0 auto;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}

.gslide-description {
  position: relative;
  -webkit-box-flex: 1;
  -ms-flex: 1 0 100%;
  flex: 1 0 100%;
}

.gslide-description.description-left,
.gslide-description.description-right {
  max-width: 100%;
}

.gslide-description.description-bottom,
.gslide-description.description-top {
  margin: 0 auto;
  width: 100%;
}

.gslide-description p {
  margin-bottom: 12px;
}

.gslide-description p:last-child {
  margin-bottom: 0;
}

.zoomed .gslide-description {
  display: none;
}

.glightbox-button-hidden {
  display: none;
}

/*
 * Description for mobiles
 * something like facebook does the description
 * for the photos
*/
.glightbox-mobile .glightbox-container .gslide-description {
  height: auto !important;
  width: 100%;
  position: absolute;
  bottom: 0;
  padding: 19px 11px;
  max-width: 100vw !important;
  -webkit-box-ordinal-group: 3 !important;
  -ms-flex-order: 2 !important;
  order: 2 !important;
  max-height: 78vh;
  overflow: auto !important;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.75)));
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.75) 100%);
  -webkit-transition: opacity 0.3s linear;
  transition: opacity 0.3s linear;
  padding-bottom: 50px;
}

.glightbox-mobile .glightbox-container .gslide-title {
  color: #fff;
  font-size: 1em;
}

.glightbox-mobile .glightbox-container .gslide-desc {
  color: #a1a1a1;
}

.glightbox-mobile .glightbox-container .gslide-desc a {
  color: #fff;
  font-weight: bold;
}

.glightbox-mobile .glightbox-container .gslide-desc * {
  color: inherit;
}

.glightbox-mobile .glightbox-container .gslide-desc .desc-more {
  color: #fff;
  opacity: 0.4;
}

.gdesc-open .gslide-media {
  -webkit-transition: opacity 0.5s ease;
  transition: opacity 0.5s ease;
  opacity: 0.4;
}

.gdesc-open .gdesc-inner {
  padding-bottom: 30px;
}

.gdesc-closed .gslide-media {
  -webkit-transition: opacity 0.5s ease;
  transition: opacity 0.5s ease;
  opacity: 1;
}

.greset {
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.gabsolute {
  position: absolute;
}

.grelative {
  position: relative;
}

.glightbox-desc {
  display: none !important;
}

.glightbox-open {
  overflow: hidden;
}

.gloader {
  height: 25px;
  width: 25px;
  -webkit-animation: lightboxLoader 0.8s infinite linear;
  animation: lightboxLoader 0.8s infinite linear;
  border: 2px solid #fff;
  border-right-color: transparent;
  border-radius: 50%;
  position: absolute;
  display: block;
  z-index: 9999;
  left: 0;
  right: 0;
  margin: 0 auto;
  top: 47%;
}

.goverlay {
  width: 100%;
  height: calc(100vh + 1px);
  position: fixed;
  top: -1px;
  left: 0;
  background: #000;
  will-change: opacity;
}

.glightbox-mobile .goverlay {
  background: #000;
}

.gprev,
.gnext,
.gclose {
  z-index: 99999;
  cursor: pointer;
  width: 26px;
  height: 44px;
  border: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}

.gprev svg,
.gnext svg,
.gclose svg {
  display: block;
  width: 25px;
  height: auto;
  margin: 0;
  padding: 0;
}

.gprev.disabled,
.gnext.disabled,
.gclose.disabled {
  opacity: 0.1;
}

.gprev .garrow,
.gnext .garrow,
.gclose .garrow {
  stroke: #fff;
}

.gbtn.focused {
  outline: 2px solid #0f3d81;
}

iframe.wait-autoplay {
  opacity: 0;
}

.glightbox-closing .gnext,
.glightbox-closing .gprev,
.glightbox-closing .gclose {
  opacity: 0 !important;
}

/*Skin */
.glightbox-clean .gslide-description {
  background: #fff;
}

.glightbox-clean .gdesc-inner {
  padding: 22px 20px;
}

.glightbox-clean .gslide-title {
  font-size: 1em;
  font-weight: normal;
  font-family: arial;
  color: #000;
  margin-bottom: 19px;
  line-height: 1.4em;
}

.glightbox-clean .gslide-desc {
  font-size: 0.86em;
  margin-bottom: 0;
  font-family: arial;
  line-height: 1.4em;
}

.glightbox-clean .gslide-video {
  background: #000;
}

.glightbox-clean .gprev,
.glightbox-clean .gnext,
.glightbox-clean .gclose {
  background-color: rgba(0, 0, 0, 0.75);
  border-radius: 4px;
}

.glightbox-clean .gprev path,
.glightbox-clean .gnext path,
.glightbox-clean .gclose path {
  fill: #fff;
}

.glightbox-clean .gprev {
  position: absolute;
  top: -100%;
  left: 30px;
  width: 40px;
  height: 50px;
}

.glightbox-clean .gnext {
  position: absolute;
  top: -100%;
  right: 30px;
  width: 40px;
  height: 50px;
}

.glightbox-clean .gclose {
  width: 35px;
  height: 35px;
  top: 15px;
  right: 10px;
  position: absolute;
}

.glightbox-clean .gclose svg {
  width: 18px;
  height: auto;
}

.glightbox-clean .gclose:hover {
  opacity: 1;
}

/*CSS Animations*/
.gfadeIn {
  -webkit-animation: gfadeIn 0.5s ease;
  animation: gfadeIn 0.5s ease;
}

.gfadeOut {
  -webkit-animation: gfadeOut 0.5s ease;
  animation: gfadeOut 0.5s ease;
}

.gslideOutLeft {
  -webkit-animation: gslideOutLeft 0.3s ease;
  animation: gslideOutLeft 0.3s ease;
}

.gslideInLeft {
  -webkit-animation: gslideInLeft 0.3s ease;
  animation: gslideInLeft 0.3s ease;
}

.gslideOutRight {
  -webkit-animation: gslideOutRight 0.3s ease;
  animation: gslideOutRight 0.3s ease;
}

.gslideInRight {
  -webkit-animation: gslideInRight 0.3s ease;
  animation: gslideInRight 0.3s ease;
}

.gzoomIn {
  -webkit-animation: gzoomIn 0.5s ease;
  animation: gzoomIn 0.5s ease;
}

.gzoomOut {
  -webkit-animation: gzoomOut 0.5s ease;
  animation: gzoomOut 0.5s ease;
}

@-webkit-keyframes lightboxLoader {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes lightboxLoader {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@-webkit-keyframes gfadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes gfadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes gfadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes gfadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes gslideInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-60%, 0, 0);
    transform: translate3d(-60%, 0, 0);
  }
  to {
    visibility: visible;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}
@keyframes gslideInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-60%, 0, 0);
    transform: translate3d(-60%, 0, 0);
  }
  to {
    visibility: visible;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}
@-webkit-keyframes gslideOutLeft {
  from {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    -webkit-transform: translate3d(-60%, 0, 0);
    transform: translate3d(-60%, 0, 0);
    opacity: 0;
    visibility: hidden;
  }
}
@keyframes gslideOutLeft {
  from {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    -webkit-transform: translate3d(-60%, 0, 0);
    transform: translate3d(-60%, 0, 0);
    opacity: 0;
    visibility: hidden;
  }
}
@-webkit-keyframes gslideInRight {
  from {
    opacity: 0;
    visibility: visible;
    -webkit-transform: translate3d(60%, 0, 0);
    transform: translate3d(60%, 0, 0);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}
@keyframes gslideInRight {
  from {
    opacity: 0;
    visibility: visible;
    -webkit-transform: translate3d(60%, 0, 0);
    transform: translate3d(60%, 0, 0);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}
@-webkit-keyframes gslideOutRight {
  from {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    -webkit-transform: translate3d(60%, 0, 0);
    transform: translate3d(60%, 0, 0);
    opacity: 0;
  }
}
@keyframes gslideOutRight {
  from {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    -webkit-transform: translate3d(60%, 0, 0);
    transform: translate3d(60%, 0, 0);
    opacity: 0;
  }
}
@-webkit-keyframes gzoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
  to {
    opacity: 1;
  }
}
@keyframes gzoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes gzoomOut {
  from {
    opacity: 1;
  }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
  to {
    opacity: 0;
  }
}
@keyframes gzoomOut {
  from {
    opacity: 1;
  }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
  to {
    opacity: 0;
  }
}
@media (min-width: 769px) {
  .glightbox-container .ginner-container {
    width: auto;
    height: auto;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
  }
  .glightbox-container .ginner-container.desc-top .gslide-description {
    -webkit-box-ordinal-group: 1;
    -ms-flex-order: 0;
    order: 0;
  }
  .glightbox-container .ginner-container.desc-top .gslide-image,
  .glightbox-container .ginner-container.desc-top .gslide-image img {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
  }
  .glightbox-container .ginner-container.desc-left .gslide-description {
    -webkit-box-ordinal-group: 1;
    -ms-flex-order: 0;
    order: 0;
  }
  .glightbox-container .ginner-container.desc-left .gslide-image {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
  }
  .gslide-image img {
    max-height: 97vh;
    max-width: 100%;
  }
  .gslide-image img.zoomable {
    cursor: -webkit-zoom-in;
    cursor: zoom-in;
  }
  .zoomed .gslide-image img.zoomable {
    cursor: -webkit-grab;
    cursor: grab;
  }
  .gslide-inline {
    max-height: 95vh;
  }
  .gslide-external {
    max-height: 100vh;
  }
  .gslide-description.description-left,
  .gslide-description.description-right {
    max-width: 275px;
  }
  .glightbox-open {
    height: auto;
  }
  .goverlay {
    background: rgba(0, 0, 0, 0.92);
  }
  .glightbox-clean .gslide-media {
    -webkit-box-shadow: 1px 2px 9px 0px rgba(0, 0, 0, 0.65);
    box-shadow: 1px 2px 9px 0px rgba(0, 0, 0, 0.65);
  }
  .glightbox-clean .description-left .gdesc-inner,
  .glightbox-clean .description-right .gdesc-inner {
    position: absolute;
    height: 100%;
    overflow-y: auto;
  }
  .glightbox-clean .gprev,
  .glightbox-clean .gnext,
  .glightbox-clean .gclose {
    background-color: rgba(0, 0, 0, 0.32);
  }
  .glightbox-clean .gprev:hover,
  .glightbox-clean .gnext:hover,
  .glightbox-clean .gclose:hover {
    background-color: rgba(0, 0, 0, 0.7);
  }
  .glightbox-clean .gprev {
    top: 45%;
  }
  .glightbox-clean .gnext {
    top: 45%;
  }
}
@media (min-width: 992px) {
  .glightbox-clean .gclose {
    opacity: 0.7;
    right: 20px;
  }
}
@media screen and (max-height: 420px) {
  .goverlay {
    background: #000;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nbGlnaHRib3gvZGlzdC9jc3MvZ2xpZ2h0Ym94LmNzcyIsImxpZ2h0Ym94LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsMEJBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSw4QkFBQTtFQUNBLDJCQUFBO0VBQ0EsMEJBQUE7RUFDQSxzQkFBQTtFQUNBLG1DQUFBO0VBQ0EsMkJBQUE7RUFDQSxhQUFBO0FDQ0Y7O0FERUE7RUFDRSxhQUFBO0FDQ0Y7O0FERUE7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0FDQ0Y7O0FERUE7RUFDRSwrQ0FBQTtFQUNBLHVDQUFBO0VBQ0EsK0JBQUE7RUFDQSw0REFBQTtFQUNBLFlBQUE7RUFDQSxPQUFBO0VBQ0EsTUFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsK0JBQUE7RUFDQSwrQkFBQTtFQUNBLHdCQUFBO0VBQ0Esd0JBQUE7RUFDQSxxQkFBQTtFQUNBLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsdUNBQUE7RUFDQSwrQkFBQTtBQ0NGOztBREVBO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VBQ0EsYUFBQTtFQUNBLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0EscUJBQUE7RUFDQSx1QkFBQTtFQUNBLFVBQUE7QUNDRjs7QURFQTtFQUNFLFVBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7QUNDRjs7QURFQTtFQUNFLFVBQUE7RUFDQSxhQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0FDQ0Y7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Q0EsaUJBQUE7SUFDQSxRQUFBO0VDdkJGO0VEeUJBO0lBQ0UsNEJBQUE7SUFDQSxpQkFBQTtJQUNBLFFBQUE7RUN2QkY7RUR5QkE7SUFDRSw0QkFBQTtJQUNBLGlCQUFBO0lBQ0EsUUFBQTtFQ3ZCRjtFRHlCQTtJQUNFLGdCQUFBO0lBQ0EsZUFBQTtFQ3ZCRjtFRHlCQTtJQUNFLHVCQUFBO0lBQ0EsZUFBQTtFQ3ZCRjtFRHlCQTtJQUNFLG9CQUFBO0lBQ0EsWUFBQTtFQ3ZCRjtFRHlCQTtJQUNFLGdCQUFBO0VDdkJGO0VEeUJBO0lBQ0UsaUJBQUE7RUN2QkY7RUR5QkE7O0lBRUUsZ0JBQUE7RUN2QkY7RUR5QkE7SUFDRSxZQUFBO0VDdkJGO0VEeUJBO0lBQ0UsK0JBQUE7RUN2QkY7RUR5QkE7SUFDRSx1REFBQTtJQUNBLCtDQUFBO0VDdkJGO0VEeUJBOztJQUVFLGtCQUFBO0lBQ0EsWUFBQTtJQUNBLGdCQUFBO0VDdkJGO0VEeUJBOzs7SUFHRSxxQ0FBQTtFQ3ZCRjtFRHlCQTs7O0lBR0Usb0NBQUE7RUN2QkY7RUR5QkE7SUFDRSxRQUFBO0VDdkJGO0VEeUJBO0lBQ0UsUUFBQTtFQ3ZCRjtBQUNGO0FEMEJBO0VBQ0U7SUFDRSxZQUFBO0lBQ0EsV0FBQTtFQ3hCRjtBQUNGO0FEMkJBO0VBQ0U7SUFDRSxnQkFBQTtFQ3pCRjtBQUNGIiwiZmlsZSI6ImxpZ2h0Ym94LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5nbGlnaHRib3gtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDk5OTk5OSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLW1vei10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmdsaWdodGJveC1jb250YWluZXIuaW5hY3RpdmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogOTk5OTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmdsaWdodGJveC1jb250YWluZXIgLmdzbGlkZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNHMgZWFzZTtcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40cyBlYXNlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBlYXNlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzIGVhc2U7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ3NsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5nbGlnaHRib3gtY29udGFpbmVyIC5nc2xpZGUuY3VycmVudCB7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDk5OTk5O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5nbGlnaHRib3gtY29udGFpbmVyIC5nc2xpZGUucHJldiB7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbi5nbGlnaHRib3gtY29udGFpbmVyIC5nc2xpZGUtaW5uZXItY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ2lubmVyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBoZWlnaHQ6IDEwMHZoO1xufVxuXG4uZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ2lubmVyLWNvbnRhaW5lci5ndmlkZW8tY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5nbGlnaHRib3gtY29udGFpbmVyIC5naW5uZXItY29udGFpbmVyLmRlc2MtYm90dG9tLFxuICAgICAgICAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ2lubmVyLWNvbnRhaW5lci5kZXNjLXRvcCB7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmdsaWdodGJveC1jb250YWluZXIgLmdpbm5lci1jb250YWluZXIuZGVzYy1sZWZ0LFxuICAgICAgICAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ2lubmVyLWNvbnRhaW5lci5kZXNjLXJpZ2h0IHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5nc2xpZGUgaWZyYW1lLFxuICAgIC5nc2xpZGUgdmlkZW8ge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWluLWhlaWdodDogMTY1cHg7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLXRvdWNoLWFjdGlvbjogYXV0bztcbiAgdG91Y2gtYWN0aW9uOiBhdXRvO1xufVxuXG4uZ3NsaWRlOm5vdCguY3VycmVudCkge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmdzbGlkZS1pbWFnZSB7XG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5nc2xpZGUtaW1hZ2UgaW1nIHtcbiAgbWF4LWhlaWdodDogMTAwdmg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBmbG9hdDogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICAtby1vYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgbWFyZ2luOiBhdXRvO1xuICBtaW4td2lkdGg6IDIwMHB4O1xufVxuXG4uZGVzYy10b3AgLmdzbGlkZS1pbWFnZSBpbWcsXG4gICAgICAgIC5kZXNjLWJvdHRvbSAuZ3NsaWRlLWltYWdlIGltZyB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uZGVzYy1sZWZ0IC5nc2xpZGUtaW1hZ2UgaW1nLFxuICAgICAgICAuZGVzYy1yaWdodCAuZ3NsaWRlLWltYWdlIGltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5nc2xpZGUtaW1hZ2UgaW1nLnpvb21hYmxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZ3NsaWRlLWltYWdlIGltZy5kcmFnZ2luZyB7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZyAhaW1wb3J0YW50O1xuICBjdXJzb3I6IGdyYWJiaW5nICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLmdzbGlkZS12aWRlbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMDB2aDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmdzbGlkZS12aWRlbyAucGx5cl9fcG9zdGVyLWVuYWJsZWQucGx5ci0tbG9hZGluZyAucGx5cl9fcG9zdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmdzbGlkZS12aWRlbyAuZ3ZpZGVvLXdyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgICAgICAgLyogbWF4LXdpZHRoOiAxNjB2bWluOyAqL1xuICBtYXJnaW46IGF1dG87XG59XG5cbi5nc2xpZGUtdmlkZW86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAwLCAwLCAwLjM0KTtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmdzbGlkZS12aWRlby5wbGF5aW5nOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ3NsaWRlLXZpZGVvLmZ1bGxzY3JlZW4ge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDc1dmg7XG59XG5cbi5nc2xpZGUtdmlkZW8uZnVsbHNjcmVlbiB2aWRlbyB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uZ3NsaWRlLWlubGluZSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4uZ3NsaWRlLWlubGluZSAuZ2lubGluZWQtY29udGVudCB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZ3NsaWRlLWlubGluZSAuZHJhZ2dpbmcge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmcgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBncmFiYmluZyAhaW1wb3J0YW50O1xuICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi5naW5saW5lZC1jb250ZW50IHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5nc2xpZGUtZXh0ZXJuYWwge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiA3NXZoO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5nc2xpZGUtbWVkaWEge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uem9vbWVkIC5nc2xpZGUtbWVkaWEge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZGVzYy10b3AgLmdzbGlkZS1tZWRpYSxcbiAgICAuZGVzYy1ib3R0b20gLmdzbGlkZS1tZWRpYSB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5nc2xpZGUtZGVzY3JpcHRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gIC1tcy1mbGV4OiAxIDAgMTAwJTtcbiAgZmxleDogMSAwIDEwMCU7XG59XG5cbi5nc2xpZGUtZGVzY3JpcHRpb24uZGVzY3JpcHRpb24tbGVmdCxcbiAgICAuZ3NsaWRlLWRlc2NyaXB0aW9uLmRlc2NyaXB0aW9uLXJpZ2h0IHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uZ3NsaWRlLWRlc2NyaXB0aW9uLmRlc2NyaXB0aW9uLWJvdHRvbSxcbiAgICAuZ3NsaWRlLWRlc2NyaXB0aW9uLmRlc2NyaXB0aW9uLXRvcCB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmdzbGlkZS1kZXNjcmlwdGlvbiBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLmdzbGlkZS1kZXNjcmlwdGlvbiBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uem9vbWVkIC5nc2xpZGUtZGVzY3JpcHRpb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ2xpZ2h0Ym94LWJ1dHRvbi1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5cbi8qXG4gKiBEZXNjcmlwdGlvbiBmb3IgbW9iaWxlc1xuICogc29tZXRoaW5nIGxpa2UgZmFjZWJvb2sgZG9lcyB0aGUgZGVzY3JpcHRpb25cbiAqIGZvciB0aGUgcGhvdG9zXG4qL1xuXG4uZ2xpZ2h0Ym94LW1vYmlsZSAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ3NsaWRlLWRlc2NyaXB0aW9uIHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgcGFkZGluZzogMTlweCAxMXB4O1xuICBtYXgtd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDMgIWltcG9ydGFudDtcbiAgLW1zLWZsZXgtb3JkZXI6IDIgIWltcG9ydGFudDtcbiAgb3JkZXI6IDIgIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogNzh2aDtcbiAgb3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2JhKDAsIDAsIDAsIDApKSwgdG8ocmdiYSgwLCAwLCAwLCAwLjc1KSkpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDApIDAlLCByZ2JhKDAsIDAsIDAsIDAuNzUpIDEwMCUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXI7XG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xufVxuXG4uZ2xpZ2h0Ym94LW1vYmlsZSAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ3NsaWRlLXRpdGxlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4uZ2xpZ2h0Ym94LW1vYmlsZSAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ3NsaWRlLWRlc2Mge1xuICBjb2xvcjogI2ExYTFhMTtcbn1cblxuLmdsaWdodGJveC1tb2JpbGUgLmdsaWdodGJveC1jb250YWluZXIgLmdzbGlkZS1kZXNjIGEge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5nbGlnaHRib3gtbW9iaWxlIC5nbGlnaHRib3gtY29udGFpbmVyIC5nc2xpZGUtZGVzYyAqIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5nbGlnaHRib3gtbW9iaWxlIC5nbGlnaHRib3gtY29udGFpbmVyIC5nc2xpZGUtZGVzYyAuZGVzYy1tb3JlIHtcbiAgY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNDtcbn1cblxuLmdkZXNjLW9wZW4gLmdzbGlkZS1tZWRpYSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2U7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlO1xuICBvcGFjaXR5OiAwLjQ7XG59XG5cbi5nZGVzYy1vcGVuIC5nZGVzYy1pbm5lciB7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xufVxuXG4uZ2Rlc2MtY2xvc2VkIC5nc2xpZGUtbWVkaWEge1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmdyZXNldCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmdhYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmdyZWxhdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmdsaWdodGJveC1kZXNjIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZ2xpZ2h0Ym94LW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZ2xvYWRlciB7XG4gIGhlaWdodDogMjVweDtcbiAgd2lkdGg6IDI1cHg7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBsaWdodGJveExvYWRlciAwLjhzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBsaWdodGJveExvYWRlciAwLjhzIGluZmluaXRlIGxpbmVhcjtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiA5OTk5O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRvcDogNDclO1xufVxuXG4uZ292ZXJsYXkge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoICsgMXB4KTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IC0xcHg7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xufVxuXG4uZ2xpZ2h0Ym94LW1vYmlsZSAuZ292ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuXG4uZ3ByZXYsXG4uZ25leHQsXG4uZ2Nsb3NlIHtcbiAgei1pbmRleDogOTk5OTk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZ3ByZXYgc3ZnLFxuLmduZXh0IHN2Zyxcbi5nY2xvc2Ugc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyNXB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmdwcmV2LmRpc2FibGVkLFxuLmduZXh0LmRpc2FibGVkLFxuLmdjbG9zZS5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMTtcbn1cblxuLmdwcmV2IC5nYXJyb3csXG4uZ25leHQgLmdhcnJvdyxcbi5nY2xvc2UgLmdhcnJvdyB7XG4gIHN0cm9rZTogI2ZmZjtcbn1cblxuLmdidG4uZm9jdXNlZCB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCAjMGYzZDgxO1xufVxuXG5pZnJhbWUud2FpdC1hdXRvcGxheSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5nbGlnaHRib3gtY2xvc2luZyAuZ25leHQsXG4gICAgLmdsaWdodGJveC1jbG9zaW5nIC5ncHJldixcbiAgICAuZ2xpZ2h0Ym94LWNsb3NpbmcgLmdjbG9zZSB7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbn1cblxuXG4vKlNraW4gKi9cblxuLmdsaWdodGJveC1jbGVhbiAuZ3NsaWRlLWRlc2NyaXB0aW9uIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLmdsaWdodGJveC1jbGVhbiAuZ2Rlc2MtaW5uZXIge1xuICBwYWRkaW5nOiAyMnB4IDIwcHg7XG59XG5cbi5nbGlnaHRib3gtY2xlYW4gLmdzbGlkZS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LWZhbWlseTogYXJpYWw7XG4gIGNvbG9yOiAjMDAwO1xuICBtYXJnaW4tYm90dG9tOiAxOXB4O1xuICBsaW5lLWhlaWdodDogMS40ZW07XG59XG5cbi5nbGlnaHRib3gtY2xlYW4gLmdzbGlkZS1kZXNjIHtcbiAgZm9udC1zaXplOiAwLjg2ZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtZmFtaWx5OiBhcmlhbDtcbiAgbGluZS1oZWlnaHQ6IDEuNGVtO1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nc2xpZGUtdmlkZW8ge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5ncHJldixcbiAgICAuZ2xpZ2h0Ym94LWNsZWFuIC5nbmV4dCxcbiAgICAuZ2xpZ2h0Ym94LWNsZWFuIC5nY2xvc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5nbGlnaHRib3gtY2xlYW4gLmdwcmV2IHBhdGgsXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nbmV4dCBwYXRoLFxuLmdsaWdodGJveC1jbGVhbiAuZ2Nsb3NlIHBhdGgge1xuICBmaWxsOiAjZmZmO1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5ncHJldiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTAwJTtcbiAgbGVmdDogMzBweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNTBweDtcbn1cblxuLmdsaWdodGJveC1jbGVhbiAuZ25leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEwMCU7XG4gIHJpZ2h0OiAzMHB4O1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nY2xvc2Uge1xuICB3aWR0aDogMzVweDtcbiAgaGVpZ2h0OiAzNXB4O1xuICB0b3A6IDE1cHg7XG4gIHJpZ2h0OiAxMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5nbGlnaHRib3gtY2xlYW4gLmdjbG9zZSBzdmcge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nY2xvc2U6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuXG5cbi8qQ1NTIEFuaW1hdGlvbnMqL1xuXG4uZ2ZhZGVJbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBnZmFkZUluIDAuNXMgZWFzZTtcbiAgYW5pbWF0aW9uOiBnZmFkZUluIDAuNXMgZWFzZTtcbn1cblxuLmdmYWRlT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGdmYWRlT3V0IDAuNXMgZWFzZTtcbiAgYW5pbWF0aW9uOiBnZmFkZU91dCAwLjVzIGVhc2U7XG59XG5cbi5nc2xpZGVPdXRMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGdzbGlkZU91dExlZnQgMC4zcyBlYXNlO1xuICBhbmltYXRpb246IGdzbGlkZU91dExlZnQgMC4zcyBlYXNlO1xufVxuXG4uZ3NsaWRlSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGdzbGlkZUluTGVmdCAwLjNzIGVhc2U7XG4gIGFuaW1hdGlvbjogZ3NsaWRlSW5MZWZ0IDAuM3MgZWFzZTtcbn1cblxuLmdzbGlkZU91dFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGdzbGlkZU91dFJpZ2h0IDAuM3MgZWFzZTtcbiAgYW5pbWF0aW9uOiBnc2xpZGVPdXRSaWdodCAwLjNzIGVhc2U7XG59XG5cbi5nc2xpZGVJblJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGdzbGlkZUluUmlnaHQgMC4zcyBlYXNlO1xuICBhbmltYXRpb246IGdzbGlkZUluUmlnaHQgMC4zcyBlYXNlO1xufVxuXG4uZ3pvb21JbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBnem9vbUluIDAuNXMgZWFzZTtcbiAgYW5pbWF0aW9uOiBnem9vbUluIDAuNXMgZWFzZTtcbn1cblxuLmd6b29tT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGd6b29tT3V0IDAuNXMgZWFzZTtcbiAgYW5pbWF0aW9uOiBnem9vbU91dCAwLjVzIGVhc2U7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodGJveExvYWRlciB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRib3hMb2FkZXIge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZ2ZhZGVJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBnZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZ2ZhZGVPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZ2ZhZGVPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBnc2xpZGVJbkxlZnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNjAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02MCUsIDAsIDApO1xuICB9XG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBnc2xpZGVJbkxlZnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNjAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02MCUsIDAsIDApO1xuICB9XG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGdzbGlkZU91dExlZnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNjAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02MCUsIDAsIDApO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZ3NsaWRlT3V0TGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02MCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYwJSwgMCwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGdzbGlkZUluUmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg2MCUsIDAsIDApO1xuICB9XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZ3NsaWRlSW5SaWdodCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNjAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYwJSwgMCwgMCk7XG4gIH1cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGdzbGlkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNjAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYwJSwgMCwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGdzbGlkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNjAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYwJSwgMCwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZ3pvb21JbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZ3pvb21JbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBnem9vbU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjMsIDAuMywgMC4zKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGd6b29tT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ2lubmVyLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG4gIC5nbGlnaHRib3gtY29udGFpbmVyIC5naW5uZXItY29udGFpbmVyLmRlc2MtdG9wIC5nc2xpZGUtZGVzY3JpcHRpb24ge1xuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDE7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDA7XG4gICAgb3JkZXI6IDA7XG4gIH1cbiAgLmdsaWdodGJveC1jb250YWluZXIgLmdpbm5lci1jb250YWluZXIuZGVzYy10b3AgLmdzbGlkZS1pbWFnZSxcbiAgICAgICAgICAgICAgICAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ2lubmVyLWNvbnRhaW5lci5kZXNjLXRvcCAuZ3NsaWRlLWltYWdlIGltZyB7XG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcbiAgICAtbXMtZmxleC1vcmRlcjogMTtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ2lubmVyLWNvbnRhaW5lci5kZXNjLWxlZnQgLmdzbGlkZS1kZXNjcmlwdGlvbiB7XG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTtcbiAgICAtbXMtZmxleC1vcmRlcjogMDtcbiAgICBvcmRlcjogMDtcbiAgfVxuICAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ2lubmVyLWNvbnRhaW5lci5kZXNjLWxlZnQgLmdzbGlkZS1pbWFnZSB7XG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcbiAgICAtbXMtZmxleC1vcmRlcjogMTtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAuZ3NsaWRlLWltYWdlIGltZyB7XG4gICAgbWF4LWhlaWdodDogOTd2aDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmdzbGlkZS1pbWFnZSBpbWcuem9vbWFibGUge1xuICAgIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICAgIGN1cnNvcjogem9vbS1pbjtcbiAgfVxuICAuem9vbWVkIC5nc2xpZGUtaW1hZ2UgaW1nLnpvb21hYmxlIHtcbiAgICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgICBjdXJzb3I6IGdyYWI7XG4gIH1cbiAgLmdzbGlkZS1pbmxpbmUge1xuICAgIG1heC1oZWlnaHQ6IDk1dmg7XG4gIH1cbiAgLmdzbGlkZS1leHRlcm5hbCB7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gIH1cbiAgLmdzbGlkZS1kZXNjcmlwdGlvbi5kZXNjcmlwdGlvbi1sZWZ0LFxuICAgIC5nc2xpZGUtZGVzY3JpcHRpb24uZGVzY3JpcHRpb24tcmlnaHQge1xuICAgIG1heC13aWR0aDogMjc1cHg7XG4gIH1cbiAgLmdsaWdodGJveC1vcGVuIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmdvdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOTIpO1xuICB9XG4gIC5nbGlnaHRib3gtY2xlYW4gLmdzbGlkZS1tZWRpYSB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAxcHggMnB4IDlweCAwcHggcmdiYSgwLCAwLCAwLCAwLjY1KTtcbiAgICBib3gtc2hhZG93OiAxcHggMnB4IDlweCAwcHggcmdiYSgwLCAwLCAwLCAwLjY1KTtcbiAgfVxuICAuZ2xpZ2h0Ym94LWNsZWFuIC5kZXNjcmlwdGlvbi1sZWZ0IC5nZGVzYy1pbm5lcixcbi5nbGlnaHRib3gtY2xlYW4gLmRlc2NyaXB0aW9uLXJpZ2h0IC5nZGVzYy1pbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG4gIC5nbGlnaHRib3gtY2xlYW4gLmdwcmV2LFxuICAgIC5nbGlnaHRib3gtY2xlYW4gLmduZXh0LFxuICAgIC5nbGlnaHRib3gtY2xlYW4gLmdjbG9zZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMyKTtcbiAgfVxuICAuZ2xpZ2h0Ym94LWNsZWFuIC5ncHJldjpob3Zlcixcbi5nbGlnaHRib3gtY2xlYW4gLmduZXh0OmhvdmVyLFxuLmdsaWdodGJveC1jbGVhbiAuZ2Nsb3NlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIH1cbiAgLmdsaWdodGJveC1jbGVhbiAuZ3ByZXYge1xuICAgIHRvcDogNDUlO1xuICB9XG4gIC5nbGlnaHRib3gtY2xlYW4gLmduZXh0IHtcbiAgICB0b3A6IDQ1JTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmdsaWdodGJveC1jbGVhbiAuZ2Nsb3NlIHtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgcmlnaHQ6IDIwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gIC5nb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgfVxufVxuIiwiLmdsaWdodGJveC1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogOTk5OTk5ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtbW96LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uZ2xpZ2h0Ym94LWNvbnRhaW5lci5pbmFjdGl2ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5nbGlnaHRib3gtY29udGFpbmVyIC5nY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiA5OTk5O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ3NsaWRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40cyBlYXNlO1xuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjRzIGVhc2U7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2U7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHMgZWFzZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5nbGlnaHRib3gtY29udGFpbmVyIC5nc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmdsaWdodGJveC1jb250YWluZXIgLmdzbGlkZS5jdXJyZW50IHtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogOTk5OTk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmdsaWdodGJveC1jb250YWluZXIgLmdzbGlkZS5wcmV2IHtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogOTk5OTtcbn1cblxuLmdsaWdodGJveC1jb250YWluZXIgLmdzbGlkZS1pbm5lci1jb250ZW50IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5nbGlnaHRib3gtY29udGFpbmVyIC5naW5uZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IGF1dG87XG4gIGhlaWdodDogMTAwdmg7XG59XG5cbi5nbGlnaHRib3gtY29udGFpbmVyIC5naW5uZXItY29udGFpbmVyLmd2aWRlby1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmdsaWdodGJveC1jb250YWluZXIgLmdpbm5lci1jb250YWluZXIuZGVzYy1ib3R0b20sXG4uZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ2lubmVyLWNvbnRhaW5lci5kZXNjLXRvcCB7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmdsaWdodGJveC1jb250YWluZXIgLmdpbm5lci1jb250YWluZXIuZGVzYy1sZWZ0LFxuLmdsaWdodGJveC1jb250YWluZXIgLmdpbm5lci1jb250YWluZXIuZGVzYy1yaWdodCB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uZ3NsaWRlIGlmcmFtZSxcbi5nc2xpZGUgdmlkZW8ge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWluLWhlaWdodDogMTY1cHg7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLXRvdWNoLWFjdGlvbjogYXV0bztcbiAgdG91Y2gtYWN0aW9uOiBhdXRvO1xufVxuXG4uZ3NsaWRlOm5vdCguY3VycmVudCkge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmdzbGlkZS1pbWFnZSB7XG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5nc2xpZGUtaW1hZ2UgaW1nIHtcbiAgbWF4LWhlaWdodDogMTAwdmg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBmbG9hdDogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICAtby1vYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgbWFyZ2luOiBhdXRvO1xuICBtaW4td2lkdGg6IDIwMHB4O1xufVxuXG4uZGVzYy10b3AgLmdzbGlkZS1pbWFnZSBpbWcsXG4uZGVzYy1ib3R0b20gLmdzbGlkZS1pbWFnZSBpbWcge1xuICB3aWR0aDogYXV0bztcbn1cblxuLmRlc2MtbGVmdCAuZ3NsaWRlLWltYWdlIGltZyxcbi5kZXNjLXJpZ2h0IC5nc2xpZGUtaW1hZ2UgaW1nIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmdzbGlkZS1pbWFnZSBpbWcuem9vbWFibGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5nc2xpZGUtaW1hZ2UgaW1nLmRyYWdnaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogZ3JhYmJpbmcgIWltcG9ydGFudDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4uZ3NsaWRlLXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDEwMHZoO1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uZ3NsaWRlLXZpZGVvIC5wbHlyX19wb3N0ZXItZW5hYmxlZC5wbHlyLS1sb2FkaW5nIC5wbHlyX19wb3N0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ3NsaWRlLXZpZGVvIC5ndmlkZW8td3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICAvKiBtYXgtd2lkdGg6IDE2MHZtaW47ICovXG4gIG1hcmdpbjogYXV0bztcbn1cblxuLmdzbGlkZS12aWRlbzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMCwgMCwgMC4zNCk7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5nc2xpZGUtdmlkZW8ucGxheWluZzo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmdzbGlkZS12aWRlby5mdWxsc2NyZWVuIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA3NXZoO1xufVxuXG4uZ3NsaWRlLXZpZGVvLmZ1bGxzY3JlZW4gdmlkZW8ge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmdzbGlkZS1pbmxpbmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLmdzbGlkZS1pbmxpbmUgLmdpbmxpbmVkLWNvbnRlbnQge1xuICBwYWRkaW5nOiAyMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmdzbGlkZS1pbmxpbmUgLmRyYWdnaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogZ3JhYmJpbmcgIWltcG9ydGFudDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4uZ2lubGluZWQtY29udGVudCB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZ3NsaWRlLWV4dGVybmFsIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWF4LWhlaWdodDogNzV2aDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZ3NsaWRlLW1lZGlhIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogYXV0bztcbn1cblxuLnpvb21lZCAuZ3NsaWRlLW1lZGlhIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRlc2MtdG9wIC5nc2xpZGUtbWVkaWEsXG4uZGVzYy1ib3R0b20gLmdzbGlkZS1tZWRpYSB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5nc2xpZGUtZGVzY3JpcHRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gIC1tcy1mbGV4OiAxIDAgMTAwJTtcbiAgZmxleDogMSAwIDEwMCU7XG59XG5cbi5nc2xpZGUtZGVzY3JpcHRpb24uZGVzY3JpcHRpb24tbGVmdCxcbi5nc2xpZGUtZGVzY3JpcHRpb24uZGVzY3JpcHRpb24tcmlnaHQge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5nc2xpZGUtZGVzY3JpcHRpb24uZGVzY3JpcHRpb24tYm90dG9tLFxuLmdzbGlkZS1kZXNjcmlwdGlvbi5kZXNjcmlwdGlvbi10b3Age1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5nc2xpZGUtZGVzY3JpcHRpb24gcCB7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi5nc2xpZGUtZGVzY3JpcHRpb24gcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnpvb21lZCAuZ3NsaWRlLWRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmdsaWdodGJveC1idXR0b24taGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLypcbiAqIERlc2NyaXB0aW9uIGZvciBtb2JpbGVzXG4gKiBzb21ldGhpbmcgbGlrZSBmYWNlYm9vayBkb2VzIHRoZSBkZXNjcmlwdGlvblxuICogZm9yIHRoZSBwaG90b3NcbiovXG4uZ2xpZ2h0Ym94LW1vYmlsZSAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ3NsaWRlLWRlc2NyaXB0aW9uIHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgcGFkZGluZzogMTlweCAxMXB4O1xuICBtYXgtd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDMgIWltcG9ydGFudDtcbiAgLW1zLWZsZXgtb3JkZXI6IDIgIWltcG9ydGFudDtcbiAgb3JkZXI6IDIgIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogNzh2aDtcbiAgb3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2JhKDAsIDAsIDAsIDApKSwgdG8ocmdiYSgwLCAwLCAwLCAwLjc1KSkpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDApIDAlLCByZ2JhKDAsIDAsIDAsIDAuNzUpIDEwMCUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXI7XG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xufVxuXG4uZ2xpZ2h0Ym94LW1vYmlsZSAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ3NsaWRlLXRpdGxlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4uZ2xpZ2h0Ym94LW1vYmlsZSAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ3NsaWRlLWRlc2Mge1xuICBjb2xvcjogI2ExYTFhMTtcbn1cblxuLmdsaWdodGJveC1tb2JpbGUgLmdsaWdodGJveC1jb250YWluZXIgLmdzbGlkZS1kZXNjIGEge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5nbGlnaHRib3gtbW9iaWxlIC5nbGlnaHRib3gtY29udGFpbmVyIC5nc2xpZGUtZGVzYyAqIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5nbGlnaHRib3gtbW9iaWxlIC5nbGlnaHRib3gtY29udGFpbmVyIC5nc2xpZGUtZGVzYyAuZGVzYy1tb3JlIHtcbiAgY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNDtcbn1cblxuLmdkZXNjLW9wZW4gLmdzbGlkZS1tZWRpYSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2U7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlO1xuICBvcGFjaXR5OiAwLjQ7XG59XG5cbi5nZGVzYy1vcGVuIC5nZGVzYy1pbm5lciB7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xufVxuXG4uZ2Rlc2MtY2xvc2VkIC5nc2xpZGUtbWVkaWEge1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmdyZXNldCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmdhYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmdyZWxhdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmdsaWdodGJveC1kZXNjIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZ2xpZ2h0Ym94LW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZ2xvYWRlciB7XG4gIGhlaWdodDogMjVweDtcbiAgd2lkdGg6IDI1cHg7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBsaWdodGJveExvYWRlciAwLjhzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBsaWdodGJveExvYWRlciAwLjhzIGluZmluaXRlIGxpbmVhcjtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiA5OTk5O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRvcDogNDclO1xufVxuXG4uZ292ZXJsYXkge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoICsgMXB4KTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IC0xcHg7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xufVxuXG4uZ2xpZ2h0Ym94LW1vYmlsZSAuZ292ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuXG4uZ3ByZXYsXG4uZ25leHQsXG4uZ2Nsb3NlIHtcbiAgei1pbmRleDogOTk5OTk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZ3ByZXYgc3ZnLFxuLmduZXh0IHN2Zyxcbi5nY2xvc2Ugc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyNXB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmdwcmV2LmRpc2FibGVkLFxuLmduZXh0LmRpc2FibGVkLFxuLmdjbG9zZS5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMTtcbn1cblxuLmdwcmV2IC5nYXJyb3csXG4uZ25leHQgLmdhcnJvdyxcbi5nY2xvc2UgLmdhcnJvdyB7XG4gIHN0cm9rZTogI2ZmZjtcbn1cblxuLmdidG4uZm9jdXNlZCB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCAjMGYzZDgxO1xufVxuXG5pZnJhbWUud2FpdC1hdXRvcGxheSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5nbGlnaHRib3gtY2xvc2luZyAuZ25leHQsXG4uZ2xpZ2h0Ym94LWNsb3NpbmcgLmdwcmV2LFxuLmdsaWdodGJveC1jbG9zaW5nIC5nY2xvc2Uge1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qU2tpbiAqL1xuLmdsaWdodGJveC1jbGVhbiAuZ3NsaWRlLWRlc2NyaXB0aW9uIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLmdsaWdodGJveC1jbGVhbiAuZ2Rlc2MtaW5uZXIge1xuICBwYWRkaW5nOiAyMnB4IDIwcHg7XG59XG5cbi5nbGlnaHRib3gtY2xlYW4gLmdzbGlkZS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LWZhbWlseTogYXJpYWw7XG4gIGNvbG9yOiAjMDAwO1xuICBtYXJnaW4tYm90dG9tOiAxOXB4O1xuICBsaW5lLWhlaWdodDogMS40ZW07XG59XG5cbi5nbGlnaHRib3gtY2xlYW4gLmdzbGlkZS1kZXNjIHtcbiAgZm9udC1zaXplOiAwLjg2ZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtZmFtaWx5OiBhcmlhbDtcbiAgbGluZS1oZWlnaHQ6IDEuNGVtO1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nc2xpZGUtdmlkZW8ge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5ncHJldixcbi5nbGlnaHRib3gtY2xlYW4gLmduZXh0LFxuLmdsaWdodGJveC1jbGVhbiAuZ2Nsb3NlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5ncHJldiBwYXRoLFxuLmdsaWdodGJveC1jbGVhbiAuZ25leHQgcGF0aCxcbi5nbGlnaHRib3gtY2xlYW4gLmdjbG9zZSBwYXRoIHtcbiAgZmlsbDogI2ZmZjtcbn1cblxuLmdsaWdodGJveC1jbGVhbiAuZ3ByZXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEwMCU7XG4gIGxlZnQ6IDMwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG59XG5cbi5nbGlnaHRib3gtY2xlYW4gLmduZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMDAlO1xuICByaWdodDogMzBweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNTBweDtcbn1cblxuLmdsaWdodGJveC1jbGVhbiAuZ2Nsb3NlIHtcbiAgd2lkdGg6IDM1cHg7XG4gIGhlaWdodDogMzVweDtcbiAgdG9wOiAxNXB4O1xuICByaWdodDogMTBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nY2xvc2Ugc3ZnIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLmdsaWdodGJveC1jbGVhbiAuZ2Nsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLypDU1MgQW5pbWF0aW9ucyovXG4uZ2ZhZGVJbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBnZmFkZUluIDAuNXMgZWFzZTtcbiAgYW5pbWF0aW9uOiBnZmFkZUluIDAuNXMgZWFzZTtcbn1cblxuLmdmYWRlT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGdmYWRlT3V0IDAuNXMgZWFzZTtcbiAgYW5pbWF0aW9uOiBnZmFkZU91dCAwLjVzIGVhc2U7XG59XG5cbi5nc2xpZGVPdXRMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGdzbGlkZU91dExlZnQgMC4zcyBlYXNlO1xuICBhbmltYXRpb246IGdzbGlkZU91dExlZnQgMC4zcyBlYXNlO1xufVxuXG4uZ3NsaWRlSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGdzbGlkZUluTGVmdCAwLjNzIGVhc2U7XG4gIGFuaW1hdGlvbjogZ3NsaWRlSW5MZWZ0IDAuM3MgZWFzZTtcbn1cblxuLmdzbGlkZU91dFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGdzbGlkZU91dFJpZ2h0IDAuM3MgZWFzZTtcbiAgYW5pbWF0aW9uOiBnc2xpZGVPdXRSaWdodCAwLjNzIGVhc2U7XG59XG5cbi5nc2xpZGVJblJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGdzbGlkZUluUmlnaHQgMC4zcyBlYXNlO1xuICBhbmltYXRpb246IGdzbGlkZUluUmlnaHQgMC4zcyBlYXNlO1xufVxuXG4uZ3pvb21JbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBnem9vbUluIDAuNXMgZWFzZTtcbiAgYW5pbWF0aW9uOiBnem9vbUluIDAuNXMgZWFzZTtcbn1cblxuLmd6b29tT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGd6b29tT3V0IDAuNXMgZWFzZTtcbiAgYW5pbWF0aW9uOiBnem9vbU91dCAwLjVzIGVhc2U7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodGJveExvYWRlciB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGxpZ2h0Ym94TG9hZGVyIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBnZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBnZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIGdmYWRlT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQGtleWZyYW1lcyBnZmFkZU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBnc2xpZGVJbkxlZnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNjAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02MCUsIDAsIDApO1xuICB9XG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZ3NsaWRlSW5MZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNjAlLCAwLCAwKTtcbiAgfVxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZ3NsaWRlT3V0TGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02MCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYwJSwgMCwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cbkBrZXlmcmFtZXMgZ3NsaWRlT3V0TGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02MCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYwJSwgMCwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBnc2xpZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg2MCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNjAlLCAwLCAwKTtcbiAgfVxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBnc2xpZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg2MCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNjAlLCAwLCAwKTtcbiAgfVxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIGdzbGlkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNjAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYwJSwgMCwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQGtleWZyYW1lcyBnc2xpZGVPdXRSaWdodCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg2MCUsIDAsIDApO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBnem9vbUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjMsIDAuMywgMC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZ3pvb21JbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZ3pvb21PdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjMsIDAuMywgMC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZ3pvb21PdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjMsIDAuMywgMC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ2lubmVyLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG4gIC5nbGlnaHRib3gtY29udGFpbmVyIC5naW5uZXItY29udGFpbmVyLmRlc2MtdG9wIC5nc2xpZGUtZGVzY3JpcHRpb24ge1xuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDE7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDA7XG4gICAgb3JkZXI6IDA7XG4gIH1cbiAgLmdsaWdodGJveC1jb250YWluZXIgLmdpbm5lci1jb250YWluZXIuZGVzYy10b3AgLmdzbGlkZS1pbWFnZSxcbiAgLmdsaWdodGJveC1jb250YWluZXIgLmdpbm5lci1jb250YWluZXIuZGVzYy10b3AgLmdzbGlkZS1pbWFnZSBpbWcge1xuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDI7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDE7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLmdsaWdodGJveC1jb250YWluZXIgLmdpbm5lci1jb250YWluZXIuZGVzYy1sZWZ0IC5nc2xpZGUtZGVzY3JpcHRpb24ge1xuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDE7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDA7XG4gICAgb3JkZXI6IDA7XG4gIH1cbiAgLmdsaWdodGJveC1jb250YWluZXIgLmdpbm5lci1jb250YWluZXIuZGVzYy1sZWZ0IC5nc2xpZGUtaW1hZ2Uge1xuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDI7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDE7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLmdzbGlkZS1pbWFnZSBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDk3dmg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5nc2xpZGUtaW1hZ2UgaW1nLnpvb21hYmxlIHtcbiAgICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcbiAgICBjdXJzb3I6IHpvb20taW47XG4gIH1cbiAgLnpvb21lZCAuZ3NsaWRlLWltYWdlIGltZy56b29tYWJsZSB7XG4gICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XG4gICAgY3Vyc29yOiBncmFiO1xuICB9XG4gIC5nc2xpZGUtaW5saW5lIHtcbiAgICBtYXgtaGVpZ2h0OiA5NXZoO1xuICB9XG4gIC5nc2xpZGUtZXh0ZXJuYWwge1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICB9XG4gIC5nc2xpZGUtZGVzY3JpcHRpb24uZGVzY3JpcHRpb24tbGVmdCxcbiAgLmdzbGlkZS1kZXNjcmlwdGlvbi5kZXNjcmlwdGlvbi1yaWdodCB7XG4gICAgbWF4LXdpZHRoOiAyNzVweDtcbiAgfVxuICAuZ2xpZ2h0Ym94LW9wZW4ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZ292ZXJsYXkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45Mik7XG4gIH1cbiAgLmdsaWdodGJveC1jbGVhbiAuZ3NsaWRlLW1lZGlhIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDFweCAycHggOXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuNjUpO1xuICAgIGJveC1zaGFkb3c6IDFweCAycHggOXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuNjUpO1xuICB9XG4gIC5nbGlnaHRib3gtY2xlYW4gLmRlc2NyaXB0aW9uLWxlZnQgLmdkZXNjLWlubmVyLFxuICAuZ2xpZ2h0Ym94LWNsZWFuIC5kZXNjcmlwdGlvbi1yaWdodCAuZ2Rlc2MtaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuICAuZ2xpZ2h0Ym94LWNsZWFuIC5ncHJldixcbiAgLmdsaWdodGJveC1jbGVhbiAuZ25leHQsXG4gIC5nbGlnaHRib3gtY2xlYW4gLmdjbG9zZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMyKTtcbiAgfVxuICAuZ2xpZ2h0Ym94LWNsZWFuIC5ncHJldjpob3ZlcixcbiAgLmdsaWdodGJveC1jbGVhbiAuZ25leHQ6aG92ZXIsXG4gIC5nbGlnaHRib3gtY2xlYW4gLmdjbG9zZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICB9XG4gIC5nbGlnaHRib3gtY2xlYW4gLmdwcmV2IHtcbiAgICB0b3A6IDQ1JTtcbiAgfVxuICAuZ2xpZ2h0Ym94LWNsZWFuIC5nbmV4dCB7XG4gICAgdG9wOiA0NSU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuZ2xpZ2h0Ym94LWNsZWFuIC5nY2xvc2Uge1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICByaWdodDogMjBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gIC5nb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgfVxufSJdfQ== */

@charset "UTF-8";
/**
 * basicss overrides
 *
 * any defaults in basicss/basicss/_settings.scss
 * may be overridden...
 *
 * e.g. $prototyping: true;
 */
/**
 * basicss.scss
 *
 * Author: Marian Friedmann
 *
 */
/* ====================================================
   Reset, Defaults, Mixins
   ==================================================== */
/**
 * Reset, Default settings
 */
/**
 * _settings.scss
 *
 * Author: Marian Friedmann
 */
/**
* Variables Mode
*/
/**
* Default colors
*/
/**
 * Default objects
 */
/**
 * Default helper
 */
/**
 * Default fonts
 */
/**
 * Default font size
 */
/**
 * Default headings
 */
/**
 *  Default spacing
 */
/**
 * Default breakpoints
 */
/**
 * Default spaces
 */
/**
 * Default constrains
 */
/**
 * Arrows
 */
/**
 * Global Variables
 */
/**
 * Mixins
 */
/**
 * _media.scss
 *
 * Author: Marius Scheel
 *
 * Usage:
 * @include media(300px);
 * or @include media(300px, false);
 * or @include media(max-width 300px);
 * or @include media(100px max-width 300px);
 * or @include media(max-width 100px max-width 300px);
 * or @include media(max-width 100px max-width 300px, true);
 *
 */
/**
 * _hdpi.scss
 *
 * Author: Marius Scheel
 *
 * defaults to 1.3 to include Google Nexus 7
 * adapted from bourbon:
 * https://github.com/thoughtbot/bourbon/blob/master/app/assets/stylesheets/css3/_hidpi-media-query.scss
 * 
 * Usage:
 * @include hdpi {
 *  // your css for hdpi displays
 * };
 *
 * you can use a custom ratio, if you like:
 * @include hdpi(1.5) {
 *  // your css
 * };
 */
/**
 * _retina-image.scss
 *
 * Author: Marius Scheel
 *
 * Usage:
 * .hero {
 *  @include retina-image("../path/to/hero", 200px 400px);
 * }
 *
 * to use a specific filename:
 * .hero {
 *  @include retina-image("../path/to/hero", 200px 400px, "../path/to/retina-hero"); 
 * } 
 *
 * modified version of bourbon's retina-image mixin.
 * The mixin uses a @2x.png retina filename by default.
 * https://github.com/thoughtbot/bourbon/blob/master/app/assets/stylesheets/addons/_retina-image.scss
 */
/**
 * _font-size.scss
 *
 * Author: Marian Friedmann
 *
 */
/**
 * _px-to-rem.scss
 *
 * Author: Marian Friedmann
 *
 * Usage:
 * .element {
 *   @include px-to-rem(padding, 0 24px)
 * }
 *
 * Output:
 * .element {
 *   padding: 0 24px;
 *   padding: 0 1.5rem;
 * }
 *
 */
/**
 * _clearfix.scss
 *
 * Author: Marian Friedmann
 *
 * Usage:
 * .element {
 *   @include clearfix;
 * }
 *
 */
/**
 * _ellipsis.scss
 *
 * Author: Marian Friedmann
 *
 * ellipsis mixin 
 *
 */
/* ====================================================
   Base Styles
   ==================================================== */
/**
 * _main.scss
 *
 * Author: Marian Friedmann
 *
 */
/**
 * _baseline.scss
 *
 * Author: Marian Friedmann
 *
 */
/**
 * _typo.scss
 *
 * Author: Marian Friedmann
 *
 */
/**
 * _links.scss
 *
 * Author: Marian Friedmann
 *
 */
/**
 * media-src.scss
 *
 * Author: Marian Friedmann
 *
 */
/* ====================================================
   Objects
   ==================================================== */
/**
 * _grid.scss
 *
 * Author: Marian Friedmann
 *
 * Usage:
 * <div class="grid">
 *   <div class="grid__item  width--1of1  width-tab--1of3  width-desk--1of4">
 *       ...
 *   </div><!--
 *--><div class="grid__item  width--1of1  width-tab--2of3  width-desk--3of4">
 *     <div class="grid">
 *       <div class="grid__item  width--1of1  width-tab--1of2">
 *           ...
 *       </div><!--
 *    --><div class="grid__item  width--1of1  width-tab--1of2">
 *           ...
 *       </div>
 *     </div>
 *   </div>
 * </div>
 *
 * the example above combines the grid items with the widths from helper/_width.scss
 */
/**
 * Reverse the order of grid items
 */
/**
 * adds a seperator line to the grid
 */
/**
 * Grid items without gutters
 */
/**
 * Grid size variations
 */
/**
 * _btn.scss
 *
 * Author: Marian Friedmann
 *
 * Usage:
 * <a class="btn [btn--secondary]" href="#">btn</a>
 * <input type="text" class="btn">
 * <button class="btn">btn</button>
 */
/* Button disguised as a link. */
/**
 * _constrain.scss
 *
 * Author: Marius Scheel
 *
 */
/**
 * _nav.scss
 *
 * Author: Marian Friedmann
 *
 * source: Nav abstraction from csswizardry.com/2011/09/the-nav-abstraction
 *
 * Can be used on an `ol` or `ul` and displays the list items horizontally.
 * Extend it with the following subclasses:
 *
 * - nav--stacked    // displays the list items vertically
 * - nav--banner     // centres the list
 * - nav--block      // expands list items clickable areas
 * - nav--fit        // forces the list to occupy the full width of its parent
 * - nav--keywords   // display as a list of keywords
 * - nav--breadcrumb // display as breadcrumbs
 * - nav--parallel   // display nav items with parallel separator
 *
 * Markup:
 *
 * <ul class="nav">
 *   <li><a href=#>Home</a></li>
 *   <li><a href=#>About</a></li>
 *   <li><a href=#>Portfolio</a></li>
 *   <li><a href=#>Contact</a></li>
 * </ul>
 */
/**
 * 'nav-stacked' displays the list items vertically
 */
/**
 * 'nav-banner' centres the list
 */
/**
 * 'nav--block' expands list items clickable areas with padding
 */
/**
 * 'nav--fit' forces the list to occupy the full width of its parent
 */
/**
 * 'nav--keywords' display as a list of keywords
 */
/**
 * 'nav--breadcrumbs' display as breadcrumbs
 */
/**
 * 'nav--parallel' display with parallel separator
 */
/**
 * _box.scss
 *
 * modified version of:
 * https://github.com/inuitcss/objects.box/blob/master/_objects.box.scss
 *
 */
/**
 * _media.scss
 *
 * displays image and text side by side
 *
 * Example markup:
 *
    <div class="media media--small">
      <div class="media__img"></div>
      <div class="media__body"></div>
    </div>
 *
 * use the `.media--rev` modifier to reverse the the image location and put it to the right
 * use the `.media--small` modifier, to decrease the gutter width between image and content
 *
 * for more information have a look at:
 * stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code
 *
 */
/**
 * _bare-list.scss
 *
 */
/**
 * _ui-list.scss
 *
 * based on Harry Roberts ui-list object:
 * https://github.com/inuitcss/objects.ui-list/blob/master/_objects.ui-list.scss
 *
 * creates blocky items, can be used with lists or the corresponding markup:
 *
 * <div class="ui-list">
 *  <div class="ui-list__item"></div>
 *  <div class="ui-list__item"></div>
 *  <div class="ui-list__item"></div>
 * </div>
 *
 * or:
 *
 * <ul class="ui-list ui-list--small">
 *  <li></li>
 *  <li></li>
 *  <li></li>
 * </ul>
 *
 * can optionally be used with --separator and --border, where --separator
 * adds borders to the list element and --border to the list itself
 *
 * comes with different size modifiers
 *
 */
/**
 * Modifiers for sizing the list
 */
/**
 * _arrow.scss
 *
 * Author: Marian Friedmann
 *
 * Usage:
 * <div class="arrow arrow--top-left">
 *  ...
 * </div>
 *
 */
/**
 * Arrow Top
 */
/**
 * Arrow Bottom
 */
/**
 * Arrow Left
 */
/**
 * Arrow Right
 */
/**
 * _icon.scss
 *
 * Author: Marian Friedmann
 *
 * Usage:
 * <i class="icon [icon--nav-toggle]"></i>
 *
 */
/**
 * Alle icons werden als .svg exportiert unter
 * /assets/images/icons abgelegt und von grunt-svgmin
 * und grunt-grunticon weiterverarbeitet.
 *
 * Output unter /assets/images/icons/grunticon
 */
/**
 * Beispiel für ein Icon
 *
 * .icon--mobile-nav-toggle {
 *   @include background-svg("../images/nav-toggle");
 * }
 */
/* ====================================================
   Helper Classes
   ==================================================== */
/**
 * _spacing.scss
 *
 * Author: Marian Friedmann
 *
 * Usage:
 * <div class="space--top  space-tab--top-double">
 *   ...
 * </div>
 *
 */
/**
 * Basic & spacing
 */
/**
 * _width.scss
 *
 * Author: Marian Friedmann
 *
 * Usage:
 * <div class="grid">
 *   <div class="grid__item  width--1of1  width-tab--1of3  width-desk--1of4">
 *     ...
 *   </div>
 *   <div class="grid__item  width--1of1  width-tab--2of3  width-desk--3of4">
 *     ...
 *   </div>
 * </div>
 *
 */
/**
 * _typo.scss
 *
 * Author: Marian Friedmann
 *
 * Alt Text Styles.
 *
 * ## alignment
 * - text--left
 * - text--right
 * - text--center
 *
 * ## utilities
 * - text--secondary
 * - text--inherit-color
 * - text--no-wrap
 * - text--large
 *
 * Usage:
 * <div class="text--large">
 *   <h1>Lorem Ipsum</h1>
 *   <p>Lorem ipsum</p>
 * </div>
 *
 */
/**
 * Prevent text from wrapping
 */
/**
 * Display text in secondary font
 */
/**
 * Display larger text
 */
/**
* _color.scss
*/
.hero {
  width: 100%;
  display: block;
}
.hero figure {
  margin: 0;
}
.hero img {
  display: block;
  margin: 0;
  padding: 0;
  width: 100%;
  height: 250px;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 721px) {
  .hero img {
    height: 350px;
  }
}
@media screen and (min-width: 1200px) {
  .hero img {
    height: 400px;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlcm8uY3NzIiwiX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9fYmFzaWNzcy12YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYXNpY3NzL2Jhc2ljc3MvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL21peGlucy9fbWVkaWEuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYXNpY3NzL2Jhc2ljc3MvbWl4aW5zL19oZHBpLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL21peGlucy9fcmV0aW5hLWltYWdlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL21peGlucy9fZm9udC1zaXplLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL21peGlucy9fcHgtdG8tcmVtLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL21peGlucy9fY2xlYXJmaXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYXNpY3NzL2Jhc2ljc3MvbWl4aW5zL19lbGxpcHNpcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Jhc2ljc3MvYmFzaWNzcy9iYXNlL19tYWluLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL2Jhc2UvX2Jhc2VsaW5lLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL2Jhc2UvX3R5cG8uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYXNpY3NzL2Jhc2ljc3MvYmFzZS9fbGlua3Muc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYXNpY3NzL2Jhc2ljc3MvYmFzZS9fbWVkaWEtc3JjLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL29iamVjdHMvX2dyaWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYXNpY3NzL2Jhc2ljc3Mvb2JqZWN0cy9fYnRuLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL29iamVjdHMvX2NvbnN0cmFpbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Jhc2ljc3MvYmFzaWNzcy9vYmplY3RzL19uYXYuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYXNpY3NzL2Jhc2ljc3Mvb2JqZWN0cy9fYm94LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL29iamVjdHMvX21lZGlhLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL29iamVjdHMvX2JhcmUtbGlzdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Jhc2ljc3MvYmFzaWNzcy9vYmplY3RzL191aS1saXN0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL29iamVjdHMvX2Fycm93LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL29iamVjdHMvX2ljb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYXNpY3NzL2Jhc2ljc3MvaGVscGVyL19zcGFjaW5nLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL2hlbHBlci9fd2lkdGguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYXNpY3NzL2Jhc2ljc3MvaGVscGVyL190eXBvLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFzaWNzcy9iYXNpY3NzL2hlbHBlci9fY29sb3Iuc2NzcyIsImhlcm8uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7Ozs7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FBT0E7O3lEQUFBO0FBTUE7O0VBQUE7QUNiQTs7OztFQUFBO0FBTUE7O0NBQUE7QUFLQTs7Q0FBQTtBQWFBOztFQUFBO0FBY0E7O0VBQUE7QUFVQTs7RUFBQTtBQU9BOztFQUFBO0FBT0E7O0VBQUE7QUFnQ0E7O0VBQUE7QUFPQTs7RUFBQTtBQVdDOztFQUFBO0FBZUQ7O0VBQUE7QUFXQTs7RUFBQTtBQU1BOztFQUFBO0FEN0hBOztFQUFBO0FFbkJBOzs7Ozs7Ozs7Ozs7O0VBQUE7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7QUNBQTs7Ozs7Ozs7OztFQUFBO0FDQUE7Ozs7Ozs7RUFBQTtBUmlDQTs7eURBQUE7QVNqQ0E7Ozs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBQ0NBOzs7OztFQUFBO0FDREE7Ozs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBYjJDQTs7eURBQUE7QWNtQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7QUE0Q0E7O0VBQUE7QUFXQTs7RUFBQTtBQTBDQTs7RUFBQTtBQVdBOztFQUFBO0FDMUtBOzs7Ozs7Ozs7RUFBQTtBQTZDQSxnQ0FBQTtBQzVDQTs7Ozs7RUFBQTtBQ0RBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FBeUNBOztFQUFBO0FBYUE7O0VBQUE7QUFRQTs7RUFBQTtBQXFCQTs7RUFBQTtBQWdCQTs7RUFBQTtBQWVBOztFQUFBO0FBZUE7O0VBQUE7QUNoSUE7Ozs7OztFQUFBO0FDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FDQUE7OztFQUFBO0FDREE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FBa0VBOztFQUFBO0FDakVBOzs7Ozs7Ozs7O0VBQUE7QUF1QkE7O0VBQUE7QUEyQ0E7O0VBQUE7QUEyQ0E7O0VBQUE7QUEyQ0E7O0VBQUE7QUN6SkE7Ozs7Ozs7O0VBQUE7QUFVQTs7Ozs7O0VBQUE7QUFxQkE7Ozs7OztFQUFBO0F2QjJCQTs7eURBQUE7QXdCaEJBOzs7Ozs7Ozs7O0VBQUE7QUFZQTs7RUFBQTtBQ2dGQTs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7QUN6SEE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FBMEJBOztFQUFBO0FBT0E7O0VBQUE7QUFPQTs7RUFBQTtBQ25CQTs7Q0FBQTtBQ2hDQTtFQUNFLFdBQUE7RUFDQSxjQUFBO0E5QjJkRjtBOEIxZEU7RUFDRSxTQUFBO0E5QjRkSjtBOEIxZEU7RUFDRSxjQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBO0tBQUEsaUJBQUE7QTlCNGRKO0FJdGRJO0UwQlpGO0lBUUksYUFBQTtFOUI4ZEo7QUFDRjtBSTNkSTtFMEJaRjtJQVdJLGFBQUE7RTlCZ2VKO0FBQ0YiLCJmaWxlIjoiaGVyby5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIGJhc2ljc3Mgb3ZlcnJpZGVzXG4gKlxuICogYW55IGRlZmF1bHRzIGluIGJhc2ljc3MvYmFzaWNzcy9fc2V0dGluZ3Muc2Nzc1xuICogbWF5IGJlIG92ZXJyaWRkZW4uLi5cbiAqXG4gKiBlLmcuICRwcm90b3R5cGluZzogdHJ1ZTtcbiAqL1xuLyoqXG4gKiBiYXNpY3NzLnNjc3NcbiAqXG4gKiBBdXRob3I6IE1hcmlhbiBGcmllZG1hbm5cbiAqXG4gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJlc2V0LCBEZWZhdWx0cywgTWl4aW5zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlc2V0LCBEZWZhdWx0IHNldHRpbmdzXG4gKi9cbi8qKlxuICogX3NldHRpbmdzLnNjc3NcbiAqXG4gKiBBdXRob3I6IE1hcmlhbiBGcmllZG1hbm5cbiAqL1xuLyoqXG4qIFZhcmlhYmxlcyBNb2RlXG4qL1xuLyoqXG4qIERlZmF1bHQgY29sb3JzXG4qL1xuLyoqXG4gKiBEZWZhdWx0IG9iamVjdHNcbiAqL1xuLyoqXG4gKiBEZWZhdWx0IGhlbHBlclxuICovXG4vKipcbiAqIERlZmF1bHQgZm9udHNcbiAqL1xuLyoqXG4gKiBEZWZhdWx0IGZvbnQgc2l6ZVxuICovXG4vKipcbiAqIERlZmF1bHQgaGVhZGluZ3NcbiAqL1xuLyoqXG4gKiAgRGVmYXVsdCBzcGFjaW5nXG4gKi9cbi8qKlxuICogRGVmYXVsdCBicmVha3BvaW50c1xuICovXG4vKipcbiAqIERlZmF1bHQgc3BhY2VzXG4gKi9cbi8qKlxuICogRGVmYXVsdCBjb25zdHJhaW5zXG4gKi9cbi8qKlxuICogQXJyb3dzXG4gKi9cbi8qKlxuICogR2xvYmFsIFZhcmlhYmxlc1xuICovXG4vKipcbiAqIE1peGluc1xuICovXG4vKipcbiAqIF9tZWRpYS5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpdXMgU2NoZWVsXG4gKlxuICogVXNhZ2U6XG4gKiBAaW5jbHVkZSBtZWRpYSgzMDBweCk7XG4gKiBvciBAaW5jbHVkZSBtZWRpYSgzMDBweCwgZmFsc2UpO1xuICogb3IgQGluY2x1ZGUgbWVkaWEobWF4LXdpZHRoIDMwMHB4KTtcbiAqIG9yIEBpbmNsdWRlIG1lZGlhKDEwMHB4IG1heC13aWR0aCAzMDBweCk7XG4gKiBvciBAaW5jbHVkZSBtZWRpYShtYXgtd2lkdGggMTAwcHggbWF4LXdpZHRoIDMwMHB4KTtcbiAqIG9yIEBpbmNsdWRlIG1lZGlhKG1heC13aWR0aCAxMDBweCBtYXgtd2lkdGggMzAwcHgsIHRydWUpO1xuICpcbiAqL1xuLyoqXG4gKiBfaGRwaS5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpdXMgU2NoZWVsXG4gKlxuICogZGVmYXVsdHMgdG8gMS4zIHRvIGluY2x1ZGUgR29vZ2xlIE5leHVzIDdcbiAqIGFkYXB0ZWQgZnJvbSBib3VyYm9uOlxuICogaHR0cHM6Ly9naXRodWIuY29tL3Rob3VnaHRib3QvYm91cmJvbi9ibG9iL21hc3Rlci9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3NcbiAqIFxuICogVXNhZ2U6XG4gKiBAaW5jbHVkZSBoZHBpIHtcbiAqICAvLyB5b3VyIGNzcyBmb3IgaGRwaSBkaXNwbGF5c1xuICogfTtcbiAqXG4gKiB5b3UgY2FuIHVzZSBhIGN1c3RvbSByYXRpbywgaWYgeW91IGxpa2U6XG4gKiBAaW5jbHVkZSBoZHBpKDEuNSkge1xuICogIC8vIHlvdXIgY3NzXG4gKiB9O1xuICovXG4vKipcbiAqIF9yZXRpbmEtaW1hZ2Uuc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaXVzIFNjaGVlbFxuICpcbiAqIFVzYWdlOlxuICogLmhlcm8ge1xuICogIEBpbmNsdWRlIHJldGluYS1pbWFnZShcIi4uL3BhdGgvdG8vaGVyb1wiLCAyMDBweCA0MDBweCk7XG4gKiB9XG4gKlxuICogdG8gdXNlIGEgc3BlY2lmaWMgZmlsZW5hbWU6XG4gKiAuaGVybyB7XG4gKiAgQGluY2x1ZGUgcmV0aW5hLWltYWdlKFwiLi4vcGF0aC90by9oZXJvXCIsIDIwMHB4IDQwMHB4LCBcIi4uL3BhdGgvdG8vcmV0aW5hLWhlcm9cIik7IFxuICogfSBcbiAqXG4gKiBtb2RpZmllZCB2ZXJzaW9uIG9mIGJvdXJib24ncyByZXRpbmEtaW1hZ2UgbWl4aW4uXG4gKiBUaGUgbWl4aW4gdXNlcyBhIEAyeC5wbmcgcmV0aW5hIGZpbGVuYW1lIGJ5IGRlZmF1bHQuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vdGhvdWdodGJvdC9ib3VyYm9uL2Jsb2IvbWFzdGVyL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2Nzc1xuICovXG4vKipcbiAqIF9mb250LXNpemUuc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqL1xuLyoqXG4gKiBfcHgtdG8tcmVtLnNjc3NcbiAqXG4gKiBBdXRob3I6IE1hcmlhbiBGcmllZG1hbm5cbiAqXG4gKiBVc2FnZTpcbiAqIC5lbGVtZW50IHtcbiAqICAgQGluY2x1ZGUgcHgtdG8tcmVtKHBhZGRpbmcsIDAgMjRweClcbiAqIH1cbiAqXG4gKiBPdXRwdXQ6XG4gKiAuZWxlbWVudCB7XG4gKiAgIHBhZGRpbmc6IDAgMjRweDtcbiAqICAgcGFkZGluZzogMCAxLjVyZW07XG4gKiB9XG4gKlxuICovXG4vKipcbiAqIF9jbGVhcmZpeC5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogVXNhZ2U6XG4gKiAuZWxlbWVudCB7XG4gKiAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICogfVxuICpcbiAqL1xuLyoqXG4gKiBfZWxsaXBzaXMuc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqIGVsbGlwc2lzIG1peGluIFxuICpcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZSBTdHlsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogX21haW4uc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqL1xuLyoqXG4gKiBfYmFzZWxpbmUuc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqL1xuLyoqXG4gKiBfdHlwby5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICovXG4vKipcbiAqIF9saW5rcy5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICovXG4vKipcbiAqIG1lZGlhLXNyYy5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBPYmplY3RzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIF9ncmlkLnNjc3NcbiAqXG4gKiBBdXRob3I6IE1hcmlhbiBGcmllZG1hbm5cbiAqXG4gKiBVc2FnZTpcbiAqIDxkaXYgY2xhc3M9XCJncmlkXCI+XG4gKiAgIDxkaXYgY2xhc3M9XCJncmlkX19pdGVtICB3aWR0aC0tMW9mMSAgd2lkdGgtdGFiLS0xb2YzICB3aWR0aC1kZXNrLS0xb2Y0XCI+XG4gKiAgICAgICAuLi5cbiAqICAgPC9kaXY+PCEtLVxuICotLT48ZGl2IGNsYXNzPVwiZ3JpZF9faXRlbSAgd2lkdGgtLTFvZjEgIHdpZHRoLXRhYi0tMm9mMyAgd2lkdGgtZGVzay0tM29mNFwiPlxuICogICAgIDxkaXYgY2xhc3M9XCJncmlkXCI+XG4gKiAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZF9faXRlbSAgd2lkdGgtLTFvZjEgIHdpZHRoLXRhYi0tMW9mMlwiPlxuICogICAgICAgICAgIC4uLlxuICogICAgICAgPC9kaXY+PCEtLVxuICogICAgLS0+PGRpdiBjbGFzcz1cImdyaWRfX2l0ZW0gIHdpZHRoLS0xb2YxICB3aWR0aC10YWItLTFvZjJcIj5cbiAqICAgICAgICAgICAuLi5cbiAqICAgICAgIDwvZGl2PlxuICogICAgIDwvZGl2PlxuICogICA8L2Rpdj5cbiAqIDwvZGl2PlxuICpcbiAqIHRoZSBleGFtcGxlIGFib3ZlIGNvbWJpbmVzIHRoZSBncmlkIGl0ZW1zIHdpdGggdGhlIHdpZHRocyBmcm9tIGhlbHBlci9fd2lkdGguc2Nzc1xuICovXG4vKipcbiAqIFJldmVyc2UgdGhlIG9yZGVyIG9mIGdyaWQgaXRlbXNcbiAqL1xuLyoqXG4gKiBhZGRzIGEgc2VwZXJhdG9yIGxpbmUgdG8gdGhlIGdyaWRcbiAqL1xuLyoqXG4gKiBHcmlkIGl0ZW1zIHdpdGhvdXQgZ3V0dGVyc1xuICovXG4vKipcbiAqIEdyaWQgc2l6ZSB2YXJpYXRpb25zXG4gKi9cbi8qKlxuICogX2J0bi5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogVXNhZ2U6XG4gKiA8YSBjbGFzcz1cImJ0biBbYnRuLS1zZWNvbmRhcnldXCIgaHJlZj1cIiNcIj5idG48L2E+XG4gKiA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImJ0blwiPlxuICogPGJ1dHRvbiBjbGFzcz1cImJ0blwiPmJ0bjwvYnV0dG9uPlxuICovXG4vKiBCdXR0b24gZGlzZ3Vpc2VkIGFzIGEgbGluay4gKi9cbi8qKlxuICogX2NvbnN0cmFpbi5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpdXMgU2NoZWVsXG4gKlxuICovXG4vKipcbiAqIF9uYXYuc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqIHNvdXJjZTogTmF2IGFic3RyYWN0aW9uIGZyb20gY3Nzd2l6YXJkcnkuY29tLzIwMTEvMDkvdGhlLW5hdi1hYnN0cmFjdGlvblxuICpcbiAqIENhbiBiZSB1c2VkIG9uIGFuIGBvbGAgb3IgYHVsYCBhbmQgZGlzcGxheXMgdGhlIGxpc3QgaXRlbXMgaG9yaXpvbnRhbGx5LlxuICogRXh0ZW5kIGl0IHdpdGggdGhlIGZvbGxvd2luZyBzdWJjbGFzc2VzOlxuICpcbiAqIC0gbmF2LS1zdGFja2VkICAgIC8vIGRpc3BsYXlzIHRoZSBsaXN0IGl0ZW1zIHZlcnRpY2FsbHlcbiAqIC0gbmF2LS1iYW5uZXIgICAgIC8vIGNlbnRyZXMgdGhlIGxpc3RcbiAqIC0gbmF2LS1ibG9jayAgICAgIC8vIGV4cGFuZHMgbGlzdCBpdGVtcyBjbGlja2FibGUgYXJlYXNcbiAqIC0gbmF2LS1maXQgICAgICAgIC8vIGZvcmNlcyB0aGUgbGlzdCB0byBvY2N1cHkgdGhlIGZ1bGwgd2lkdGggb2YgaXRzIHBhcmVudFxuICogLSBuYXYtLWtleXdvcmRzICAgLy8gZGlzcGxheSBhcyBhIGxpc3Qgb2Yga2V5d29yZHNcbiAqIC0gbmF2LS1icmVhZGNydW1iIC8vIGRpc3BsYXkgYXMgYnJlYWRjcnVtYnNcbiAqIC0gbmF2LS1wYXJhbGxlbCAgIC8vIGRpc3BsYXkgbmF2IGl0ZW1zIHdpdGggcGFyYWxsZWwgc2VwYXJhdG9yXG4gKlxuICogTWFya3VwOlxuICpcbiAqIDx1bCBjbGFzcz1cIm5hdlwiPlxuICogICA8bGk+PGEgaHJlZj0jPkhvbWU8L2E+PC9saT5cbiAqICAgPGxpPjxhIGhyZWY9Iz5BYm91dDwvYT48L2xpPlxuICogICA8bGk+PGEgaHJlZj0jPlBvcnRmb2xpbzwvYT48L2xpPlxuICogICA8bGk+PGEgaHJlZj0jPkNvbnRhY3Q8L2E+PC9saT5cbiAqIDwvdWw+XG4gKi9cbi8qKlxuICogJ25hdi1zdGFja2VkJyBkaXNwbGF5cyB0aGUgbGlzdCBpdGVtcyB2ZXJ0aWNhbGx5XG4gKi9cbi8qKlxuICogJ25hdi1iYW5uZXInIGNlbnRyZXMgdGhlIGxpc3RcbiAqL1xuLyoqXG4gKiAnbmF2LS1ibG9jaycgZXhwYW5kcyBsaXN0IGl0ZW1zIGNsaWNrYWJsZSBhcmVhcyB3aXRoIHBhZGRpbmdcbiAqL1xuLyoqXG4gKiAnbmF2LS1maXQnIGZvcmNlcyB0aGUgbGlzdCB0byBvY2N1cHkgdGhlIGZ1bGwgd2lkdGggb2YgaXRzIHBhcmVudFxuICovXG4vKipcbiAqICduYXYtLWtleXdvcmRzJyBkaXNwbGF5IGFzIGEgbGlzdCBvZiBrZXl3b3Jkc1xuICovXG4vKipcbiAqICduYXYtLWJyZWFkY3J1bWJzJyBkaXNwbGF5IGFzIGJyZWFkY3J1bWJzXG4gKi9cbi8qKlxuICogJ25hdi0tcGFyYWxsZWwnIGRpc3BsYXkgd2l0aCBwYXJhbGxlbCBzZXBhcmF0b3JcbiAqL1xuLyoqXG4gKiBfYm94LnNjc3NcbiAqXG4gKiBtb2RpZmllZCB2ZXJzaW9uIG9mOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2ludWl0Y3NzL29iamVjdHMuYm94L2Jsb2IvbWFzdGVyL19vYmplY3RzLmJveC5zY3NzXG4gKlxuICovXG4vKipcbiAqIF9tZWRpYS5zY3NzXG4gKlxuICogZGlzcGxheXMgaW1hZ2UgYW5kIHRleHQgc2lkZSBieSBzaWRlXG4gKlxuICogRXhhbXBsZSBtYXJrdXA6XG4gKlxuICAgIDxkaXYgY2xhc3M9XCJtZWRpYSBtZWRpYS0tc21hbGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZWRpYV9faW1nXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWVkaWFfX2JvZHlcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAqXG4gKiB1c2UgdGhlIGAubWVkaWEtLXJldmAgbW9kaWZpZXIgdG8gcmV2ZXJzZSB0aGUgdGhlIGltYWdlIGxvY2F0aW9uIGFuZCBwdXQgaXQgdG8gdGhlIHJpZ2h0XG4gKiB1c2UgdGhlIGAubWVkaWEtLXNtYWxsYCBtb2RpZmllciwgdG8gZGVjcmVhc2UgdGhlIGd1dHRlciB3aWR0aCBiZXR3ZWVuIGltYWdlIGFuZCBjb250ZW50XG4gKlxuICogZm9yIG1vcmUgaW5mb3JtYXRpb24gaGF2ZSBhIGxvb2sgYXQ6XG4gKiBzdHViYm9ybmVsbGEub3JnL2NvbnRlbnQvMjAxMC8wNi8yNS90aGUtbWVkaWEtb2JqZWN0LXNhdmVzLWh1bmRyZWRzLW9mLWxpbmVzLW9mLWNvZGVcbiAqXG4gKi9cbi8qKlxuICogX2JhcmUtbGlzdC5zY3NzXG4gKlxuICovXG4vKipcbiAqIF91aS1saXN0LnNjc3NcbiAqXG4gKiBiYXNlZCBvbiBIYXJyeSBSb2JlcnRzIHVpLWxpc3Qgb2JqZWN0OlxuICogaHR0cHM6Ly9naXRodWIuY29tL2ludWl0Y3NzL29iamVjdHMudWktbGlzdC9ibG9iL21hc3Rlci9fb2JqZWN0cy51aS1saXN0LnNjc3NcbiAqXG4gKiBjcmVhdGVzIGJsb2NreSBpdGVtcywgY2FuIGJlIHVzZWQgd2l0aCBsaXN0cyBvciB0aGUgY29ycmVzcG9uZGluZyBtYXJrdXA6XG4gKlxuICogPGRpdiBjbGFzcz1cInVpLWxpc3RcIj5cbiAqICA8ZGl2IGNsYXNzPVwidWktbGlzdF9faXRlbVwiPjwvZGl2PlxuICogIDxkaXYgY2xhc3M9XCJ1aS1saXN0X19pdGVtXCI+PC9kaXY+XG4gKiAgPGRpdiBjbGFzcz1cInVpLWxpc3RfX2l0ZW1cIj48L2Rpdj5cbiAqIDwvZGl2PlxuICpcbiAqIG9yOlxuICpcbiAqIDx1bCBjbGFzcz1cInVpLWxpc3QgdWktbGlzdC0tc21hbGxcIj5cbiAqICA8bGk+PC9saT5cbiAqICA8bGk+PC9saT5cbiAqICA8bGk+PC9saT5cbiAqIDwvdWw+XG4gKlxuICogY2FuIG9wdGlvbmFsbHkgYmUgdXNlZCB3aXRoIC0tc2VwYXJhdG9yIGFuZCAtLWJvcmRlciwgd2hlcmUgLS1zZXBhcmF0b3JcbiAqIGFkZHMgYm9yZGVycyB0byB0aGUgbGlzdCBlbGVtZW50IGFuZCAtLWJvcmRlciB0byB0aGUgbGlzdCBpdHNlbGZcbiAqXG4gKiBjb21lcyB3aXRoIGRpZmZlcmVudCBzaXplIG1vZGlmaWVyc1xuICpcbiAqL1xuLyoqXG4gKiBNb2RpZmllcnMgZm9yIHNpemluZyB0aGUgbGlzdFxuICovXG4vKipcbiAqIF9hcnJvdy5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogVXNhZ2U6XG4gKiA8ZGl2IGNsYXNzPVwiYXJyb3cgYXJyb3ctLXRvcC1sZWZ0XCI+XG4gKiAgLi4uXG4gKiA8L2Rpdj5cbiAqXG4gKi9cbi8qKlxuICogQXJyb3cgVG9wXG4gKi9cbi8qKlxuICogQXJyb3cgQm90dG9tXG4gKi9cbi8qKlxuICogQXJyb3cgTGVmdFxuICovXG4vKipcbiAqIEFycm93IFJpZ2h0XG4gKi9cbi8qKlxuICogX2ljb24uc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqIFVzYWdlOlxuICogPGkgY2xhc3M9XCJpY29uIFtpY29uLS1uYXYtdG9nZ2xlXVwiPjwvaT5cbiAqXG4gKi9cbi8qKlxuICogQWxsZSBpY29ucyB3ZXJkZW4gYWxzIC5zdmcgZXhwb3J0aWVydCB1bnRlclxuICogL2Fzc2V0cy9pbWFnZXMvaWNvbnMgYWJnZWxlZ3QgdW5kIHZvbiBncnVudC1zdmdtaW5cbiAqIHVuZCBncnVudC1ncnVudGljb24gd2VpdGVydmVyYXJiZWl0ZXQuXG4gKlxuICogT3V0cHV0IHVudGVyIC9hc3NldHMvaW1hZ2VzL2ljb25zL2dydW50aWNvblxuICovXG4vKipcbiAqIEJlaXNwaWVsIGbDvHIgZWluIEljb25cbiAqXG4gKiAuaWNvbi0tbW9iaWxlLW5hdi10b2dnbGUge1xuICogICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXN2ZyhcIi4uL2ltYWdlcy9uYXYtdG9nZ2xlXCIpO1xuICogfVxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBIZWxwZXIgQ2xhc3Nlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBfc3BhY2luZy5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogVXNhZ2U6XG4gKiA8ZGl2IGNsYXNzPVwic3BhY2UtLXRvcCAgc3BhY2UtdGFiLS10b3AtZG91YmxlXCI+XG4gKiAgIC4uLlxuICogPC9kaXY+XG4gKlxuICovXG4vKipcbiAqIEJhc2ljICYgc3BhY2luZ1xuICovXG4vKipcbiAqIF93aWR0aC5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogVXNhZ2U6XG4gKiA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxuICogICA8ZGl2IGNsYXNzPVwiZ3JpZF9faXRlbSAgd2lkdGgtLTFvZjEgIHdpZHRoLXRhYi0tMW9mMyAgd2lkdGgtZGVzay0tMW9mNFwiPlxuICogICAgIC4uLlxuICogICA8L2Rpdj5cbiAqICAgPGRpdiBjbGFzcz1cImdyaWRfX2l0ZW0gIHdpZHRoLS0xb2YxICB3aWR0aC10YWItLTJvZjMgIHdpZHRoLWRlc2stLTNvZjRcIj5cbiAqICAgICAuLi5cbiAqICAgPC9kaXY+XG4gKiA8L2Rpdj5cbiAqXG4gKi9cbi8qKlxuICogX3R5cG8uc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqIEFsdCBUZXh0IFN0eWxlcy5cbiAqXG4gKiAjIyBhbGlnbm1lbnRcbiAqIC0gdGV4dC0tbGVmdFxuICogLSB0ZXh0LS1yaWdodFxuICogLSB0ZXh0LS1jZW50ZXJcbiAqXG4gKiAjIyB1dGlsaXRpZXNcbiAqIC0gdGV4dC0tc2Vjb25kYXJ5XG4gKiAtIHRleHQtLWluaGVyaXQtY29sb3JcbiAqIC0gdGV4dC0tbm8td3JhcFxuICogLSB0ZXh0LS1sYXJnZVxuICpcbiAqIFVzYWdlOlxuICogPGRpdiBjbGFzcz1cInRleHQtLWxhcmdlXCI+XG4gKiAgIDxoMT5Mb3JlbSBJcHN1bTwvaDE+XG4gKiAgIDxwPkxvcmVtIGlwc3VtPC9wPlxuICogPC9kaXY+XG4gKlxuICovXG4vKipcbiAqIFByZXZlbnQgdGV4dCBmcm9tIHdyYXBwaW5nXG4gKi9cbi8qKlxuICogRGlzcGxheSB0ZXh0IGluIHNlY29uZGFyeSBmb250XG4gKi9cbi8qKlxuICogRGlzcGxheSBsYXJnZXIgdGV4dFxuICovXG4vKipcbiogX2NvbG9yLnNjc3NcbiovXG4uaGVybyB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5oZXJvIGZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cbi5oZXJvIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI1MHB4O1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcyMXB4KSB7XG4gIC5oZXJvIGltZyB7XG4gICAgaGVpZ2h0OiAzNTBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5oZXJvIGltZyB7XG4gICAgaGVpZ2h0OiA0MDBweDtcbiAgfVxufSIsIi8qKlxuICogYmFzaWNzcyBvdmVycmlkZXNcbiAqXG4gKiBhbnkgZGVmYXVsdHMgaW4gYmFzaWNzcy9iYXNpY3NzL19zZXR0aW5ncy5zY3NzXG4gKiBtYXkgYmUgb3ZlcnJpZGRlbi4uLlxuICpcbiAqIGUuZy4gJHByb3RvdHlwaW5nOiB0cnVlO1xuICovXG5cbiRjb2xvcnM6IChcbiAgXCJsaW5rXCI6ICM5ODEwMDAsXG4gIFwiaG92ZXJcIjogIzZFMEMwMCxcbiAgXCJib3JkZXJcIjogI0RCREJEQixcbiAgXCJibGFja1wiOiAjMTUxNTE1LFxuICBcIndoaXRlXCI6ICNGRkZcbik7XG5cbiRncmlkT2JqZWN0OiB0cnVlO1xuJGJ1dHRvbk9iamVjdDogdHJ1ZTtcbiRjb25zdHJhaW5PYmplY3Q6IHRydWU7XG4kbWVkaWFPYmplY3Q6IHRydWU7XG5cbiRmb250UHJpbWFyeTogJ1JvYm90bycsIHNhbnMtc2VyaWY7XG4kZm9udFNlY29uZGFyeTogJ1JvYm90bycsIHNhbnMtc2VyaWY7XG5cbiAkYnJlYWtzOiAoXG4gICB0YWI6IDQ4MXB4LFxuICAgbGFwOiA3MjFweCxcbiAgIGRlc2s6IDEwMjRweCxcbiAgIGRlc2std2lkZTogMTIwMHB4LFxuICAgbWF4OiAxNTAwcHhcbiApO1xuXG4kaGVhZGluZ3M6IChcbiAgJzEnOiAoXG4gICAgJ2ZvbnQtc2l6ZSc6IDQ4cHgsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogOTAwXG4gICksXG4gICcyJzogKFxuICAgICdmb250LXNpemUnOiAzNnB4LFxuICAgICdmb250LXdlaWdodCc6IDkwMFxuICApLFxuICAnMyc6IChcbiAgICAnZm9udC1zaXplJzogMzJweCxcbiAgICAnZm9udC13ZWlnaHQnOiA5MDBcbiAgKSxcbiAgJzQnOiAoXG4gICAgJ2ZvbnQtc2l6ZSc6IDI0cHgsXG4gICAgJ2ZvbnQtd2VpZ2h0JzogOTAwXG4gICksXG4gICc1JzogKFxuICAgICdmb250LXNpemUnOiAxOHB4LFxuICAgICdmb250LXdlaWdodCc6IDkwMFxuICApLFxuICAnNic6IChcbiAgICAnZm9udC1zaXplJzogMTZweCxcbiAgICAnZm9udC13ZWlnaHQnOiA5MDBcbiAgKSxcbik7XG5cbiRiYXNlVW5pdDogMjBweDtcblxuJGNvbnN0cmFpbjogKFxuICBtYXg6ICAgICAxNDAwcHhcbik7IiwiLyoqXG4gKiBiYXNpY3NzLnNjc3NcbiAqXG4gKiBBdXRob3I6IE1hcmlhbiBGcmllZG1hbm5cbiAqXG4gKi9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUmVzZXQsIERlZmF1bHRzLCBNaXhpbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuJGFkZENzczogZmFsc2U7XG5cbi8qKlxuICogUmVzZXQsIERlZmF1bHQgc2V0dGluZ3NcbiAqL1xuXG5AaW1wb3J0IFwiYmFzaWNzcy9zZXR0aW5nc1wiO1xuXG4vKipcbiAqIE1peGluc1xuICovXG5cbkBpbXBvcnQgXCJiYXNpY3NzL21peGlucy9jb2xvclwiO1xuQGltcG9ydCBcImJhc2ljc3MvbWl4aW5zL2JyZWFrXCI7XG5AaW1wb3J0IFwiYmFzaWNzcy9taXhpbnMvbWVkaWFcIjtcbkBpbXBvcnQgXCJiYXNpY3NzL21peGlucy9oZHBpXCI7XG5AaW1wb3J0IFwiYmFzaWNzcy9taXhpbnMvcmV0aW5hLWltYWdlXCI7XG5AaW1wb3J0IFwiYmFzaWNzcy9taXhpbnMvZm9udC1zaXplXCI7XG5AaW1wb3J0IFwiYmFzaWNzcy9taXhpbnMvcHgtdG8tcmVtXCI7XG5AaW1wb3J0IFwiYmFzaWNzcy9taXhpbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJiYXNpY3NzL21peGlucy9lbGxpcHNpc1wiO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXNlIFN0eWxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaW1wb3J0IFwiYmFzaWNzcy9iYXNlL21haW5cIjtcbkBpbXBvcnQgXCJiYXNpY3NzL2Jhc2UvYmFzZWxpbmVcIjtcbkBpbXBvcnQgXCJiYXNpY3NzL2Jhc2UvdHlwb1wiO1xuQGltcG9ydCBcImJhc2ljc3MvYmFzZS9saW5rc1wiO1xuQGltcG9ydCBcImJhc2ljc3MvYmFzZS9tZWRpYS1zcmNcIjtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgT2JqZWN0c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaW1wb3J0IFwiYmFzaWNzcy9vYmplY3RzL2dyaWRcIjtcbkBpbXBvcnQgXCJiYXNpY3NzL29iamVjdHMvYnRuXCI7XG5AaW1wb3J0IFwiYmFzaWNzcy9vYmplY3RzL2NvbnN0cmFpblwiO1xuQGltcG9ydCBcImJhc2ljc3Mvb2JqZWN0cy9uYXZcIjtcbkBpbXBvcnQgXCJiYXNpY3NzL29iamVjdHMvYm94XCI7XG5AaW1wb3J0IFwiYmFzaWNzcy9vYmplY3RzL21lZGlhXCI7XG5AaW1wb3J0IFwiYmFzaWNzcy9vYmplY3RzL2JhcmUtbGlzdFwiO1xuQGltcG9ydCBcImJhc2ljc3Mvb2JqZWN0cy91aS1saXN0XCI7XG5AaW1wb3J0IFwiYmFzaWNzcy9vYmplY3RzL2Fycm93XCI7XG5AaW1wb3J0IFwiYmFzaWNzcy9vYmplY3RzL2ljb25cIjtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSGVscGVyIENsYXNzZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGltcG9ydCBcImJhc2ljc3MvaGVscGVyL3NwYWNpbmdcIjtcbkBpbXBvcnQgXCJiYXNpY3NzL2hlbHBlci93aWR0aFwiO1xuQGltcG9ydCBcImJhc2ljc3MvaGVscGVyL3R5cG9cIjtcbkBpbXBvcnQgXCJiYXNpY3NzL2hlbHBlci9sYXlvdXRcIjtcbkBpbXBvcnQgXCJiYXNpY3NzL2hlbHBlci9jb2xvclwiO1xuIiwiLyoqXG4gKiBfc2V0dGluZ3Muc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICovXG5cbi8qKlxuKiBWYXJpYWJsZXMgTW9kZVxuKi9cbiRhZGRDc3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8qKlxuKiBEZWZhdWx0IGNvbG9yc1xuKi9cbiRfbGluazogIzAwNzRkOTtcbiRfaG92ZXI6IGRhcmtlbigkX2xpbmssIDEwJSk7XG4kX2JvcmRlcjogI0NDQztcblxuJGNvbG9yczogKFxuICBcImxpbmtcIjogJF9saW5rLFxuICBcImhvdmVyXCI6ICRfaG92ZXIsXG4gIFwiYm9yZGVyXCI6ICRfYm9yZGVyXG4pIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmYXVsdCBvYmplY3RzXG4gKi9cblxuJGFycm93T2JqZWN0OiBmYWxzZSFkZWZhdWx0O1xuJGJveE9iamVjdDogZmFsc2UhZGVmYXVsdDtcbiRuYXZPYmplY3Q6IGZhbHNlIWRlZmF1bHQ7XG4kZ3JpZE9iamVjdDogZmFsc2UhZGVmYXVsdDtcbiRidXR0b25PYmplY3Q6IGZhbHNlIWRlZmF1bHQ7XG4kY29uc3RyYWluT2JqZWN0OiBmYWxzZSFkZWZhdWx0O1xuJG1lZGlhT2JqZWN0OiBmYWxzZSFkZWZhdWx0O1xuJGJhcmVMaXN0T2JqZWN0OiBmYWxzZSFkZWZhdWx0O1xuJHVpTGlzdE9iamVjdDogZmFsc2UhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZhdWx0IGhlbHBlclxuICovXG5cbiRzcGFjaW5nSGVscGVyOiB0cnVlIWRlZmF1bHQ7XG4kdHlwb0hlbHBlcjogdHJ1ZSFkZWZhdWx0O1xuJHdpZHRoSGVscGVyOiB0cnVlIWRlZmF1bHQ7XG4kbGF5b3V0SGVscGVyOiB0cnVlIWRlZmF1bHQ7XG4kY29sb3JIZWxwZXI6IHRydWUhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZhdWx0IGZvbnRzXG4gKi9cblxuJGZvbnRQcmltYXJ5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYhZGVmYXVsdDtcbiRmb250U2Vjb25kYXJ5OiBHZW9yZ2lhLCBzZXJpZiFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmF1bHQgZm9udCBzaXplXG4gKi9cblxuJGJhc2VGb250U2l6ZTogMTZweCFkZWZhdWx0O1xuJGJhc2VMaW5lSGVpZ2h0OiAyNHB4IWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmYXVsdCBoZWFkaW5nc1xuICovXG5cbiRoZWFkaW5nU2l6ZTE6IDQ4cHghZGVmYXVsdDtcbiRoZWFkaW5nU2l6ZTI6IDM2cHghZGVmYXVsdDtcbiRoZWFkaW5nU2l6ZTM6IDMycHghZGVmYXVsdDtcbiRoZWFkaW5nU2l6ZTQ6IDI0cHghZGVmYXVsdDtcbiRoZWFkaW5nU2l6ZTU6IDE4cHghZGVmYXVsdDtcbiRoZWFkaW5nU2l6ZTY6IDE2cHghZGVmYXVsdDtcblxuJGhlYWRpbmdzOiAoXG4gICcxJzogKFxuICAgICdmb250LXNpemUnOiAkaGVhZGluZ1NpemUxXG4gICksXG4gICcyJzogKFxuICAgICdmb250LXNpemUnOiAkaGVhZGluZ1NpemUyXG4gICksXG4gICczJzogKFxuICAgICdmb250LXNpemUnOiAkaGVhZGluZ1NpemUzXG4gICksXG4gICc0JzogKFxuICAgICdmb250LXNpemUnOiAkaGVhZGluZ1NpemU0XG4gICksXG4gICc1JzogKFxuICAgICdmb250LXNpemUnOiAkaGVhZGluZ1NpemU1XG4gICksXG4gICc2JzogKFxuICAgICdmb250LXNpemUnOiAkaGVhZGluZ1NpemU2XG4gICksXG4pIWRlZmF1bHQ7XG5cbi8qKlxuICogIERlZmF1bHQgc3BhY2luZ1xuICovXG5cbiRiYXNlVW5pdDogJGJhc2VMaW5lSGVpZ2h0IWRlZmF1bHQ7XG4kbGluZUhlaWdodFJhdGlvOiBjYWxjKCRiYXNlTGluZUhlaWdodCAvICRiYXNlRm9udFNpemUpO1xuXG4vKipcbiAqIERlZmF1bHQgYnJlYWtwb2ludHNcbiAqL1xuXG4gJGJyZWFrczogKFxuICAgdGFiOiA0ODFweCxcbiAgIGxhcDogNzIxcHgsXG4gICBkZXNrOiAxMDI0cHgsXG4gICBkZXNrLXdpZGU6IDEyMDBweFxuICkhZGVmYXVsdDtcblxuIC8qKlxuICAqIERlZmF1bHQgc3BhY2VzXG4gICovXG5cbiRzcGFjZTogKFxuICBub25lOiAgMCxcbiAgcXVhcnRlcjogLjI1LFxuICB0aGlyZDogLjMzMzMzMzMzMzMzLFxuICBoYWxmOiAuNSxcbiAgZGVmYXVsdDogMSxcbiAgZG91YmxlOiAyLFxuICB0cmlwbGU6IDMsXG4gIHF1YWQ6IDRcbikhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZhdWx0IGNvbnN0cmFpbnNcbiAqL1xuXG4gJGNvbnN0cmFpbjogKFxuICAgc21hbGw6ICAgMzgwcHgsXG4gICBtZWRpdW06ICA0ODBweCxcbiAgIGxhcmdlOiAgIDcyMHB4LFxuICAgbWF4OiAgICAgOTgwcHhcbiApIWRlZmF1bHQ7XG5cbi8qKlxuICogQXJyb3dzXG4gKi9cblxuJGFycm93U2l6ZTogMTBweCFkZWZhdWx0O1xuXG4vKipcbiAqIEdsb2JhbCBWYXJpYWJsZXNcbiAqL1xuXG4kYm9yZGVyUmFkaXVzOiA0cHghZGVmYXVsdDtcbiIsIi8qKlxuICogX21lZGlhLnNjc3NcbiAqXG4gKiBBdXRob3I6IE1hcml1cyBTY2hlZWxcbiAqXG4gKiBVc2FnZTpcbiAqIEBpbmNsdWRlIG1lZGlhKDMwMHB4KTtcbiAqIG9yIEBpbmNsdWRlIG1lZGlhKDMwMHB4LCBmYWxzZSk7XG4gKiBvciBAaW5jbHVkZSBtZWRpYShtYXgtd2lkdGggMzAwcHgpO1xuICogb3IgQGluY2x1ZGUgbWVkaWEoMTAwcHggbWF4LXdpZHRoIDMwMHB4KTtcbiAqIG9yIEBpbmNsdWRlIG1lZGlhKG1heC13aWR0aCAxMDBweCBtYXgtd2lkdGggMzAwcHgpO1xuICogb3IgQGluY2x1ZGUgbWVkaWEobWF4LXdpZHRoIDEwMHB4IG1heC13aWR0aCAzMDBweCwgdHJ1ZSk7XG4gKlxuICovXG5cbiRkZWZhdWx0LWZlYXR1cmU6IG1pbi13aWR0aDtcblxuQG1peGluIG1lZGlhKCRxdWVyeTokZmVhdHVyZSAkdmFsdWUsICRzZXJ2ZVRvT2xkSUU6IGZhbHNlKSB7XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMyB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSBhbmQgKG50aCgkcXVlcnksIDIpOiBudGgoJHF1ZXJ5LCAzKSkgIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDQge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIGFuZCAobnRoKCRxdWVyeSwgMyk6IG50aCgkcXVlcnksIDQpKSAge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRzZXJ2ZVRvT2xkSUUge1xuICAgIC5sdC1pZTkgJiB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogX2hkcGkuc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaXVzIFNjaGVlbFxuICpcbiAqIGRlZmF1bHRzIHRvIDEuMyB0byBpbmNsdWRlIEdvb2dsZSBOZXh1cyA3XG4gKiBhZGFwdGVkIGZyb20gYm91cmJvbjpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90aG91Z2h0Ym90L2JvdXJib24vYmxvYi9tYXN0ZXIvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzXG4gKiBcbiAqIFVzYWdlOlxuICogQGluY2x1ZGUgaGRwaSB7XG4gKiAgLy8geW91ciBjc3MgZm9yIGhkcGkgZGlzcGxheXNcbiAqIH07XG4gKlxuICogeW91IGNhbiB1c2UgYSBjdXN0b20gcmF0aW8sIGlmIHlvdSBsaWtlOlxuICogQGluY2x1ZGUgaGRwaSgxLjUpIHtcbiAqICAvLyB5b3VyIGNzc1xuICogfTtcbiAqL1xuXG5AbWl4aW4gaGRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3tyb3VuZCgkcmF0aW8qOTYpfWRwaSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICN7JHJhdGlvfWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLyoqXG4gKiBfcmV0aW5hLWltYWdlLnNjc3NcbiAqXG4gKiBBdXRob3I6IE1hcml1cyBTY2hlZWxcbiAqXG4gKiBVc2FnZTpcbiAqIC5oZXJvIHtcbiAqICBAaW5jbHVkZSByZXRpbmEtaW1hZ2UoXCIuLi9wYXRoL3RvL2hlcm9cIiwgMjAwcHggNDAwcHgpO1xuICogfVxuICpcbiAqIHRvIHVzZSBhIHNwZWNpZmljIGZpbGVuYW1lOlxuICogLmhlcm8ge1xuICogIEBpbmNsdWRlIHJldGluYS1pbWFnZShcIi4uL3BhdGgvdG8vaGVyb1wiLCAyMDBweCA0MDBweCwgXCIuLi9wYXRoL3RvL3JldGluYS1oZXJvXCIpOyBcbiAqIH0gXG4gKlxuICogbW9kaWZpZWQgdmVyc2lvbiBvZiBib3VyYm9uJ3MgcmV0aW5hLWltYWdlIG1peGluLlxuICogVGhlIG1peGluIHVzZXMgYSBAMngucG5nIHJldGluYSBmaWxlbmFtZSBieSBkZWZhdWx0LlxuICogaHR0cHM6Ly9naXRodWIuY29tL3Rob3VnaHRib3QvYm91cmJvbi9ibG9iL21hc3Rlci9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3NcbiAqL1xuXG5AbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuXG4gIEBpbmNsdWRlIGhkcGkge1xuICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9QDJ4LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLCIvKipcbiAqIF9mb250LXNpemUuc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqL1xuXG5AbWl4aW4gZm9udC1zaXplKCRmb250U2l6ZSwgJGxpbmVIZWlnaHQ6dHJ1ZSl7XG4gICAgZm9udC1zaXplOiRmb250U2l6ZTtcbiAgICBmb250LXNpemU6IGNhbGMoJGZvbnRTaXplIC8gJGJhc2VGb250U2l6ZSkqMXJlbTtcbiAgICBAaWYgJGxpbmVIZWlnaHQgPT0gdHJ1ZSB7XG4gICAgICBsaW5lLWhlaWdodDpjZWlsKGNhbGMoJGZvbnRTaXplIC8gJGJhc2VMaW5lSGVpZ2h0KSkgKiBjYWxjKCRiYXNlTGluZUhlaWdodCAvICRmb250U2l6ZSk7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBfcHgtdG8tcmVtLnNjc3NcbiAqXG4gKiBBdXRob3I6IE1hcmlhbiBGcmllZG1hbm5cbiAqXG4gKiBVc2FnZTpcbiAqIC5lbGVtZW50IHtcbiAqICAgQGluY2x1ZGUgcHgtdG8tcmVtKHBhZGRpbmcsIDAgMjRweClcbiAqIH1cbiAqXG4gKiBPdXRwdXQ6XG4gKiAuZWxlbWVudCB7XG4gKiAgIHBhZGRpbmc6IDAgMjRweDtcbiAqICAgcGFkZGluZzogMCAxLjVyZW07XG4gKiB9XG4gKlxuICovXG5cbkBmdW5jdGlvbiB0b1JlbSgkcHgpIHtcbiAgJHJlbTogY2FsYygkcHggLyAkYmFzZUZvbnRTaXplKTtcbiAgQHJldHVybiAjeyRyZW19cmVtO1xufVxuXG5AbWl4aW4gcHgtdG8tcmVtKCRwcm9wLCAkdmFsdWVzKSB7XG5cbiAgJG91dHB1dDogKCk7XG5cbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiAkdmFsdWUgIT0gMCB7XG4gICAgICAkdmFsdWU6IHRvUmVtKCR2YWx1ZSk7XG4gICAgfVxuICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkdmFsdWUpO1xuICB9XG5cbiAgI3skcHJvcH06ICR2YWx1ZXM7IC8vIEZhbGxiYWNrXG4gICN7JHByb3B9OiAkb3V0cHV0O1xufVxuIiwiLyoqXG4gKiBfY2xlYXJmaXguc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqIFVzYWdlOlxuICogLmVsZW1lbnQge1xuICogICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAqIH1cbiAqXG4gKi9cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cblxuICAvKipcbiAgICogRm9yIElFIDYvNyBvbmx5XG4gICAqIEluY2x1ZGUgdGhpcyBydWxlIHRvIHRyaWdnZXIgaGFzTGF5b3V0IGFuZCBjb250YWluIGZsb2F0cy5cbiAgICovXG4gICp6b29tOiAxO1xufVxuXG4iLCIvKipcbiAqIF9lbGxpcHNpcy5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogZWxsaXBzaXMgbWl4aW4gXG4gKlxuICovXG5cbkBtaXhpbiBlbGxpcHNpcyB7XG4gIHdpZHRoOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbiIsIi8qKlxuICogX21haW4uc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqL1xuXG5AaWYgJGFkZENzcyB7XG4gICoge1xuICAgICYsXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbiVpbnZpc2libGUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xufVxuXG5AaWYgJGFkZENzcyB7XG4gIC5pbnZpc2libGUge1xuICAgIEBleHRlbmQgJWludmlzaWJsZTtcbiAgfVxufSIsIi8qKlxuICogX2Jhc2VsaW5lLnNjc3NcbiAqXG4gKiBBdXRob3I6IE1hcmlhbiBGcmllZG1hbm5cbiAqXG4gKi9cblxuQGlmICRhZGRDc3Mge1xuICBib2R5LFxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxuICBwLCBibG9ja3F1b3RlLCBwcmUsXG4gIGRsLCBkZCwgb2wsIHVsLFxuICBmb3JtLCBmaWVsZHNldCwgbGVnZW5kLFxuICB0YWJsZSwgdGgsIHRkLCBjYXB0aW9uLFxuICBociB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxuICB1bCwgb2wsIGRsLFxuICBibG9ja3F1b3RlLCBwLCBhZGRyZXNzLFxuICB0YWJsZSxcbiAgZmllbGRzZXQsIGZpZ3VyZSxcbiAgcHJlIHtcbiAgICBAaW5jbHVkZSBweC10by1yZW0obWFyZ2luLCAwIDAgJGJhc2VVbml0KTtcbiAgfVxuXG4gIHVsLCBvbCwgZGQge1xuICAgIEBpbmNsdWRlIHB4LXRvLXJlbShtYXJnaW4tbGVmdCwgJGJhc2VVbml0KTtcbiAgfVxuXG4gIGxpID4gdWwsXG4gIGxpID4gb2wge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn0iLCJAdXNlICdzYXNzOm1hdGgnO1xuLyoqXG4gKiBfdHlwby5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICovXG5cbkBpZiAkYWRkQ3NzIHtcbiAgaHRtbCB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250UHJpbWFyeTtcbiAgICBmb250LXNpemU6IGNhbGMoJGJhc2VGb250U2l6ZSAvIDE2cHgpICogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZUhlaWdodFJhdGlvO1xuICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nQXR0cmlidXRlcygkYXR0cmlidXRlcyl7XG4gIEBlYWNoICRhdHROYW1lLCRhdHRWYWx1ZSBpbiAkYXR0cmlidXRlcyB7XG4gICAgQGlmICRhdHROYW1lID09IHJlc3BvbnNpdmUge1xuICAgICAgQGVhY2ggJG1lZGlhLCRhdHRzIGluICRhdHRWYWx1ZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKGJyZWFrKCRtZWRpYSkpe1xuICAgICAgICAgIEBpbmNsdWRlIGhlYWRpbmdBdHRyaWJ1dGVzKCRhdHRzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1AZWxzZSBpZiAkYXR0TmFtZSA9PSBmb250LXNpemUge1xuICAgICAgQGlmIG1hcC1oYXMta2V5KCRhdHRyaWJ1dGVzLCdsaW5lLWhlaWdodCcpIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKCRhdHRWYWx1ZSxmYWxzZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKCRhdHRWYWx1ZSx0cnVlKTtcbiAgICAgIH1cbiAgICB9QGVsc2UgaWYgJGF0dE5hbWUgPT0gbGluZS1oZWlnaHQge1xuICAgICAgQGlmIG1hcC1oYXMta2V5KCRhdHRyaWJ1dGVzLCdmb250LXNpemUnKSB7XG4gICAgICAgIC8vIEBpbmNsdWRlIGZvbnQtc2l6ZSgkYXR0VmFsdWUsZmFsc2UpO1xuICAgICAgICAjeyRhdHROYW1lfTogbWF0aC5kaXYoJGF0dFZhbHVlLG1hcC1nZXQoJGF0dHJpYnV0ZXMsJ2ZvbnQtc2l6ZScpKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAjeyRhdHROYW1lfTogI3skYXR0VmFsdWV9O1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgI3skYXR0TmFtZX06ICN7JGF0dFZhbHVlfTtcbiAgICB9XG4gIH1cbn1cblxuQGVhY2ggJGtleSwkYXR0cmlidXRlcyBpbiAkaGVhZGluZ3Mge1xuICAlaGVhZGluZy0jeyRrZXl9IHtcbiAgICBAaW5jbHVkZSBoZWFkaW5nQXR0cmlidXRlcygkYXR0cmlidXRlcyk7XG4gIH1cbiAgQGlmICRhZGRDc3Mge1xuICAgIGgjeyRrZXl9LFxuICAgIC5oZWFkaW5nLSN7JGtleX0ge1xuICAgICAgQGV4dGVuZCAlaGVhZGluZy0jeyRrZXl9O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBfbGlua3Muc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqL1xuXG5AaWYgJGFkZENzcyB7XG4gIGEge1xuICAgIGNvbG9yOiBjb2xvcignbGluaycpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIGE6aG92ZXIge1xuICAgIGNvbG9yOiBjb2xvcignaG92ZXInKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuXG4gIGE6Zm9jdXMgeyBvdXRsaW5lOiB0aGluIGRvdHRlZDsgfVxuXG4gIGE6aG92ZXIsIGE6YWN0aXZlIHsgb3V0bGluZTogMDsgfVxufVxuIiwiLyoqXG4gKiBtZWRpYS1zcmMuc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqL1xuXG5AaWYgJGFkZENzcyB7XG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvLFxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAvKipcbiAgKiB0ZXh0IHN0eWxlcyB0byBvZmZzZXQgYWx0IHRleHRcbiAgKi9cbiAgaW1nIHtcbiAgICBjb2xvcjogI2MwMDtcbiAgfVxuXG4gIC8qKlxuICAqIG5vIGZsdWlkIGltYWdlcywgd2hlbiB3aWR0aCBvciBoZWlnaHQgYXJlIHNldFxuICAqL1xuICBpbWdbd2lkdGhdLFxuICBpbWdbaGVpZ2h0XSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG59IiwiQG1peGluIGdyaWRfbW9kaWZpZXJzKCRzY29wZTogJycpIHtcbiAgQGlmICRzY29wZSAhPSAnJyB7ICRzY29wZTogLSN7JHNjb3BlfTsgfVxuXG4gICRtb2RpZmllci1zZXBlcmF0b3I6ICctLSc7XG5cbiAgJWdyaWQjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9c3RhcnQge1xuICAgIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAlZ3JpZCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn1lbmQge1xuICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcbiAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxuICAlZ3JpZCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn1jZW50ZXIge1xuICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgJWdyaWQjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9YmV0d2VlbiB7XG4gICAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcbiAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuICAlZ3JpZCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn1hcm91bmQge1xuICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIH1cbiAgJWdyaWQjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9dG9wIHtcbiAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG4gICVncmlkI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfW1pZGRsZSB7XG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgJWdyaWQjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Ym90dG9tIHtcbiAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICB9XG4gICVncmlkI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfXN0cmV0Y2gge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG5cbiAgQGlmICRhZGRDc3MgYW5kICRncmlkT2JqZWN0IHtcbiAgICAuZ3JpZCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn1zdGFydCB7QGV4dGVuZCAlZ3JpZCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn1zdGFydDt9XG4gICAgLmdyaWQjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9ZW5kIHtAZXh0ZW5kICVncmlkI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfWVuZDt9XG4gICAgLmdyaWQjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Y2VudGVyIHtAZXh0ZW5kICVncmlkI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfWNlbnRlcjt9XG4gICAgLmdyaWQjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9YmV0d2VlbiB7QGV4dGVuZCAlZ3JpZCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn1iZXR3ZWVuO31cbiAgICAuZ3JpZCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn1hcm91bmQge0BleHRlbmQgJWdyaWQjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9YXJvdW5kO31cbiAgICAuZ3JpZCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn10b3Age0BleHRlbmQgJWdyaWQjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9dG9wO31cbiAgICAuZ3JpZCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn1taWRkbGUge0BleHRlbmQgJWdyaWQjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9bWlkZGxlO31cbiAgICAuZ3JpZCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn1ib3R0b20ge0BleHRlbmQgJWdyaWQjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Ym90dG9tO31cbiAgICAuZ3JpZCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn1zdHJldGNoIHtAZXh0ZW5kICVncmlkI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfXN0cmV0Y2g7fVxuICB9XG59XG5cbiR3aWR0aEhlbHBlcjogdHJ1ZTtcbi8qKlxuICogX2dyaWQuc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqIFVzYWdlOlxuICogPGRpdiBjbGFzcz1cImdyaWRcIj5cbiAqICAgPGRpdiBjbGFzcz1cImdyaWRfX2l0ZW0gIHdpZHRoLS0xb2YxICB3aWR0aC10YWItLTFvZjMgIHdpZHRoLWRlc2stLTFvZjRcIj5cbiAqICAgICAgIC4uLlxuICogICA8L2Rpdj48IS0tXG4gKi0tPjxkaXYgY2xhc3M9XCJncmlkX19pdGVtICB3aWR0aC0tMW9mMSAgd2lkdGgtdGFiLS0yb2YzICB3aWR0aC1kZXNrLS0zb2Y0XCI+XG4gKiAgICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cbiAqICAgICAgIDxkaXYgY2xhc3M9XCJncmlkX19pdGVtICB3aWR0aC0tMW9mMSAgd2lkdGgtdGFiLS0xb2YyXCI+XG4gKiAgICAgICAgICAgLi4uXG4gKiAgICAgICA8L2Rpdj48IS0tXG4gKiAgICAtLT48ZGl2IGNsYXNzPVwiZ3JpZF9faXRlbSAgd2lkdGgtLTFvZjEgIHdpZHRoLXRhYi0tMW9mMlwiPlxuICogICAgICAgICAgIC4uLlxuICogICAgICAgPC9kaXY+XG4gKiAgICAgPC9kaXY+XG4gKiAgIDwvZGl2PlxuICogPC9kaXY+XG4gKlxuICogdGhlIGV4YW1wbGUgYWJvdmUgY29tYmluZXMgdGhlIGdyaWQgaXRlbXMgd2l0aCB0aGUgd2lkdGhzIGZyb20gaGVscGVyL193aWR0aC5zY3NzXG4gKi9cblxuJWdyaWQge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAwO1xuICBAaW5jbHVkZSBweC10by1yZW0obWFyZ2luLWxlZnQsIC0kYmFzZVVuaXQpO1xuXG59XG4lZ3JpZF9faXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcbiAgQGluY2x1ZGUgcHgtdG8tcmVtKHBhZGRpbmctbGVmdCwgJGJhc2VVbml0KTtcblxufVxuXG4vKipcbiAqIFJldmVyc2UgdGhlIG9yZGVyIG9mIGdyaWQgaXRlbXNcbiAqL1xuJWdyaWQtLXJldmVyc2VkIHtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuXG4vKipcbiAqIGFkZHMgYSBzZXBlcmF0b3IgbGluZSB0byB0aGUgZ3JpZFxuICovXG4gJWdyaWQtLXNlcGVyYXRvciB7XG4gICBAZXh0ZW5kICVncmlkLS1zdHJldGNoO1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgID4gLmdyaWRfX2l0ZW0ge1xuICAgICAmOmFmdGVyIHtcbiAgICAgICBjb250ZW50OiAnJztcbiAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgdG9wOiAwO1xuICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgIHJpZ2h0OiBjYWxjKCRiYXNlVW5pdC8yKSAqIC0xO1xuICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKCdib3JkZXInKTtcbiAgICAgfVxuICAgfVxuICAgJi5ncmlkLS1mbHVzaCB7XG4gICAgPiAuZ3JpZF9faXRlbTphZnRlciB7XG4gICAgICByaWdodDogMFxuICAgIH1cbiAgIH1cbiAgICYuZ3JpZC0tc21hbGwge1xuICAgID4gLmdyaWRfX2l0ZW06YWZ0ZXIge1xuICAgICAgcmlnaHQ6IGNhbGMoJGJhc2VVbml0LzQpICogLTE7XG4gICAgfVxuICAgfVxuICAgJi5ncmlkLS1sYXJnZSB7XG4gICAgPiAuZ3JpZF9faXRlbTphZnRlciB7XG4gICAgICByaWdodDogJGJhc2VVbml0ICogLTE7XG4gICAgfVxuICAgfVxuICAgJi5ncmlkLS1odWdlIHtcbiAgICA+IC5ncmlkX19pdGVtOmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAkYmFzZVVuaXQgKiAtMS41O1xuICAgIH1cbiAgIH1cbiB9XG5cblxuXG4vKipcbiAqIEdyaWQgaXRlbXMgd2l0aG91dCBndXR0ZXJzXG4gKi9cbiVncmlkLS1mbHVzaCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gID4gLmdyaWRfX2l0ZW0ge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG4vKipcbiAqIEdyaWQgc2l6ZSB2YXJpYXRpb25zXG4gKi9cbiVncmlkLS1zbWFsbCB7XG4gIEBpbmNsdWRlIHB4LXRvLXJlbShtYXJnaW4tbGVmdCwgLShjYWxjKCRiYXNlVW5pdC8yKSkpO1xuICA+IC5ncmlkX19pdGVtIHtcbiAgICBAaW5jbHVkZSBweC10by1yZW0ocGFkZGluZy1sZWZ0LCBjYWxjKCRiYXNlVW5pdC8yKSk7XG4gIH1cbn1cblxuJWdyaWQtLWxhcmdlIHtcbiAgQGluY2x1ZGUgcHgtdG8tcmVtKG1hcmdpbi1sZWZ0LCAoLSgkYmFzZVVuaXQqMikpKTtcblxuICA+IC5ncmlkX19pdGVtLFxuICA+ICVncmlkX19pdGVtIHtcbiAgICBAaW5jbHVkZSBweC10by1yZW0ocGFkZGluZy1sZWZ0LCAkYmFzZVVuaXQqMik7XG4gIH1cbn1cblxuJWdyaWQtLWh1Z2Uge1xuICBAaW5jbHVkZSBweC10by1yZW0obWFyZ2luLWxlZnQsICgtKCRiYXNlVW5pdCozKSkpO1xuICA+IC5ncmlkX19pdGVtLFxuICA+ICVncmlkX19pdGVtIHtcbiAgICBAaW5jbHVkZSBweC10by1yZW0ocGFkZGluZy1sZWZ0LCAkYmFzZVVuaXQqMyk7XG4gIH1cbn1cblxuXG5AaW5jbHVkZSBncmlkX21vZGlmaWVycygpO1xuXG5AZWFjaCAka2V5LCRicmVhayBpbiAkYnJlYWtzIHtcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrKSB7XG4gICAgQGluY2x1ZGUgZ3JpZF9tb2RpZmllcnMoJGtleSk7XG4gIH1cbn1cbkBpZiAkYWRkQ3NzIGFuZCAkZ3JpZE9iamVjdCB7XG4gIC5ncmlkIHtAZXh0ZW5kICVncmlkO31cbiAgLmdyaWRfX2l0ZW0ge0BleHRlbmQgJWdyaWRfX2l0ZW07fVxuICAuZ3JpZC0tcmV2ZXJzZWQge0BleHRlbmQgJWdyaWQtLXJldmVyc2VkO31cbiAgLmdyaWQtLXNlcGVyYXRvciB7QGV4dGVuZCAlZ3JpZC0tc2VwZXJhdG9yO31cbiAgLmdyaWQtLWZsdXNoIHtAZXh0ZW5kICVncmlkLS1mbHVzaDt9XG4gIC5ncmlkLS1zbWFsbCB7QGV4dGVuZCAlZ3JpZC0tc21hbGw7fVxuICAuZ3JpZC0tbGFyZ2Uge0BleHRlbmQgJWdyaWQtLWxhcmdlO31cbiAgLmdyaWQtLWh1Z2Uge0BleHRlbmQgJWdyaWQtLWh1Z2U7fVxufS8vQGlmXG4iLCIvKipcbiAqIF9idG4uc2Nzc1xuICpcbiAqIEF1dGhvcjogTWFyaWFuIEZyaWVkbWFublxuICpcbiAqIFVzYWdlOlxuICogPGEgY2xhc3M9XCJidG4gW2J0bi0tc2Vjb25kYXJ5XVwiIGhyZWY9XCIjXCI+YnRuPC9hPlxuICogPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJidG5cIj5cbiAqIDxidXR0b24gY2xhc3M9XCJidG5cIj5idG48L2J1dHRvbj5cbiAqL1xuXG4lYnRuIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBsaW5lLWhlaWdodDogJGJhc2VMaW5lSGVpZ2h0KjI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAvKiBDb3NtZXRpY3MgKi9cbiAgcGFkZGluZzogMGVtICRiYXNlVW5pdDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignbGluaycpO1xuICAmOmhvdmVye1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKCdob3ZlcicpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4lYnRuLS1yb3VuZCB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXJSYWRpdXM7XG59XG5cbiVidG4tLXBpbGwge1xuICBib3JkZXItcmFkaXVzOiA0NGVtO1xufVxuXG4lYnRuLS1mdWxsIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8qIEJ1dHRvbiBkaXNndWlzZWQgYXMgYSBsaW5rLiAqL1xuXG4lYnRuLS1saW5rIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiBjb2xvcignbGluaycpO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IGNvbG9yKCdsaW5rJyk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuQGlmICRhZGRDc3MgYW5kICRidXR0b25PYmplY3Qge1xuICAuYnRuIHtAZXh0ZW5kICVidG59O1xuICAuYnRuLS1yb3VuZCB7QGV4dGVuZCAlYnRuLS1yb3VuZH07XG4gIC5idG4tLXBpbGwge0BleHRlbmQgJWJ0bi0tcGlsbH07XG4gIC5idG4tLWZ1bGwge0BleHRlbmQgJWJ0bi0tZnVsbH07XG4gIC5idG4tLWxpbmsge0BleHRlbmQgJWJ0bi0tbGlua307XG59Ly9AaWZcbiIsIlxuLyoqXG4gKiBfY29uc3RyYWluLnNjc3NcbiAqXG4gKiBBdXRob3I6IE1hcml1cyBTY2hlZWxcbiAqXG4gKi9cblxuJWNvbnN0cmFpbiB7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5AZWFjaCAkaywkYyBpbiAkY29uc3RyYWluIHtcbiAgJWNvbnN0cmFpbi0tI3ska30ge1xuICAgIEBpbmNsdWRlIHB4LXRvLXJlbShtYXgtd2lkdGgsICRjKTtcbiAgfVxufVxuQGlmICRhZGRDc3MgYW5kICRjb25zdHJhaW5PYmplY3Qge1xuICAuY29uc3RyYWluIHtcbiAgICBAZXh0ZW5kICVjb25zdHJhaW47XG4gIH1cbiAgQGVhY2ggJGssJGMgaW4gJGNvbnN0cmFpbiB7XG4gICAgLmNvbnN0cmFpbi0tI3ska30ge1xuICAgICAgQGV4dGVuZCAlY29uc3RyYWluLS0jeyRrfTtcbiAgICB9XG4gIH1cbn0gLy8gZW5kaWZcbiIsIi8qKlxuICogX25hdi5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogc291cmNlOiBOYXYgYWJzdHJhY3Rpb24gZnJvbSBjc3N3aXphcmRyeS5jb20vMjAxMS8wOS90aGUtbmF2LWFic3RyYWN0aW9uXG4gKlxuICogQ2FuIGJlIHVzZWQgb24gYW4gYG9sYCBvciBgdWxgIGFuZCBkaXNwbGF5cyB0aGUgbGlzdCBpdGVtcyBob3Jpem9udGFsbHkuXG4gKiBFeHRlbmQgaXQgd2l0aCB0aGUgZm9sbG93aW5nIHN1YmNsYXNzZXM6XG4gKlxuICogLSBuYXYtLXN0YWNrZWQgICAgLy8gZGlzcGxheXMgdGhlIGxpc3QgaXRlbXMgdmVydGljYWxseVxuICogLSBuYXYtLWJhbm5lciAgICAgLy8gY2VudHJlcyB0aGUgbGlzdFxuICogLSBuYXYtLWJsb2NrICAgICAgLy8gZXhwYW5kcyBsaXN0IGl0ZW1zIGNsaWNrYWJsZSBhcmVhc1xuICogLSBuYXYtLWZpdCAgICAgICAgLy8gZm9yY2VzIHRoZSBsaXN0IHRvIG9jY3VweSB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgcGFyZW50XG4gKiAtIG5hdi0ta2V5d29yZHMgICAvLyBkaXNwbGF5IGFzIGEgbGlzdCBvZiBrZXl3b3Jkc1xuICogLSBuYXYtLWJyZWFkY3J1bWIgLy8gZGlzcGxheSBhcyBicmVhZGNydW1ic1xuICogLSBuYXYtLXBhcmFsbGVsICAgLy8gZGlzcGxheSBuYXYgaXRlbXMgd2l0aCBwYXJhbGxlbCBzZXBhcmF0b3JcbiAqXG4gKiBNYXJrdXA6XG4gKlxuICogPHVsIGNsYXNzPVwibmF2XCI+XG4gKiAgIDxsaT48YSBocmVmPSM+SG9tZTwvYT48L2xpPlxuICogICA8bGk+PGEgaHJlZj0jPkFib3V0PC9hPjwvbGk+XG4gKiAgIDxsaT48YSBocmVmPSM+UG9ydGZvbGlvPC9hPjwvbGk+XG4gKiAgIDxsaT48YSBocmVmPSM+Q29udGFjdDwvYT48L2xpPlxuICogPC91bD5cbiAqL1xuXG4lbmF2IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgQGluY2x1ZGUgcHgtdG8tcmVtKG1hcmdpbiwgMCAwICRiYXNlVW5pdCAwKTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gID4gbGkge1xuICAgICYsXG4gICAgPiBhIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiAnbmF2LXN0YWNrZWQnIGRpc3BsYXlzIHRoZSBsaXN0IGl0ZW1zIHZlcnRpY2FsbHlcbiAqL1xuXG4lbmF2LS1zdGFja2VkIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgID4gYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiAnbmF2LWJhbm5lcicgY2VudHJlcyB0aGUgbGlzdFxuICovXG5cbiVuYXYtLWJhbm5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyoqXG4gKiAnbmF2LS1ibG9jaycgZXhwYW5kcyBsaXN0IGl0ZW1zIGNsaWNrYWJsZSBhcmVhcyB3aXRoIHBhZGRpbmdcbiAqL1xuXG4lbmF2LS1ibG9jayB7XG4gIC8vbGluZS1oZWlnaHQ6MTtcbiAgLyogcmVtb3ZlcyB1bm5lY2Vzc2FyeSB3aGl0ZXNwYWNlICovXG4gIGxldHRlci1zcGFjaW5nOiAtMC4zMWVtO1xuICB3b3JkLXNwYWNpbmc6IC0wLjQzZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gID4gbGkge1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgID4gYSB7XG4gICAgICBwYWRkaW5nOiAuNzVlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiAnbmF2LS1maXQnIGZvcmNlcyB0aGUgbGlzdCB0byBvY2N1cHkgdGhlIGZ1bGwgd2lkdGggb2YgaXRzIHBhcmVudFxuICovXG5cbiVuYXYtLWZpdCB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgPiBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqICduYXYtLWtleXdvcmRzJyBkaXNwbGF5IGFzIGEgbGlzdCBvZiBrZXl3b3Jkc1xuICovXG5cbiVuYXYtLWtleXdvcmRzIHtcbiAgPiBsaSB7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlxcMDAyQ1wiIFwiXFwwMEEwXCI7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZDphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqICduYXYtLWJyZWFkY3J1bWJzJyBkaXNwbGF5IGFzIGJyZWFkY3J1bWJzXG4gKi9cblxuJW5hdi0tYnJlYWRjcnVtYnMge1xuICA+IGxpIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFwyN0U5XCIgXCJcXDAwQTBcIjtcbiAgICB9XG4gICAgJjpmaXJzdC1jaGlsZDpiZWZvcmV7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqICduYXYtLXBhcmFsbGVsJyBkaXNwbGF5IHdpdGggcGFyYWxsZWwgc2VwYXJhdG9yXG4gKi9cblxuJW5hdi0tcGFyYWxsZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgPiBsaSB7XG4gICAgQGluY2x1ZGUgcHgtdG8tcmVtKHBhZGRpbmctbGVmdCwgY2FsYygkYmFzZVVuaXQvNCkpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXDAwN0NcIjtcbiAgICAgIEBpbmNsdWRlIHB4LXRvLXJlbShtYXJnaW4tcmlnaHQsIGNhbGMoJGJhc2VVbml0LzQpKTtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbkBpZiAkYWRkQ3NzIGFuZCAkbmF2T2JqZWN0IHtcbiAgLm5hdiB7QGV4dGVuZCAlbmF2O31cbiAgLm5hdi0tc3RhY2tlZCB7QGV4dGVuZCAlbmF2LS1zdGFja2VkO31cbiAgLm5hdi0tYmFubmVyIHtAZXh0ZW5kICVuYXYtLWJhbm5lcjt9XG4gIC5uYXYtLWJsb2NrIHtAZXh0ZW5kICVuYXYtLWJsb2NrO31cbiAgLm5hdi0tZml0IHtAZXh0ZW5kICVuYXYtLWZpdDt9XG4gIC5uYXYtLWtleXdvcmRzIHtAZXh0ZW5kICVuYXYtLWtleXdvcmRzO31cbiAgLm5hdi0tYnJlYWRjcnVtYnMge0BleHRlbmQgJW5hdi0tYnJlYWRjcnVtYnM7fVxuICAubmF2LS1wYXJhbGxlbCB7QGV4dGVuZCAlbmF2LS1wYXJhbGxlbDt9XG59Ly9AaWZcbiIsIlxuLyoqXG4gKiBfYm94LnNjc3NcbiAqXG4gKiBtb2RpZmllZCB2ZXJzaW9uIG9mOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2ludWl0Y3NzL29iamVjdHMuYm94L2Jsb2IvbWFzdGVyL19vYmplY3RzLmJveC5zY3NzXG4gKlxuICovXG5cbiVib3gge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIEBpbmNsdWRlIHB4LXRvLXJlbShwYWRkaW5nLCBjYWxjKCRiYXNlVW5pdC8yKSk7XG5cbiAgPiAqOmxhc3QtY2hpbGQsXG4gID4gKjpsYXN0LWNoaWxkID4gKjpsYXN0LWNoaWxkLFxuICA+ICo6bGFzdC1jaGlsZCA+ICo6bGFzdC1jaGlsZCA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4lYm94LS1zbWFsbCB7XG4gIEBpbmNsdWRlIHB4LXRvLXJlbShwYWRkaW5nLCBjYWxjKCRiYXNlVW5pdC80KSk7XG59XG5cbiVib3gtLWxhcmdlIHtcbiAgQGluY2x1ZGUgcHgtdG8tcmVtKHBhZGRpbmcsICRiYXNlVW5pdCk7XG59XG5cbkBpZiAkYWRkQ3NzIGFuZCAkYm94T2JqZWN0IHtcbiAgLmJveCB7QGV4dGVuZCAlYm94O31cbiAgLmJveC0tc21hbGwge0BleHRlbmQgJWJveC0tc21hbGw7fVxuICAuYm94LS1sYXJnZSB7QGV4dGVuZCAlYm94LS1sYXJnZTt9XG59Ly9AaWYgJGJveE9iamVjdFxuIiwiXG4vKipcbiAqIF9tZWRpYS5zY3NzXG4gKlxuICogZGlzcGxheXMgaW1hZ2UgYW5kIHRleHQgc2lkZSBieSBzaWRlXG4gKlxuICogRXhhbXBsZSBtYXJrdXA6XG4gKlxuICAgIDxkaXYgY2xhc3M9XCJtZWRpYSBtZWRpYS0tc21hbGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZWRpYV9faW1nXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWVkaWFfX2JvZHlcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAqXG4gKiB1c2UgdGhlIGAubWVkaWEtLXJldmAgbW9kaWZpZXIgdG8gcmV2ZXJzZSB0aGUgdGhlIGltYWdlIGxvY2F0aW9uIGFuZCBwdXQgaXQgdG8gdGhlIHJpZ2h0XG4gKiB1c2UgdGhlIGAubWVkaWEtLXNtYWxsYCBtb2RpZmllciwgdG8gZGVjcmVhc2UgdGhlIGd1dHRlciB3aWR0aCBiZXR3ZWVuIGltYWdlIGFuZCBjb250ZW50XG4gKlxuICogZm9yIG1vcmUgaW5mb3JtYXRpb24gaGF2ZSBhIGxvb2sgYXQ6XG4gKiBzdHViYm9ybmVsbGEub3JnL2NvbnRlbnQvMjAxMC8wNi8yNS90aGUtbWVkaWEtb2JqZWN0LXNhdmVzLWh1bmRyZWRzLW9mLWxpbmVzLW9mLWNvZGVcbiAqXG4gKi9cblxuJW1lZGlhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIEBlYWNoICRrZXksJGJyZWFrIGluICRicmVha3Mge1xuICAgICYtLSN7JGtleX17XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrKXtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuJW1lZGlhX19pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIEBpbmNsdWRlIHB4LXRvLXJlbShtYXJnaW4tcmlnaHQsICRiYXNlVW5pdCk7XG4gIC5tZWRpYV9fYm9keSArICZ7XG4gICAgQGluY2x1ZGUgcHgtdG8tcmVtKG1hcmdpbi1sZWZ0LCAkYmFzZVVuaXQpO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICBAZWFjaCAka2V5LCRicmVhayBpbiAkYnJlYWtzIHtcbiAgICAubWVkaWEtLSN7JGtleX0gJiB7XG4gICAgICBAaW5jbHVkZSBtZWRpYShtYXgtd2lkdGggJGJyZWFrIC0gMSl7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbiAgPiBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbiVtZWRpYV9fYm9keSB7XG4gIGZsZXg6IDE7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5cbiVtZWRpYS0tc21hbGwge1xuICAubWVkaWFfX2ltZyB7XG4gICAgQGluY2x1ZGUgcHgtdG8tcmVtKG1hcmdpbi1yaWdodCwgY2FsYygkYmFzZVVuaXQvMikpO1xuICB9XG59XG4lbWVkaWEtLWJpZyB7XG4gIC5tZWRpYV9faW1nIHtcbiAgICBAaW5jbHVkZSBweC10by1yZW0obWFyZ2luLXJpZ2h0LCAkYmFzZVVuaXQqMik7XG4gIH1cbn1cbkBpZiAkYWRkQ3NzIGFuZCAkbWVkaWFPYmplY3Qge1xuICAubWVkaWEge0BleHRlbmQgJW1lZGlhO31cbiAgQGVhY2ggJGtleSwkYnJlYWsgaW4gJGJyZWFrcyB7XG4gICAgLm1lZGlhLS0jeyRrZXl9e1xuICAgICAgQGV4dGVuZCAlbWVkaWEtLSN7JGtleX07XG4gICAgfVxuICB9XG4gIC5tZWRpYV9faW1nIHtAZXh0ZW5kICVtZWRpYV9faW1nO31cbiAgLm1lZGlhX19ib2R5IHtAZXh0ZW5kICVtZWRpYV9fYm9keTt9XG4gIC5tZWRpYS0tc21hbGwge0BleHRlbmQgJW1lZGlhLS1zbWFsbDt9XG4gIC5tZWRpYS0tYmlnIHtAZXh0ZW5kICVtZWRpYS0tYmlnO31cbn1cbiIsIlxuLyoqXG4gKiBfYmFyZS1saXN0LnNjc3NcbiAqXG4gKi9cblxuJWJhcmUtbGlzdCB7XG4gIG1hcmdpbjogIDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbkBpZiAkYWRkQ3NzIGFuZCAkYmFyZUxpc3RPYmplY3Qge1xuICAuYmFyZS1saXN0IHtcbiAgICBAZXh0ZW5kICViYXJlLWxpc3Q7XG4gIH1cbn1cbiIsIi8qKlxuICogX3VpLWxpc3Quc2Nzc1xuICpcbiAqIGJhc2VkIG9uIEhhcnJ5IFJvYmVydHMgdWktbGlzdCBvYmplY3Q6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vaW51aXRjc3Mvb2JqZWN0cy51aS1saXN0L2Jsb2IvbWFzdGVyL19vYmplY3RzLnVpLWxpc3Quc2Nzc1xuICpcbiAqIGNyZWF0ZXMgYmxvY2t5IGl0ZW1zLCBjYW4gYmUgdXNlZCB3aXRoIGxpc3RzIG9yIHRoZSBjb3JyZXNwb25kaW5nIG1hcmt1cDpcbiAqXG4gKiA8ZGl2IGNsYXNzPVwidWktbGlzdFwiPlxuICogIDxkaXYgY2xhc3M9XCJ1aS1saXN0X19pdGVtXCI+PC9kaXY+XG4gKiAgPGRpdiBjbGFzcz1cInVpLWxpc3RfX2l0ZW1cIj48L2Rpdj5cbiAqICA8ZGl2IGNsYXNzPVwidWktbGlzdF9faXRlbVwiPjwvZGl2PlxuICogPC9kaXY+XG4gKlxuICogb3I6XG4gKlxuICogPHVsIGNsYXNzPVwidWktbGlzdCB1aS1saXN0LS1zbWFsbFwiPlxuICogIDxsaT48L2xpPlxuICogIDxsaT48L2xpPlxuICogIDxsaT48L2xpPlxuICogPC91bD5cbiAqXG4gKiBjYW4gb3B0aW9uYWxseSBiZSB1c2VkIHdpdGggLS1zZXBhcmF0b3IgYW5kIC0tYm9yZGVyLCB3aGVyZSAtLXNlcGFyYXRvclxuICogYWRkcyBib3JkZXJzIHRvIHRoZSBsaXN0IGVsZW1lbnQgYW5kIC0tYm9yZGVyIHRvIHRoZSBsaXN0IGl0c2VsZlxuICpcbiAqIGNvbWVzIHdpdGggZGlmZmVyZW50IHNpemUgbW9kaWZpZXJzXG4gKlxuICovXG5cbiV1aS1saXN0IHtcbiAgbWFyZ2luOiAgMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICA+IGxpIHtcbiAgICBAZXh0ZW5kICV1aS1saXN0X19pdGVtO1xuICB9XG59XG5cbiAgJXVpLWxpc3RfX2l0ZW0ge1xuICAgIEBpbmNsdWRlIHB4LXRvLXJlbShwYWRkaW5nLCBjYWxjKCRiYXNlVW5pdC8yKSk7XG4gIH1cblxuJXVpLWxpc3QtLXNlcGFyYXRvcixcbiAgJXVpLWxpc3RfX2l0ZW0ge1xuICAgIGJvcmRlcjogMCBzb2xpZCBjb2xvcignYm9yZGVyJyk7XG4gIH1cblxuJXVpLWxpc3QtLXNlcGFyYXRvciB7XG4gID4gbGksXG4gID4gLnVpLWxpc3RfX2l0ZW0ge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbiAgfVxuXG4gID4gbGk6Zmlyc3QtY2hpbGQsXG4gID4gLnVpLWxpc3RfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIH1cbn1cblxuXG4ldWktbGlzdC0tYm9yZGVyIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG59XG5cbi8qKlxuICogTW9kaWZpZXJzIGZvciBzaXppbmcgdGhlIGxpc3RcbiAqL1xuJXVpLWxpc3QtLXNtYWxsIHtcbiAgPiAudWktbGlzdF9faXRlbSB7XG4gICAgQGluY2x1ZGUgcHgtdG8tcmVtKHBhZGRpbmcsIGNhbGMoJGJhc2VVbml0LzQpKTtcbiAgfVxufVxuXG4ldWktbGlzdC0tbGFyZ2Uge1xuICA+IC51aS1saXN0X19pdGVtIHtcbiAgICBAaW5jbHVkZSBweC10by1yZW0ocGFkZGluZywgJGJhc2VVbml0KTtcbiAgfVxufVxuQGlmICRhZGRDc3MgYW5kICR1aUxpc3RPYmplY3Qge1xuICAudWktbGlzdCB7QGV4dGVuZCAldWktbGlzdDt9XG4gIC51aS1saXN0X19pdGVtIHtAZXh0ZW5kICV1aS1saXN0X19pdGVtO31cbiAgLnVpLWxpc3QtLXNlcGFyYXRvciB7QGV4dGVuZCAldWktbGlzdC0tc2VwYXJhdG9yO31cbiAgLnVpLWxpc3QtLWJvcmRlcntAZXh0ZW5kICV1aS1saXN0LS1ib3JkZXI7fVxuICAudWktbGlzdC0tc21hbGx7QGV4dGVuZCAldWktbGlzdC0tc21hbGw7fVxuICAudWktbGlzdC0tbGFyZ2V7QGV4dGVuZCAldWktbGlzdC0tbGFyZ2U7fVxufVxuIiwiXG4vKipcbiAqIF9hcnJvdy5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogVXNhZ2U6XG4gKiA8ZGl2IGNsYXNzPVwiYXJyb3cgYXJyb3ctLXRvcC1sZWZ0XCI+XG4gKiAgLi4uXG4gKiA8L2Rpdj5cbiAqXG4gKi9cblxuJWFycm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAmOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgfVxufVxuXG4vKipcbiAqIEFycm93IFRvcFxuICovXG5cbiVhcnJvdy0tdG9wLFxuJWFycm93LS10b3AtbGVmdCxcbiVhcnJvdy0tdG9wLXJpZ2h0IHtcbiAgJjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0OiAkYXJyb3dTaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogJGFycm93U2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAkYXJyb3dTaXplIHNvbGlkICNmZmY7XG4gICAgdG9wOiAtJGFycm93U2l6ZTtcbiAgfVxuICBAZWFjaCAka2V5LCRjb2xvciBpbiAkY29sb3Jze1xuICAgICYuYXJyb3ctLWNvbG9yLSN7JGtleX0ge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiVhcnJvdy0tdG9wIHtcbiAgJjpiZWZvcmUge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLSRhcnJvd1NpemU7XG4gIH1cbn1cblxuJWFycm93LS10b3AtbGVmdCB7XG4gICY6YmVmb3JlIHtcbiAgICBsZWZ0OiAkYmFzZVVuaXQ7XG4gICAgbGVmdDogdG9SZW0oJGJhc2VVbml0KTtcbiAgfVxufVxuXG4lYXJyb3ctLXRvcC1yaWdodCB7XG4gICY6YmVmb3JlIHtcbiAgICByaWdodDogJGJhc2VVbml0O1xuICAgIHJpZ2h0OiB0b1JlbSgkYmFzZVVuaXQpO1xuICB9XG59XG5cbi8qKlxuICogQXJyb3cgQm90dG9tXG4gKi9cblxuJWFycm93LS1ib3R0b20sXG4lYXJyb3ctLWJvdHRvbS1sZWZ0LFxuJWFycm93LS1ib3R0b20tcmlnaHQge1xuICAmOmJlZm9yZSB7XG4gICAgYm9yZGVyLWxlZnQ6ICRhcnJvd1NpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAkYXJyb3dTaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6ICRhcnJvd1NpemUgc29saWQgI2ZmZjtcbiAgICBib3R0b206IC0kYXJyb3dTaXplO1xuICB9XG4gIEBlYWNoICRrZXksJGNvbG9yIGluICRjb2xvcnN7XG4gICAgJi5hcnJvdy0tY29sb3ItI3ska2V5fSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuJWFycm93LS1ib3R0b20ge1xuICAmOmJlZm9yZSB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtJGFycm93U2l6ZTtcbiAgfVxufVxuXG4lYXJyb3ctLWJvdHRvbS1sZWZ0IHtcbiAgJjpiZWZvcmUge1xuICAgIGxlZnQ6ICRiYXNlVW5pdDtcbiAgICBsZWZ0OiB0b1JlbSgkYmFzZVVuaXQpO1xuICB9XG59XG5cbiVhcnJvdy0tYm90dG9tLXJpZ2h0IHtcbiAgJjpiZWZvcmUge1xuICAgIHJpZ2h0OiAkYmFzZVVuaXQ7XG4gICAgcmlnaHQ6IHRvUmVtKCRiYXNlVW5pdCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBcnJvdyBMZWZ0XG4gKi9cblxuJWFycm93LS1sZWZ0LFxuJWFycm93LS1sZWZ0LXRvcCxcbiVhcnJvdy0tbGVmdC1ib3R0b20ge1xuICAmOmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcDogJGFycm93U2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAkYXJyb3dTaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogJGFycm93U2l6ZSBzb2xpZCAjZmZmO1xuICAgIGxlZnQ6IC0kYXJyb3dTaXplO1xuICB9XG4gIEBlYWNoICRrZXksJGNvbG9yIGluICRjb2xvcnN7XG4gICAgJi5hcnJvdy0tY29sb3ItI3ska2V5fSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lYXJyb3ctLWxlZnQge1xuICAmOmJlZm9yZSB7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSRhcnJvd1NpemU7XG4gIH1cbn1cblxuJWFycm93LS1sZWZ0LXRvcCB7XG4gICY6YmVmb3JlIHtcbiAgICB0b3A6ICRiYXNlVW5pdDtcbiAgICB0b3A6IHRvUmVtKCRiYXNlVW5pdCk7XG4gIH1cbn1cblxuJWFycm93LS1sZWZ0LWJvdHRvbSB7XG4gICY6YmVmb3JlIHtcbiAgICBib3R0b206ICRiYXNlVW5pdDtcbiAgICBib3R0b206IHRvUmVtKCRiYXNlVW5pdCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBcnJvdyBSaWdodFxuICovXG5cbiVhcnJvdy0tcmlnaHQsXG4lYXJyb3ctLXJpZ2h0LXRvcCxcbiVhcnJvdy0tcmlnaHQtYm90dG9tIHtcbiAgJjpiZWZvcmUge1xuICAgIGJvcmRlci10b3A6ICRhcnJvd1NpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFycm93U2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogJGFycm93U2l6ZSBzb2xpZCAjZmZmO1xuICAgIHJpZ2h0OiAtJGFycm93U2l6ZTtcbiAgfVxuICBAZWFjaCAka2V5LCRjb2xvciBpbiAkY29sb3Jze1xuICAgICYuYXJyb3ctLWNvbG9yLSN7JGtleX0ge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lYXJyb3ctLXJpZ2h0IHtcbiAgJjpiZWZvcmUge1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0kYXJyb3dTaXplO1xuICB9XG59XG5cbiVhcnJvdy0tcmlnaHQtdG9wIHtcbiAgJjpiZWZvcmUge1xuICAgIHRvcDogJGJhc2VVbml0O1xuICAgIHRvcDogdG9SZW0oJGJhc2VVbml0KTtcbiAgfVxufVxuXG4lYXJyb3ctLXJpZ2h0LWJvdHRvbSB7XG4gICY6YmVmb3JlIHtcbiAgICBib3R0b206ICRiYXNlVW5pdDtcbiAgICBib3R0b206IHRvUmVtKCRiYXNlVW5pdCk7XG4gIH1cbn1cbkBpZiAkYWRkQ3NzIGFuZCAkYXJyb3dPYmplY3Qge1xuICAuYXJyb3cge0BleHRlbmQgJWFycm93O31cblxuICAuYXJyb3ctLXRvcCB7QGV4dGVuZCAlYXJyb3ctLXRvcDt9XG4gIC5hcnJvdy0tdG9wLWxlZnQge0BleHRlbmQgJWFycm93LS10b3AtbGVmdDt9XG4gIC5hcnJvdy0tdG9wLXJpZ2h0IHtAZXh0ZW5kICVhcnJvdy0tdG9wLXJpZ2h0O31cblxuICAuYXJyb3ctLWJvdHRvbSB7QGV4dGVuZCAlYXJyb3ctLWJvdHRvbTt9XG4gIC5hcnJvdy0tYm90dG9tLWxlZnQge0BleHRlbmQgJWFycm93LS1ib3R0b20tbGVmdDt9XG4gIC5hcnJvdy0tYm90dG9tLXJpZ2h0IHtAZXh0ZW5kICVhcnJvdy0tYm90dG9tLXJpZ2h0O31cblxuICAuYXJyb3ctLWxlZnQge0BleHRlbmQgJWFycm93LS1sZWZ0O31cbiAgLmFycm93LS1sZWZ0LXRvcCB7QGV4dGVuZCAlYXJyb3ctLWxlZnQtdG9wO31cbiAgLmFycm93LS1sZWZ0LWJvdHRvbSB7QGV4dGVuZCAlYXJyb3ctLWxlZnQtYm90dG9tO31cblxuICAuYXJyb3ctLXJpZ2h0IHtAZXh0ZW5kICVhcnJvdy0tcmlnaHQ7fVxuICAuYXJyb3ctLXJpZ2h0LXRvcCB7QGV4dGVuZCAlYXJyb3ctLXJpZ2h0LXRvcDt9XG4gIC5hcnJvdy0tcmlnaHQtYm90dG9tIHtAZXh0ZW5kICVhcnJvdy0tcmlnaHQtYm90dG9tO31cbn0vL0BpZlxuIiwiLyoqXG4gKiBfaWNvbi5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogVXNhZ2U6XG4gKiA8aSBjbGFzcz1cImljb24gW2ljb24tLW5hdi10b2dnbGVdXCI+PC9pPlxuICpcbiAqL1xuXG4vKipcbiAqIEFsbGUgaWNvbnMgd2VyZGVuIGFscyAuc3ZnIGV4cG9ydGllcnQgdW50ZXJcbiAqIC9hc3NldHMvaW1hZ2VzL2ljb25zIGFiZ2VsZWd0IHVuZCB2b24gZ3J1bnQtc3ZnbWluXG4gKiB1bmQgZ3J1bnQtZ3J1bnRpY29uIHdlaXRlcnZlcmFyYmVpdGV0LlxuICpcbiAqIE91dHB1dCB1bnRlciAvYXNzZXRzL2ltYWdlcy9pY29ucy9ncnVudGljb25cbiAqL1xuXG4laWNvbiB7XG4gIHdpZHRoOiAkYmFzZVVuaXQ7XG4gIGhlaWdodDogJGJhc2VVbml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbkBpZiAkYWRkQ3NzIHtcbiAgLmljb24ge1xuICAgIEBleHRlbmQgJWljb247XG4gIH1cbn1cblxuLyoqXG4gKiBCZWlzcGllbCBmw7xyIGVpbiBJY29uXG4gKlxuICogLmljb24tLW1vYmlsZS1uYXYtdG9nZ2xlIHtcbiAqICAgQGluY2x1ZGUgYmFja2dyb3VuZC1zdmcoXCIuLi9pbWFnZXMvbmF2LXRvZ2dsZVwiKTtcbiAqIH1cbiAqL1xuIiwiQG1peGluIHNwYWNlKCRtdWx0aXBsaWVyOiAxLCAkbmFtZTogJycsICRzY29wZTogJycpIHtcbiAgQGlmICRuYW1lID09ICdkZWZhdWx0JyB7JG5hbWU6ICcnfVxuXG4gIEBpZiAkc2NvcGUgIT0gJycgeyAkc2NvcGU6IC0jeyRzY29wZX07IH1cbiAgQGlmICRuYW1lICAhPSAnJyB7ICRuYW1lOiAtI3skbmFtZX07IH1cblxuICAlc3BhY2UjeyRzY29wZX0tLXRvcCN7JG5hbWV9IHtcbiAgICBtYXJnaW4tdG9wOiAkYmFzZVVuaXQgKiAkbXVsdGlwbGllciAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IHRvUmVtKCRiYXNlVW5pdCAqICRtdWx0aXBsaWVyKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgJXNwYWNlI3skc2NvcGV9LS1sZWZ0I3skbmFtZX0ge1xuICAgIG1hcmdpbi1sZWZ0OiAkYmFzZVVuaXQgKiAkbXVsdGlwbGllciAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiB0b1JlbSgkYmFzZVVuaXQgKiAkbXVsdGlwbGllcikgIWltcG9ydGFudDtcbiAgfVxuXG4gICVzcGFjZSN7JHNjb3BlfS0tcmlnaHQjeyRuYW1lfSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkYmFzZVVuaXQgKiAkbXVsdGlwbGllciAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogdG9SZW0oJGJhc2VVbml0ICogJG11bHRpcGxpZXIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAlc3BhY2UjeyRzY29wZX0tLWJvdHRvbSN7JG5hbWV9IHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYmFzZVVuaXQgKiAkbXVsdGlwbGllciAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IHRvUmVtKCRiYXNlVW5pdCAqICRtdWx0aXBsaWVyKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgQGlmICRhZGRDc3MgYW5kICRzcGFjaW5nSGVscGVyIHtcbiAgICAuc3BhY2UjeyRzY29wZX0tLXRvcCN7JG5hbWV9IHtcbiAgICAgIEBleHRlbmQgJXNwYWNlI3skc2NvcGV9LS10b3AjeyRuYW1lfTtcbiAgICB9XG4gICAgLnNwYWNlI3skc2NvcGV9LS1sZWZ0I3skbmFtZX0ge1xuICAgICAgQGV4dGVuZCAlc3BhY2UjeyRzY29wZX0tLWxlZnQjeyRuYW1lfTtcbiAgICB9XG4gICAgLnNwYWNlI3skc2NvcGV9LS1yaWdodCN7JG5hbWV9IHtcbiAgICAgIEBleHRlbmQgJXNwYWNlI3skc2NvcGV9LS1yaWdodCN7JG5hbWV9O1xuICAgIH1cbiAgICAuc3BhY2UjeyRzY29wZX0tLWJvdHRvbSN7JG5hbWV9IHtcbiAgICAgIEBleHRlbmQgJXNwYWNlI3skc2NvcGV9LS1ib3R0b20jeyRuYW1lfTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBfc3BhY2luZy5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogVXNhZ2U6XG4gKiA8ZGl2IGNsYXNzPVwic3BhY2UtLXRvcCAgc3BhY2UtdGFiLS10b3AtZG91YmxlXCI+XG4gKiAgIC4uLlxuICogPC9kaXY+XG4gKlxuICovXG5cbi8qKlxuICogQmFzaWMgJiBzcGFjaW5nXG4gKi9cblxuQGVhY2ggJGssJHMgaW4gJHNwYWNlIHtcbiAgQGluY2x1ZGUgc3BhY2UoJHMsJGspO1xufVxuQGVhY2ggJGtleSwkYnJlYWsgaW4gJGJyZWFrcyB7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVhaykge1xuICAgIEBlYWNoICRrLCRzIGluICRzcGFjZSB7XG4gICAgICBAaW5jbHVkZSBzcGFjZSgkcywkaywka2V5KTtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiB3aWR0aHMoJHNjb3BlOiAnJykge1xuICBAaWYgJHNjb3BlICE9ICcnIHsgJHNjb3BlOiAtI3skc2NvcGV9OyB9XG5cbiAgJG1vZGlmaWVyLXNlcGVyYXRvcjogJy0tJztcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTAgICAgICAgICAgeyBtYXgtd2lkdGg6IDAlICFpbXBvcnRhbnQ7IGRpc3BsYXk6IG5vbmU7IC1tcy1mbGV4OiAwJTsgZmxleDogMCU7fVxuXG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xb2YxLFxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Mm9mMixcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTNvZjMsXG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn00b2Y0LFxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NW9mNSxcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTZvZjYsICAgICAgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiAxMDAlOyBmbGV4OiAxMDAlO31cblxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MW9mMixcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTJvZjQsXG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0zb2Y2LFxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NG9mOCxcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTVvZjEwLFxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Nm9mMTIgICAgICB7IG1heC13aWR0aDogNTAlICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGJsb2NrOyAtbXMtZmxleDogNTAlOyBmbGV4OiA1MCU7fVxuXG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xb2YzLFxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Mm9mNixcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTNvZjksXG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn00b2YxMiAgICAgIHsgbWF4LXdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiAzMy4zMzMzMyU7IGZsZXg6IDMzLjMzMzMzJTt9XG5cbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTJvZjMsXG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn00b2Y2LFxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Nm9mOSxcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfThvZjEyICAgICAgeyBtYXgtd2lkdGg6IDY2LjY2NjY2JSAhaW1wb3J0YW50OyBkaXNwbGF5OiBibG9jazsgLW1zLWZsZXg6IDY2LjY2NjY2JTsgZmxleDogNjYuNjY2NjYlO31cblxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MW9mNCxcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTJvZjgsXG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0zb2YxMiAgICAgIHsgbWF4LXdpZHRoOiAyNSUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiAyNSU7IGZsZXg6IDI1JTt9XG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0zb2Y0LFxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Nm9mOCxcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTlvZjEyICAgICAgeyBtYXgtd2lkdGg6IDc1JSAhaW1wb3J0YW50OyBkaXNwbGF5OiBibG9jazsgLW1zLWZsZXg6IDc1JTsgZmxleDogNzUlO31cblxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MW9mNSxcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTJvZjEwICAgICAgeyBtYXgtd2lkdGg6IDIwJSAhaW1wb3J0YW50OyBkaXNwbGF5OiBibG9jazsgLW1zLWZsZXg6IDIwJTsgZmxleDogMjAlO31cbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTJvZjUsXG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn00b2YxMCAgICAgIHsgbWF4LXdpZHRoOiA0MCUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiA0MCU7IGZsZXg6IDQwJTt9XG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0zb2Y1LFxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Nm9mMTAgICAgICB7IG1heC13aWR0aDogNjAlICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGJsb2NrOyAtbXMtZmxleDogNjAlOyBmbGV4OiA2MCU7fVxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NG9mNSxcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfThvZjEwICAgICAgeyBtYXgtd2lkdGg6IDgwJSAhaW1wb3J0YW50OyBkaXNwbGF5OiBibG9jazsgLW1zLWZsZXg6IDgwJTsgZmxleDogODAlO31cblxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MW9mNixcbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTJvZjEyICAgICAgeyBtYXgtd2lkdGg6IDE2LjY2NjY2JSAhaW1wb3J0YW50OyBkaXNwbGF5OiBibG9jazsgLW1zLWZsZXg6IDE2LjY2NjY2JTsgZmxleDogMTYuNjY2NjYlO31cbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTVvZjYsXG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xMG9mMTIgICAgIHsgbWF4LXdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiA4My4zMzMzMyU7IGZsZXg6IDgzLjMzMzMzJTt9XG5cbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTFvZjggICAgICAgeyBtYXgtd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGJsb2NrOyAtbXMtZmxleDogMTIuNSU7IGZsZXg6IDEyLjUlO31cbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTNvZjggICAgICAgeyBtYXgtd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGJsb2NrOyAtbXMtZmxleDogMzcuNSU7IGZsZXg6IDM3LjUlO31cbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTVvZjggICAgICAgeyBtYXgtd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGJsb2NrOyAtbXMtZmxleDogNjIuNSU7IGZsZXg6IDYyLjUlO31cbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTdvZjggICAgICAgeyBtYXgtd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGJsb2NrOyAtbXMtZmxleDogODcuNSU7IGZsZXg6IDg3LjUlO31cblxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MW9mOSAgICAgICB7IG1heC13aWR0aDogMTEuMTExMTExMSUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiAxMS4xMTExMTExJTsgZmxleDogMTEuMTExMTExMSU7fVxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Mm9mOSAgICAgICB7IG1heC13aWR0aDogMjIuMjIyMjIyMiUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiAyMi4yMjIyMjIyJTsgZmxleDogMjIuMjIyMjIyMiU7fVxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NG9mOSAgICAgICB7IG1heC13aWR0aDogNDQuNDQ0NDQ0NCUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiA0NC40NDQ0NDQ0JTsgZmxleDogNDQuNDQ0NDQ0NCU7fVxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NW9mOSAgICAgICB7IG1heC13aWR0aDogNTUuNTU1NTU1NSUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiA1NS41NTU1NTU1JTsgZmxleDogNTUuNTU1NTU1NSU7fVxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9N29mOSAgICAgICB7IG1heC13aWR0aDogNzcuNzc3Nzc3NyUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiA3Ny43Nzc3Nzc3JTsgZmxleDogNzcuNzc3Nzc3NyU7fVxuICAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9OG9mOSAgICAgICB7IG1heC13aWR0aDogODguODg4ODg4OCUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiA4OC44ODg4ODg4JTsgZmxleDogODguODg4ODg4OCU7fVxuXG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xb2YxMCAgICAgIHsgbWF4LXdpZHRoOiAxMCUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiAxMCU7IGZsZXg6IDEwJTt9XG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0zb2YxMCAgICAgIHsgbWF4LXdpZHRoOiAzMCUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiAzMCU7IGZsZXg6IDMwJTt9XG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn03b2YxMCAgICAgIHsgbWF4LXdpZHRoOiA3MCUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiA3MCU7IGZsZXg6IDcwJTt9XG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn05b2YxMCAgICAgIHsgbWF4LXdpZHRoOiA5MCUgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2s7IC1tcy1mbGV4OiA5MCU7IGZsZXg6IDkwJTt9XG5cbiAgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTFvZjEyICAgICAgeyBtYXgtd2lkdGg6ICA4LjMzMzMzMzMlICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGJsb2NrOyAtbXMtZmxleDogOC4zMzMzMzMzJTsgZmxleDogOC4zMzMzMzMzJTt9XG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn01b2YxMiAgICAgIHsgbWF4LXdpZHRoOiA0MS42NjY2NjY2JSAhaW1wb3J0YW50OyBkaXNwbGF5OiBibG9jazsgLW1zLWZsZXg6IDQxLjY2NjY2NjYlOyBmbGV4OiA0MS42NjY2NjY2JTt9XG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn03b2YxMiAgICAgIHsgbWF4LXdpZHRoOiA1OC4zMzMzMzMzJSAhaW1wb3J0YW50OyBkaXNwbGF5OiBibG9jazsgLW1zLWZsZXg6IDU4LjMzMzMzMzMlOyBmbGV4OiA1OC4zMzMzMzMzJTt9XG4gICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xMW9mMTIgICAgIHsgbWF4LXdpZHRoOiA5MS42NjY2NjY2JSAhaW1wb3J0YW50OyBkaXNwbGF5OiBibG9jazsgLW1zLWZsZXg6IDkxLjY2NjY2NjYlOyBmbGV4OiA5MS42NjY2NjY2JTt9XG5cbiAgQGlmICRhZGRDc3MgYW5kICR3aWR0aEhlbHBlciB7XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTAge0BleHRlbmQgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTA7fVxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xb2YxLFxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0yb2YyLFxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0zb2YzLFxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn00b2Y0LFxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn01b2Y1LFxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn02b2Y2IHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xb2YxO31cbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MW9mMixcbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Mm9mNCxcbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9M29mNixcbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NG9mOCxcbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NW9mMTAsXG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTZvZjEyIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xb2YyO31cbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MW9mMyxcbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Mm9mNixcbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9M29mOSxcbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NG9mMTIge0BleHRlbmQgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTFvZjM7fVxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0yb2YzLFxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn00b2Y2LFxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn02b2Y5LFxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn04b2YxMiB7QGV4dGVuZCAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Mm9mMzt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTFvZjQsXG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTJvZjgsXG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTNvZjEyIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xb2Y0O31cbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9M29mNCxcbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Nm9mOCxcbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9OW9mMTIge0BleHRlbmQgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTNvZjQ7fVxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xb2Y1LFxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0yb2YxMCB7QGV4dGVuZCAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MW9mNTt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTJvZjUsXG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTRvZjEwIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0yb2Y1O31cbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9M29mNSxcbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9Nm9mMTAge0BleHRlbmQgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTNvZjU7fVxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn00b2Y1LFxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn04b2YxMCB7QGV4dGVuZCAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NG9mNTt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTFvZjYsXG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTJvZjEyIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xb2Y2O31cbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NW9mNixcbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MTBvZjEyIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn01b2Y2O31cbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MW9mOCB7QGV4dGVuZCAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MW9mODt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTNvZjgge0BleHRlbmQgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTNvZjg7fVxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn01b2Y4IHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn01b2Y4O31cbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9N29mOCB7QGV4dGVuZCAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9N29mODt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTFvZjkge0BleHRlbmQgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTFvZjk7fVxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0yb2Y5IHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0yb2Y5O31cbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NG9mOSB7QGV4dGVuZCAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9NG9mOTt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTVvZjkge0BleHRlbmQgJXdpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTVvZjk7fVxuICAgIC53aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn03b2Y5IHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn03b2Y5O31cbiAgICAud2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9OG9mOSB7QGV4dGVuZCAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9OG9mOTt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTFvZjEwIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xb2YxMDt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTNvZjEwIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0zb2YxMDt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTdvZjEwIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn03b2YxMDt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTlvZjEwIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn05b2YxMDt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTFvZjEyIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn0xb2YxMjt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTVvZjEyIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn01b2YxMjt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTdvZjEyIHtAZXh0ZW5kICV3aWR0aCN7JHNjb3BlfSN7JG1vZGlmaWVyLXNlcGVyYXRvcn03b2YxMjt9XG4gICAgLndpZHRoI3skc2NvcGV9I3skbW9kaWZpZXItc2VwZXJhdG9yfTExb2YxMiB7QGV4dGVuZCAld2lkdGgjeyRzY29wZX0jeyRtb2RpZmllci1zZXBlcmF0b3J9MTFvZjEyO31cbiAgfVxufVxuXG4vKipcbiAqIF93aWR0aC5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogVXNhZ2U6XG4gKiA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxuICogICA8ZGl2IGNsYXNzPVwiZ3JpZF9faXRlbSAgd2lkdGgtLTFvZjEgIHdpZHRoLXRhYi0tMW9mMyAgd2lkdGgtZGVzay0tMW9mNFwiPlxuICogICAgIC4uLlxuICogICA8L2Rpdj5cbiAqICAgPGRpdiBjbGFzcz1cImdyaWRfX2l0ZW0gIHdpZHRoLS0xb2YxICB3aWR0aC10YWItLTJvZjMgIHdpZHRoLWRlc2stLTNvZjRcIj5cbiAqICAgICAuLi5cbiAqICAgPC9kaXY+XG4gKiA8L2Rpdj5cbiAqXG4gKi9cblxuQGluY2x1ZGUgd2lkdGhzKCk7XG5cbkBlYWNoICRrZXksJGJyZWFrIGluICRicmVha3Mge1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWspIHtcbiAgICBAaW5jbHVkZSB3aWR0aHMoJGtleSk7XG4gIH1cbn1cbiIsIkBtaXhpbiB0ZXh0KCRzY29wZTogJycpIHtcbiAgQGlmICRzY29wZSAhPSAnJyB7ICRzY29wZTogLSN7JHNjb3BlfTsgfVxuXG4gICV0ZXh0I3skc2NvcGV9LS1sZWZ0ICAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICV0ZXh0I3skc2NvcGV9LS1yaWdodCAgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAldGV4dCN7JHNjb3BlfS0tY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBpZiAkYWRkQ3NzIGFuZCAkdHlwb0hlbHBlciB7XG4gICAgLnRleHQjeyRzY29wZX0tLWxlZnQgICB7IEBleHRlbmQgJXRleHQjeyRzY29wZX0tLWxlZnQ7IH1cbiAgICAudGV4dCN7JHNjb3BlfS0tcmlnaHQgIHsgQGV4dGVuZCAldGV4dCN7JHNjb3BlfS0tcmlnaHQ7IH1cbiAgICAudGV4dCN7JHNjb3BlfS0tY2VudGVyIHsgQGV4dGVuZCAldGV4dCN7JHNjb3BlfS0tY2VudGVyOyB9XG4gIH1cbn1cblxuLyoqXG4gKiBfdHlwby5zY3NzXG4gKlxuICogQXV0aG9yOiBNYXJpYW4gRnJpZWRtYW5uXG4gKlxuICogQWx0IFRleHQgU3R5bGVzLlxuICpcbiAqICMjIGFsaWdubWVudFxuICogLSB0ZXh0LS1sZWZ0XG4gKiAtIHRleHQtLXJpZ2h0XG4gKiAtIHRleHQtLWNlbnRlclxuICpcbiAqICMjIHV0aWxpdGllc1xuICogLSB0ZXh0LS1zZWNvbmRhcnlcbiAqIC0gdGV4dC0taW5oZXJpdC1jb2xvclxuICogLSB0ZXh0LS1uby13cmFwXG4gKiAtIHRleHQtLWxhcmdlXG4gKlxuICogVXNhZ2U6XG4gKiA8ZGl2IGNsYXNzPVwidGV4dC0tbGFyZ2VcIj5cbiAqICAgPGgxPkxvcmVtIElwc3VtPC9oMT5cbiAqICAgPHA+TG9yZW0gaXBzdW08L3A+XG4gKiA8L2Rpdj5cbiAqXG4gKi9cblxuLyoqXG4gKiBQcmV2ZW50IHRleHQgZnJvbSB3cmFwcGluZ1xuICovXG4ldGV4dC0tbm8td3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBEaXNwbGF5IHRleHQgaW4gc2Vjb25kYXJ5IGZvbnRcbiAqL1xuJXRleHQtLXNlY29uZGFyeSB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udFNlY29uZGFyeSAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIERpc3BsYXkgbGFyZ2VyIHRleHRcbiAqL1xuJXRleHQtLWxhcmdlIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRoZWFkaW5nU2l6ZTQsIGZhbHNlKTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbkBpZiAkYWRkQ3NzIGFuZCAkdHlwb0hlbHBlciB7XG4gIC50ZXh0LS1uby13cmFwIHtcbiAgICBAZXh0ZW5kICV0ZXh0LS1uby13cmFwO1xuICB9XG4gIC50ZXh0LS1zZWNvbmRhcnkge1xuICAgIEBleHRlbmQgJXRleHQtLXNlY29uZGFyeTtcbiAgfVxuICAudGV4dC0tbGFyZ2Uge1xuICAgIEBleHRlbmQgJXRleHQtLWxhcmdlO1xuICB9XG59XG5cbkBpbmNsdWRlIHRleHQoKTtcbkBlYWNoICRrZXksJGJyZWFrIGluICRicmVha3Mge1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWspIHtcbiAgICBAaW5jbHVkZSB0ZXh0KCRrZXkpO1xuICB9XG59XG4iLCJAbWl4aW4gY29sb3JDbGFzcygkc2NvcGU6ICcnKSB7XG4gIEBpZiAkc2NvcGUgIT0gJycgeyAkc2NvcGU6IC0jeyRzY29wZX07IH1cbiAgQGVhY2ggJGtleSwkY29sb3IgaW4gJGNvbG9yc3tcbiAgICAlYyN7JHNjb3BlfS0tI3ska2V5fSB7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgICAlYmcjeyRzY29wZX0tLSN7JGtleX0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgICBAaWYgJGFkZENzcyBhbmQgJGNvbG9ySGVscGVyIHtcbiAgICAgIC5jI3skc2NvcGV9LS0jeyRrZXl9IHtcbiAgICAgICAgQGV4dGVuZCAlYyN7JHNjb3BlfS0tI3ska2V5fTtcbiAgICAgIH1cbiAgICAgIC5iZyN7JHNjb3BlfS0tI3ska2V5fSB7XG4gICAgICAgIEBleHRlbmQgJWJnI3skc2NvcGV9LS0jeyRrZXl9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAlYyN7JHNjb3BlfS0taW5oZXJpdCB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbiAgJWJnI3skc2NvcGV9LS1pbmhlcml0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB9XG4gIEBpZiAkYWRkQ3NzIGFuZCAkY29sb3JIZWxwZXIge1xuICAgIC5jI3skc2NvcGV9LS1pbmhlcml0IHtcbiAgICAgIEBleHRlbmQgJWMjeyRzY29wZX0tLWluaGVyaXQ7XG4gICAgfVxuICAgIC5iZyN7JHNjb3BlfS0taW5oZXJpdCB7XG4gICAgICBAZXh0ZW5kICViZyN7JHNjb3BlfS0taW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4qIF9jb2xvci5zY3NzXG4qL1xuXG5AaWYgJGFkZENzcyBhbmQgJGNvbG9ySGVscGVyIHtcbiAgOnJvb3Qge1xuICAgIEBlYWNoICRrZXksJGNvbG9yIGluICRjb2xvcnN7XG4gICAgICAtLSN7JGtleX06ICN7JGNvbG9yfTtcbiAgICB9XG4gIH1cbn1cbkBpbmNsdWRlIGNvbG9yQ2xhc3MoKTtcblxuQGVhY2ggJGtleSwkYnJlYWsgaW4gJGJyZWFrcyB7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVhaykge1xuICAgIEBpbmNsdWRlIGNvbG9yQ2xhc3MoJGtleSk7XG4gIH1cbn1cblxuIiwiQGltcG9ydCAnYmFzZSc7XG5cbi5oZXJvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjUwcHg7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgQGluY2x1ZGUgbWVkaWEoYnJlYWsoJ2xhcCcpKXtcbiAgICAgIGhlaWdodDogMzUwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKGJyZWFrKCdkZXNrLXdpZGUnKSl7XG4gICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgIH1cbiAgfVxufSJdfQ== */

