@charset "UTF-8";
/*
* Pages Mixins
*/
.layout-navbar-fixed .layout-wrapper:not(.layout-horizontal) .layout-page:before {
  content: "";
  width: 100%;
  height: 0.75rem;
  position: fixed;
  top: 0px;
  z-index: 10;
}

.bg-menu-theme .menu-header {
  position: relative;
}
.bg-menu-theme .menu-header:before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.1875rem;
  width: 1rem;
  height: 1px;
  transition: all 0.3s ease-in-out;
}
.layout-wrapper:not(.layout-horizontal) .bg-menu-theme .menu-inner .menu-item .menu-link {
  border-radius: 0.375rem;
}
.layout-horizontal .bg-menu-theme .menu-inner > .menu-item > .menu-link {
  border-radius: 0.375rem;
}
@media (min-width: 1200px) {
  .layout-horizontal .bg-menu-theme .menu-inner > .menu-item {
    margin: 0.565rem 0;
  }
  .layout-horizontal .bg-menu-theme .menu-inner > .menu-item:not(:first-child) {
    margin-left: 0.0625rem;
  }
  .layout-horizontal .bg-menu-theme .menu-inner > .menu-item:not(:last-child) {
    margin-right: 0.0625rem;
  }
  .layout-horizontal .bg-menu-theme .menu-inner > .menu-item .menu-sub {
    box-shadow: 0 0.25rem 1rem rgba(161, 172, 184, 0.45);
  }
}
.layout-wrapper:not(.layout-horizontal) .bg-menu-theme .menu-inner > .menu-item.active:before {
  content: "";
  position: absolute;
  right: 0;
  width: 0.25rem;
  height: 2.6845rem;
  border-radius: 0.375rem 0 0 0.375rem;
}
.bg-menu-theme .menu-sub > .menu-item > .menu-link:before {
  content: "";
  position: absolute;
  left: 1.4375rem;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
}
.layout-horizontal .bg-menu-theme .menu-sub > .menu-item > .menu-link:before {
  left: 1.3rem;
}
.bg-menu-theme .menu-horizontal-wrapper > .menu-inner > .menu-item > .menu-sub > .menu-item > .menu-link:before {
  display: none;
}
.bg-menu-theme .menu-sub > .menu-item.active > .menu-link:not(.menu-toggle):before {
  left: 1.1875rem;
  width: 0.875rem;
  height: 0.875rem;
}
.layout-horizontal .bg-menu-theme .menu-sub > .menu-item.active > .menu-link:not(.menu-toggle):before {
  left: 1.1rem;
}

.layout-menu-hover .layout-menu {
  box-shadow: 0 0.625rem 1.25rem rgba(161, 172, 184, 0.5);
  transition: all 0.3s ease-in-out;
}

.app-brand .layout-menu-toggle {
  position: absolute;
  left: 15rem;
  border-radius: 50%;
}
.app-brand .layout-menu-toggle i {
  width: 1.5rem;
  height: 1.5rem;
  transition: all 0.3s ease-in-out;
}
@media (max-width: 1199.98px) {
  .app-brand .layout-menu-toggle {
    display: none;
  }
  .layout-menu-expanded .app-brand .layout-menu-toggle {
    display: block;
  }
}

body {
  background: #f4f5fb;
}

.bg-body {
  background: #f4f5fb !important;
}

.text-primary {
  color: #696cff !important;
}

.text-body[href]:hover {
  color: #5f61e6 !important;
}

.bg-primary {
  background-color: #696cff !important;
}

a.bg-primary:hover, a.bg-primary:focus {
  background-color: #6467f2 !important;
}

.dropdown-notifications-item:not(.mark-as-read) .dropdown-notifications-read span {
  background-color: #696cff;
}

.bg-label-primary {
  background-color: #e7e7ff !important;
  color: #696cff !important;
}

.border-label-primary {
  border: 3px solid #c3c4ff !important;
}

.border-light-primary {
  border: 3px solid rgba(105, 108, 255, 0.08);
}

.page-item.active .page-link, .page-item.active .page-link:hover, .page-item.active .page-link:focus,
.pagination li.active > a:not(.page-link),
.pagination li.active > a:not(.page-link):hover,
.pagination li.active > a:not(.page-link):focus {
  border-color: #696cff;
  background-color: #696cff;
  color: #fff;
  box-shadow: 0 0.125rem 0.25rem rgba(105, 108, 255, 0.4);
}

.progress-bar {
  background-color: #696cff;
  color: #fff;
  box-shadow: 0 2px 4px 0 rgba(105, 108, 255, 0.4);
}

.modal-onboarding .carousel-indicators [data-bs-target] {
  background-color: #696cff;
}

.carousel-control-prev,
.carousel-control-next {
  color: #696cff;
}
.carousel-control-prev:hover, .carousel-control-prev:focus,
.carousel-control-next:hover,
.carousel-control-next:focus {
  color: #696cff;
}

.list-group-item-primary {
  background-color: #e1e2ff;
  color: #696cff !important;
}

a.list-group-item-primary,
button.list-group-item-primary {
  color: #696cff;
}
a.list-group-item-primary:hover, a.list-group-item-primary:focus,
button.list-group-item-primary:hover,
button.list-group-item-primary:focus {
  background-color: #d6d7f2;
  color: #696cff;
}
a.list-group-item-primary.active,
button.list-group-item-primary.active {
  border-color: #696cff;
  background-color: #696cff;
  color: #696cff;
}

.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {
  border-color: #696cff;
  background-color: #696cff;
}

.list-group.list-group-timeline .list-group-timeline-primary:before {
  background-color: #696cff;
}

.alert-primary {
  background-color: #e7e7ff;
  border-color: #d2d3ff;
  color: #696cff;
}
.alert-primary .btn-close {
  background-image: url("data:image/svg+xml,%3Csvg width='150px' height='151px' viewBox='0 0 150 151' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpolygon id='path-1' points='131.251657 0 74.9933705 56.25 18.7483426 0 0 18.75 56.2450278 75 0 131.25 18.7483426 150 74.9933705 93.75 131.251657 150 150 131.25 93.7549722 75 150 18.75'%3E%3C/polygon%3E%3C/defs%3E%3Cg id='🎨-%5BSetup%5D:-Colors-&amp;-Shadows' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cg id='Artboard' transform='translate(-225.000000, -250.000000)'%3E%3Cg id='Icon-Color' transform='translate(225.000000, 250.500000)'%3E%3Cuse fill='%23696cff' xlink:href='%23path-1'%3E%3C/use%3E%3Cuse fill-opacity='0.5' fill='%23696cff' xlink:href='%23path-1'%3E%3C/use%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.alert-primary .alert-link {
  color: #696cff;
}

.card .alert-primary hr {
  background-color: #696cff !important;
}

.accordion.accordion-header-primary .accordion-item.active .accordion-button {
  color: #696cff !important;
}

.tooltip-primary .tooltip-inner, .tooltip-primary > .tooltip .tooltip-inner, .ngb-tooltip-primary + ngb-tooltip-window .tooltip-inner {
  background: #696cff;
  color: #fff;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(105, 108, 255, 0.4);
}
.tooltip-primary.bs-tooltip-top .tooltip-arrow::before, .tooltip-primary > .tooltip.bs-tooltip-top .tooltip-arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-top .tooltip-arrow::before {
  border-top-color: #696cff;
}
.tooltip-primary.bs-tooltip-start .tooltip-arrow::before, .tooltip-primary > .tooltip.bs-tooltip-start .tooltip-arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-start .tooltip-arrow::before {
  border-left-color: #696cff;
}
.tooltip-primary.bs-tooltip-bottom .tooltip-arrow::before, .tooltip-primary > .tooltip.bs-tooltip-bottom .tooltip-arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-bottom .tooltip-arrow::before {
  border-bottom-color: #696cff;
}
.tooltip-primary.bs-tooltip-end .tooltip-arrow::before, .tooltip-primary > .tooltip.bs-tooltip-end .tooltip-arrow::before, .ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-end .tooltip-arrow::before {
  border-right-color: #696cff;
}

.popover.popover-primary, .popover .popover-primary > .popover, .popover .ngb-popover-primary + ngb-popover-window {
  border-color: transparent;
  background: #696cff;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(105, 108, 255, 0.4);
}
.popover.popover-primary .popover-header, .popover .popover-primary > .popover .popover-header, .popover .ngb-popover-primary + ngb-popover-window .popover-header {
  border-color: rgba(255, 255, 255, 0.2);
  background: transparent;
  color: #fff;
}
.popover.popover-primary .popover-body, .popover .popover-primary > .popover .popover-body, .popover .ngb-popover-primary + ngb-popover-window .popover-body {
  background: transparent;
  color: rgba(255, 255, 255, 0.8);
}
.popover.popover-primary > .popover-arrow::before, .popover .popover-primary > .popover > .popover-arrow::before, .popover .ngb-popover-primary + ngb-popover-window > .popover-arrow::before {
  border-color: transparent;
}
.popover.popover-primary.bs-popover-top > .popover-arrow::after, .popover .popover-primary > .popover.bs-popover-top > .popover-arrow::after, .popover .ngb-popover-primary + ngb-popover-window.bs-popover-top > .popover-arrow::after {
  border-top-color: #696cff;
}
.popover.popover-primary.bs-popover-end > .popover-arrow::after, .popover .popover-primary > .popover.bs-popover-end > .popover-arrow::after, .popover .ngb-popover-primary + ngb-popover-window.bs-popover-end > .popover-arrow::after {
  border-right-color: #696cff;
}
.popover.popover-primary.bs-popover-bottom > .popover-arrow::after, .popover .popover-primary > .popover.bs-popover-bottom > .popover-arrow::after, .popover .ngb-popover-primary + ngb-popover-window.bs-popover-bottom > .popover-arrow::after {
  border-bottom-color: #696cff !important;
}
.popover.popover-primary.bs-popover-start > .popover-arrow::after, .popover .popover-primary > .popover.bs-popover-start > .popover-arrow::after, .popover .ngb-popover-primary + ngb-popover-window.bs-popover-start > .popover-arrow::after {
  border-left-color: #696cff;
}
.popover.popover-primary.bs-popover-bottom .popover-header::before, .popover .popover-primary > .popover.bs-popover-bottom .popover-header::before, .popover .ngb-popover-primary + ngb-popover-window.bs-popover-bottom .popover-header::before {
  border-bottom: 1px solid transparent;
}

.table-primary {
  --bs-table-bg: #e1e2ff;
  --bs-table-striped-bg: #dcdefb;
  --bs-table-striped-color: #435971;
  --bs-table-active-bg: #d1d4f1;
  --bs-table-active-color: #435971;
  --bs-table-hover-bg: #d8daf6;
  --bs-table-hover-color: #435971;
  color: #435971;
  border-color: #d1d4f1;
}
.table-primary th {
  border-bottom-color: inherit !important;
}
.table-primary .btn-icon {
  color: #435971;
}

.btn-primary {
  color: #fff;
  background-color: #696cff;
  border-color: #696cff;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(105, 108, 255, 0.4);
}
.btn-primary:hover {
  color: #fff;
  background-color: #5f61e6;
  border-color: #5f61e6;
  transform: translateY(-1px);
}
.btn-check:focus + .btn-primary, .btn-primary:focus, .btn-primary.focus {
  color: #fff;
  background-color: #5f61e6;
  border-color: #5f61e6;
  transform: translateY(0);
  box-shadow: none;
}
.btn-check:checked + .btn-primary, .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #595cd9;
  border-color: #595cd9;
}
.btn-check:checked + .btn-primary:focus, .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus, .show > .btn-primary.dropdown-toggle:focus {
  box-shadow: none;
}
.btn-primary.disabled, .btn-primary:disabled {
  box-shadow: none;
}

.btn-label-primary {
  color: #696cff;
  border-color: transparent;
  background: #e7e7ff;
}
.btn-label-primary:hover {
  border-color: transparent;
  background: #5f61e6;
  color: #fff;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(105, 108, 255, 0.4);
  transform: translateY(-1px);
}
.btn-label-primary:focus, .btn-label-primary.focus {
  color: #fff;
  background: #5f61e6;
  box-shadow: none !important;
  transform: translateY(0);
}
.btn-label-primary:active, .btn-label-primary.active, .show > .btn-label-primary.dropdown-toggle {
  color: #fff;
  background-color: #595cd9;
  border-color: transparent;
}
.btn-label-primary:active:focus, .btn-label-primary.active:focus, .show > .btn-label-primary.dropdown-toggle:focus {
  box-shadow: none;
}
.btn-label-primary.disabled, .btn-label-primary:disabled {
  box-shadow: none;
}

.btn-outline-primary {
  color: #696cff;
  border-color: #696cff;
  background: transparent;
}
.btn-outline-primary:hover {
  color: #fff;
  background-color: #5f61e6;
  border-color: #5f61e6;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(105, 108, 255, 0.4);
  transform: translateY(-1px);
}
.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus {
  color: #fff;
  background-color: #5f61e6;
  border-color: #5f61e6;
  box-shadow: none;
  transform: translateY(0);
}
.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show {
  color: #fff;
  background-color: #595cd9;
  border-color: #595cd9;
}
.btn-check:checked + .btn-outline-primary:focus, .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus {
  box-shadow: none;
}
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
  box-shadow: none;
}

.btn-outline-primary .badge {
  background: #696cff;
  border-color: #696cff;
  color: #fff;
}

.btn-outline-primary:hover .badge,
.btn-outline-primary:focus:hover .badge,
.btn-outline-primary:active .badge,
.btn-outline-primary.active .badge,
.show > .btn-outline-primary.dropdown-toggle .badge {
  background: #fff;
  border-color: #fff;
  color: #696cff;
}

.dropdown-item:not(.disabled).active,
.dropdown-item:not(.disabled):active {
  background-color: rgba(105, 108, 255, 0.08);
  color: #696cff !important;
}

.dropdown-menu > li:not(.disabled) > a:not(.dropdown-item):active,
.dropdown-menu > li.active:not(.disabled) > a:not(.dropdown-item) {
  background-color: rgba(105, 108, 255, 0.08);
  color: #696cff !important;
}

.nav .nav-link:hover, .nav .nav-link:focus {
  color: #5f61e6;
}

.nav-pills .nav-link.active, .nav-pills .nav-link.active:hover, .nav-pills .nav-link.active:focus {
  background-color: #696cff;
  color: #fff;
  box-shadow: 0 2px 4px 0 rgba(105, 108, 255, 0.4);
}

.form-control:focus,
.form-select:focus {
  border-color: #696cff;
}

.input-group:focus-within .form-control,
.input-group:focus-within .input-group-text {
  border-color: #696cff;
}

.form-check-input:focus {
  border-color: #696cff;
  box-shadow: 0 2px 4px 0 rgba(105, 108, 255, 0.4);
}
.form-check-input:disabled {
  background-color: #eceef1;
}
.form-check-input:checked, .form-check-input[type=checkbox]:indeterminate {
  background-color: #696cff;
  border-color: #696cff;
  box-shadow: 0 2px 4px 0 rgba(105, 108, 255, 0.4);
}

.custom-option.checked {
  border: 1px solid #696cff;
}

.form-switch .form-check-input:focus {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23696cff'/%3e%3c/svg%3e");
}
.form-switch .form-check-input:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

.form-control:focus ~ .form-label {
  border-color: #696cff;
}
.form-control:focus ~ .form-label::after {
  border-color: inherit;
}

.switch-input:checked ~ .switch-toggle-slider {
  background: #696cff;
  color: #fff;
}

.switch-input:active ~ .switch-toggle-slider {
  box-shadow: none;
}

.switch-input:focus ~ .switch-toggle-slider {
  border: 1px solid #696cff;
  box-shadow: 0 0 0.25rem 0.05rem rgba(105, 108, 255, 0.1);
}

.switch-primary.switch .switch-input:checked ~ .switch-toggle-slider {
  background: #696cff;
  color: #fff;
}

.switch-primary.switch .switch-input:active ~ .switch-toggle-slider {
  box-shadow: none;
}

.switch-primary.switch .switch-input:focus ~ .switch-toggle-slider {
  border: 1px solid #696cff;
  box-shadow: 0 0 0.25rem 0.05rem rgba(105, 108, 255, 0.1);
}

.timeline .timeline-item-primary .timeline-event {
  background-color: rgba(105, 108, 255, 0.1);
}
.timeline .timeline-item-primary .timeline-event:before {
  border-left-color: rgba(105, 108, 255, 0.1) !important;
  border-right-color: rgba(105, 108, 255, 0.1) !important;
}

.timeline .timeline-point-primary {
  background-color: #696cff !important;
  box-shadow: 0 0 0 0.1875rem rgba(105, 108, 255, 0.16);
}

.timeline .timeline-indicator-primary {
  border-color: #696cff !important;
}
.timeline .timeline-indicator-primary i {
  color: #696cff !important;
}

.divider.divider-primary .divider-text:before, .divider.divider-primary .divider-text:after {
  border-color: #696cff;
}

.navbar.bg-primary {
  background-color: #696cff !important;
  color: #e0e1ff;
}
.navbar.bg-primary .navbar-brand,
.navbar.bg-primary .navbar-brand a {
  color: #fff;
}
.navbar.bg-primary .navbar-brand:hover, .navbar.bg-primary .navbar-brand:focus,
.navbar.bg-primary .navbar-brand a:hover,
.navbar.bg-primary .navbar-brand a:focus {
  color: #fff;
}
.navbar.bg-primary .navbar-search-wrapper .navbar-search-icon,
.navbar.bg-primary .navbar-search-wrapper .search-input {
  color: #e0e1ff;
}
.navbar.bg-primary .search-input-wrapper .search-input,
.navbar.bg-primary .search-input-wrapper .search-toggler {
  background-color: #696cff !important;
  color: #e0e1ff;
}
.navbar.bg-primary .navbar-nav > .nav-link,
.navbar.bg-primary .navbar-nav > .nav-item > .nav-link,
.navbar.bg-primary .navbar-nav > .nav > .nav-item > .nav-link {
  color: #e0e1ff;
}
.navbar.bg-primary .navbar-nav > .nav-link:hover, .navbar.bg-primary .navbar-nav > .nav-link:focus,
.navbar.bg-primary .navbar-nav > .nav-item > .nav-link:hover,
.navbar.bg-primary .navbar-nav > .nav-item > .nav-link:focus,
.navbar.bg-primary .navbar-nav > .nav > .nav-item > .nav-link:hover,
.navbar.bg-primary .navbar-nav > .nav > .nav-item > .nav-link:focus {
  color: #fff;
}
.navbar.bg-primary .navbar-nav > .nav-link.disabled,
.navbar.bg-primary .navbar-nav > .nav-item > .nav-link.disabled,
.navbar.bg-primary .navbar-nav > .nav > .nav-item > .nav-link.disabled {
  color: #b0b2ff !important;
}
.navbar.bg-primary .navbar-nav .show > .nav-link,
.navbar.bg-primary .navbar-nav .active > .nav-link,
.navbar.bg-primary .navbar-nav .nav-link.show,
.navbar.bg-primary .navbar-nav .nav-link.active {
  color: #fff;
}
.navbar.bg-primary .navbar-toggler {
  color: #e0e1ff;
  border-color: rgba(255, 255, 255, 0.15);
}
.navbar.bg-primary .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='14px' height='11px' viewBox='0 0 14 11' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M0,0 L14,0 L14,1.75 L0,1.75 L0,0 Z M0,4.375 L14,4.375 L14,6.125 L0,6.125 L0,4.375 Z M0,8.75 L14,8.75 L14,10.5 L0,10.5 L0,8.75 Z' id='path-1'%3E%3C/path%3E%3C/defs%3E%3Cg id='💎-UI-Elements' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cg id='12)-Navbar' transform='translate(-1174.000000, -1290.000000)'%3E%3Cg id='Group' transform='translate(1174.000000, 1288.000000)'%3E%3Cg id='Icon-Color' transform='translate(0.000000, 2.000000)'%3E%3Cuse fill='rgba(255, 255, 255, 0.8)' xlink:href='%23path-1'%3E%3C/use%3E%3Cuse fill-opacity='0.1' fill='rgba(255, 255, 255, 0.8)' xlink:href='%23path-1'%3E%3C/use%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.navbar.bg-primary .navbar-text {
  color: #e0e1ff;
}
.navbar.bg-primary .navbar-text a {
  color: #fff;
}
.navbar.bg-primary .navbar-text a:hover, .navbar.bg-primary .navbar-text a:focus {
  color: #fff;
}
.navbar.bg-primary hr {
  border-color: rgba(255, 255, 255, 0.15);
}

.menu.bg-primary {
  background-color: #696cff !important;
  color: #e0e1ff;
}
.menu.bg-primary .menu-link,
.menu.bg-primary .menu-horizontal-prev,
.menu.bg-primary .menu-horizontal-next {
  color: #e0e1ff;
}
.menu.bg-primary .menu-link:hover, .menu.bg-primary .menu-link:focus,
.menu.bg-primary .menu-horizontal-prev:hover,
.menu.bg-primary .menu-horizontal-prev:focus,
.menu.bg-primary .menu-horizontal-next:hover,
.menu.bg-primary .menu-horizontal-next:focus {
  color: #fff;
}
.menu.bg-primary .menu-link.active,
.menu.bg-primary .menu-horizontal-prev.active,
.menu.bg-primary .menu-horizontal-next.active {
  color: #fff;
}
.menu.bg-primary .menu-item.disabled .menu-link,
.menu.bg-primary .menu-horizontal-prev.disabled,
.menu.bg-primary .menu-horizontal-next.disabled {
  color: #b0b2ff !important;
}
.menu.bg-primary .menu-item.open:not(.menu-item-closing) > .menu-toggle,
.menu.bg-primary .menu-item.active > .menu-link {
  color: #fff;
}
.menu.bg-primary .menu-item.active > .menu-link:not(.menu-toggle) {
  background-color: #6d70ff;
}
.menu.bg-primary.menu-horizontal .menu-sub > .menu-item.active > .menu-link:not(.menu-toggle) {
  background-color: #7174ff;
}
.menu.bg-primary.menu-horizontal .menu-inner .menu-item:not(.menu-item-closing) > .menu-sub, .menu.bg-primary.menu-horizontal .menu-inner .menu-item.open > .menu-toggle {
  background: #6d70ff;
}
.menu.bg-primary .menu-inner > .menu-item.menu-item-closing .menu-item.open .menu-sub,
.menu.bg-primary .menu-inner > .menu-item.menu-item-closing .menu-item.open .menu-toggle {
  background: transparent;
  color: #e0e1ff;
}
.menu.bg-primary .menu-inner-shadow {
  background: linear-gradient(#696cff 41%, rgba(105, 108, 255, 0.11) 95%, rgba(105, 108, 255, 0));
}
.menu.bg-primary .menu-text {
  color: #fff;
}
.menu.bg-primary .menu-header {
  color: #c2c4ff;
}
.menu.bg-primary hr,
.menu.bg-primary .menu-divider,
.menu.bg-primary .menu-inner > .menu-item.open > .menu-sub::before {
  border-color: rgba(255, 255, 255, 0.15) !important;
}
.menu.bg-primary .menu-inner > .menu-header::before {
  background-color: rgba(255, 255, 255, 0.15);
}
.menu.bg-primary .menu-block::before {
  background-color: #c2c4ff;
}
.menu.bg-primary .menu-inner > .menu-item.open .menu-item.open > .menu-toggle::before {
  background-color: #8385ff;
}
.menu.bg-primary .menu-inner > .menu-item.open .menu-item.active > .menu-link::before {
  background-color: #fff;
}
.menu.bg-primary .menu-inner > .menu-item.open .menu-item.open > .menu-toggle::before,
.menu.bg-primary .menu-inner > .menu-item.open .menu-item.active > .menu-link::before {
  box-shadow: 0 0 0 2px #6d70ff;
}
.menu.bg-primary .ps__thumb-y,
.menu.bg-primary .ps__rail-y.ps--clicking > .ps__thumb-y {
  background: rgba(255, 255, 255, 0.5942917647) !important;
}

.footer.bg-primary {
  background-color: #696cff !important;
  color: #e0e1ff;
}
.footer.bg-primary .footer-link {
  color: #e0e1ff;
}
.footer.bg-primary .footer-link:hover, .footer.bg-primary .footer-link:focus {
  color: #fff;
}
.footer.bg-primary .footer-link.disabled {
  color: #b0b2ff !important;
}
.footer.bg-primary .footer-text {
  color: #fff;
}
.footer.bg-primary .show > .footer-link,
.footer.bg-primary .active > .footer-link,
.footer.bg-primary .footer-link.show,
.footer.bg-primary .footer-link.active {
  color: #fff;
}
.footer.bg-primary hr {
  border-color: rgba(255, 255, 255, 0.15);
}

.bg-primary.toast, .bg-primary.bs-toast {
  color: #fff;
  background-color: rgba(105, 108, 255, 0.85) !important;
  box-shadow: 0 0.25rem 1rem rgba(105, 108, 255, 0.4);
}
.bg-primary.toast .toast-header, .bg-primary.bs-toast .toast-header {
  color: #fff;
}
.bg-primary.toast .toast-header .btn-close, .bg-primary.bs-toast .toast-header .btn-close {
  background-color: #696cff !important;
  background-image: url("data:image/svg+xml,%3Csvg width='150px' height='151px' viewBox='0 0 150 151' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpolygon id='path-1' points='131.251657 0 74.9933705 56.25 18.7483426 0 0 18.75 56.2450278 75 0 131.25 18.7483426 150 74.9933705 93.75 131.251657 150 150 131.25 93.7549722 75 150 18.75'%3E%3C/polygon%3E%3C/defs%3E%3Cg id='🎨-%5BSetup%5D:-Colors-&amp;-Shadows' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cg id='Artboard' transform='translate(-225.000000, -250.000000)'%3E%3Cg id='Icon-Color' transform='translate(225.000000, 250.500000)'%3E%3Cuse fill='%23fff' xlink:href='%23path-1'%3E%3C/use%3E%3Cuse fill-opacity='1' fill='%23fff' xlink:href='%23path-1'%3E%3C/use%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  box-shadow: 0 0.1875rem 0.375rem 0 rgba(105, 108, 255, 0.4) !important;
}

.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label {
  color: #696cff;
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
  color: #696cff;
}
.form-floating > .form-control:-webkit-autofill ~ label {
  color: #696cff;
}

.svg-illustration svg {
  fill: #696cff;
}

.jstree-default .jstree-wholerow-clicked,
.jstree-default .jstree-wholerow-hovered {
  background: #e9e9ff;
}

.jstree-default-dark .jstree-wholerow-hovered,
.jstree-default-dark .jstree-wholerow-clicked {
  background: #434d99;
}

html:not([dir=rtl]) .border-primary,
html[dir=rtl] .border-primary {
  border-color: #696cff !important;
}

a {
  color: #696cff;
}
a:hover {
  color: #787bff;
}

.fill-primary {
  fill: #696cff;
}

.noUi-primary .noUi-base .noUi-connect {
  background: #696cff !important;
}

.select2-container--default.select2-container--focus .select2-selection, .select2-container--default.select2-container--open .select2-selection {
  border-color: #696cff !important;
}

.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {
  background: rgba(105, 108, 255, 0.08) !important;
  color: #696cff !important;
}
.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice:hover {
  background: rgba(105, 108, 255, 0.16) !important;
}

table.dataTable.dtr-column > tbody > tr > td.control:before,
table.dataTable.dtr-column > tbody > tr > th.control:before {
  background-color: #696cff;
  border: 2px solid #fff;
  box-shadow: 0 0 3px rgba(67, 89, 113, 0.8);
}

.bootstrap-select .dropdown-menu.inner a[aria-selected=true] {
  background: rgba(105, 108, 255, 0.08) !important;
  color: #696cff !important;
}
.bootstrap-select .dropdown-toggle.show {
  border-color: #696cff;
}

.datepicker table tr td.active, .datepicker table tr td.active.highlighted, .datepicker table tr td.active,
.datepicker table tr td span.active,
.datepicker table tr td span.active.disabled, .datepicker table tr td.range-start, .datepicker table tr td.range-end {
  background: #696cff !important;
  color: #fff !important;
  box-shadow: 0 0.125rem 0.25rem rgba(105, 108, 255, 0.45);
}
.datepicker table tr td.range, .datepicker table tr td.range.highlighted, .datepicker table tr td.range.today {
  color: #696cff !important;
  background: #e7e7ff !important;
}
.datepicker table tr td.range.focused, .datepicker table tr td.range.highlighted.focused, .datepicker table tr td.range.today.focused {
  background: #c8c8ff !important;
}
.datepicker table tr td.range.disabled, .datepicker table tr td.range.highlighted.disabled, .datepicker table tr td.range.today.disabled {
  background: rgba(231, 231, 255, 0.5) !important;
  color: rgba(67, 89, 113, 0.5) !important;
}
.datepicker table tr td.today:not(.active) {
  border: 1px solid #696cff;
}

.flatpickr-calendar .numInputWrapper span.arrowDown:after {
  border-top-color: #fff;
}
.flatpickr-calendar .numInputWrapper span.arrowUp:after {
  border-bottom-color: #fff;
}

.flatpickr-day.today {
  border-color: #696cff;
}
.flatpickr-day.inRange, .flatpickr-day.nextMonthDay.inRange, .flatpickr-day.prevMonthDay.inRange, .flatpickr-day.today.inRange, .flatpickr-day.prevMonthDay.today.inRange, .flatpickr-day.nextMonthDay.today.inRange {
  color: #696cff !important;
  background: #e7e7ff !important;
  border-color: #e7e7ff !important;
}
.flatpickr-day.selected, .flatpickr-day.selected.inRange, .flatpickr-day.selected:focus, .flatpickr-day.selected:hover, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange, .flatpickr-day.startRange.inRange, .flatpickr-day.startRange:focus, .flatpickr-day.startRange:hover, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange, .flatpickr-day.endRange.inRange, .flatpickr-day.endRange:focus, .flatpickr-day.endRange:hover, .flatpickr-day.endRange.nextMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.week.selected {
  color: #fff !important;
  background: #696cff !important;
  border-color: #696cff !important;
  box-shadow: 0 0.125rem 0.25rem rgba(105, 108, 255, 0.45);
}

.daterangepicker table thead th select,
.daterangepicker table thead td select {
  background-color: transparent;
}

.daterangepicker td.active:not(.off) {
  background: #696cff !important;
  color: #fff;
  box-shadow: 0 0.125rem 0.25rem rgba(105, 108, 255, 0.45);
}

.daterangepicker .start-date:not(.end-date):not(.off),
.daterangepicker .end-date:not(.start-date):not(.off) {
  background-color: #696cff;
  color: #fff;
  border: 0 !important;
}
.daterangepicker .start-date:not(.end-date):not(.off):hover,
.daterangepicker .end-date:not(.start-date):not(.off):hover {
  background-color: #696cff !important;
}

.daterangepicker .input-mini.active {
  border-color: #696cff !important;
}

.daterangepicker td.in-range:not(.start-date):not(.end-date):not(.off) {
  color: #696cff !important;
  background-color: #e7e7ff !important;
}

.ranges li.active {
  color: #fff !important;
  background-color: #696cff !important;
}

li.ui-timepicker-selected,
.ui-timepicker-list .ui-timepicker-selected:hover {
  color: #fff !important;
  background: #696cff !important;
}

.ql-snow.ql-toolbar button:hover,
.ql-snow.ql-toolbar button:focus,
.ql-snow.ql-toolbar button.ql-active,
.ql-snow.ql-toolbar .ql-picker-label:hover,
.ql-snow.ql-toolbar .ql-picker-label.ql-active,
.ql-snow.ql-toolbar .ql-picker-item:hover,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected,
.ql-snow .ql-toolbar button:hover,
.ql-snow .ql-toolbar button:focus,
.ql-snow .ql-toolbar button.ql-active,
.ql-snow .ql-toolbar .ql-picker-label:hover,
.ql-snow .ql-toolbar .ql-picker-label.ql-active,
.ql-snow .ql-toolbar .ql-picker-item:hover,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected {
  color: #696cff !important;
}
.ql-snow.ql-toolbar button:hover .ql-fill,
.ql-snow.ql-toolbar button:focus .ql-fill,
.ql-snow.ql-toolbar button.ql-active .ql-fill,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button:hover .ql-fill,
.ql-snow .ql-toolbar button:focus .ql-fill,
.ql-snow .ql-toolbar button.ql-active .ql-fill,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
  fill: #696cff !important;
}
.ql-snow.ql-toolbar button:hover .ql-stroke,
.ql-snow.ql-toolbar button:focus .ql-stroke,
.ql-snow.ql-toolbar button.ql-active .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-snow.ql-toolbar button:hover .ql-stroke-miter,
.ql-snow.ql-toolbar button:focus .ql-stroke-miter,
.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
.ql-snow .ql-toolbar button:hover .ql-stroke,
.ql-snow .ql-toolbar button:focus .ql-stroke,
.ql-snow .ql-toolbar button.ql-active .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-snow .ql-toolbar button:hover .ql-stroke-miter,
.ql-snow .ql-toolbar button:focus .ql-stroke-miter,
.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
  stroke: #696cff !important;
}

.tt-suggestion:active,
.tt-cursor {
  background: rgba(105, 108, 255, 0.08) !important;
  color: #696cff !important;
}

.dropzone.dz-drag-hover {
  border-color: #696cff !important;
}

.swiper-pagination-bullet.swiper-pagination-bullet-active,
.swiper-pagination.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  background: #696cff !important;
}

.sk-primary.sk-plane,
.sk-primary .sk-chase-dot:before,
.sk-primary .sk-bounce-dot,
.sk-primary .sk-wave-rect,
.sk-primary.sk-pulse,
.sk-primary .sk-swing-dot,
.sk-primary .sk-circle-dot:before,
.sk-primary .sk-circle-fade-dot:before,
.sk-primary .sk-grid-cube,
.sk-primary .sk-fold-cube:before {
  background-color: #696cff;
}

.plyr input[type=range]::-ms-fill-lower {
  background: #696cff !important;
}

.plyr input[type=range]:active::-webkit-slider-thumb {
  background: #696cff !important;
}
.plyr input[type=range]:active::-moz-range-thumb {
  background: #696cff !important;
}
.plyr input[type=range]:active::-ms-thumb {
  background: #696cff !important;
}

.plyr--video .plyr__control.plyr__control--overlaid,
.plyr--video .plyr__controls button.tab-focus:focus,
.plyr--video .plyr__control[aria-expanded=true],
.plyr--video .plyr__controls button:hover {
  background: #696cff !important;
  color: #fff !important;
}

.plyr--audio .plyr__controls button.tab-focus:focus,
.plyr--audio .plyr__control[aria-expanded=true],
.plyr--audio .plyr__controls button:hover {
  background: #696cff !important;
  color: #fff !important;
}

.plyr__play-large {
  background: #696cff !important;
  color: #fff !important;
}

.plyr__progress--played,
.plyr__volume--display {
  color: #696cff !important;
}

.plyr--full-ui input[type=range] {
  color: #696cff !important;
}

.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::before {
  background: #696cff !important;
}

.fc .fc-event-primary:not(.fc-list-event) {
  background-color: #e7e7ff !important;
  color: #696cff !important;
}
.fc .fc-event-primary:not(.fc-list-event) {
  border-color: rgba(105, 108, 255, 0.15);
}
.fc .fc-event-primary.fc-list-event .fc-list-event-dot {
  border-color: #696cff !important;
}
.fc .fc-button-primary:not(.fc-prev-button):not(.fc-next-button) {
  background-color: rgba(105, 108, 255, 0.08) !important;
  border: 0;
  color: #696cff;
}
.fc .fc-button-primary:not(.fc-prev-button):not(.fc-next-button).fc-button-active, .fc .fc-button-primary:not(.fc-prev-button):not(.fc-next-button):hover {
  background-color: #696cff !important;
  border-color: #696cff !important;
  color: #fff;
}
.fc .fc-button-primary:not(.fc-prev-button):not(.fc-next-button):hover {
  box-shadow: 0 0.125rem 0.25rem 0 rgba(105, 108, 255, 0.4);
}

.swal2-progress-steps[class] .swal2-progress-step.swal2-active-progress-step,
.swal2-progress-steps[class] .swal2-progress-step-line,
.swal2-progress-steps[class] .swal2-active-progress-step,
.swal2-progress-steps[class] .swal2-progress-step {
  background: #696cff;
  color: #fff;
}

.swal2-progress-steps[class] .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step,
.swal2-progress-steps[class] .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line {
  background: #e9e9ff;
}

.pcr-app .pcr-type.active,
.pcr-app .pcr-save {
  background: #696cff !important;
}

.icon-card.active {
  outline: 1px solid #696cff;
}
.icon-card.active i,
.icon-card.active svg {
  color: #696cff;
}

.shepherd-element[data-popper-placement=bottom] .shepherd-arrow:before {
  background-color: #696cff !important;
  border-color: #696cff;
}
.shepherd-element .shepherd-header {
  background: #696cff !important;
  color: #fff;
}
.shepherd-element .shepherd-header .shepherd-title,
.shepherd-element .shepherd-header .shepherd-cancel-icon {
  color: #fff !important;
}
.shepherd-element .shepherd-button:not(:disabled).btn-primary {
  color: #fff;
  background-color: #696cff;
  border-color: #696cff;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(105, 108, 255, 0.4);
}
.shepherd-element .shepherd-button:not(:disabled).btn-primary:hover {
  color: #fff;
  background-color: #5f61e6;
  border-color: #5f61e6;
  transform: translateY(-1px);
}
.btn-check:focus + .shepherd-element .shepherd-button:not(:disabled).btn-primary, .shepherd-element .shepherd-button:not(:disabled).btn-primary:focus, .shepherd-element .shepherd-button:not(:disabled).btn-primary.focus {
  color: #fff;
  background-color: #5f61e6;
  border-color: #5f61e6;
  transform: translateY(0);
  box-shadow: none;
}
.btn-check:checked + .shepherd-element .shepherd-button:not(:disabled).btn-primary, .btn-check:active + .shepherd-element .shepherd-button:not(:disabled).btn-primary, .shepherd-element .shepherd-button:not(:disabled).btn-primary:active, .shepherd-element .shepherd-button:not(:disabled).btn-primary.active, .show > .shepherd-element .shepherd-button:not(:disabled).btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #595cd9;
  border-color: #595cd9;
}
.btn-check:checked + .shepherd-element .shepherd-button:not(:disabled).btn-primary:focus, .btn-check:active + .shepherd-element .shepherd-button:not(:disabled).btn-primary:focus, .shepherd-element .shepherd-button:not(:disabled).btn-primary:active:focus, .shepherd-element .shepherd-button:not(:disabled).btn-primary.active:focus, .show > .shepherd-element .shepherd-button:not(:disabled).btn-primary.dropdown-toggle:focus {
  box-shadow: none;
}
.shepherd-element .shepherd-button:not(:disabled).btn-primary.disabled, .shepherd-element .shepherd-button:not(:disabled).btn-primary:disabled {
  box-shadow: none;
}
.shepherd-element .shepherd-button:not(:disabled).btn-label-secondary {
  color: #8592a3;
  border-color: transparent;
  background: #ebeef0;
}
.shepherd-element .shepherd-button:not(:disabled).btn-label-secondary:hover {
  border-color: transparent;
  background: #788393;
  color: #fff;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(133, 146, 163, 0.4);
  transform: translateY(-1px);
}
.shepherd-element .shepherd-button:not(:disabled).btn-label-secondary:focus, .shepherd-element .shepherd-button:not(:disabled).btn-label-secondary.focus {
  color: #fff;
  background: #788393;
  box-shadow: none !important;
  transform: translateY(0);
}
.shepherd-element .shepherd-button:not(:disabled).btn-label-secondary:active, .shepherd-element .shepherd-button:not(:disabled).btn-label-secondary.active, .show > .shepherd-element .shepherd-button:not(:disabled).btn-label-secondary.dropdown-toggle {
  color: #fff;
  background-color: #717c8b;
  border-color: transparent;
}
.shepherd-element .shepherd-button:not(:disabled).btn-label-secondary:active:focus, .shepherd-element .shepherd-button:not(:disabled).btn-label-secondary.active:focus, .show > .shepherd-element .shepherd-button:not(:disabled).btn-label-secondary.dropdown-toggle:focus {
  box-shadow: none;
}
.shepherd-element .shepherd-button:not(:disabled).btn-label-secondary.disabled, .shepherd-element .shepherd-button:not(:disabled).btn-label-secondary:disabled {
  box-shadow: none;
}

.bs-stepper .step.active .bs-stepper-circle {
  background-color: #696cff;
  color: #fff;
  box-shadow: 0 0.1875rem 0.375rem 0 rgba(105, 108, 255, 0.4);
}
.bs-stepper .step.active .bs-stepper-label {
  color: #696cff !important;
}
.bs-stepper .step.active .bs-stepper-icon svg {
  fill: #696cff !important;
}
.bs-stepper .step.crossed .step-trigger .bs-stepper-circle {
  background-color: rgba(105, 108, 255, 0.16) !important;
  color: #696cff !important;
}
.bs-stepper .step.crossed .step-trigger .bs-stepper-icon svg {
  fill: #696cff !important;
}
.bs-stepper .step.crossed + .line svg {
  fill: #696cff;
}
.bs-stepper .step.crossed + .line i {
  color: #696cff;
}
.bs-stepper.wizard-icons .step.crossed .step-trigger .bs-stepper-label {
  color: #696cff !important;
}
.bs-stepper .step-trigger:focus {
  color: #696cff;
}
.bs-stepper .step-trigger:focus svg {
  fill: #696cff !important;
}

.bg-navbar-theme {
  background-color: #fff !important;
  color: #697a8d;
}
.bg-navbar-theme .navbar-brand,
.bg-navbar-theme .navbar-brand a {
  color: #566a7f;
}
.bg-navbar-theme .navbar-brand:hover, .bg-navbar-theme .navbar-brand:focus,
.bg-navbar-theme .navbar-brand a:hover,
.bg-navbar-theme .navbar-brand a:focus {
  color: #566a7f;
}
.bg-navbar-theme .navbar-search-wrapper .navbar-search-icon,
.bg-navbar-theme .navbar-search-wrapper .search-input {
  color: #697a8d;
}
.bg-navbar-theme .search-input-wrapper .search-input,
.bg-navbar-theme .search-input-wrapper .search-toggler {
  background-color: #fff !important;
  color: #697a8d;
}
.bg-navbar-theme .navbar-nav > .nav-link,
.bg-navbar-theme .navbar-nav > .nav-item > .nav-link,
.bg-navbar-theme .navbar-nav > .nav > .nav-item > .nav-link {
  color: #697a8d;
}
.bg-navbar-theme .navbar-nav > .nav-link:hover, .bg-navbar-theme .navbar-nav > .nav-link:focus,
.bg-navbar-theme .navbar-nav > .nav-item > .nav-link:hover,
.bg-navbar-theme .navbar-nav > .nav-item > .nav-link:focus,
.bg-navbar-theme .navbar-nav > .nav > .nav-item > .nav-link:hover,
.bg-navbar-theme .navbar-nav > .nav > .nav-item > .nav-link:focus {
  color: #566a7f;
}
.bg-navbar-theme .navbar-nav > .nav-link.disabled,
.bg-navbar-theme .navbar-nav > .nav-item > .nav-link.disabled,
.bg-navbar-theme .navbar-nav > .nav > .nav-item > .nav-link.disabled {
  color: #a5afbb !important;
}
.bg-navbar-theme .navbar-nav .show > .nav-link,
.bg-navbar-theme .navbar-nav .active > .nav-link,
.bg-navbar-theme .navbar-nav .nav-link.show,
.bg-navbar-theme .navbar-nav .nav-link.active {
  color: #566a7f;
}
.bg-navbar-theme .navbar-toggler {
  color: #697a8d;
  border-color: rgba(86, 106, 127, 0.075);
}
.bg-navbar-theme .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='14px' height='11px' viewBox='0 0 14 11' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M0,0 L14,0 L14,1.75 L0,1.75 L0,0 Z M0,4.375 L14,4.375 L14,6.125 L0,6.125 L0,4.375 Z M0,8.75 L14,8.75 L14,10.5 L0,10.5 L0,8.75 Z' id='path-1'%3E%3C/path%3E%3C/defs%3E%3Cg id='💎-UI-Elements' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cg id='12)-Navbar' transform='translate(-1174.000000, -1290.000000)'%3E%3Cg id='Group' transform='translate(1174.000000, 1288.000000)'%3E%3Cg id='Icon-Color' transform='translate(0.000000, 2.000000)'%3E%3Cuse fill='rgba(67, 89, 113, 0.5)' xlink:href='%23path-1'%3E%3C/use%3E%3Cuse fill-opacity='0.1' fill='rgba(67, 89, 113, 0.5)' xlink:href='%23path-1'%3E%3C/use%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.bg-navbar-theme .navbar-text {
  color: #697a8d;
}
.bg-navbar-theme .navbar-text a {
  color: #566a7f;
}
.bg-navbar-theme .navbar-text a:hover, .bg-navbar-theme .navbar-text a:focus {
  color: #566a7f;
}
.bg-navbar-theme hr {
  border-color: rgba(86, 106, 127, 0.075);
}

.layout-navbar {
  background-color: rgba(255, 255, 255, 0.95) !important;
  -webkit-backdrop-filter: saturate(200%) blur(6px);
          backdrop-filter: saturate(200%) blur(6px);
}

.navbar-detached {
  box-shadow: 0 0 0.375rem 0.25rem rgba(161, 172, 184, 0.15);
}

.layout-navbar-fixed .layout-page:before {
  -webkit-backdrop-filter: saturate(200%) blur(10px);
          backdrop-filter: saturate(200%) blur(10px);
  background: rgba(244, 245, 251, 0.6);
}

.bg-menu-theme {
  background-color: #233446 !important;
  color: #c4cdd5;
}
.bg-menu-theme .menu-link,
.bg-menu-theme .menu-horizontal-prev,
.bg-menu-theme .menu-horizontal-next {
  color: #c4cdd5;
}
.bg-menu-theme .menu-link:hover, .bg-menu-theme .menu-link:focus,
.bg-menu-theme .menu-horizontal-prev:hover,
.bg-menu-theme .menu-horizontal-prev:focus,
.bg-menu-theme .menu-horizontal-next:hover,
.bg-menu-theme .menu-horizontal-next:focus {
  color: #fff;
}
.bg-menu-theme .menu-link.active,
.bg-menu-theme .menu-horizontal-prev.active,
.bg-menu-theme .menu-horizontal-next.active {
  color: #fff;
}
.bg-menu-theme .menu-item.disabled .menu-link,
.bg-menu-theme .menu-horizontal-prev.disabled,
.bg-menu-theme .menu-horizontal-next.disabled {
  color: #84909c !important;
}
.bg-menu-theme .menu-item.open:not(.menu-item-closing) > .menu-toggle,
.bg-menu-theme .menu-item.active > .menu-link {
  color: #fff;
}
.bg-menu-theme .menu-item.active > .menu-link:not(.menu-toggle) {
  background-color: #223344;
}
.bg-menu-theme.menu-horizontal .menu-sub > .menu-item.active > .menu-link:not(.menu-toggle) {
  background-color: #213242;
}
.bg-menu-theme.menu-horizontal .menu-inner .menu-item:not(.menu-item-closing) > .menu-sub, .bg-menu-theme.menu-horizontal .menu-inner .menu-item.open > .menu-toggle {
  background: #223344;
}
.bg-menu-theme .menu-inner > .menu-item.menu-item-closing .menu-item.open .menu-sub,
.bg-menu-theme .menu-inner > .menu-item.menu-item-closing .menu-item.open .menu-toggle {
  background: transparent;
  color: #c4cdd5;
}
.bg-menu-theme .menu-inner-shadow {
  background: linear-gradient(#233446 41%, rgba(35, 52, 70, 0.11) 95%, rgba(35, 52, 70, 0));
}
.bg-menu-theme .menu-text {
  color: #fff;
}
.bg-menu-theme .menu-header {
  color: #9ca7b1;
}
.bg-menu-theme hr,
.bg-menu-theme .menu-divider,
.bg-menu-theme .menu-inner > .menu-item.open > .menu-sub::before {
  border-color: transparent !important;
}
.bg-menu-theme .menu-inner > .menu-header::before {
  background-color: transparent;
}
.bg-menu-theme .menu-block::before {
  background-color: #9ca7b1;
}
.bg-menu-theme .menu-inner > .menu-item.open .menu-item.open > .menu-toggle::before {
  background-color: #223344;
}
.bg-menu-theme .menu-inner > .menu-item.open .menu-item.active > .menu-link::before {
  background-color: #fff;
}
.bg-menu-theme .menu-inner > .menu-item.open .menu-item.open > .menu-toggle::before,
.bg-menu-theme .menu-inner > .menu-item.open .menu-item.active > .menu-link::before {
  box-shadow: 0 0 0 2px #223344;
}
.bg-menu-theme .ps__thumb-y,
.bg-menu-theme .ps__rail-y.ps--clicking > .ps__thumb-y {
  background: rgba(255, 255, 255, 0.4768141176) !important;
}

.bg-menu-theme .menu-header {
  color: #a1acb8;
}
.bg-menu-theme .menu-header:before {
  background-color: #a1acb8 !important;
}
html:not(.layout-menu-collapsed) .bg-menu-theme .menu-inner .menu-item.open > .menu-link, .layout-menu-hover.layout-menu-collapsed .bg-menu-theme .menu-inner .menu-item.open > .menu-link,
html:not(.layout-menu-collapsed) .bg-menu-theme .menu-inner .menu-item .menu-link:not(.active):hover,
.layout-menu-hover.layout-menu-collapsed .bg-menu-theme .menu-inner .menu-item .menu-link:not(.active):hover {
  background-color: rgba(255, 255, 255, 0.04);
}
.bg-menu-theme .menu-inner .menu-sub > .menu-item.active > .menu-link.menu-toggle {
  background-color: rgba(255, 255, 255, 0.04);
}
.bg-menu-theme .menu-inner .menu-sub > .menu-item.active .menu-icon {
  color: #696cff;
}
.bg-menu-theme .menu-inner > .menu-item.active > .menu-link {
  background-color: #696cff !important;
}
.bg-menu-theme .menu-inner > .menu-item.active:before {
  background: #696cff;
}
.bg-menu-theme .menu-sub > .menu-item > .menu-link:before {
  background-color: #b4bdc6 !important;
}
.bg-menu-theme .menu-sub > .menu-item.active > .menu-link:not(.menu-toggle):before {
  background-color: #696cff !important;
  border: 3px solid #3f4a90 !important;
}
.layout-horizontal .bg-menu-theme .menu-inner > .menu-item .menu-sub {
  box-shadow: 0 0.25rem 1rem rgba(35, 52, 70, 0.4);
}

.app-brand .layout-menu-toggle {
  background-color: #696cff;
  border: 7px solid #f4f5fb;
}
.app-brand .layout-menu-toggle i {
  color: #fff;
}

.bg-footer-theme {
  background-color: #f4f5fb !important;
  color: #697a8d;
}
.bg-footer-theme .footer-link {
  color: #697a8d;
}
.bg-footer-theme .footer-link:hover, .bg-footer-theme .footer-link:focus {
  color: #566a7f;
}
.bg-footer-theme .footer-link.disabled {
  color: #a1abb9 !important;
}
.bg-footer-theme .footer-text {
  color: #566a7f;
}
.bg-footer-theme .show > .footer-link,
.bg-footer-theme .active > .footer-link,
.bg-footer-theme .footer-link.show,
.bg-footer-theme .footer-link.active {
  color: #566a7f;
}
.bg-footer-theme hr {
  border-color: rgba(86, 106, 127, 0.0768852941);
}

.layout-footer-fixed .content-footer {
  box-shadow: 0 0 0.375rem 0.25rem rgba(161, 172, 184, 0.15);
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL3RoZW1lLmNzcyIsIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7O0NBQUE7QUNLQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRkFGOztBRUtFO0VBQ0U7QUZGSjtBRUdJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUZETjtBRVNJO0VBQ0UsdUJDaUlVO0FIeEloQjtBRVdJO0VBQ0UsdUJDNEhVO0FIckloQjtBSWlDSTtFRmhCSTtJQUNFO0VGZFI7RUVlUTtJQUNFLHNCR3pCTztFTFlqQjtFRWVRO0lBQ0UsdUJHNUJPO0VMZWpCO0VFZVE7SUFDRSxvRENzSEM7RUhuSVg7QUFDRjtBRWtCTTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRmhCUjtBRTJCRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRnpCSjtBRStCSTtFQUNFO0FGN0JOO0FFcUNFO0VBQ0U7QUZuQ0o7QUVzQ0U7RUFDRTtFQUNBO0VBQ0E7QUZwQ0o7QUUwQ0k7RUFDRTtBRnhDTjs7QUVpREE7RUFDRSx1RENvRGM7RURuRGQ7QUY5Q0Y7O0FFaURBO0VBQ0U7RUFDQTtFQUNBO0FGOUNGO0FFbURFO0VBQ0U7RUFDQTtFQUNBO0FGakRKO0FJZEk7RUZvREo7SUFpQkk7RUZuREY7RUVvREU7SUFDRTtFRmxESjtBQUNGOztBQXpGQTtFQUNFLG1CQUhRO0FBK0ZWOztBQXpGQTtFQUNFO0FBNEZGOztBTThCRTtFQUNFO0FOM0JKOztBTThCRTtFQUNFO0FOM0JKOztBTWxDRTtFQUNFO0FOcUNKOztBTWpDSTtFQUVFO0FObUNOOztBTTdCSTtFQUNFLHlCQVA4QjtBTnVDcEM7O0FNaEJFO0VBQ0U7RUFDQTtBTm1CSjs7QU1SRTtFQUNFO0FOV0o7O0FNTEU7RUFDRTtBTlFKOztBT3BJSTs7OztFQUdFLHFCQ2lEUztFRGhEVCx5QkNnRFM7RUQvQ1Q7RUFDQTtBUHdJTjs7QVNqSkU7RUFDRSx5Qk44R2E7RU03R2I7RUFDQTtBVG9KSjs7QVVySk07RUFDRSx5QlA0R1M7QUg0Q2pCOztBVXBKRTs7RUFFRSxjUHNHYTtBSGlEakI7QVV0Skk7OztFQUVFLGNQbUdXO0FIc0RqQjs7QVd0SkU7RUFDRSx5QkFaaUI7RUFhakI7QVh5Sko7O0FXdEpFOztFQUVFLGNBbEJpQjtBWDJLckI7QVd4Skk7OztFQUVFLHlCQVhlO0VBWWYsY0F0QmU7QVhpTHJCO0FXeEpJOztFQUNFLHFCSCtCUztFRzlCVCx5Qkg4QlM7RUc3QlQ7QVgySk47O0FXbEpJO0VBR0UscUJIaUJTO0VHaEJULHlCSGdCUztBUm1JZjs7QVcxSVE7RUFDRSx5QkhNSztBUnVJZjs7QVlwTEU7RUNoQkEseUJEVWE7RUFRWCxxQkFkTztFQWVQLGNBVFc7QVpnTWY7QVl0TEk7RUFDRTtBWndMTjtBWXJMSTtFQUNFLGNBZlM7QVpzTWY7O0FZakxNO0VBQ0U7QVpvTFI7O0FjL01VO0VBQ0U7QWRrTlo7O0Fldk5JO0VBQ0UsbUJIUVM7RUdQVDtFQUNBO0FmME5OO0Fldk5JO0VBQ0UseUJIRVM7QVp1TmY7QWV0Tkk7RUFDRSwwQkhGUztBWjBOZjtBZWxOSTtFQUNFLDRCSFRTO0FaNk5mO0Flak5JO0VBQ0UsMkJIYlM7QVpnT2Y7O0FnQnZPSTtFQUNFO0VBQ0EsbUJKS1M7RUlKVDtBaEIwT047QWdCeE9NO0VBQ0U7RUFDQTtFQUNBLFdDK0pTO0FqQjJFakI7QWdCdk9NO0VBQ0U7RUFDQTtBaEJ5T1I7QWdCdE9NO0VBQ0U7QWhCd09SO0FnQnJPTTtFQUNFLHlCSmRPO0FacVBmO0FnQnBPTTtFQUNFLDJCSmxCTztBWndQZjtBZ0JoT007RUFDRTtBaEJrT1I7QWdCL05NO0VBQ0UsMEJKN0JPO0FaOFBmO0FnQjNOTTtFQUNFO0FoQjZOUjs7QWtCM1FFO0VBT0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQSxjRHNJWTtFQ3JJWjtBbEJ1UUo7QWtCclFJO0VBQ0U7QWxCdVFOO0FrQnBRSTtFQUNFLGNEOEhVO0FqQndJaEI7O0FtQjVQRTtFQUNFLFdGd0lhO0VKMUtmLHlCTWtCb0I7RUFrQmxCLHFCRGxDVztFQ29DWDtBbkI4UEo7QW1CNVBJO0VBQ0UsV0F6QlU7RU5oQmQseUJNTW1CO0VBcUNmLHFCQWhDVztFQWlDWCwyQmhCaVZnQjtBSG5GdEI7QW1CM1BJO0VBR0UsV0FsQ1U7RU5oQmQseUJNTW1CO0VBOENmLHFCQXpDVztFQTBDWCx3QmhCMFVnQjtFZ0J6VWhCO0FuQjJQTjtBbUJ4UEk7RUFLRSxXQWxDVztFQW1DWCx5QkE3Q2dCO0VBZ0RoQixxQkEzQ1k7QW5CK1JsQjtBbUJsUE07RUFDRTtBbkJvUFI7QW1CaFBJO0VBRUU7QW5CaVBOOztBbUJ2TUU7RUFDRSxjQXZCWTtFQXdCWix5QkExQk87RUEyQlAsbUJBdEJpQjtBbkJnT3JCO0FtQnhNSTtFQUNFLHlCQTlCSztFQStCTCxtQkFwQmU7RUFxQmYsV0E3QlU7RUE4QlY7RUFDQSwyQmhCOFBnQjtBSHBEdEI7QW1Cdk1JO0VBRUUsV0FwQ1U7RUFxQ1YsbUJBN0JlO0VBOEJmO0VBQ0Esd0JoQndQZ0I7QUhoRHRCO0FtQnJNSTtFQUdFLFdBL0JXO0VBZ0NYLHlCQS9CZ0I7RUFrQ2hCLHlCQXBESztBbkJ1UFg7QW1Cak1NO0VBQ0U7QW5CbU1SO0FtQi9MSTtFQUVFO0FuQmdNTjs7QW1CN0pFO0VBQ0UsY1hqSVc7RVdrSVgscUJYbElXO0VXbUlYO0FuQmdLSjtBbUI5Skk7RUFDRSxXQXRCVTtFQXVCVix5QkFuQmU7RUFvQmYscUJBcEJlO0VBcUJmO0VBQ0EsMkJoQnNMZ0I7QUh0QnRCO0FtQjdKSTtFQUVFLFdBL0JVO0VBZ0NWLHlCQTVCZTtFQTZCZixxQkE3QmU7RUE4QmY7RUFDQSx3QmhCK0tnQjtBSGpCdEI7QW1CM0pJO0VBS0UsV0EzQ1U7RUE0Q1YseUJBbENnQjtFQW1DaEIscUJBbkNnQjtBbkI0THRCO0FtQnhKTTtFQUNFO0FuQjBKUjtBbUJ0Skk7RUFFRTtBbkJ1Sk47O0FtQm5KRTtFQUNFLG1CWDFLVztFVzJLWCxxQlgzS1c7RVc0S1g7QW5Cc0pKOztBbUJuSkU7Ozs7O0VBS0UsZ0JBcEVZO0VBcUVaLGtCQXJFWTtFQXNFWjtBbkJzSko7O0FvQnpZRTs7RUFFRSwyQ0MyQitCO0VEMUIvQjtBcEI0WUo7O0FvQnpZRTs7RUFFRSwyQ0NxQitCO0VEcEIvQjtBcEI0WUo7O0FzQjFZSTtFQUVFO0F0QjRZTjs7QXNCcllJO0VBR0UseUJkc0NTO0VjckNUO0VBQ0E7QXRCc1lOOztBdUI5WkU7O0VBRUUscUJmMERXO0FSdVdmOztBdUIzWk07O0VBRUUscUJma0RPO0FSNFdmOztBdUIzVkk7RUFDRSxxQmZsQlM7RWVtQlQ7QXZCOFZOO0F1QjNWSTtFQUNFLHlCcEI4VWM7QUhlcEI7QXVCMVZJO0VBRUUseUJmNUJTO0VlNkJULHFCZjdCUztFZThCVDtBdkIyVk47O0F1QnJWSTtFQUNFO0F2QndWTjs7QXVCNVlNO0VBQ0U7QXZCK1lSO0F1QjVZTTtFQUlJO0F2QjJZVjs7QXVCbFlFO0VBQ0UscUJmSFc7QVJ3WWY7QXVCbllJO0VBQ0U7QXZCcVlOOztBd0JsVUU7RUFDRSxtQmhCMUVXO0VnQjJFWCxXQUpNO0F4QnlVVjs7QXdCbFVFO0VBQ0U7QXhCcVVKOztBd0JsVUU7RUFDRTtFQUNBLHdEckJtTHlCO0FIa0o3Qjs7QXdCaFZFO0VBQ0UsbUJoQjFFVztFZ0IyRVgsV0FKTTtBeEJ1VlY7O0F3QmhWRTtFQUNFO0F4Qm1WSjs7QXdCaFZFO0VBQ0U7RUFDQSx3RHJCbUx5QjtBSGdLN0I7O0F5QnZkTTtFQUNFO0F6QjBkUjtBeUJ4ZFE7RUFDRTtFQUNBO0F6QjBkVjs7QXlCMWVJO0VBQ0U7RUFDQTtBekI2ZU47O0F5QnRkSTtFQUNFO0F6QnlkTjtBeUJ4ZE07RUFDRTtBekIwZFI7O0EwQnBmUTtFQUVFLHFCbEJ1REs7QVIrYmY7O0EyQjFmRTtFQUNFO0VBQ0E7QTNCNmZKO0EyQjNmSTs7RUFFRTtBM0I2Zk47QTJCM2ZNOzs7RUFFRTtBM0I4ZlI7QTJCdmZNOztFQUVFO0EzQnlmUjtBMkJuZk07O0VBRUU7RUFDQTtBM0JxZlI7QTJCL2VNOzs7RUFHRTtBM0JpZlI7QTJCL2VROzs7OztFQUVFO0EzQm9mVjtBMkJqZlE7OztFQUNFO0EzQnFmVjtBMkJqZk07Ozs7RUFJRTtBM0JtZlI7QTJCL2VJO0VBQ0U7RUFDQTtBM0JpZk47QTJCOWVJO0VBQ0U7QTNCZ2ZOO0EyQjNlSTtFQUNFO0EzQjZlTjtBMkIzZU07RUFDRTtBM0I2ZVI7QTJCM2VRO0VBRUU7QTNCNGVWO0EyQnZlSTtFQUNFO0EzQnllTjs7QTRCOWlCRTtFQUNFO0VBQ0E7QTVCaWpCSjtBNEIvaUJJOzs7RUFHRTtBNUJpakJOO0E0QmhqQk07Ozs7O0VBRUU7QTVCcWpCUjtBNEJsakJNOzs7RUFDRTtBNUJzakJSO0E0QmxqQkk7OztFQUdFO0E1Qm9qQk47QTRCampCSTs7RUFFRTtBNUJtakJOO0E0Qi9pQkk7RUFDRSx5QkExQ1U7QTVCMmxCaEI7QTRCN2lCSTtFQUNFLHlCQXpDYTtBNUJ3bEJuQjtBNEI1aUJJO0VBRUUsbUJBcERVO0E1QmltQmhCO0E0QjFpQkk7O0VBRUU7RUFDQTtBNUI0aUJOO0E0QnppQkk7RUFDRTtBNUIyaUJOO0E0QnhpQkk7RUFDRTtBNUIwaUJOO0E0QnZpQkk7RUFDRTtBNUJ5aUJOO0E0QnRpQkk7OztFQUdFO0E1QndpQk47QTRCcmlCSTtFQUNFO0E1QnVpQk47QTRCcGlCSTtFQUNFO0E1QnNpQk47QTRCbGlCSTtFQUNFO0E1Qm9pQk47QTRCamlCSTtFQUNFO0E1Qm1pQk47QTRCaGlCSTs7RUFFRTtBNUJraUJOO0E0Qi9oQkk7O0VBRUU7QTVCaWlCTjs7QTZCMW9CRTtFQUNFO0VBQ0E7QTdCNm9CSjtBNkIzb0JJO0VBQ0U7QTdCNm9CTjtBNkIzb0JNO0VBRUU7QTdCNG9CUjtBNkJ6b0JNO0VBQ0U7QTdCMm9CUjtBNkJ2b0JJO0VBQ0U7QTdCeW9CTjtBNkJ0b0JJOzs7O0VBSUU7QTdCd29CTjtBNkJyb0JJO0VBQ0U7QTdCdW9CTjs7QThCbHFCSTtFQUVFLFczQktFO0UyQkpGO0VBQ0E7QTlCb3FCTjtBOEJscUJNO0VBQ0U7QTlCb3FCUjtBOEJucUJRO0VBQ0U7RUFDQTtFQUtBO0E5QmlxQlY7O0F1QjdwQk07RUFDRSxjdkJ0QlE7QUF3ckJoQjs7QXVCbnFCTTs7O0VBQ0UsY3ZCdEJRO0FBd3JCaEI7QXVCN3BCTTtFQUNFLGN2QjVCUTtBQTJyQmhCOztBK0IvckJFO0VBQ0UsYS9CR1k7QUErckJoQjs7QWdDL3JCSTs7RUFFRTtBaENrc0JOOztBZ0M5ckJJOztFQUVFO0FoQ2lzQk47O0FxQnZwQkU7O0VBRUU7QXJCMHBCSjs7QXFCeHBCRTtFQUNFLGNyQnZEWTtBQWt0QmhCO0FxQjFwQkk7RUFDRTtBckI0cEJOOztBcUJ6cEJFO0VBQ0UsYWJSVztBUm9xQmY7O0FpQ3Z0Qkk7RUFDRTtBakMwdEJOOztBa0M3c0JJO0VBRUU7QWxDK3NCTjs7QWtDcnVCRTtFQUNFO0VBQ0E7QWxDd3VCSjtBa0N2dUJJO0VBQ0U7QWxDeXVCTjs7QW1DN3VCRTs7RUFFRSx5Qm5DRVk7RW1DRFo7RUFDQTtBbkNndkJKOztBb0NsdkJJO0VBQ0U7RUFDQTtBcENxdkJOO0FvQ2x2Qkk7RUFDRSxxQnBDSlU7QUF3dkJoQjs7QXFDcHZCUTs7O0VBT0U7RUFDQTtFQUNBO0FyQ212QlY7QXFDaHZCUTtFQUdFO0VBQ0E7QXJDZ3ZCVjtBcUMvdUJVO0VBQ0U7QXJDaXZCWjtBcUM5dUJVO0VBQ0U7RUFDQTtBckNndkJaO0FxQzV1QlE7RUFDRTtBckM4dUJWOztBc0M3d0JJO0VBQ0Usc0JBSkk7QXRDb3hCVjtBc0M3d0JJO0VBQ0UseUJBUkk7QXRDdXhCVjs7QXNDMXdCSTtFQUNFLHFCQWYrQztBdEM0eEJyRDtBc0Mxd0JJO0VBTUU7RUFDQTtFQUNBO0F0Q3V3Qk47QXNDcHdCSTtFQW1CRTtFQUNBO0VBQ0E7RUFDQTtBdENvdkJOOztBdUNoeUJNOztFQUNFO0F2Q295QlI7O0F1Qy94QkU7RUFDRTtFQUNBLFdwQ0hJO0VvQ0lKLHdEQWJXO0F2Qyt5QmY7O0F1Qzl4Qkk7O0VBRUUseUJBcEJrRDtFQXFCbEQsV3BDWEU7RW9DWUY7QXZDaXlCTjtBdUMveEJNOztFQUNFO0F2Q2t5QlI7O0F1Qzd4QkU7RUFDRTtBdkNneUJKOztBdUM3eEJFO0VBQ0U7RUFDQTtBdkNneUJKOztBdUM3eEJFO0VBQ0U7RUFDQTtBdkNneUJKOztBd0N6MEJFOztFQUVFO0VBQ0E7QXhDNDBCSjs7QXlDOXdCSTs7Ozs7Ozs7Ozs7Ozs7RUFPRTtBekN3eEJOO0F5Q3J4Qkk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBekNxeUJOO0F5Q2x5Qkk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBekNrekJOOztBMEM5NUJFOztFQUVFO0VBQ0E7QTFDaTZCSjs7QTJDdDZCRTtFQUNFO0EzQ3k2Qko7O0E0QzE2QkU7O0VBRUU7QTVDNjZCSjs7QTZDLzZCRTs7Ozs7Ozs7OztFQVVFLHlCTk5vRDtBdkN3N0J4RDs7QThDdjdCRTtFQUNFO0E5QzA3Qko7O0E4Q3Q3Qkk7RUFDRTtBOUN5N0JOO0E4Q3Y3Qkk7RUFDRTtBOUN5N0JOO0E4Q3Y3Qkk7RUFDRTtBOUN5N0JOOztBOEN0N0JFOzs7O0VBSUU7RUFDQTtBOUN5N0JKOztBOEN0N0JFOzs7RUFHRTtFQUNBO0E5Q3k3Qko7O0E4Q3Q3QkU7RUFDRTtFQUNBO0E5Q3k3Qko7O0E4Q3Q3QkU7O0VBRUU7QTlDeTdCSjs7QThDdjdCRTtFQUNFO0E5QzA3Qko7O0E4Q3g3QkU7RUFDRTtBOUMyN0JKOztBTTkzQkU7RUFDRTtFQUNBO0FOaTRCSjtBK0M3K0JJO0VBQ0U7QS9DKytCTjtBK0MxK0JNO0VBQ0U7QS9DNCtCUjtBK0N4K0JJO0VBQ0U7RUFDQTtFQUNBLGN2Q3lDUztBUmk4QmY7QStDeitCTTtFQUVFO0VBQ0E7RUFDQTtBL0MwK0JSO0ErQ3YrQk07RUFDRTtBL0N5K0JSOztBZ0QvL0JFOzs7O0VBSUUsbUJ4Q2tEVztFd0NqRFgsV0FQTTtBaER5Z0NWOztBZ0QvL0JFOztFQUVFO0FoRGtnQ0o7O0FpRDVnQ0k7O0VBRUU7QWpEK2dDTjs7QUNoaENFO0VBQ0U7QURtaENKO0FDbGhDSTs7RUFFRSxjT2lEUztBUm0rQmY7O0FrRDVnQ007RUFDRTtFQUNBLHFCMUN1Q087QVJ3K0JmO0FrRDVnQ0k7RUFDRTtFQUNBLFcvQ1ZFO0FId2hDUjtBa0Q1Z0NNOztFQUVFO0FsRDhnQ1I7QW1CdGdDRTtFQUNFLFdGd0lhO0VKMUtmLHlCTWtCb0I7RUFrQmxCLHFCWG1CVztFV2pCWDtBbkJ1Z0NKO0FtQnJnQ0k7RUFDRSxXQXpCVTtFTmhCZCx5Qk1NbUI7RUFxQ2YscUJBaENXO0VBaUNYLDJCaEJpVmdCO0FIc3JCdEI7QW1CcGdDSTtFQUdFLFdBbENVO0VOaEJkLHlCTU1tQjtFQThDZixxQkF6Q1c7RUEwQ1gsd0JoQjBVZ0I7RWdCelVoQjtBbkJvZ0NOO0FtQmpnQ0k7RUFLRSxXQWxDVztFQW1DWCx5QkE3Q2dCO0VBZ0RoQixxQkEzQ1k7QW5Cd2lDbEI7QW1CMy9CTTtFQUNFO0FuQjYvQlI7QW1Cei9CSTtFQUVFO0FuQjAvQk47QW1CaDlCRTtFQUNFLGNBdkJZO0VBd0JaLHlCQTFCTztFQTJCUCxtQkF0QmlCO0FuQncrQnJCO0FtQmg5Qkk7RUFDRSx5QkE5Qks7RUErQkwsbUJBcEJlO0VBcUJmLFdBN0JVO0VBOEJWO0VBQ0EsMkJoQjhQZ0I7QUhvdEJ0QjtBbUIvOEJJO0VBRUUsV0FwQ1U7RUFxQ1YsbUJBN0JlO0VBOEJmO0VBQ0Esd0JoQndQZ0I7QUh3dEJ0QjtBbUI3OEJJO0VBR0UsV0EvQlc7RUFnQ1gseUJBL0JnQjtFQWtDaEIseUJBcERLO0FuQisvQlg7QW1CejhCTTtFQUNFO0FuQjI4QlI7QW1CdjhCSTtFQUVFO0FuQnc4Qk47O0FtRGhtQ1E7RUFDRSx5QjNDMERLO0UyQ3pETCxXaERPRjtFZ0RORTtBbkRtbUNWO0FtRGptQ1E7RUFDRTtBbkRtbUNWO0FtRGhtQ1U7RUFDRTtBbkRrbUNaO0FtRDVsQ1U7RUFDRTtFQUNBO0FuRDhsQ1o7QW1ENWxDVTtFQUNFO0FuRDhsQ1o7QW1EMWxDVTtFQUNFLGEzQ2lDRztBUjJqQ2Y7QW1EMWxDVTtFQUNFLGMzQzhCRztBUjhqQ2Y7QW1EbmxDWTtFQUNFO0FuRHFsQ2Q7QW1EL2tDSTtFQUNFLGMzQ2FTO0FSb2tDZjtBbURobENNO0VBQ0U7QW5Ea2xDUjs7QTJCbG9DRTtFQUNFO0VBQ0E7QTNCcW9DSjtBMkJub0NJOztFQUVFO0EzQnFvQ047QTJCbm9DTTs7O0VBRUU7QTNCc29DUjtBMkIvbkNNOztFQUVFO0EzQmlvQ1I7QTJCM25DTTs7RUFFRTtFQUNBO0EzQjZuQ1I7QTJCdm5DTTs7O0VBR0U7QTNCeW5DUjtBMkJ2bkNROzs7OztFQUVFO0EzQjRuQ1Y7QTJCem5DUTs7O0VBQ0U7QTNCNm5DVjtBMkJ6bkNNOzs7O0VBSUU7QTNCMm5DUjtBMkJ2bkNJO0VBQ0U7RUFDQTtBM0J5bkNOO0EyQnRuQ0k7RUFDRTtBM0J3bkNOO0EyQm5uQ0k7RUFDRTtBM0JxbkNOO0EyQm5uQ007RUFDRTtBM0JxbkNSO0EyQm5uQ1E7RUFFRTtBM0JvbkNWO0EyQi9tQ0k7RUFDRTtBM0JpbkNOOztBQWhyQ0E7RUFDRTtFQUNBO1VBQUE7QUFtckNGOztBQWhyQ0E7RUFDRTtBQW1yQ0Y7O0FBaHJDQTtFQUNFO1VBQUE7RUFDQTtBQW1yQ0Y7O0E0QnBzQ0U7RUFDRTtFQUNBO0E1QnVzQ0o7QTRCcnNDSTs7O0VBR0U7QTVCdXNDTjtBNEJ0c0NNOzs7OztFQUVFO0E1QjJzQ1I7QTRCeHNDTTs7O0VBQ0U7QTVCNHNDUjtBNEJ4c0NJOzs7RUFHRTtBNUIwc0NOO0E0QnZzQ0k7O0VBRUU7QTVCeXNDTjtBNEJyc0NJO0VBQ0UseUJBMUNVO0E1Qml2Q2hCO0E0Qm5zQ0k7RUFDRSx5QkF6Q2E7QTVCOHVDbkI7QTRCbHNDSTtFQUVFLG1CQXBEVTtBNUJ1dkNoQjtBNEJoc0NJOztFQUVFO0VBQ0E7QTVCa3NDTjtBNEIvckNJO0VBQ0U7QTVCaXNDTjtBNEI5ckNJO0VBQ0U7QTVCZ3NDTjtBNEI3ckNJO0VBQ0U7QTVCK3JDTjtBNEI1ckNJOzs7RUFHRTtBNUI4ckNOO0E0QjNyQ0k7RUFDRTtBNUI2ckNOO0E0QjFyQ0k7RUFDRTtBNUI0ckNOO0E0QnhyQ0k7RUFDRTtBNUIwckNOO0E0QnZyQ0k7RUFDRTtBNUJ5ckNOO0E0QnRyQ0k7O0VBRUU7QTVCd3JDTjtBNEJyckNJOztFQUVFO0E1QnVyQ047O0FBeHZDRTtFQUNFLGNHK05TO0FINGhDYjtBQXp2Q0k7RUFDRTtBQTJ2Q047QUFudkNJOzs7RUFFRTtBQXN2Q047QUFodkNJO0VBQ0U7QUFrdkNOO0FBL3VDSTtFQUNFLGNBakVVO0FBa3pDaEI7QUE1dUNFO0VBQ0U7QUE4dUNKO0FBM3VDRTtFQUNFLG1CQTNFWTtBQXd6Q2hCO0FBenVDRTtFQUNFO0FBMnVDSjtBQXZ1Q0U7RUFDRTtFQUNBO0FBeXVDSjtBQXB1Q0k7RUFDRTtBQXN1Q047O0FBanVDQTtFQUNFLHlCQWxHYztFQW1HZDtBQW91Q0Y7QUFsdUNFO0VBQ0U7QUFvdUNKOztBNkIxMENFO0VBQ0U7RUFDQTtBN0I2MENKO0E2QjMwQ0k7RUFDRTtBN0I2MENOO0E2QjMwQ007RUFFRTtBN0I0MENSO0E2QnowQ007RUFDRTtBN0IyMENSO0E2QnYwQ0k7RUFDRTtBN0J5MENOO0E2QnQwQ0k7Ozs7RUFJRTtBN0J3MENOO0E2QnIwQ0k7RUFDRTtBN0J1MENOOztBQXJ2Q0U7RUFDRTtBQXd2Q0osQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3RoZW1lLXNlbWktZGFyay5zY3NzIiwid2VicGFjazovLy8uL3BhZ2VzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9fdGhlbWUvX3RoZW1lLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vX2Jvb3RzdHJhcC1leHRlbmRlZC9fdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vX2NvbXBvbmVudHMvX3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovLy8uL19ib290c3RyYXAtZXh0ZW5kZWQvbWl4aW5zL19taXNjLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vX2Jvb3RzdHJhcC1leHRlbmRlZC9taXhpbnMvX3BhZ2luYXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9fYm9vdHN0cmFwLWV4dGVuZGVkL19mdW5jdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9fYm9vdHN0cmFwLWV4dGVuZGVkL21peGlucy9fcHJvZ3Jlc3Muc2NzcyIsIndlYnBhY2s6Ly8vLi9fYm9vdHN0cmFwLWV4dGVuZGVkL21peGlucy9fbW9kYWwuc2NzcyIsIndlYnBhY2s6Ly8vLi9fYm9vdHN0cmFwLWV4dGVuZGVkL21peGlucy9fbGlzdC1ncm91cC5zY3NzIiwid2VicGFjazovLy8uL19ib290c3RyYXAtZXh0ZW5kZWQvbWl4aW5zL19hbGVydC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ncmFkaWVudHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9fYm9vdHN0cmFwLWV4dGVuZGVkL21peGlucy9fYWNjb3JkaW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vX2Jvb3RzdHJhcC1leHRlbmRlZC9taXhpbnMvX3Rvb2x0aXAuc2NzcyIsIndlYnBhY2s6Ly8vLi9fYm9vdHN0cmFwLWV4dGVuZGVkL21peGlucy9fcG9wb3Zlci5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX2Z1bmN0aW9ucy5zY3NzIiwid2VicGFjazovLy8uL19ib290c3RyYXAtZXh0ZW5kZWQvbWl4aW5zL190YWJsZS12YXJpYW50cy5zY3NzIiwid2VicGFjazovLy8uL19ib290c3RyYXAtZXh0ZW5kZWQvbWl4aW5zL19idXR0b25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vX2Jvb3RzdHJhcC1leHRlbmRlZC9taXhpbnMvX2Ryb3Bkb3duLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vX3RoZW1lL19jb21tb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9fYm9vdHN0cmFwLWV4dGVuZGVkL21peGlucy9fbmF2cy5zY3NzIiwid2VicGFjazovLy8uL19ib290c3RyYXAtZXh0ZW5kZWQvbWl4aW5zL19mb3Jtcy5zY3NzIiwid2VicGFjazovLy8uL19jb21wb25lbnRzL21peGlucy9fc3dpdGNoLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vX2NvbXBvbmVudHMvbWl4aW5zL190aW1lbGluZS5zY3NzIiwid2VicGFjazovLy8uL19jb21wb25lbnRzL21peGlucy9fdGV4dC1kaXZpZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vX2NvbXBvbmVudHMvbWl4aW5zL19uYXZiYXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9fY29tcG9uZW50cy9taXhpbnMvX21lbnUuc2NzcyIsIndlYnBhY2s6Ly8vLi9fY29tcG9uZW50cy9taXhpbnMvX2Zvb3Rlci5zY3NzIiwid2VicGFjazovLy8uL19ib290c3RyYXAtZXh0ZW5kZWQvbWl4aW5zL190b2FzdHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9fY29tcG9uZW50cy9taXhpbnMvX21pc2Muc2NzcyIsIndlYnBhY2s6Ly8vLi9fY29tcG9uZW50cy9taXhpbnMvX3RyZWV2aWV3LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uL2xpYnMvbm91aXNsaWRlci9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uL2xpYnMvc2VsZWN0Mi9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uL2xpYnMvZGF0YXRhYmxlcy1yZXNwb25zaXZlLWJzNS9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uL2xpYnMvYm9vdHN0cmFwLXNlbGVjdC9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uL2xpYnMvYm9vdHN0cmFwLWRhdGVwaWNrZXIvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uLi9saWJzL2ZsYXRwaWNrci9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uL2xpYnMvYm9vdHN0cmFwLWRhdGVyYW5nZXBpY2tlci9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uL2xpYnMvanF1ZXJ5LXRpbWVwaWNrZXIvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uLi9saWJzL3F1aWxsL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi4vbGlicy90eXBlYWhlYWQtanMvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uLi9saWJzL2Ryb3B6b25lL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi4vbGlicy9zd2lwZXIvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uLi9saWJzL3NwaW5raXQvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uLi9saWJzL3BseXIvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uLi9saWJzL2Z1bGxjYWxlbmRhci9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uL2xpYnMvc3dlZXRhbGVydDIvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uLi9saWJzL3BpY2tyL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi4vbGlicy9zaGVwaGVyZC9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uL2xpYnMvYnMtc3RlcHBlci9fbWl4aW5zLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi9fY29tcG9uZW50cy9pbmNsdWRlJztcbkBpbXBvcnQgJy4vX3RoZW1lL2NvbW1vbic7XG5AaW1wb3J0ICcuL190aGVtZS9saWJzJztcbkBpbXBvcnQgJy4vX3RoZW1lL3BhZ2VzJztcbkBpbXBvcnQgJy4vX3RoZW1lL190aGVtZSc7XG5cbiRwcmltYXJ5LWNvbG9yOiAjNjk2Y2ZmO1xuJGJvZHktYmc6ICNmNGY1ZmI7XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAkYm9keS1iZztcbn1cblxuLmJnLWJvZHkge1xuICBiYWNrZ3JvdW5kOiAkYm9keS1iZyAgIWltcG9ydGFudDtcbn1cblxuQGluY2x1ZGUgdGVtcGxhdGUtY29tbW9uLXRoZW1lKCRwcmltYXJ5LWNvbG9yKTtcbkBpbmNsdWRlIHRlbXBsYXRlLWxpYnMtdGhlbWUoJHByaW1hcnktY29sb3IpO1xuQGluY2x1ZGUgdGVtcGxhdGUtcGFnZXMtdGhlbWUoJHByaW1hcnktY29sb3IpO1xuXG4vLyBOYXZiYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGluY2x1ZGUgdGVtcGxhdGUtbmF2YmFyLXN0eWxlKCcuYmctbmF2YmFyLXRoZW1lJywgJGNhcmQtYmcsICRjb2xvcjogJGJvZHktY29sb3IsICRhY3RpdmUtY29sb3I6ICRoZWFkaW5ncy1jb2xvcik7XG5cbi5sYXlvdXQtbmF2YmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY2FyZC1iZywgMC45NSkgIWltcG9ydGFudDtcbiAgYmFja2Ryb3AtZmlsdGVyOiBzYXR1cmF0ZSgyMDAlKSBibHVyKDZweCk7XG59XG5cbi5uYXZiYXItZGV0YWNoZWQge1xuICBib3gtc2hhZG93OiAwIDAgMC4zNzVyZW0gMC4yNXJlbSByZ2JhKHJnYmEtdG8taGV4KCRncmF5LTUwMCwgJHJnYmEtdG8taGV4LWJnKSwgMC4xNSk7XG59XG5cbi5sYXlvdXQtbmF2YmFyLWZpeGVkIC5sYXlvdXQtcGFnZTpiZWZvcmUge1xuICBiYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDIwMCUpIGJsdXIoMTBweCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoJGJvZHktYmcsIDAuNik7XG59XG5cbi8vIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGluY2x1ZGUgdGVtcGxhdGUtbWVudS1zdHlsZSgnLmJnLW1lbnUtdGhlbWUnLCAkZGFyaywgJGNvbG9yOiAjYzRjZGQ1LCAkYWN0aXZlLWNvbG9yOiAkd2hpdGUsICRib3JkZXI6IHRyYW5zcGFyZW50KTtcblxuLmJnLW1lbnUtdGhlbWUge1xuXG4gIC8vIE1lbnUgaGVhZGVyXG4gIC5tZW51LWhlYWRlciB7XG4gICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRleHQtbXV0ZWQgICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gbWVudSBpdGVtIG9wZW4odmVydGljYWwpICYgaG92ZXIgKHZlcnRpY2FsICYgaG9yaXpvbnRhbClcbiAgLm1lbnUtaW5uZXIgLm1lbnUtaXRlbS5vcGVuPi5tZW51LWxpbmssXG4gIC5tZW51LWlubmVyIC5tZW51LWl0ZW0gLm1lbnUtbGluazpub3QoLmFjdGl2ZSk6aG92ZXIge1xuXG4gICAgaHRtbDpub3QoLmxheW91dC1tZW51LWNvbGxhcHNlZCkgJixcbiAgICAubGF5b3V0LW1lbnUtaG92ZXIubGF5b3V0LW1lbnUtY29sbGFwc2VkICYge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkd2hpdGUsIDAuMDQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIG1lbnUgaXRlbSBvcGVuKGhvcml6b250YWwpXG4gIC5tZW51LWlubmVyIC5tZW51LXN1Yj4ubWVudS1pdGVtLmFjdGl2ZSB7XG4gICAgPi5tZW51LWxpbmsubWVudS10b2dnbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkd2hpdGUsIDAuMDQpO1xuICAgIH1cblxuICAgIC5tZW51LWljb24ge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIG1lbnUgaXRlbSBhY3RpdmVcbiAgLm1lbnUtaW5uZXI+Lm1lbnUtaXRlbS5hY3RpdmU+Lm1lbnUtbGluayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3IgICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWVudS1pbm5lcj4ubWVudS1pdGVtLmFjdGl2ZTpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICB9XG5cbiAgLy8gU3ViIG1lbnUgaXRlbSBsaW5rIGJ1bGxldFxuICAubWVudS1zdWI+Lm1lbnUtaXRlbT4ubWVudS1saW5rOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYS10by1oZXgoJGdyYXktNDAwLCAkcmdiYS10by1oZXgtYmcpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBTdWIgbWVudSBpdGVtIGxpbmsgYWN0aXZlIGJ1bGxldFxuICAubWVudS1zdWI+Lm1lbnUtaXRlbS5hY3RpdmU+Lm1lbnUtbGluazpub3QoLm1lbnUtdG9nZ2xlKTpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yICAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEtdG8taGV4KHJnYmEoJHByaW1hcnktY29sb3IsIDAuNCksICRkYXJrKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gU3ViIG1lbnUgYm94LXNoYWRvdyAoaG9yaXpvbnRhbClcbiAgLm1lbnUtaW5uZXI+Lm1lbnUtaXRlbSAubWVudS1zdWIge1xuICAgIC5sYXlvdXQtaG9yaXpvbnRhbCAmIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMC4yNXJlbSAxcmVtIHJnYmEoJGRhcmssIDAuNCk7XG4gICAgfVxuICB9XG59XG5cbi5hcHAtYnJhbmQgLmxheW91dC1tZW51LXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICBib3JkZXI6IDdweCBzb2xpZCAkYm9keS1iZztcblxuICBpIHtcbiAgICBjb2xvcjogY29sb3ItY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xuICB9XG59XG5cbi8vIEZvb3RlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW5jbHVkZSB0ZW1wbGF0ZS1mb290ZXItc3R5bGUoJy5iZy1mb290ZXItdGhlbWUnLCAkYm9keS1iZywgJGNvbG9yOiAkYm9keS1jb2xvciwgJGFjdGl2ZS1jb2xvcjogJGhlYWRpbmdzLWNvbG9yKTtcblxuLmxheW91dC1mb290ZXItZml4ZWQge1xuICAuY29udGVudC1mb290ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwLjM3NXJlbSAwLjI1cmVtIHJnYmEocmdiYS10by1oZXgoJGdyYXktNTAwLCAkcmdiYS10by1oZXgtYmcpLCAwLjE1KTtcbiAgfVxufSIsIi8qXG4qIFBhZ2VzIE1peGluc1xuKi9cbkBpbXBvcnQgJy4uLy4uL3Njc3MvX2Jvb3RzdHJhcC1leHRlbmRlZC9mdW5jdGlvbnMnO1xuXG5AbWl4aW4gaWNvbi10aGVtZSgkY29sb3IpIHtcbiAgLmljb24tY2FyZC5hY3RpdmUge1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCAkY29sb3I7XG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vID8gVGhlbWUgcmVsYXRlZCBzdHlsZXMgY29tbW9uIHN0eWxlc1xuXG5AaW1wb3J0ICcuLi9fY29tcG9uZW50cy9pbmNsdWRlJztcblxuLy8gU3BhY2UgYWJvdmUgZGV0YWNoZWQgbmF2YmFyICh2ZXJ0aWNhbCBsYXlvdXQgb25seSlcbi5sYXlvdXQtbmF2YmFyLWZpeGVkIC5sYXlvdXQtd3JhcHBlcjpub3QoLmxheW91dC1ob3Jpem9udGFsKSAubGF5b3V0LXBhZ2U6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuNzVyZW07XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwcHg7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4uYmctbWVudS10aGVtZSB7XG4gIC8vIE1lbnUgaGVhZGVyXG4gIC5tZW51LWhlYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMS4xODc1cmVtO1xuICAgICAgd2lkdGg6IDFyZW07XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAkbWVudS1hbmltYXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7XG4gICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICByaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVudS1pbm5lciAubWVudS1pdGVtIC5tZW51LWxpbmsge1xuICAgIC5sYXlvdXQtd3JhcHBlcjpub3QoLmxheW91dC1ob3Jpem9udGFsKSAmIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIH1cbiAgfVxuICAubWVudS1pbm5lciA+IC5tZW51LWl0ZW0gPiAubWVudS1saW5rIHtcbiAgICAubGF5b3V0LWhvcml6b250YWwgJiB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICB9XG4gIH1cblxuICAubWVudS1pbm5lciA+IHtcbiAgICAvLyBTcGFjaW5nIGFuZCBCb3gtc2hhZG93IG9ubHkgZm9yIGhvcml6b250YWwgbWVudSBhYm92ZSBsZyBzY3JlZW5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHhsKSB7XG4gICAgICAubWVudS1pdGVtIHtcbiAgICAgICAgLmxheW91dC1ob3Jpem9udGFsICYge1xuICAgICAgICAgIG1hcmdpbjogJG1lbnUtaG9yaXpvbnRhbC1saW5rLXBhZGRpbmcteSAwO1xuICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRtZW51LWl0ZW0tc3BhY2VyO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWVudS1pdGVtLXNwYWNlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgLm1lbnUtc3ViIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRtZW51LWhvcml6b250YWwtbWVudS1ib3gtc2hhZG93O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAubWVudS1pdGVtLmFjdGl2ZTpiZWZvcmUge1xuICAgICAgLmxheW91dC13cmFwcGVyOm5vdCgubGF5b3V0LWhvcml6b250YWwpICYge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDAuMjVyZW07XG4gICAgICAgIGhlaWdodDogMi42ODQ1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAwIDAgJGJvcmRlci1yYWRpdXM7XG4gICAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICByaWdodDogaW5oZXJpdDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwICRib3JkZXItcmFkaXVzICRib3JkZXItcmFkaXVzIDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWIgbWVudSBpdGVtIGxpbmsgYnVsbGV0XG4gIC5tZW51LXN1YiA+IC5tZW51LWl0ZW0gPiAubWVudS1saW5rOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEuNDM3NXJlbTtcbiAgICB3aWR0aDogMC4zNzVyZW07XG4gICAgaGVpZ2h0OiAwLjM3NXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgIHJpZ2h0OiAxLjQzNzVyZW07XG4gICAgICBsZWZ0OiBpbmhlcml0O1xuICAgIH1cbiAgICAvLyBGb3IgaG9yaXpvbnRhbCBsYXlvdXRcbiAgICAubGF5b3V0LWhvcml6b250YWwgJiB7XG4gICAgICBsZWZ0OiAxLjNyZW07XG4gICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICByaWdodDogMS4zcmVtO1xuICAgICAgICBsZWZ0OiBpbmhlcml0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyA/IEhpZGUgYnVsbGV0IGZyb20gZmlyc3QgY2hpbGQgb25seSBhcyB3ZSBkaXNwbGF5IGljb24gaW5zdGVhZCAoaG9yaXpvbnRhbClcbiAgLm1lbnUtaG9yaXpvbnRhbC13cmFwcGVyID4gLm1lbnUtaW5uZXIgPiAubWVudS1pdGVtID4gLm1lbnUtc3ViID4gLm1lbnUtaXRlbSA+IC5tZW51LWxpbms6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC8vIFN1YiBtZW51IGl0ZW0gbGluayBhY3RpdmUgYnVsbGV0XG4gIC5tZW51LXN1YiA+IC5tZW51LWl0ZW0uYWN0aXZlID4gLm1lbnUtbGluazpub3QoLm1lbnUtdG9nZ2xlKTpiZWZvcmUge1xuICAgIGxlZnQ6IDEuMTg3NXJlbTtcbiAgICB3aWR0aDogMC44NzVyZW07XG4gICAgaGVpZ2h0OiAwLjg3NXJlbTtcbiAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgcmlnaHQ6IDEuMTg3NXJlbTtcbiAgICAgIGxlZnQ6IGluaGVyaXQ7XG4gICAgfVxuICAgIC8vIEZvciBob3Jpem9udGFsIGxheW91dFxuICAgIC5sYXlvdXQtaG9yaXpvbnRhbCAmIHtcbiAgICAgIGxlZnQ6IDEuMXJlbTtcbiAgICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICAgIHJpZ2h0OiAxLjFyZW07XG4gICAgICAgIGxlZnQ6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5sYXlvdXQtbWVudS1ob3ZlciAubGF5b3V0LW1lbnUge1xuICBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1sZztcbiAgdHJhbnNpdGlvbjogYWxsICRtZW51LWFuaW1hdGlvbi1kdXJhdGlvbiBlYXNlLWluLW91dDtcbn1cblxuLmFwcC1icmFuZCAubGF5b3V0LW1lbnUtdG9nZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAkbWVudS13aWR0aCAtIDEuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICBsZWZ0OiBpbmhlcml0O1xuICAgIHJpZ2h0OiAkbWVudS13aWR0aCAtIDEuMjVyZW07XG4gIH1cbiAgaSB7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgJG1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uIGVhc2UtaW4tb3V0O1xuICAgIEBpbmNsdWRlIHJ0bC1zdHlsZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4bCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgLmxheW91dC1tZW51LWV4cGFuZGVkICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBWYXJpYWJsZXNcbi8vXG4vLyBWYXJpYWJsZXMgc2hvdWxkIGZvbGxvdyB0aGUgYCRjb21wb25lbnQtc3RhdGUtcHJvcGVydHktc2l6ZWAgZm9ybXVsYSBmb3Jcbi8vIGNvbnNpc3RlbnQgbmFtaW5nLiBFeDogJG5hdi1saW5rLWRpc2FibGVkLWNvbG9yIGFuZCAkbW9kYWwtY29udGVudC1ib3gtc2hhZG93LXhzLlxuLy9cbi8vID8gVG8gY2hhbmdlIHRoZSBsYXlvdXQgY29sb3JzIHlvdSBqdXN0IG5lZWQgdG8gY2hhbmdlIHRoZSAkYmxhY2sgYW5kICRib2R5LWJnIGNvbG9ycyBhbmQgcmVzdCAoYm9yZGVyLCBjYXJkLCBmb250IGNvbG9ycyBhbmQgZXRjLi4uKSB3aWxsIGJlIGFkanVzdCBhdXRvbWF0aWNhbGx5LlxuLy8gPyBVc2UgaHR0cHM6Ly9ub2VsZGVsZ2Fkby5naXRodWIuaW8vc2hhZG93bG9yZC8gdG8gc2VsZWN0IHByb3BlciDwn5KEIENvbG9yIHRpbnRzIGFuZCBzaGFkZSBmb3IgJGJsYWNrIGFuZCAkYm9keS1iZyBjb2xvci5cbi8vID8gY29sb3ItdmFyaWFibGVzIGFuZCB0aGVtZS1jb2xvci12YXJpYWJsZXMgKGJyYW5kaW5nIGNvbG9ycykgY2FuIGJlIGNob29zZSBhcyBwZXIgeW91ciBwcmVmZXJlbmNlcy4gV2Ugc3VnZ2VzdCB5b3UgdG8gdXNlIGh0dHBzOi8vY29sb3JzLmV2YS5kZXNpZ24vXG4vLyAhIExpZ2h0IHN0eWxlIHVzZSAkYmxhY2sgdG8gZ2VuZXJhdGUgdGhlICRncmF5IHNoYWRlcy5cbi8vIChDKSBDdXN0b20gdmFyaWFibGVzIGZvciBleHRlbmRlZCBjb21wb25lbnRzIG9mIGJvb3RzdHJhcCBvbmx5XG5cbi8vICogQ29sb3Igc3lzdGVtXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBncmF5LWNvbG9yLXZhcmlhYmxlc1xuJHdoaXRlOiAjZmZmICFkZWZhdWx0O1xuJGJsYWNrOiAjNDM1OTcxICFkZWZhdWx0O1xuJGdyYXktMjU6IHJnYmEoJGJsYWNrLCAwLjAyNSkgIWRlZmF1bHQ7IC8vIChDKVxuJGdyYXktNTA6IHJnYmEoJGJsYWNrLCAwLjA1KSAhZGVmYXVsdDsgLy8gKEMpXG4kZ3JheS0xMDA6IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuJGdyYXktMjAwOiByZ2JhKCRibGFjaywgMC4yKSAhZGVmYXVsdDtcbiRncmF5LTMwMDogcmdiYSgkYmxhY2ssIDAuMykgIWRlZmF1bHQ7XG4kZ3JheS00MDA6IHJnYmEoJGJsYWNrLCAwLjQpICFkZWZhdWx0O1xuJGdyYXktNTAwOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcbiRncmF5LTYwMDogcmdiYSgkYmxhY2ssIDAuNikgIWRlZmF1bHQ7XG4kZ3JheS03MDA6IHJnYmEoJGJsYWNrLCAwLjcpICFkZWZhdWx0O1xuJGdyYXktODAwOiByZ2JhKCRibGFjaywgMC44KSAhZGVmYXVsdDtcbiRncmF5LTkwMDogcmdiYSgkYmxhY2ssIDAuOSkgIWRlZmF1bHQ7XG4vLyBzY3NzLWRvY3MtZW5kIGdyYXktY29sb3ItdmFyaWFibGVzXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBncmF5LWNvbG9ycy1tYXBcbiRncmF5czogKFxuICAnMjUnOiAkZ3JheS0yNSxcbiAgJzUwJzogJGdyYXktNTBcbikgIWRlZmF1bHQ7XG4vLyBzY3NzLWRvY3MtZW5kIGdyYXktY29sb3JzLW1hcFxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgY29sb3ItdmFyaWFibGVzXG4kYmx1ZTogIzAwN2JmZiAhZGVmYXVsdDtcbiRpbmRpZ286ICM2NjEwZjIgIWRlZmF1bHQ7XG4kcHVycGxlOiAjNjk2Y2ZmICFkZWZhdWx0O1xuJHBpbms6ICNlODNlOGMgIWRlZmF1bHQ7XG4kcmVkOiAjZmYzZTFkICFkZWZhdWx0O1xuJG9yYW5nZTogI2ZkN2UxNCAhZGVmYXVsdDtcbiR5ZWxsb3c6ICNmZmFiMDAgIWRlZmF1bHQ7XG4kZ3JlZW46ICM3MWRkMzcgIWRlZmF1bHQ7XG4kdGVhbDogIzIwYzk5NyAhZGVmYXVsdDtcbiRjeWFuOiAjMDNjM2VjICFkZWZhdWx0O1xuLy8gc2Nzcy1kb2NzLWVuZCBjb2xvci12YXJpYWJsZXNcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IHRoZW1lLWNvbG9yLXZhcmlhYmxlc1xuJHByaW1hcnk6ICRwdXJwbGUgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5OiAjODU5MmEzICFkZWZhdWx0O1xuJHN1Y2Nlc3M6ICRncmVlbiAhZGVmYXVsdDtcbiRpbmZvOiAkY3lhbiAhZGVmYXVsdDtcbiR3YXJuaW5nOiAkeWVsbG93ICFkZWZhdWx0O1xuJGRhbmdlcjogJHJlZCAhZGVmYXVsdDtcbiRsaWdodDogI2ZjZmRmZCAhZGVmYXVsdDtcbiRkYXJrOiAjMjMzNDQ2ICFkZWZhdWx0O1xuJGdyYXk6ICRncmF5LTEwMCAhZGVmYXVsdDsgLy8gKEMpXG4vLyBzY3NzLWRvY3MtZW5kIHRoZW1lLWNvbG9yLXZhcmlhYmxlc1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgdGhlbWUtY29sb3JzLW1hcFxuJHRoZW1lLWNvbG9yczogKFxuICAncHJpbWFyeSc6ICRwcmltYXJ5LFxuICAnc2Vjb25kYXJ5JzogJHNlY29uZGFyeSxcbiAgJ3N1Y2Nlc3MnOiAkc3VjY2VzcyxcbiAgJ2luZm8nOiAkaW5mbyxcbiAgJ3dhcm5pbmcnOiAkd2FybmluZyxcbiAgJ2Rhbmdlcic6ICRkYW5nZXIsXG4gICdsaWdodCc6ICRsaWdodCxcbiAgJ2RhcmsnOiAkZGFyayxcbiAgJ2dyYXknOiAkZ3JheVxuKSAhZGVmYXVsdDtcbi8vIHNjc3MtZG9jcy1lbmQgdGhlbWUtY29sb3JzLW1hcFxuXG4kY29sb3Itc2NoZW1lOiAnbGlnaHQnICFkZWZhdWx0OyAvLyAoQylcbi8vIFRoZSBjb250cmFzdCByYXRpbyB0byByZWFjaCBhZ2FpbnN0IHdoaXRlLCB0byBkZXRlcm1pbmUgaWYgY29sb3IgY2hhbmdlcyBmcm9tIFwibGlnaHRcIiB0byBcImRhcmtcIi4gQWNjZXB0YWJsZSB2YWx1ZXMgZm9yIFdDQUcgMi4wIGFyZSAzLCA0LjUgYW5kIDcuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL1dDQUcyMC8jdmlzdWFsLWF1ZGlvLWNvbnRyYXN0LWNvbnRyYXN0XG4kbWluLWNvbnRyYXN0LXJhdGlvOiAxLjcgIWRlZmF1bHQ7XG5cbi8vICogT3B0aW9uc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4kZW5hYmxlLW5lZ2F0aXZlLW1hcmdpbnM6IHRydWUgIWRlZmF1bHQ7XG4kZW5hYmxlLXZhbGlkYXRpb24taWNvbnM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBQcmVmaXggZm9yIDpyb290IENTUyB2YXJpYWJsZXNcbiR2YXJpYWJsZS1wcmVmaXg6IGJzLSAhZGVmYXVsdDtcblxuLy8gKiBTcGFjaW5nXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiRzcGFjZXI6IDFyZW0gIWRlZmF1bHQ7XG5cbiRzaXplcy1weDogKFxuICBweC0yMDogMjBweCxcbiAgcHgtMzA6IDMwcHgsXG4gIHB4LTQwOiA0MHB4LFxuICBweC01MDogNTBweCxcbiAgcHgtNzU6IDc1cHgsXG4gIHB4LTEwMDogMTAwcHgsXG4gIHB4LTE1MDogMTUwcHgsXG4gIHB4LTIwMDogMjAwcHgsXG4gIHB4LTI1MDogMjUwcHgsXG4gIHB4LTMwMDogMzAwcHgsXG4gIHB4LTM1MDogMzUwcHgsXG4gIHB4LTQwMDogNDAwcHgsXG4gIHB4LTUwMDogNTAwcHgsXG4gIHB4LTYwMDogNjAwcHgsXG4gIHB4LTcwMDogNzAwcHgsXG4gIHB4LTgwMDogODAwcHgsXG4gIGF1dG86IGF1dG9cbikgIWRlZmF1bHQ7IC8vIChDKVxuXG4kcmdiYS10by1oZXgtYmc6ICNmZmYgIWRlZmF1bHQ7IC8vIChDKVxuJHJnYmEtdG8taGV4LWJnLWludmVydGVkOiAjMDAwICFkZWZhdWx0OyAvLyAoQylcblxuLy8gKiBCb2R5XG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiRib2R5LWJnOiAjZjVmNWY5ICFkZWZhdWx0O1xuJGJvZHktY29sb3I6IHJnYmEtdG8taGV4KCRncmF5LTgwMCwgJHJnYmEtdG8taGV4LWJnKSAhZGVmYXVsdDtcblxuLy8gKiBMaW5rc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4kbGluay1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XG4kbGluay1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGxpbmstc2hhZGUtcGVyY2VudGFnZTogMTAlICFkZWZhdWx0O1xuJGxpbmstaG92ZXItY29sb3I6IHNoaWZ0LWNvbG9yKCRsaW5rLWNvbG9yLCAkbGluay1zaGFkZS1wZXJjZW50YWdlKSAhZGVmYXVsdDtcbiRsaW5rLWhvdmVyLWRlY29yYXRpb246IG51bGwgIWRlZmF1bHQ7XG5cbi8vICogR3JpZFxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyBHcmlkIGNvbnRhaW5lcnNcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGNvbnRhaW5lci1tYXgtd2lkdGhzXG4kY29udGFpbmVyLW1heC13aWR0aHM6IChcbiAgc206IDU0MHB4LFxuICBtZDogNzIwcHgsXG4gIGxnOiA5NjBweCxcbiAgeGw6IDExNDBweCxcbiAgeHhsOiAxNDQwcHggLy8gQ3VzdG9tIHh4bCBzaXplXG4pICFkZWZhdWx0O1xuLy8gc2Nzcy1kb2NzLWVuZCBjb250YWluZXItbWF4LXdpZHRoc1xuXG4kZ3JpZC1ndXR0ZXItd2lkdGg6IDEuNjI1cmVtICFkZWZhdWx0O1xuJGNvbnRhaW5lci1wYWRkaW5nLXg6IDEuNjI1cmVtICFkZWZhdWx0OyAvLyAoQylcbiRjb250YWluZXItcGFkZGluZy14LXNtOiAxcmVtICFkZWZhdWx0OyAvLyAoQylcbiRjb250YWluZXItcGFkZGluZy15OiAxLjYyNXJlbSAhZGVmYXVsdDsgLy8gKEMpXG5cbi8vICogQ29tcG9uZW50c1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgYm9yZGVyLXZhcmlhYmxlc1xuJGJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGJvcmRlci1jb2xvcjogcmdiYS10by1oZXgoJGdyYXktMjAwLCAkcmdiYS10by1oZXgtYmcpICFkZWZhdWx0O1xuJGJvcmRlci1pbm5lci1jb2xvcjogcmdiYS10by1oZXgoJGdyYXktMjAwLCAkcmdiYS10by1oZXgtYmcpICFkZWZhdWx0OyAvLyAoQylcbi8vIHNjc3MtZG9jcy1lbmQgYm9yZGVyLXZhcmlhYmxlc1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgYm9yZGVyLXJhZGl1cy12YXJpYWJsZXNcbiRib3JkZXItcmFkaXVzOiAwLjM3NXJlbSAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLXhsOiAwLjYyNXJlbSAhZGVmYXVsdDsgLy8gKEMpXG4kYm9yZGVyLXJhZGl1cy1sZzogMC41cmVtICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtc206IDAuMjVyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy14czogMC4xMjVyZW0gIWRlZmF1bHQ7IC8vIChDKVxuXG4kYm9yZGVyLXNoYWRlLWFtb3VudDogMjUlICFkZWZhdWx0OyAvLyAoQylcbiRib3JkZXItdGludC1hbW91bnQ6IDYwJSAhZGVmYXVsdDsgLy8gKEMpXG4vLyBzY3NzLWRvY3MtZW5kIGJvcmRlci1yYWRpdXMtdmFyaWFibGVzXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBib3gtc2hhZG93LXZhcmlhYmxlc1xuJGJveC1zaGFkb3c6IDAgMC4yNXJlbSAxcmVtIHJnYmEocmdiYS10by1oZXgoJGdyYXktNTAwLCAkcmdiYS10by1oZXgtYmcpLCAwLjQ1KSAhZGVmYXVsdDtcbiRib3gtc2hhZG93LXNtOiAwIDAuMTI1cmVtIDAuMjVyZW0gcmdiYShyZ2JhLXRvLWhleCgkZ3JheS01MDAsICRyZ2JhLXRvLWhleC1iZyksIDAuNCkgIWRlZmF1bHQ7XG4kYm94LXNoYWRvdy1sZzogMCAwLjYyNXJlbSAxLjI1cmVtIHJnYmEocmdiYS10by1oZXgoJGdyYXktNTAwLCAkcmdiYS10by1oZXgtYmcpLCAwLjUpICFkZWZhdWx0O1xuLy8gc2Nzcy1kb2NzLWVuZCBib3gtc2hhZG93LXZhcmlhYmxlc1xuXG4kY29tcG9uZW50LWFjdGl2ZS1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGNvbXBvbmVudC1hY3RpdmUtYmc6IHJnYmEoJHByaW1hcnksIDAuMDgpICFkZWZhdWx0O1xuXG4kY29tcG9uZW50LWxpbmUtaGVpZ2h0OiAxLjU0ICFkZWZhdWx0OyAvLyAoQylcbiRjb21wb25lbnQtZm9jdXMtc2hhZG93LXdpZHRoOiAycHggIWRlZmF1bHQ7IC8vIChDKVxuXG4kZmxvYXRpbmctY29tcG9uZW50LWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7IC8vIChDKVxuJGZsb2F0aW5nLWNvbXBvbmVudC1zaGFkb3c6ICRib3gtc2hhZG93ICFkZWZhdWx0OyAvLyAoQylcblxuJGhyLWNvbG9yOiAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGhyLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG4kYm9yZGVyZWQtcm93LWJvcmRlci1jb2xvcjogJGhyLWNvbG9yICFkZWZhdWx0OyAvLyAoQylcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGNhcmV0LXZhcmlhYmxlc1xuJGNhcmV0LXdpZHRoOiAwLjQyZW0gIWRlZmF1bHQ7XG4kY2FyZXQtdmVydGljYWwtYWxpZ246IG1pZGRsZSAhZGVmYXVsdDtcbiRjYXJldC1zcGFjaW5nOiAwLjVlbSAhZGVmYXVsdDtcbi8vIHNjc3MtZG9jcy1lbmQgY2FyZXQtdmFyaWFibGVzXG5cbi8vICogVHlwb2dyYXBoeVxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgZm9udC12YXJpYWJsZXNcbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiAnUHVibGljIFNhbnMnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsXG4gICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktc2VyaWY6IEdlb3JnaWEsICdUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZiAhZGVmYXVsdDsgLy8gKEMpXG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiAnU0ZNb25vLVJlZ3VsYXInLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZSAhZGVmYXVsdDtcbi8vIHN0eWxlbGludC1lbmFibGUgdmFsdWUta2V5d29yZC1jYXNlXG4kZm9udC1mYW1pbHktYmFzZTogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWZvbnQtc2Fucy1zZXJpZikgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktY29kZTogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWZvbnQtbW9ub3NwYWNlKSAhZGVmYXVsdDtcblxuLy8gJGZvbnQtc2l6ZS1yb290IGVmZmVjdHMgdGhlIHZhbHVlIG9mIGByZW1gLCB3aGljaCBpcyB1c2VkIGZvciBhcyB3ZWxsIGZvbnQgc2l6ZXMsIHBhZGRpbmdzIGFuZCBtYXJnaW5zXG4vLyAkZm9udC1zaXplLWJhc2UgZWZmZWN0cyB0aGUgZm9udCBzaXplIG9mIHRoZSBib2R5IHRleHRcbiRmb250LXNpemUtcm9vdDogMTZweCAhZGVmYXVsdDtcbiRmb250LXNpemUtYmFzZTogMC45Mzc1cmVtICFkZWZhdWx0OyAvLyBBc3N1bWVzIHRoZSBicm93c2VyIGRlZmF1bHQsIHR5cGljYWxseSBgMTVweC8xNnB4YFxuJGZvbnQtc2l6ZS14bDogMS4yNXJlbSAhZGVmYXVsdDsgLy8gKEMpXG4kZm9udC1zaXplLWxnOiAxcmVtICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1zbTogMC43NXJlbSAhZGVmYXVsdDtcbiRmb250LXNpemUteHM6ICRmb250LXNpemUtc20gIWRlZmF1bHQ7IC8vIChDKVxuXG4kZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMCAhZGVmYXVsdDsgLy8gKEMpXG4kZm9udC13ZWlnaHQtYm9sZGVyOiA5MDAgIWRlZmF1bHQ7XG4kZm9udC13ZWlnaHQtbGlnaHRlcjogMTAwICFkZWZhdWx0O1xuXG4kbGluZS1oZWlnaHQtYmFzZTogMS41MyAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC14bDogMS41ICFkZWZhdWx0OyAvLyAoQylcbiRsaW5lLWhlaWdodC1sZzogMS41ICFkZWZhdWx0O1xuJGxpbmUtaGVpZ2h0LXNtOiAxLjUgIWRlZmF1bHQ7XG4kbGluZS1oZWlnaHQteHM6IDEuNSAhZGVmYXVsdDsgLy8gKEMpXG5cbiRoMS1mb250LXNpemU6IDIuMzc1cmVtICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogMnJlbSAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6IDEuNjI1cmVtICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogMS4zNzVyZW0gIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAxLjEyNXJlbSAhZGVmYXVsdDtcbiRoNi1mb250LXNpemU6ICRmb250LXNpemUtYmFzZSAhZGVmYXVsdDtcbi8vIHNjc3MtZG9jcy1lbmQgZm9udC12YXJpYWJsZXNcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGhlYWRpbmdzLXZhcmlhYmxlc1xuJGhlYWRpbmdzLW1hcmdpbi1ib3R0b206ICRzcGFjZXIgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6IDUwMCAhZGVmYXVsdDtcbiRoZWFkaW5ncy1saW5lLWhlaWdodDogMS4xICFkZWZhdWx0O1xuJGhlYWRpbmdzLWNvbG9yOiByZ2JhLXRvLWhleCgkZ3JheS05MDAsICRyZ2JhLXRvLWhleC1iZykgIWRlZmF1bHQ7XG4vLyBzY3NzLWRvY3MtZW5kIGhlYWRpbmdzLXZhcmlhYmxlc1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgZGlzcGxheS1oZWFkaW5nc1xuJGRpc3BsYXktZm9udC1zaXplczogKFxuICAxOiA0cmVtLFxuICAyOiAzLjVyZW0sXG4gIDM6IDNyZW0sXG4gIDQ6IDIuNXJlbSxcbiAgNTogMnJlbSxcbiAgNjogMS41cmVtXG4pICFkZWZhdWx0O1xuXG4kZGlzcGxheS1mb250LXdlaWdodDogNTAwICFkZWZhdWx0O1xuLy8gc2Nzcy1kb2NzLWVuZCBkaXNwbGF5LWhlYWRpbmdzXG5cbi8vIHNjc3MtZG9jcy1zdGFydCB0eXBlLXZhcmlhYmxlc1xuJGxlYWQtZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2UgKiAxLjEyNSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlICogMS4xMjUgIWRlZmF1bHQ7XG4kbGVhZC1mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuLy8gc2Nzcy1kb2NzLWVuZCB0eXBlLXZhcmlhYmxlc1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgdHlwZS12YXJpYWJsZXNcbiR0aW55LWZvbnQtc2l6ZTogNzAlICFkZWZhdWx0OyAvLyAoQylcbiRzbWFsbC1mb250LXNpemU6IDg1JSAhZGVmYXVsdDtcbiRiaWctZm9udC1zaXplOiAxMTIlICFkZWZhdWx0OyAvLyAoQylcbiRsYXJnZS1mb250LXNpemU6IDE1MCUgIWRlZmF1bHQ7IC8vIChDKVxuJHhsYXJnZS1mb250LXNpemU6IDE3MCUgIWRlZmF1bHQ7IC8vIChDKVxuXG4kdGV4dC1tdXRlZDogcmdiYS10by1oZXgoJGdyYXktNTAwLCAkcmdiYS10by1oZXgtYmcpICFkZWZhdWx0O1xuJHRleHQtbXV0ZWQtaG92ZXI6IHJnYmEtdG8taGV4KCRncmF5LTYwMCwgJHJnYmEtdG8taGV4LWJnKSAhZGVmYXVsdDsgLy8gKEMpXG5cbiR0ZXh0LWxpZ2h0OiByZ2JhLXRvLWhleCgkZ3JheS00MDAsICRyZ2JhLXRvLWhleC1iZykgIWRlZmF1bHQ7IC8vIChDKVxuJHRleHQtbGlnaHRlcjogcmdiYS10by1oZXgoJGdyYXktMzAwLCAkcmdiYS10by1oZXgtYmcpICFkZWZhdWx0OyAvLyAoQylcbiR0ZXh0LWxpZ2h0ZXN0OiByZ2JhLXRvLWhleCgkZ3JheS0yMDAsICRyZ2JhLXRvLWhleC1iZykgIWRlZmF1bHQ7IC8vIChDKVxuLy8gc2Nzcy1kb2NzLWVuZCB0eXBlLXZhcmlhYmxlc1xuXG4vLyAqIFotaW5kZXggbWFzdGVyIGxpc3Rcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJHppbmRleC1tZW51LWZpeGVkOiAxMDgwICFkZWZhdWx0O1xuJHppbmRleC1tb2RhbDogMTA5MCAhZGVmYXVsdDtcbiR6aW5kZXgtbW9kYWwtYmFja2Ryb3A6ICR6aW5kZXgtbW9kYWwgLSAxICFkZWZhdWx0O1xuLy8gJHppbmRleC1tb2RhbC10b3A6IDEwOTAgIWRlZmF1bHQ7IC8vIChDKVxuJHppbmRleC1vZmZjYW52YXM6IDEwOTAgIWRlZmF1bHQ7XG4kemluZGV4LW9mZmNhbnZhcy1iYWNrZHJvcDogJHppbmRleC1vZmZjYW52YXMgLSAxICFkZWZhdWx0O1xuJHppbmRleC1sYXlvdXQtbW9iaWxlOiAxMTAwICFkZWZhdWx0OyAvLyAoQylcbiR6aW5kZXgtcG9wb3ZlcjogMTA5MSAhZGVmYXVsdDtcbiR6aW5kZXgtdG9hc3Q6IDEwOTUgIWRlZmF1bHQ7IC8vIChDKVxuJHppbmRleC10b29sdGlwOiAxMDk5ICFkZWZhdWx0O1xuJHppbmRleC1ub3RpZmljYXRpb246IDk5OTk5OSAhZGVmYXVsdDsgLy8gKEMpXG5cbi8vICogVGFibGVzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbi8vIHNjc3MtZG9jcy1zdGFydCB0YWJsZS12YXJpYWJsZXNcbiR0YWJsZS1jZWxsLXBhZGRpbmcteTogMC42MjVyZW0gIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1wYWRkaW5nLXg6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1wYWRkaW5nLXktc206IDAuMzEyNXJlbSAhZGVmYXVsdDtcbiR0YWJsZS1jZWxsLXBhZGRpbmcteC1zbTogMC42MjVyZW0gIWRlZmF1bHQ7XG5cbiR0YWJsZS1jZWxsLXZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWRlZmF1bHQ7XG5cbiR0YWJsZS10aC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkICFkZWZhdWx0O1xuXG4kdGFibGUtc3RyaXBlZC1iZy1mYWN0b3I6IDAuMDMgIWRlZmF1bHQ7XG4kdGFibGUtc3RyaXBlZC1iZzogcmdiYS10by1oZXgocmdiYSgkYmxhY2ssICR0YWJsZS1zdHJpcGVkLWJnLWZhY3RvciksICRyZ2JhLXRvLWhleC1iZykgIWRlZmF1bHQ7XG5cbiR0YWJsZS1ob3Zlci1iZy1mYWN0b3I6IDAuMDYgIWRlZmF1bHQ7XG4kdGFibGUtaG92ZXItYmc6IHJnYmEoJGJsYWNrLCAkdGFibGUtaG92ZXItYmctZmFjdG9yKSAhZGVmYXVsdDtcblxuJHRhYmxlLWJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuJHRhYmxlLWdyb3VwLXNlcGFyYXRvci1jb2xvcjogJHRhYmxlLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuLy8gKiBCdXR0b25zICsgRm9ybXNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJGlucHV0LWJ0bi1wYWRkaW5nLXk6IDAuNDM3NXJlbSAhZGVmYXVsdDtcbiRpbnB1dC1idG4tcGFkZGluZy14OiAxLjI1cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb250LXNpemU6ICRmb250LXNpemUtYmFzZSAhZGVmYXVsdDtcbiRpbnB1dC1idG4tbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlICFkZWZhdWx0O1xuXG4kaW5wdXQtYnRuLWZvY3VzLXdpZHRoOiAwLjA1cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb2N1cy1jb2xvci1vcGFjaXR5OiAwLjEgIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvY3VzLWNvbG9yOiByZ2JhKCRjb21wb25lbnQtYWN0aXZlLWJnLCAkaW5wdXQtYnRuLWZvY3VzLWNvbG9yLW9wYWNpdHkpICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb2N1cy1ibHVyOiAwLjI1cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb2N1cy1ib3gtc2hhZG93OiAwIDAgJGlucHV0LWJ0bi1mb2N1cy1ibHVyICRpbnB1dC1idG4tZm9jdXMtd2lkdGggJGlucHV0LWJ0bi1mb2N1cy1jb2xvciAhZGVmYXVsdDtcblxuJGlucHV0LWJ0bi1wYWRkaW5nLXkteHM6IDAgIWRlZmF1bHQ7IC8vIChDKVxuJGlucHV0LWJ0bi1wYWRkaW5nLXgteHM6IDAuNXJlbSAhZGVmYXVsdDsgLy8gKEMpXG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS14czogJGZvbnQtc2l6ZS14cyAhZGVmYXVsdDsgLy8gKEMpXG4kaW5wdXQtYnRuLWxpbmUtaGVpZ2h0LXhzOiAkbGluZS1oZWlnaHQteHMgIWRlZmF1bHQ7IC8vIChDKVxuXG4kaW5wdXQtYnRuLXBhZGRpbmcteS1zbTogMC4yNXJlbSAhZGVmYXVsdDtcbiRpbnB1dC1idG4tcGFkZGluZy14LXNtOiAwLjY4NzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbTogJGZvbnQtc2l6ZS1zbSAhZGVmYXVsdDtcbiRpbnB1dC1idG4tbGluZS1oZWlnaHQtc206ICRsaW5lLWhlaWdodC1zbSAhZGVmYXVsdDtcblxuJGlucHV0LWJ0bi1wYWRkaW5nLXktbGc6IDAuNzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLXBhZGRpbmcteC1sZzogMS41cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb250LXNpemUtbGc6ICRmb250LXNpemUtbGcgIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWxpbmUtaGVpZ2h0LWxnOiAkbGluZS1oZWlnaHQtbGcgIWRlZmF1bHQ7XG5cbiRpbnB1dC1idG4tcGFkZGluZy15LXhsOiAwLjg3NXJlbSAhZGVmYXVsdDsgLy8gKEMpXG4kaW5wdXQtYnRuLXBhZGRpbmcteC14bDogMi4xMjVyZW0gIWRlZmF1bHQ7IC8vIChDKVxuJGlucHV0LWJ0bi1mb250LXNpemUteGw6ICRmb250LXNpemUteGwgIWRlZmF1bHQ7IC8vIChDKVxuJGlucHV0LWJ0bi1saW5lLWhlaWdodC14bDogJGxpbmUtaGVpZ2h0LXhsICFkZWZhdWx0OyAvLyAoQylcblxuLy8gKiBCdXR0b25zXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiRidG4tcGFkZGluZy15LXhzOiAkaW5wdXQtYnRuLXBhZGRpbmcteS14cyAhZGVmYXVsdDsgLy8gKEMpXG4kYnRuLXBhZGRpbmcteC14czogJGlucHV0LWJ0bi1wYWRkaW5nLXgteHMgIWRlZmF1bHQ7IC8vIChDKVxuJGJ0bi1mb250LXNpemUteHM6ICRpbnB1dC1idG4tZm9udC1zaXplLXhzICFkZWZhdWx0OyAvLyAoQylcblxuJGJ0bi1wYWRkaW5nLXkteGw6ICRpbnB1dC1idG4tcGFkZGluZy15LXhsICFkZWZhdWx0OyAvLyAoQylcbiRidG4tcGFkZGluZy14LXhsOiAkaW5wdXQtYnRuLXBhZGRpbmcteC14bCAhZGVmYXVsdDsgLy8gKEMpXG4kYnRuLWZvbnQtc2l6ZS14bDogJGlucHV0LWJ0bi1mb250LXNpemUteGwgIWRlZmF1bHQ7IC8vIChDKVxuXG4kYnRuLWxpbmUtaGVpZ2h0LXhzOiAkaW5wdXQtYnRuLWxpbmUtaGVpZ2h0LXhzICFkZWZhdWx0OyAvLyAoQylcbiRidG4tbGluZS1oZWlnaHQtc206ICRsaW5lLWhlaWdodC1zbTsgLy8oQylcbiRidG4tbGluZS1oZWlnaHQtbGc6ICRsaW5lLWhlaWdodC1sZzsgLy8oQylcbiRidG4tbGluZS1oZWlnaHQteGw6ICRpbnB1dC1idG4tbGluZS1oZWlnaHQteGwgIWRlZmF1bHQ7IC8vIChDKVxuXG4kYnRuLWJveC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG4kYnRuLWZvY3VzLWJveC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG4kYnRuLWFjdGl2ZS1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuXG4kYnRuLWJvcmRlci1yYWRpdXMteHM6ICRib3JkZXItcmFkaXVzLXhzICFkZWZhdWx0OyAvLyAoQylcbiRidG4tYm9yZGVyLXJhZGl1cy14bDogJGJvcmRlci1yYWRpdXMteGwgIWRlZmF1bHQ7IC8vIChDKVxuXG4kYnRuLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4kYnRuLWxhYmVsLWJnLXNoYWRlLWFtb3VudDogODQlICFkZWZhdWx0OyAvLyAoQylcbiRidG4tbGFiZWwtYmctdGludC1hbW91bnQ6IDg0JSAhZGVmYXVsdDsgLy8gKEMpXG5cbiRidG4tbGFiZWwtZGlzYWJsZWQtYmctc2hhZGUtYW1vdW50OiA4NCUgIWRlZmF1bHQ7IC8vIChDKVxuJGJ0bi1sYWJlbC1kaXNhYmxlZC1iZy10aW50LWFtb3VudDogODQlICFkZWZhdWx0OyAvLyAoQylcblxuJGJ0bi1ob3Zlci1iZy1zaGFkZS1hbW91bnQ6IDEwJSAhZGVmYXVsdDtcbiRidG4taG92ZXItYmctdGludC1hbW91bnQ6IDEwJSAhZGVmYXVsdDtcbiRidG4taG92ZXItYm9yZGVyLXNoYWRlLWFtb3VudDogMTAlICFkZWZhdWx0O1xuJGJ0bi1ob3Zlci1ib3JkZXItdGludC1hbW91bnQ6IDEwJSAhZGVmYXVsdDtcbiRidG4taG92ZXItdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpICFkZWZhdWx0OyAvLyAoQylcblxuJGJ0bi1mb2N1cy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgIWRlZmF1bHQ7IC8vIChDKVxuXG4kYnRuLWRpc2FibGVkLW9wYWNpdHk6IDAuNjUgIWRlZmF1bHQ7XG5cbiRidG4tYWN0aXZlLWJnLXNoYWRlLWFtb3VudDogMTUlICFkZWZhdWx0O1xuJGJ0bi1hY3RpdmUtYmctdGludC1hbW91bnQ6IDE1JSAhZGVmYXVsdDtcbiRidG4tYWN0aXZlLWJvcmRlci1zaGFkZS1hbW91bnQ6IDE1JSAhZGVmYXVsdDtcbiRidG4tYWN0aXZlLWJvcmRlci10aW50LWFtb3VudDogMTUlICFkZWZhdWx0O1xuXG4vLyAqIEZvcm1zXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBmb3JtLXRleHQtdmFyaWFibGVzXG4kZm9ybS10ZXh0LW1hcmdpbi10b3A6IDAuM3JlbSAhZGVmYXVsdDtcbiRmb3JtLXRleHQtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGZvcm0tdGV4dC1jb2xvcjogJHRleHQtbGlnaHQgIWRlZmF1bHQ7XG4vLyBzY3NzLWRvY3MtZW5kIGZvcm0tdGV4dC12YXJpYWJsZXNcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGZvcm0tbGFiZWwtdmFyaWFibGVzXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IDAuNzVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogNTAwICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtY29sb3I6ICRoZWFkaW5ncy1jb2xvciAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWxldHRlci1zcGFjaW5nOiBpbmhlcml0ICFkZWZhdWx0OyAvLyhDKVxuJGZvcm0tbGFiZWwtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDsgLy8oQylcbi8vIHNjc3MtZG9jcy1lbmQgZm9ybS1sYWJlbC12YXJpYWJsZXNcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGZvcm0taW5wdXQtdmFyaWFibGVzXG4kaW5wdXQtcGFkZGluZy14OiAwLjg3NXJlbSAhZGVmYXVsdDtcbiRpbnB1dC1saW5lLWhlaWdodDogJGlucHV0LWJ0bi1saW5lLWhlaWdodCAhZGVmYXVsdDtcblxuJGlucHV0LXBhZGRpbmcteC1zbTogMC42MjVyZW0gIWRlZmF1bHQ7XG5cbiRpbnB1dC1wYWRkaW5nLXgtbGc6IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbiRpbnB1dC1iZzogJHdoaXRlICFkZWZhdWx0O1xuJGlucHV0LWRpc2FibGVkLWJnOiByZ2JhLXRvLWhleCgkZ3JheS0xMDAsICRyZ2JhLXRvLWhleC1iZykgIWRlZmF1bHQ7XG5cbiRpbnB1dC1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiByZ2JhLXRvLWhleCgkZ3JheS0yMDAsICRyZ2JhLXRvLWhleC1iZykgIWRlZmF1bHQ7XG5cbiRpbnB1dC1ob3Zlci1ib3JkZXItY29sb3I6IHJnYmEtdG8taGV4KCRncmF5LTIwMCwgJHJnYmEtdG8taGV4LWJnKSAhZGVmYXVsdDsgLy8gKEMpXG5cbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3Itc2NhbGU6IDUwJSAhZGVmYXVsdDsgLy8oQylcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6IHRpbnQtY29sb3IoJGNvbXBvbmVudC1hY3RpdmUtYmcsICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4kaW5wdXQtcGxhY2Vob2xkZXItdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2U7XG4kaW5wdXQtcGxhY2Vob2xkZXItdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4KTtcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogcmdiYS10by1oZXgoJGdyYXktNDAwLCAkcmdiYS10by1oZXgtYmcpICFkZWZhdWx0O1xuXG4kaW5wdXQtaGVpZ2h0LWlubmVyOiBweC10by1yZW0oXG4gIGZsb29yKHJlbS10by1weCgoJGlucHV0LWJ0bi1mb250LXNpemUgKiAkaW5wdXQtYnRuLWxpbmUtaGVpZ2h0KSArICgkaW5wdXQtYnRuLXBhZGRpbmcteSAqIDIpKSlcbikgIWRlZmF1bHQ7XG4kaW5wdXQtaGVpZ2h0LWlubmVyLXNtOiBweC10by1yZW0oXG4gIGZsb29yKHJlbS10by1weCgoJGlucHV0LWJ0bi1mb250LXNpemUtc20gKiAkaW5wdXQtYnRuLWxpbmUtaGVpZ2h0LXNtKSArICgkaW5wdXQtYnRuLXBhZGRpbmcteS1zbSAqIDIpKSlcbikgIWRlZmF1bHQ7IC8vIChDKVxuJGlucHV0LWhlaWdodC1pbm5lci1sZzogcHgtdG8tcmVtKFxuICBmbG9vcihyZW0tdG8tcHgoKCRmb250LXNpemUtbGcgKiAkbGluZS1oZWlnaHQtbGcpICsgKCRpbnB1dC1idG4tcGFkZGluZy15LWxnICogMikpKVxuKSAhZGVmYXVsdDsgLy8gKEMpXG4vLyBzY3NzLWRvY3MtZW5kIGZvcm0taW5wdXQtdmFyaWFibGVzXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBmb3JtLWNoZWNrLXZhcmlhYmxlc1xuJGZvcm0tY2hlY2staW5wdXQtd2lkdGg6IDEuMmVtICFkZWZhdWx0O1xuJGZvcm0tZGF0YXRhYmxlcy1jaGVjay1pbnB1dC1zaXplOiAxOHB4ICFkZWZhdWx0OyAvLyAoQykgRm9yIGRhdGF0YWJsZXMgd2l0aCBjaGVja2JveC0gdXBkYXRlIGFjY29yZGluZyB0byAkZm9ybS1jaGVjay1pbnB1dC13aWR0aFxuXG4kZm9ybS1jaGVjay1pbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4kZm9ybS1jaGVjay1sYWJlbC1kaXNhYmxlZC1jb2xvcjogJHRleHQtbXV0ZWQgIWRlZmF1bHQ7IC8vIChDKVJcblxuJGZvcm0tY2hlY2staW5wdXQtY2hlY2tlZC1jb2xvcjogJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kZm9ybS1jaGVjay1pbnB1dC1jaGVja2VkLWJnLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyMCAyMCc+PHBhdGggZmlsbD0nbm9uZScgc3Ryb2tlPScjeyRmb3JtLWNoZWNrLWlucHV0LWNoZWNrZWQtY29sb3J9JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nTTYgMTBsMyAzbDYtNicvPjwvc3ZnPlwiKSAhZGVmYXVsdDtcbiRmb3JtLWNoZWNrLXJhZGlvLWNoZWNrZWQtYmctaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nLTQgLTQgOCA4Jz48Y2lyY2xlIHI9JzEuNScgZmlsbD0nI3skZm9ybS1jaGVjay1pbnB1dC1jaGVja2VkLWNvbG9yfScvPjwvc3ZnPlwiKSAhZGVmYXVsdDtcblxuJGZvcm0tY2hlY2staW5wdXQtaW5kZXRlcm1pbmF0ZS1jb2xvcjogJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kZm9ybS1jaGVjay1pbnB1dC1pbmRldGVybWluYXRlLWJnLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyMCAyMCc+PHBhdGggZmlsbD0nbm9uZScgc3Ryb2tlPScjeyRmb3JtLWNoZWNrLWlucHV0LWluZGV0ZXJtaW5hdGUtY29sb3J9JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nTTYgMTBoOCcvPjwvc3ZnPlwiKSAhZGVmYXVsdDtcblxuJGZvcm0tY2hlY2staW5wdXQtZGlzYWJsZWQtYmc6ICRpbnB1dC1kaXNhYmxlZC1iZyAhZGVmYXVsdDtcbi8vIHNjc3MtZG9jcy1lbmQgZm9ybS1jaGVjay12YXJpYWJsZXNcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGZvcm0tc3dpdGNoLXZhcmlhYmxlc1xuJGZvcm0tc3dpdGNoLWNvbG9yOiAkZ3JheS0zMDAgIWRlZmF1bHQ7XG4kZm9ybS1zd2l0Y2gtd2lkdGg6IDJlbSAhZGVmYXVsdDtcbiRmb3JtLXN3aXRjaC1wYWRkaW5nLXN0YXJ0OiAkZm9ybS1zd2l0Y2gtd2lkdGggKyAwLjVlbSAhZGVmYXVsdDtcblxuJGZvcm0tc3dpdGNoLWNoZWNrZWQtYmctcG9zaXRpb24tcnRsOiBsZWZ0IGNlbnRlciAhZGVmYXVsdDsgLy8oQylcbi8vIHNjc3MtZG9jcy1lbmQgZm9ybS1zd2l0Y2gtdmFyaWFibGVzXG5cbi8vaW5wdXQtZ3JvdXAtdmFyaWFibGVzXG4kaW5wdXQtZ3JvdXAtYWRkb24tY29sb3I6ICRpbnB1dC1jb2xvciAhZGVmYXVsdDtcbiRpbnB1dC1ncm91cC1hZGRvbi1iZzogJGlucHV0LWJnICFkZWZhdWx0O1xuJGlucHV0LWdyb3VwLWFkZG9uLWJvcmRlci1jb2xvcjogJGlucHV0LWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbi8vIHNjc3MtZG9jcy1lbmQgaW5wdXQtZ3JvdXAtdmFyaWFibGVzXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBmb3JtLXNlbGVjdC12YXJpYWJsZXNcbiRmb3JtLXNlbGVjdC1wYWRkaW5nLXk6ICRpbnB1dC1idG4tcGFkZGluZy15ICFkZWZhdWx0O1xuJGZvcm0tc2VsZWN0LXBhZGRpbmcteDogJGlucHV0LXBhZGRpbmcteCAhZGVmYXVsdDtcbiRmb3JtLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZzogJGZvcm0tc2VsZWN0LXBhZGRpbmcteCArIDFyZW0gIWRlZmF1bHQ7XG4kZm9ybS1zZWxlY3QtZGlzYWJsZWQtY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJGZvcm0tc2VsZWN0LWRpc2FibGVkLWJnOiAkaW5wdXQtZGlzYWJsZWQtYmcgIWRlZmF1bHQ7XG4kZm9ybS1zZWxlY3QtYmctc2l6ZTogMTdweCAxMnB4ICFkZWZhdWx0O1xuJGZvcm0tc2VsZWN0LWluZGljYXRvci1jb2xvcjogJGdyYXktNjAwICFkZWZhdWx0O1xuJGZvcm0tc2VsZWN0LWluZGljYXRvcjogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnPjxwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nI3skZm9ybS1zZWxlY3QtaW5kaWNhdG9yLWNvbG9yfScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzInIGQ9J00yIDVsNiA2IDYtNicvPjwvc3ZnPlwiKSAhZGVmYXVsdDtcbiRmb3JtLXNlbGVjdC1pbmRpY2F0b3ItcnRsOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNic+PHBhdGggZmlsbD0nbm9uZScgc3Ryb2tlPScjeyRmb3JtLXNlbGVjdC1pbmRpY2F0b3ItY29sb3J9JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nTTIgNWw2IDYgNi02Jy8+PC9zdmc+XCIpICFkZWZhdWx0OyAvLyAoQylcblxuJGZvcm0tc2VsZWN0LWZvY3VzLWJveC1zaGFkb3c6ICRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdyAhZGVmYXVsdDtcblxuJGZvcm0tc2VsZWN0LXBhZGRpbmcteS1zbTogJGlucHV0LWJ0bi1wYWRkaW5nLXktc20gIWRlZmF1bHQ7XG4kZm9ybS1zZWxlY3QtcGFkZGluZy14LXNtOiAkaW5wdXQtcGFkZGluZy14LXNtICFkZWZhdWx0O1xuXG4kZm9ybS1zZWxlY3QtcGFkZGluZy15LWxnOiAkaW5wdXQtYnRuLXBhZGRpbmcteS1sZyAhZGVmYXVsdDtcbiRmb3JtLXNlbGVjdC1wYWRkaW5nLXgtbGc6ICRpbnB1dC1wYWRkaW5nLXgtbGcgIWRlZmF1bHQ7XG4vLyBzY3NzLWRvY3MtZW5kIGZvcm0tc2VsZWN0LXZhcmlhYmxlc1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgZm9ybS1yYW5nZS12YXJpYWJsZXNcbiRmb3JtLXJhbmdlLXRyYWNrLWhlaWdodDogMC4zNzVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1yYW5nZS10cmFjay1iZzogcmdiYS10by1oZXgoJGdyYXktMTAwLCAkcmdiYS10by1oZXgtYmcpICFkZWZhdWx0O1xuJGZvcm0tcmFuZ2UtdHJhY2stYm94LXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcbiRmb3JtLXJhbmdlLXRyYWNrLWRpc2FibGVkLWJnOiAkZ3JheS01MCAhZGVmYXVsdDsgLy8gKEMpXG5cbiRmb3JtLXJhbmdlLXRodW1iLXdpZHRoOiAwLjg3NXJlbSAhZGVmYXVsdDtcbiRmb3JtLXJhbmdlLXRodW1iLWhlaWdodDogJGZvcm0tcmFuZ2UtdGh1bWItd2lkdGggIWRlZmF1bHQ7XG4kZm9ybS1yYW5nZS10aHVtYi1iZzogJHdoaXRlICFkZWZhdWx0O1xuJGZvcm0tcmFuZ2UtdGh1bWItYm94LXNoYWRvdzogMCAwIDZweCAwICRncmF5LTQwMCAhZGVmYXVsdDtcbiRmb3JtLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3c6IDAgMCA4cHggMHB4ICRncmF5LTQwMCAhZGVmYXVsdDtcbiRmb3JtLXJhbmdlLXRodW1iLWFjdGl2ZS1iZzogJGZvcm0tcmFuZ2UtdGh1bWItYmcgIWRlZmF1bHQ7XG4kZm9ybS1yYW5nZS10aHVtYi1kaXNhYmxlZC1iZzogcmdiYS10by1oZXgoJGdyYXktMjAwLCAkcmdiYS10by1oZXgtYmcpICFkZWZhdWx0O1xuLy8gc2Nzcy1kb2NzLWVuZCBmb3JtLXJhbmdlLXZhcmlhYmxlc1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgZm9ybS1mbG9hdGluZy12YXJpYWJsZXNcbiRmb3JtLWZsb2F0aW5nLWxhYmVsLW9wYWNpdHk6IDAuNzUgIWRlZmF1bHQ7XG4kZm9ybS1mbG9hdGluZy10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1pbi1vdXQsIHRyYW5zZm9ybSAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuJGZvcm0tZmxvYXRpbmctbGFiZWwtdHJhbnNmb3JtLXJ0bDogc2NhbGUoMC44NSkgdHJhbnNsYXRlWSgtMC41cmVtKSB0cmFuc2xhdGVYKC0wLjE1cmVtKSAhZGVmYXVsdDsgLy8gKEMpXG4vLyBzY3NzLWRvY3MtZW5kIGZvcm0tZmxvYXRpbmctdmFyaWFibGVzXG5cbi8vIEZvcm0gdmFsaWRhdGlvblxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgZm9ybS1mZWVkYmFjay12YXJpYWJsZXNcbiRmb3JtLWZlZWRiYWNrLXZhbGlkLWNvbG9yOiAkc3VjY2VzcyAhZGVmYXVsdDtcbiRmb3JtLWZlZWRiYWNrLWludmFsaWQtY29sb3I6ICRkYW5nZXIgIWRlZmF1bHQ7XG5cbiRmb3JtLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmc6ICRmb3JtLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZyArICRpbnB1dC1oZWlnaHQtaW5uZXIgIWRlZmF1bHQ7IC8vIChDKVxuJGZvcm0tc2VsZWN0LWZlZWRiYWNrLWljb24tcGFkZGluZy1zbTogJGZvcm0tc2VsZWN0LWluZGljYXRvci1wYWRkaW5nICsgJGlucHV0LWhlaWdodC1pbm5lci1zbSAhZGVmYXVsdDsgLy8gKEMpXG4kZm9ybS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nLWxnOiAkZm9ybS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmcgKyAkaW5wdXQtaGVpZ2h0LWlubmVyLWxnICFkZWZhdWx0OyAvLyAoQylcbi8vIHNjc3MtZG9jcy1lbmQgZm9ybS1mZWVkYmFjay12YXJpYWJsZXNcblxuLy8gKiBOYXZzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiRuYXYtc3BhY2VyOiAwLjEyNXJlbSAhZGVmYXVsdDsgLy8gKEMpXG5cbiRuYXYtbGluay1wYWRkaW5nLXk6IDAuNXJlbSAhZGVmYXVsdDtcbiRuYXYtbGluay1wYWRkaW5nLXg6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kbmF2LWxpbmstY29sb3I6ICR0ZXh0LW11dGVkLWhvdmVyICFkZWZhdWx0O1xuJG5hdi1saW5rLWRpc2FibGVkLWNvbG9yOiAkdGV4dC1saWdodGVyICFkZWZhdWx0O1xuJG5hdi1saW5rLWxpbmUtaGVpZ2h0OiAkY29tcG9uZW50LWxpbmUtaGVpZ2h0ICFkZWZhdWx0OyAvLyAoQylcblxuJG5hdi1saW5rLXBhZGRpbmcteS1sZzogMC44NzVyZW0gIWRlZmF1bHQ7IC8vIChDKVxuJG5hdi1saW5rLXBhZGRpbmcteC1sZzogMS4zMTI1cmVtICFkZWZhdWx0OyAvLyAoQylcbiRuYXYtbGluay1saW5lLWhlaWdodC1sZzogJGxpbmUtaGVpZ2h0LWxnICFkZWZhdWx0OyAvLyAoQylcblxuJG5hdi1saW5rLXBhZGRpbmcteS1zbTogMC4zMTI1cmVtICFkZWZhdWx0OyAvLyAoQylcbiRuYXYtbGluay1wYWRkaW5nLXgtc206IDAuODc1cmVtICFkZWZhdWx0OyAvLyAoQylcbiRuYXYtbGluay1saW5lLWhlaWdodC1zbTogJGxpbmUtaGVpZ2h0LXNtICFkZWZhdWx0OyAvLyAoQylcblxuJG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtbGluay1hY3RpdmUtY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJG5hdi10YWJzLWxpbmstYWN0aXZlLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtYm9yZGVyLWNvbG9yOiAkbmF2LXRhYnMtbGluay1hY3RpdmUtYmcgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtbGluay1hY3RpdmUtYm9yZGVyLWNvbG9yOiAkbmF2LXRhYnMtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdi10YWJzLWJ0bi1iZy1mYWN0b3I6IDAuMTYgIWRlZmF1bHQ7IC8vIChDKVxuJG5hdi10YWJzLWJ0bi1jb2xvcjogJGhlYWRpbmdzLWNvbG9yICFkZWZhdWx0OyAvLyAoQylcbiRuYXYtdGFicy1idG4tYmc6IHJnYmEtdG8taGV4KCRncmF5LTEwMCwgJHJnYmEtdG8taGV4LWJnKSAhZGVmYXVsdDsgLy8gKEMpXG5cbiRuYXYtcGlsbHMtbGluay1hY3RpdmUtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRuYXYtcGlsbHMtbGluay1hY3RpdmUtYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyAqIE5hdmJhclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4kbmF2YmFyLXRvZ2dsZXItcGFkZGluZy15OiAwICFkZWZhdWx0O1xuJG5hdmJhci10b2dnbGVyLXBhZGRpbmcteDogMCAhZGVmYXVsdDtcbiRuYXZiYXItdG9nZ2xlci1mb250LXNpemU6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbiRuYXZiYXItZGFyay1jb2xvcjogcmdiYSgkd2hpdGUsIDAuOCkgIWRlZmF1bHQ7XG4kbmF2YmFyLWRhcmstaG92ZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRuYXZiYXItZGFyay1hY3RpdmUtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRuYXZiYXItZGFyay1kaXNhYmxlZC1jb2xvcjogcmdiYSgkd2hpdGUsIDAuNCkgIWRlZmF1bHQ7XG4kbmF2YmFyLWRhcmstdG9nZ2xlci1pY29uLWJnOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxNHB4JyBoZWlnaHQ9JzExcHgnIHZpZXdCb3g9JzAgMCAxNCAxMScgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyUzRSUzQ2RlZnMlM0UlM0NwYXRoIGQ9J00wLDAgTDE0LDAgTDE0LDEuNzUgTDAsMS43NSBMMCwwIFogTTAsNC4zNzUgTDE0LDQuMzc1IEwxNCw2LjEyNSBMMCw2LjEyNSBMMCw0LjM3NSBaIE0wLDguNzUgTDE0LDguNzUgTDE0LDEwLjUgTDAsMTAuNSBMMCw4Ljc1IFonIGlkPSdwYXRoLTEnJTNFJTNDL3BhdGglM0UlM0MvZGVmcyUzRSUzQ2cgaWQ9J/Cfko4tVUktRWxlbWVudHMnIHN0cm9rZT0nbm9uZScgc3Ryb2tlLXdpZHRoPScxJyBmaWxsPSdub25lJyBmaWxsLXJ1bGU9J2V2ZW5vZGQnJTNFJTNDZyBpZD0nMTIpLU5hdmJhcicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoLTExNzQuMDAwMDAwLCAtMTI5MC4wMDAwMDApJyUzRSUzQ2cgaWQ9J0dyb3VwJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgxMTc0LjAwMDAwMCwgMTI4OC4wMDAwMDApJyUzRSUzQ2cgaWQ9J0ljb24tQ29sb3InIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDAuMDAwMDAwLCAyLjAwMDAwMCknJTNFJTNDdXNlIGZpbGw9JyN7JG5hdmJhci1kYXJrLWNvbG9yfScgeGxpbms6aHJlZj0nJTIzcGF0aC0xJyUzRSUzQy91c2UlM0UlM0N1c2UgZmlsbC1vcGFjaXR5PScwLjEnIGZpbGw9JyN7JG5hdmJhci1kYXJrLWNvbG9yfScgeGxpbms6aHJlZj0nJTIzcGF0aC0xJyUzRSUzQy91c2UlM0UlM0MvZyUzRSUzQy9nJTNFJTNDL2clM0UlM0MvZyUzRSUzQy9zdmclM0VcIikgIWRlZmF1bHQ7XG5cbiRuYXZiYXItbGlnaHQtY29sb3I6ICRncmF5LTUwMCAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtaG92ZXItY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1hY3RpdmUtY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1kaXNhYmxlZC1jb2xvcjogJGdyYXktMzAwICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC10b2dnbGVyLWljb24tYmc6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzE0cHgnIGhlaWdodD0nMTFweCcgdmlld0JveD0nMCAwIDE0IDExJyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnJTNFJTNDZGVmcyUzRSUzQ3BhdGggZD0nTTAsMCBMMTQsMCBMMTQsMS43NSBMMCwxLjc1IEwwLDAgWiBNMCw0LjM3NSBMMTQsNC4zNzUgTDE0LDYuMTI1IEwwLDYuMTI1IEwwLDQuMzc1IFogTTAsOC43NSBMMTQsOC43NSBMMTQsMTAuNSBMMCwxMC41IEwwLDguNzUgWicgaWQ9J3BhdGgtMSclM0UlM0MvcGF0aCUzRSUzQy9kZWZzJTNFJTNDZyBpZD0n8J+Sji1VSS1FbGVtZW50cycgc3Ryb2tlPSdub25lJyBzdHJva2Utd2lkdGg9JzEnIGZpbGw9J25vbmUnIGZpbGwtcnVsZT0nZXZlbm9kZCclM0UlM0NnIGlkPScxMiktTmF2YmFyJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgtMTE3NC4wMDAwMDAsIC0xMjkwLjAwMDAwMCknJTNFJTNDZyBpZD0nR3JvdXAnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDExNzQuMDAwMDAwLCAxMjg4LjAwMDAwMCknJTNFJTNDZyBpZD0nSWNvbi1Db2xvcicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMC4wMDAwMDAsIDIuMDAwMDAwKSclM0UlM0N1c2UgZmlsbD0nI3skbmF2YmFyLWxpZ2h0LWNvbG9yfScgeGxpbms6aHJlZj0nJTIzcGF0aC0xJyUzRSUzQy91c2UlM0UlM0N1c2UgZmlsbC1vcGFjaXR5PScwLjEnIGZpbGw9JyN7JG5hdmJhci1saWdodC1jb2xvcn0nIHhsaW5rOmhyZWY9JyUyM3BhdGgtMSclM0UlM0MvdXNlJTNFJTNDL2clM0UlM0MvZyUzRSUzQy9nJTNFJTNDL2clM0UlM0Mvc3ZnJTNFXCIpICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC10b2dnbGVyLWJvcmRlci1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMDYpICFkZWZhdWx0O1xuXG4vLyAqIERyb3Bkb3duc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuJGRyb3Bkb3duLW1pbi13aWR0aDogMTJyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tcGFkZGluZy15OiAwLjMxMjVyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2UgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYm9yZGVyLWNvbG9yOiAkZmxvYXRpbmctY29tcG9uZW50LWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1kaXZpZGVyLWJnOiAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJveC1zaGFkb3c6ICRmbG9hdGluZy1jb21wb25lbnQtc2hhZG93ICFkZWZhdWx0O1xuXG4kZHJvcGRvd24taW5uZXItYm9yZGVyLXJhZGl1czogMCAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLWxpbmstY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLWxpbmstaG92ZXItYmc6IHJnYmEoJGJsYWNrLCAwLjA0KSAhZGVmYXVsdDtcbiRkcm9wZG93bi1saW5rLWxpbmUtaGVpZ2h0OiAkY29tcG9uZW50LWxpbmUtaGVpZ2h0ICFkZWZhdWx0OyAvLyAoQylcblxuJGRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I6ICR0ZXh0LWxpZ2h0ZXIgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1pdGVtLXBhZGRpbmcteTogMC41MzJyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24taXRlbS1wYWRkaW5nLXg6IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1oZWFkZXItY29sb3I6ICR0ZXh0LW11dGVkICFkZWZhdWx0O1xuXG4kZHJvcGRvd24taGVhZGVyLXBhZGRpbmc6ICRkcm9wZG93bi1pdGVtLXBhZGRpbmcteSAkZHJvcGRvd24taXRlbS1wYWRkaW5nLXggIWRlZmF1bHQ7XG5cbi8vICogUGFnaW5hdGlvblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4kcGFnaW5hdGlvbi1wYWRkaW5nLXk6IDAuNjI1cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy14OiAwLjUxMjVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1wYWRkaW5nLXktc206IDAuMzc1cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy14LXNtOiAwLjI1cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy15LWxnOiAwLjkzNzVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1wYWRkaW5nLXgtbGc6IDAuNXJlbSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tbGluZS1oZWlnaHQ6IDEgIWRlZmF1bHQ7IC8vIChjKVxuXG4kcGFnaW5hdGlvbi1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1iZzogcmdiYS10by1oZXgocmdiYSgkYmxhY2ssIDAuMDgpLCAkcmdiYS10by1oZXgtYmcpICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYm9yZGVyLXdpZHRoOiAwcHggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW1hcmdpbi1zdGFydDogMC4xODc1cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWlubmVyLWNvbG9yICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1mb2N1cy1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1mb2N1cy1jb2xvcjogJHBhZ2luYXRpb24tY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1mb2N1cy1iZzogcmdiYS10by1oZXgocmdiYSgkYmxhY2ssIDAuMTYpLCAkcmdiYS10by1oZXgtYmcpICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjogJHBhZ2luYXRpb24tY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1iZzogcmdiYS10by1oZXgocmdiYSgkYmxhY2ssIDAuMTYpLCAkcmdiYS10by1oZXgtYmcpICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1jb2xvcjogJHRleHQtbXV0ZWQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1iZzogcmdiYS10by1oZXgocmdiYSgkYmxhY2ssIDAuMDQpLCAkcmdiYS10by1oZXgtYmcpICFkZWZhdWx0O1xuXG4vLyAqIENhcmRzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiRjYXJkLXNwYWNlci15OiAkc3BhY2VyICogMS41ICFkZWZhdWx0O1xuJGNhcmQtc3BhY2VyLXg6ICRzcGFjZXIgKiAxLjUgIWRlZmF1bHQ7XG4kY2FyZC10aXRsZS1mb250LXNpemU6ICRoNS1mb250LXNpemUgIWRlZmF1bHQ7IC8vIChDKVxuJGNhcmQtdGl0bGUtc3BhY2VyLXk6ICRzcGFjZXIgKiAwLjg3NSAhZGVmYXVsdDtcbiRjYXJkLXNwYWNlci14LXNtOiAxcmVtICFkZWZhdWx0OyAvLyAoQylcbiRjYXJkLWJvcmRlci13aWR0aDogMDtcbiRjYXJkLWJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxnICFkZWZhdWx0O1xuJGNhcmQtYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSgkYmxhY2ssIDAuMTIpICFkZWZhdWx0O1xuJGNhcmQtaW5uZXItYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWlubmVyLWNvbG9yICFkZWZhdWx0OyAvLyAoQylcbiRjYXJkLWNhcC1wYWRkaW5nLXk6ICRzcGFjZXIgKiAxLjUgIWRlZmF1bHQ7XG5cbiRjYXJkLWNhcC1iZzogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kY2FyZC1pbWctb3ZlcmxheS1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vICogQWNjb3JkaW9uXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiRhY2NvcmRpb24tcGFkZGluZy15OiAwLjc5cmVtICFkZWZhdWx0O1xuJGFjY29yZGlvbi1wYWRkaW5nLXg6IDEuMTI1cmVtICFkZWZhdWx0O1xuJGFjY29yZGlvbi1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLWJ1dHRvbi1jb2xvcjogJGhlYWRpbmdzLWNvbG9yICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLWJvcmRlci13aWR0aDogMCAhZGVmYXVsdDtcbiRhY2NvcmRpb24tYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGFjY29yZGlvbi1idXR0b24tYWN0aXZlLWJnOiAkYWNjb3JkaW9uLWJnICFkZWZhdWx0O1xuJGFjY29yZGlvbi1idXR0b24tYWN0aXZlLWNvbG9yOiAkYWNjb3JkaW9uLWJ1dHRvbi1jb2xvciAhZGVmYXVsdDtcblxuJGFjY29yZGlvbi1pY29uLXdpZHRoOiAwLjc1cmVtICFkZWZhdWx0O1xuJGFjY29yZGlvbi1pY29uLWNvbG9yOiAkYWNjb3JkaW9uLWJ1dHRvbi1jb2xvciAhZGVmYXVsdDtcbiRhY2NvcmRpb24taWNvbi1hY3RpdmUtY29sb3I6ICRhY2NvcmRpb24tYnV0dG9uLWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcblxuJGFjY29yZGlvbi1pY29uLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAhZGVmYXVsdDtcblxuJGFjY29yZGlvbi1idXR0b24taWNvbjogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTInIGhlaWdodD0nMTInIHZpZXdCb3g9JzAgMCAxMiAxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayclM0UlM0NkZWZzJTNFJTNDcGF0aCBpZD0nYScgZD0nbTEuNTMyIDEyIDYuMTgyLTYtNi4xODItNkwwIDEuNDg3IDQuNjUgNiAwIDEwLjUxM3onLyUzRSUzQy9kZWZzJTNFJTNDZyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgyLjU3MSknIGZpbGw9J25vbmUnIGZpbGwtcnVsZT0nZXZlbm9kZCclM0UlM0N1c2UgZmlsbD0nJTIzNDM1OTcxJyB4bGluazpocmVmPSclMjNhJy8lM0UlM0N1c2UgZmlsbC1vcGFjaXR5PScuMScgZmlsbD0nI3skYWNjb3JkaW9uLWljb24tY29sb3J9JyB4bGluazpocmVmPSclMjNhJy8lM0UlM0MvZyUzRSUzQy9zdmclM0UlMEFcIikgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLWJ1dHRvbi1hY3RpdmUtaWNvbjogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTInIGhlaWdodD0nMTInIHZpZXdCb3g9JzAgMCAxMiAxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayclM0UlM0NkZWZzJTNFJTNDcGF0aCBpZD0nYScgZD0nbTEuNTMyIDEyIDYuMTgyLTYtNi4xODItNkwwIDEuNDg3IDQuNjUgNiAwIDEwLjUxM3onLyUzRSUzQy9kZWZzJTNFJTNDZyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgyLjU3MSknIGZpbGw9J25vbmUnIGZpbGwtcnVsZT0nZXZlbm9kZCclM0UlM0N1c2UgZmlsbD0nJTIzNDM1OTcxJyB4bGluazpocmVmPSclMjNhJy8lM0UlM0N1c2UgZmlsbC1vcGFjaXR5PScuMScgZmlsbD0nI3skYWNjb3JkaW9uLWljb24tYWN0aXZlLWNvbG9yfScgeGxpbms6aHJlZj0nJTIzYScvJTNFJTNDL2clM0UlM0Mvc3ZnJTNFJTBBXCIpICFkZWZhdWx0O1xuXG4vLyAqIFRvb2x0aXBzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiR0b29sdGlwLWJnOiAkZGFyayAhZGVmYXVsdDtcbiR0b29sdGlwLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG4kdG9vbHRpcC1ib3gtc2hhZG93OiAkYm94LXNoYWRvdy1zbSAhZGVmYXVsdDsgLy8gKEMpXG4kdG9vbHRpcC1wYWRkaW5nLXk6IDAuMjVyZW0gIWRlZmF1bHQ7XG4kdG9vbHRpcC1wYWRkaW5nLXg6IDAuN3JlbSAhZGVmYXVsdDtcbiR0b29sdGlwLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJHRvb2x0aXAtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc20gIWRlZmF1bHQ7XG5cbi8vICogUG9wb3ZlcnNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJHBvcG92ZXItYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiRwb3BvdmVyLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJHBvcG92ZXItYm94LXNoYWRvdzogJGZsb2F0aW5nLWNvbXBvbmVudC1zaGFkb3cgIWRlZmF1bHQ7XG4kcG9wb3Zlci1ib3JkZXItd2lkdGg6IDBweCAhZGVmYXVsdDtcbiRwb3BvdmVyLWhlYWRlci1iZzogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kcG9wb3Zlci1oZWFkZXItcGFkZGluZy15OiAwICFkZWZhdWx0O1xuJHBvcG92ZXItaGVhZGVyLXBhZGRpbmcteDogMS4xMjVyZW0gIWRlZmF1bHQ7XG4kcG9wb3Zlci1oZWFkZXItZm9udC1zaXplOiAkaDUtZm9udC1zaXplICFkZWZhdWx0OyAvLyAoQylcblxuJHBvcG92ZXItYm9keS1wYWRkaW5nLXk6IDEuMTI1cmVtICFkZWZhdWx0O1xuJHBvcG92ZXItYm9keS1wYWRkaW5nLXg6ICRwb3BvdmVyLWJvZHktcGFkZGluZy15ICFkZWZhdWx0O1xuJHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I6ICRwb3BvdmVyLWJnICFkZWZhdWx0O1xuXG4vLyAqIFRvYXN0c1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4kdG9hc3QtcGFkZGluZy14OiAxLjI1cmVtICFkZWZhdWx0O1xuJHRvYXN0LXBhZGRpbmcteTogJHRvYXN0LXBhZGRpbmcteCAhZGVmYXVsdDtcbiR0b2FzdC1mb250LXNpemU6ICRmb250LXNpemUtYmFzZSAhZGVmYXVsdDtcbiR0b2FzdC1iYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9hc3QtYmctZmFjdG9yOiAwLjg1ICFkZWZhdWx0OyAvLyAoQylcbiR0b2FzdC1ib3JkZXItd2lkdGg6IDAgIWRlZmF1bHQ7XG4kdG9hc3QtYm9yZGVyLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kdG9hc3QtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGcgIWRlZmF1bHQ7XG4kdG9hc3QtYm94LXNoYWRvdzogJGZsb2F0aW5nLWNvbXBvbmVudC1zaGFkb3cgIWRlZmF1bHQ7XG5cbiR0b2FzdC1oZWFkZXItY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJHRvYXN0LWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiR0b2FzdC1oZWFkZXItYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiR0b2FzdC1zcGFjaW5nOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4kdG9hc3QtYnRuLWNsb3NlLXNpemU6IDAuNjI1ZW0gIWRlZmF1bHQ7IC8vIChDKVxuXG4vLyAqIEJhZGdlc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4kYmFkZ2UtZm9udC1zaXplOiAwLjgxMjVlbSAhZGVmYXVsdDtcbiRiYWRnZS1mb250LXdlaWdodDogNTAwICFkZWZhdWx0O1xuJGJhZGdlLXBhZGRpbmcteTogMC41MmVtICFkZWZhdWx0O1xuJGJhZGdlLXBhZGRpbmcteDogMC41OTNlbSAhZGVmYXVsdDtcbiRiYWRnZS1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbSAhZGVmYXVsdDtcblxuJGJhZGdlLWhlaWdodDogMS41cmVtICFkZWZhdWx0OyAvLyAoQylcbiRiYWRnZS13aWR0aDogMS41cmVtICFkZWZhdWx0OyAvLyAoQylcbiRiYWRnZS1saW5lLWhlaWdodDogMC43NSAhZGVmYXVsdDsgLy8gKEMpXG5cbi8vICogTW9kYWxzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4kbW9kYWwtaW5uZXItcGFkZGluZzogJHNwYWNlciAqIDEuNSAhZGVmYXVsdDtcbiRtb2RhbC1kaWFsb2ctbWFyZ2luOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbiRtb2RhbC1jb250ZW50LWJvcmRlci13aWR0aDogMHB4ICFkZWZhdWx0O1xuJG1vZGFsLWNvbnRlbnQtYm94LXNoYWRvdy14czogMCAycHggMTZweCAwIHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LWJveC1zaGFkb3ctc20tdXA6IDAgMnB4IDIwcHggMCByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aDogMHB4ICFkZWZhdWx0O1xuXG4kbW9kYWwtaGVhZGVyLXBhZGRpbmcteTogMC4yNXJlbSAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItcGFkZGluZy14OiAkbW9kYWwtaW5uZXItcGFkZGluZyAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItcGFkZGluZzogJG1vZGFsLWhlYWRlci1wYWRkaW5nLXggJG1vZGFsLWhlYWRlci1wYWRkaW5nLXggJG1vZGFsLWhlYWRlci1wYWRkaW5nLXkgIWRlZmF1bHQ7IC8vIEtlZXAgdGhpcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiRtb2RhbC1mb290ZXItcGFkZGluZzogJG1vZGFsLWhlYWRlci1wYWRkaW5nLXkgJG1vZGFsLWhlYWRlci1wYWRkaW5nLXggJG1vZGFsLWhlYWRlci1wYWRkaW5nLXggIWRlZmF1bHQ7IC8vIChDKVxuXG4kbW9kYWwtbGc6IDUwcmVtICFkZWZhdWx0O1xuJG1vZGFsLW1kOiAzNXJlbSAhZGVmYXVsdDtcbiRtb2RhbC1zbTogMjIuNXJlbSAhZGVmYXVsdDtcblxuJG1vZGFsLWZhZGUtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDBweCkgc2NhbGUoMC44KSAhZGVmYXVsdDtcbiRtb2RhbC1zaG93LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKSAhZGVmYXVsdDtcblxuJG1vZGFsLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzICFkZWZhdWx0OyAvLyAoQylcbiRtb2RhbC10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG1vZGFsLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbiRtb2RhbC1zaW1wbGUtcGFkZGluZzogM3JlbSAhZGVmYXVsdDsgLy8gKEMpXG4kbW9kYWwtc2ltcGxlLWNsb3NlLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0OyAvLyAoQylcblxuLy8gKiBBbGVydHNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJGFsZXJ0LXBhZGRpbmcteTogJHNwYWNlciAqIDAuOTM3NSAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLXg6ICRzcGFjZXIgKiAwLjkzNzUgIWRlZmF1bHQ7XG4kYWxlcnQtYm9yZGVyLXdpZHRoOiAwICFkZWZhdWx0O1xuJGFsZXJ0LWJnLXNjYWxlOiAtODQlICFkZWZhdWx0O1xuJGFsZXJ0LWJvcmRlci1zY2FsZTogLTcwJSAhZGVmYXVsdDtcbiRhbGVydC1jb2xvci1zY2FsZTogMCUgIWRlZmF1bHQ7XG5cbi8vICogUHJvZ3Jlc3MgYmFyc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAwLjc1cmVtICFkZWZhdWx0O1xuJHByb2dyZXNzLWZvbnQtc2l6ZTogMC42MjVyZW0gIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmc6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiRwcm9ncmVzcy1ib3JkZXItcmFkaXVzOiAxMHJlbSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8gTGlzdCBncm91cFxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgbGlzdC1ncm91cC12YXJpYWJsZXNcbiRsaXN0LWdyb3VwLWNvbG9yOiAkYm9keS1jb2xvciAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWl0ZW0tcGFkZGluZy15OiAwLjU4cmVtICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXg6IDAuOTM3NXJlbSAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWl0ZW0tY29sb3Itc2NhbGU6IDAgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1sZyAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWl0ZW0tYmctaG92ZXItc2NhbGU6IDUlICFkZWZhdWx0OyAvLyAgKGMpXG5cbiRsaXN0LWdyb3VwLWhvdmVyLWJnOiByZ2JhKCRibGFjaywgMC4wNikgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1hY3RpdmUtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I6ICR0ZXh0LWxpZ2h0ZXIgIWRlZmF1bHQ7XG5cbiRsaXN0LWdyb3VwLWFjdGlvbi1jb2xvcjogJHRleHQtbXV0ZWQtaG92ZXIgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1hY3Rpb24taG92ZXItY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1iZzogJGdyYXktNTAgIWRlZmF1bHQ7XG4vLyBzY3NzLWRvY3MtZW5kIGxpc3QtZ3JvdXAtdmFyaWFibGVzXG5cbi8vICogSW1hZ2UgdGh1bWJuYWlsc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4kdGh1bWJuYWlsLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiR0aHVtYm5haWwtYm9yZGVyLXdpZHRoOiAwcHggIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM6IDBweCAhZGVmYXVsdDtcblxuLy8gKiBGaWd1cmVzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiRmaWd1cmUtY2FwdGlvbi1jb2xvcjogJHRleHQtbXV0ZWQgIWRlZmF1bHQ7XG5cbi8vICogQnJlYWRjcnVtYnNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJGJyZWFkY3J1bWItcGFkZGluZy15OiAwICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItcGFkZGluZy14OiAwICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItaXRlbS1wYWRkaW5nLXg6IDAuNXJlbSAhZGVmYXVsdDtcbiRicmVhZGNydW1iLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1iZzogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAkdGV4dC1tdXRlZCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyOiAnLycgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyLWZsaXBwZWQ6ICdcXFxcJyAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWNvbG9yOiAkYm9keS1jb2xvciAhZGVmYXVsdDsgLy8gKEMpXG5cbi8vICogQ2Fyb3VzZWxcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiRjYXJvdXNlbC1jb250cm9sLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY29udHJvbC13aWR0aDogMTQlICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtaWNvbi13aWR0aDogMi41NXJlbSAhZGVmYXVsdDtcbiRjYXJvdXNlbC1jb250cm9sLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY29udHJvbC1ob3Zlci1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24tYmc6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgc3R5bGU9J2ZpbGw6ICN7JGNhcm91c2VsLWNvbnRyb2wtY29sb3J9O3RyYW5zZm9ybTogO21zRmlsdGVyOjsnJTNFJTNDcGF0aCBkPSdNMTMuMjkzIDYuMjkzIDcuNTg2IDEybDUuNzA3IDUuNzA3IDEuNDE0LTEuNDE0TDEwLjQxNCAxMmw0LjI5My00LjI5M3onJTNFJTNDL3BhdGglM0UlM0Mvc3ZnJTNFXCIpICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uLWJnOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIHN0eWxlPSdmaWxsOiAjeyRjYXJvdXNlbC1jb250cm9sLWNvbG9yfTt0cmFuc2Zvcm06IDttc0ZpbHRlcjo7JyUzRSUzQ3BhdGggZD0nTTEwLjcwNyAxNy43MDcgMTYuNDE0IDEybC01LjcwNy01LjcwNy0xLjQxNCAxLjQxNEwxMy41ODYgMTJsLTQuMjkzIDQuMjkzeiclM0UlM0MvcGF0aCUzRSUzQy9zdmclM0VcIikgIWRlZmF1bHQ7XG5cbi8vIFNwaW5uZXJzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiRzcGlubmVyLXdpZHRoLWxnOiAzcmVtICFkZWZhdWx0OyAvLyAoQylcbiRzcGlubmVyLWhlaWdodC1sZzogJHNwaW5uZXItd2lkdGgtbGcgIWRlZmF1bHQ7IC8vIChDKVxuJHNwaW5uZXItYm9yZGVyLXdpZHRoLWxnOiAwLjNlbSAhZGVmYXVsdDsgLy8gKEMpXG5cbi8vICogQ2xvc2Vcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJGJ0bi1jbG9zZS13aWR0aDogMC44ZW0gIWRlZmF1bHQ7XG4kYnRuLWNsb3NlLWhlaWdodDogJGJ0bi1jbG9zZS13aWR0aCAhZGVmYXVsdDtcbiRidG4tY2xvc2UtY29sb3I6ICR0ZXh0LW11dGVkICFkZWZhdWx0O1xuJGJ0bi1jbG9zZS1iZzogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTUwcHgnIGhlaWdodD0nMTUxcHgnIHZpZXdCb3g9JzAgMCAxNTAgMTUxJyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnJTNFJTNDZGVmcyUzRSUzQ3BvbHlnb24gaWQ9J3BhdGgtMScgcG9pbnRzPScxMzEuMjUxNjU3IDAgNzQuOTkzMzcwNSA1Ni4yNSAxOC43NDgzNDI2IDAgMCAxOC43NSA1Ni4yNDUwMjc4IDc1IDAgMTMxLjI1IDE4Ljc0ODM0MjYgMTUwIDc0Ljk5MzM3MDUgOTMuNzUgMTMxLjI1MTY1NyAxNTAgMTUwIDEzMS4yNSA5My43NTQ5NzIyIDc1IDE1MCAxOC43NSclM0UlM0MvcG9seWdvbiUzRSUzQy9kZWZzJTNFJTNDZyBpZD0n8J+OqC0lNUJTZXR1cCU1RDotQ29sb3JzLSZhbXA7LVNoYWRvd3MnIHN0cm9rZT0nbm9uZScgc3Ryb2tlLXdpZHRoPScxJyBmaWxsPSdub25lJyBmaWxsLXJ1bGU9J2V2ZW5vZGQnJTNFJTNDZyBpZD0nQXJ0Ym9hcmQnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKC0yMjUuMDAwMDAwLCAtMjUwLjAwMDAwMCknJTNFJTNDZyBpZD0nSWNvbi1Db2xvcicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMjI1LjAwMDAwMCwgMjUwLjUwMDAwMCknJTNFJTNDdXNlIGZpbGw9JyN7JGJ0bi1jbG9zZS1jb2xvcn0nIHhsaW5rOmhyZWY9JyUyM3BhdGgtMSclM0UlM0MvdXNlJTNFJTNDdXNlIGZpbGwtb3BhY2l0eT0nMC41JyBmaWxsPScjeyRidG4tY2xvc2UtY29sb3J9JyB4bGluazpocmVmPSclMjNwYXRoLTEnJTNFJTNDL3VzZSUzRSUzQy9nJTNFJTNDL2clM0UlM0MvZyUzRSUzQy9zdmclM0VcIikgIWRlZmF1bHQ7XG4kYnRuLWNsb3NlLWZvY3VzLXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcbiRidG4tY2xvc2Utb3BhY2l0eTogMC45NSAhZGVmYXVsdDtcbiRidG4tY2xvc2UtaG92ZXItb3BhY2l0eTogMC45NSAhZGVmYXVsdDtcbiRidG4tY2xvc2UtZm9jdXMtb3BhY2l0eTogMC45NSAhZGVmYXVsdDtcblxuJGNsb3NlLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7IC8vIChDKVxuXG4vLyAqIE9mZmNhbnZhc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgb2ZmY2FudmFzLXZhcmlhYmxlc1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjI1cyAhZGVmYXVsdDtcbi8vIHNjc3MtZG9jcy1lbmQgb2ZmY2FudmFzLXZhcmlhYmxlc1xuXG4vLyBVdGlsaXRpZXNcbiRvdmVyZmxvd3M6IGF1dG8sIGhpZGRlbiwgc2Nyb2xsLCB2aXNpYmxlICFkZWZhdWx0O1xuXG4vLyBDb25maWdcbiRydGwtc3VwcG9ydDogZmFsc2UgIWRlZmF1bHQ7XG4kZGFyay1zdHlsZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vICogQ2hldnJvbiBJY29uc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJGNoZXZyb24tdXA6IFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTBweCcgaGVpZ2h0PSc2cHgnIHZpZXdCb3g9JzAgMCAxMCA2JyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnJTNFJTNDZGVmcyUzRSUzQ3BvbHlnb24gaWQ9J3BhdGgtMScgcG9pbnRzPScwIDQuNTc5NjEzNjIgMS4yMzg4Mjk1MSA1LjcxNDI4NTcxIDUgMi4yNjkzNDQxOSA4Ljc2MTE3MDQ5IDUuNzE0Mjg1NzEgMTAgNC41Nzk2MTM2MiA1IDAnJTNFJTNDL3BvbHlnb24lM0UlM0MvZGVmcyUzRSUzQ2cgaWQ9J+Kame+4jy1TeW1ib2xzJyBzdHJva2U9J25vbmUnIHN0cm9rZS13aWR0aD0nMScgZmlsbD0nbm9uZScgZmlsbC1ydWxlPSdldmVub2RkJyUzRSUzQ2cgaWQ9JzMxKS1EYXRhVGFibGVzJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgtMjg5LjAwMDAwMCwgLTY0LjAwMDAwMCknJTNFJTNDZyBpZD0nVGFibGUtQmFzaWMnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDAuMDAwMDAwLCA1Mi4wMDAwMDApJyUzRSUzQ2cgaWQ9J1RhYmxlLUhlYWRlcicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMTkuMDAwMDAwLCAxMC4wMDAwMDApJyUzRSUzQ2cgaWQ9J0dyb3VwJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgyNzAuMDAwMDAwLCAwLjAwMDAwMCknJTNFJTNDZyBpZD0nSWNvbi1Db2xvcicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMC4wMDAwMDAsIDIuMTQyODU3KSclM0UlM0N1c2UgZmlsbD0nI3tzdHItcmVwbGFjZSgje3JnYmEtdG8taGV4KCRncmF5LTUwMCwkcmdiYS10by1oZXgtYmcpfSwnIycsICclMjMnKX0nIHhsaW5rOmhyZWY9JyUyM3BhdGgtMSclM0UlM0MvdXNlJTNFJTNDdXNlIGZpbGwtb3BhY2l0eT0nMC41JyBmaWxsPScje3N0ci1yZXBsYWNlKCN7cmdiYS10by1oZXgoJGdyYXktNTAwLCRyZ2JhLXRvLWhleC1iZyl9LCcjJywgJyUyMycpfScgeGxpbms6aHJlZj0nJTIzcGF0aC0xJyUzRSUzQy91c2UlM0UlM0MvZyUzRSUzQy9nJTNFJTNDL2clM0UlM0MvZyUzRSUzQy9nJTNFJTNDL2clM0UlM0Mvc3ZnJTNFXCI7XG4kY2hldnJvbi1kb3duOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzEwcHgnIGhlaWdodD0nNnB4JyB2aWV3Qm94PScwIDAgMTAgNicgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyUzRSUzQ2RlZnMlM0UlM0Nwb2x5Z29uIGlkPSdwYXRoLTEnIHBvaW50cz0nOC43NjExNzA0OSAwIDUgMy40NDQ5NDE1MiAxLjIzODgyOTUxIDAgMCAxLjEzNDY3MjEgNSA1LjcxNDI4NTcxIDEwIDEuMTM0NjcyMSclM0UlM0MvcG9seWdvbiUzRSUzQy9kZWZzJTNFJTNDZyBpZD0n4pqZ77iPLVN5bWJvbHMnIHN0cm9rZT0nbm9uZScgc3Ryb2tlLXdpZHRoPScxJyBmaWxsPSdub25lJyBmaWxsLXJ1bGU9J2V2ZW5vZGQnJTNFJTNDZyBpZD0nMzEpLURhdGFUYWJsZXMnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKC0yODkuMDAwMDAwLCAtNzYuMDAwMDAwKSclM0UlM0NnIGlkPSdUYWJsZS1CYXNpYycgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMC4wMDAwMDAsIDUyLjAwMDAwMCknJTNFJTNDZyBpZD0nVGFibGUtSGVhZGVyJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgxOS4wMDAwMDAsIDEwLjAwMDAwMCknJTNFJTNDZyBpZD0nR3JvdXAnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDI3MC4wMDAwMDAsIDEyLjAwMDAwMCknJTNFJTNDZyBpZD0nSWNvbi1Db2xvcicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMC4wMDAwMDAsIDIuMTQyODU3KSclM0UlM0N1c2UgZmlsbD0nI3tzdHItcmVwbGFjZSgje3JnYmEtdG8taGV4KCRncmF5LTUwMCwkcmdiYS10by1oZXgtYmcpfSwnIycsICclMjMnKX0nIHhsaW5rOmhyZWY9JyUyM3BhdGgtMSclM0UlM0MvdXNlJTNFJTNDdXNlIGZpbGwtb3BhY2l0eT0nMC44JyBmaWxsPScje3N0ci1yZXBsYWNlKCN7cmdiYS10by1oZXgoJGdyYXktNTAwLCRyZ2JhLXRvLWhleC1iZyl9LCcjJywgJyUyMycpfScgeGxpbms6aHJlZj0nJTIzcGF0aC0xJyUzRSUzQy91c2UlM0UlM0MvZyUzRSUzQy9nJTNFJTNDL2clM0UlM0MvZyUzRSUzQy9nJTNFJTNDL2clM0UlM0Mvc3ZnJTNFXCI7XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAaWYgbm90ICRuIHtcbiAgICBAZXJyb3IgXCJicmVha3BvaW50IGAjeyRuYW1lfWAgbm90IGZvdW5kIGluIGAjeyRicmVha3BvaW50c31gXCI7XG4gIH1cbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1heCBhbmQgJG1heCA+IDAsICRtYXggLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuZXh0LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gQ29tbW9uXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiR1aS1zdGFyLXNpemU6IDEuMWVtICFkZWZhdWx0O1xuJHVpLXN0YXJzLXNwYWNlcjogLTAuMWVtICFkZWZhdWx0O1xuJHVpLXN0YXItZmlsbGVkLWNvbG9yOiAkeWVsbG93ICFkZWZhdWx0O1xuXG4vLyBOYXZiYXIgKGN1c3RvbSBuYXZiYXIpXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4kbmF2YmFyLWhlaWdodDogMy44NzVyZW0gIWRlZmF1bHQ7XG4kbmF2YmFyLXN1Z2dlc3Rpb24td2lkdGg6IDk2JSAhZGVmYXVsdDtcbiRuYXZiYXItc3VnZ2VzdGlvbi1oZWlnaHQ6IDI4cmVtICFkZWZhdWx0O1xuJG5hdmJhci1zdWdnZXN0aW9uLWJvcmRlci1yYWRpdXM6IDAuNXJlbSAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGRvd24td2lkdGg6IDIycmVtICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1jb250ZW50LWhlaWdodDogMzByZW0gIWRlZmF1bHQ7XG4kbmF2YmFyLW5vdGlmaWNhdGlvbnMtZHJvcGRvd24taXRlbS1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLyBNZW51XG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiRtZW51LXdpZHRoOiAxNi4yNXJlbSAhZGVmYXVsdDtcbiRtZW51LWNvbGxhcHNlZC13aWR0aDogNS4yNXJlbSAhZGVmYXVsdDtcblxuJG1lbnUtZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2UgIWRlZmF1bHQ7XG5cbiRtZW51LWl0ZW0tc3BhY2VyOiAwLjA2MjVyZW0gIWRlZmF1bHQ7XG5cbiRtZW51LXZlcnRpY2FsLWxpbmstbWFyZ2luLXk6IDByZW0gIWRlZmF1bHQ7XG4kbWVudS12ZXJ0aWNhbC1saW5rLW1hcmdpbi14OiAxcmVtICFkZWZhdWx0O1xuXG4kbWVudS12ZXJ0aWNhbC1oZWFkZXItbWFyZ2luLXk6IDFyZW0gIWRlZmF1bHQ7XG4kbWVudS12ZXJ0aWNhbC1oZWFkZXItbWFyZ2luLXg6IDAgIWRlZmF1bHQ7XG5cbiRtZW51LXZlcnRpY2FsLWxpbmstcGFkZGluZy15OiAwLjYyNXJlbSAhZGVmYXVsdDtcbiRtZW51LXZlcnRpY2FsLWxpbmstcGFkZGluZy14OiAxcmVtICFkZWZhdWx0O1xuXG4kbWVudS12ZXJ0aWNhbC1tZW51LWxpbmstcGFkZGluZy15OiAwLjYyNXJlbSAhZGVmYXVsdDtcbiRtZW51LXZlcnRpY2FsLW1lbnUtbGV2ZWwtc3BhY2VyOiAwLjY1cmVtICFkZWZhdWx0O1xuXG4kbWVudS1ob3Jpem9udGFsLWl0ZW0tc3BhY2VyOiAwLjMyNXJlbSAhZGVmYXVsdDtcbiRtZW51LWhvcml6b250YWwtbGluay1wYWRkaW5nLXk6IDAuNTY1cmVtICFkZWZhdWx0O1xuJG1lbnUtaG9yaXpvbnRhbC1saW5rLXBhZGRpbmcteDogMXJlbSAhZGVmYXVsdDtcbiRtZW51LWhvcml6b250YWwtbWVudS1saW5rLXBhZGRpbmcteTogMC42MjVyZW0gIWRlZmF1bHQ7XG4kbWVudS1ob3Jpem9udGFsLW1lbnUtbGV2ZWwtc3BhY2VyOiAyLjM1cmVtICFkZWZhdWx0O1xuJG1lbnUtaG9yaXpvbnRhbC1tZW51LWJveC1zaGFkb3c6ICRkcm9wZG93bi1ib3gtc2hhZG93ICFkZWZhdWx0O1xuXG4kbWVudS1zdWItd2lkdGg6IDE0LjVyZW0gIWRlZmF1bHQ7XG4kbWVudS1jb250cm9sLXdpZHRoOiAyLjI1cmVtICFkZWZhdWx0O1xuJG1lbnUtY29udHJvbC1hcnJvdy1zaXplOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbiRtZW51LWljb24tZXhwYW5kZWQtd2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiRtZW51LWljb24tZXhwYW5kZWQtZm9udC1zaXplOiAxLjI1cmVtICFkZWZhdWx0O1xuJG1lbnUtaWNvbi1leHBhbmRlZC1zcGFjZXI6IDAuNXJlbSAhZGVmYXVsdDtcblxuJG1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjNzICFkZWZhdWx0O1xuXG4kbWVudS1tYXgtbGV2ZWxzOiA1ICFkZWZhdWx0O1xuXG4kbWVudS1kYXJrLWJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFkZWZhdWx0O1xuJG1lbnUtZGFyay1tZW51LWJnOiByZ2JhKDAsIDAsIDAsIDAuMDYpICFkZWZhdWx0O1xuJG1lbnUtbGlnaHQtYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDYpICFkZWZhdWx0O1xuJG1lbnUtbGlnaHQtbWVudS1iZzogcmdiYSgwLCAwLCAwLCAwLjA1KSAhZGVmYXVsdDtcblxuLy8gQ3VzdG9tIE9wdGlvbnNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJGN1c3RvbS1vcHRpb24tcGFkZGluZzogMWVtICFkZWZhdWx0O1xuJGN1c3RvbS1vcHRpb24tY3Vyc29yOiBwb2ludGVyICFkZWZhdWx0O1xuJGN1c3RvbS1vcHRpb24tYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1vcHRpb24tYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kY3VzdG9tLW9wdGlvbi1pbWFnZS1ib3JkZXItd2lkdGg6IDJweCAhZGVmYXVsdDtcbiRjdXN0b20tb3B0aW9uLWJvcmRlci1ob3Zlci1jb2xvcjogZGFya2VuKCRib3JkZXItY29sb3IsIDglKSAhZGVmYXVsdDtcblxuLy8gU3dpdGNoZXNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJHN3aXRjaC1mb250LXNpemU6IDAuNjI1cmVtICFkZWZhdWx0O1xuJHN3aXRjaC1ib3JkZXItcmFkaXVzOiAzMHJlbSAhZGVmYXVsdDtcblxuJHN3aXRjaC13aWR0aDogMi41cmVtICFkZWZhdWx0O1xuJHN3aXRjaC13aWR0aC1zbTogMnJlbSAhZGVmYXVsdDtcbiRzd2l0Y2gtd2lkdGgtbGc6IDMuMjVyZW0gIWRlZmF1bHQ7XG5cbiRzd2l0Y2gtaGVpZ2h0OiAxLjM1cmVtICFkZWZhdWx0O1xuJHN3aXRjaC1oZWlnaHQtc206IDEuMTI1cmVtICFkZWZhdWx0O1xuJHN3aXRjaC1oZWlnaHQtbGc6IDEuNzVyZW0gIWRlZmF1bHQ7XG5cbiRzd2l0Y2gtbGFiZWwtZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2UgIWRlZmF1bHQ7XG4kc3dpdGNoLWxhYmVsLWZvbnQtc2l6ZS1zbTogJGZvbnQtc2l6ZS1zbSAhZGVmYXVsdDtcbiRzd2l0Y2gtbGFiZWwtZm9udC1zaXplLWxnOiAkZm9udC1zaXplLWxnICFkZWZhdWx0O1xuXG4kc3dpdGNoLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kc3dpdGNoLWxhYmVsLWxpbmUtaGVpZ2h0LXNtOiAxLjQ4ICFkZWZhdWx0O1xuJHN3aXRjaC1sYWJlbC1saW5lLWhlaWdodC1sZzogMS40NyAhZGVmYXVsdDtcblxuJHN3aXRjaC1zcGFjZXIteDogMC43NXJlbSAhZGVmYXVsdDtcbiRzd2l0Y2gtc3BhY2VyLXk6IDAuNzVyZW0gIWRlZmF1bHQ7XG4kc3dpdGNoLWd1dHRlcjogMC41cmVtICFkZWZhdWx0O1xuJHN3aXRjaC1pbm5lci1zcGFjZXI6IDAuMjI1cmVtICFkZWZhdWx0O1xuXG4kc3dpdGNoLXNxdWFyZS1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcblxuJHN3aXRjaC1sYWJlbC1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kc3dpdGNoLWxhYmVsLWRpc2FibGVkLWNvbG9yOiAkdGV4dC1tdXRlZCAhZGVmYXVsdDtcbiRzd2l0Y2gtZGlzYWJsZWQtb3BhY2l0eTogMC41ICFkZWZhdWx0O1xuXG4kc3dpdGNoLW9mZi1jb2xvcjogJGdyYXktNDAwICFkZWZhdWx0O1xuJHN3aXRjaC1vZmYtYmc6ICRncmF5LTIwMCAhZGVmYXVsdDtcbiRzd2l0Y2gtb2ZmLWJvcmRlcjogJGdyYXktMjAwICFkZWZhdWx0O1xuJHN3aXRjaC1ob2xkZXItYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiRzd2l0Y2gtaG9sZGVyLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjA0KSwgMCAxcHggNnB4IHJnYmEoJGJsYWNrLCAwLjA5KSAhZGVmYXVsdDtcbiRzd2l0Y2gtZm9jdXMtYm94LXNoYWRvdzogJGlucHV0LWJ0bi1mb2N1cy1ib3gtc2hhZG93ICFkZWZhdWx0O1xuXG4vLyBBdmF0YXJzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiRhdmF0YXItc2l6ZS14bDogNC41cmVtICFkZWZhdWx0O1xuJGF2YXRhci1zaXplLWxnOiA0cmVtICFkZWZhdWx0O1xuJGF2YXRhci1zaXplLW1kOiAzcmVtICFkZWZhdWx0O1xuJGF2YXRhci1zaXplOiAyLjM3NXJlbSAhZGVmYXVsdDsgLy8gRGVmYXVsdFxuJGF2YXRhci1zaXplLXNtOiAycmVtICFkZWZhdWx0O1xuJGF2YXRhci1zaXplLXhzOiAxLjYyNXJlbSAhZGVmYXVsdDtcblxuJGF2YXRhci1pbml0aWFsLXhsOiAxLjg3NXJlbSAhZGVmYXVsdDtcbiRhdmF0YXItaW5pdGlhbC1sZzogMS41cmVtICFkZWZhdWx0O1xuJGF2YXRhci1pbml0aWFsLW1kOiAxLjEyNXJlbSAhZGVmYXVsdDtcbiRhdmF0YXItaW5pdGlhbC1zbTogMC43NXJlbSAhZGVmYXVsdDtcbiRhdmF0YXItaW5pdGlhbC14czogMC42MjVyZW0gIWRlZmF1bHQ7XG5cbiRhdmF0YXItZ3JvdXAtYm9yZGVyOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vIFRpbWVsaW5lXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4kdGltZWxpbmUtbGluZS1ib3JkZXItc3R5bGVzOiAoXG4gIHNvbGlkOiBzb2xpZCxcbiAgZG90dGVkOiBkb3R0ZWQsXG4gIGRhc2hlZDogZGFzaGVkLFxuICBoaWRkZW46IG5vbmVcbikgIWRlZmF1bHQ7XG5cbiR0aW1lbGluZS1ib3JkZXItY29sb3I6ICRib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiR0aW1lbGluZS1pbmRpY2F0b3Itc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJHRpbWVsaW5lLXBvaW50LXNpemU6IDAuNzVyZW0gIWRlZmF1bHQ7XG4kdGltZWxpbmUtcG9pbnQtaW5kaWNhdG9yLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiR0aW1lbGluZS1lbmQtaW5kaWNhdG9yLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuXG4kdGltZWxpbmUtaXRlbS1pY29uLWZvbnQtc2l6ZTogMC44NXJlbSAhZGVmYXVsdDtcbiR0aW1lbGluZS1pdGVtLW1pbi1oZWlnaHQ6IDRyZW0gIWRlZmF1bHQ7XG4kdGltZWxpbmUtaXRlbS1wYWRkaW5nLXg6IDEuNXJlbSAhZGVmYXVsdDtcbiR0aW1lbGluZS1pdGVtLXBhZGRpbmcteTogMS4yNXJlbSAhZGVmYXVsdDtcbiR0aW1lbGluZS1pdGVtLWJnLWNvbG9yOiAkY2FyZC1iZyAhZGVmYXVsdDtcbiR0aW1lbGluZS1pdGVtLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuXG4kdGltZWxpbmUtZXZlbnQtdGltZS1zaXplOiAwLjg1cmVtICFkZWZhdWx0O1xuJHRpbWVsaW5lLWV2ZW50LXRpbWUtY29sb3I6ICR0ZXh0LW11dGVkICFkZWZhdWx0O1xuJHRpbWVsaW5lLWV2ZW50LXNoYWRvdzogMCAwLjVyZW0gMXJlbSByZ2JhKCRncmF5LTIwMCwgMC4wNzUpICFkZWZhdWx0O1xuXG4vLyBUZXh0IERpdmlkZXJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiRkaXZpZGVyLWNvbG9yOiAkZ3JheS0yMDAgIWRlZmF1bHQ7XG5cbiRkaXZpZGVyLW1hcmdpbi15OiAxcmVtICFkZWZhdWx0O1xuJGRpdmlkZXItbWFyZ2luLXg6IDAgIWRlZmF1bHQ7XG5cbiRkaXZpZGVyLXRleHQtcGFkZGluZy15OiAwcmVtICFkZWZhdWx0O1xuJGRpdmlkZXItdGV4dC1wYWRkaW5nLXg6IDFyZW0gIWRlZmF1bHQ7XG5cbiRkaXZpZGVyLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuJGRpdmlkZXItaWNvbi1zaXplOiAxcmVtICFkZWZhdWx0O1xuIiwiLy8gKiBMaWdodC9EYXJrIGxheW91dFxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuQG1peGluIGxpZ2h0LWxheW91dC1vbmx5KCkge1xuICBAaWYgJGRhcmstc3R5bGUge1xuICAgIGh0bWw6bm90KC5kYXJrLXN0eWxlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBkYXJrLWxheW91dC1vbmx5KCkge1xuICBAaWYgJGRhcmstc3R5bGUge1xuICAgIC5kYXJrLXN0eWxlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyAqIFJUTC9MVFJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQG1peGluIGx0ci1vbmx5KCkge1xuICBAaWYgJHJ0bC1zdXBwb3J0IHtcbiAgICBodG1sOm5vdChbZGlyPSdydGwnXSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gcnRsLW9ubHkoKSB7XG4gIEBpZiAkcnRsLXN1cHBvcnQge1xuICAgIFtkaXI9J3J0bCddIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbHRyLXN0eWxlKCkge1xuICBAaWYgJHJ0bC1zdXBwb3J0IHtcbiAgICBodG1sOm5vdChbZGlyPSdydGwnXSkgJiB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBydGwtc3R5bGUoKSB7XG4gIEBpZiAkcnRsLXN1cHBvcnQge1xuICAgIFtkaXI9J3J0bCddICYge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vICogS2V5ZnJhbWVzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAqIENvbG9yc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5AbWl4aW4gYmctY29sb3ItdmFyaWFudCgkcGFyZW50LCAkY29sb3IsICRydGgtY29sb3I6ICMwMDApIHtcbiAgI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cblxuICBhI3skcGFyZW50fSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEtdG8taGV4KHJnYmEoJGNvbG9yLCAwLjk1KSwgJGJhY2tncm91bmQ6ICRydGgtY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8hIEZpeDogRHJvcGRvd24gbm90aWZpY2F0aW9uIHJlYWQgYmFkZ2UgYmcgY29sb3JcbiAgLmRyb3Bkb3duLW5vdGlmaWNhdGlvbnMtaXRlbTpub3QoLm1hcmstYXMtcmVhZCkge1xuICAgIC5kcm9wZG93bi1ub3RpZmljYXRpb25zLXJlYWQgc3BhbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBiZy12YXJpYW50KCRwYXJlbnQsICRjb2xvciwgJHJ0aC1jb2xvcjogIzAwMCkge1xuICBAaW5jbHVkZSBiZy1jb2xvci12YXJpYW50KCRwYXJlbnQsICRjb2xvcik7XG59XG5cbi8vIEJHIExhYmVsXG5AbWl4aW4gYmctbGFiZWwtdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiAkYmFja2dyb3VuZCkge1xuICAkbGFiZWwtYmFja2dyb3VuZDogaWYoXG4gICAgJGRhcmstc3R5bGUsXG4gICAgc2hhZGUtY29sb3IoJGJhY2tncm91bmQsICRidG4tbGFiZWwtYmctc2hhZGUtYW1vdW50LCAkY2FyZC1iZyksXG4gICAgdGludC1jb2xvcigkYmFja2dyb3VuZCwgJGJ0bi1sYWJlbC1iZy10aW50LWFtb3VudCwgJGNhcmQtYmcpXG4gICk7XG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsYWJlbC1iYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCBjb2xvci1jb250cmFzdCgkYmcpKSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vIEJvcmRlciBMYWJlbFxuQG1peGluIGJvcmRlci1sYWJlbC12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kKSB7XG4gICRsYWJlbC1iYWNrZ3JvdW5kOiBpZihcbiAgICAkZGFyay1zdHlsZSxcbiAgICBzaGFkZS1jb2xvcigkYmFja2dyb3VuZCwgJGJvcmRlci1zaGFkZS1hbW91bnQpLFxuICAgIHRpbnQtY29sb3IoJGJhY2tncm91bmQsICRib3JkZXItdGludC1hbW91bnQpXG4gICk7XG4gICN7JHBhcmVudH0ge1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICRsYWJlbC1iYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gQm9yZGVyIExpZ2h0XG5AbWl4aW4gYm9yZGVyLWxpZ2h0LXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgkYmFja2dyb3VuZCwgMC4wOCk7XG4gIH1cbn1cblxuQG1peGluIHRleHQtdmFyaWFudCgkcGFyZW50LCAkY29sb3IpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG4gIC8vISBGaXg6IHRleHQtYm9keSBob3ZlciBjb2xvclxuICAudGV4dC1ib2R5W2hyZWZdOmhvdmVyIHtcbiAgICBjb2xvcjogc2hpZnQtY29sb3IoJGNvbG9yLCAkbGluay1zaGFkZS1wZXJjZW50YWdlKSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyBQYWdpbmF0aW9uXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbi8vIEJhc2ljIFBhZ2luYXRpb25cbkBtaXhpbiB0ZW1wbGF0ZS1wYWdpbmF0aW9uLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAjeyRwYXJlbnR9IC5wYWdlLWl0ZW0uYWN0aXZlIC5wYWdlLWxpbmssXG4gICN7JHBhcmVudH0ucGFnaW5hdGlvbiBsaS5hY3RpdmUgPiBhOm5vdCgucGFnZS1saW5rKSB7XG4gICAgJixcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCBjb2xvci1jb250cmFzdCgkYmFja2dyb3VuZCkpO1xuICAgICAgYm94LXNoYWRvdzogMCAwLjEyNXJlbSAwLjI1cmVtIHJnYmEocmdiYS10by1oZXgoJGJhY2tncm91bmQsICRyZ2JhLXRvLWhleC1iZyksIDAuNCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0ZW1wbGF0ZS1wYWdpbmF0aW9uLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgQGluY2x1ZGUgdGVtcGxhdGUtcGFnaW5hdGlvbi12YXJpYW50KCcnLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbn1cbiIsIi8vIEZ1bmN0aW9uc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyBMaXN0c1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuQGZ1bmN0aW9uIHNsaWNlLWxpc3QoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICAkcmVzdWx0OiBudWxsO1xuXG4gIEBpZiB0eXBlLW9mKCRzdGFydCkgIT0gbnVtYmVyIG9yIHR5cGUtb2YoJGVuZCkgIT0gbnVtYmVyIHtcbiAgICBAd2FybiBcIkVpdGhlciAkc3RhcnQgb3IgJGVuZCBhcmUgbm90IGEgbnVtYmVyIGZvciBgc2xpY2VgLlwiO1xuICB9IEBlbHNlIGlmICRzdGFydCA+ICRlbmQge1xuICAgIEB3YXJuIFwiVGhlIHN0YXJ0IGluZGV4IGhhcyB0byBiZSBsZXNzZXIgdGhhbiBvciBlcXVhbHMgdG8gdGhlIGVuZCBpbmRleCBmb3IgYHNsaWNlYC5cIjtcbiAgfSBAZWxzZSBpZiAkc3RhcnQgPCAxIG9yICRlbmQgPCAxIHtcbiAgICBAd2FybiBcIkxpc3QgaW5kZXhlcyBtdXN0IGJlIG5vbi16ZXJvIGludGVnZXJzIGZvciBgc2xpY2VgLlwiO1xuICB9IEBlbHNlIGlmICRzdGFydCA+IGxlbmd0aCgkbGlzdCkge1xuICAgIEB3YXJuIFwiTGlzdCBpbmRleCBpcyAjeyRzdGFydH0gYnV0IGxpc3QgaXMgb25seSAje2xlbmd0aCgkbGlzdCl9IGl0ZW0gbG9uZyBmb3IgYHNsaWNlYC5cIjtcbiAgfSBAZWxzZSBpZiAkZW5kID4gbGVuZ3RoKCRsaXN0KSB7XG4gICAgQHdhcm4gXCJMaXN0IGluZGV4IGlzICN7JGVuZH0gYnV0IGxpc3QgaXMgb25seSAje2xlbmd0aCgkbGlzdCl9IGl0ZW0gbG9uZyBmb3IgYHNsaWNlYC5cIjtcbiAgfSBAZWxzZSB7XG4gICAgJHJlc3VsdDogKCk7XG5cbiAgICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8gKiBVbml0c1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyBSZW1vdmUgdGhlIHVuaXQgb2YgYSBsZW5ndGhcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW1iZXIpIHtcbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgPT0gJ251bWJlcicgYW5kIG5vdCB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgQHJldHVybiBkaXZpZGUoJG51bWJlciwgKCRudW1iZXIgKiAwICsgMSkpO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyO1xufVxuXG4vLyBDb252ZXJ0IHNpemUgcHggdG8gcmVtXG5AZnVuY3Rpb24gcHgtdG8tcmVtKCR2YWx1ZSkge1xuICAvLyBBc3N1bWVzIHRoZSBicm93c2VyIGRlZmF1bHQgZm9udCBzaXplID0gYDE2cHhgXG4gIEByZXR1cm4gKGRpdmlkZShzdHJpcC11bml0KCR2YWx1ZSksIDE2KSkgKiAxcmVtO1xufVxuXG4vLyBDb252ZXJ0IHNpemUgcmVtIHRvIHB4XG5AZnVuY3Rpb24gcmVtLXRvLXB4KCR2YWx1ZSkge1xuICAvLyBBc3N1bWVzIHRoZSBicm93c2VyIGRlZmF1bHQgZm9udCBzaXplID0gYDE2cHhgXG4gIEByZXR1cm4gKHN0cmlwLXVuaXQoJHZhbHVlKSAqIDE2KSAqIDFweDtcbn1cblxuLy8gKiBDb2xvcnNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLy8gPyBPdmVycmlkZSBzaGFkZSwgdGludCBhbmQgc2hpZnQgZnVuY3Rpb24gd2l0aCBjdXN0b20gYmFja2dyb3VuZCBjb2xvciBvcHRpb24gaS5lICRjYXJkLWJnIHRvIG1ha2UgaXQgc2ltaWxhciBsaWtlIGRlc2lnblxuLy8gU2hhZGUgYSBjb2xvcjogbWl4IGEgY29sb3Igd2l0aCBiYWNrZ3JvdW5kL3doaXRlXG5AZnVuY3Rpb24gdGludC1jb2xvcigkY29sb3IsICR3ZWlnaHQsICRiYWNrZ3JvdW5kOiBudWxsKSB7XG4gICRiYWNrZ3JvdW5kOiBpZigkYmFja2dyb3VuZCwgJGJhY2tncm91bmQsIHdoaXRlKTtcbiAgQHJldHVybiBtaXgoJGJhY2tncm91bmQsICRjb2xvciwgJHdlaWdodCk7XG59XG5cbi8vIFNoYWRlIGEgY29sb3I6IG1peCBhIGNvbG9yIHdpdGggYmFja2dyb3VuZC9ibGFja1xuQGZ1bmN0aW9uIHNoYWRlLWNvbG9yKCRjb2xvciwgJHdlaWdodCwgJGJhY2tncm91bmQ6IG51bGwpIHtcbiAgJGJhY2tncm91bmQ6IGlmKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZCwgYmxhY2spO1xuICBAcmV0dXJuIG1peCgkYmFja2dyb3VuZCwgJGNvbG9yLCAkd2VpZ2h0KTtcbn1cblxuLy8gU2hhZGUgdGhlIGNvbG9yIGlmIHRoZSB3ZWlnaHQgaXMgcG9zaXRpdmUsIGVsc2UgdGludCBpdFxuQGZ1bmN0aW9uIHNoaWZ0LWNvbG9yKCRjb2xvciwgJHdlaWdodCwgJGJhY2tncm91bmQ6IG51bGwpIHtcbiAgQHJldHVybiBpZigkd2VpZ2h0ID4gMCwgc2hhZGUtY29sb3IoJGNvbG9yLCAkd2VpZ2h0LCAkYmFja2dyb3VuZCksIHRpbnQtY29sb3IoJGNvbG9yLCAtJHdlaWdodCkpO1xufVxuXG4vL1JHQkEgdG8gSEVYXG5AZnVuY3Rpb24gcmdiYS10by1oZXgoJGNvbG9yLCAkYmFja2dyb3VuZDogI2ZmZikge1xuICBAaWYgJGNvbG9yIGFuZCBhbHBoYSgkY29sb3IpICE9IDEge1xuICAgICRwZXJjZW50OiBhbHBoYSgkY29sb3IpICogMTAwJTtcbiAgICAkb3BhcXVlOiBvcGFjaWZ5KCRjb2xvciwgMSk7XG5cbiAgICBAcmV0dXJuIG1peCgkb3BhcXVlLCAkYmFja2dyb3VuZCwgJHBlcmNlbnQpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRjb2xvcjtcbiAgfVxufVxuXG4vLyBDYWxjdWxhdGluZyBDb2xvciBDb250cmFzdFxuQGZ1bmN0aW9uIGNvbnRyYXN0LXZhbHVlKCRjb2xvcikge1xuICBAaWYgJGNvbG9yID09IHRyYW5zcGFyZW50IHtcbiAgICBAcmV0dXJuICRib2R5LWNvbG9yO1xuICB9IEBlbHNlIGlmIGFscGhhKCRjb2xvcikgIT0gMSB7XG4gICAgJGNvbG9yOiByZ2JhLXRvLWhleCgkY29sb3IpO1xuICB9XG5cbiAgJHI6IHJlZCgkY29sb3IpO1xuICAkZzogZ3JlZW4oJGNvbG9yKTtcbiAgJGI6IGJsdWUoJGNvbG9yKTtcblxuICBAcmV0dXJuIGRpdmlkZSgoKCRyICogMjk5KSArICgkZyAqIDU4NykgKyAoJGIgKiAxMTQpKSwgMTAwMCk7XG59XG5cbi8vICogVXRpbGl0aWVzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbi8vIFJldHVybiBOYXYgb3BhY2l0eSwgY29udHJhc3QtcGVyY2VudCwgY29udHJhc3QtcGVyY2VudC1pbnZlcnRlZCwgYmcsIGNvbG9yLCBhY3RpdmUtY29sb3IsIGRpc2FibGVkLWNvbG9yLCBtdXRlZC1jb2xvciwgYm9yZGVyXG5AZnVuY3Rpb24gZ2V0LW5hdmJhci1wcm9wKCRiZywgJGFjdGl2ZS1jb2xvcjogbnVsbCwgJGluYWN0aXZlLWNvbG9yOiBudWxsLCAkYm9yZGVyOiBudWxsKSB7XG4gICRiZzogcmdiYS10by1oZXgoJGJnKTtcblxuICAkYWN0aXZlLWNvbG9yOiByZ2JhLXRvLWhleCgkYWN0aXZlLWNvbG9yKTtcbiAgJGFjdGl2ZS1jb2xvcjogaWYoJGFjdGl2ZS1jb2xvciwgJGFjdGl2ZS1jb2xvciwgY29sb3ItY29udHJhc3QoJGJnKSk7XG5cbiAgJGNvbnRyYXN0LXBlcmNlbnQ6IGRpdmlkZShjb250cmFzdC12YWx1ZSgkYmcpLCAyNTUpO1xuICAkY29udHJhc3QtcGVyY2VudC1pbnZlcnRlZDogMSAtICRjb250cmFzdC1wZXJjZW50O1xuXG4gICRvcGFjaXR5OiBpZigkYWN0aXZlLWNvbG9yID09ICNmZmYsIDAuNiArICgwLjQgKiAkY29udHJhc3QtcGVyY2VudCksIDAuNiArICgwLjQgKiAoMSAtICRjb250cmFzdC1wZXJjZW50KSkpO1xuXG4gICRjb2xvcjogaWYoXG4gICAgJGluYWN0aXZlLWNvbG9yLFxuICAgIHJnYmEtdG8taGV4KCRpbmFjdGl2ZS1jb2xvciwgJGJnKSxcbiAgICByZ2JhLXRvLWhleChyZ2JhKCRhY3RpdmUtY29sb3IsIGlmKCRjb250cmFzdC1wZXJjZW50IDwgMC4yNSwgJG9wYWNpdHkgKyAwLjIsICRvcGFjaXR5KSksICRiZylcbiAgKTtcbiAgJGRpc2FibGVkLWNvbG9yOiByZ2JhLXRvLWhleChyZ2JhKCRjb2xvciwgMC42KSwgJGJnKTtcbiAgJG11dGVkLWNvbG9yOiByZ2JhLXRvLWhleChyZ2JhKCRjb2xvciwgMC43NSksICRiZyk7XG4gICRib3JkZXI6IGlmKFxuICAgICRib3JkZXIsXG4gICAgJGJvcmRlcixcbiAgICBpZihcbiAgICAgICRjb250cmFzdC1wZXJjZW50ID4gMC43NSxcbiAgICAgIHJnYmEoJGFjdGl2ZS1jb2xvciwgZGl2aWRlKCRvcGFjaXR5LCA4KSksXG4gICAgICBpZigkY29udHJhc3QtcGVyY2VudCA8IDAuMjUsIHJnYmEoJGFjdGl2ZS1jb2xvciwgMC4wNiksIHJnYmEoJGFjdGl2ZS1jb2xvciwgMC4xNSkpXG4gICAgKVxuICApO1xuXG4gIEByZXR1cm4gKFxuICAgIC8vIE1ldGFkYXRhXG4gICAgb3BhY2l0eTogJG9wYWNpdHksXG4gICAgY29udHJhc3QtcGVyY2VudDogJGNvbnRyYXN0LXBlcmNlbnQsXG4gICAgY29udHJhc3QtcGVyY2VudC1pbnZlcnRlZDogJGNvbnRyYXN0LXBlcmNlbnQtaW52ZXJ0ZWQsXG4gICAgLy8gQ29sb3JzXG4gICAgYmc6ICRiZyxcbiAgICBjb2xvcjogJGNvbG9yLFxuICAgIGFjdGl2ZS1jb2xvcjogJGFjdGl2ZS1jb2xvcixcbiAgICBkaXNhYmxlZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yLFxuICAgIG11dGVkLWNvbG9yOiAkbXV0ZWQtY29sb3IsXG4gICAgYm9yZGVyOiAkYm9yZGVyXG4gICk7XG59XG4iLCIvLyBQcm9ncmVzcyBiYXJzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbkBtaXhpbiB0ZW1wbGF0ZS1wcm9ncmVzcy1iYXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAucHJvZ3Jlc3MtYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIGNvbG9yLWNvbnRyYXN0KCRiYWNrZ3JvdW5kKSk7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgkYmFja2dyb3VuZCwgMC40KTtcbiAgfVxufVxuXG5AbWl4aW4gdGVtcGxhdGUtcHJvZ3Jlc3MtYmFyLXNoYWRvdy12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLXNoYWRvdykge1xuICAkYmFja2dyb3VuZC1zaGFkb3c6ICRiYWNrZ3JvdW5kLXNoYWRvdztcbiAgLnByb2dyZXNzLWJhciB7XG4gICAgJiN7JHBhcmVudH0ge1xuICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgkYmFja2dyb3VuZC1zaGFkb3csIDAuNCk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBNb2RhbFxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5AbWl4aW4gdGVtcGxhdGUtbW9kYWwtb25ib2FyZGluZy10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yKSB7XG4gIC5tb2RhbC1vbmJvYXJkaW5nIHtcbiAgICAuY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gICAgICBbZGF0YS1icy10YXJnZXRdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5jYXJvdXNlbC1jb250cm9sLXByZXYsXG4gIC5jYXJvdXNlbC1jb250cm9sLW5leHQge1xuICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gTGlzdCBncm91cHNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQG1peGluIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCRzdGF0ZTogbnVsbCwgJGJhY2tncm91bmQ6IG51bGwsICRjb2xvcjogbnVsbCkge1xufVxuXG4vLyBCYXNpYyBMaXN0IGdyb3Vwc1xuQG1peGluIHRlbXBsYXRlLWxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKFxuICAgICRkYXJrLXN0eWxlLFxuICAgIHNoaWZ0LWNvbG9yKCRiYWNrZ3JvdW5kLCAtJGxpc3QtZ3JvdXAtaXRlbS1iZy1zY2FsZSwgJGNhcmQtYmcpLFxuICAgIHNoaWZ0LWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlzdC1ncm91cC1pdGVtLWJnLXNjYWxlLCAkY2FyZC1iZylcbiAgKTtcbiAgJGNvbG9yOiBpZihcbiAgICAkcGFyZW50ID09ICcubGlzdC1ncm91cC1pdGVtLWRhcmsnIGFuZCAkZGFyay1zdHlsZSxcbiAgICBjb2xvci1jb250cmFzdCgkYmFja2dyb3VuZCksXG4gICAgc2hpZnQtY29sb3IoJGJhY2tncm91bmQsICRsaXN0LWdyb3VwLWl0ZW0tY29sb3Itc2NhbGUpXG4gICk7XG4gICRob3Zlci1iYWNrZ3JvdW5kOiBzaGFkZS1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgJGxpc3QtZ3JvdXAtaXRlbS1iZy1ob3Zlci1zY2FsZSk7XG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxuXG4gIGEjeyRwYXJlbnR9LFxuICBidXR0b24jeyRwYXJlbnR9IHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItYmFja2dyb3VuZDtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCBjb2xvci1jb250cmFzdCgkYmFja2dyb3VuZCkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdGVtcGxhdGUtbGlzdC1ncm91cC10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLWxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCcubGlzdC1ncm91cC1pdGVtLXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUge1xuICAgICYsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRlbXBsYXRlLWxpc3QtZ3JvdXAtdGltZWxpbmUtdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCkge1xuICAubGlzdC1ncm91cCB7XG4gICAgJi5saXN0LWdyb3VwLXRpbWVsaW5lIHtcbiAgICAgICN7JHBhcmVudH0ge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEFsZXJ0c1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5AbWl4aW4gYWxlcnQtdmFyaWFudCgkYmFja2dyb3VuZDogbnVsbCwgJGJvcmRlcjogbnVsbCwgJGNvbG9yOiBudWxsKSB7XG59XG5cbi8vIEJhc2ljIEFsZXJ0c1xuQG1peGluIHRlbXBsYXRlLWFsZXJ0LXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQpIHtcbiAgJGJvcmRlcjogaWYoXG4gICAgJGRhcmstc3R5bGUsXG4gICAgc2hpZnQtY29sb3IoJGJhY2tncm91bmQsIC0kYWxlcnQtYm9yZGVyLXNjYWxlLCAkY2FyZC1iZyksXG4gICAgc2hpZnQtY29sb3IoJGJhY2tncm91bmQsICRhbGVydC1ib3JkZXItc2NhbGUsICRjYXJkLWJnKVxuICApO1xuICAkY29sb3I6IGlmKCRkYXJrLXN0eWxlLCBzaGlmdC1jb2xvcigkYmFja2dyb3VuZCwgLSRhbGVydC1jb2xvci1zY2FsZSksIHNoaWZ0LWNvbG9yKCRiYWNrZ3JvdW5kLCAkYWxlcnQtY29sb3Itc2NhbGUpKTtcbiAgJGJhY2tncm91bmQ6IGlmKFxuICAgICRkYXJrLXN0eWxlLFxuICAgIHNoaWZ0LWNvbG9yKCRiYWNrZ3JvdW5kLCAtJGFsZXJ0LWJnLXNjYWxlLCAkY2FyZC1iZyksXG4gICAgc2hpZnQtY29sb3IoJGJhY2tncm91bmQsICRhbGVydC1iZy1zY2FsZSwgJGNhcmQtYmcpXG4gICk7XG5cbiAgI3skcGFyZW50fSB7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGJhY2tncm91bmQpO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIC5idG4tY2xvc2Uge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogc3RyLXJlcGxhY2Uoc3RyLXJlcGxhY2UoJGJ0bi1jbG9zZS1iZywgJyN7JGJ0bi1jbG9zZS1jb2xvcn0nLCAkY29sb3IpLCAnIycsICclMjMnKTtcbiAgICB9XG5cbiAgICAuYWxlcnQtbGluayB7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5jYXJkIHtcbiAgICAjeyRwYXJlbnR9IHtcbiAgICAgIGhyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBHcmFkaWVudHNcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGdyYWRpZW50LWJnLW1peGluXG5AbWl4aW4gZ3JhZGllbnQtYmcoJGNvbG9yOiBudWxsKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcblxuICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ncmFkaWVudCk7XG4gIH1cbn1cbi8vIHNjc3MtZG9jcy1lbmQgZ3JhZGllbnQtYmctbWl4aW5cblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGdyYWRpZW50LW1peGluc1xuLy8gSG9yaXpvbnRhbCBncmFkaWVudCwgZnJvbSBsZWZ0IHRvIHJpZ2h0XG4vL1xuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbkBtaXhpbiBncmFkaWVudC14KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XG59XG5cbi8vIFZlcnRpY2FsIGdyYWRpZW50LCBmcm9tIHRvcCB0byBib3R0b21cbi8vXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuQG1peGluIGdyYWRpZW50LXkoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJHN0YXJ0LXBlcmNlbnQ6IG51bGwsICRlbmQtcGVyY2VudDogbnVsbCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcbn1cblxuQG1peGluIGdyYWRpZW50LWRpcmVjdGlvbmFsKCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRkZWc6IDQ1ZGVnKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnQtY29sb3IsICRlbmQtY29sb3IpO1xufVxuXG5AbWl4aW4gZ3JhZGllbnQteC10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAkYmx1ZSwgJG1pZC1jb2xvcjogJHB1cnBsZSwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogJHJlZCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG59XG5cbkBtaXhpbiBncmFkaWVudC15LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtcmFkaWFsKCRpbm5lci1jb2xvcjogJGdyYXktNzAwLCAkb3V0ZXItY29sb3I6ICRncmF5LTgwMCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAkaW5uZXItY29sb3IsICRvdXRlci1jb2xvcik7XG59XG5cbkBtaXhpbiBncmFkaWVudC1zdHJpcGVkKCRjb2xvcjogcmdiYSgkd2hpdGUsIC4xNSksICRhbmdsZTogNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsICRjb2xvciA1MCUsICRjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuLy8gc2Nzcy1kb2NzLWVuZCBncmFkaWVudC1taXhpbnNcbiIsIi8vIEFjY29yZGlvblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyBIZWFkZXIgdGV4dCBjb2xvciBhY2NvcmRpb25cbkBtaXhpbiB0ZW1wbGF0ZS1hY2NvcmRpb24taGVhZGVyLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQpIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgJiN7JHBhcmVudH0ge1xuICAgICAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIC5hY2NvcmRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gVG9vbHRpcHNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQG1peGluIHRlbXBsYXRlLXRvb2x0aXAtdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICN7JHBhcmVudH0ge1xuICAgIC50b29sdGlwLWlubmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCBjb2xvci1jb250cmFzdCgkYmFja2dyb3VuZCkpO1xuICAgICAgYm94LXNoYWRvdzogMCAwLjEyNXJlbSAwLjI1cmVtIDAgcmdiYSgkYmFja2dyb3VuZCwgMC40KTtcbiAgICB9XG5cbiAgICAmLmJzLXRvb2x0aXAtdG9wIC50b29sdGlwLWFycm93OjpiZWZvcmUge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJi5icy10b29sdGlwLXN0YXJ0IC50b29sdGlwLWFycm93OjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJzLXRvb2x0aXAtYm90dG9tIC50b29sdGlwLWFycm93OjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJi5icy10b29sdGlwLWVuZCAudG9vbHRpcC1hcnJvdzo6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBQb3BvdmVyc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5AbWl4aW4gdGVtcGxhdGUtcG9wb3Zlci12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgY29sb3ItY29udHJhc3QoJGJhY2tncm91bmQpKTtcblxuICAucG9wb3ZlciB7XG4gICAgJiN7JHBhcmVudH0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgYm94LXNoYWRvdzogMCAwLjEyNXJlbSAwLjI1cmVtIDAgcmdiYSgkYmFja2dyb3VuZCwgMC40KTtcblxuICAgICAgLnBvcG92ZXItaGVhZGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKGNvbG9yLWNvbnRyYXN0KCRiYWNrZ3JvdW5kKSwgMC4yKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5wb3BvdmVyLWJvZHkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHJnYmEoJGNvbG9yLCAwLjgpO1xuICAgICAgfVxuXG4gICAgICA+IC5wb3BvdmVyLWFycm93OjpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAmLmJzLXBvcG92ZXItdG9wID4gLnBvcG92ZXItYXJyb3c6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgICYuYnMtcG9wb3Zlci1lbmQgPiAucG9wb3Zlci1hcnJvdzo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmJzLXBvcG92ZXItYm90dG9tID4gLnBvcG92ZXItYXJyb3c6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgJi5icy1wb3BvdmVyLXN0YXJ0ID4gLnBvcG92ZXItYXJyb3c6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5icy1wb3BvdmVyLWJvdHRvbSAucG9wb3Zlci1oZWFkZXI6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEJvb3RzdHJhcCBmdW5jdGlvbnNcbi8vXG4vLyBVdGlsaXR5IG1peGlucyBhbmQgZnVuY3Rpb25zIGZvciBldmFsdWF0aW5nIHNvdXJjZSBjb2RlIGFjcm9zcyBvdXIgdmFyaWFibGVzLCBtYXBzLCBhbmQgbWl4aW5zLlxuXG4vLyBBc2NlbmRpbmdcbi8vIFVzZWQgdG8gZXZhbHVhdGUgU2FzcyBtYXBzIGxpa2Ugb3VyIGdyaWQgYnJlYWtwb2ludHMuXG5AbWl4aW4gX2Fzc2VydC1hc2NlbmRpbmcoJG1hcCwgJG1hcC1uYW1lKSB7XG4gICRwcmV2LWtleTogbnVsbDtcbiAgJHByZXYtbnVtOiBudWxsO1xuICBAZWFjaCAka2V5LCAkbnVtIGluICRtYXAge1xuICAgIEBpZiAkcHJldi1udW0gPT0gbnVsbCBvciB1bml0KCRudW0pID09IFwiJVwiIG9yIHVuaXQoJHByZXYtbnVtKSA9PSBcIiVcIiB7XG4gICAgICAvLyBEbyBub3RoaW5nXG4gICAgfSBAZWxzZSBpZiBub3QgY29tcGFyYWJsZSgkcHJldi1udW0sICRudW0pIHtcbiAgICAgIEB3YXJuIFwiUG90ZW50aWFsbHkgaW52YWxpZCB2YWx1ZSBmb3IgI3skbWFwLW5hbWV9OiBUaGlzIG1hcCBtdXN0IGJlIGluIGFzY2VuZGluZyBvcmRlciwgYnV0IGtleSAnI3ska2V5fScgaGFzIHZhbHVlICN7JG51bX0gd2hvc2UgdW5pdCBtYWtlcyBpdCBpbmNvbXBhcmFibGUgdG8gI3skcHJldi1udW19LCB0aGUgdmFsdWUgb2YgdGhlIHByZXZpb3VzIGtleSAnI3skcHJldi1rZXl9JyAhXCI7XG4gICAgfSBAZWxzZSBpZiAkcHJldi1udW0gPj0gJG51bSB7XG4gICAgICBAd2FybiBcIkludmFsaWQgdmFsdWUgZm9yICN7JG1hcC1uYW1lfTogVGhpcyBtYXAgbXVzdCBiZSBpbiBhc2NlbmRpbmcgb3JkZXIsIGJ1dCBrZXkgJyN7JGtleX0nIGhhcyB2YWx1ZSAjeyRudW19IHdoaWNoIGlzbid0IGdyZWF0ZXIgdGhhbiAjeyRwcmV2LW51bX0sIHRoZSB2YWx1ZSBvZiB0aGUgcHJldmlvdXMga2V5ICcjeyRwcmV2LWtleX0nICFcIjtcbiAgICB9XG4gICAgJHByZXYta2V5OiAka2V5O1xuICAgICRwcmV2LW51bTogJG51bTtcbiAgfVxufVxuXG4vLyBTdGFydHMgYXQgemVyb1xuLy8gVXNlZCB0byBlbnN1cmUgdGhlIG1pbi13aWR0aCBvZiB0aGUgbG93ZXN0IGJyZWFrcG9pbnQgc3RhcnRzIGF0IDAuXG5AbWl4aW4gX2Fzc2VydC1zdGFydHMtYXQtemVybygkbWFwLCAkbWFwLW5hbWU6IFwiJGdyaWQtYnJlYWtwb2ludHNcIikge1xuICBAaWYgbGVuZ3RoKCRtYXApID4gMCB7XG4gICAgJHZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcbiAgICAkZmlyc3QtdmFsdWU6IG50aCgkdmFsdWVzLCAxKTtcbiAgICBAaWYgJGZpcnN0LXZhbHVlICE9IDAge1xuICAgICAgQHdhcm4gXCJGaXJzdCBicmVha3BvaW50IGluICN7JG1hcC1uYW1lfSBtdXN0IHN0YXJ0IGF0IDAsIGJ1dCBzdGFydHMgYXQgI3skZmlyc3QtdmFsdWV9LlwiO1xuICAgIH1cbiAgfVxufVxuXG4vLyBDb2xvcnNcbkBmdW5jdGlvbiB0by1yZ2IoJHZhbHVlKSB7XG4gIEByZXR1cm4gcmVkKCR2YWx1ZSksIGdyZWVuKCR2YWx1ZSksIGJsdWUoJHZhbHVlKTtcbn1cblxuLy8gc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kb2xsYXItdmFyaWFibGUtcGF0dGVyblxuQGZ1bmN0aW9uIHJnYmEtY3NzLXZhcigkaWRlbnRpZmllciwgJHRhcmdldCkge1xuICBAaWYgJGlkZW50aWZpZXIgPT0gXCJib2R5XCIgYW5kICR0YXJnZXQgPT0gXCJiZ1wiIHtcbiAgICBAcmV0dXJuIHJnYmEodmFyKC0tI3skdmFyaWFibGUtcHJlZml4fSN7JGlkZW50aWZpZXJ9LWJnLXJnYiksIHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH0jeyR0YXJnZXR9LW9wYWNpdHkpKTtcbiAgfSBAaWYgJGlkZW50aWZpZXIgPT0gXCJib2R5XCIgYW5kICR0YXJnZXQgPT0gXCJ0ZXh0XCIge1xuICAgIEByZXR1cm4gcmdiYSh2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9I3skaWRlbnRpZmllcn0tY29sb3ItcmdiKSwgdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fSN7JHRhcmdldH0tb3BhY2l0eSkpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHJnYmEodmFyKC0tI3skdmFyaWFibGUtcHJlZml4fSN7JGlkZW50aWZpZXJ9LXJnYiksIHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH0jeyR0YXJnZXR9LW9wYWNpdHkpKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gbWFwLWxvb3AoJG1hcCwgJGZ1bmMsICRhcmdzLi4uKSB7XG4gICRfbWFwOiAoKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgLy8gYWxsb3cgdG8gcGFzcyB0aGUgJGtleSBhbmQgJHZhbHVlIG9mIHRoZSBtYXAgYXMgYW4gZnVuY3Rpb24gYXJndW1lbnRcbiAgICAkX2FyZ3M6ICgpO1xuICAgIEBlYWNoICRhcmcgaW4gJGFyZ3Mge1xuICAgICAgJF9hcmdzOiBhcHBlbmQoJF9hcmdzLCBpZigkYXJnID09IFwiJGtleVwiLCAka2V5LCBpZigkYXJnID09IFwiJHZhbHVlXCIsICR2YWx1ZSwgJGFyZykpKTtcbiAgICB9XG5cbiAgICAkX21hcDogbWFwLW1lcmdlKCRfbWFwLCAoJGtleTogY2FsbChnZXQtZnVuY3Rpb24oJGZ1bmMpLCAkX2FyZ3MuLi4pKSk7XG4gIH1cblxuICBAcmV0dXJuICRfbWFwO1xufVxuLy8gc3R5bGVsaW50LWVuYWJsZSBzY3NzL2RvbGxhci12YXJpYWJsZS1wYXR0ZXJuXG5cbkBmdW5jdGlvbiB2YXJpZnkoJGxpc3QpIHtcbiAgJHJlc3VsdDogbnVsbDtcbiAgQGVhY2ggJGVudHJ5IGluICRsaXN0IHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fSN7JGVudHJ5fSksIHNwYWNlKTtcbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vIEludGVybmFsIEJvb3RzdHJhcCBmdW5jdGlvbiB0byB0dXJuIG1hcHMgaW50byBpdHMgbmVnYXRpdmUgdmFyaWFudC5cbi8vIEl0IHByZWZpeGVzIHRoZSBrZXlzIHdpdGggYG5gIGFuZCBtYWtlcyB0aGUgdmFsdWUgbmVnYXRpdmUuXG5AZnVuY3Rpb24gbmVnYXRpdmlmeS1tYXAoJG1hcCkge1xuICAkcmVzdWx0OiAoKTtcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgIEBpZiAka2V5ICE9IDAge1xuICAgICAgJHJlc3VsdDogbWFwLW1lcmdlKCRyZXN1bHQsIChcIm5cIiArICRrZXk6ICgtJHZhbHVlKSkpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vIEdldCBtdWx0aXBsZSBrZXlzIGZyb20gYSBzYXNzIG1hcFxuQGZ1bmN0aW9uIG1hcC1nZXQtbXVsdGlwbGUoJG1hcCwgJHZhbHVlcykge1xuICAkcmVzdWx0OiAoKTtcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgIEBpZiAoaW5kZXgoJHZhbHVlcywgJGtleSkgIT0gbnVsbCkge1xuICAgICAgJHJlc3VsdDogbWFwLW1lcmdlKCRyZXN1bHQsICgka2V5OiAkdmFsdWUpKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLyBNZXJnZSBtdWx0aXBsZSBtYXBzXG5AZnVuY3Rpb24gbWFwLW1lcmdlLW11bHRpcGxlKCRtYXBzLi4uKSB7XG4gICRtZXJnZWQtbWFwczogKCk7XG5cbiAgQGVhY2ggJG1hcCBpbiAkbWFwcyB7XG4gICAgJG1lcmdlZC1tYXBzOiBtYXAtbWVyZ2UoJG1lcmdlZC1tYXBzLCAkbWFwKTtcbiAgfVxuICBAcmV0dXJuICRtZXJnZWQtbWFwcztcbn1cblxuLy8gUmVwbGFjZSBgJHNlYXJjaGAgd2l0aCBgJHJlcGxhY2VgIGluIGAkc3RyaW5nYFxuLy8gVXNlZCBvbiBvdXIgU1ZHIGljb24gYmFja2dyb3VuZHMgZm9yIGN1c3RvbSBmb3Jtcy5cbi8vXG4vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyaW5nIC0gSW5pdGlhbCBzdHJpbmdcbi8vIEBwYXJhbSB7U3RyaW5nfSAkc2VhcmNoIC0gU3Vic3RyaW5nIHRvIHJlcGxhY2Vcbi8vIEBwYXJhbSB7U3RyaW5nfSAkcmVwbGFjZSAoJycpIC0gTmV3IHZhbHVlXG4vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVXBkYXRlZCBzdHJpbmdcbkBmdW5jdGlvbiBzdHItcmVwbGFjZSgkc3RyaW5nLCAkc2VhcmNoLCAkcmVwbGFjZTogXCJcIikge1xuICAkaW5kZXg6IHN0ci1pbmRleCgkc3RyaW5nLCAkc2VhcmNoKTtcblxuICBAaWYgJGluZGV4IHtcbiAgICBAcmV0dXJuIHN0ci1zbGljZSgkc3RyaW5nLCAxLCAkaW5kZXggLSAxKSArICRyZXBsYWNlICsgc3RyLXJlcGxhY2Uoc3RyLXNsaWNlKCRzdHJpbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJHNlYXJjaCkpLCAkc2VhcmNoLCAkcmVwbGFjZSk7XG4gIH1cblxuICBAcmV0dXJuICRzdHJpbmc7XG59XG5cbi8vIFNlZSBodHRwczovL2NvZGVwZW4uaW8va2V2aW53ZWJlci9wZW4vZFhXb1J3XG4vL1xuLy8gUmVxdWlyZXMgdGhlIHVzZSBvZiBxdW90ZXMgYXJvdW5kIGRhdGEgVVJJcy5cblxuQGZ1bmN0aW9uIGVzY2FwZS1zdmcoJHN0cmluZykge1xuICBAaWYgc3RyLWluZGV4KCRzdHJpbmcsIFwiZGF0YTppbWFnZS9zdmcreG1sXCIpIHtcbiAgICBAZWFjaCAkY2hhciwgJGVuY29kZWQgaW4gJGVzY2FwZWQtY2hhcmFjdGVycyB7XG4gICAgICAvLyBEbyBub3QgZXNjYXBlIHRoZSB1cmwgYnJhY2tldHNcbiAgICAgIEBpZiBzdHItaW5kZXgoJHN0cmluZywgXCJ1cmwoXCIpID09IDEge1xuICAgICAgICAkc3RyaW5nOiB1cmwoXCIje3N0ci1yZXBsYWNlKHN0ci1zbGljZSgkc3RyaW5nLCA2LCAtMyksICRjaGFyLCAkZW5jb2RlZCl9XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzdHJpbmc6IHN0ci1yZXBsYWNlKCRzdHJpbmcsICRjaGFyLCAkZW5jb2RlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3RyaW5nO1xufVxuXG4vLyBDb2xvciBjb250cmFzdFxuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzMwMTY4XG5cbi8vIEEgbGlzdCBvZiBwcmUtY2FsY3VsYXRlZCBudW1iZXJzIG9mIHBvdyhkaXZpZGUoKGRpdmlkZSgkdmFsdWUsIDI1NSkgKyAuMDU1KSwgMS4wNTUpLCAyLjQpLiAoZnJvbSAwIHRvIDI1NSlcbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0LCBzY3NzL2RvbGxhci12YXJpYWJsZS1wYXR0ZXJuXG4kX2x1bWluYW5jZS1saXN0OiAuMDAwOCAuMDAxIC4wMDExIC4wMDEzIC4wMDE1IC4wMDE3IC4wMDIgLjAwMjIgLjAwMjUgLjAwMjcgLjAwMyAuMDAzMyAuMDAzNyAuMDA0IC4wMDQ0IC4wMDQ4IC4wMDUyIC4wMDU2IC4wMDYgLjAwNjUgLjAwNyAuMDA3NSAuMDA4IC4wMDg2IC4wMDkxIC4wMDk3IC4wMTAzIC4wMTEgLjAxMTYgLjAxMjMgLjAxMyAuMDEzNyAuMDE0NCAuMDE1MiAuMDE2IC4wMTY4IC4wMTc2IC4wMTg1IC4wMTk0IC4wMjAzIC4wMjEyIC4wMjIyIC4wMjMyIC4wMjQyIC4wMjUyIC4wMjYyIC4wMjczIC4wMjg0IC4wMjk2IC4wMzA3IC4wMzE5IC4wMzMxIC4wMzQzIC4wMzU2IC4wMzY5IC4wMzgyIC4wMzk1IC4wNDA5IC4wNDIzIC4wNDM3IC4wNDUyIC4wNDY3IC4wNDgyIC4wNDk3IC4wNTEzIC4wNTI5IC4wNTQ1IC4wNTYxIC4wNTc4IC4wNTk1IC4wNjEyIC4wNjMgLjA2NDggLjA2NjYgLjA2ODUgLjA3MDQgLjA3MjMgLjA3NDIgLjA3NjIgLjA3ODIgLjA4MDIgLjA4MjMgLjA4NDQgLjA4NjUgLjA4ODcgLjA5MDggLjA5MzEgLjA5NTMgLjA5NzYgLjA5OTkgLjEwMjIgLjEwNDYgLjEwNyAuMTA5NSAuMTExOSAuMTE0NCAuMTE3IC4xMTk1IC4xMjIxIC4xMjQ4IC4xMjc0IC4xMzAxIC4xMzI5IC4xMzU2IC4xMzg0IC4xNDEzIC4xNDQxIC4xNDcgLjE1IC4xNTI5IC4xNTU5IC4xNTkgLjE2MiAuMTY1MSAuMTY4MyAuMTcxNCAuMTc0NiAuMTc3OSAuMTgxMiAuMTg0NSAuMTg3OCAuMTkxMiAuMTk0NiAuMTk4MSAuMjAxNiAuMjA1MSAuMjA4NiAuMjEyMiAuMjE1OSAuMjE5NSAuMjIzMiAuMjI3IC4yMzA3IC4yMzQ2IC4yMzg0IC4yNDIzIC4yNDYyIC4yNTAyIC4yNTQyIC4yNTgyIC4yNjIzIC4yNjY0IC4yNzA1IC4yNzQ3IC4yNzg5IC4yODMxIC4yODc0IC4yOTE4IC4yOTYxIC4zMDA1IC4zMDUgLjMwOTUgLjMxNCAuMzE4NSAuMzIzMSAuMzI3OCAuMzMyNSAuMzM3MiAuMzQxOSAuMzQ2NyAuMzUxNSAuMzU2NCAuMzYxMyAuMzY2MyAuMzcxMiAuMzc2MyAuMzgxMyAuMzg2NCAuMzkxNiAuMzk2OCAuNDAyIC40MDcyIC40MTI1IC40MTc5IC40MjMzIC40Mjg3IC40MzQyIC40Mzk3IC40NDUyIC40NTA4IC40NTY0IC40NjIxIC40Njc4IC40NzM1IC40NzkzIC40ODUxIC40OTEgLjQ5NjkgLjUwMjkgLjUwODkgLjUxNDkgLjUyMSAuNTI3MSAuNTMzMyAuNTM5NSAuNTQ1NyAuNTUyIC41NTgzIC41NjQ3IC41NzExIC41Nzc2IC41ODQxIC41OTA2IC41OTcyIC42MDM4IC42MTA1IC42MTcyIC42MjQgLjYzMDggLjYzNzYgLjY0NDUgLjY1MTQgLjY1ODQgLjY2NTQgLjY3MjQgLjY3OTUgLjY4NjcgLjY5MzkgLjcwMTEgLjcwODQgLjcxNTcgLjcyMzEgLjczMDUgLjczNzkgLjc0NTQgLjc1MjkgLjc2MDUgLjc2ODIgLjc3NTggLjc4MzUgLjc5MTMgLjc5OTEgLjgwNyAuODE0OCAuODIyOCAuODMwOCAuODM4OCAuODQ2OSAuODU1IC44NjMyIC44NzE0IC44Nzk2IC44ODc5IC44OTYzIC45MDQ3IC45MTMxIC45MjE2IC45MzAxIC45Mzg3IC45NDczIC45NTYgLjk2NDcgLjk3MzQgLjk4MjMgLjk5MTEgMTtcblxuQGZ1bmN0aW9uIGNvbG9yLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAkY29sb3ItY29udHJhc3QtZGFyazogJGNvbG9yLWNvbnRyYXN0LWRhcmssICRjb2xvci1jb250cmFzdC1saWdodDogJGNvbG9yLWNvbnRyYXN0LWxpZ2h0LCAkbWluLWNvbnRyYXN0LXJhdGlvOiAkbWluLWNvbnRyYXN0LXJhdGlvKSB7XG4gICRmb3JlZ3JvdW5kczogJGNvbG9yLWNvbnRyYXN0LWxpZ2h0LCAkY29sb3ItY29udHJhc3QtZGFyaywgJHdoaXRlLCAkYmxhY2s7XG4gICRtYXgtcmF0aW86IDA7XG4gICRtYXgtcmF0aW8tY29sb3I6IG51bGw7XG5cbiAgQGVhY2ggJGNvbG9yIGluICRmb3JlZ3JvdW5kcyB7XG4gICAgJGNvbnRyYXN0LXJhdGlvOiBjb250cmFzdC1yYXRpbygkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgICBAaWYgJGNvbnRyYXN0LXJhdGlvID4gJG1pbi1jb250cmFzdC1yYXRpbyB7XG4gICAgICBAcmV0dXJuICRjb2xvcjtcbiAgICB9IEBlbHNlIGlmICRjb250cmFzdC1yYXRpbyA+ICRtYXgtcmF0aW8ge1xuICAgICAgJG1heC1yYXRpbzogJGNvbnRyYXN0LXJhdGlvO1xuICAgICAgJG1heC1yYXRpby1jb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIEB3YXJuIFwiRm91bmQgbm8gY29sb3IgbGVhZGluZyB0byAjeyRtaW4tY29udHJhc3QtcmF0aW99OjEgY29udHJhc3QgcmF0aW8gYWdhaW5zdCAjeyRiYWNrZ3JvdW5kfS4uLlwiO1xuXG4gIEByZXR1cm4gJG1heC1yYXRpby1jb2xvcjtcbn1cblxuQGZ1bmN0aW9uIGNvbnRyYXN0LXJhdGlvKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDogJGNvbG9yLWNvbnRyYXN0LWxpZ2h0KSB7XG4gICRsMTogbHVtaW5hbmNlKCRiYWNrZ3JvdW5kKTtcbiAgJGwyOiBsdW1pbmFuY2Uob3BhcXVlKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZCkpO1xuXG4gIEByZXR1cm4gaWYoJGwxID4gJGwyLCBkaXZpZGUoJGwxICsgLjA1LCAkbDIgKyAuMDUpLCBkaXZpZGUoJGwyICsgLjA1LCAkbDEgKyAuMDUpKTtcbn1cblxuLy8gUmV0dXJuIFdDQUcyLjAgcmVsYXRpdmUgbHVtaW5hbmNlXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1dBSS9HTC93aWtpL1JlbGF0aXZlX2x1bWluYW5jZVxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9XQ0FHMjAtVEVDSFMvRzE3Lmh0bWwjRzE3LXRlc3RzXG5AZnVuY3Rpb24gbHVtaW5hbmNlKCRjb2xvcikge1xuICAkcmdiOiAoXG4gICAgXCJyXCI6IHJlZCgkY29sb3IpLFxuICAgIFwiZ1wiOiBncmVlbigkY29sb3IpLFxuICAgIFwiYlwiOiBibHVlKCRjb2xvcilcbiAgKTtcblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRyZ2Ige1xuICAgICR2YWx1ZTogaWYoZGl2aWRlKCR2YWx1ZSwgMjU1KSA8IC4wMzkyOCwgZGl2aWRlKGRpdmlkZSgkdmFsdWUsIDI1NSksIDEyLjkyKSwgbnRoKCRfbHVtaW5hbmNlLWxpc3QsICR2YWx1ZSArIDEpKTtcbiAgICAkcmdiOiBtYXAtbWVyZ2UoJHJnYiwgKCRuYW1lOiAkdmFsdWUpKTtcbiAgfVxuXG4gIEByZXR1cm4gKG1hcC1nZXQoJHJnYiwgXCJyXCIpICogLjIxMjYpICsgKG1hcC1nZXQoJHJnYiwgXCJnXCIpICogLjcxNTIpICsgKG1hcC1nZXQoJHJnYiwgXCJiXCIpICogLjA3MjIpO1xufVxuXG4vLyBSZXR1cm4gb3BhcXVlIGNvbG9yXG4vLyBvcGFxdWUoI2ZmZiwgcmdiYSgwLCAwLCAwLCAuNSkpID0+ICM4MDgwODBcbkBmdW5jdGlvbiBvcGFxdWUoJGJhY2tncm91bmQsICRmb3JlZ3JvdW5kKSB7XG4gIEByZXR1cm4gbWl4KHJnYmEoJGZvcmVncm91bmQsIDEpLCAkYmFja2dyb3VuZCwgb3BhY2l0eSgkZm9yZWdyb3VuZCkgKiAxMDApO1xufVxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgY29sb3ItZnVuY3Rpb25zXG4vLyBUaW50IGEgY29sb3I6IG1peCBhIGNvbG9yIHdpdGggd2hpdGVcbkBmdW5jdGlvbiB0aW50LWNvbG9yKCRjb2xvciwgJHdlaWdodCkge1xuICBAcmV0dXJuIG1peCh3aGl0ZSwgJGNvbG9yLCAkd2VpZ2h0KTtcbn1cblxuLy8gU2hhZGUgYSBjb2xvcjogbWl4IGEgY29sb3Igd2l0aCBibGFja1xuQGZ1bmN0aW9uIHNoYWRlLWNvbG9yKCRjb2xvciwgJHdlaWdodCkge1xuICBAcmV0dXJuIG1peChibGFjaywgJGNvbG9yLCAkd2VpZ2h0KTtcbn1cblxuLy8gU2hhZGUgdGhlIGNvbG9yIGlmIHRoZSB3ZWlnaHQgaXMgcG9zaXRpdmUsIGVsc2UgdGludCBpdFxuQGZ1bmN0aW9uIHNoaWZ0LWNvbG9yKCRjb2xvciwgJHdlaWdodCkge1xuICBAcmV0dXJuIGlmKCR3ZWlnaHQgPiAwLCBzaGFkZS1jb2xvcigkY29sb3IsICR3ZWlnaHQpLCB0aW50LWNvbG9yKCRjb2xvciwgLSR3ZWlnaHQpKTtcbn1cbi8vIHNjc3MtZG9jcy1lbmQgY29sb3ItZnVuY3Rpb25zXG5cbi8vIFJldHVybiB2YWxpZCBjYWxjXG5AZnVuY3Rpb24gYWRkKCR2YWx1ZTEsICR2YWx1ZTIsICRyZXR1cm4tY2FsYzogdHJ1ZSkge1xuICBAaWYgJHZhbHVlMSA9PSBudWxsIHtcbiAgICBAcmV0dXJuICR2YWx1ZTI7XG4gIH1cblxuICBAaWYgJHZhbHVlMiA9PSBudWxsIHtcbiAgICBAcmV0dXJuICR2YWx1ZTE7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkdmFsdWUxKSA9PSBudW1iZXIgYW5kIHR5cGUtb2YoJHZhbHVlMikgPT0gbnVtYmVyIGFuZCBjb21wYXJhYmxlKCR2YWx1ZTEsICR2YWx1ZTIpIHtcbiAgICBAcmV0dXJuICR2YWx1ZTEgKyAkdmFsdWUyO1xuICB9XG5cbiAgQHJldHVybiBpZigkcmV0dXJuLWNhbGMgPT0gdHJ1ZSwgY2FsYygjeyR2YWx1ZTF9ICsgI3skdmFsdWUyfSksICR2YWx1ZTEgKyB1bnF1b3RlKFwiICsgXCIpICsgJHZhbHVlMik7XG59XG5cbkBmdW5jdGlvbiBzdWJ0cmFjdCgkdmFsdWUxLCAkdmFsdWUyLCAkcmV0dXJuLWNhbGM6IHRydWUpIHtcbiAgQGlmICR2YWx1ZTEgPT0gbnVsbCBhbmQgJHZhbHVlMiA9PSBudWxsIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICBAaWYgJHZhbHVlMSA9PSBudWxsIHtcbiAgICBAcmV0dXJuIC0kdmFsdWUyO1xuICB9XG5cbiAgQGlmICR2YWx1ZTIgPT0gbnVsbCB7XG4gICAgQHJldHVybiAkdmFsdWUxO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHZhbHVlMSkgPT0gbnVtYmVyIGFuZCB0eXBlLW9mKCR2YWx1ZTIpID09IG51bWJlciBhbmQgY29tcGFyYWJsZSgkdmFsdWUxLCAkdmFsdWUyKSB7XG4gICAgQHJldHVybiAkdmFsdWUxIC0gJHZhbHVlMjtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZTIpICE9IG51bWJlciB7XG4gICAgJHZhbHVlMjogdW5xdW90ZShcIihcIikgKyAkdmFsdWUyICsgdW5xdW90ZShcIilcIik7XG4gIH1cblxuICBAcmV0dXJuIGlmKCRyZXR1cm4tY2FsYyA9PSB0cnVlLCBjYWxjKCN7JHZhbHVlMX0gLSAjeyR2YWx1ZTJ9KSwgJHZhbHVlMSArIHVucXVvdGUoXCIgLSBcIikgKyAkdmFsdWUyKTtcbn1cblxuQGZ1bmN0aW9uIGRpdmlkZSgkZGl2aWRlbmQsICRkaXZpc29yLCAkcHJlY2lzaW9uOiAxMCkge1xuICAkc2lnbjogaWYoJGRpdmlkZW5kID4gMCBhbmQgJGRpdmlzb3IgPiAwIG9yICRkaXZpZGVuZCA8IDAgYW5kICRkaXZpc29yIDwgMCwgMSwgLTEpO1xuICAkZGl2aWRlbmQ6IGFicygkZGl2aWRlbmQpO1xuICAkZGl2aXNvcjogYWJzKCRkaXZpc29yKTtcbiAgQGlmICRkaXZpZGVuZCA9PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cbiAgQGlmICRkaXZpc29yID09IDAge1xuICAgIEBlcnJvciBcIkNhbm5vdCBkaXZpZGUgYnkgMFwiO1xuICB9XG4gICRyZW1haW5kZXI6ICRkaXZpZGVuZDtcbiAgJHJlc3VsdDogMDtcbiAgJGZhY3RvcjogMTA7XG4gIEB3aGlsZSAoJHJlbWFpbmRlciA+IDAgYW5kICRwcmVjaXNpb24gPj0gMCkge1xuICAgICRxdW90aWVudDogMDtcbiAgICBAd2hpbGUgKCRyZW1haW5kZXIgPj0gJGRpdmlzb3IpIHtcbiAgICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgLSAkZGl2aXNvcjtcbiAgICAgICRxdW90aWVudDogJHF1b3RpZW50ICsgMTtcbiAgICB9XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgJHF1b3RpZW50O1xuICAgICRmYWN0b3I6ICRmYWN0b3IgKiAuMTtcbiAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyICogMTA7XG4gICAgJHByZWNpc2lvbjogJHByZWNpc2lvbiAtIDE7XG4gICAgQGlmICgkcHJlY2lzaW9uIDwgMCBhbmQgJHJlbWFpbmRlciA+PSAkZGl2aXNvciAqIDUpIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAxO1xuICAgIH1cbiAgfVxuICAkcmVzdWx0OiAkcmVzdWx0ICogJGZhY3RvciAqICRzaWduO1xuICAkZGl2aWRlbmQtdW5pdDogdW5pdCgkZGl2aWRlbmQpO1xuICAkZGl2aXNvci11bml0OiB1bml0KCRkaXZpc29yKTtcbiAgJHVuaXQtbWFwOiAoXG4gICAgXCJweFwiOiAxcHgsXG4gICAgXCJyZW1cIjogMXJlbSxcbiAgICBcImVtXCI6IDFlbSxcbiAgICBcIiVcIjogMSVcbiAgKTtcbiAgQGlmICgkZGl2aWRlbmQtdW5pdCAhPSAkZGl2aXNvci11bml0IGFuZCBtYXAtaGFzLWtleSgkdW5pdC1tYXAsICRkaXZpZGVuZC11bml0KSkge1xuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiBtYXAtZ2V0KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpO1xuICB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cbiIsIi8vIFRhYmxlc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5AbWl4aW4gdGVtcGxhdGUtdGFibGUtdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGxheW91dC1jb2xvcjogJHdoaXRlKSB7XG4gIC50YWJsZS0jeyRwYXJlbnR9IHtcbiAgICAkY29sb3I6IGNvbG9yLWNvbnRyYXN0KG9wYXF1ZSgkYm9keS1iZywgJGJhY2tncm91bmQpKTtcbiAgICAkaG92ZXItYmc6IG1peCgkY29sb3IsICRiYWNrZ3JvdW5kLCBwZXJjZW50YWdlKCR0YWJsZS1ob3Zlci1iZy1mYWN0b3IpKTtcbiAgICAkc3RyaXBlZC1iZzogbWl4KCRjb2xvciwgJGJhY2tncm91bmQsIHBlcmNlbnRhZ2UoJHRhYmxlLXN0cmlwZWQtYmctZmFjdG9yKSk7XG4gICAgJGFjdGl2ZS1iZzogbWl4KCRjb2xvciwgJGJhY2tncm91bmQsIHBlcmNlbnRhZ2UoJHRhYmxlLWFjdGl2ZS1iZy1mYWN0b3IpKTtcbiAgICAkZGFyay1ib3JkZXItY29sb3I6IGlmKCRwYXJlbnQgPT0gJ2RhcmsnLCBtaXgoJGNvbG9yLCAkYmFja2dyb3VuZCwgcGVyY2VudGFnZSgkdGFibGUtYm9yZGVyLWZhY3RvcikpLCBpbmhlcml0KTtcblxuICAgIC0tI3skdmFyaWFibGUtcHJlZml4fXRhYmxlLWJnOiAjeyRiYWNrZ3JvdW5kfTtcbiAgICAtLSN7JHZhcmlhYmxlLXByZWZpeH10YWJsZS1zdHJpcGVkLWJnOiAjeyRzdHJpcGVkLWJnfTtcbiAgICAtLSN7JHZhcmlhYmxlLXByZWZpeH10YWJsZS1zdHJpcGVkLWNvbG9yOiAje2NvbG9yLWNvbnRyYXN0KCRzdHJpcGVkLWJnKX07XG4gICAgLS0jeyR2YXJpYWJsZS1wcmVmaXh9dGFibGUtYWN0aXZlLWJnOiAjeyRhY3RpdmUtYmd9O1xuICAgIC0tI3skdmFyaWFibGUtcHJlZml4fXRhYmxlLWFjdGl2ZS1jb2xvcjogI3tjb2xvci1jb250cmFzdCgkYWN0aXZlLWJnKX07XG4gICAgLS0jeyR2YXJpYWJsZS1wcmVmaXh9dGFibGUtaG92ZXItYmc6ICN7JGhvdmVyLWJnfTtcbiAgICAtLSN7JHZhcmlhYmxlLXByZWZpeH10YWJsZS1ob3Zlci1jb2xvcjogI3tjb2xvci1jb250cmFzdCgkaG92ZXItYmcpfTtcblxuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiBtaXgoJGNvbG9yLCAkYmFja2dyb3VuZCwgcGVyY2VudGFnZSgkdGFibGUtYm9yZGVyLWZhY3RvcikpO1xuICAgIC8vIEhpZ2hsaWdodCBib3JkZXIgY29sb3IgYmV0d2VlbiB0aGVhZCwgdGJvZHkgYW5kIHRmb290LlxuICAgIHRoIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvciAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5idG4taWNvbiB7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gQnV0dG9uc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyBCYXNpY1xuQG1peGluIGJ1dHRvbi12YXJpYW50KCRiYWNrZ3JvdW5kOiBudWxsLCAkYm9yZGVyOiBudWxsLCAkYWN0aXZlLWJhY2tncm91bmQ6IG51bGwsICRhY3RpdmUtYm9yZGVyOiBudWxsKSB7XG59XG5AbWl4aW4gdGVtcGxhdGUtYnV0dG9uLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCwgJGJvcmRlcjogbnVsbCkge1xuICAkYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICRib3JkZXI6ICRiYWNrZ3JvdW5kO1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCBjb2xvci1jb250cmFzdCgkYmFja2dyb3VuZCkpO1xuICAkaG92ZXItYmFja2dyb3VuZDogaWYoXG4gICAgJGNvbG9yID09ICRjb2xvci1jb250cmFzdC1saWdodCxcbiAgICBzaGFkZS1jb2xvcigkYmFja2dyb3VuZCwgJGJ0bi1ob3Zlci1iZy1zaGFkZS1hbW91bnQpLFxuICAgIHRpbnQtY29sb3IoJGJhY2tncm91bmQsICRidG4taG92ZXItYmctdGludC1hbW91bnQpXG4gICk7XG4gICRob3Zlci1ib3JkZXI6IGlmKFxuICAgICRjb2xvciA9PSAkY29sb3ItY29udHJhc3QtbGlnaHQsXG4gICAgc2hhZGUtY29sb3IoJGJvcmRlciwgJGJ0bi1ob3Zlci1ib3JkZXItc2hhZGUtYW1vdW50KSxcbiAgICB0aW50LWNvbG9yKCRib3JkZXIsICRidG4taG92ZXItYm9yZGVyLXRpbnQtYW1vdW50KVxuICApO1xuICAkaG92ZXItY29sb3I6IGNvbG9yLWNvbnRyYXN0KCRob3Zlci1iYWNrZ3JvdW5kKTtcblxuICAkYWN0aXZlLWJhY2tncm91bmQ6IGlmKFxuICAgICRjb2xvciA9PSAkY29sb3ItY29udHJhc3QtbGlnaHQsXG4gICAgc2hhZGUtY29sb3IoJGJhY2tncm91bmQsICRidG4tYWN0aXZlLWJnLXNoYWRlLWFtb3VudCksXG4gICAgdGludC1jb2xvcigkYmFja2dyb3VuZCwgJGJ0bi1hY3RpdmUtYmctdGludC1hbW91bnQpXG4gICk7XG4gICRhY3RpdmUtYm9yZGVyOiBpZihcbiAgICAkY29sb3IgPT0gJGNvbG9yLWNvbnRyYXN0LWxpZ2h0LFxuICAgIHNoYWRlLWNvbG9yKCRib3JkZXIsICRidG4tYWN0aXZlLWJvcmRlci1zaGFkZS1hbW91bnQpLFxuICAgIHRpbnQtY29sb3IoJGJvcmRlciwgJGJ0bi1hY3RpdmUtYm9yZGVyLXRpbnQtYW1vdW50KVxuICApO1xuICAkYWN0aXZlLWNvbG9yOiBjb2xvci1jb250cmFzdCgkYWN0aXZlLWJhY2tncm91bmQpO1xuICAkZGlzYWJsZWQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICRkaXNhYmxlZC1ib3JkZXI6ICRib3JkZXI7XG4gICRkaXNhYmxlZC1jb2xvcjogY29sb3ItY29udHJhc3QoJGRpc2FibGVkLWJhY2tncm91bmQpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGJhY2tncm91bmQpO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRidG4tYm94LXNoYWRvdyk7XG4gICAgYm94LXNoYWRvdzogMCAwLjEyNXJlbSAwLjI1cmVtIDAgcmdiYSgkYmFja2dyb3VuZCwgMC40KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRob3Zlci1jb2xvcjtcbiAgICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICAgIGJvcmRlci1jb2xvcjogJGhvdmVyLWJvcmRlcjtcbiAgICAgIHRyYW5zZm9ybTogJGJ0bi1ob3Zlci10cmFuc2Zvcm07XG4gICAgfVxuXG4gICAgLmJ0bi1jaGVjazpmb2N1cyArICYsXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICBib3JkZXItY29sb3I6ICRob3Zlci1ib3JkZXI7XG4gICAgICB0cmFuc2Zvcm06ICRidG4tZm9jdXMtdHJhbnNmb3JtO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAuYnRuLWNoZWNrOmNoZWNrZWQgKyAmLFxuICAgIC5idG4tY2hlY2s6YWN0aXZlICsgJixcbiAgICAmOmFjdGl2ZSxcbiAgICAmLmFjdGl2ZSxcbiAgICAuc2hvdyA+ICYuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAgIGNvbG9yOiAkYWN0aXZlLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgICAgLy8gUmVtb3ZlIENTUyBncmFkaWVudHMgaWYgdGhleSdyZSBlbmFibGVkXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpZigkZW5hYmxlLWdyYWRpZW50cywgbm9uZSwgbnVsbCk7XG4gICAgICBib3JkZXItY29sb3I6ICRhY3RpdmUtYm9yZGVyO1xuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmRpc2FibGVkLFxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLz8gQnV0dG9uIGdyb3VwcyBib3JkZXIgKFVuY29tbWVudCBpZiBuZWVkZWQpXG4gIC8vIC5idG4tZ3JvdXAgI3skcGFyZW50fSxcbiAgLy8gLmlucHV0LWdyb3VwICN7JHBhcmVudH0ge1xuICAvLyAgIGJvcmRlci1yaWdodDogJGlucHV0LWJ0bi1ib3JkZXItd2lkdGggc29saWQgJGFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAvLyAgIGJvcmRlci1sZWZ0OiAkaW5wdXQtYnRuLWJvcmRlci13aWR0aCBzb2xpZCAkYWN0aXZlLWJhY2tncm91bmQ7XG4gIC8vIH1cbn1cblxuLy8gTGFiZWxcbkBtaXhpbiBidXR0b24tbGFiZWwtdmFyaWFudCgkYmFja2dyb3VuZDogbnVsbCwgJGJvcmRlcjogbnVsbCwgJGFjdGl2ZS1iYWNrZ3JvdW5kOiBudWxsLCAkYWN0aXZlLWJvcmRlcjogbnVsbCkge1xufVxuXG5AbWl4aW4gdGVtcGxhdGUtYnV0dG9uLWxhYmVsLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCwgJGJvcmRlcjogbnVsbCkge1xuICAvLyBVc2luZyB0aGUgJGRhcmstc3R5bGUgdmFyaWFibGUgZm9yIGNvbmRpdGlvbiBhcyBpbiBsYWJlbCBzdHlsZSB0ZXh0IGNvbG9yIGNhbid0IGNvbXBhcmUgd2l0aCAkY29sb3ItY29udHJhc3QtbGlnaHQvZGFya1xuICAkYm9yZGVyOiB0cmFuc3BhcmVudDtcblxuICAkbGFiZWwtY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCAkYmFja2dyb3VuZCk7XG4gICRob3Zlci1jb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIGNvbG9yLWNvbnRyYXN0KCRiYWNrZ3JvdW5kKSk7XG5cbiAgJGxhYmVsLWJhY2tncm91bmQ6IGlmKFxuICAgICRob3Zlci1jb2xvciA9PSAkY29sb3ItY29udHJhc3QtbGlnaHQsXG4gICAgc2hhZGUtY29sb3IoJGJhY2tncm91bmQsICRidG4tbGFiZWwtYmctc2hhZGUtYW1vdW50LCAkY2FyZC1iZyksXG4gICAgdGludC1jb2xvcigkYmFja2dyb3VuZCwgJGJ0bi1sYWJlbC1iZy10aW50LWFtb3VudCwgJGNhcmQtYmcpXG4gICk7XG5cbiAgJGhvdmVyLWJhY2tncm91bmQ6IGlmKFxuICAgICRob3Zlci1jb2xvciA9PSAkY29sb3ItY29udHJhc3QtbGlnaHQsXG4gICAgc2hhZGUtY29sb3IoJGJhY2tncm91bmQsICRidG4taG92ZXItYmctc2hhZGUtYW1vdW50KSxcbiAgICB0aW50LWNvbG9yKCRiYWNrZ3JvdW5kLCAkYnRuLWhvdmVyLWJnLXRpbnQtYW1vdW50KVxuICApO1xuXG4gICRhY3RpdmUtY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCBjb2xvci1jb250cmFzdCgkYmFja2dyb3VuZCkpO1xuICAkYWN0aXZlLWJhY2tncm91bmQ6IGlmKFxuICAgICRob3Zlci1jb2xvciA9PSAkY29sb3ItY29udHJhc3QtbGlnaHQsXG4gICAgc2hhZGUtY29sb3IoJGJhY2tncm91bmQsICRidG4tYWN0aXZlLWJnLXNoYWRlLWFtb3VudCksXG4gICAgdGludC1jb2xvcigkYmFja2dyb3VuZCwgJGJ0bi1hY3RpdmUtYmctdGludC1hbW91bnQpXG4gICk7XG5cbiAgI3skcGFyZW50fSB7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6ICRob3Zlci1jb2xvcjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMC4xMjVyZW0gMC4yNXJlbSAwIHJnYmEoJGJhY2tncm91bmQsIDAuNCk7XG4gICAgICB0cmFuc2Zvcm06ICRidG4taG92ZXItdHJhbnNmb3JtO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICBjb2xvcjogJGhvdmVyLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZDogJGhvdmVyLWJhY2tncm91bmQ7XG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB0cmFuc2Zvcm06ICRidG4tZm9jdXMtdHJhbnNmb3JtO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYuYWN0aXZlLFxuICAgIC5zaG93ID4gJi5kcm9wZG93bi10b2dnbGUge1xuICAgICAgY29sb3I6ICRhY3RpdmUtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgICAvLyBSZW1vdmUgQ1NTIGdyYWRpZW50cyBpZiB0aGV5J3JlIGVuYWJsZWRcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGlmKCRlbmFibGUtZ3JhZGllbnRzLCBub25lLCBudWxsKTtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8/IEJ1dHRvbiBncm91cHMgYm9yZGVyIChVbmNvbW1lbnQgaWYgbmVlZGVkKVxuICAvLyAuYnRuLWdyb3VwICN7JHBhcmVudH0sXG4gIC8vIC5pbnB1dC1ncm91cCAjeyRwYXJlbnR9IHtcbiAgLy8gICBib3JkZXItcmlnaHQ6ICRpbnB1dC1idG4tYm9yZGVyLXdpZHRoIHNvbGlkICRhY3RpdmUtYmFja2dyb3VuZDtcbiAgLy8gICBib3JkZXItbGVmdDogJGlucHV0LWJ0bi1ib3JkZXItd2lkdGggc29saWQgJGFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAvLyB9XG59XG5cbi8vIE91dGxpbmVcbkBtaXhpbiBidXR0b24tb3V0bGluZS12YXJpYW50KCRjb2xvcjogbnVsbCwgJGNvbG9yLWhvdmVyOiBudWxsLCAkaG92ZXItY29sb3I6IG51bGwpIHtcbn1cbi8vID8gJGhvdmVyLWNvbG9yIDwtPiAkY29sb3ItaG92ZXIgdXNlZCBieSBib290c3RyYXBcbkBtaXhpbiB0ZW1wbGF0ZS1idXR0b24tb3V0bGluZS12YXJpYW50KCRwYXJlbnQsICRjb2xvciwgJGhvdmVyLWNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogJGNvbG9yO1xuICAkYmFja2dyb3VuZDogJGNvbG9yO1xuICAkY29sb3ItaG92ZXI6IGNvbG9yLWNvbnRyYXN0KCRjb2xvcik7XG5cbiAgJGZvY3VzLWJhY2tncm91bmQ6ICRjb2xvcjtcblxuICAkaG92ZXItYmFja2dyb3VuZDogaWYoXG4gICAgJGNvbG9yLWhvdmVyID09ICRjb2xvci1jb250cmFzdC1saWdodCxcbiAgICBzaGFkZS1jb2xvcigkYmFja2dyb3VuZCwgJGJ0bi1ob3Zlci1iZy1zaGFkZS1hbW91bnQpLFxuICAgIHRpbnQtY29sb3IoJGJhY2tncm91bmQsICRidG4taG92ZXItYmctdGludC1hbW91bnQpXG4gICk7XG5cbiAgJGFjdGl2ZS1iYWNrZ3JvdW5kOiBpZihcbiAgICAkY29sb3ItaG92ZXIgPT0gJGNvbG9yLWNvbnRyYXN0LWxpZ2h0LFxuICAgIHNoYWRlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkYnRuLWFjdGl2ZS1iZy1zaGFkZS1hbW91bnQpLFxuICAgIHRpbnQtY29sb3IoJGJhY2tncm91bmQsICRidG4tYWN0aXZlLWJnLXRpbnQtYW1vdW50KVxuICApO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItYmFja2dyb3VuZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJGhvdmVyLWJhY2tncm91bmQ7XG4gICAgICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDAuMjVyZW0gMCByZ2JhKCRiYWNrZ3JvdW5kLCAwLjQpO1xuICAgICAgdHJhbnNmb3JtOiAkYnRuLWhvdmVyLXRyYW5zZm9ybTtcbiAgICB9XG5cbiAgICAuYnRuLWNoZWNrOmZvY3VzICsgJixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItYmFja2dyb3VuZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJGhvdmVyLWJhY2tncm91bmQ7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiAkYnRuLWZvY3VzLXRyYW5zZm9ybTtcbiAgICB9XG5cbiAgICAuYnRuLWNoZWNrOmNoZWNrZWQgKyAmLFxuICAgIC5idG4tY2hlY2s6YWN0aXZlICsgJixcbiAgICAmOmFjdGl2ZSxcbiAgICAmLmFjdGl2ZSxcbiAgICAmLmRyb3Bkb3duLXRvZ2dsZS5zaG93IHtcbiAgICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgICBib3JkZXItY29sb3I6ICRhY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZGlzYWJsZWQsXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICN7JHBhcmVudH0gLmJhZGdlIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgY29sb3I6IGNvbG9yLWNvbnRyYXN0KCRjb2xvcik7XG4gIH1cblxuICAjeyRwYXJlbnR9OmhvdmVyIC5iYWRnZSxcbiAgI3skcGFyZW50fTpmb2N1czpob3ZlciAuYmFkZ2UsXG4gICN7JHBhcmVudH06YWN0aXZlIC5iYWRnZSxcbiAgI3skcGFyZW50fS5hY3RpdmUgLmJhZGdlLFxuICAuc2hvdyA+ICN7JHBhcmVudH0uZHJvcGRvd24tdG9nZ2xlIC5iYWRnZSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiBpZihhbHBoYSgkY29sb3IpID09MSwgJGNvbG9yLCBjb2xvci1jb250cmFzdCgkY29sb3ItaG92ZXIpKTtcbiAgfVxufVxuIiwiLy8gKiBEcm9wZG93bnNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQG1peGluIHRlbXBsYXRlLWRyb3Bkb3duLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAjeyRwYXJlbnR9IC5kcm9wZG93bi1pdGVtOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbiAgI3skcGFyZW50fSAuZHJvcGRvd24taXRlbTpub3QoLmRpc2FibGVkKTphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgY29sb3ItY29udHJhc3QoJGJhY2tncm91bmQpKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgI3skcGFyZW50fS5kcm9wZG93bi1tZW51ID4gbGk6bm90KC5kaXNhYmxlZCkgPiBhOm5vdCguZHJvcGRvd24taXRlbSk6YWN0aXZlLFxuICAjeyRwYXJlbnR9LmRyb3Bkb3duLW1lbnUgPiBsaS5hY3RpdmU6bm90KC5kaXNhYmxlZCkgPiBhOm5vdCguZHJvcGRvd24taXRlbSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgY29sb3ItY29udHJhc3QoJGJhY2tncm91bmQpKSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiB0ZW1wbGF0ZS1kcm9wZG93bi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLWRyb3Bkb3duLXZhcmlhbnQoJycsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xufVxuIiwiLy8gVGhlbWUgbWl4aW5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQG1peGluIHRlbXBsYXRlLWNvbW1vbi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIHRleHQtdmFyaWFudCgnLnRleHQtcHJpbWFyeScsICRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgYmctdmFyaWFudCgnLmJnLXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIGJnLWxhYmVsLXZhcmlhbnQoJy5iZy1sYWJlbC1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBib3JkZXItbGFiZWwtdmFyaWFudCgnLmJvcmRlci1sYWJlbC1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBib3JkZXItbGlnaHQtdmFyaWFudCgnLmJvcmRlci1saWdodC1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSB0ZW1wbGF0ZS1wYWdpbmF0aW9uLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSB0ZW1wbGF0ZS1wcm9ncmVzcy1iYXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLW1vZGFsLW9uYm9hcmRpbmctdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLWxpc3QtZ3JvdXAtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLWxpc3QtZ3JvdXAtdGltZWxpbmUtdmFyaWFudCgnLmxpc3QtZ3JvdXAtdGltZWxpbmUtcHJpbWFyeScsICRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgdGVtcGxhdGUtYWxlcnQtdmFyaWFudCgnLmFsZXJ0LXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLWFjY29yZGlvbi1oZWFkZXItdmFyaWFudCgnLmFjY29yZGlvbi1oZWFkZXItcHJpbWFyeScsICRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgdGVtcGxhdGUtdG9vbHRpcC12YXJpYW50KFxuICAgICcudG9vbHRpcC1wcmltYXJ5LCAudG9vbHRpcC1wcmltYXJ5ID4gLnRvb2x0aXAsIC5uZ2ItdG9vbHRpcC1wcmltYXJ5ICsgbmdiLXRvb2x0aXAtd2luZG93JyxcbiAgICAkYmFja2dyb3VuZCxcbiAgICAkY29sb3JcbiAgKTtcbiAgQGluY2x1ZGUgdGVtcGxhdGUtcG9wb3Zlci12YXJpYW50KFxuICAgICcucG9wb3Zlci1wcmltYXJ5LCAucG9wb3Zlci1wcmltYXJ5ID4gLnBvcG92ZXIsIC5uZ2ItcG9wb3Zlci1wcmltYXJ5ICsgbmdiLXBvcG92ZXItd2luZG93JyxcbiAgICAkYmFja2dyb3VuZCxcbiAgICAkY29sb3JcbiAgKTtcblxuICAvLyBOZWVkIHRvIGFkZCBzaGlmdC1jb2xvciBhcyBCUzUgdXBkYXRlZCB3aXRoIHRhYmxlIHZhcmlhbnQgY29sb3JzIGxpa2UgdGhpc1xuXG4gIEBpbmNsdWRlIHRlbXBsYXRlLXRhYmxlLXZhcmlhbnQoJ3ByaW1hcnknLCBzaGlmdC1jb2xvcigkYmFja2dyb3VuZCwgJHRhYmxlLWJnLXNjYWxlKSk7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLWJ1dHRvbi12YXJpYW50KCcuYnRuLXByaW1hcnknLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgdGVtcGxhdGUtYnV0dG9uLWxhYmVsLXZhcmlhbnQoJy5idG4tbGFiZWwtcHJpbWFyeScsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSB0ZW1wbGF0ZS1idXR0b24tb3V0bGluZS12YXJpYW50KCcuYnRuLW91dGxpbmUtcHJpbWFyeScsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICBAaW5jbHVkZSB0ZW1wbGF0ZS1kcm9wZG93bi10aGVtZShyZ2JhKCRiYWNrZ3JvdW5kLCAwLjA4KSwgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSB0ZW1wbGF0ZS1uYXYtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLWZvcm0tY29udHJvbC10aGVtZSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLWZvcm0tY2hlY2stdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLWZvcm0tc3dpdGNoLXRoZW1lKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgdGVtcGxhdGUtZmlsZS1pbnB1dC10aGVtZSgkYmFja2dyb3VuZCk7XG5cbiAgQGluY2x1ZGUgdGVtcGxhdGUtc3dpdGNoLXZhcmlhbnQoJycsICRiYWNrZ3JvdW5kLCAkY29sb3IpOyAvLyBGb3IgZGVmYXVsdCBzd2l0Y2hcbiAgQGluY2x1ZGUgdGVtcGxhdGUtc3dpdGNoLXZhcmlhbnQoJy5zd2l0Y2gtcHJpbWFyeScsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuXG4gIEBpbmNsdWRlIHRlbXBsYXRlLXRpbWVsaW5lLXZhcmlhbnQoJy50aW1lbGluZS1pdGVtLXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLXRpbWVsaW5lLXBvaW50LXZhcmlhbnQoJy50aW1lbGluZS1wb2ludC1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSB0ZW1wbGF0ZS10aW1lbGluZS1pbmRpY2F0b3ItdmFyaWFudCgnLnRpbWVsaW5lLWluZGljYXRvci1wcmltYXJ5JywgJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSB0ZW1wbGF0ZS10ZXh0LWRpdmlkZXItdmFyaWFudCgnLmRpdmlkZXItcHJpbWFyeScsICRiYWNrZ3JvdW5kKTtcblxuICBAaW5jbHVkZSB0ZW1wbGF0ZS1uYXZiYXItc3R5bGUoJy5uYXZiYXIuYmctcHJpbWFyeScsICRwcmltYXJ5LWNvbG9yKTtcbiAgQGluY2x1ZGUgdGVtcGxhdGUtbWVudS1zdHlsZSgnLm1lbnUuYmctcHJpbWFyeScsICRwcmltYXJ5LWNvbG9yKTtcbiAgQGluY2x1ZGUgdGVtcGxhdGUtZm9vdGVyLXN0eWxlKCcuZm9vdGVyLmJnLXByaW1hcnknLCAkcHJpbWFyeS1jb2xvcik7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLXRvYXN0LXRoZW1lKCcuYmctcHJpbWFyeScsICRwcmltYXJ5LWNvbG9yLCAkY29sb3IpO1xuICBAaW5jbHVkZSB0ZW1wbGF0ZS1mbG9hdC1sYWJlbC10aGVtZSgkcHJpbWFyeS1jb2xvcik7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLXN2Zy1jb2xvcigkcHJpbWFyeS1jb2xvcik7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLXRyZWV2aWV3LWNsaWNrZWQtYmcoJHByaW1hcnktY29sb3IpO1xuXG4gIGh0bWw6bm90KFtkaXI9J3J0bCddKSAuYm9yZGVyLXByaW1hcnksXG4gIGh0bWxbZGlyPSdydGwnXSAuYm9yZGVyLXByaW1hcnkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgfVxuICBhIHtcbiAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdGludC1jb2xvcigkYmFja2dyb3VuZCwgMTAlKTtcbiAgICB9XG4gIH1cbiAgLmZpbGwtcHJpbWFyeSB7XG4gICAgZmlsbDogJGJhY2tncm91bmQ7XG4gIH1cbn1cbiIsIi8vIE5hdnNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQG1peGluIHRlbXBsYXRlLW5hdi1zaXplKCRwYWRkaW5nLXksICRwYWRkaW5nLXgsICRmb250LXNpemUsICRsaW5lLWhlaWdodCkge1xuICA+IC5uYXYgLm5hdi1saW5rLFxuICAmLm5hdiAubmF2LWxpbmsge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nLXkgJHBhZGRpbmcteDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgfVxufVxuXG5AbWl4aW4gdGVtcGxhdGUtbmF2LXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAvLyAubmF2LWxpbmsgY2xhc3MgaG92ZXIgdGhlbWUgY29sb3IgZm9yIGJhc2ljIG5hdlxuICAubmF2IC5uYXYtbGluayB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBzaGlmdC1jb2xvcigkYmFja2dyb3VuZCwgJGxpbmstc2hhZGUtcGVyY2VudGFnZSk7XG4gICAgfVxuICB9XG5cbiAgJHBpbGxzLXNlbGVjdG9yOiBpZigkcGFyZW50PT0gJycsICcubmF2LXBpbGxzJywgJyN7JHBhcmVudH0ubmF2LXBpbGxzLCAjeyRwYXJlbnR9ID4gLm5hdi1waWxscycpO1xuXG4gICN7JHBpbGxzLXNlbGVjdG9yfSAubmF2LWxpbmsuYWN0aXZlIHtcbiAgICAmLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgY29sb3ItY29udHJhc3QoJGJhY2tncm91bmQpKTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYmEoJGJhY2tncm91bmQsIDAuNCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0ZW1wbGF0ZS1uYXYtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICBAaW5jbHVkZSB0ZW1wbGF0ZS1uYXYtdmFyaWFudCgnJywgJGJhY2tncm91bmQsICRjb2xvcik7XG59XG4iLCIvLyAqIEZvcm0gY29udHJvbHNcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLy8gRm9ybSBjb250cm9sXG5AbWl4aW4gdGVtcGxhdGUtZm9ybS1jb250cm9sLXRoZW1lKCRjb2xvcikge1xuICAuZm9ybS1jb250cm9sOmZvY3VzLFxuICAuZm9ybS1zZWxlY3Q6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgLy8gVXNpbmcgOmZvY3VzLXdpdGhpbiB0byBhcHBseSBmb2N1cyBib3JkZXIgY29sb3IgdG8gZGVmYXVsdCBhbmQgbWVyZ2VkIGlucHV0LWdyb3VwXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgLmZvcm0tY29udHJvbCxcbiAgICAgIC5pbnB1dC1ncm91cC10ZXh0IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEZsb2F0IGxhYmVsc1xuQG1peGluIHRlbXBsYXRlLWZsb2F0LWxhYmVsLXRoZW1lKCRjb2xvcikge1xuICAuZm9ybS1mbG9hdGluZyB7XG4gICAgPiAuZm9ybS1jb250cm9sOmZvY3VzLFxuICAgID4gLmZvcm0tY29udHJvbDpub3QoOnBsYWNlaG9sZGVyLXNob3duKSxcbiAgICA+IC5mb3JtLXNlbGVjdCB7XG4gICAgICB+IGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IC5mb3JtLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgICB+IGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRm9ybSBTd2l0Y2hcbkBtaXhpbiB0ZW1wbGF0ZS1mb3JtLXN3aXRjaC10aGVtZSgkYmFja2dyb3VuZCkge1xuICAkZm9jdXMtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAkZm9jdXMtYmctaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nLTQgLTQgOCA4Jz48Y2lyY2xlIHI9JzMnIGZpbGw9JyN7JGZvY3VzLWNvbG9yfScvPjwvc3ZnPlwiKTtcblxuICAkY2hlY2tlZC1jb2xvcjogJGNvbXBvbmVudC1hY3RpdmUtY29sb3I7XG4gICRjaGVja2VkLWJnLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9Jy00IC00IDggOCc+PGNpcmNsZSByPSczJyBmaWxsPScjeyRjaGVja2VkLWNvbG9yfScvPjwvc3ZnPlwiKTtcblxuICAuZm9ybS1zd2l0Y2gge1xuICAgIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBlc2NhcGUtc3ZnKCRmb2N1cy1iZy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgIEBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogZXNjYXBlLXN2ZygkY2hlY2tlZC1iZy1pbWFnZSksIHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ncmFkaWVudCk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGVzY2FwZS1zdmcoJGNoZWNrZWQtYmctaW1hZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEZpbGUgSW5wdXRcbkBtaXhpbiB0ZW1wbGF0ZS1maWxlLWlucHV0LXRoZW1lKCRjb2xvcikge1xuICAuZm9ybS1jb250cm9sOmZvY3VzIH4gLmZvcm0tbGFiZWwge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuXG4vLyBGb3JtIENoZWNrXG5AbWl4aW4gdGVtcGxhdGUtZm9ybS1jaGVjay12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgY29sb3ItY29udHJhc3QoJGJhY2tncm91bmQpKTtcbiAgJGZvY3VzLWJvcmRlcjogJGJhY2tncm91bmQ7XG5cbiAgI3skcGFyZW50fSAuZm9ybS1jaGVjay1pbnB1dCB7XG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRmb2N1cy1ib3JkZXI7XG4gICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2JhKCRiYWNrZ3JvdW5kLCAwLjQpO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvcm0tY2hlY2staW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgfVxuXG4gICAgJjpjaGVja2VkLFxuICAgICZbdHlwZT0nY2hlY2tib3gnXTppbmRldGVybWluYXRlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYmEoJGJhY2tncm91bmQsIDAuNCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ3VzdG9tIG9wdGlvbnNcbiAgI3skcGFyZW50fS5jdXN0b20tb3B0aW9uIHtcbiAgICAmLmNoZWNrZWQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0ZW1wbGF0ZS1mb3JtLWNoZWNrLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgQGluY2x1ZGUgdGVtcGxhdGUtZm9ybS1jaGVjay12YXJpYW50KCcnLCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbn1cblxuLy8gRm9ybSBWYWxpZGF0aW9uXG5cbkBtaXhpbiBmb3JtLXZhbGlkYXRpb24tc3RhdGUoXG4gICRzdGF0ZTogbnVsbCxcbiAgJGNvbG9yOiBudWxsLFxuICAkaWNvbjogbnVsbCxcbiAgJHRvb2x0aXAtY29sb3I6IG51bGwsXG4gICR0b29sdGlwLWJnLWNvbG9yOiBudWxsLFxuICAkZm9jdXMtYm94LXNoYWRvdzogbnVsbFxuKSB7XG59XG5cbkBtaXhpbiB0ZW1wbGF0ZS1mb3JtLXZhbGlkYXRpb24tc3RhdGUoXG4gICRzdGF0ZSxcbiAgJGNvbG9yLFxuICAkaWNvbixcbiAgJHRvb2x0aXAtY29sb3I6IGNvbG9yLWNvbnRyYXN0KCRjb2xvciksXG4gICR0b29sdGlwLWJnLWNvbG9yOiByZ2JhKCRjb2xvciwgJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1vcGFjaXR5KSxcbiAgJGZvY3VzLWJveC1zaGFkb3c6IDAgMCAkaW5wdXQtYnRuLWZvY3VzLWJsdXIgJGlucHV0LWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAkaW5wdXQtYnRuLWZvY3VzLWNvbG9yLW9wYWNpdHkpXG4pIHtcbiAgLiN7JHN0YXRlfS1mZWVkYmFjayB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAkZm9ybS1mZWVkYmFjay1tYXJnaW4tdG9wO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9ybS1mZWVkYmFjay1mb250LXNpemUpO1xuICAgIGZvbnQtc3R5bGU6ICRmb3JtLWZlZWRiYWNrLWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gIC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyBDb250YWluIHRvIHBhcmVudCB3aGVuIHBvc3NpYmxlXG4gICAgcGFkZGluZzogJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1wYWRkaW5nLXkgJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1wYWRkaW5nLXg7XG4gICAgbWFyZ2luLXRvcDogMC4xcmVtO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9ybS1mZWVkYmFjay10b29sdGlwLWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6ICRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtbGluZS1oZWlnaHQ7XG4gICAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJnLWNvbG9yO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1ib3JkZXItcmFkaXVzKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvcm0tdmFsaWRhdGlvbi1zdGF0ZS1zZWxlY3Rvcigkc3RhdGUpIHtcbiAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tY29udHJvbCB7XG4gICAgQGluY2x1ZGUgZm9ybS12YWxpZGF0aW9uLXN0YXRlLXNlbGVjdG9yKCRzdGF0ZSkge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG5cbiAgICAgIC5kYXJrLXN0eWxlICYge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogZXNjYXBlLXN2ZygkaWNvbik7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogJGlucHV0LWhlaWdodC1pbm5lci1oYWxmICRpbnB1dC1oZWlnaHQtaW5uZXItaGFsZjtcblxuICAgICAgICBAaW5jbHVkZSBsdHItc3R5bGUge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbnB1dC1oZWlnaHQtaW5uZXI7XG4gICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgJGlucHV0LWhlaWdodC1pbm5lci1xdWFydGVyIGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogJGlucHV0LWhlaWdodC1pbm5lcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0ICRpbnB1dC1oZWlnaHQtaW5uZXItcXVhcnRlciBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAkZm9jdXMtYm94LXNoYWRvdztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG4gIHRleHRhcmVhLmZvcm0tY29udHJvbCB7XG4gICAgQGluY2x1ZGUgZm9ybS12YWxpZGF0aW9uLXN0YXRlLXNlbGVjdG9yKCRzdGF0ZSkge1xuICAgICAgQGlmICRlbmFibGUtdmFsaWRhdGlvbi1pY29ucyB7XG4gICAgICAgIEBpbmNsdWRlIGx0ci1zdHlsZSB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogJGlucHV0LWhlaWdodC1pbm5lcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgJGlucHV0LWhlaWdodC1pbm5lci1xdWFydGVyIHJpZ2h0ICRpbnB1dC1oZWlnaHQtaW5uZXItcXVhcnRlcjtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBydGwtc3R5bGUge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogJGlucHV0LWhlaWdodC1pbm5lcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgJGlucHV0LWhlaWdodC1pbm5lci1xdWFydGVyIGxlZnQgJGlucHV0LWhlaWdodC1pbm5lci1xdWFydGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXZhbGlkYXRpb24tc3RhdGUtc2VsZWN0b3IoJHN0YXRlKSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgIEBpZiAkZW5hYmxlLXZhbGlkYXRpb24taWNvbnMge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRmb3JtLXNlbGVjdC1iZy1zaXplLCAkZm9ybS1zZWxlY3QtZmVlZGJhY2staWNvbi1zaXplO1xuICAgICAgICBAaW5jbHVkZSBsdHItc3R5bGUge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGVzY2FwZS1zdmcoJGZvcm0tc2VsZWN0LWluZGljYXRvciksIGVzY2FwZS1zdmcoJGljb24pO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRmb3JtLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmctZW5kO1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRmb3JtLXNlbGVjdC1iZy1wb3NpdGlvbiwgJGZvcm0tc2VsZWN0LWZlZWRiYWNrLWljb24tcG9zaXRpb247XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBlc2NhcGUtc3ZnKCRmb3JtLXNlbGVjdC1pbmRpY2F0b3ItcnRsKSwgZXNjYXBlLXN2ZygkaWNvbik7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZm9ybS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nLWVuZDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0ICRmb3JtLXNlbGVjdC1wYWRkaW5nLXggY2VudGVyLCBjZW50ZXIgbGVmdCAkZm9ybS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc7IC8vIFJUTFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogJGZvY3VzLWJveC1zaGFkb3c7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgIEBpbmNsdWRlIGZvcm0tdmFsaWRhdGlvbi1zdGF0ZS1zZWxlY3Rvcigkc3RhdGUpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuXG4gICAgICAmOmNoZWNrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzogJGZvY3VzLWJveC1zaGFkb3c7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgfVxuXG4gICAgICB+IC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmZvcm0tY2hlY2staW5saW5lIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2sge1xuICAgICAgQGluY2x1ZGUgbHRyLXN0eWxlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcnRsLXN0eWxlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gT24gdmFsaWRhdGlvbiAuaW5wdXQtZ3JvdXAgJiAuaW5wdXQtZ3JvdXAtbWVyZ2VkLCBzZXR1cCBwcm9wZXIgYm9yZGVyIGNvbG9yICYgYm94LXNoYWRvd1xuICAuaW5wdXQtZ3JvdXAge1xuICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgQGluY2x1ZGUgZm9ybS12YWxpZGF0aW9uLXN0YXRlLXNlbGVjdG9yKCRzdGF0ZSkge1xuICAgICAgICB+IC5pbnB1dC1ncm91cC10ZXh0IHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgIC8vID8gLmlucHV0LWdyb3VwIGhhcyAuaW5wdXQtZ3JvdXAtdGV4dCBsYXN0L3NpYmxpbmdcbiAgICAgICAgICB+IC5pbnB1dC1ncm91cC10ZXh0IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sLFxuICAuaW5wdXQtZ3JvdXAgLmZvcm0tc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXZhbGlkYXRpb24tc3RhdGUtc2VsZWN0b3IoJHN0YXRlKSB7XG4gICAgICB6LWluZGV4OiAzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gKiBTd2l0Y2hlc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5AbWl4aW4gdGVtcGxhdGUtc3dpdGNoLXNpemUtYmFzZShcbiAgJHNpemUsXG4gICR3aWR0aCxcbiAgJGhlaWdodCxcbiAgJGZvbnQtc2l6ZSxcbiAgJGZvcm0tbGFiZWwtZm9udC1zaXplLFxuICAkbGFiZWwtbGluZS1oZWlnaHQsXG4gICRpbm5lci1zcGFjZXJcbikge1xuICBtaW4taGVpZ2h0OiAkaGVpZ2h0O1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGxhYmVsLWxpbmUtaGVpZ2h0O1xuXG4gICRkZWx0YTogMDtcbiAgJGxpbmUtaGVpZ2h0LWNvbXB1dGVkOiAkZm9ybS1sYWJlbC1mb250LXNpemUgKiAkbGFiZWwtbGluZS1oZWlnaHQ7XG4gIC5zd2l0Y2gtbGFiZWw6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzd2l0Y2gtZ3V0dGVyO1xuICB9XG4gIC5zd2l0Y2gtaW5wdXQgfiAuc3dpdGNoLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICR3aWR0aCArICRzd2l0Y2gtZ3V0dGVyO1xuICB9XG5cbiAgLnN3aXRjaC10b2dnbGUtc2xpZGVyIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIGhlaWdodDogJGhlaWdodCAtICgkZGVsdGEgKiAyKTtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRoZWlnaHQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICBpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgICAgQGlmICgkc2l6ZT09ICdsZycpIHtcbiAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgfSBAZWxzZSBpZiAoJHNpemU9PSAnc20nKSB7XG4gICAgICAgIHRvcDogLTJweDtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB0b3A6IC0xLjM1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkbGluZS1oZWlnaHQtY29tcHV0ZWQ+JGhlaWdodCkge1xuICAgICAgdG9wOiAoKCRsaW5lLWhlaWdodC1jb21wdXRlZCAtICRoZWlnaHQpICogMC41KSArICRkZWx0YTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRvcDogMCArICRkZWx0YTtcbiAgICB9XG4gIH1cblxuICAuc3dpdGNoLWxhYmVsIHtcbiAgICBAaWYgKCRsaW5lLWhlaWdodC1jb21wdXRlZCA8ICRoZWlnaHQpIHtcbiAgICAgIHRvcDogKCRoZWlnaHQgLSAkbGluZS1oZWlnaHQtY29tcHV0ZWQpICogMC41O1xuICAgIH0gQGVsc2Uge1xuICAgICAgdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zd2l0Y2gtaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtdG9nZ2xlLXNsaWRlcjo6YWZ0ZXIge1xuICAgIGxlZnQ6ICR3aWR0aCAtICRoZWlnaHQ7XG4gIH1cblxuICAuc3dpdGNoLXRvZ2dsZS1zbGlkZXI6OmFmdGVyIHtcbiAgICB0b3A6ICgkZGVsdGEgKiAtMSkgKyAtMXB4O1xuICAgIG1hcmdpbjogJGlubmVyLXNwYWNlciAwIDAgJGlubmVyLXNwYWNlcjtcbiAgICB3aWR0aDogZmxvb3IocmVtLXRvLXB4KCRoZWlnaHQgLSAkaW5uZXItc3BhY2VyICogMikpO1xuICAgIGhlaWdodDogZmxvb3IocmVtLXRvLXB4KCRoZWlnaHQgLSAkaW5uZXItc3BhY2VyICogMikpO1xuICB9XG5cbiAgLnN3aXRjaC1vbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAkaW5uZXItc3BhY2VyO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRoZWlnaHQgLSAkaW5uZXItc3BhY2VyO1xuICB9XG5cbiAgLnN3aXRjaC1vZmYge1xuICAgIHBhZGRpbmctbGVmdDogJGhlaWdodCAtICRpbm5lci1zcGFjZXI7XG4gICAgcGFkZGluZy1yaWdodDogJGlubmVyLXNwYWNlcjtcbiAgfVxuXG4gIEBpZiAkcnRsLXN1cHBvcnQge1xuICAgIFtkaXI9J3J0bCddICYgLnN3aXRjaC1sYWJlbCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkd2lkdGggKyAkc3dpdGNoLWd1dHRlcjtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gICAgW2Rpcj0ncnRsJ10gJiAuc3dpdGNoLWlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXRvZ2dsZS1zbGlkZXI6OmFmdGVyIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogJHdpZHRoIC0gJGhlaWdodDtcbiAgICB9XG5cbiAgICBbZGlyPSdydGwnXSAmIC5zd2l0Y2gtdG9nZ2xlLXNsaWRlciB7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRpbm5lci1zcGFjZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJiAuc3dpdGNoLW9uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJGhlaWdodCAtICRpbm5lci1zcGFjZXI7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkaW5uZXItc3BhY2VyO1xuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYgLnN3aXRjaC1vZmYge1xuICAgICAgcGFkZGluZy1sZWZ0OiAkaW5uZXItc3BhY2VyO1xuICAgICAgcGFkZGluZy1yaWdodDogJGhlaWdodCAtICRpbm5lci1zcGFjZXI7XG4gICAgfVxuICB9XG59XG5cbi8vIFN3aXRjaCBzaXplXG5AbWl4aW4gdGVtcGxhdGUtc3dpdGNoLXNpemUoXG4gICRzaXplLFxuICAkd2lkdGgsXG4gICRoZWlnaHQsXG4gICRmb250LXNpemUsXG4gICRmb3JtLWxhYmVsLWZvbnQtc2l6ZSxcbiAgJGxhYmVsLWxpbmUtaGVpZ2h0LFxuICAkaW5uZXItc3BhY2VyOiAkc3dpdGNoLWlubmVyLXNwYWNlclxuKSB7XG4gIC5zd2l0Y2gtI3skc2l6ZX0ge1xuICAgIEBpbmNsdWRlIHRlbXBsYXRlLXN3aXRjaC1zaXplLWJhc2UoXG4gICAgICAkc2l6ZSxcbiAgICAgICR3aWR0aCxcbiAgICAgICRoZWlnaHQsXG4gICAgICAkZm9udC1zaXplLFxuICAgICAgJGZvcm0tbGFiZWwtZm9udC1zaXplLFxuICAgICAgJGxhYmVsLWxpbmUtaGVpZ2h0LFxuICAgICAgJGlubmVyLXNwYWNlclxuICAgICk7XG4gIH1cbn1cblxuLy8gU3dpdGNoIHZhcmlhbnQgKGRlZmF1bHQpXG5AbWl4aW4gdGVtcGxhdGUtc3dpdGNoLXZhcmlhbnQoJHBhcmVudCwgJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkc2VsZWN0b3I6IGlmKCRwYXJlbnQ9PSAnJywgJycsICcjeyRwYXJlbnR9LnN3aXRjaCcpO1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCBjb2xvci1jb250cmFzdCgkYmFja2dyb3VuZCkpO1xuXG4gICN7JHNlbGVjdG9yfSAuc3dpdGNoLWlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXRvZ2dsZS1zbGlkZXIge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0gLnN3aXRjaC1pbnB1dDphY3RpdmUgfiAuc3dpdGNoLXRvZ2dsZS1zbGlkZXIge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0gLnN3aXRjaC1pbnB1dDpmb2N1cyB+IC5zd2l0Y2gtdG9nZ2xlLXNsaWRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm94LXNoYWRvdzogJHN3aXRjaC1mb2N1cy1ib3gtc2hhZG93O1xuICB9XG59XG5cbi8vIFN3aXRjaCB0aGVtZVxuQG1peGluIHRlbXBsYXRlLXN3aXRjaC10aGVtZSgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIEBpbmNsdWRlIHRlbXBsYXRlLXN3aXRjaC12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xufVxuXG4vLyBTd2l0Y2ggdmFsaWRhdGlvblxuQG1peGluIHRlbXBsYXRlLXN3aXRjaC12YWxpZGF0aW9uLXN0YXRlKCRzdGF0ZSwgJGNvbG9yKSB7XG4gIC5zd2l0Y2gtaW5wdXQge1xuICAgIC8vQlMgJiBqUXVlcnkgdmFsaWRhdGlvblxuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaW52YWxpZCxcbiAgICAvL2pxXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgfiAuc3dpdGNoLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgfiAuc3dpdGNoLXRvZ2dsZS1zbGlkZXIge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3IgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgJjpjaGVja2VkIH4gLnN3aXRjaC10b2dnbGUtc2xpZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItY29udHJhc3QoJGNvbG9yKTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB+IC5zd2l0Y2gtdG9nZ2xlLXNsaWRlciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAkaW5wdXQtYnRuLWZvY3VzLWJsdXIgJGlucHV0LWJ0bi1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgMC40KTtcbiAgICAgIH1cblxuICAgICAgJjphY3RpdmUgfiAuc3dpdGNoLXRvZ2dsZS1zbGlkZXIge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gVGltZWxpbmVcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLy8gVGltZWxpbmUgcG9pbnRcbkBtaXhpbiB0ZW1wbGF0ZS10aW1lbGluZS1wb2ludC12YXJpYW50KCRwb2ludC1jb2xvciwgJGJhY2tncm91bmQpIHtcbiAgLnRpbWVsaW5lIHtcbiAgICAjeyRwb2ludC1jb2xvcn0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMTg3NXJlbSByZ2JhKCRiYWNrZ3JvdW5kLCAwLjE2KTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGltZWxpbmUgVGhlbWVcbkBtaXhpbiB0ZW1wbGF0ZS10aW1lbGluZS12YXJpYW50KCRpdGVtLWNvbG9yLCAkYmFja2dyb3VuZCkge1xuICAudGltZWxpbmUge1xuICAgICN7JGl0ZW0tY29sb3J9IHtcbiAgICAgIC50aW1lbGluZS1ldmVudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJhY2tncm91bmQsIDAuMSk7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKCRiYWNrZ3JvdW5kLCAwLjEpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKCRiYWNrZ3JvdW5kLCAwLjEpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRlbXBsYXRlLXRpbWVsaW5lLWluZGljYXRvci12YXJpYW50KCRpbmRpY2F0b3ItY29sb3IsICRiYWNrZ3JvdW5kKSB7XG4gIC50aW1lbGluZSB7XG4gICAgI3skaW5kaWNhdG9yLWNvbG9yfSB7XG4gICAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICBpIHtcbiAgICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRpbWVsaW5lIEJvcmRlciBTdHlsZVxuQG1peGluIHRlbXBsYXRlLXRpbWVsaW5lLWJvcmRlci1zdHlsZSgkYm9yZGVyLXN0eWxlKSB7XG4gICY6YmVmb3JlIHtcbiAgICBib3JkZXItc3R5bGU6ICRib3JkZXItc3R5bGU7XG4gIH1cbn1cbiIsIi8vIFRleHQgRGl2aWRlclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5AbWl4aW4gdGVtcGxhdGUtdGV4dC1kaXZpZGVyLXZhcmlhbnQoJGRpdmlkZXItY29sb3IsICRiYWNrZ3JvdW5kKSB7XG4gICRkaXZpZGVyLXNlbGVjdG9yOiBpZigkZGl2aWRlci1jb2xvcj09ICcnLCAnJywgJyN7JGRpdmlkZXItY29sb3J9Jyk7XG4gIC5kaXZpZGVyIHtcbiAgICAmI3skZGl2aWRlci1zZWxlY3Rvcn0ge1xuICAgICAgLmRpdmlkZXItdGV4dCB7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBOYXZiYXJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQG1peGluIHRlbXBsYXRlLW5hdmJhci1zdHlsZSgkcGFyZW50LCAkYmcsICRjb2xvcjogbnVsbCwgJGFjdGl2ZS1jb2xvcjogbnVsbCwgJGJvcmRlcjogbnVsbCkge1xuICAkY29sb3JzOiBnZXQtbmF2YmFyLXByb3AoJGJnLCAkYWN0aXZlLWNvbG9yLCAkY29sb3IsICRib3JkZXIpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYmcpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuXG4gICAgLm5hdmJhci1icmFuZCxcbiAgICAubmF2YmFyLWJyYW5kIGEge1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5hdmJhciBzZWFyY2ggY29sb3JcbiAgICAubmF2YmFyLXNlYXJjaC13cmFwcGVyIHtcblxuICAgICAgLm5hdmJhci1zZWFyY2gtaWNvbixcbiAgICAgIC5zZWFyY2gtaW5wdXQge1xuICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNlYXJjaC1pbnB1dC13cmFwcGVyIHtcblxuICAgICAgLnNlYXJjaC1pbnB1dCxcbiAgICAgIC5zZWFyY2gtdG9nZ2xlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZyAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdmJhci1uYXYge1xuXG4gICAgICA+Lm5hdi1saW5rLFxuICAgICAgPi5uYXYtaXRlbT4ubmF2LWxpbmssXG4gICAgICA+Lm5hdj4ubmF2LWl0ZW0+Lm5hdi1saW5rIHtcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBkaXNhYmxlZC1jb2xvcikgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc2hvdz4ubmF2LWxpbmssXG4gICAgICAuYWN0aXZlPi5uYXYtbGluayxcbiAgICAgIC5uYXYtbGluay5zaG93LFxuICAgICAgLm5hdi1saW5rLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdmJhci10b2dnbGVyIHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGNvbG9yKTtcbiAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBib3JkZXIpO1xuICAgIH1cblxuICAgIC5uYXZiYXItdG9nZ2xlci1pY29uIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGlmKG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKT09I2ZmZixcbiAgICAgICAgICAkbmF2YmFyLWRhcmstdG9nZ2xlci1pY29uLWJnLFxuICAgICAgICAgICRuYXZiYXItbGlnaHQtdG9nZ2xlci1pY29uLWJnICk7XG4gICAgfVxuXG4gICAgLm5hdmJhci10ZXh0IHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGNvbG9yKTtcblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGhyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBib3JkZXIpO1xuICAgIH1cbiAgfVxufSIsIi8vIE1lbnVcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQG1peGluIHRlbXBsYXRlLW1lbnUtc3R5bGUoJHBhcmVudCwgJGJnLCAkY29sb3I6IG51bGwsICRhY3RpdmUtY29sb3I6IG51bGwsICRib3JkZXI6IG51bGwsICRhY3RpdmUtYmc6IG51bGwpIHtcbiAgJGNvbG9yczogZ2V0LW5hdmJhci1wcm9wKCRiZywgJGFjdGl2ZS1jb2xvciwgJGNvbG9yLCAkYm9yZGVyKTtcbiAgJGNvbnRyYXN0LXBlcmNlbnQ6IG1hcC1nZXQoJGNvbG9ycywgY29udHJhc3QtcGVyY2VudCk7XG5cbiAgQGlmIG5vdCAkYWN0aXZlLWJnIHtcbiAgICAkYWN0aXZlLWJnOiByZ2JhLXRvLWhleChcbiAgICAgIHJnYmEobWFwLWdldCgkY29sb3JzLCBiZyksIDEgLSBpZigkY29udHJhc3QtcGVyY2VudCA8IDAuNzUsIDAuMDI1LCAwLjA1KSksXG4gICAgICBpZigkY29udHJhc3QtcGVyY2VudCA+IDAuMjUsICNmZmYsICMwMDApXG4gICAgKTtcbiAgfVxuXG4gICRtZW51LWFjdGl2ZS1iZzogcmdiYS10by1oZXgoXG4gICAgcmdiYSgkYWN0aXZlLWJnLCAxIC0gaWYoJGNvbnRyYXN0LXBlcmNlbnQgPCAwLjc1LCAwLjAyNSwgMC4wNSkpLFxuICAgIGlmKCRjb250cmFzdC1wZXJjZW50ID4gMC4yNSwgI2ZmZiwgIzAwMClcbiAgKTtcblxuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGJnKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGNvbG9yKTtcblxuICAgIC5tZW51LWxpbmssXG4gICAgLm1lbnUtaG9yaXpvbnRhbC1wcmV2LFxuICAgIC5tZW51LWhvcml6b250YWwtbmV4dCB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBjb2xvcik7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYWN0aXZlLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudS1pdGVtLmRpc2FibGVkIC5tZW51LWxpbmssXG4gICAgLm1lbnUtaG9yaXpvbnRhbC1wcmV2LmRpc2FibGVkLFxuICAgIC5tZW51LWhvcml6b250YWwtbmV4dC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBkaXNhYmxlZC1jb2xvcikgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubWVudS1pdGVtLm9wZW46bm90KC5tZW51LWl0ZW0tY2xvc2luZykgPiAubWVudS10b2dnbGUsXG4gICAgLm1lbnUtaXRlbS5hY3RpdmUgPiAubWVudS1saW5rIHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgLy92ZXJ0aWNhbCBtZW51IGFjdGl2ZSBpdGVtIGJnIGNvbG9yXG4gICAgLm1lbnUtaXRlbS5hY3RpdmUgPiAubWVudS1saW5rOm5vdCgubWVudS10b2dnbGUpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmUtYmc7XG4gICAgfVxuXG4gICAgLy8tXG4gICAgJi5tZW51LWhvcml6b250YWwgLm1lbnUtc3ViID4gLm1lbnUtaXRlbS5hY3RpdmUgPiAubWVudS1saW5rOm5vdCgubWVudS10b2dnbGUpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZW51LWFjdGl2ZS1iZztcbiAgICB9XG5cbiAgICAmLm1lbnUtaG9yaXpvbnRhbCAubWVudS1pbm5lciAubWVudS1pdGVtOm5vdCgubWVudS1pdGVtLWNsb3NpbmcpID4gLm1lbnUtc3ViLFxuICAgICYubWVudS1ob3Jpem9udGFsIC5tZW51LWlubmVyIC5tZW51LWl0ZW0ub3BlbiA+IC5tZW51LXRvZ2dsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWJnO1xuICAgIH1cblxuICAgIC5tZW51LWlubmVyID4gLm1lbnUtaXRlbS5tZW51LWl0ZW0tY2xvc2luZyAubWVudS1pdGVtLm9wZW4gLm1lbnUtc3ViLFxuICAgIC5tZW51LWlubmVyID4gLm1lbnUtaXRlbS5tZW51LWl0ZW0tY2xvc2luZyAubWVudS1pdGVtLm9wZW4gLm1lbnUtdG9nZ2xlIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuICAgIH1cblxuICAgIC5tZW51LWlubmVyLXNoYWRvdyB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJGJnIDQxJSwgcmdiYSgkYmcsIDAuMTEpIDk1JSwgcmdiYSgkYmcsIDApKTtcbiAgICB9XG5cbiAgICAubWVudS10ZXh0IHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgLm1lbnUtaGVhZGVyIHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIG11dGVkLWNvbG9yKTtcbiAgICB9XG5cbiAgICBocixcbiAgICAubWVudS1kaXZpZGVyLFxuICAgIC5tZW51LWlubmVyID4gLm1lbnUtaXRlbS5vcGVuID4gLm1lbnUtc3ViOjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGJvcmRlcikgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubWVudS1pbm5lciA+IC5tZW51LWhlYWRlcjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYm9yZGVyKTtcbiAgICB9XG5cbiAgICAubWVudS1ibG9jazo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgbXV0ZWQtY29sb3IpO1xuICAgIH1cblxuICAgIC8vLVxuICAgIC5tZW51LWlubmVyID4gLm1lbnUtaXRlbS5vcGVuIC5tZW51LWl0ZW0ub3BlbiA+IC5tZW51LXRvZ2dsZTo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEtdG8taGV4KG1hcC1nZXQoJGNvbG9ycywgYm9yZGVyKSwgJGFjdGl2ZS1iZyk7XG4gICAgfVxuXG4gICAgLm1lbnUtaW5uZXIgPiAubWVudS1pdGVtLm9wZW4gLm1lbnUtaXRlbS5hY3RpdmUgPiAubWVudS1saW5rOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuICAgIH1cblxuICAgIC5tZW51LWlubmVyID4gLm1lbnUtaXRlbS5vcGVuIC5tZW51LWl0ZW0ub3BlbiA+IC5tZW51LXRvZ2dsZTo6YmVmb3JlLFxuICAgIC5tZW51LWlubmVyID4gLm1lbnUtaXRlbS5vcGVuIC5tZW51LWl0ZW0uYWN0aXZlID4gLm1lbnUtbGluazo6YmVmb3JlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkYWN0aXZlLWJnO1xuICAgIH1cblxuICAgIC5wc19fdGh1bWIteSxcbiAgICAucHNfX3JhaWwteS5wcy0tY2xpY2tpbmcgPiAucHNfX3RodW1iLXkge1xuICAgICAgYmFja2dyb3VuZDogcmdiYShcbiAgICAgICAgbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpLFxuICAgICAgICBpZigkY29udHJhc3QtcGVyY2VudCA+IDAuNzUsIG1hcC1nZXQoJGNvbG9ycywgb3BhY2l0eSkgLSAwLjQsIG1hcC1nZXQoJGNvbG9ycywgb3BhY2l0eSkgLSAwLjIpXG4gICAgICApICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb290ZXJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQG1peGluIHRlbXBsYXRlLWZvb3Rlci1zdHlsZSgkcGFyZW50LCAkYmcsICRjb2xvcjogbnVsbCwgJGFjdGl2ZS1jb2xvcjogbnVsbCwgJGJvcmRlcjogbnVsbCkge1xuICAkY29sb3JzOiBnZXQtbmF2YmFyLXByb3AoJGJnLCAkYWN0aXZlLWNvbG9yLCAkY29sb3IsICRib3JkZXIpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYmcpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgY29sb3IpO1xuXG4gICAgLmZvb3Rlci1saW5rIHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGNvbG9yKTtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBhY3RpdmUtY29sb3IpO1xuICAgICAgfVxuXG4gICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgZGlzYWJsZWQtY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZvb3Rlci10ZXh0IHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgLnNob3cgPiAuZm9vdGVyLWxpbmssXG4gICAgLmFjdGl2ZSA+IC5mb290ZXItbGluayxcbiAgICAuZm9vdGVyLWxpbmsuc2hvdyxcbiAgICAuZm9vdGVyLWxpbmsuYWN0aXZlIHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGFjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgaHIge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGJvcmRlcik7XG4gICAgfVxuICB9XG59XG4iLCIvLyAqIFRvYXN0XG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbkBtaXhpbiB0ZW1wbGF0ZS10b2FzdC12YXJpYW50KCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGxhYmVsLWNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgJGJhY2tncm91bmQpO1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCBjb2xvci1jb250cmFzdCgkYmFja2dyb3VuZCkpO1xuXG4gICN7JHBhcmVudH0ge1xuICAgICYudG9hc3QsXG4gICAgJi5icy10b2FzdCB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmFja2dyb3VuZCwgJHRvYXN0LWJnLWZhY3RvcikgIWltcG9ydGFudDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMC4yNXJlbSAxcmVtIHJnYmEoJGJhY2tncm91bmQsIDAuNCk7XG5cbiAgICAgIC50b2FzdC1oZWFkZXIge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAuYnRuLWNsb3NlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHN0ci1yZXBsYWNlKFxuICAgICAgICAgICAgc3RyLXJlcGxhY2Uoc3RyLXJlcGxhY2UoJGJ0bi1jbG9zZS1iZywgJyN7JGJ0bi1jbG9zZS1jb2xvcn0nLCAkd2hpdGUpLCAnIycsICclMjMnKSxcbiAgICAgICAgICAgIFwiZmlsbC1vcGFjaXR5PScwLjUnXCIsXG4gICAgICAgICAgICBcImZpbGwtb3BhY2l0eT0nMSdcIlxuICAgICAgICAgICk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwLjE4NzVyZW0gMC4zNzVyZW0gMCByZ2JhKCRiYWNrZ3JvdW5kLCAwLjQpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRlbXBsYXRlLXRvYXN0LXRoZW1lKCRwYXJlbnQsICRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgQGluY2x1ZGUgdGVtcGxhdGUtdG9hc3QtdmFyaWFudCgkcGFyZW50LCAkYmFja2dyb3VuZCwgJGNvbG9yKTtcbn1cbiIsIi8vIFNWRyBDb2xvclxuQG1peGluIHRlbXBsYXRlLXN2Zy1jb2xvcigkYmFja2dyb3VuZCkge1xuICAuc3ZnLWlsbHVzdHJhdGlvbiBzdmcge1xuICAgIGZpbGw6ICRiYWNrZ3JvdW5kO1xuICB9XG59XG4iLCIvLyBUcmVldmlld1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyBUcmVldmlldyBjbGlja1xuQG1peGluIHRlbXBsYXRlLXRyZWV2aWV3LWNsaWNrZWQtYmcoJGJhY2tncm91bmQpIHtcbiAgLmpzdHJlZS1kZWZhdWx0IHtcbiAgICAuanN0cmVlLXdob2xlcm93LWNsaWNrZWQsXG4gICAgLmpzdHJlZS13aG9sZXJvdy1ob3ZlcmVkIHtcbiAgICAgIGJhY2tncm91bmQ6IG1peCgkd2hpdGUsICRiYWNrZ3JvdW5kLCA4NSUpO1xuICAgIH1cbiAgfVxuICAuanN0cmVlLWRlZmF1bHQtZGFyayB7XG4gICAgLmpzdHJlZS13aG9sZXJvdy1ob3ZlcmVkLFxuICAgIC5qc3RyZWUtd2hvbGVyb3ctY2xpY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtaXgoJGRhcmssICRiYWNrZ3JvdW5kLCA1NSUpO1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIG5vdWlzbGlkZXItdmFyaWFudCgkYmFja2dyb3VuZCkge1xuICAubm9VaS1jb25uZWN0IHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBub3Vpc2xpZGVyLXRoZW1lKCRiYWNrZ3JvdW5kKSB7XG4gIC5ub1VpLXByaW1hcnkgLm5vVWktYmFzZSB7XG4gICAgLm5vVWktY29ubmVjdCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc2Nzcy9fYm9vdHN0cmFwLWV4dGVuZGVkL2luY2x1ZGUnO1xuQG1peGluIHNlbGVjdDItdmFyaWFudCgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRiYWNrZ3JvdW5kLCAwLjA4KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgkYmFja2dyb3VuZCwgMC4xNikgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHNlbGVjdDItdmFsaWRhdGlvbi1zdGF0ZSgkc3RhdGUsICRib3JkZXIpIHtcbiAgLmlzLSN7JHN0YXRlfSAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLFxuICAuaXMtI3skc3RhdGV9LnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIHNlbGVjdDItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCBjb2xvci1jb250cmFzdCgkYmFja2dyb3VuZCkpO1xuXG4gIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XG4gICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tZm9jdXMgLnNlbGVjdDItc2VsZWN0aW9uLFxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItc2VsZWN0aW9uIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuc2VsZWN0Mi1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBzZWxlY3QyLXZhcmlhbnQoJGJhY2tncm91bmQsICRjb2xvcik7XG4gIH1cbn1cbiIsIkBtaXhpbiBicy1kYXRhdGFibGVzLXRoZW1lKCRiYWNrZ3JvdW5kKSB7XG4gIC8vIFN0eWxlIGZvciByZXNwb25zaXZlIGljb25cbiAgdGFibGUuZGF0YVRhYmxlLmR0ci1jb2x1bW4gPiB0Ym9keSA+IHRyID4gdGQuY29udHJvbDpiZWZvcmUsXG4gIHRhYmxlLmRhdGFUYWJsZS5kdHItY29sdW1uID4gdGJvZHkgPiB0ciA+IHRoLmNvbnRyb2w6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkcmdiYS10by1oZXgtYmc7XG4gICAgYm94LXNoYWRvdzogMCAwIDNweCAkZ3JheS04MDA7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3Njc3MvX2Jvb3RzdHJhcC1leHRlbmRlZC9mdW5jdGlvbnMnO1xuXG5AbWl4aW4gYnMtc2VsZWN0LXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgLmJvb3RzdHJhcC1zZWxlY3Qge1xuICAgIC5kcm9wZG93bi1tZW51LmlubmVyIGFbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGJhY2tncm91bmQsIDAuMDgpICFpbXBvcnRhbnQ7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLy8gRml4OiBUbyBhZGQgZm9jdXMgYm9yZGVyLCAuYm9vdHN0cmFwLXNlbGVjdCBhZGRpbmcgYm9yZGVyIGJ1dCBub3QgYWJsZSB0byB1cGRhdGUgYXMgd2UgY2FuIG5vdCBoYXZlIHRoZSBmb2N1cyBvbiBkaXZcbiAgICAuZHJvcGRvd24tdG9nZ2xlLnNob3cge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3Njc3MvX2Jvb3RzdHJhcC1leHRlbmRlZC9mdW5jdGlvbnMnO1xuXG5AbWl4aW4gYnMtZGF0ZXBpY2tlci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIGNvbG9yLWNvbnRyYXN0KCRiYWNrZ3JvdW5kKSk7XG4gICRyYW5nZS1iZzogcmdiYS10by1oZXgocmdiYSgkYmFja2dyb3VuZCwgMC4xNiksICNmZmYpO1xuICAkcmFuZ2UtY29sb3I6IGNvbG9yLWNvbnRyYXN0KCRyYW5nZS1iZyk7XG5cbiAgLmRhdGVwaWNrZXIge1xuICAgIHRhYmxlIHtcbiAgICAgIHRyIHRkIHtcbiAgICAgICAgJi5hY3RpdmUsXG4gICAgICAgICYuYWN0aXZlLmhpZ2hsaWdodGVkLFxuICAgICAgICAmLmFjdGl2ZSxcbiAgICAgICAgc3Bhbi5hY3RpdmUsXG4gICAgICAgIHNwYW4uYWN0aXZlLmRpc2FibGVkLFxuICAgICAgICAmLnJhbmdlLXN0YXJ0LFxuICAgICAgICAmLnJhbmdlLWVuZCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwLjEyNXJlbSAwLjI1cmVtIHJnYmEoJGJhY2tncm91bmQsIDAuNDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5yYW5nZSxcbiAgICAgICAgJi5yYW5nZS5oaWdobGlnaHRlZCxcbiAgICAgICAgJi5yYW5nZS50b2RheSB7XG4gICAgICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHJhbmdlLWJnICFpbXBvcnRhbnQ7XG4gICAgICAgICAgJi5mb2N1c2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkcmFuZ2UtYmcsIDYlKSAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnRpemUoJHJhbmdlLWJnLCAwLjUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoJHJhbmdlLWNvbG9yLCAwLjUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi50b2RheTpub3QoLmFjdGl2ZSkge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBicy1kYXRlcGlja2VyLWRhcmstdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkY29sb3I6IGlmKCRjb2xvciwgJGNvbG9yLCBjb2xvci1jb250cmFzdCgkYmFja2dyb3VuZCkpO1xuICAkcmFuZ2UtYmc6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIDAuMTYpLCAjMmIyYzQwKTtcbiAgJHJhbmdlLWNvbG9yOiBjb2xvci1jb250cmFzdCgkcmFuZ2UtYmcpO1xuXG4gIC5kYXRlcGlja2VyIHtcbiAgICB0YWJsZSB7XG4gICAgICB0ciB0ZCB7XG4gICAgICAgICYuYWN0aXZlLFxuICAgICAgICAmLmFjdGl2ZS5oaWdobGlnaHRlZCxcbiAgICAgICAgJi5hY3RpdmUsXG4gICAgICAgIHNwYW4uYWN0aXZlLFxuICAgICAgICBzcGFuLmFjdGl2ZS5kaXNhYmxlZCxcbiAgICAgICAgJi5yYW5nZS1zdGFydCxcbiAgICAgICAgJi5yYW5nZS1lbmQge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMC4xMjVyZW0gMC4yNXJlbSByZ2JhKCRiYWNrZ3JvdW5kLCAwLjQ1KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucmFuZ2UsXG4gICAgICAgICYucmFuZ2UuaGlnaGxpZ2h0ZWQsXG4gICAgICAgICYucmFuZ2UudG9kYXkge1xuICAgICAgICAgIGNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRyYW5nZS1iZyAhaW1wb3J0YW50O1xuICAgICAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50aXplKCRyYW5nZS1jb2xvciwgMC41KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnRpemUoJHJhbmdlLWJnLCAwLjUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5mb2N1c2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkcmFuZ2UtYmcsIDYlKSAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudG9kYXk6bm90KC5hY3RpdmUpIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc2Nzcy9fYm9vdHN0cmFwLWV4dGVuZGVkL2Z1bmN0aW9ucyc7XG5cbkBtaXhpbiBmbGF0cGlja3ItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAkaW4tcmFuZ2UtYmc6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIDAuMTYpLCAjZmZmKTtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgY29sb3ItY29udHJhc3QoJGJhY2tncm91bmQpKTtcblxuICAuZmxhdHBpY2tyLWNhbGVuZGFyIC5udW1JbnB1dFdyYXBwZXIgc3BhbiB7XG4gICAgJi5hcnJvd0Rvd246YWZ0ZXIge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgICYuYXJyb3dVcDphZnRlciB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLmZsYXRwaWNrci1kYXkge1xuICAgICYudG9kYXkge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmLmluUmFuZ2UsXG4gICAgJi5uZXh0TW9udGhEYXkuaW5SYW5nZSxcbiAgICAmLnByZXZNb250aERheS5pblJhbmdlLFxuICAgICYudG9kYXkuaW5SYW5nZSxcbiAgICAmLnByZXZNb250aERheS50b2RheS5pblJhbmdlLFxuICAgICYubmV4dE1vbnRoRGF5LnRvZGF5LmluUmFuZ2Uge1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkaW4tcmFuZ2UtYmcgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1jb2xvcjogJGluLXJhbmdlLWJnICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5zZWxlY3RlZCxcbiAgICAmLnNlbGVjdGVkLmluUmFuZ2UsXG4gICAgJi5zZWxlY3RlZDpmb2N1cyxcbiAgICAmLnNlbGVjdGVkOmhvdmVyLFxuICAgICYuc2VsZWN0ZWQubmV4dE1vbnRoRGF5LFxuICAgICYuc2VsZWN0ZWQucHJldk1vbnRoRGF5LFxuICAgICYuc3RhcnRSYW5nZSxcbiAgICAmLnN0YXJ0UmFuZ2UuaW5SYW5nZSxcbiAgICAmLnN0YXJ0UmFuZ2U6Zm9jdXMsXG4gICAgJi5zdGFydFJhbmdlOmhvdmVyLFxuICAgICYuc3RhcnRSYW5nZS5uZXh0TW9udGhEYXksXG4gICAgJi5zdGFydFJhbmdlLnByZXZNb250aERheSxcbiAgICAmLmVuZFJhbmdlLFxuICAgICYuZW5kUmFuZ2UuaW5SYW5nZSxcbiAgICAmLmVuZFJhbmdlOmZvY3VzLFxuICAgICYuZW5kUmFuZ2U6aG92ZXIsXG4gICAgJi5lbmRSYW5nZS5uZXh0TW9udGhEYXksXG4gICAgJi5lbmRSYW5nZS5wcmV2TW9udGhEYXksXG4gICAgJi53ZWVrLnNlbGVjdGVkIHtcbiAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDAuMjVyZW0gcmdiYSgkYmFja2dyb3VuZCwgMC40NSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmbGF0cGlja3ItZGFyay10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIGNvbG9yLWNvbnRyYXN0KCRiYWNrZ3JvdW5kKSk7XG4gICRpbi1yYW5nZS1iZzogcmdiYS10by1oZXgocmdiYSgkYmFja2dyb3VuZCwgMC4xNiksICMyYjJjNDApO1xuXG4gIC5mbGF0cGlja3ItY2FsZW5kYXIgLm51bUlucHV0V3JhcHBlciBzcGFuIHtcbiAgICAmLmFycm93VXA6YWZ0ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgICYuYXJyb3dEb3duOmFmdGVyIHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cblxuICAuZmxhdHBpY2tyLWRheSB7XG4gICAgJi50b2RheSB7XG4gICAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYuaW5SYW5nZSxcbiAgICAmLm5leHRNb250aERheS5pblJhbmdlLFxuICAgICYucHJldk1vbnRoRGF5LmluUmFuZ2UsXG4gICAgJi50b2RheS5pblJhbmdlLFxuICAgICYubmV4dE1vbnRoRGF5LnRvZGF5LmluUmFuZ2UsXG4gICAgJi5wcmV2TW9udGhEYXkudG9kYXkuaW5SYW5nZSB7XG4gICAgICBib3JkZXItY29sb3I6ICRpbi1yYW5nZS1iZyAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZDogJGluLXJhbmdlLWJnICFpbXBvcnRhbnQ7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLnNlbGVjdGVkLFxuICAgICYuc2VsZWN0ZWQuaW5SYW5nZSxcbiAgICAmLnNlbGVjdGVkOmZvY3VzLFxuICAgICYuc2VsZWN0ZWQ6aG92ZXIsXG4gICAgJi5zZWxlY3RlZC5wcmV2TW9udGhEYXksXG4gICAgJi5zZWxlY3RlZC5uZXh0TW9udGhEYXksXG4gICAgJi5zdGFydFJhbmdlLFxuICAgICYuc3RhcnRSYW5nZS5pblJhbmdlLFxuICAgICYuc3RhcnRSYW5nZTpmb2N1cyxcbiAgICAmLnN0YXJ0UmFuZ2U6aG92ZXIsXG4gICAgJi5zdGFydFJhbmdlLnByZXZNb250aERheSxcbiAgICAmLnN0YXJ0UmFuZ2UubmV4dE1vbnRoRGF5LFxuICAgICYuZW5kUmFuZ2UsXG4gICAgJi5lbmRSYW5nZS5pblJhbmdlLFxuICAgICYuZW5kUmFuZ2U6Zm9jdXMsXG4gICAgJi5lbmRSYW5nZTpob3ZlcixcbiAgICAmLmVuZFJhbmdlLm5leHRNb250aERheSxcbiAgICAmLmVuZFJhbmdlLnByZXZNb250aERheSxcbiAgICAmLndlZWsuc2VsZWN0ZWQge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMC4xMjVyZW0gMC4yNXJlbSByZ2JhKCRiYWNrZ3JvdW5kLCAwLjQ1KTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3Njc3MvX2Jvb3RzdHJhcC1leHRlbmRlZC9mdW5jdGlvbnMnO1xuXG5AbWl4aW4gYnMtZGF0ZXJhbmdlcGlja2VyLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgY29sb3ItY29udHJhc3QoJGJhY2tncm91bmQpKTtcblxuICAkaGlnaGxpZ2h0ZWQtYmc6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIDAuMTYpLCAjZmZmKTtcbiAgJGJveC1zaGFkb3c6IDAgMC4xMjVyZW0gMC4yNXJlbSByZ2JhKCRiYWNrZ3JvdW5kLCAwLjQ1KTtcbiAgLmRhdGVyYW5nZXBpY2tlciB0YWJsZSB0aGVhZCB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgc2VsZWN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRhdGVyYW5nZXBpY2tlciB0ZC5hY3RpdmU6bm90KC5vZmYpIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XG4gIH1cblxuICAuZGF0ZXJhbmdlcGlja2VyIHtcbiAgICAuc3RhcnQtZGF0ZTpub3QoLmVuZC1kYXRlKTpub3QoLm9mZiksXG4gICAgLmVuZC1kYXRlOm5vdCguc3RhcnQtZGF0ZSk6bm90KC5vZmYpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGF0ZXJhbmdlcGlja2VyIC5pbnB1dC1taW5pLmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmRhdGVyYW5nZXBpY2tlciB0ZC5pbi1yYW5nZTpub3QoLnN0YXJ0LWRhdGUpOm5vdCguZW5kLWRhdGUpOm5vdCgub2ZmKSB7XG4gICAgY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhpZ2hsaWdodGVkLWJnICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucmFuZ2VzIGxpLmFjdGl2ZSB7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGJzLWRhdGVyYW5nZXBpY2tlci1kYXJrLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgY29sb3ItY29udHJhc3QoJGJhY2tncm91bmQpKTtcblxuICAkaGlnaGxpZ2h0ZWQtYmc6IHJnYmEtdG8taGV4KHJnYmEoJGJhY2tncm91bmQsIDAuMTYpLCAjMmIyYzQwKTtcblxuICAuZGF0ZXJhbmdlcGlja2VyIHRhYmxlIHRoZWFkIHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBzZWxlY3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGF0ZXJhbmdlcGlja2VyIHRkLmFjdGl2ZTpub3QoLm9mZikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbiAgfVxuXG4gIC5kYXRlcmFuZ2VwaWNrZXIge1xuICAgIC5zdGFydC1kYXRlOm5vdCguZW5kLWRhdGUpOm5vdCgub2ZmKSxcbiAgICAuZW5kLWRhdGU6bm90KC5zdGFydC1kYXRlKTpub3QoLm9mZikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5kYXRlcmFuZ2VwaWNrZXIgLmlucHV0LW1pbmkuYWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZGF0ZXJhbmdlcGlja2VyIHRkLmluLXJhbmdlOm5vdCguc3RhcnQtZGF0ZSk6bm90KC5lbmQtZGF0ZSk6bm90KC5vZmYpIHtcbiAgICBjb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlnaGxpZ2h0ZWQtYmcgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5yYW5nZXMgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc2Nzcy9fYm9vdHN0cmFwLWV4dGVuZGVkL19mdW5jdGlvbnMnO1xuXG5AbWl4aW4gdGltZXBpY2tlci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIGNvbG9yLWNvbnRyYXN0KCRiYWNrZ3JvdW5kKSk7XG5cbiAgbGkudWktdGltZXBpY2tlci1zZWxlY3RlZCxcbiAgLnVpLXRpbWVwaWNrZXItbGlzdCAudWktdGltZXBpY2tlci1zZWxlY3RlZDpob3ZlciB7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBxdWlsbC1nZW5lcmF0ZS1saXN0cygkaW5kZW50KSB7XG4gICRxdWlsbC1saXN0LXR5cGVzOiAoXG4gICAgMTogbG93ZXItYWxwaGEsXG4gICAgMjogbG93ZXItcm9tYW4sXG4gICAgMzogZGVjaW1hbCxcbiAgICA0OiBsb3dlci1hbHBoYSxcbiAgICA1OiBsb3dlci1yb21hbixcbiAgICA2OiBkZWNpbWFsLFxuICAgIDc6IGxvd2VyLWFscGhhLFxuICAgIDg6IGxvd2VyLXJvbWFuLFxuICAgIDk6IGRlY2ltYWxcbiAgKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDkge1xuICAgIG9sIGxpLnFsLWluZGVudC0jeyRpfSB7XG4gICAgICBjb3VudGVyLWluY3JlbWVudDogbGlzdC0jeyRpfTtcblxuICAgICAgQGlmICRpIDwgOSB7XG4gICAgICAgICRsaXN0czogJyc7XG5cbiAgICAgICAgQGZvciAkbCBmcm9tICRpICsgMSB0aHJvdWdoIDkge1xuICAgICAgICAgICRsaXN0czogJyN7JGxpc3RzfSBsaXN0LSN7JGx9JztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvdW50ZXItcmVzZXQ6ICN7JGxpc3RzfTtcbiAgICAgIH1cblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogY291bnRlcihsaXN0LSN7JGl9LCBtYXAtZ2V0KCRxdWlsbC1saXN0LXR5cGVzLCAkaSkpICcuICc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnFsLWluZGVudC0jeyRpfTpub3QoLnFsLWRpcmVjdGlvbi1ydGwpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJGluZGVudCAqICRpO1xuXG4gICAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGluZGVudCAqICRpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIGxpLnFsLWluZGVudC0jeyRpfTpub3QoLnFsLWRpcmVjdGlvbi1ydGwpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJGluZGVudCAqICgkaSArIDEpO1xuXG4gICAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGluZGVudCAqICgkaSArIDEpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5xbC1pbmRlbnQtI3skaX0ucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkaW5kZW50ICogJGk7XG5cbiAgICAgIFtkaXI9J3J0bCddICYge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRpbmRlbnQgKiAkaTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGkucWwtaW5kZW50LSN7JGl9LnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHQge1xuICAgICAgcGFkZGluZy1yaWdodDogJGluZGVudCAqICgkaSArIDEpO1xuXG4gICAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkaW5kZW50ICogKCRpICsgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBxdWlsbC10aGVtZSgkY29sb3IpIHtcbiAgLnFsLXNub3cucWwtdG9vbGJhcixcbiAgLnFsLXNub3cgLnFsLXRvb2xiYXIge1xuICAgIGJ1dHRvbjpob3ZlcixcbiAgICBidXR0b246Zm9jdXMsXG4gICAgYnV0dG9uLnFsLWFjdGl2ZSxcbiAgICAucWwtcGlja2VyLWxhYmVsOmhvdmVyLFxuICAgIC5xbC1waWNrZXItbGFiZWwucWwtYWN0aXZlLFxuICAgIC5xbC1waWNrZXItaXRlbTpob3ZlcixcbiAgICAucWwtcGlja2VyLWl0ZW0ucWwtc2VsZWN0ZWQge1xuICAgICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJ1dHRvbjpob3ZlciAucWwtZmlsbCxcbiAgICBidXR0b246Zm9jdXMgLnFsLWZpbGwsXG4gICAgYnV0dG9uLnFsLWFjdGl2ZSAucWwtZmlsbCxcbiAgICAucWwtcGlja2VyLWxhYmVsOmhvdmVyIC5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItbGFiZWwucWwtYWN0aXZlIC5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItaXRlbTpob3ZlciAucWwtZmlsbCxcbiAgICAucWwtcGlja2VyLWl0ZW0ucWwtc2VsZWN0ZWQgLnFsLWZpbGwsXG4gICAgYnV0dG9uOmhvdmVyIC5xbC1zdHJva2UucWwtZmlsbCxcbiAgICBidXR0b246Zm9jdXMgLnFsLXN0cm9rZS5xbC1maWxsLFxuICAgIGJ1dHRvbi5xbC1hY3RpdmUgLnFsLXN0cm9rZS5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItbGFiZWw6aG92ZXIgLnFsLXN0cm9rZS5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItbGFiZWwucWwtYWN0aXZlIC5xbC1zdHJva2UucWwtZmlsbCxcbiAgICAucWwtcGlja2VyLWl0ZW06aG92ZXIgLnFsLXN0cm9rZS5xbC1maWxsLFxuICAgIC5xbC1waWNrZXItaXRlbS5xbC1zZWxlY3RlZCAucWwtc3Ryb2tlLnFsLWZpbGwge1xuICAgICAgZmlsbDogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYnV0dG9uOmhvdmVyIC5xbC1zdHJva2UsXG4gICAgYnV0dG9uOmZvY3VzIC5xbC1zdHJva2UsXG4gICAgYnV0dG9uLnFsLWFjdGl2ZSAucWwtc3Ryb2tlLFxuICAgIC5xbC1waWNrZXItbGFiZWw6aG92ZXIgLnFsLXN0cm9rZSxcbiAgICAucWwtcGlja2VyLWxhYmVsLnFsLWFjdGl2ZSAucWwtc3Ryb2tlLFxuICAgIC5xbC1waWNrZXItaXRlbTpob3ZlciAucWwtc3Ryb2tlLFxuICAgIC5xbC1waWNrZXItaXRlbS5xbC1zZWxlY3RlZCAucWwtc3Ryb2tlLFxuICAgIGJ1dHRvbjpob3ZlciAucWwtc3Ryb2tlLW1pdGVyLFxuICAgIGJ1dHRvbjpmb2N1cyAucWwtc3Ryb2tlLW1pdGVyLFxuICAgIGJ1dHRvbi5xbC1hY3RpdmUgLnFsLXN0cm9rZS1taXRlcixcbiAgICAucWwtcGlja2VyLWxhYmVsOmhvdmVyIC5xbC1zdHJva2UtbWl0ZXIsXG4gICAgLnFsLXBpY2tlci1sYWJlbC5xbC1hY3RpdmUgLnFsLXN0cm9rZS1taXRlcixcbiAgICAucWwtcGlja2VyLWl0ZW06aG92ZXIgLnFsLXN0cm9rZS1taXRlcixcbiAgICAucWwtcGlja2VyLWl0ZW0ucWwtc2VsZWN0ZWQgLnFsLXN0cm9rZS1taXRlciB7XG4gICAgICBzdHJva2U6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc2Nzcy9fYm9vdHN0cmFwLWV4dGVuZGVkL2Z1bmN0aW9ucyc7XG5cbkBtaXhpbiB0eXBlYWhlYWQtdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcjogbnVsbCkge1xuICAudHQtc3VnZ2VzdGlvbjphY3RpdmUsXG4gIC50dC1jdXJzb3Ige1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJGJhY2tncm91bmQsIDAuMDgpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBkcm9wem9uZS10aGVtZSgkYm9yZGVyKSB7XG4gIC5kcm9wem9uZS5kei1kcmFnLWhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXIgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiQG1peGluIHN3aXBlci10aGVtZSgkYmFja2dyb3VuZCkge1xuICAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUsXG4gIC5zd2lwZXItcGFnaW5hdGlvbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiQG1peGluIHNwaW5raXQtdGhlbWUoJGJhY2tncm91bmQpIHtcbiAgLnNrLXByaW1hcnkuc2stcGxhbmUsXG4gIC5zay1wcmltYXJ5IC5zay1jaGFzZS1kb3Q6YmVmb3JlLFxuICAuc2stcHJpbWFyeSAuc2stYm91bmNlLWRvdCxcbiAgLnNrLXByaW1hcnkgLnNrLXdhdmUtcmVjdCxcbiAgLnNrLXByaW1hcnkuc2stcHVsc2UsXG4gIC5zay1wcmltYXJ5IC5zay1zd2luZy1kb3QsXG4gIC5zay1wcmltYXJ5IC5zay1jaXJjbGUtZG90OmJlZm9yZSxcbiAgLnNrLXByaW1hcnkgLnNrLWNpcmNsZS1mYWRlLWRvdDpiZWZvcmUsXG4gIC5zay1wcmltYXJ5IC5zay1ncmlkLWN1YmUsXG4gIC5zay1wcmltYXJ5IC5zay1mb2xkLWN1YmU6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc2Nzcy9fYm9vdHN0cmFwLWV4dGVuZGVkL2Z1bmN0aW9ucyc7XG5cbi8vIExpZ2h0IHN0eWxlXG5AbWl4aW4gcGx5ci10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIGNvbG9yLWNvbnRyYXN0KCRiYWNrZ3JvdW5kKSk7XG5cbiAgLnBseXIgaW5wdXRbdHlwZT0ncmFuZ2UnXTo6LW1zLWZpbGwtbG93ZXIge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucGx5ciBpbnB1dFt0eXBlPSdyYW5nZSddOmFjdGl2ZSB7XG4gICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOjotbXMtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9sLnBseXJfX2NvbnRyb2wtLW92ZXJsYWlkLFxuICAucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIGJ1dHRvbi50YWItZm9jdXM6Zm9jdXMsXG4gIC5wbHlyLS12aWRlbyAucGx5cl9fY29udHJvbFthcmlhLWV4cGFuZGVkPSd0cnVlJ10sXG4gIC5wbHlyLS12aWRlbyAucGx5cl9fY29udHJvbHMgYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5wbHlyLS1hdWRpbyAucGx5cl9fY29udHJvbHMgYnV0dG9uLnRhYi1mb2N1czpmb2N1cyxcbiAgLnBseXItLWF1ZGlvIC5wbHlyX19jb250cm9sW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSxcbiAgLnBseXItLWF1ZGlvIC5wbHlyX19jb250cm9scyBidXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnBseXJfX3BsYXktbGFyZ2Uge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnBseXJfX3Byb2dyZXNzLS1wbGF5ZWQsXG4gIC5wbHlyX192b2x1bWUtLWRpc3BsYXkge1xuICAgIGNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5wbHlyLS1mdWxsLXVpIGlucHV0W3R5cGU9J3JhbmdlJ10ge1xuICAgIGNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5wbHlyX19tZW51X19jb250YWluZXIgLnBseXJfX2NvbnRyb2xbcm9sZT0nbWVudWl0ZW1yYWRpbyddW2FyaWEtY2hlY2tlZD0ndHJ1ZSddOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBmdWxsY2FsZW5kYXItdGhlbWUoJGJhY2tncm91bmQsICRjb2xvcikge1xuICAuZmMge1xuICAgIC8vIEZDIGV2ZW50XG4gICAgQGluY2x1ZGUgYmctbGFiZWwtdmFyaWFudCgnLmZjLWV2ZW50LXByaW1hcnk6bm90KC5mYy1saXN0LWV2ZW50KScsICRiYWNrZ3JvdW5kKTtcbiAgICAuZmMtZXZlbnQtcHJpbWFyeTpub3QoLmZjLWxpc3QtZXZlbnQpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkYmFja2dyb3VuZCwgMC4xNSk7XG4gICAgfVxuXG4gICAgLy8gRkMgbGlzdCBldmVudFxuICAgIC5mYy1ldmVudC1wcmltYXJ5LmZjLWxpc3QtZXZlbnQge1xuICAgICAgLmZjLWxpc3QtZXZlbnQtZG90IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mYy1idXR0b24tcHJpbWFyeTpub3QoLmZjLXByZXYtYnV0dG9uKTpub3QoLmZjLW5leHQtYnV0dG9uKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRiYWNrZ3JvdW5kLCAwLjA4KSAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgJi5mYy1idXR0b24tYWN0aXZlLFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDAuMjVyZW0gMCByZ2JhKCRiYWNrZ3JvdW5kLCAwLjQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc2Nzcy9fYm9vdHN0cmFwLWV4dGVuZGVkL2Z1bmN0aW9ucyc7XG5cbkBtaXhpbiBzd2VldGFsZXJ0Mi10aGVtZSgkYmFja2dyb3VuZCwgJGNvbG9yOiBudWxsKSB7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsIGNvbG9yLWNvbnRyYXN0KCRiYWNrZ3JvdW5kKSk7XG5cbiAgLnN3YWwyLXByb2dyZXNzLXN0ZXBzW2NsYXNzXSAuc3dhbDItcHJvZ3Jlc3Mtc3RlcC5zd2FsMi1hY3RpdmUtcHJvZ3Jlc3Mtc3RlcCxcbiAgLnN3YWwyLXByb2dyZXNzLXN0ZXBzW2NsYXNzXSAuc3dhbDItcHJvZ3Jlc3Mtc3RlcC1saW5lLFxuICAuc3dhbDItcHJvZ3Jlc3Mtc3RlcHNbY2xhc3NdIC5zd2FsMi1hY3RpdmUtcHJvZ3Jlc3Mtc3RlcCxcbiAgLnN3YWwyLXByb2dyZXNzLXN0ZXBzW2NsYXNzXSAuc3dhbDItcHJvZ3Jlc3Mtc3RlcCB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gIC5zd2FsMi1wcm9ncmVzcy1zdGVwc1tjbGFzc10gLnN3YWwyLXByb2dyZXNzLXN0ZXAuc3dhbDItYWN0aXZlLXByb2dyZXNzLXN0ZXAgfiAuc3dhbDItcHJvZ3Jlc3Mtc3RlcCxcbiAgLnN3YWwyLXByb2dyZXNzLXN0ZXBzW2NsYXNzXSAuc3dhbDItcHJvZ3Jlc3Mtc3RlcC5zd2FsMi1hY3RpdmUtcHJvZ3Jlc3Mtc3RlcCB+IC5zd2FsMi1wcm9ncmVzcy1zdGVwLWxpbmUge1xuICAgIGJhY2tncm91bmQ6IG1peCgkd2hpdGUsICRiYWNrZ3JvdW5kLCA4NSUpO1xuICB9XG59XG5cbkBtaXhpbiBzd2VldGFsZXJ0Mi1kYXJrLXRoZW1lKCRiYWNrZ3JvdW5kLCAkY29sb3I6IG51bGwpIHtcbiAgJGNvbG9yOiBpZigkY29sb3IsICRjb2xvciwgY29sb3ItY29udHJhc3QoJGJhY2tncm91bmQpKTtcblxuICAuc3dhbDItcHJvZ3Jlc3Mtc3RlcHNbY2xhc3NdIC5zd2FsMi1wcm9ncmVzcy1zdGVwLnN3YWwyLWFjdGl2ZS1wcm9ncmVzcy1zdGVwLFxuICAuc3dhbDItcHJvZ3Jlc3Mtc3RlcHNbY2xhc3NdIC5zd2FsMi1wcm9ncmVzcy1zdGVwLWxpbmUsXG4gIC5zd2FsMi1wcm9ncmVzcy1zdGVwc1tjbGFzc10gLnN3YWwyLWFjdGl2ZS1wcm9ncmVzcy1zdGVwLFxuICAuc3dhbDItcHJvZ3Jlc3Mtc3RlcHNbY2xhc3NdIC5zd2FsMi1wcm9ncmVzcy1zdGVwIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgLnN3YWwyLXByb2dyZXNzLXN0ZXBzW2NsYXNzXSAuc3dhbDItcHJvZ3Jlc3Mtc3RlcC5zd2FsMi1hY3RpdmUtcHJvZ3Jlc3Mtc3RlcCB+IC5zd2FsMi1wcm9ncmVzcy1zdGVwLFxuICAuc3dhbDItcHJvZ3Jlc3Mtc3RlcHNbY2xhc3NdIC5zd2FsMi1wcm9ncmVzcy1zdGVwLnN3YWwyLWFjdGl2ZS1wcm9ncmVzcy1zdGVwIH4gLnN3YWwyLXByb2dyZXNzLXN0ZXAtbGluZSB7XG4gICAgYmFja2dyb3VuZDogbWl4KCRkYXJrLCAkYmFja2dyb3VuZCwgNTUlKTtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc2Nzcy9fY3VzdG9tLXZhcmlhYmxlcy9saWJzJztcblxuLy8gQmFja2dyb3VuZCAmIFByaW1hcnkgY29sb3IgZm9yIHBpY2tlclxuQG1peGluIGNvbG9yUGlja2VyLXRoZW1lKCRiYWNrZ3JvdW5kKSB7XG4gIC5wY3ItYXBwIHtcbiAgICAucGNyLXR5cGUuYWN0aXZlLFxuICAgIC5wY3Itc2F2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc2Nzcy9fYm9vdHN0cmFwLWV4dGVuZGVkL2luY2x1ZGUnO1xuXG4vLyAgZ2V0IGJhY2tncm91bmQgY29sb3Igb2YgYnV0dG9uIG9uIGhvdmVyIGZvciB0b3VyIGFjdGlvbiBidXR0b25cbkBmdW5jdGlvbiBzaGVwaGVyZC1idXR0b24taG92ZXItY29sb3IoJGJhY2tncm91bmQpIHtcbiAgJGNvbG9yOiBjb2xvci1jb250cmFzdCgkYmFja2dyb3VuZCk7XG5cbiAgJGhvdmVyLWJhY2tncm91bmQ6IGlmKFxuICAgICRjb2xvciA9PSAkY29sb3ItY29udHJhc3QtbGlnaHQsXG4gICAgc2hhZGUtY29sb3IoJGJhY2tncm91bmQsICRidG4taG92ZXItYmctc2hhZGUtYW1vdW50KSxcbiAgICB0aW50LWNvbG9yKCRiYWNrZ3JvdW5kLCAkYnRuLWhvdmVyLWJnLXRpbnQtYW1vdW50KVxuICApO1xuXG4gIEByZXR1cm4gJGhvdmVyLWJhY2tncm91bmQ7XG59XG5cbkBtaXhpbiB0b3VyLXRoZW1lKCRiYWNrZ3JvdW5kKSB7XG4gIC5zaGVwaGVyZC1lbGVtZW50IHtcbiAgICAmW2RhdGEtcG9wcGVyLXBsYWNlbWVudD0nYm90dG9tJ10ge1xuICAgICAgLnNoZXBoZXJkLWFycm93OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICAgIC5zaGVwaGVyZC1oZWFkZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICAgIC5zaGVwaGVyZC10aXRsZSxcbiAgICAgIC5zaGVwaGVyZC1jYW5jZWwtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgdGVtcGxhdGUtYnV0dG9uLXZhcmlhbnQoJy5zaGVwaGVyZC1idXR0b246bm90KDpkaXNhYmxlZCkuYnRuLXByaW1hcnknLCAkYmFja2dyb3VuZCk7XG4gICAgQGluY2x1ZGUgdGVtcGxhdGUtYnV0dG9uLWxhYmVsLXZhcmlhbnQoJy5zaGVwaGVyZC1idXR0b246bm90KDpkaXNhYmxlZCkuYnRuLWxhYmVsLXNlY29uZGFyeScsICRzZWNvbmRhcnkpO1xuICB9XG59XG4iLCIvLyBTdGVwcGVyIE1peGluXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5AbWl4aW4gYnMtc3RlcHBlci10aGVtZSgkY29sb3IpIHtcbiAgLmJzLXN0ZXBwZXIge1xuICAgIC5zdGVwIHtcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgLmJzLXN0ZXBwZXItY2lyY2xlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAuMTg3NXJlbSAwLjM3NXJlbSAwIHJnYmEoJGNvbG9yLCAwLjQpO1xuICAgICAgICB9XG4gICAgICAgIC5icy1zdGVwcGVyLWxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmJzLXN0ZXBwZXItaWNvbiB7XG4gICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5jcm9zc2VkIHtcbiAgICAgICAgLnN0ZXAtdHJpZ2dlciB7XG4gICAgICAgICAgLmJzLXN0ZXBwZXItY2lyY2xlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGNvbG9yLCAwLjE2KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICAuYnMtc3RlcHBlci1pY29uIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgKyAubGluZSB7XG4gICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6ICRjb2xvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaSB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLndpemFyZC1pY29ucyB7XG4gICAgICAuc3RlcCB7XG4gICAgICAgICYuY3Jvc3NlZCB7XG4gICAgICAgICAgLnN0ZXAtdHJpZ2dlciB7XG4gICAgICAgICAgICAuYnMtc3RlcHBlci1sYWJlbCB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLnN0ZXAtdHJpZ2dlcjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgc3ZnIHtcbiAgICAgICAgZmlsbDogJGNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/